Java各版本特性一览-从Java1.0到Java12
java 版本命名规则

java 版本命名规则Java版本命名规则在Java编程语言中,每个版本都有其特定的命名规则。
这些命名规则旨在确保版本的辨识度和一致性。
本文将介绍Java版本命名规则,并对每个版本进行简要的描述。
1. Java 1.0(Oak)Java 1.0是最早发布的Java版本,也被称为Oak。
它是最基本的Java版本,提供了最基础的Java语言特性和类库。
2. Java 1.1(Java 1)Java 1.1是Java的第一个正式版本,也被称为Java 1。
它增加了许多新特性,如内部类、反射、JavaBeans等。
3. Java 1.2(Java 2)Java 1.2是Java的第二个正式版本,也被称为Java 2。
它引入了许多重要的改进,包括集合框架、Swing界面库、Java命名和目录接口等。
4. Java 1.3(Kestrel)Java 1.3是Java的第三个正式版本,也被称为Kestrel。
它增加了一些新特性,如JDBC 2.0、Java Sound API和Java Naming and Directory Interface (JNDI)等。
5. Java 1.4(Merlin)Java 1.4是Java的第四个正式版本,也被称为Merlin。
它引入了许多重要的改进,如正则表达式、NIO、XML处理、JMX等。
6. Java 5.0(Tiger)Java 5.0是Java的第五个正式版本,也被称为Tiger。
它引入了许多重要的新特性,如泛型、自动装箱/拆箱、枚举、注解等。
7. Java 6(Mustang)Java 6是Java的第六个正式版本,也被称为Mustang。
它增加了一些新特性,如脚本引擎、JAXB 2.0、Java Compiler API等。
8. Java 7(Dolphin)Java 7是Java的第七个正式版本,也被称为Dolphin。
它引入了一些新特性,如钻石操作符、try-with-resources语句、switch语句的字符串等。
1-欢迎学习Java

(3)TextPad:安装、配置简单、方便;可以编译、调试 java程序和applet程序,方便初学者使用。
(4)Java SDK:SUN公司编写的Java语言编译器。没有集 成开发环境,只能在DOS命令窗口下运行,但是操作简单, 容易掌握。
参加Java技术比赛(全国大学生Java大赛 )
参加Java专题培训(Nokia J2ME手机游戏专题培训) 阅读专业杂志、报刊 (《程序员》)
参加学术会议及展览会(美国的COMDEX展览会)
Date: 25. Feb 2005 Date: 25. Feb 2005
美国计算机学会(ACM)对其成员指定了包含24条规范 的《ACM道德和职业行为规范》,其中最基本的几条准 则也是所有专业人员应该遵循的。这些准则是:
Date: 25. Feb 2005 Date: 25. Feb 2005
学了java有什么用?
JAVA 的十年历程(95~05): --- 全世界有Java开发者 480万 --- 60%的信息系统使用Java技术实现 --- 美、澳、新等国家 80%高校开设了Java课程 --- 欧洲 50%高校开设了Java课程 --- 中国高校中600余所设立计算机专业,70% 左右开设了 Java课程 ---根据CSDN估计,2005年国内的专业程序设 计人员有65 万, 其中偏向C/C++ 的程序员占60%,偏向Java的程序员占40%
(1). 用“记事本”或其他文本工具编写源程序,编写好程序后,保 存为扩展名为java的源程序; (2). 在DOS命令环境下,编译源程序。此文件用来保存源程序的 Java字节码; (3). 运行编译好的字节码文件,输出程序运行结果。
java 简介 ppt

