Java的发展:从Java0到Java14的新特性

本文详细回顾了Java从Java0到Java14的演进历程,涵盖每个版本的关键特性,如Java1的内部类和Java2的JDBC,Java5的泛型,Java8的Lambda表达式,Java9的模块系统,Java10的var关键字,Java11的ZGC低延迟垃圾收集器,Java14的record关键字等。每个版本的更新都体现了Java不断优化和适应时代需求的进步。
摘要由CSDN通过智能技术生成

在这里插入图片描述

Java0

1996 年 1 月Sun公司发布第一个正式的Java版本,JDK1.0

Java1

1997 年 2 月Sun 公司发布 JDK1.1

  1. 重新编写了用于桌面软件开发的 AWT 库(因为上个版本的 AWT 是 Java 最弱的组件,之前的库对于不同操作系统的界面抽象太简单,各个平台并不能兼容,这也不符合 Java 承诺的 “write once,run anywhere”)
  2. 加入了内部类
  3. 支持 JavaBeans ,使得 Java 对象可以被序列化成二进制
  4. JDBC,让 Java 可以连数据库,不过还需要数据库开发自家的数据库驱动才可以。
  5. RMI 远程方法调用,本地代码调用不在本地的方法,但需要遵守相关的通信协议。
  6. 支持不能在代码运行时修改的反射
  7. Symantec 公司为 Java 开发编写的即时编译器(提前编译代码,增强代码真正执行时的性能)
  8. 支持国际化和Unicode编码

Java2

1998 年 12 月公司发布 J2SE1.2
1999年,Sun 公司发布了三个版本的 Java,标准版(J2SE,后来改名为 JavaSE)、企业版(J2EE,后来改名为 JavaEE)、微型版(J2ME,后来改名为 JavaME)

  1. strictfp 关键字,可以保证在不同平台上的浮点数计算都是一样的
  2. Swing 组件,可以看作是 AWT 增强版的桌面软件开发库
  3. Sun 公司自己开发的即时编译器
  4. Java plug-in,Java 相关的插件,如支持 Applet 程序的浏览器插件
  5. Java IDL,为 Java 和其他语言互通打下基础
  6. Collections 框架,Java 中复杂的数据类型

Java3

2000 年 5 月Sun 公司发布 J2SE1.3

  1. Sun 公开的 HotSpot JVM,经典的 Java 虚拟机
  2. 为遵循 CORVA 标准而修改了 RMI
  3. **Java Platform Debugger Architecture,**用于 Java 调式的平台
  4. JavaSound API,编写音频处理的函数库
  5. Synthetic proxy,Java 代理的基础

Java4

2002 年 2 月Sun 公司发布了在 JCP(Java Community Process) 的标准下开发的J2SE1.4

  1. 支持正则表达式
  2. assert 关键字,写测试代码用
  3. 异常链,低级异常包装后再抛出,也方便开发人员调试
  4. 支持网络 IPV6 标准
  5. NIO,非阻塞的 IO,优化 Java 的 IO 读取
  6. 日志 API
  7. XML 解析器和 XSLT 转换器
  8. 集成安全和加密扩展组件(JCE, JSSE, JAAS)
  9. Java Web Start 技术,直接从浏览器中启动 Java 平台
  10. Preference API,在 java.util.prefs 包下

Java5

2004 年 9 月Sun 公司发布 J2SE5
  1. 泛型 (Generics)
 List<Integer> list=new ArrayList<Integer>();
  1. 增强for循环(Enhanced for Loop)
 int[] array = {
   1, 2, 3, 4, 5};
 for (int i : array) {
   
    System.out.println(i);
 } 
  1. 自动封箱拆箱(Autoboxing/Unboxing )。八大基本类型和它们的包装类能够自动的相互转换。
  2. 枚举(Typesafe Enums)。枚举是一种实现线程安全的单例模式的好方式。
 enum TestEnum{
   
        one,
        two;
        TestEnum() {
   
        }
    }
  1. 可变参数 (Varargs)。可变参数本质仍然是用一个数组存储参数,只是java隐藏了这一过程。需要注意的是如果一个方法声明中含有可变参数,那必须放在最后一个位置。
    //可变参数测试
    public static void testVarargs(String... args) {
   
        //本质就是个数组
        System.out.println(args[1]);
        for (String arg : args) {
   
            System.out.println(arg);
        }
    }
  1. 静态导入(Static Import)。通过import类来使用类里的静态变量或方法(直接通过名字,不需要加上类名.),简化了代码的书写。
//单个导入
import static java.lang.Math.PI;
//批量导入
import static java.lang.Math.*;
  1. 注解(Annotations)
//注释注解的注解又叫做元注解
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotations {
   
    //注解内可以添加方法,也可以不添加
    //注解方法的返回值只能是基本类型,String,Class类,枚举,注解,可以有默认值。
    int id();
    String name() default "whh";
    Class classType();
    TestEnum enumType();
}
  1. 改进了 Java 的内存模型,提供了 java.util.concurrent 并发包。
  2. Metadata,元数据,描述数据的数据

Java6

2006 年 12 月Sun 公司发布 JavaSE6

  1. 集合框架增强,下面为新添加的接口和类
    Deque
    BlockingDeque
    NavigableSet
    NavigableMap
    ConcurrentNavigableMap
    ArrayDeque
    ConcurrentSkipListSet
    ConcurrentSkipListMap
    ConcurrentSkipListMap
    AbstractMap.SimpleEntry
    AbstractMap.SimpleImmutableEntry
  2. Scripting. 可以让其他语言在java平台上运行。 java6包含了一个基于Mozilla Rhino实现的javascript脚本引擎
  3. 支持JDBC4.0规范
  4. 提供动态语言支持
  5. 提供编译 API,即 Java 程序可以调用 Java 编译器的 API
  6. Swing 库的一些改进
  7. JVM 的优化
  8. 微型 HTTP 服务器 API

Java7

2011 年 7 月,Oracle收购Sun 公司,发布 JavaSE7

  1. 二进制前缀0b或者0B。整型(byte, short, int, long)可以直接用二进制表示。

                
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值