您的位置:首页 > 编程语言 > Java开发

Java基础——JDK1.5版本新特性

2014-11-30 18:46 211 查看
JDK更新三原则:

<1>.提高效率(可能产生安全问题)
<2>.简化书写(可能出现局限性)
<3>.提高安全性

一. 自动拆箱、自动装箱

1.自动装箱:Integer x = 5;[等同于Integer x = new Integer(5)]

2.自动拆箱:x = x + 4;[x自动调用了x.intValue();这个方法,化为了int型]

3.Integer的特殊知识点

问题:Integer a = 127;Intager b = 127; a==b结果是ture

原理:因为数值在byte范围内时,对于新特性,如果数值已经存在,将不再从新开辟空间建立对象,直接吧已有对象赋值给它。不在范围内时,无异于一般对象

二. 泛型

1.知识点:

1.1 定义:泛型是对集合传入元素类型进行的限定

1.2 意义:用于解决安全问题,是一个类型 安全机制

1.3 好处:避免了强转,错误转移到了编译时期

2.泛型设计

1.1 泛型类

(1)让类中方法接受的类型不局限于一种
//泛型类,固定了全部类中所有方法的操作类型
class Tool<E>
{
private E e;
public void set(E e){
this.e = e;
}

public E get(){
return e;
}
}

class java
{
public static void main(String[] args){
Tool<Object> tl = new Tool<Object>();

tl.set(new Object());//修改
t1.get();//获取
}
}


1.2 泛型方法

(1)泛型方法一定要有一个为之类型参数
(2)方法上的泛型写在修饰符玉返回值类型之间

//泛型方法,注意一定要有参数
class Tool
{
public <E> void set(E e){
System.out.println(e);
}
}

class java
{
public static void main(String[] args){
Tool tl = new Tool();

tl.set("24124");//修改
tl.set(new Object());
}
}

1.3 泛型静态方法

(1)静态方法不能访问类上定义的泛型

public static <E> void set(E e){
System.out.println(e);
}

1.4 泛型限定

(1)意义:其实就是使定义的泛型具有类似多态的特性(能够接受子类或者父类)

(2)普通泛型是指具体类型,可以接收并操作这个类型。通配符?,可以理解为占位符。表示对这个泛型不清楚

(3)语法:<? extends E>可以接受E和E的子类型,上限

                    <? super E>可以就收E和E的父类型,下限

(4)注意:泛型限定的是要传入的类型

三. 增强for循环(foreach)

1.格式

for(数据类型 变量名 : 被遍历的集合(Collection)或者数组){
//循环体;
}

2.要求

(1)只有实现Iterable的类能够使用增强for

(2)foreach语句只能做查询操作,不能对集合中元素有增删改的操作(简化书写,却出现了局限性)

四. 可变参数

1.格式

修饰符 返回值类型 函数名(参数类型... 可变参数名){
方法体
}


2.知识点

(1)原理:就是数组型参数的简写形式,只要将要操作的元素作为参数传递即可,隐式的将这些参数封装进数组

(2)注意:可变参数一定要定义在参数列表的最后边

(3)重要:想让Java拆她却不拆——可变参数传入单个数组参数时,只有对象类型的数组会拆分为多个参数,基本数据类型的数组不会自动拆分,会识别成一个数组型参数

(4)重要:不想让Java拆她却拆了——当可变参数的参数是数组类型时,而且你只想往这个可变参数中传递一个数组型参数,那么要注意,程序会出错,因为Java默认会把这个数组拆掉

     <1>.把参数数组装到Obejct[]数组当中,让Java拆个够!

     <2>.把参数数组强转为Object类型,因为invoke方法能接收Object类型,Java就不会拆了。不过这个是特例,最好用上边的解决办法

五. 静态导入

1.格式

import static 包名.类名.*;//导入该类的所有静态成员

2.知识点

(1)注意:当类名重名时,需要指定具体的报名;当方法重名时,需要指定具体所属的对象或者类
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息