构建交互式颜色选择器:介绍Gradio的ColorPicker模块和方法

news2024/12/27 11:38:57

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse.cn/nlp/365/

请添加图片描述

(封面图由文心一格生成)

构建交互式颜色选择器:介绍Gradio的ColorPicker模块和方法

颜色选择器是图形用户界面中常见的组件,用于选择和设置颜色值。在开发交互式应用程序或集成机器学习模型时,使用颜色选择器可以提供更直观和灵活的用户体验。Gradio是一个功能强大的Python库,用于构建交互式界面,其中包含了许多实用的组件,包括ColorPicker模块。本文将介绍Gradio的ColorPicker模块及其相关方法和参数。

Gradio的ColorPicker模块概述

Gradio的ColorPicker模块是一个用于选择颜色的组件,用户可以通过它选择一个颜色值作为字符串输入。ColorPicker模块的输入是选择的颜色值,以字符串形式传递给函数;输出是从函数返回的字符串,并将颜色选择器的值设置为该字符串。使用ColorPicker模块,可以轻松地在应用程序中实现颜色选择的功能。

ColorPicker模块使用示例代码:

import gradio as gr
import numpy as np
import os
from PIL import Image, ImageColor


def change_color(icon, color):

    """
    Function that given an icon in .png format changes its color
    Args:
        icon: Icon whose color needs to be changed.
        color: Chosen color with which to edit the input icon.
    Returns:
        edited_image: Edited icon.
    """
    img = icon.convert("LA")
    img = img.convert("RGBA")
    image_np = np.array(icon)
    _, _, _, alpha = image_np.T
    mask = alpha > 0
    image_np[..., :-1][mask.T] = ImageColor.getcolor(color, "RGB")
    edited_image = Image.fromarray(image_np)
    return edited_image


inputs = [
    gr.Image(label="icon", type="pil", image_mode="RGBA"),
    gr.ColorPicker(label="color"),
]
outputs = gr.Image(label="colored icon")

demo = gr.Interface(
    fn=change_color,
    inputs=inputs,
    outputs=outputs,
    examples=[
        [os.path.join(os.path.dirname(__file__), "rabbit.png"), "#ff0000"],
        [os.path.join(os.path.dirname(__file__), "rabbit.png"), "#0000FF"],
    ],
)

if __name__ == "__main__":
    demo.launch()

ColorPicker模块参数

ColorPicker模块具有一些可调整的参数,用于自定义和配置该模块的行为。下面是ColorPicker模块的常用参数:

  • value:默认的颜色值。可以是字符串、可调用对象或None,默认为None。
  • label:在界面中显示的组件名称。可以是字符串或None,默认为None。
  • info:组件的附加描述信息。可以是字符串或None,默认为None。
  • every:如果value是一个可调用对象,可以设置每隔一定时间调用该函数的时间间隔。默认为None。
  • show_label:是否显示组件的标签。默认为True。
  • container:是否将组件放置在容器中,提供一些额外的边框间距。默认为True。
  • scale:与相邻组件的相对宽度比例。默认为None。
  • min_width:最小像素宽度,如果屏幕空间不足,则会自动换行。默认为160。
  • interactive:是否允许用户交互编辑颜色值。如果不提供该

参数,则根据组件是用作输入还是输出进行推断。默认为None。

  • visible:是否显示组件。默认为True。
  • elem_id:组件在HTML DOM中的ID。可以用于定位CSS样式。默认为None。
  • elem_classes:组件在HTML DOM中的类列表。可以用于定位CSS样式。默认为None。

通过调整这些参数,可以根据需要自定义ColorPicker模块的外观和行为。

ColorPicker模块的方法

ColorPicker模块提供了几个方法,用于响应不同的事件和交互。以下是ColorPicker模块的常用方法:

1. change方法

gradio.ColorPicker.change(fn, inputs=None, outputs=None, api_name=None, status_tracker=None, scroll_to_output=False, show_progress="full", queue=None, batch=False, max_batch_size=4, preprocess=True, postprocess=True, cancels=None, every=None)

