Java 环境配置 -- Java 语言的安装、配置、编译与运行
大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 002 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自己的技术栈的同学。与此同时,本专栏的所有文章,也都会准备充足的代码示例和完善的知识点梳理,因此也十分适合零基础的小白和要准备工作面试的同学学习。当然,我也会在必要的时候进行相关技术深度的技术解读,相信即使是拥有多年 Java 开发经验的从业者和大佬们也会有所收获并找到乐趣。
–
上一篇的内容中我们介绍了 Java 语言的概述,明白了它是什么,有什么特点,并且有着怎样的过去和会有怎样的未来。而在这篇文章中,首先,我们将会先聊一聊 Java 的体系、环境、和版本,因为如果是刚入门的小伙伴,没有去特意了解的话,确实会存在相关的困惑(现在网上大多数文章对相关内容的介绍已经过时了);然后,我们会进行真正的开始,即 Java 语言的安装、配置、编译与运行;在最后,我们再了解一下,当下最为流行的 Java 开发 IDE 工具 – IntelliJ IDEA!
最后在前言的末尾我补充一下,如果这篇文章,对大家有所帮助或收获一定的乐趣和想法,那么非常欢迎大家能够,点赞、评论、收藏、订阅。这些也将是我持续更新的最大动力。
文章目录
- 1、Java 体系&环境
- 1.1、Java 三大体系
- 1.2、Java 三大环境
- 1.3、Java 两大版本
- 2、Java安装&配置
- 2.1、Java下载
- 2.2、Java 安装
- 2.3、Java 配置
- 2.4、Java 验证
- 3、Java 编译&运行
- 3.1、Java 的运行过程
- 3.2、Java 编译/解释型语言
- 3.3、Java 编译执行 Demo
- 4、Java 开发工具:IDEA
- 4.1、IDEA 简介
- 4.2、IDEA 下载和安装
1、Java 体系&环境
1.1、Java 三大体系
1999 年 Sun 公司根据应用的领域不同把 Java 技术划归为三个平台,当时分别称为 J2SE、J2EE 和 J2SE,后改名为 Java SE、Java EE 和 Java ME。近些年来,对于新接触 Java 这门语言的同学们来说,Java 三大体系平台,总是会在入门的时候提及到,但是在后续的应用使用时却没发现需要根据不同场景进行细分,这是为什么呢?
首先,这里我们简单先回顾一下 Java 三大体系的概念:
- Java SE(Java Platform,Standard Edition):Java 平台标准版,它是 JavaEE 和 JavaME 的基础,提供了 Java 的核心功能。它包含了 Java 语言基础库、Java 虚拟机 JVM 和一些基础的工具,主要用于开发桌面应用和商用应用;
- Java EE(Java Platform,Enterprise Edition):Java 平台企业版,建立在 Java SE 的基础之上,是支持企业级应用的 Java 平台,提供了一套完整的企业级应用解决方案,包括 Web 应用服务器、EJB、Servlet、JSP 等;
- Java ME(Java Platform,Micro Edition):Java 平台微型版,是一个针对移动设备和嵌入式设备的 Java 平台。Java ME 包含了一套轻量级的 API 和一个专为小型设备优化的 JVM,主要用于开发手机、电视、工业控制等嵌入式设备的应用。
然而现在基本上 Java EE 和 Java ME 官方都基本上没有更新了。只有 Java SE 还在每半年更新一个大版本。基本上现在我们说的 Java,JavaSDK,Java 开发工具包其实都指的就是 Java SE。
那为什 么Java EE 和J ava ME 现在基本上都没了呢?
-
Java ME 没了很好理解,时代的弃子,因为自从有了智能手机和 Android 的出现,世上再无 ME。因为智能手机的内存已经可以和 PC 相当了,所以不需要一个精简版的 Java ME 了。而是一个更需要支持智能手机的开发工具包,所以 Google 就魔改了 Java。
-
Java EE 没了是因为 Java EE 提供的东西太有限了,服务器开发需要大量软件库的支持。例如各种类和对象的管理,高性能网络 IO的支持,各种中间件的支持,这些 Java EE 提供的东西都太弱了,或者说不如 Java SE + 其他开源框架的方式。
所以大家都没有直接再用 Java EE 了,而是用 Java SE 加上一些开源的框架和第三方库来做服务器端的开发,例如 Spring,MyBatis 啥的。当然 Java EE 的规范没有被摒弃掉,可以说当前主流的 Web 应用框架能力是在 Java EE 基础上提供的。
所以 Java 刚入门的同学其实只需要学好 Java SE 就行了,EE 和 ME 面试和工作时基本都用不到了,只进行基本的了解即可。
1.2、Java 三大环境
了解了 Java 三大体系之后,我们再来了解一下 Java 三大环境。
JDK(Java Development Kit)、JRE(Java Runtime Environment)和 JVM(Java Virtual Machine)都是 Java 语言生态中的重要组件,它们之间的关系密不可分。
这三个组件的定义:
- JDK(Java Development Kit):JDK 是 Java 开发工具包,是用于开发 Java 应用程序的开发环境。它包括了Java 编译器(javac)、Java 运行时环境(JRE)以及其他一些用于开发、调试和测试的工具,我们本篇接下来进行的安装就是 JDK;
- JRE(Java Runtime Environment):JRE 是 Java 运行时环境,它包含了运行 Java 程序所需要的环境。也就是说,只要你的机器上安装了 JRE,就可以运行编译后的 Java 字节码程序;
- JVM(Java Virtual Machine):JVM 是 Java 虚拟机,它是一种可以执行 Java 字节码的虚拟计算机。JVM 是 JRE 的一部分,它负责解释和执行 Java 字节码,使得 Java 程序可以在任何支持 JVM 的平台上运行。
接下来,我们来看看它们之间的关系:
JDK、JRE 和 JVM 的关系可以理解为:JDK 包含了 JRE 和开发工具,JRE 包含了 JVM 和运行 Java 程序所需的环境,而 JVM 则是运行 Java 程序的核心部分。三者共同构成了完整的Java开发与运行环境。
-
JDK 包含了 JRE,也就是说,如果你安装了 JDK,那么你也已经安装了 JRE。同时,JDK 也包含了编译 Java 程序的工具,例如编译器和调试器(JDK = JRE + 开发工具集)。
-
JRE 则包含了 JVM,也就是说,只要你的机器上安装了 JRE,那么你也已经安装了 JVM。JVM 是 JRE 的核心部分,它使得 Java 程序可以在任何平台上运行(JRE = Jvm + JavaSE 标准类库)。
1.3、Java 两大版本
在 2006 年 11 月 13 日的 JavaOne 大会上,Sun 公司宣布计划将开源 Java,并建立了 Open JDK 社区,随后 Sun 在 GPL 下陆续发布了 Java 类库的源代码(除了一些被第三方授权给 Sun 且 Sun 无法根据 GPL 重新授权的受限部分之外);
此时的 JDK 即为 OpenJDK。OpenJDK 是 Java SE 的开源实现,他由 Sun 和 Java 社区提供支持,2009 年 Oracle 收购了 Sun 公司,自此 Java 的维护方之一的 Sun 也变成了 Oracle。
OpenJDK 和 OracleJDK 是 Java 开发和运行环境的两种实现,它们的主要区别在于许可证和一些特性:
-
OpenJDK:OpenJDK 是 Java SE 的开源实现,由 Sun 公司和 Java 社区提供支持。OpenJDK 的许可证是 GPL v2,这意味着你可以自由地使用和修改源代码,但如果你分发修改后的版本,必须以同样的许可证开源;
-
OracleJDK:OracleJDK 是 Oracle 公司基于 OpenJDK 源代码构建的 JDK,它的许可证是 Oracle 二进制代码许可协议。这意味着你可以免费使用 OracleJDK,但如果你想用于商业用途,可能需要付费。
技术上,OracleJDK 和 OpenJDK 没有重大的差异,但 OracleJDK 提供了一些额外的性能优化和商业特性。此外,Oracle 对 OracleJDK 提供商业支持,而 OpenJDK 则主要依赖社区支持。
本质上,OracleJDK 也是 OpenJDK 的发行版之一目前使用最多的 Java builds 仍旧是 OracleJDK,但其后分别还有 AdoptOpenJDK、Oracle’s OpenJDK、Amazon Corretto、Azul Zulu,以及国内的 Alibaba Dragonwell、Huawei bisheng JDK、Tencent Kona 等;
如果你是开发开源项目或者个人使用,OpenJDK 是一个很好的选择。如果你需要商业支持或者 OracleJDK 的特定特性,那么你可能需要选择 OracleJDK。
2、Java安装&配置
2.1、Java下载
Java 官方下载地址:https://www.oracle.com/java/technologies/downloads/
点击上方链接即可跳转到官网下载界面,根据需要选择对应配置进行下载!
2.2、Java 安装
对于 Windows 和 MacOS 来说,Java 的安装步骤很简单,我们可以选择对应的安装程序(.exe
/ .dmg
)然后根据步骤来进行安装:
- Mac 系统的默认安装路径为下述地址:
~/Library/Java/JavaVirtualMachines/
- Windows 在安装时注意指定好安装路径即可
- 对于 Linux 系统来说,下载好二进制安装包后,解压到指定位置即可,例如:
tar -zxvf jdk-8u251-linux-x64.tar.gz
2.3、Java 配置
对于 Linux 和 MacOS 来说,配置 $JAVA_HOME
环境变量,找到以下三个配置文件中的任意一个:
~/.bash_profile
~/.bashrc
~/.zshrc
添加下面这行代码,之后使用 source 更新即可:
# 以 Java8 举例,其中 "JAVA_HOME=" 后面是 Java JDK 的安装地址
export JAVA_HOME=/Users/liziheng/Library/Java/JavaVirtualMachines/corretto-1.8.0_332
export PATH=$JAVA_HOME/bin:$PATH:.
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
对于 windows 系统:
-
打开系统设置,点击高级系统设置,打开环境变量以后点击系统变量的新建:新建 JAVA_HOME 变量(单词大写,符合是英文),如果是用默认安装路径可以直接复制使用;
-
找到系统变量中的 Path 变量,选中然后点击编辑,然后点击新建,这里都一样,可以直接复制使用:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
- ClassPath 环境变量:点击系统变量新建然后在新建系统变量框里面输入下面内容即可
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
2.4、Java 验证
打开终端,输入 java -version
,查看安装版本:
> java -version
openjdk version "1.8.0_332"
OpenJDK Runtime Environment Corretto-1.8.0_332 (1.8.0_332_b08)
OpenJDK 64-Bit Server VM Corretto-1.8.0_332 (build 25.302-b08, mixed mode)
3、Java 编译&运行
3.1、Java 的运行过程
Java 程序的运行必须经过编写、编译和运行 3 个步骤。
- 编写:在 Java 开发环境中编写程序代码,形成后缀名为
.java
的 Java 源文件。 - 编译:使用 Java 编译器(
javac
命令)对源文件进行编译,如果源代码中没有语法错误,编译器会生成后缀名为.class
的字节码文件。这个字节码文件是跨平台的,可以在任何安装了 Java 运行环境(JRE)的机器上运行。 - 运行:使用 Java 解释器(
java
命令)对字节码文件进行解释运行,将字节码翻译成机器代码并执行,最后显示运行结果。
这个过程中,Java 的跨平台特性得到了充分体现,即"一次编写,到处运行"。
Java 程序运行流程如图所示:
Java 字节码和 Java 虚拟机(JVM)是实现 Java 跨平台特性的关键。
Java 字节码:Java 字节码是一种中间代码,是 Java 源文件经过 Java 编译器编译后生成的。它是一种二进制文件,既不依赖于具体的硬件环境,也不依赖于具体的操作系统环境。Java 字节码需要由 Java 解释器进行解释执行,因此 Java 是一种在编译基础上进行解释运行的语言。
Java 虚拟机(JVM):JVM 是运行 Java 程序的软件环境,Java 解释器是 JVM 的一部分。JVM 负责将 Java 字节码翻译成具体硬件环境和操作系统平台下的机器代码并执行。这样,Java 程序就可以在任何安装了 JVM 的机器上运行,无需考虑当前的硬件平台和操作系统环境,也无需考虑字节码文件是在何种平台上生成的。
JVM 把这种不同软、硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM 是 Java 平台架构的基础,Java 的跨平台特性正是通过在 JVM 中运行 Java 程序实现的。
3.2、Java 编译/解释型语言
Java 是编译型语言还是解释性语言?Java 语言既有编译型语言的特性,也有解释型语言的特性,它结合了两者的优点。
首先,编译型语言的特性:Java 程序需要先被编译成字节码(.class
文件),这个过程是编译过程。编译可以在编程阶段发现和修复一部分错误,提高程序的运行效率。
其次,解释型语言的特性:Java 字节码并不是可以直接运行的机器代码,它需要由 JVM 进行解释执行。这个过程使得 Java 程序具有了跨平台的能力,即 “一次编写,到处运行”。
因此,Java 既是编译型语言,也是解释型语言。但由于其跨平台的特性,通常我们更倾向于将 Java 归类为解释型语言。
3.3、Java 编译执行 Demo
我们可以通过一个简单的 “Hello World” Demo 程序来了解 Java 的编译和执行过程。
首先,我们编写一个简单的 Java 程序:
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}
}
将以上代码保存为 HelloWorld.java
文件。
然后,我们使用 Java 编译器 javac
对源文件进行编译:
javac HelloWorld.java
编译成功后,会在当前目录下生成一个 HelloWorld.class
文件,这就是我们的字节码文件。
最后,我们使用 Java 解释器 java
来运行这个字节码文件:
java HelloWorld
运行成功后,控制台会输出 “Hello, World!”,这就是我们的程序运行结果。
以上就是 Java 程序的编译和执行过程,通过这个过程,我们可以看到 Java 程序是如何从源代码变为可以运行的程序的。
4、Java 开发工具:IDEA
4.1、IDEA 简介
IDEA 全称 IntelliJ IDEA,是 Java 编程语言的集成开发环境。IntelliJ 在业界被公认为最好的 Java 开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE 支持、各类版本工具(GIT、SVN 等)、JUnit、CVS整合、代码分析、 创新的 GUI 设计等方面的功能可以说是超常的。
IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持 HTML,CSS,PHP,MySQL,Python 等。免费版只支持 Java、Kotlin 等少数语言
4.2、IDEA 下载和安装
下面就带大家来安装一下 IDEA 旗舰版。
进入官网,点击下载::https://www.jetbrains.com//idea/download/
版本选择参考:
- 如果你是学生或者高校老师,可以免费申请使用旗舰版,不过这个需要验证你的身份,大概7天左右,那我们可以直接使用旗舰版,因为他30天免费使用,等到认证成功,我们可以免费使用;
- 学生如何申请免费IDEA,如果你们学校没有配置邮箱,可以到学信网下载文件,选择官方文件;
- 如果对功能要求不是很高,也可以使用社区版,比较方便,一些基础的功能都是有的;
- 如果想使用旗舰版,建议使用正版软件(不过太贵了,一年好几千);也可以去网站上找一些版本(你懂得),但不要进行商业使用。
下载后我们双击安装包,按照提示安装即可!
相关文章:
Java 环境配置 -- Java 语言的安装、配置、编译与运行
大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 002 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进…...
升级最新版openssh-9.7p1及openssl-1.1.1h详细步骤及常见问题总结
近期因为openssh相继被漏洞扫描工具扫出存在漏洞,所以考虑升级操作系统中的openssh和openssl为最新版本,来避免漏洞风险。期间的升级过程及遇到的疑难问题,特此记录下来,供有需要的人参考。 本次目标是升级 openssh 为 9.7p1 版本…...
学习使用 Frida 过程中出现的问题
一、adb shell命令报错:error: no devices found 目前该问题解决方法仅供参考,可先看看再选择试试!!!!! 查看此电脑也会发现没有出现手机型号文件夹。 第一步: 检查一下手机开了u…...
Java实现简单词法、语法分析器
1、词法分析器实现 词法分析器是编译器中的一个关键组件,用于将源代码解析成词法单元。 词法分析器的结构与组件: 通常,词法分析器由两个主要组件构成:扫描器(Scanner)和记号流(Token Stream&a…...
Python实现半双工的实时通信SSE(Server-Sent Events)
Python实现半双工的实时通信SSE(Server-Sent Events) 1 简介 实现实时通信一般有WebSocket、Socket.IO和SSE(Server-Sent Events)三种方法。WebSocket和Socket.IO是全双工的实时双向通信技术,适合用于聊天和会话等&a…...
python中的解包操作(*和**)
在Python中,* 和 ** 用于函数定义和函数调用时的参数解包和传递,它们有不同的用途和作用。以下是它们的详细解释和区别: 单星号 (*) 1. 位置参数解包(函数调用) 在函数调用时,* 用于将列表或元组解包成位…...
Lua 时间工具类
目录 一、前言 二、函数介绍 1.DayOfWeek 枚举定义 2.GetTimeUntilNextTarget 3.GetSpecificWeekdayTime 三、完整代码 四、总结 一、前言 当我们编写代码时,我们经常会遇到需要处理日期和时间的情况。为了更方便地处理这些需求,我们可以创建一个…...
Qt——Qt网络编程之TCP通信客户端的实现(使用QTcpSocket实现一个TCP客户端例程)
【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》 《QT开发实战》 《Android开发实战》 《实用硬件方案设计》 《结构建模设…...
Qt信号槽与函数直接调用性能对比
1. 测试方法 定义一个类Recv,其中包含一个成员变量num和一个成员函数add(),add()实现num的递增。 另一个类Send通过信号槽或直接调用的方法调用Recv的add函数。 单独开一个线程Watcher,每秒计算num变量的增长数值,作为add函数被调…...
Python中的异常处理:try-except-finally详解与自定义异常类
Python中的异常处理:try-except-finally详解与自定义异常类 在Python编程中,异常处理是确保程序健壮性和可靠性的重要部分。当程序遇到无法预料的错误时,异常处理机制能够防止程序崩溃,并允许我们采取适当的措施来解决问题。本文…...
vscode软件上安装 Fitten Code插件及使用
一. 简介 前面几篇文章学习了 Pycharm开发工具上安装 Fitten Code插件,以及 Fitten Code插件的使用。 Fitten Code插件是是一款由非十大模型驱动的 AI 编程助手,它可以自动生成代码,提升开发效率,帮您调试 Bug,节省…...
人工智能小作业
1.问题 将下列句子用一阶谓词形式表示: (1)雪是白的。 (2)数a和数b之和大于数c。 (3)201班的学生每人都有一台笔记本电脑。 2.答案 句子(1)“雪是白的”可以表示为: White(雪)。 句子(2)“数a和数b…...
程序员搞副业一些会用到的工具
微信号采集(爬虫)技术的选型 那么,我们应该使用什么技术来从庞大的网页内容中自动筛选和提取微信号呢?答案就是:数据采集技术,也就是爬虫技术。 然而,数据采集技术种类繁多,我们具体应该采用哪一个呢&…...
k8s更改master节点IP
背景 搭建集群的同事未规划网络,导致其中有一台master ip是192.168.7.173,和其他集群节点的IP192.168.0.x或192.168.1.x相隔太远,现在需要对网络做整改,方便管理配置诸如绑定限速等操作。 master节点是3节点的。此博客属于事后记…...
c++【入门】已知一个圆的半径,求解该圆的面积和周长?
限制 时间限制 : 1 秒 内存限制 : 128 MB 已知一个圆的半径,求解该圆的面积和周长 输入 输入只有一行,只有1个整数。 输出 输出只有两行,一行面积,一行周长。(保留两位小数)。 令pi3.1415926 样例…...
c#通过sqlsugar查询信息并日期排序
c#通过sqlsugar查询信息并日期字段排序 public static List<Sugar_Get_Info_Class> Get_xml_lot_xx(string lot_number){DBContext<Sugar_Get_Info_Class> db_data DBContext<Sugar_Get_Info_Class>.OpDB();Expression<Func<Sugar_Get_Info_Class, b…...
使用 Qwen-Agent 将 8k 上下文记忆扩展到百万量级
节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 汇总合集…...
Vyper重入漏洞解析
什么是重入攻击 Reentrancy攻击是以太坊智能合约中最具破坏性的攻击之一。当一个函数对另一个不可信合约进行外部调用时,就会发生重入攻击。然后,不可信合约会递归调用原始函数,试图耗尽资金。 当合约在发送资金之前未能更新其状态时&#…...
53.ReentrantLock原理
ReentrantLock使用 ReentrantLock 实现了Lock接口, 内置了Sync同步器继承了AbstractQueuedSynchronizer。 Sync是抽象类,有两个实现NonfairSync非公平,FairSync公平。 所以ReentrantLock有公平锁和非公平锁。默认是非公平锁。 public sta…...
“论边缘计算及应用”必过范文,突击2024软考高项论文
论文真题 边缘计算是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的分布式开放平台(架构),就近提供边缘智能服务。边缘计算与云计算各有所长,云计算擅长全局性、非实时、长周期的大数据处理与分析,能够在…...
浅谈安全用电管理系统对重要用户的安全管理
1用电安全管理的重要性 随着社会经济的不断发展,电网建设力度的不断加大,供电的可靠性和供电质量日益提高,电网结构也在不断完善。但在电网具备供电的条件下,部分高危和重要电力用户未按规定实现双回路电源线路供电࿱…...
Docker的资源限制
文章目录 一、什么是资源限制1、Docker的资源限制2、内核支持Linux功能3、OOM异常4、调整/设置进程OOM评分和优先级4.1、/proc/PID/oom_score_adj4.2、/proc/PID/oom_adj4.3、/proc/PID/oom_score 二、容器的内存限制1、实现原理2、命令格式及指令参数2.1、命令格式2.2、指令参…...
MongoDB $rename 给字段一次重新命名的机会
学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第58篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。 在日常编写程序过程中,命名错误是经常出现的错误。拼写错误的单词,大小写字…...
OnlyOwner在Solidity中是一个修饰符,TypeError:
目录 OnlyOwner在Solidity中是一个修饰符 TypeError: Data location must be "memory" or "calldata" for parameter in function, but none was given. function AddDOm (address dataOwnermAddress, string dataProduct, string dataNotes) OnlyOwner …...
数据Ant-Design-Vue动态表头并填充
Ant-Design-Vue是一款基于Vue.js的UI组件库,广泛应用于前端开发中。在Ant-Design-Vue中,提供了许多常用的组件,包括表格组件。表格组件可以方便地展示和处理大量的数据。 在实际的开发中,我们经常会遇到需要根据后台返回的数据动…...
验证码案例
目录 前言 一、Hutool工具介绍 1.1 Maven 1.2 介绍 1.3 实现类 二、验证码案例 2.1 需求 2.2 约定前后端交互接口 2.2.1 需求分析 2.2.2 接口定义 2.3 后端生成验证码 2.4 前端接收验证码图片 2.5 后端校验验证码 2.6 前端校验验证码 2.7 后端完整代码 前言…...
python身份证ocr接口功能免费体验、身份证实名认证接口
翔云人工智能API开放平台提供身份证实名认证接口、身份证识别接口,两者的相结合可以实现身份证的快速、精准核验,当用户在进行身份证实名认证操作时,仅需上传身份证照片,证件识别接口即可快速、精准的对证件上的文字信息进行快速提…...
屏幕空间反射技术在AI绘画中的作用
在数字艺术和游戏开发的世界中,真实感渲染一直是追求的圣杯。屏幕空间反射(Screen Space Reflection,SSR)技术作为一种先进的图形处理手段,它通过在屏幕空间内模拟光线的反射来增强场景的真实感和视觉冲击力。随着人工…...
JDK下载安装Java SDK
Android中国开发者官网 Android官网 (VPN翻墙) 通过brew命令 下载OracleJDK(推荐) 手动下载OracleJDK(不推荐) oracle OracleJDK下载页 查找硬件设备是否已存在JDK环境 oracle官网 备注: JetPack JavaDevelopmentKit Java开发的系统SDK OpenJDK 开源免费SDK …...
【ARM Cache 系列文章 1.2 -- Data Cache 和 Unified Cache 的详细介绍】
请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 Data Cache and Unified Cache数据缓存 (Data Cache)统一缓存 (Unified Cache)数据缓存与统一缓存的比较小结 Data Cache and Unified Cache 在 ARM架构中,缓存(…...
怎么做电脑端网站设计稿/电脑培训学校哪家好
1 继承的概念 在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。 在程序中,如果想声明一个类继承另一个类&…...
外贸网站建设维护/补习班
http://symphony.b3log.org/article/1381403388981 #正向、反向代理解释一、什么是squid?squid可以做代理也可以做缓存。squid缓存不仅可以节省宝贵的带宽资源, 也可以大大降低服务器的I/O。squid不仅可以做正向代理, 又可以做反向代理。正向代理, squid后面是客…...
手机网站开发与pc网站开发的不同/深圳网络推广公司排名
综述 最近已经在做Tornado的项目 Tornado是基于异步IO的 所以理解异步IO十分重要 理解 :)例子来自网络 老张爱喝茶,废话不说,煮开水。 出场人物:老张,水壶两把(普通水壶,简称…...
四博互联做的网站/包括哪些内容
首先要了解什么叫对称加密和非对称加密,消息摘要这些知识。 1. 非对称加密 在通信双方,如果使用非对称加密,一般遵从这样的原则:公钥加密,私钥解密。同时,一般一个密钥加密,另一个密钥就可以解密…...
当当网网站建设方案/站长工具seo推广
(一)Spring IoC 重要概念 1、控制反转(Inversion of control): 控制反转是一种通过描述(在java中通过xml或者注解)并通过第三方去产生或获取特定对象的方式。 控制反转IoC(Inversion of Control…...
网站做视频的软件叫什么/杭州网站seo价格
void doFun(){}; var timer new DispatcherTimer { Interval TimeSpan.FromSeconds(2) }; timer.Start();timer.Tick (sender2, args) >{timer.Stop();doFun();};...