JDK新特性
(1)JDK5
装箱和拆箱
泛型
增强for
(2)JDK6(了解)
(3)JDK7(理解)
二进制的表现形式
用_分隔数据
switch语句可是用字符串
泛型推断(菱形泛型)
多catch的使用
(4)JDK8(了解)
可以去网上了解资料
(1)JDK5
装箱和拆箱
泛型
增强for
静态导入
public class Direction { // 创建几个实例 public static final Direction FRONT = new Direction(); public static final Direction BEHIND = new Direction(); public static final Direction LEFT = new Direction(); public static final Direction RIGHT = new Direction(); // 构造私有,别人就不能无限的创建了 private Direction() { } }
public class Direction2 { // 创建几个实例 public static final Direction2 FRONT = new Direction2("前"); public static final Direction2 BEHIND = new Direction2("后"); public static final Direction2 LEFT = new Direction2("左"); public static final Direction2 RIGHT = new Direction2("右"); // 构造私有,别人就不能无限的创建了 // private Direction2() { // } // 加入成员变量,并去掉无参构造 private String name; private Direction2(String name) { this.name = name; } public String getName() { return name; } }
public abstract class Direction3 { // 创建几个实例 public static final Direction3 FRONT = new Direction3("前") { @Override public void show() { System.out.println("前"); } }; public static final Direction3 BEHIND = new Direction3("后") { @Override public void show() { System.out.println("后"); } }; public static final Direction3 LEFT = new Direction3("左") { @Override public void show() { System.out.println("左"); } }; public static final Direction3 RIGHT = new Direction3("右") { @Override public void show() { System.out.println("右"); } }; // 构造私有,别人就不能无限的创建了 // private Direction2() { // } // 加入成员变量,并去掉无参构造 private String name; private Direction3(String name) { this.name = name; } public String getName() { return name; } // 加入抽象方法 public abstract void show(); }
public class DirectionDemo { public static void main(String[] args) { Direction d = Direction.FRONT; System.out.println(d); // cn.itcast_01.Direction@175078b System.out.println("------------------------------------"); Direction2 d2 = Direction2.FRONT; System.out.println(d2);// cn.itcast_01.Direction2@11563ff System.out.println(d2.getName()); d2 = Direction2.RIGHT; System.out.println(d2); System.out.println(d2.getName()); System.out.println("------------------------------------"); Direction3 d3 = Direction3.FRONT; System.out.println(d3); System.out.println(d3.getName()); d3.show(); d3 = Direction3.LEFT; System.out.println(d3); System.out.println(d3.getName()); d3.show(); } }可变参数
枚举
/* * 通过JDK5提供的枚举来做枚举类 */ public enum Direction { FRONT, BEHIND, LEFT, RIGHT; }
/* * 通过JDK5提供的枚举来做枚举类 */ public enum Direction2 { FRONT("前"), BEHIND("后"), LEFT("左"), RIGHT("右"); private String name; private Direction2(String name) { this.name = name; } public String getName() { return name; } // @Override // public String toString() { // return "我爱林青霞"; // } }
/* * 通过JDK5提供的枚举来做枚举类 */ public enum Direction3 { FRONT("前") { @Override public void show() { System.out.println("前"); } }, BEHIND("后") { @Override public void show() { System.out.println("后"); } }, LEFT("左") { @Override public void show() { System.out.println("左"); } }, RIGHT("右") { @Override public void show() { System.out.println("右"); } }; private String name; private Direction3(String name) { this.name = name; } public String getName() { return name; } public abstract void show(); }
public class DirectionDemo { public static void main(String[] args) { Direction d = Direction.FRONT; System.out.println(d); // FRONT // public String toString()返回枚举常量的名称,它包含在声明中。 System.out.println("-------------"); Direction2 d2 = Direction2.FRONT; System.out.println(d2); System.out.println(d2.getName()); System.out.println("-------------"); Direction3 d3 = Direction3.FRONT; System.out.println(d3); System.out.println(d3.getName()); d3.show(); System.out.println("--------------"); Direction3 dd = Direction3.FRONT; dd = Direction3.LEFT; switch (dd) { case FRONT: System.out.println("你选择了前"); break; case BEHIND: System.out.println("你选择了后"); break; case LEFT: System.out.println("你选择了左"); break; case RIGHT: System.out.println("你选择了右"); break; } } }
public class EnumMethodDemo { public static void main(String[] args) { // int compareTo(E o) Direction2 d21 = Direction2.FRONT; Direction2 d22 = Direction2.BEHIND; Direction2 d23 = Direction2.LEFT; Direction2 d24 = Direction2.RIGHT; System.out.println(d21.compareTo(d21)); System.out.println(d21.compareTo(d24)); System.out.println(d24.compareTo(d21)); System.out.println("---------------"); // String name() System.out.println(d21.name()); System.out.println(d22.name()); System.out.println(d23.name()); System.out.println(d24.name()); System.out.println("--------------"); // int ordinal() System.out.println(d21.ordinal()); System.out.println(d22.ordinal()); System.out.println(d23.ordinal()); System.out.println(d24.ordinal()); System.out.println("--------------"); // String toString() System.out.println(d21.toString()); System.out.println(d22.toString()); System.out.println(d23.toString()); System.out.println(d24.toString()); System.out.println("--------------"); // <T> T valueOf(Class<T> type,String name) Direction2 d = Enum.valueOf(Direction2.class, "FRONT"); System.out.println(d.getName()); System.out.println("----------------"); // values() // 此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便 Direction2[] dirs = Direction2.values(); for (Direction2 d2 : dirs) { System.out.println(d2); System.out.println(d2.getName()); } } }
(2)JDK6(了解)
(3)JDK7(理解)
二进制的表现形式
用_分隔数据
switch语句可是用字符串
泛型推断(菱形泛型)
多catch的使用
自动释放资源的用法
import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; public class Demo { public static void main(String[] args) { // 二进制字面量 int x = 0b100101; System.out.println(x); // 数字字面量可以出现下划线 int y = 1_1123_1000; // 不能出现在进制标识和数值之间 int z = 0x111_222; // 不能出现在数值开头和结尾 int a = 0x11_22; // 不能出现在小数点旁边 double d = 12.3_4; // switch 语句可以用字符串?自己回顾 // 泛型简化 ArrayList<String> array = new ArrayList<>(); // 异常的多个catch合并 method(); } private static void method() { // try-with-resources 语句 // try(必须是java.lang.AutoCloseable的子类对象){…} try { FileReader fr = new FileReader("a.txt"); FileWriter fw = new FileWriter("b.txt"); int ch = 0; while ((ch = fr.read()) != -1) { fw.write(ch); } fw.close(); fr.close(); } catch (IOException e) { e.printStackTrace(); } // 改进版的代码 try (FileReader fr = new FileReader("a.txt"); FileWriter fw = new FileWriter("b.txt");) { int ch = 0; while ((ch = fr.read()) != -1) { fw.write(ch); } } catch (IOException e) { e.printStackTrace(); } } }
(4)JDK8(了解)
可以去网上了解资料