该方法在组件的值发生变化时触发,无论是由用户输入还是由函数更新导致的。可以在Gradio Blocks中使用该方法。主要参数包括:

  • fn:要在界面中封装的函数,通常是机器学习模型的预测函数。
  • inputs:作为输入使用的组件列表。
  • outputs:作为输出使用的组件列表。
  • api_name:在API文档中暴露该端点的名称。
  • status_tracker:状态跟踪器,默认为None。
  • scroll_to_output:如果为True,则在完成时滚动到输出组件。
  • show_progress:在等待期间是否显示进度动画。
  • queue:如果为True,则将请求放入队列(如果队列已启用)。如果为False,则即使队列已启用,也不会将此事件放入队列。如果为None,则使用Gradio应用程序的队列设置。
  • batch:如果为True,则函数应处理一批输入,即它应该接受每个参数的输入值列表。列表的长度应相等(最多长度为max_batch_size)。函数 必须 返回一个元组的列表(即使只有一个输出组件),其中元组中的每个列表对应一个输出组件。
  • max_batch_size:如果从队列调用此方法时,将最大批次数量的输入组合在一起(仅适用于batch=True)。
  • preprocess:是否在运行’fn’之前运行组件数据的预处理(例如,如果使用Image组件,则将其保留为base64字符串)。
  • postprocess:是否在将’fn’输出返回给浏览器之前运行组件数据的后处理。
  • cancels:触发此事件时要取消的其他事件列表。
  • every:在客户端连接打开的同时以’every’秒数运行此事件。以秒为单位解释。队列必须已启用。

change方法适用于在函数输入或组件值发生变化时触发更新。

2. input方法

gradio.ColorPicker.input(fn, inputs=None, outputs=None, api_name=None, status_tracker=None, scroll_to_output=False, show_progress="full", queue=None, batch=False, max_batch_size=4, preprocess=True, postprocess=True, cancels=None, every=None)

该方法在用户更改组件的值时触发,适用于Gradio Blocks。主要参数与change方法相同,用于响应用户输入的变化。

3. submit方法

gradio.ColorPicker.submit(fn, inputs=None, outputs=None, api_name=None, status_tracker=None, scroll_to_output=False, show_progress="full", queue=None, batch=False, max_batch_size=4, preprocess=True, postprocess=True, cancels=None, every=None)

该方法在用户按下回车键时触发,适用于Gradio Blocks。主要参数与change方法相同,用于在用户提交输入时触发函数。

4. blur方法

gradio.ColorPicker.blur(fn, inputs=None, outputs=None, api_name=None, status_tracker=None, scroll_to_output=False, show_progress="full", queue=None, batch=False, max_batch_size=4, preprocess=True, postprocess=True, cancels=None, every=None)

该方法在组件失去焦点/模糊(例如,当用户点击文本框之外的区域)时触发,适用于Gradio Blocks。主要参数与change方法相同,用于响应组件失去焦点的事件。

使用这些方法,可以根据不同的事件和交互情况来定义函数的行为和触发逻辑。

参数详解

下面是关于ColorPicker模块参数及其change、input、submit和blur方法的参数的表格总结:

