Java笔记——Java 初识_java 版本历史

news2026/5/18 10:00:36
Java笔记——Java 初识_java 版本历史Java 的发展历程Sun 公司Stanford University Network斯坦福大学网络公司。Oracle 公司。2004 年发布 Java 5.02014 年发布 Java 8从 Java 9 开始每 6 个月发布一次 Java。其实从 Java 6 开始及之后版本号就是整数如 Java 6 而不是 Java 6.0上面的图片略有错误。普通版本也叫过渡版本。正式版本也叫长期支持版本LTS。Java SEJava EEJava MEJava 技术体系分为三个平台Java SEJava EEJava ME。Java SEJava Standard Edition标准版支持面向桌面级应用如 Windows 系统下的应用程序的 Java 平台提供了完整的 Java 核心 API此版本以前称为 J2SE。Java EEJava enterprise Edition企业版是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如ServletJsp 等主要针对于 Web 应用程序开发。此版本以前称为 J2EE。企业版相当于是在标准版基础上进行了一个扩展可以支持更多的技术。Java MEJava Micro Edition小型版支持 Java 程序运行在移动终端手机PDA上的平台对 Java API 有所精简并加入了针对移动终端的支持此版本以前称为 J2ME。自从安卓出来后Java ME 就很少有人用了。除了 “标准版”Standard Edition之外Sun 公司还推出了另外两个版本一个是用于手机等嵌入式设备的 “微型版”Micro Edition; 另一个是用于服务器端处理的 “企业版”Enterprise Edition。Besides the Standard Edition, two other editions were introduced: the Micro Edition for embedded devices such as cell phones, and the Enterprise Edition for server-side processing.Besides the Standard Edition, two other editions were introduced: the Micro Edition for embedded devices such as cell phones, and the Enterprise Edition for server-side processing.Java 能做什么Java 的主要特性与 C 和 C 不同Java 规范中没有 “依赖具体实现” 的地方。基本数据类型的大小以及有关运算的行为都是明确的。例如Java 中的 int 总是 32 位整数而在 C 和 C 中int 可能是 16 位整数、32 位整数也可能是编译器开发商指定的任何其他大小。唯一的限制是int 类型的字节数不能低于 short int并且不能高于 long int。在 Java 中数值类型有固定的字节数这消除了代码移植时一个令人头痛的主要问题。二进制数据以固定的格式进行存储和传输消除了有关字节顺序的困扰。字符串则采用标准的 Unicode 格式存储。作为系统组成部分的类库定义了可移植的接口。例如有一个抽象 Window 类并给出了面向 UNIX、Windows 和 Macintosh 环境的不同实现。JVM 和 JDKJVMJava Virtual MachineJava 虚拟机。JREJava Runtime EnvironmentJava 运行环境。JDKJava Development KitJava 开发工具包。JRE JVM 核心类库 运行工具JDK JVM 核心类库 开发工具核心类库Java 已经写好的东西直接拿来用即可。开发工具包括javac编译工具java运行工具jdb调试工具jhat内存分析工具等。运行工具是从开发工具中抽取出来的比如去掉了编译工具javac调试工具jdb等但是包括运行工具java等。JVM 是一个虚拟的计算机具有指令集并使用不同的存储区域。负责执行指令管理数据内存寄存器。JVM 是真正运行 Java 程序的地方。不同的平台有不同的 JVM。JVM 机制屏蔽了底层运行平台的差别实现了 “一次编译处处运行”。如果想要运行一个已经开发好的 Java 程序计算机中只需安装 JRE 即可。JDK 是提供给 Java 开发人员使用的其中包含了 Java 的开发工具也包括了 JRE所以如果安装了 JDK就不用再单独安装 JRE 了。JDK 包含了 JREJRE 包含了 JVM。因为不同的操作系统需要不同的 JVM而 JVM 又是包含于 JDK 的因此不同的操作系统就需要安装不同的 JDK。跨平台的原理Java 语言的跨平台是通过虚拟机实现的。Java 语言不是直接运行在操作系统里面的。而是运行在虚拟机中的。针对于不同的操作系统安装不同的虚拟机就可以了。一个编译好的.class文件可以在多个操作系统中运行只要这些平台安装了各自对应的 JVM 即可。因为有了 JVM同一个 Java 程序就可以在不同的操作系统中执行这样就实现了 Java 程序的跨平台性。Java 程序执行原理Java 是混合型语言需要先编译后解释执行。编译器会给字节码文件自动命名基本名和源文件名一致扩展名为.class。Java 程序不是直接运行在系统中的而是运行在虚拟机中的。字节码文件在虚拟机中运行虚拟机才是字节码文件真正运行的地方。虚拟机总是从公共类的 main() 方法开始执行。在 DOS 窗口运行 Java 源文件先切换到源文件所在路径。先将 Java 源文件xxx.java编译为字节码文件xxx.class在 DOS 窗口执行命令javac xxx.java再运行字节码文件在 DOS 窗口执行命令java xxx例如用javac命令来编译源文件要带上后缀名编译成计算机可执行的文件。其中c代表compile。javac.exe是编译工具java.exe是运行工具。编译得到后缀名为.class的文件。这是一个字节码文件。.class文件不能直接被机器执行需要用解释器解释执行。用 java 命令执行.class文件不带后缀名得到结果。这是把.class文件装载到 JVM 中去执行。Java 程序的组织结构源文件的基本组成是类。类是所有 Java 程序的构建模块Java 程序中的所有内容都必须放在类中。Java 程序的执行入口是main()方法有固定的书写格式public static void main(String[] args){ }public static void main(String[] args){ }一个源文件可以有多个类每次编译完每一个类都会生成一个对应的基本名与类名相同的.class文件。如果源文件包含一个public类则该源文件必须按该类命名。一个源文件中最多只能有一个public类公共类其它类的个数不限也可以将main()方法写在非public类中然后指定运行非public类这样入口方法就是非public类的main()方法。一个类只能有一个main()方法一个源文件可以有多个类每一个类都可以有一个main()方法因此一个源文件可以有多个main()方法。public类叫做公共类main()方法叫做主方法。程序示例// public static void main(String[] args) 表示一个主方法主方法是程序的入口 public class Hello{ // 编写一个主方法即 main() 方法 public static void main(String[] args){ System.out.println(Hello World); System.out.println(Xiao Cheng is studying Java.); } } class Dog{ public static void main(String[] args){ System.out.println(Dog); } } class Tiger{ public static void main(String[] args){ System.out.println(Tiger); } }// public static void main(String[] args) 表示一个主方法主方法是程序的入口 public class Hello{ // 编写一个主方法即 main() 方法 public static void main(String[] args){ System.out.println(Hello World); System.out.println(Xiao Cheng is studying Java.); } } class Dog{ public static void main(String[] args){ System.out.println(Dog); } } class Tiger{ public static void main(String[] args){ System.out.println(Tiger); } }此处的源文件名取为Hello.java编译之前文件夹的内容编译之后文件夹的内容以不同的类作为主类来运行程序类中可以有一个或多个方法方法必须在类的内部声明。《网络安全从零到精通全套学习大礼包》96节从入门到精通的全套视频教程免费领取如果你也想通过学网络安全技术去帮助就业和转行我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。网络安全学习路线图想要学习 网络安全作为新手一定要先按照路线图学习方向不对努力白费。对于从来没有接触过网络安全的同学我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线大家跟着这个路线图学习准没错。配套实战项目/源码所有视频教程所涉及的实战项目和项目源码学习电子书籍学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取ttps://i-blog.csdnimg.cn/direct/92a6ab8e26034045b97ae8ac36b2a650.png)以上资料如何领取

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…