当前位置: 首页 > article >正文

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

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)以上资料如何领取

相关文章:

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

Java笔记——Java 初识_java 版本历史 Java 的发展历程 Sun 公司:Stanford University Network,斯坦福大学网络公司。 Oracle 公司。2004 年发布 Java 5.0,2014 年发布 Java 8,从 Java 9 开始每 6 个月发布一次 Java。 其实&#…...

数据库——(DB、DBMS、SQL)

数据库——(DB、DBMS、SQL) 前言数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满…...

DataCleaner终极指南:免费开源的数据质量分析神器

DataCleaner终极指南:免费开源的数据质量分析神器 【免费下载链接】DataCleaner The premier open source Data Quality solution 项目地址: https://gitcode.com/gh_mirrors/dat/DataCleaner DataCleaner是一款功能强大的开源数据质量解决方案,专…...

御坂翻译器:5分钟快速上手,让Galgame翻译不再困扰你

御坂翻译器:5分钟快速上手,让Galgame翻译不再困扰你 【免费下载链接】MisakaTranslator 御坂翻译器—Galgame/文字游戏/漫画多语种实时机翻工具 项目地址: https://gitcode.com/gh_mirrors/mi/MisakaTranslator 你是否曾因语言障碍而错过精彩的Ga…...

Python实时通信实战:Flask-SocketIO深度解析

Python实时通信实战:Flask-SocketIO深度解析 引言 在Python开发中,实时通信是构建现代Web应用的核心技术。作为一名从Rust转向Python的后端开发者,我深刻体会到Flask-SocketIO在实时通信方面的优势。Flask-SocketIO为Flask应用提供了WebSocke…...

别再手动刷新了!Qt5/Qt6下用信号槽优雅处理串口热插拔(避坑QTimer的误用)

Qt串口热插拔检测:从定时轮询到事件驱动的架构升级 在工业控制、医疗设备和物联网终端开发中,串口通信的稳定性直接关系到系统可靠性。传统QTimer轮询方案虽然实现简单,但在实际项目中常遇到两个典型问题:一是频繁的端口扫描造成C…...

GAIA-DataSet:如何构建下一代AIOps智能运维的黄金基准?

GAIA-DataSet:如何构建下一代AIOps智能运维的黄金基准? 【免费下载链接】GAIA-DataSet GAIA, with the full name Generic AIOps Atlas, is an overall dataset for analyzing operation problems such as anomaly detection, log analysis, fault local…...

QFN封装工艺深度解析:从结构设计到制程优化的关键考量

1. QFN封装基础认知:为什么它成为现代电子产品的宠儿 第一次接触QFN封装是在2015年设计智能手表项目时,当时为了把主控芯片塞进8mm厚的表壳里,传统QFP封装根本放不下。直到供应商推荐了这颗5x5mm的QFN芯片,才真正体会到"小身…...

基于MCP与Apify构建自动化特许经营尽职调查智能体

1. 项目概述与核心价值最近在梳理一些自动化数据采集和商业智能分析的项目时,我遇到了一个非常有意思的工具:apifyforge/franchise-due-diligence-mcp。这个项目名字听起来有点长,但拆解一下就能明白它的核心价值——它是一个基于MCP&#xf…...

AI智能体长期记忆系统Mem0:从向量检索到个性化对话的实现

1. 项目概述:从记忆体到智能伙伴的进化最近在AI应用开发圈里,一个名为mem0ai/mem0的开源项目引起了我的注意。乍一看这个名字,你可能会联想到“内存”或者“记忆”,没错,它的核心正是围绕着“记忆”这个概念展开的。但…...

Prompt-Builder:构建可复用提示词模板,提升大模型工程化效率