• 运行安全:用于网络/分布式运算环境,确保建立无 病毒且不会被侵入的系统;内存分配及布局由Java 运行系统决定;字节码加密传输,客户端校等。 • 平台无关:Java应用程序能够在网络上任何地方执 行; 字节代码 - 平台无关性; 完全统一的语言版本 - 实现无关性; 访问底层操作系统功能的扩展类库 – 不依赖于 具体系统…。
–一旦所有的类被加载,可执行程序的内存布局就 被确定了。内存地址被分配给符号引用表,查找 表被建立。由于内存的布局出现在运行时刻,防 止了对于代码域的未授权的访问。
验证代码 — 字节码验证器 –java代码在你的机器上执行前要经过几个测试 。字节码验证器测试代码段的格式,检查代码段 是否有非法代码(伪造指针,对象上的非法存取 ,试图改变对象类型等)。 –所有网络来的类文件都要经过字节码验证。 执行代码 — 解释器
③ 执行
Java执行工具(java)用来运行.class文件,它是一 个解释程序,又称“Java虚拟机”,它负责解释分 解并执行每个Java字节码指令。
Java程序的开发流程
13
Java虚拟计算机简称“JVM”,它是以Java字节码为机器 指令码的一种模拟机。Java虚拟机在许多不同的操作系 统都是有效的,所以同样的.class文件有能力运行在 Windows、Solaris、 Linux、MacOS等多种操作系统下, 如图:
19
3.Java虚拟机
JVM提供以下定义: 指令集(Bytecodes 是JVM的机器指令)。 寄存器组 类文件格式 栈 垃圾回收“堆”(实现内存的动态分配和自动回收) 内存区域 Java程序执行时,首先虚拟机对要执行的class文件装 载,然后对字节码进行验证,最后用解释器对字节码解 释执行,下图是jvm的逻辑构造。
Java语言的12大特色

Java语言的12大特色Java语言是一种广泛应用的跨平台编程语言,由于其独特的语言特性,被广泛用于企业应用和大型Web应用的开发。
在本篇文章中,我们将介绍Java语言的12大特色。
特色1:安全性Java语言通过提供内置的安全机制来确保应用程序具有一定的安全性。
Java语言的安全性主要表现在以下方面:•无运行时内存越界访问和安全漏洞•无指针(pointer)的操作,因此不会涉及非法内存的问题•支持安全交互式应用程序的运行•通过数字签名技术来确保应用程序的完整性和认证•提供了安全性管理功能,以帮助进行访问控制和安全管理特色2:跨平台性Java语言是一种跨平台的编程语言,这意味着在编写Java应用程序时,不需要考虑它将在哪种操作系统或硬件上运行。
只要运行Java虚拟机(JVM)的操作系统支持Java语言,就可以运行Java应用程序。
这种跨平台性以 JAR 格式为基础,该格式可将整个 Java 应用程序打包到一个文件中。
这意味着可以在任何支持 Java 的平台上安装和运行该应用程序。
特色3:面向对象Java语言是一种面向对象编程语言,它通过封装、继承和多态等面向对象概念来实现代码的模块化和重用。
这些概念使Java编程人员可以通过简化应用程序中的代码来提高代码的可重用性和可维护性。
特色4:多线程Java语言的多线程支持是其又一个重要特色。
Java 程序可以同时执行多个任务,而不会导致应用程序崩溃或停止响应。
这种能力是通过 Java 虚拟机(JVM)所提供的线程机制来实现的。
通过使用多线程,Java 应用程序能够更加高效地处理多任务,并能够更加快速地响应用户的需求。
特色5:简单性Java语言的语法清晰、简单,易于学习和理解,因此它很适合初学者。
Java语言的简单性体现在以下几个方面:•它没有指针•它有自动垃圾收集(Garbage Collection)机制•它支持隐式类型转换•它支持自动箱和拆箱类型的转换•它支持Java注解特色6:高性能Java语言拥有一些内在的优化工具,特别是在JIT编译器(Just-In-Time 编译器)方面。
Java各个版本特性