参数名(Parameter)数据类型(Type)默认值(Default)描述(Description)
valuestr | Callable | NoneNone颜色选择器的默认文本。如果是可调用对象,每当应用程序加载时将调用该函数以设置组件的初始值。
labelstr | NoneNone组件在界面中的名称。
infostr | NoneNone附加的组件描述。
everyfloat | NoneNone如果 value 是可调用对象,则在客户端连接打开时以 ‘every’ 秒为单位运行该函数。否则无效。队列必须已启用。可以通过该组件的 .load_event 属性访问该事件(例如取消它)。
show_labelboolTrue如果为 True,则显示标签。
containerboolTrue如果为 True,则将组件放置在一个容器中,提供一些额外的边框间距。
scaleint | NoneNone相对于相邻组件在行中的宽度比例。例如,如果组件 A 的 scale=2,组件 B 的 scale=1,那么组件 A 的宽度将是组件 B 的两倍。应该是一个整数。
min_widthint160最小像素宽度,如果屏幕空间不足以满足此值,则换行。如果某个 scale 值导致此组件比 min_width 更窄,则首先遵守 min_width 参数。
interactivebool | NoneNone如果为 True,则渲染为可编辑的颜色选择器;如果为 False,则禁用编辑。如果未提供,则根据组件是作为输入还是输出来推断。
visibleboolTrue如果为 False,则隐藏组件。
elem_idstr | NoneNone可选的字符串,将其分配为此组件在 HTML DOM 中的 id。可用于定位 CSS 样式。
elem_classeslist[str] | str | NoneNone可选的字符串列表,将其分配为此组件在 HTML DOM 中的类。可用于定位 CSS 样式。

change 方法中的参数

参数名(Parameter)数据类型(Type)默认值(Default)描述(Description)
fnCallable | None要封装成界面的函数。通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,并且函数应返回单个值或元组,元组中的每个元素对应一个输出组件。
inputsComponent | list[Component] | set[Component] | NoneNone要用作输入的 Gradio 组件列表。如果函数不需要输入,则应使用空列表。
outputsComponent | list[Component] | NoneNone要用作输出的 Gradio 组件列表。如果函数不返回输出,则应使用空列表。
api_namestr | NoneNone定义此参数将在 API 文档中公开端点。
status_trackerNoneNone
scroll_to_outputboolFalse如果为 True,则在完成时将滚动到输出组件。
show_progress‘full’ | ‘minimal’ | ‘hidden’“full”如果为 True,则在等待期间显示进度动画。
queuebool | NoneNone如果为 True,则将请求放入队列中(如果已启用队列)。如果为 False,则即使启用了队列,也不会将此事件放入队列。如果为 None,则使用 gradio 应用程序的队列设置。
batchboolFalse如果为 True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应具有相等的长度(并且最多为 max_batch_size)。然后函数 必须 返回元组列表(即使只有 1 个输出组件),元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列中调用,则将一起批处理的最大输入数量(仅在 batch=True 时相关)。
preprocessboolTrue如果为 False,则在运行 ‘fn’ 之前不会运行组件数据的预处理(例如,如果使用 Image 组件,则保留为 base64 字符串)。
postprocessboolTrue如果为 False,则在将 ‘fn’ 的输出返回给浏览器之前不会运行组件数据的后处理。
cancelsdict[str, Any] | list[dict[str, Any]] | NoneNone要取消的其他事件列表,当此侦听器触发时。例如,设置 cancels=[click_event] 将取消 click_event,其中 click_event 是另一个组件的 .click 方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat | NoneNone当客户端连接打开时,以 ‘every’ 秒为单位运行此事件。队列必须已启用。

input 方法中的参数

