java版本特性

本文深入探讨了Java从JDK1.5到1.8的重要更新,包括静态导入、增强for循环、可变参数、自动装箱与拆箱、枚举类、Lambda表达式、Stream流操作及方法引用等关键特性,展示了Java语言随时间演进的轨迹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

JDK1.5

静态导入

增强for循环

可变参数

自动装箱与自动拆箱

枚举类

JDK1.8

Lambda表达式

Stream流操作

双冒号 :: 方法引用

1.8之后: 

             https://advancedweb.hu/new-language-features-since-java-8-to-16/


JDK1.5

静态导入

增加的静态导入语法用于导入类的某个静态属性或方法。使用静态导入可以简化程序对类静态属性和方法的调用。
语法:import static 包名.类名.静态属性|静态方法|*
 

增强for循环

作用: 简化迭代器的书写格式。(注意:增强for循环的底层还是使用了迭代器遍历。)
适用范围: 只要是实现了Iterable接口的对象或者是数组对象都可以使用增强for循环。
格式:

 

for(数据类型   变量名:遍历的目标){

}

注意事项:

  1. 增强for循环底层也是使用了迭代器获取的,只不过获取迭代器由jvm完成,不需要我们获取迭代器而已,所以在使用增强for循环变量元素的过程中不准使用集合对象对集合的元素个数进行修改。
  2. 迭代器遍历元素与增强for循环变量元素的区别:使用迭代器遍历集合的元素时可以删除集合的元素,而增强for循环变量集合的元素时,不能调用迭代器的remove方法删除元素。
  3. 普通for循环与增强for循环的区别:普通for循环可以没有变量的目标,而增强for循环一定要有变量的目标。
  4. Map集合没有实现Iterable接口,所以map集合不能直接使用增强for循环,如果需要使用增强for循环需要借助于Collection的集合。

可变参数

格式:

数据类型... 变量名

注意的细节: 

  1. 如果一个函数的形参使用上了可变参数之后,那么调用该方法的时候可以传递0个或多个参数也可以传递数组。
  2. 可变参数实际上是一个Object[]数组对象。
  3. 可变参数必须位于形参中的最后一个参数。(因此一个函数最多只能有一个可变参数)

 

自动装箱与自动拆箱

自动装箱:指开发人员可以把一个基本数据类型直接赋给对应的包装类。
自动拆箱:指开发人员可以把一个包装类对象直接赋给对应的基本数据类型。

 

          包装类                                 基本数据类型

Byte

byte

Short

short

Integer

int

Long

long

Boolean

boolean

Float

float

Double

double

Character

char

对象变基本数据类型:拆箱

基本数据类型包装为对象:装箱

Integer类内部维护了缓冲数组,该缓冲数组存储的-128~127 这些数据在一个数组中。如果你获取的数据是落入到这个范围之内的,那么就直接从该缓冲区中获取对应的数据。

 

枚举类

枚举类的定义格式:

enum 类名{

//枚举值

}


注意细节:

  1. 枚举类也是一个特殊的类。
  2. 枚举值默认的修饰符是public static final。
  3. 枚举值就是是枚举值所属的类的类型,然后枚举值是指向了本类的对象的。枚举类中声明的每一个枚举值代表枚举类的一个实例对象
  4. 枚举类的构造方法默认的修饰符是private的。
  5. 枚举类可以定义自己的成员变量与成员函数。
  6. 枚举类可以自定义构造函数,但是构造函数的修饰符必须是private。
  7. 枚举类可以存在抽象的方法,但是枚举值必须要实现抽象的方法。
  8. 枚举值必须要位置枚举类的第一个语句。

JDK1.8

详见:

https://www.open-open.com/lib/view/open1403232177575.html

 

主要改动是:

Lambda表达式

(作用:相当于匿名内部类的简化写法)

Stream流操作

(作用:对大数据集合/io流 进行并行的过滤,排序,映射等操作)

     参考:https://blog.youkuaiyun.com/qq_37461349/article/details/80463166

                 https://blog.youkuaiyun.com/lixiaobuaa/article/details/81099838

                 https://blog.youkuaiyun.com/y_k_y/article/details/84633001?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control

    效率分析: https://www.cnblogs.com/jpfss/p/11262231.html

双冒号 :: 方法引用

 

移除方法区, MetaSpace元空间取代

hashMap 和 concurrentHashMap

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值