1. 项目概述:Prompt-Builder 是什么,以及为什么你需要它如果你和我一样,在过去一年里深度使用过各种大语言模型,那你一定经历过这样的时刻:面对一个复杂的任务,你精心构思的提示词(Prompt&#…...

为Cursor编辑器构建本地AI大脑:基于RAG与智能体的代码助手实战

1. 项目概述:当你的代码编辑器拥有了“大脑”在程序员的世界里,工具的效率直接决定了生产力的天花板。从简单的文本编辑器到功能强大的IDE,再到如今集成了AI能力的智能编程助手,我们一直在寻找那个能理解我们意图、甚至能预测我们…...

在 Taotoken 上观测多模型 API 调用用量与成本明细

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在 Taotoken 上观测多模型 API 调用用量与成本明细 对于使用多个大模型 API 的开发者而言,清晰、透明地掌握调用情况和…...

对比直连与通过taotoken调用大模型api的实际延迟感受

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直连与通过 Taotoken 调用大模型 API 的实际延迟感受 在集成大模型 API 到实际应用时,响应延迟是影响开发者体验和…...

基于Argo Tunnel的轻量级容器PaaS部署实践

1. 项目概述与核心价值最近在折腾容器化部署和边缘计算场景时,我一直在寻找一个足够轻量、灵活且能快速拉起服务的方案。传统的Kubernetes集群对于小型项目或个人开发者来说,学习成本和运维负担都太重了,而单纯的Docker Compose又缺乏服务发现…...

从Referrer Policy入手:剖析Chrome中strict-origin-when-cross-origin对POST请求的拦截与应对

1. 当POST请求突然"沉默":一个前端开发者的困惑 最近在调试一个前后端分离项目时,我遇到了一个诡异的现象:前端代码明明成功调用了后端接口,但响应数据却始终为空。打开Chrome开发者工具,控制台里赫然显示着…...

从C代码到汇编:图解函数调用栈中rsp和rbp的“职责分工”

从C代码到汇编:图解函数调用栈中rsp和rbp的"职责分工" 在计算机程序的执行过程中,函数调用是最基础也最核心的概念之一。当我们从高级语言如C/C深入到汇编层面时,会发现函数调用的背后隐藏着一套精密的栈帧管理机制。本文将带您走进…...

保姆级教程:在Ubuntu 22.04上从下载到后台启动Minio对象存储

保姆级教程:在Ubuntu 22.04上从下载到后台启动Minio对象存储 在个人开发或小团队协作中,搭建一个轻量级、兼容S3协议的私有存储环境是许多技术爱好者的刚需。Minio作为一款高性能的对象存储解决方案,凭借其简洁的架构和与Amazon S3的无缝兼容…...

Taotoken API Key的精细化管理与审计日志功能实践

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken API Key的精细化管理与审计日志功能实践 对于需要将大模型能力集成到业务流程中的团队而言,API Key的管理与安…...

Beyond Compare 5本地化激活终极指南:三步实现专业文件对比工具永久使用

Beyond Compare 5本地化激活终极指南:三步实现专业文件对比工具永久使用 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare作为专业的文件对比与合并工具,其…...

不止是记事本!Win10右键新建菜单终极自定义指南:排序、删除、添加任意文件类型

不止是记事本!Win10右键新建菜单终极自定义指南:排序、删除、添加任意文件类型 在Windows 10的日常使用中,右键新建菜单可能是最容易被忽视却高频使用的功能之一。想象一下这样的场景:你刚刚安装了一款专业设计软件,却…...

开源技能模块开发实战:基于OpenProject API的智能集成与自动化

1. 项目概述与核心价值最近在折腾一个很有意思的开源项目,叫openclaw-skill-openproject。光看这个名字,可能有点摸不着头脑,它其实是ALT-F1-OpenClaw组织下的一个技能模块,专门用于对接和集成OpenProject这个开源的项目管理软件。…...

C++/Qt项目内存问题排查:除了Valgrind,这些工具和技巧你也该知道

C/Qt项目内存问题排查:除了Valgrind,这些工具和技巧你也该知道 在开发中等复杂度的Qt桌面或嵌入式应用时,内存问题往往是最难缠的"隐形杀手"。我曾参与过一个医疗影像处理系统的开发,项目后期突然出现随机崩溃&#xff…...

AMD处理器硬件深度调试终极方案:SMUDebugTool完全实战手册

AMD处理器硬件深度调试终极方案:SMUDebugTool完全实战手册 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…...

如何在IDEA中打造你的私人阅读空间:3个实用技巧提升编程效率与阅读体验

如何在IDEA中打造你的私人阅读空间:3个实用技巧提升编程效率与阅读体验 【免费下载链接】thief-book-idea IDEA插件版上班摸鱼看书神器 项目地址: https://gitcode.com/gh_mirrors/th/thief-book-idea 在快节奏的编程工作中,如何有效利用碎片化时…...

超级记忆与智能体框架:构建LLM长期记忆系统的开源实践

1. 项目概述与核心价值最近在折腾个人知识库和AI工具链的朋友,估计都绕不开一个核心痛点:如何让AI真正“理解”并记住我们给它的私有信息。无论是想打造一个能回答公司内部文档问题的智能助手,还是想构建一个能基于个人笔记进行深度对话的聊天…...

微信网页版访问终极指南:如何用wechat-need-web插件轻松解锁微信网页版

微信网页版访问终极指南:如何用wechat-need-web插件轻松解锁微信网页版 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 还在为微信网页版无…...

Linux系统下英特尔Arc显卡驱动安装与AI推理性能调优实战

1. 英特尔Arc显卡在Linux下的独特优势 第一次在Linux系统上折腾英特尔Arc显卡时,我完全被它的性价比震惊了。作为长期使用N卡的开发者,原本只是抱着试试看的心态,结果发现这套组合在AI推理任务中表现远超预期。不同于Windows系统开箱即用的体…...

如何用baidupankey工具实现百度网盘提取码10秒智能查询

如何用baidupankey工具实现百度网盘提取码10秒智能查询 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘分享链接的提取码而烦恼吗?每次遇到需要提取码的资源,都要在多个网站间来回搜索&a…...

KMS_VL_ALL_AIO智能激活脚本:5分钟搞定Windows和Office永久激活的终极方案

KMS_VL_ALL_AIO智能激活脚本:5分钟搞定Windows和Office永久激活的终极方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活和Office办公软件授权而烦恼吗&…...