参数名(Parameter)数据类型(Type)默认值(Default)描述(Description)
fnCallable | None要封装成界面的函数。通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,并且函数应返回单个值或元组,元组中的每个元素对应一个输出组件。
inputsComponent | list[Component] | set[Component] | NoneNone要用作输入的 Gradio 组件列表。如果函数不需要输入,则应使用空列表。
outputsComponent | list[Component] | NoneNone要用作输出的 Gradio 组件列表。如果函数不返回输出,则应使用空列表。
api_namestr | NoneNone定义此参数将在 API 文档中公开端点。
status_trackerNoneNone
scroll_to_outputboolFalse如果为 True,则在完成时将滚动到输出组件。
show_progress‘full’ | ‘minimal’ | ‘hidden’“full”如果为 True,则在等待期间显示进度动画。
queuebool | NoneNone如果为 True,则将请求放入队列中(如果已启用队列)。如果为 False,则即使启用了队列,也不会将此事件放入队列。如果为 None,则使用 gradio 应用程序的队列设置。
batchboolFalse如果为 True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应具有相等的长度(并且最多为 max_batch_size)。然后函数 必须 返回元组列表(即使只有 1 个输出组件),元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列中调用,则将一起批处理的最大输入数量(仅在 batch=True 时相关)。
preprocessboolTrue如果为 False,则在运行 ‘fn’ 之前不会运行组件数据的预处理(例如,如果使用 Image 组件,则保留为 base64 字符串)。
postprocessboolTrue如果为 False,则在将 ‘fn’ 的输出返回给浏览器之前不会运行组件数据的后处理。
cancelsdict[str, Any] | list[dict[str, Any]] | NoneNone要取消的其他事件列表,当此侦听器触发时。例如,设置 cancels=[click_event] 将取消 click_event,其中 click_event 是另一个组件的 .click 方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat | NoneNone当客户端连接打开时,以 ‘every’ 秒为单位运行此事件。队列必须已启用。

submit 方法中的参数

参数名(Parameter)数据类型(Type)默认值(Default)描述(Description)
fnCallable | None要封装成界面的函数。通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,并且函数应返回单个值或元组,元组中的每个元素对应一个输出组件。
inputsComponent | list[Component] | set[Component] | NoneNone要用作输入的 Gradio 组件列表。如果函数不需要输入,则应使用空列表。
outputsComponent | list[Component] | NoneNone要用作输出的 Gradio 组件列表。如果函数不返回输出,则应使用空列表。
api_namestr | NoneNone定义此参数将在 API 文档中公开端点。
status_trackerNoneNone
scroll_to_outputboolFalse如果为 True,则在完成时将滚动到输出组件。
show_progress‘full’ | ‘minimal’ | ‘hidden’“full”如果为 True,则在等待期间显示进度动画。
queuebool | NoneNone如果为 True,则将请求放入队列中(如果已启用队列)。如果为 False,则即使启用了队列,也不会将此事件放入队列。如果为 None,则使用 gradio 应用程序的队列设置。
batchboolFalse如果为 True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应具有相等的长度(并且最多为 max_batch_size)。然后函数 必须 返回元组列表(即使只有 1 个输出组件),元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列中调用,则将一起批处理的最大输入数量(仅在 batch=True 时相关)。
preprocessboolTrue如果为 False,则在运行 ‘fn’ 之前不会运行组件数据的预处理(例如,如果使用 Image 组件,则保留为 base64 字符串)。
postprocessboolTrue如果为 False,则在将 ‘fn’ 的输出返回给浏览器之前不会运行组件数据的后处理。
cancelsdict[str, Any] | list[dict[str, Any]] | NoneNone要取消的其他事件列表,当此侦听器触发时。例如,设置 cancels=[click_event] 将取消 click_event,其中 click_event 是另一个组件的 .click 方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat | NoneNone当客户端连接打开时,以 ‘every’ 秒为单位运行此事件。队列必须已启用。

blur 方法中的参数

