Java----JDK1.5出现的新特性
2013-07-15 01:31
253 查看
高新技术 JDK1.5出现的新特性
一、Static Import静态导入
import static语句:导入一个类中的某个静态方法,或所有静态方法。
例:
例:
可变参数:一个方法接受的参数个数不确定,可以使用可变参数对方法进行改进。
特点:只能出现在参数列表的最后;“...”位于变量类型和变量名之间。前后有无空格都可以;调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。
例:
回顾:overload和override的区别?
异:
override(重写)
1.方法名、参数、返回值相同。
2.子类方法的访问权限不能小于父类方法。
3.子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4.方法被定义为final不能被重写。
overload(重载)
1、参数类型、个数、顺序至少有一个不相同。
2、不能重载只有返回值不同的方法名。
同:存在于父类和子类、同类中。
三、高级for循环
语法:for(type 变量:集合变量名){...}
注意事项:
1.迭代变量必须在“()”中定义。
2.集合变量可以是数组或实现了Iterator接口的集合类。
例:
四、自动拆箱和自动装箱
例:
其实在运行过程中,省略了很多动作,Integer i = 7其实简写了Integer i = new Integer(7)。int sum = i+j其实也隐含了int sum
= i.intValue()+j.intValue()。自动拆箱装箱功能的出现实现了对代码的简化。
享元模式:
疑惑:
为神马会这样了?
答:这是享元模式,一个byte的范围在-128~127。因为这些数被利用的次数较为频繁,所以为了优化内存,就把这些数提取出来供对象调用。作为对象们共享数据,所以也就相等了。
一、Static Import静态导入
import static语句:导入一个类中的某个静态方法,或所有静态方法。
例:
package cn.itcast.day1; public class StaticImport { public static void main(String[] args) { int i = -3; i = Math.abs(i); System.out.println(i); double num = Math.random(); System.out.println(num); } }每次要使用Math类的功能都得加上类名进行调用,很麻烦。使用静态导入。
例:
package cn.itcast.day1; import static java.lang.Math.*; public class StaticImport { public static void main(String[] args) { int i = -3; i = abs(i); System.out.println(i); double num = random(); System.out.println(num); } }二、可变参数
可变参数:一个方法接受的参数个数不确定,可以使用可变参数对方法进行改进。
特点:只能出现在参数列表的最后;“...”位于变量类型和变量名之间。前后有无空格都可以;调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。
例:
package cn.itcast.day1; public class VariableParam { public static void main(String[] args) { // TODO Auto-generated method stub fun("sum",3,4,5); fun("sum",3,4,5,7); fun("sum",3,7); } private static void fun(String string, int ... args) { // TODO Auto-generated method stub int sum = 0; for(int i : args){ sum += i; } System.out.println(string+" = "+sum); } }
回顾:overload和override的区别?
异:
override(重写)
1.方法名、参数、返回值相同。
2.子类方法的访问权限不能小于父类方法。
3.子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
4.方法被定义为final不能被重写。
overload(重载)
1、参数类型、个数、顺序至少有一个不相同。
2、不能重载只有返回值不同的方法名。
同:存在于父类和子类、同类中。
三、高级for循环
语法:for(type 变量:集合变量名){...}
注意事项:
1.迭代变量必须在“()”中定义。
2.集合变量可以是数组或实现了Iterator接口的集合类。
例:
package cn.itcast.day1; public class ForEach { public static void main(String[] args) { int[] arrays = {1,2,3,4,5,6}; int sum = 0; for(int num : arrays){ sum += num; } System.out.println("Sum = "+sum); } }
四、自动拆箱和自动装箱
例:
package cn.itcast.day1; public class ForEach { public static void main(String[] args) { Integer i = 7;//自动将基本数据类型变量装箱成对象 Integer j = 3; int sum = i+j;//自动将对象拆箱成基本数据类型变量 System.out.println("Sum = "+sum); } }
其实在运行过程中,省略了很多动作,Integer i = 7其实简写了Integer i = new Integer(7)。int sum = i+j其实也隐含了int sum
= i.intValue()+j.intValue()。自动拆箱装箱功能的出现实现了对代码的简化。
享元模式:
package cn.itcast.day1; public class ForEach { public static void main(String[] args) { Integer a = 127; Integer b = 127; System.out.println(a == b); Integer c = 128; Integer d = 128; System.out.println(c == d); } }
疑惑:
为神马会这样了?
答:这是享元模式,一个byte的范围在-128~127。因为这些数被利用的次数较为频繁,所以为了优化内存,就把这些数提取出来供对象调用。作为对象们共享数据,所以也就相等了。
相关文章推荐
- Java--jdk1.5新特性线程池用法
- 黑马程序员-java基础加强-JDK1.5新特性
- 黑马程序员——【Java高新技术】——JDK1.5新特性:静态导入、可变参数、增强型for循环、自动装箱拆箱、枚举
- 黑马程序员-------java提高 jdk1.5新特性
- java--加强之 jdk1.5简单新特性,枚举,注解
- 黑马程序员——Java高新技术——JDK1.5版本的新特性泛型
- jdk1.5出现的新特性---->增强for循环
- java笔记20 JDK1.5新特性
- 黑马程序员-Java高新技术-jdk1.5简单的新特性
- java--JDK1.5新特性
- java基础--高薪技术--JDK1.5新特性
- Java基础-----jdk1.5新特性(静态导入,增强for循环,枚举)
- java--加强之 jdk1.5简单新特性,枚举,注解
- Java 基础加强 - JDK1.5 新特性 - 枚举
- Java-JDK1.5新特性
- Java--JDK各个版本的新特性jdk1.5-jdk8
- 黑马程序员——Java基础:反射、JDK1.5新特性、正则表达式
- Java基础18--泛型--工具类--JDK1.5新特性
- Java基础——JDK1.5版本新特性
- Java学习总结(一)—— >Java环境变量的配置,DOS窗口的带包编译,Jdk1.5的两个新特性(可变参数和增强的for循环)