Java的认识
一、Java 的历史Java 的诞生可以追溯到 20 世纪 90 年代初期。当时Sun Microsystems 公司后来被 Oracle 收购的 James Gosling 及其团队启动了一个名为 “Green Project” 的项目。这个项目旨在开发一种能够在各种消费类电子产品上运行的编程语言和平台以满足当时交互式电视等设备的编程需求。最初Java 被设计成一种面向对象、可移植、分布式且健壮的语言它借鉴了 C 和 C 的许多语法特性但摒弃了其中一些复杂和容易出错的部分比如指针运算和多重继承。1995 年Java 正式对外发布凭借其 “一次编写到处运行”Write Once, Run Anywhere的特性迅速在互联网编程领域崭露头角。Java 的出现极大地简化了跨平台应用程序的开发使得开发人员可以编写一次代码就能在不同操作系统和硬件平台上运行这一特性对互联网的发展产生了深远影响。随着时间的推移Java 不断发展和完善推出了多个版本如 Java 1.0、Java 2、Java 5 等每个版本都引入了新的特性和功能进一步增强了 Java 的功能和应用场景。如今Java 已经成为全球最受欢迎的编程语言之一广泛应用于企业级应用开发、移动应用开发、大数据处理、云计算等众多领域。二、Java 的环境要开发和运行 Java 程序需要搭建相应的 Java 环境主要包括以下几个关键组件一JDKJava Development KitJDK 是 Java 开发工具包它是开发 Java 程序的基础。JDK 包含了 Java 编译器javac、Java 虚拟机JVM以及一系列的类库。Java 编译器用于将 Java 源文件.java编译成字节码文件.class字节码文件是一种与平台无关的中间代码它可以在任何安装了 Java 虚拟机的系统上运行。在安装 JDK 时需要根据操作系统的类型如 Windows、Linux、Mac OS 等选择对应的版本进行下载和安装。安装完成后还需要配置环境变量将 JDK 的 bin 目录路径添加到系统的 PATH 变量中这样在命令行中才能正确执行 Java 相关的命令。二JREJava Runtime EnvironmentJRE 是 Java 运行时环境它是运行 Java 程序所必需的。JRE 包含了 Java 虚拟机和 Java 核心类库。如果只是希望运行已有的 Java 程序而不需要进行开发那么安装 JRE 即可。JRE 可以看作是 JDK 的一个子集它不包含开发工具如编译器等。在实际应用中当我们发布 Java 应用程序时通常会提供对应的 JRE 版本以确保用户能够在他们的系统上顺利运行程序。三、Java 如何实现一次编写到处运行Java“一次编写到处运行” 的特性主要得益于 Java 虚拟机JVM。Java 程序的开发过程是首先使用文本编辑器编写 Java 源文件然后通过 Java 编译器将源文件编译成字节码文件。字节码文件并不是针对特定操作系统或硬件平台的机器码而是一种中间格式的代码。当需要运行 Java 程序时JVM 会加载字节码文件并对字节码进行解释执行。JVM 在不同的操作系统和硬件平台上都有相应的实现版本例如针对 Windows 系统有 Windows 版的 JVM针对 Linux 系统有 Linux 版的 JVM 等。这些不同版本的 JVM 在底层会屏蔽掉操作系统和硬件平台的差异为字节码文件提供一个统一的运行环境。因此无论在何种平台上编写的 Java 程序只要将其编译成字节码文件就可以在安装了对应版本 JVM 的任何其他平台上运行从而实现了 “一次编写到处运行” 的目标。四、初识 Java 虚拟机Java 虚拟机是 Java 实现跨平台运行的核心。它就像是一个虚拟的计算机有自己的一套指令集和运行时数据区。JVM 的运行时数据区主要包括以下几个部分一堆Heap堆是 JVM 中最大的一块内存区域用于存储对象实例和数组。所有通过 new 关键字创建的对象都存放在堆中。堆内存是被所有线程共享的垃圾回收器Garbage Collector主要负责管理堆内存回收不再被使用的对象所占用的内存空间以避免内存泄漏。二栈Stack每个线程都有自己独立的栈空间。栈用于存储方法调用时的局部变量、操作数栈、动态链接等信息。当一个方法被调用时会在栈中创建一个栈帧用于保存该方法的相关信息。方法调用结束后对应的栈帧会从栈中弹出。栈的操作速度非常快因为它是基于后进先出LIFO的原则进行管理的。三方法区Method Area方法区用于存储已被加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。它也是被所有线程共享的。在方法区中存储了类的结构信息如类的字段、方法、构造函数等这些信息在类加载时被加载到方法区中。四程序计数器Program Counter Register程序计数器是一块较小的内存空间每个线程都有自己的程序计数器。它用于记录当前线程所执行的字节码指令的地址。当线程执行 Java 方法时程序计数器记录的是正在执行的字节码指令的地址当线程执行本地方法Native Method时程序计数器的值为 undefined。通过以上对 Java 虚拟机运行时数据区的管理Java 虚拟机能够有效地执行字节码文件实现 Java 程序的运行。同时Java 虚拟机还提供了诸如垃圾回收、类加载机制、即时编译等一系列重要功能这些功能共同保证了 Java 程序的高效、稳定运行。Java 凭借其丰富的历史底蕴、强大的环境支持以及独特的虚拟机机制在编程语言的舞台上始终保持着重要地位为广大开发者提供了便捷、高效的开发工具和平台。无论是初学者还是经验丰富的开发者深入了解 Java 的这些基础知识都将有助于更好地掌握和运用 Java 进行软件开发。

