java
Java语言特点
目录:
一、Java的开发技术
二、Java同行业内优势
三、Java支持多线编程
Java之所以可以得到持续的发展力以及良好的生态系统,这完全取决于Java的技术特征。
1.Java的开发技术
Java的开发技术是一个行业内通用的技术实现标准;
Java本身也算是一个半开源的产品,所以很多的厂商得以解除Java的底层,这样使得Java 开发的更加透明;并且Java是一门面向对象的编程语言:这样使得Java语言语法结构更加方便开发者接受,这些面向对象的设计思想还在不断进行着扩充(不同的JDK版本);
2.Java同行业内的优势
Java提供有方便的内存回收处理机制:像一些编程语言里面需要明确的手工进行对象的回收与释放,否则程序将无法正常提供支持,但是Java可以提供自动内存回收操作,这样处理会更加方便一些(这里面牵扯到一些优化方面的问题);同时避免了复杂的指针问题,而是用更加简单的引用来代替指针:指针虽然是一种高效的内存处理模式,但是其需要较强的逻辑分析,而Java在设计的时候充分考虑到了这一点,所以开发者直接利用引用就可以简化指针的处理,而引用也是在所有处理过程之中,最为麻烦最难理解的部分。
3.Java支持多线编程
Java是为数不多支持多线程编程的开发语言,这样就可以使得单位时间内,处理的性能得到提升(性能的提升并不是绝对的),多线程也是Java开发之中最难以理解的部分,而正确的多线程处理,才是处理问题的核心所在;其次Java提供有高效的网络处理能力,可以基于NIO实现更加高效的数据传输处理,Java具有良好的可移植性,这样就可以提升一个程序的适用范围,而且Java语言足够简单。
Java的可移植性
目录:
一、Java的可移植性.
二、Java虚拟机.
三、JVM应用程序运行机制.
1.Java的可移植性
Java语言之中最大的特点在于其可移植性的支持,所谓的可移植性指的是同一个程序可以在不同的操作系统之间任意的进行部署,这样就减少了开发的难度在Java里面如果想要实现可移植性的控制,那么主要是依靠的是JVM(Java的虚拟机)
2.Java虚拟机(Java Virtual Machine)
Java虚拟机是一个由软件或硬件模拟出来的计算机,所有的程序只要有Java虚拟机的支持,就可以实现程序的执行,并且不同的操作系统上会有不同版本的JVM存在,这样就可以实现移植性。
计算机高级编程语言类型:编译型 解释型Java语言程序需要先编译形成字节码文件,而后在JVM进行解释文件,解释所有Java程序的解释都要放在虚拟机上处理,Java虚拟机(JVM)是用来读取并处理经编译过的与平台无关的字节码class文件。
Java编译器针对Java虚拟机产生的class文件,因此是独立于平台的,Java解释器负责将Java虚拟机的代码在特定的平台上运行。
3.JVM应用程序运行机制
所有*.java的源代码程序最终都是需要经过编译后才可以使用的,但是编译造成的程序代码并不是绑定在某个具体操作系统上的程序,而是一种通用性的程序,而这种通用性的程序就是JVM所能够识别的代码。
所有的程序并不是直接运行在操作系统上,而是通过JVM执行,这样一来肯定要比直接操作在系统上执行的程序的处理速度要慢,先期的确是一个问题,但是后来由于硬件技术的飞跃发现这些问题已经可以忽略了,但是目前依然会存在有JVM调优问题。
一句话秒懂JVM
就像万能翻译官:把Java代码变成任何手机/电脑都能听懂的语言,还自带内存保姆(自动清理垃圾)和性能教练(智能加速)
🎮 生活化比喻
graph LR 作家(你写Java代码) --> 剧本(.java文件) 剧本 --> 翻译官(JVM编译器) 翻译官 --> 通用剧本(字节码.class) 通用剧本 --> 各地演员[Windows/Mac/手机/智能手表] 各地演员 --> 表演效果(程序运行)
🔧 三大核心功能
-
跨平台翻译
- 字节码 ≈ 世界语(任何设备安装JVM就能运行)
- 2025新特性:WASM直译(浏览器直接运行Java)
-
内存管家
- 自动分配内存空间
- ZGC垃圾回收(暂停时间<1ms,适合游戏/VR)
javaCopy Code// 自动内存管理示例 var gameObj = new VRModel(); // JVM自动找内存位置 // 使用完毕自动标记回收...
-
性能加速器
- 即时编译(JIT):把高频代码变成本地机器码
- AI预测编译(Java25新增):预判要执行的代码提前优化
🚀 2025版JVM工作流程
sequenceDiagram 代码->>字节码: javac编译 字节码->>解释器: 首次执行逐行翻译 解释器->>JIT编译器: 发现热点代码 JIT编译器->>机器码: 生成优化版本地代码 机器码->>CPU: 闪电般执行 GC->>内存: 自动回收闲置内存
📦 2025年新特性速览
- 量子计算支持:通过
QuantumJVM
选项启用 - 脑机接口优化:神经信号延迟降低至5ms
- 全息内存管理:3D可视化GC过程(使用
-Xhologram
参数) - 自愈式运行时:遇到内存泄漏自动修复
💡 小白常见问题
Q:为什么Java程序有时启动慢?
A:JVM在"预热"(预加载类+编译优化),用GraalVM原生镜像
可解决
Q:安卓手机也用JVM吗?
A:2025年起统一为ART-JVM混合引擎(兼容安卓/iOS)
Q:会和其他程序抢内存吗?
A:新一代JVM有弹性内存池,不用时自动返还系统
JDK简介
目录:
一、JDK特性
二、JDK发展历程
三、JDK下载方式
1.JDK特性
Java语言属于编译型与解释型的开发语言,对于Java语言,如果要想进行行开发,就一定要进行JDK的安装与配置,而JDK要想获取则需要通过官方网站获得,并且也需要在本机上进行配置。
主要的特性是提供了Lambda表达式
2.JDK发展历程
最早的时候JDK都是有SUN公司提供的(www.sun.com),但是后来SUN公司被Oracle公司收购,之后如果还要获得则就必须登陆Oracle官方网站(www.Oracle.com),
对于JDK而言,其本身也有一段自己的发展历史,主要有如下的几个标志性的版本:
【1995年05月23】,JDK1.0的开发包发布,同时在1996年正式提供下载,标志着Java的诞生;
【1998年1月04】,JDK1.2版本推出,而后Java正式更名为Java2(只是Java的升级版本);
【2005年05月23】,推出了JDK1.5版本,同时这个版本也是带来新特性以及开发支持更多的标志性的历史版本,可以说这一版本直接决定了Java后续十年的技术核心;
【2014年】 Java提供了JDK1.8版本,并且支持有Lambda表达式,可以使用函数编程;
【2017年 】Java提供了JDK1.9版本,进一步提升JDK1.8的稳定性;
【2018年】Java提供了JDK1.10版本,是属于JDK1.9的稳定版本;
(但是需要注意对于JDK1.8 、JDK1.9、JDK1.10三个版本做一个特别说明:如果要进行实际项目的生产环境部署,现阶段还行该以JDK1.8为主;JDK1.9和JDK1.10的区别不大,也就是说不管是使用JDK1.9或者JDK1.10效果是类似的)。
3.JDK下载方式
以JDK1.10为例,下载时会有下载环境项,能看到JRE选项,那么JRE指的是Java运行时的环境,就是说只提供程序的解释功能,不提供程序的开发功能,当本机已经配置好了JDK之后会自动进行JRE的更新处理。
下载JDK需要先接受下载协议,以后才可以选择版本下载,在计算机上实际上只有三类操作系统:Windows操作系统、UNIX操作系统、类UNIX操作系统(Linux、MacOS),根据计算机的操作系统选择下载开发包。
JDK的安装与配置
目录:
一、JDK安装
二、JDK配置
1.JDK的安装
首先当JDK下载完成之后由于其本身提供的是一个windows程序的安装结构,所以可以直接双击打开进行安装,选择安装的硬盘,
在JDK之中默认支持JRE,所以对于JRE就可以在安装JDK时同时进行配置。
2.JDK配置
安装完成以后,需要进行JDK的配置处理,在JDK里面所有可执行程序的路径为在安装时所选择的硬盘(例:D:\java\jdk-10\bin),在配置时主要用的是“javac.exe”和“Java.exe”的两个指令,
但是这两个命令并不属于windows本身,如果想在命令行里面进行使用,就必须在windows 的系统环境之中进行可执行程序的路径配置:
①右键【计算机】
②选择【属性】
③【高级系统设置】
④【环境变量】
⑤【系统产量】里面找到【Path】之后选择编辑,
然后把需要用到的JDK的命令拖到【系统产量】上来。
如果此时的命令行为方式已经打开了,那么将无法进行新的环境属性的读取,必须重新启动命令行方式之后才可以加载新的环境属性配置(加载Path路径)。如果在测试的时候能现实当前路径的话那么就说明JDK的程序已经安装成功了
ps:如果以后执行多个路径,那么那个路径中间需要用“分号”来进行分割。
安装成功了以后就可以进行正常代码编
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】