参数名(Parameter)数据类型(Type)默认值(Default)描述(Description)
fnCallable | None要封装成界面的函数。通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,并且函数应返回单个值或元组,元组中的每个元素对应一个输出组件。
inputsComponent | list[Component] | set[Component] | NoneNone要用作输入的 Gradio 组件列表。如果函数不需要输入,则应使用空列表。
outputsComponent | list[Component] | NoneNone要用作输出的 Gradio 组件列表。如果函数不返回输出,则应使用空列表。
api_namestr | NoneNone定义此参数将在 API 文档中公开端点。
status_trackerNoneNone
scroll_to_outputboolFalse如果为 True,则在完成时将滚动到输出组件。
show_progress‘full’ | ‘minimal’ | ‘hidden’“full”如果为 True,则在等待期间显示进度动画。
queuebool | NoneNone如果为 True,则将请求放入队列中(如果已启用队列)。如果为 False,则即使启用了队列,也不会将此事件放入队列。如果为 None,则使用 gradio 应用程序的队列设置。
batchboolFalse如果为 True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应具有相等的长度(并且最多为 max_batch_size)。然后函数 必须 返回元组列表(即使只有 1 个输出组件),元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列中调用,则将一起批处理的最大输入数量(仅在 batch=True 时相关)。
preprocessboolTrue如果为 False,则在运行 ‘fn’ 之前不会运行组件数据的预处理(例如,如果使用 Image 组件,则保留为 base64 字符串)。
postprocessboolTrue如果为 False,则在将 ‘fn’ 的输出返回给浏览器之前不会运行组件数据的后处理。
cancelsdict[str, Any] | list[dict[str, Any]] | NoneNone要取消的其他事件列表,当此侦听器触发时。例如,设置 cancels=[click_event] 将取消 click_event,其中 click_event 是另一个组件的 .click 方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat | NoneNone当客户端连接打开时,以 ‘every’ 秒为单位运行此事件。队列必须已启用。

结语

本文介绍了Gradio的ColorPicker模块及其相关方法和参数。使用Gradio的ColorPicker模块,您可以轻松地实现交互式颜色选择器,并与其他组件和函数进行集成。通过调整参数和使用相应的方法,可以定制ColorPicker模块的行为和触发逻辑,以满足您的需求。Gradio是一个功能强大且易于使用的库,可以帮助您构建交互式界面和部署机器学习模型。


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/705174.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

环二肽试剂:Cyclo(-Hyp-Gly),环二肽含有一个六元环结构,结构稳定

编辑作者|陕西新研博美生物科技有限公司​ 英文名称:Cyclo(-Hyp-Gly) 规格标准:1g、5g、10g CAS:N/A 分子式:C7H10N2O3 分子量:170.17Cyclo(-Hyp-Gly)结构式: 反应机理: Cyclo(-Hyp-Gly)环二肽…

【vscode设置默认浏览器为google,配置默认浏览器没有google,VS Code 报Windows找不到文件‘chrome‘】

问题描述 VS Code 报Windows 找不到‘chrome’ 项目启动ctar鼠标左键快捷打开并没有使用默认浏览器 并且自己去浏览器配置并提供完整的选项 解决方案: 网上有很多其他的答案不过对我都没有 最后解决是在google里配置 不是默认浏览器会有个按钮 点一下就跳转到系统…

设计模式第19讲——命令模式(Command)

