前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java之JDK7的新语法探索

Java之JDK7的新语法探索

作者头像
达达前端
发布2022-04-29 10:11:17
2270
发布2022-04-29 10:11:17
举报
文章被收录于专栏:达达前端达达前端

JavaJDK7的新语法探索

前言

感谢! 承蒙关照~

字面量:

各种精致的表达方式:

八进制以0开头,十六进制0X开头,二进制以0B开头.

二进制运算时,应该写成这样才直观:

代码语言:javascript
复制
&15 -> &0B1111

JDK7使用下划线(_)对数据进行分隔.

下划线不要这样做:

不要用于进制标识和数值之间,不要定义在数值开头和结尾,不要定义在小数点旁边.

代码语言:javascript
复制
// 错误
0B_1111; _0X32_;  1_._223;

二进制的表示方式:

代码语言:javascript
复制
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

代码语言:javascript
复制
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");
   }
  }

}
代码语言:javascript
复制
// 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简化,左边定义类型,右边不用定义类型,写<>;

代码语言:javascript
复制
for(Iterator<String> it = list.iterator(); it.hasNext(); ){
 System.out.pritnln(it.next());
}
代码语言:javascript
复制
List<String> list = new ArrayList<>();
代码语言:javascript
复制
public class Demo {
 public static void main(String[] args){
  // List<String> list = new ArrayList<String>();
  List<String> list = new ArrayList<>();
  list.add("abc");
  // Iterator<String> it = list.iterator();
  
 }
}

catch

代码语言:javascript
复制
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

代码语言:javascript
复制
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();
   }
 }
}

声明:

代码语言:javascript
复制
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();
    }
  }
 }
}
代码语言:javascript
复制
// 自动释放,关闭的资源会在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);
 }
}
代码语言:javascript
复制
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后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通 简书博客: 达叔小生 https://www.jianshu.com/u/c785ece603d1

结语

  • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • try_with_resource
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档