欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JDK 5.0(Tiger)中的一些新特性(1):

程序员文章站 2022-07-12 13:30:52
...

JDK 5.0(Tiger)中的一些新特性(1): 

       Last modified:2013-04-06 23:57:27

       ***********************************************

 

5.0中引入了可变参数:

invoke(Object objObject... args)

1.4中使用的还是数组:

invoke(Object obj ,Object[] args)

 

为了兼容1.4版本,如果在向invoke中传入的对象是一个数组类型的时候,我们要么再加一层数组嵌套,要么利用强制转换告诉jvm这里是一个对象。因为如果没有特殊处理的话,jvm将按照1.4的方法处理,即把数组拆开!

 

MethodCharAt.invoke(str,new Object[]{new int[]{2}});

MethodCharAt.invoke(str,(Object)new int[]{2});

 

可变参数特点:

1,只能出现在参数列表的最后;

2... 位于变量类型和变量名之间,前后有无空格都可以。

3,调用可变参数的方法时,编译器为该可变参数隐含创建了一个数组,在方法中以数组的形式访问可变参数。

由于可变参数这个特性是在jdk5.0出现的,所以为了兼容老版本,在使用可变参数时,如果我们希望传入的是一个数组,那么jvm会把这个数组拆开,为了避免这样的情况我们可以,在这个数组外面再加一层数组或者申明这个数组是Objecct的。

Example

在反射中我们用到的这段代码:

MethodCharAt.invoke(str,new Object[]{new int[]{2}});

MethodCharAt.invoke(str,(Object)new int[]{2});

 

增强for语句for\in or foreach:

5.0出现的新特性。格式:for(type variableName : variabaleSet){...}

 

注意事项:

1,迭代的变量必须在()中定义;

2,集合变量可以是数组集合或实现了Iterable接口的集合类。

 

注释快捷键:ctrl+shift+/ ;

取消注释快捷键:ctrl+shift+\ ;

 

如何获得新的知识?去oracle官网下载最新JDK的语言规范(langspec

英语词汇:specification 规范,明确说明,说明书。

 

自动装箱:基础数据类型(primitive data type)——>相应的对象。

Integer iObj = 12;

 

自动拆箱:对象——>相应的基础数据类型。

sop( iObj + 12 );

 

java中在创建一个小于127Integer对象时,先到缓冲池中去找有没有一个一样的对象,如果没有就创建一个,如果有直接指向那个对象,这是因为小于127的比较常用,所以可以节省内存资源,这里使用了享元设计模式。

 

强调:Integer小于127的如果内存中存在相同的,就不再建立新的对象。

 

享元模式(flyweight):如果有很多很小的对象,我们会经常用到,用的时候该对象的内部状态都没有变化,那么就可以把他变成一个对象。那些不同的属性把它变成方法的参数(外部状态),那些相同的属性叫内部状态。

 

Alt+shift+x:运行;

Alt+shift+x  j:运行java Application

 

 

相关标签: java 新特性