Java各个版本特性Java 作为⼀门经久不衰的语⾔,已经发展了20多年,本⽂简单罗列了各个版本的⼀些重要特性。
⼤家可以根据⾃⼰公司需要,选择合适的版本。
1. Java 13发布时间:2019年3⽉新特性:switch 语法优化更新⽂本块升级动态CDS档案取消使⽤未使⽤的内存重新实现旧版套接字APIFileSystems.newFileSystem新⽅法nio新⽅法核⼼库/ java.time核⼼库/ java.util中:I18N热点/ GC安全库/ java.security删除功能2. Java 12发布时间:2019年3⽉新特性:Shenandoah:低暂停时间的 GC(实验性功能)JMH 基准测试Switch 表达式(预览功能)JVM 常量 API只保留⼀个 ARM 64位实现(aarch64)默认类数据共享归档⽂件G1的可中断 mixed GC改进G1垃圾收集器,以便在不活动时将Java堆内存归还给操作系统3. Java 11Java 11 是⾃ Java 8 后的⾸个长期⽀持版本,将⽀持到2026年!发布时间:2018年9⽉新特性:基于嵌套的访问控制动态的类⽂件常量改进 Aarch64 IntrinsicsEpsilon 垃圾回收器,⼜被称为"No-Op(⽆操作)"回收器移除 Java EE 和 CORBA 模块,JavaFX 也已被移除HTTP Client (Standard)⽤于 Lambda 参数的局部变量语法采⽤ Curve25519 和 Curve448 算法实现的密钥协议Unicode 10实现 ChaCha20 和 Poly1305 加密算法启动单个 Java 源代码⽂件的程序低开销的堆分配采样⽅法对 TLS 1.3 的⽀持ZGC:可伸缩的低延迟垃圾回收器,处于实验性阶段弃⽤ Nashorn JavaScript 引擎弃⽤ Pack200 ⼯具及其 API4. Java 10发布时间:2018年3⽉新特性:var 类型推断将原来⽤ Mercurial 管理的众多 JDK 仓库代码,合并到⼀个仓库中,简化开发和管理过程。
教你辨别JDK各版本新特性

教你辨别JDK各版本新特性2019-11-22在1995年的3月23日诞生了!Java的诞生标志着互联网时代的开始,它能够被应用在全球信息网络的平台上编写互动性及强的apxxxxplet程序,而1995年的apxxxxplet无疑能给人们无穷的视觉和脑力震荡。
JDK 1.0Sun公司在1996年的1月23日发布了JDK1.0来帮助开发人员的开发∙JDK包括两大部分:运行环境和开发工具。
而运行环境包括五大部分:核心API,集成API,用户界面API,发布技术,Java虚拟机(JVM)。
∙一组完整的 frxxxxamework——AWT∙JDK 1.1Sun公司在1997年2月18日发布了JDK 1.1∙推出了JIT(Just-In-Time)编译器∙Java平台分为PersonalJava与emxxxxbeddedJava,前者比较适用于运算资源和内存丰富的设备,而资源有限者适用于后者。
JDK 1.2JDK1.2在1998年12月4日的隆重发布,标志着Java2平台的诞生。
∙将 Java改名为Java 2。
∙在99年Sun公司还将Java2平台分为三大块:J2SE,J2EE,J2ME。
∙JCP的API制定过程的革命∙新增Swing库∙Java2 还废弃了一些API,最重要的莫过于Thread类中对suspend()resume()和stop()等方法的废弃。
的集合类库中的Vector类和HashTable类都考虑了同步,在平常的使用中影响效率,所以Java2专门添加了对应的非同步类,并完善了集合类库。
∙这个时期出现了一些优秀书籍,比如著名的《Core Java2》JDK 1.32000年5月8日推出的J2SE 1.3,API的加强和对新API的拓展。
∙数字运算:加入了ng.StrictMath方便我们的一般的数字运算。
∙新的Timer API:相信大家对其中的java.util.Timer和java.util.TimerTask一定不陌生。
Java的几个重要版本

