Java
之JDK7
的新语法探索
前言
感谢! 承蒙关照~
字面量:
各种精致的表达方式:
八进制以0
开头,十六进制0X
开头,二进制以0B
开头.
二进制运算时,应该写成这样才直观:
&15 -> &0B1111复制代码
JDK7
使用下划线(_)
对数据进行分隔.
下划线不要这样做:
不要用于进制标识和数值之间,不要定义在数值开头和结尾,不要定义在小数点旁边.
// 错误0B_1111; _0X32_; 1_._223;复制代码
二进制的表示方式:
public class BinaryDemo { public static void main(String[] args){ // 定义二进制0B开头 int x=0B111100; System.out.println(x); int n1 = x & 0b1111; System.out.println(n1); // 用下划线 int y = 12_34_56; int z = 0b111_0123_234; double b = 23.223_23; }}复制代码
switch
public class Demo{ public static void main(String[] args){ int week = 1; // 会在内存中进行存储,运算中的数值存储起来运算 if(week == 1){ System.out.println("星期一"); }else if(week == 2){ System.out.println("星期二"); }else { System.out.println("输入错误"); } } // 字节码,标记,选择的值,是一个标识,对应的执行的代码 switch(week){ case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; default: System.out.println("输入错误"); } public static void Demo(){ String sex="男"; if(sex.equals("男")){ System.out.println("男"); }else{ System.out.println("女"); } // 编译器的强大 switch(sex){ case "男": System.out.println("你好"); break; case "女": System.out.println("你好"); break; default: System.out.println("hello"); } }}复制代码
// sex.hashCode();{ String sex = "男"; String s; switch ((s=sex).hashCode()) { default: break; case 22899: if(!s.equals("女")) break; System.out.println("女孩你好"); break labe10; case 30007: if(s.equals("男")) { System.out.println("先生"); break labe10; } break; } System.out.println("你好");}复制代码
泛型
Java7
简化,左边定义类型,右边不用定义类型,写<>
;
for(Iteratorit = list.iterator(); it.hasNext(); ){ System.out.pritnln(it.next());}复制代码
Listlist = new ArrayList<>();复制代码
public class Demo { public static void main(String[] args){ // Listlist = new ArrayList (); List list = new ArrayList<>(); list.add("abc"); // Iterator it = list.iterator(); }}复制代码
catch
public class Demo{ int[] arr=new int[3]; try{ int element = getElement(arr,1); }catch(throwNullPointerException){ }catch(ArrayIndexOutOfBoundsException){ } try{ int element = getElement(arr,1); }catch(throwNullPointerException || ArrayIndexOutOfBoundsException e){ }}// 添加数组,添加角标元素public static int getElement(int[] arr, int index) throws NullPointerException, ArrayIndexOutOfBoundsException{ if(arr == null){ throw new NullPointerException("数组不存在"); } if(index<0 || index>= arr.length){ throw new ArrayIndexOutOfBoundsException("数组角标不存在''); } return arr[index];}复制代码
try_with_resource
public class Demo{ public static void main(String[] args){ FileReader fr = null; try{ fr = new FileReader ("dashu.txt"); int ch = fr.read(); System.out.println(ch); }catch(IOException e){ }finally{ fr.close(); } }}复制代码
声明:
public static void function() throws IOException{ FileReader fr = null; try{ fr = new FileReader("dashu.txt"); int ch = fr.read(); System.out.println(ch); }finally{ if(fr!=null) try{ fr.close(); }catch(IOException e){ throw new RuntimeException(); } } }}复制代码
// 自动释放,关闭的资源会在try()中定义public static void Demo() throws IOException{ try(FileReader fr = new FileReader("dashu.txt");FileWriter fw = new FileWriter("dashucoding.txt")) { int ch = fr.read(); fw.write(ch); System.out.println(ch); }}复制代码
public static void function() throws IOException{ Exception exception; exception = null; Object obj = null; FileReader fr = new FileReader("dashu.txt"); FileWriter fw = new FileWriter("dashucoding.txt"); int ch = fr.read(); fw.write(ch); System.out.println(ch); if(fw != null) fw.close(); break MISSING_BLOCK_LABFL_66; exception; ...}复制代码
达叔小生:往后余生,唯独有你 You and me, we are family ! 90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通 简书博客: 达叔小生
结语
- 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
- 小礼物走一走 or 点赞