黑马程序员--java高新技术--jdk1.5新特性
2014-12-09 06:26
316 查看
------- android培训、java培训、期待与您交流! ---------
jdk1.5通过新特性来简化开发。jdk1.5的新特性主要有:泛型,for-each,自动拆装箱,枚举,可变参数,静态导入等。
泛型:
泛型在编译器进行语法检查时有用。目的是讲运行时异常转换为编译时错误
for-each:
向集合中取元素时同时加元素,需要使用迭代器来完成,即需要传统的for循环。
自动拆装箱:
享元模式 flyweight:
数字在一字节之内。-128 ~ 127 把内存中的对象取出,不会新建对象
枚举:
枚举就是要让某个类型的变量取值只能为若干个固定值中的一个,否则会构造失败。
一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值。
1.定义枚举类
public enum Color {
RED, GREEN, BLANK, YELLOW
}
2.:switch
enum Signal {
GREEN, YELLOW, RED
}
public class TrafficLight {
Signal color = Signal.RED;
public void change() {
switch (color) {
case RED:
color = Signal.GREEN;
break;
case YELLOW:
color = Signal.RED;
break;
case GREEN:
color = Signal.YELLOW;
break;
}
}
}
3.枚举类中添加方法。
public enum Color {
RED("红色", 1), GREEN("绿色", 2), BLAKE("黑色", 3), YELLO("黄色", 4);
// 成员变量
private String name;
private int index;
// 构造方法
private Color(String name, int index) {
this.name = name;
this.index = index;
}
// 普通方法
public static String getName(int index) {
for (Color c : Color.values()) {
if (c.getIndex() == index) {
return c.name;
}
}
return null;
}
// get\set 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}
枚举类中声明的每一个枚举值代表枚举类的一个实例对象。
枚举类与Java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数。
但枚举类的构造函数必须为私有的。
可变参数:
解决了一个方法接受参数不固定的的问题.
在以前,必须用重载的方式解决,现在简化了代码
例子:
package cn.jhc.day1;
public class VarableParameter {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(add(2, 3, 5));
System.out.println(add(3, 8));
}
<span style="white-space:pre"> </span>//可变参数int... args
public static int add(int x, int... args){
int sum = x;
/* for (int i = 0; i < args.length; i++) {
sum+=args[i];
}*/
for (int arg : args) {
sum += arg;
}
return sum;
}
}
静态导入:
静态导入可以导入静态方法,这样就不必写类名而直接调用静态方法。
import static 类名.包名;
例子:
package cn.jhc.day1;
import static java.lang.Math.abs;
import static java.lang.Math.*;
import cn.jhc.day2.AnnotationTest;
public class StaticImport {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
AnnotationTest.sayHello();
int x = 1;
x++;
System.out.println(x);
max(2, x);//直接调用静态方法max abs
abs(3 - 6);
}
}
------- android培训、java培训、期待与您交流! ---------
jdk1.5通过新特性来简化开发。jdk1.5的新特性主要有:泛型,for-each,自动拆装箱,枚举,可变参数,静态导入等。
泛型:
泛型在编译器进行语法检查时有用。目的是讲运行时异常转换为编译时错误
package jihekuangjia; import java.util.ArrayList; import java.util.Iterator; public class ArrayListText { public static void main(String[] args) { // TODO Auto-generated method stub //泛型<>,若加入元素时与<>不同,就会报错 ArrayList<String> al = new ArrayList<>(); //1.添加元素 al.add("java01"); al.add(1);//编译报错 al.add("java03"); } }
for-each:
package ForEachDemo; import java.security.AllPermission; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class ForEachDemo { /** * 高级For循环 * for(数据类型 变量名 : 被遍历的集合(collection)或者数组){ * * } * */ public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = {4,3,5}; //增强for循环 for (int s : arr) { System.out.println(s); } //原for循环 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
向集合中取元素时同时加元素,需要使用迭代器来完成,即需要传统的for循环。
自动拆装箱:
//以前 Integer i1 = (Integer)3; //现在,自动装箱 Integer i2 = 3; //自动拆箱 System.out.println(i1 + 3);
享元模式 flyweight:
数字在一字节之内。-128 ~ 127 把内存中的对象取出,不会新建对象
枚举:
枚举就是要让某个类型的变量取值只能为若干个固定值中的一个,否则会构造失败。
一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值。
1.定义枚举类
public enum Color {
RED, GREEN, BLANK, YELLOW
}
2.:switch
enum Signal {
GREEN, YELLOW, RED
}
public class TrafficLight {
Signal color = Signal.RED;
public void change() {
switch (color) {
case RED:
color = Signal.GREEN;
break;
case YELLOW:
color = Signal.RED;
break;
case GREEN:
color = Signal.YELLOW;
break;
}
}
}
3.枚举类中添加方法。
public enum Color {
RED("红色", 1), GREEN("绿色", 2), BLAKE("黑色", 3), YELLO("黄色", 4);
// 成员变量
private String name;
private int index;
// 构造方法
private Color(String name, int index) {
this.name = name;
this.index = index;
}
// 普通方法
public static String getName(int index) {
for (Color c : Color.values()) {
if (c.getIndex() == index) {
return c.name;
}
}
return null;
}
// get\set 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}
枚举类中声明的每一个枚举值代表枚举类的一个实例对象。
枚举类与Java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数。
但枚举类的构造函数必须为私有的。
可变参数:
解决了一个方法接受参数不固定的的问题.
在以前,必须用重载的方式解决,现在简化了代码
例子:
package cn.jhc.day1;
public class VarableParameter {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(add(2, 3, 5));
System.out.println(add(3, 8));
}
<span style="white-space:pre"> </span>//可变参数int... args
public static int add(int x, int... args){
int sum = x;
/* for (int i = 0; i < args.length; i++) {
sum+=args[i];
}*/
for (int arg : args) {
sum += arg;
}
return sum;
}
}
静态导入:
静态导入可以导入静态方法,这样就不必写类名而直接调用静态方法。
import static 类名.包名;
例子:
package cn.jhc.day1;
import static java.lang.Math.abs;
import static java.lang.Math.*;
import cn.jhc.day2.AnnotationTest;
public class StaticImport {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
AnnotationTest.sayHello();
int x = 1;
x++;
System.out.println(x);
max(2, x);//直接调用静态方法max abs
abs(3 - 6);
}
}
------- android培训、java培训、期待与您交流! ---------
相关文章推荐
- 黑马程序员_高新技术之Java-JDK1.5新特性
- 黑马程序员 java_高新技术(一)_相关基础、JDK1.5新特性
- 黑马程序员—【Java高新技术】之eclipse开发工具枚举及JDK1.5新特性
- 黑马程序员:Java高新技术1--JDK1.5 新特性
- 黑马程序员——【Java高新技术】——JDK1.5新特性:静态导入、可变参数、增强型for循环、自动装箱拆箱、枚举
- 黑马程序员 Java高新技术-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高新技术-JDK1.5新特性(二)【基本数据类型的自动拆箱与装箱,枚举】以及享元设计模式
- 黑马程序员—JAVA高新技术_JDK1.5新特性II
- 黑马程序员--Java高新技术--JDK1.5新特性(上)
- 黑马程序员--JAVA高新技术之eclipse开发工具相关知识、JDK1.5新特性
- 黑马程序员--Java高新技术--JDK1.5新特性(下)
- 黑马程序员_java高新技术_JDK1.5新特性
- 黑马程序员--Java高新技术--JDK1.5新特性(上)