Java的几个重要版本java几个重大版本java从1995年发布到现在,也走过18年了,个人认为,其中几个java版本都肩负着重大使命,影响甚远;jdk1.0 1995年5月23日诞生,Oak语言改名为Java,并提出“Write Once ,Run anywhere";jdk1.2 1999年6月发布,将java划分为J2SE,J2ME,J2EE三大平台;jdk1.4 主要是性能提升,在2000年时候JAVA成为世界上最流行的电脑语言,跟这个版本离不开关系,估计国内还有大量的java应用是运行在此版本上;jdk5 诞生于2004年,他的使命就是易用,加入1. 泛型2 自动装箱/拆箱 3 for-each 4 static import 5 变长参数等,为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0;jdk8 将在2014年3月份发布,迄今为止,可能是最大更新的java版本,也是令人期待的一个版本,在Java中引入闭包概念对Java程序开发方法的影响甚至会大于Java5中引入的泛型特征对编程方式带来的影响。
可以看出,jdk 8跟jdk 5之间,整整相差10年,这10年期间,相继发布jdk 6、7都是改动不大,这也说明,java发展确实有点缓慢了,以致曾经的跟随者.net在某方面超越了java,还有基于jvm上的动态语言崛起,比如Groovy、Scala等,2013年java one大会上,java平台首席架构师Mark Reinhold在会上说Java 8 is Revolutionary, Java is back(Java 8是革命性的,Java回来了),至于java 8能否能给我们带来眼前一亮的感觉呢,我们拭目以待吧学习java8的理由1.提高java开发效率(更少的代码,更强的功能,主要是lambda表达式带来便利)2.提高java程序的运行速度(批量数据处理,多核运行利用,更高的性能)3.更安全,漏洞更少(为啥GA版本跳票,oracle解释说近来大量安全问题困扰着平台,所以推迟发布时间解决安全问题)4.面试需要,跳槽的哥们,个人预言渐渐会被问及java 8的特性,想当初java 5出来一两年都会5.逼格高,想在同事面前炫耀一般,但请注意,别以为java是向下兼容的就能随便把旧java系统升级到java最新版本6.还在靠java开发养家糊口的程序员,不想知识陈旧落后本文作者:benhaile1 / 1。
Java有哪几个关键特性-简单性的特点-新特性

