------- android培训、java培训、期待与您交流! ----------
Java新特性包括:
1,静态导入
2,增强for循环
3,自动装箱与拆箱
4,可变参数
5,枚举
6,反射机制
1,
静态导入
import static java.lang.Math.*;//静态类导入 public class StaticImport { /**静态导入: * 将静态方法 或者静态类导入 * 因为静态方法必须在前面加上类名。 比如Math.max 需要在max前面加上Math * 静态导入后则不需要再方法名前加入类名。 * @param args */ public static void main(String[] args) { System.out.println("3和6谁大:"+max(3, 6));//不用再前面加上Math System.out.println("3-6的绝对值:"+abs(3-6));//不用再前面加上Math } }
2,增强for循环
/传统的数组遍历 String[] persons={"张三","李四","王五"}; for(int i=0;i<persons.length;i++){ System.out.println(persons[i]); } //使用增强for循环的数组遍历 String[] persons={"张三","李四","王五"}; for(String person:persons){ System.out.println(person); //传统的Iterator遍历集合 List<String> persons=new ArrayList<String>(); persons.add("张三"); persons.add("李四"); persons.add("王五"); for(Iterator<String> i=persons.iterator();i.hasNext();){ String person=i.next(); System.out.println(person); } //使用增强For循环遍历集合 List<String> persons=new ArrayList<String>(); persons.add("张三"); persons.add("李四"); persons.add("王五"); for(String person:persons){ System.out.println(person); }
3,自动装箱与拆箱
/** * 自动装箱与拆箱 * * 引出享元模式 * * @author Administrator * */ public class AutoBox { /** * @param args */ public static void main(String[] args) { // 将int类型包装秤Integer(装箱) Integer iobj = 3; // 将Integer类型和int类型直接相加 会自动将Integer类型转换成int (拆箱) System.out.println(iobj + 4); // 享元模式 /** * 将大量的重复使用的有很多属性相同的小对象,把他们变成一个对象,变成共享的。 对于多个相同的对象,为了优化资源,可以共享一个对象。 * 举例:文本编辑器中的英文单词,如果输入一个英文字符就要建立一个对象,那么对象 将庞大无比,使用享元模式,将26个封装成26个对象 * 当使用的时候只要传递坐标值, 这样大大减少内存的使用 */ } }
4,可变参数
public class VaribleParameter { /** * 可变参数: * 在传递参数中 ,参数是可变的; * 使用... args 的形式 ... args 必须放在参数列表的最后 * */ public static void main(String[] args) { System.out.println(add(2,3)); System.out.println(add(2,3,5)); } //这里举的例子:传递参数,计算参数之和,参数不固定 public static int add(int x, int ...args) { int sum =0; for (int i = 0; i < args.length; i++) { sum += args[i]; } return sum; } }
5,枚举:
/** * 枚举类型:enum * * @author Administrator * */ public class EnumDemo { /** * @param args */ public static void main(String[] args) { // 建立枚举对象,传递了星期五 WeekDay weekDay = WeekDay.FRI; // 第一:打印结果(结果为FRI 自动实现了toString()方法) System.out.println(weekDay); // 第二:获得自己的名字 System.out.println(weekDay.name()); // 第三:获得自己的位置(排行) // /*ordinal()返回枚举值在枚举中的索引位置,从0开始*/ System.out.println(weekDay.ordinal()); // 第四:注意这里用的是枚举类 而不是他的对象 调用了toString方法 System.out.println(WeekDay.valueOf("SUN")); // 第五:values()方法 将枚举元素 放入数组 ,想对枚举每个元素进行遍历时使用 // 这里是获得数组的大小 System.out.println(WeekDay.values().length); } // 定义枚举 一周 public enum WeekDay { /** * 枚举的列表必须放在最前面 构造方法必须私有 */ SUN(1), MON, TUE, WED, THI, FRI, SAT; private WeekDay() { System.out.println("调用空参数的构造方法"); } private WeekDay(int day) { System.out.println("调用整型参数的构造方法"); } } // 枚举抽象方法 public enum TrafficLamp { // 必须实现抽象方法(如果构造方法中 带参数 这里实现的时候也要带参数) RED(30) { public TrafficLamp nextLamp() { return GREEN; } }, GREEN(45) { public TrafficLamp nextLamp() { return YELLOW; } }, YELLOW(5) { public TrafficLamp nextLamp() { return RED; } }; // 定义抽象方法 返回值是TrafficLamp public abstract TrafficLamp nextLamp(); // 定义时间 灯的时间 private int time; // 使用构造方法 private TrafficLamp(int time) { this.time = time; } } }
------- android培训、java培训、期待与您交流! ----------