目录 一、什么是命令模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 代码结构 5.1 抽象命令(Command)——Command 5.2 接收者(Receiver)——Chef 5.3 具体命令(Co…

第十六章、Spring AOP开发中的一个坑

坑:在同⼀个业务类中,进⾏业务⽅法间的相互调⽤,只有最外层的⽅法,才是加⼊了额外 功能的(内部的⽅法,通过普通的⽅式调⽤,都调⽤的是原始⽅法)。如果想让内层的⽅法也 调⽤代理对象的⽅法,就要实现Appicat…

如何在SQL Server中实现Ungroup操作

概要 我们经常在SQL Server中使用group by语句配合聚合函数,对已有的数据进行分组统计。本文主要介绍一种分组的逆向操作,通过一个递归公式,实现ungroup操作。 代码和实现 我们看一个例子,输入数据如下,我们有一张产…

【需求实现】Tensorflow2的曲线拟合(二):进度条简化

文章目录 导读普通的输出方式上下求索TensorBoard是个不错的切入点与Callback参数对应的Callback方法官方的内置Callback官方进度条简单的猜测与简单的验证拼图凑齐了! 导读 在训练模型的过程中往往会有日志一堆一堆的困扰。我并不想知道,因为最后我会在…

C# Excel表列名称

168 Excel表列名称 给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。 例如: A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 示例 1: 输入:columnNumber 1 输出:“A”…

Unity与Android交互(4)——接入SDK

【前言】 unity接入Android SDK有两种方式,一种是把Unity的工程导出google project的形式进行接入,另一种是通过把Android的工程做成Plugins的形式进行接入。我们接入SDK基本都是将SDK作为插件的形式接入的。 对我们接入SDK的人来说,SDK也是…

一文了解PoseiSwap的质押系统

PoseiSwap 正在向订单簿 DEX 领域深度的布局,并有望成为订单簿 DEX 领域的早期开创者。

jmeter发送请求的request body乱码问题解决

JMeter的Put请求,响应结果中文出现乱码的解决方法 原文地址: http://www.taodudu.cc/news/show-808374.html?actiononClick

【云原生丶Kubernetes】从应用部署的发展看Kubernetes的前世今生

在了解Kubernetes之前,我们十分有必要先了解一下应用程序部署的发展历程,下面让我们一起来看看! 应用部署的发展历程 我们先来看看应用程序部署的3个阶段:从物理机部署到虚拟机部署,再到容器化部署,他们之…

Jenkins服务器连接JMeter分布式中的test-master

Jenkins想要连接test-master就要通过代理 将下载好的agent.jar传输到test-master机器上的/usr/local(实际上任何目录都可以)下 然后我们在/usr/local目录下输入: (这个是在Jenkins页面自己生成的命令) java -jar ag…

SQL频率低但笔试会遇到: 触发器、索引、外键约束

一. 前言 在SQL面笔试中,对于表的连接方式,过滤条件,窗口函数等肯定是考察的重中之重,但是有一些偶尔会出现,频率比较低但是至少几乎会遇见一两次的题目,就比如触发器,索引和外键约束&#xff0…

C++ 教程

C 教程 C 是一种高级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C 可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。 本教程通过…

Stanford点云公开数据集:S3DIS

S3DIS (Stanford Large-Scale 3D Indoor Spaces Dataset) 是斯坦福大学提供的大场景室内3D点云数据集,包含6个教学和办公Area,总共有695,878,620个带有色彩信息以及语义标签的3D点。 该数据集目前已经被包含在一个更大的Full 2D-3D-S Dataset当中&#x…

深入探讨Seata RPC模块的设计与实现

在Seata中,TM,RM与TC都需要进行跨进程的网络调用,通常来说就会需要RPC来支持远程调用,而Seata内部就有自身基于Netty的RPC实现,这里我们就来看下Seata是如何进行RPC设计与实现的 RPC整体设计 抽象基类AbstractNettyRemoting 该类是…

Dinky:问题总结

一、启动时指定flink版本,因为dinky本身也集成了部分flink ./auto.sh start 1.12 二、数据源管理新增mysql时的url jdbc:mysql://ip:3306/dinky?useUnicodetrue&characterEncodingutf8&useSSLfalse&autoReconnecttrue&failOverReadOnlyfalse 不要…

2、JAVA 分支结构 switch结构 for循环

1 分支结构 1.1 概述 顺序结构的程序虽然能解决计算、输出等问题 但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构 1.2 形式 1.3.1 练习:商品打折案例 创建包: cn.tedu.basic 创建类: TestDiscount.java 需求: 接收用户输入的原价。满1000打9折…

网工内推 | 运营商招网工,3年以上网安经验,CISP/CCIE认证优先

01 微算互联 招聘岗位:网络工程师 职责描述: 1、负责生产系统的网络管理、网络监控告警、网络设备数据资料备份/恢复容灾管理; 2、海外、tob 、私有云网络搭建及运维7 X 24小时值班; 3、负责业务系统工程网络层面规划、建设、升级…

Java之Javac、JIT、AOT之间的关系

Javac:javac 是java语言编程编译器。全称java compiler。但这时候还是不能直接执行的,因为机器只能读懂汇编,也就是二进制,因此还需要进一步把.class文件编译成二进制文件。 Java的执行过程 详细流程 结论:javac编译后…