Java有哪几个关键特性-简单性的特点-新特性Java〔编程〕语言的常见关键特性有这些:一是简洁有效,其是一种相当简洁的“面向对象〞程序〔制定〕语言;二是可移植性,能够同时在Windows、MacOS、UNIX等平台上运行。
以下是关于〔java〕有哪几个关键特性的具体介绍。
一、Java有哪几个关键特性(1)简洁有效Java语言是一种相当简洁的“面向对象〞程序制定语言。
Java 语言省略了C++语言中所有的难以理解、容易混淆的特性,例如头文件、指针、结构、单元、运算符重载、虚拟基础类等。
它更加严谨、简洁。
(2)可移植性关于一个程序员而言,写出来的程序如果不必须修改就能够同时在Windows、MacOS、UNIX等平台上运行。
使用Java语言编写的程序,只要做较少的修改,甚至有时根本不必须修改,就可以在不同平台上运行了。
二、Java简单性的特点1、语法规则和C++类似。
从某种意义上讲,Java语言是由C和C++语言转变而来,所以C++程序制定人员可以很容易地掌握Java语言的语法。
2、Java语言对C++进行了简化和提升,例如,Java使用接口取代了多重继承,并取消了指针,因为指针和多重继承通常会使程序变得复杂。
Java语言还实现了垃圾自动收集功能,这大大简化了程序制定人员的资源释放〔管理〕工作。
3、Java提供了丰富的类库、API文档、第三方开发包,以及大量的基于Java的开源项目。
现在JDK也开放源代码了,通过分析项目的源代码来提升自己的编程水平。
三、Java语言新特性(1)提供了对内存的自动管理,程序员无须在程序中进行分配、释放内存,那些可怕的内存分配错误不会再打搅制定者了。
(2)去除了C++语言中的令人费解、容易出错的“指针〞,用其他方法进行弥补。
(3)避免了赋值语句(如a=3)与逻辑运算语句(如a==3)的混淆。
(4)取消了多重继承这一复杂的概念。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java各版本特性一览-从Java1.0到Java12JDK Version 1.01996-01-23 Oak(橡树)初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢。
JDK Version 1.11997-02-19– JDBC(Java DataBase Connectivity);–支持内部类;– RMI(Remote Method Invocation) ;–反射;– Java Bean;JDK Version 1.21998-12-08 Playground(操场)–集合框架;– JIT(Just In Time)编译器;–对打包的Java文件进行数字签名;– JFC(Java Foundation Classes), 包括Swing 1.0, 拖放和Java2D类库;– Java插件;– JDBC中引入可滚动结果集,BLOB,CLOB,批量更新和用户自定义类型;– Applet中添加声音支持JDK Version 1.32000-05-08 Kestrel(红隼)– Java Sound API;– jar文件索引;–对Java的各个方面都做了大量优化和增强;JDK Version 1.42004-02-06 Merlin(隼)– XML处理;– Java打印服务;– Logging API;– Java Web Start;– JDBC 3.0 API;–断言;– Preferences API;–链式异常处理;–支持IPV6;–支持正则表达式;–引入Imgae I/O APIJAVA 52004-09-30 Tiger(老虎)–泛型;–增强循环,可以使用迭代方式;–自动装箱与自动拆箱;–类型安全的枚举;–可变参数;–静态引入;–元数据(注解);– Instrumentation;JAVA 62006-12-11 Mustang(野马)–支持脚本语言;– JDBC 4.0API;– Java Compiler API;–可插拔注解;–增加对Native PKI(Public Key Infrastructure), Java GSS(Generic Security Service),Kerberos和LDAP(Lightweight Directory Access Protocol)支持;–继承Web Services;JAVA 7JAVA 82014-03-18– Lambda 表达式− Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中。
–方法引用−方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。
与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。
–默认方法−默认方法就是一个在接口里面有了一个实现的方法。
–新工具−新的编译工具,如:Nashorn引擎jjs、类依赖分析器jdeps。
–Stream API −新添加的Stream API(java.util.stream)把真正的函数式编程风格引入到Java 中。
–Date Time API − 加强对日期与时间的处理。
– Optional 类− Optional 类已经成为Java 8 类库的一部分,用来解决空指针异常。
– Nashorn, JavaScript 引擎− Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。
JAVA 92017-09-221、模块系统:模块是一个包的容器,Java 9 最大的变化之一是引入了模块系统(Jigsaw 项目)。
REPL (JShell):交互式编程环境。
2、HTTP 2 客户端:HTTP/2标准是HTTP协议的最新版本,新的HTTPClient API 支持WebSocket 和HTTP2 流以及服务器推送特性。
3、改进的Javadoc:Javadoc 现在支持在API 文档中的进行搜索。
另外,Javadoc 的输出现在符合兼容HTML5 标准。
4、多版本兼容JAR 包:多版本兼容JAR 功能能让你创建仅在特定版本的Java 环境中运行库程序时选择使用的class 版本。
5、集合工厂方法:List,Set 和Map 接口中,新的静态工厂方法可以创建这些集合的不可变实例。
6、私有接口方法:在接口中使用private私有方法。
我们可以使用private 访问修饰符在接口中编写私有方法。
7、进程API: 改进的API 来控制和管理操作系统进程。
引进ng.ProcessHandle 及其嵌套接口Info 来让开发者逃离时常因为要获取一个本地进程的PID 而不得不使用本地代码的窘境。
改进的Stream API:改进的Stream API 添加了一些便利的方法,使流处理更容易,并使用收集器编写复杂的查询。
8、改进try-with-resources:如果你已经有一个资源是final 或等效于final 变量,您可以在try-with-resources 语句中使用该变量,而无需在try-with-resources 语句中声明一个新变量。
9、改进的弃用注解@Deprecated:注解@Deprecated 可以标记Java API 状态,可以表示被标记的API 将会被移除,或者已经破坏。
10、改进钻石操作符(Diamond Operator) :匿名类可以使用钻石操作符(Diamond Operator)。
改进Optional 类:java.util.Optional 添加了很多新的有用方法,Optional 可以直接转为stream。
11、多分辨率图像API:定义多分辨率图像API,开发者可以很容易的操作和展示不同分辨率的图像了。
12、改进的CompletableFuture API :CompletableFuture 类的异步机制可以在ProcessHandle.onExit 方法退出时执行操作。
13、轻量级的JSON API:内置了一个轻量级的JSON API14、响应式流(Reactive Streams) API: Java 9中引入了新的响应式流API 来支持Java 9 中的响应式编程。
JAVA 102018-03-21根据官网的公开资料,共有12个重要特性,如下:1、JEP286,var 局部变量类型推断。
2、JEP296,将原来用Mercurial 管理的众多JDK 仓库代码,合并到一个仓库中,简化开发和管理过程。
3、JEP304,统一的垃圾回收接口。
4、JEP307,G1 垃圾回收器的并行完整垃圾回收,实现并行性来改善最坏情况下的延迟。
5、JEP310,应用程序类数据(AppCDS) 共享,通过跨进程共享通用类元数据来减少内存占用空间,和减少启动时间。
6、JEP312,ThreadLocal 握手交互。
在不进入到全局JVM 安全点(Safepoint) 的情况下,对线程执行回调。
优化可以只停止单个线程,而不是停全部线程或一个都不停。
7、JEP313,移除JDK 中附带的javah 工具。
可以使用javac -h 代替。
8、JEP314,使用附加的Unicode 语言标记扩展。
9、JEP317,能将堆内存占用分配给用户指定的备用内存设备。
10、JEP317,使用Graal 基于Java 的编译器,可以预先把Java 代码编译成本地代码来提升效能。
11、JEP318,在OpenJDK 中提供一组默认的根证书颁发机构证书。
开源目前Oracle 提供的的Java SE 的根证书,这样OpenJDK 对开发人员使用起来更方便。
12、JEP322,基于时间定义的发布版本,即上述提到的发布周期。
版本号为\$FEATURE.\$INTERIM.\$UPDATE.\$PATCH,分别是大版本,中间版本,升级包和补丁版本。
JAVA 112018-09-25翻译后的新特性有:1、181:Nest-Based访问控制2、309:动态类文件常量3、315:改善Aarch64 intrinsic4、318:无操作垃圾收集器5、320:消除Java EE和CORBA模块6、321:HTTP客户端(标准)7、323:局部变量的语法λ参数8、324:Curve25519和Curve448关键协议9、327:Unicode 1010、328:飞行记录器11、329:ChaCha20和Poly1305加密算法12、330:发射一列纵队源代码程序13、331:低开销堆分析14、332:传输层安全性(Transport Layer Security,TLS)1.315、333:动作:一个可伸缩的低延迟垃圾收集器(实验)16、335:反对Nashorn JavaScript引擎17、336:反对Pack200工具和APIJAVA 122019-03-19作为“功能性版本”,JDK 12 总共包含8 个新的JEP ,分别为:1、189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) :新增一个名为Shenandoah 的垃圾回收器,它通过在Java 线程运行的同时进行疏散(evacuation) 工作来减少停顿时间。
2、230: Microbenchmark Suite:新增一套微基准测试,使开发者能够基于现有的Java Microbenchmark Harness(JMH)轻松测试JDK 的性能,并创建新的基准测试。
3、325: Switch Expressions (Preview) :对switch 语句进行扩展,使其可以用作语句或表达式,简化日常代码。
4、334: JVM Constants API :引入一个API 来对关键类文件(key class-file) 和运行时工件的名义描述(nominal descriptions)进行建模,特别是那些可从常量池加载的常量。
5、340: One AArch64 Port, Not Two :删除与arm64 端口相关的所有源码,保留32 位ARM 移植和64 位aarch64 移植。
6、341: Default CDS Archives :默认生成类数据共享(CDS)存档。
7、344: Abortable Mixed Collections for G1 :当G1 垃圾回收器的回收超过暂停目标,则能中止垃圾回收过程。
8、346: Promptly Return Unused Committed Memory from G1 :改进G1 垃圾回收器,以便在空闲时自动将Java 堆内存返回给操作系统。