专栏首页达达前端第66节:Java之JDK7的新语法探索

第66节:Java之JDK7的新语法探索

标题图

JavaJDK7的新语法探索

前言

感谢! 承蒙关照~

字面量:

各种精致的表达方式:

八进制以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(Iterator<String> it = list.iterator(); it.hasNext(); ){
 System.out.pritnln(it.next());
}
List<String> list = new ArrayList<>();
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

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;
 ...
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 第九节:详细讲解Java中的泛型,多线程,网络编程

    大家好,我是 Vic,今天给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢

    达达前端
  • 第五节:详细讲解Java中的接口与继承

    大家好,我是 Vic,今天给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢

    达达前端
  • 第76节:Java中的基础知识

    设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat

    达达前端
  • 面试官:i = i++和 i = ++i 的有什么区别?

    出处:blog.csdn.net/qq_44377709/article/details/106643703

    开发者技术前线
  • 第九节:详细讲解Java中的泛型,多线程,网络编程

    大家好,我是 Vic,今天给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢

    达达前端
  • JAVA经典算法40例

    【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多...

    深浅无解
  • Java-函数

    方法重载:在同一个类中,出现了方法名相同 不能出现参数名以及参数条件一致的方法 特点:

    DataScience
  • 编程题1-6答案

    三哥
  • Java自动化测试(循环/条件控制语句 预习3)

    初始化值1->循环终止条件2「true」->循环体3->循环体执行后的语句4 ->循环终止条件2「true」->循环体3->循环体执行后的语句4->…循环终止条...

    zx钟
  • 【编程题】Java编程题一(10道)

    【编程题】Java编程题一(10道) 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,...

    Java帮帮

扫码关注云+社区

领取腾讯云代金券