相关新闻

变量的数据类型

变量的数据类型

数据类型——变量 代码中的变量 变量名: 完成逻辑,给自己看的 给其他人看的 变量值: 用于具体运算的 存储的 变量的存储: 第一个结构: (符号表) 存储代码中的变量信息 (类型 名称 长度 值存储地址) 第二个结构&#xf…

2026/8/3 20:31:53 阅读更多 →
游戏数据修改器原理与应用:从内存扫描到脚本编写的实用指南

游戏数据修改器原理与应用:从内存扫描到脚本编写的实用指南

1. 从“作弊”到“创造”:游戏数据修改器的本质与边界 “最实用的游戏数据修改器”——这个标题背后,是无数玩家在游戏旅程中,面对重复枯燥的“刷刷刷”、遥不可及的顶级装备、或是某个卡关的Boss时,内心深处最直接、最朴素的需求…

2026/8/3 20:31:53 阅读更多 →
Unity游戏实时汉化实战:XUnity.AutoTranslator原理、安装与配置详解

Unity游戏实时汉化实战:XUnity.AutoTranslator原理、安装与配置详解

1. 项目概述:当Unity游戏遇上语言壁垒 如果你是一个热爱独立游戏的玩家,或者是一个需要研究海外Unity项目案例的开发者,那么语言问题绝对是你绕不开的一座大山。面对Steam上琳琅满目、创意十足但只有英文或日文界面的独立游戏,那种…

2026/8/3 20:31:53 阅读更多 →

最新新闻

如何免费打造你的专属三国杀游戏?无名杀开源项目完全指南

如何免费打造你的专属三国杀游戏?无名杀开源项目完全指南

如何免费打造你的专属三国杀游戏?无名杀开源项目完全指南 【免费下载链接】noname 项目地址: https://gitcode.com/GitHub_Trending/no/noname 你是否厌倦了商业卡牌游戏的各种限制?想要一个真正属于你自己的三国杀游戏体验?无名杀开…

2026/8/3 21:14:16 阅读更多 →
Gazebo仿真环境构建深度指南:400+模型库与专业场景配置实战

Gazebo仿真环境构建深度指南:400+模型库与专业场景配置实战

Gazebo仿真环境构建深度指南:400模型库与专业场景配置实战 【免费下载链接】gazebo_models_worlds_collection collection of gazebo models and worlds 项目地址: https://gitcode.com/gh_mirrors/ga/gazebo_models_worlds_collection Gazebo模型与场景集合…

2026/8/3 21:14:16 阅读更多 →
eSpeak NG:开源语音合成引擎的完整使用指南与多语言支持

eSpeak NG:开源语音合成引擎的完整使用指南与多语言支持

eSpeak NG:开源语音合成引擎的完整使用指南与多语言支持 【免费下载链接】espeak-ng eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents. 项目地址: https://gitcode.com/GitHub_Trending/es/espeak-ng …

2026/8/3 21:14:16 阅读更多 →
STM32单片机无线红外遥控智能车锂电池充电系统111-21(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

STM32单片机无线红外遥控智能车锂电池充电系统111-21(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

STM32单片机无线红外遥控智能车锂电池充电系统111-21(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 产品功能描述: 本系统由STM32F103C8T6单片机核心板、红外通信模块、电机驱动、升压模块、锂电池充电模块及电池盒供电组成。 1、…

2026/8/3 21:14:16 阅读更多 →
计算机毕业设计之基于SpringBoot Vue的社区团购系统设计与实现

计算机毕业设计之基于SpringBoot Vue的社区团购系统设计与实现

本系统为用户而设计制作社区团购系统,旨在实现社区团购智能化、现代化管理。本社区团购管理自动化系统的开发和研制的最终目的是将社区团购的运作模式从手工记录数据转变为网络信息查询管理,从而为现代管理人员的使用提供更多的便利和条件。使社区团购系…

2026/8/3 21:14:16 阅读更多 →
Zen Browser终极指南:如何通过3种布局模式提升200%工作效率

Zen Browser终极指南:如何通过3种布局模式提升200%工作效率

Zen Browser终极指南:如何通过3种布局模式提升200%工作效率 【免费下载链接】desktop Welcome to a calmer internet 项目地址: https://gitcode.com/GitHub_Trending/desktop70/desktop Zen Browser是一款基于Firefox的现代浏览器,专注于提升用户…

2026/8/3 21:13:16 阅读更多 →

日新闻

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:47 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 4:36:35 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/3 13:07:03 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/3 8:27:36 阅读更多 →