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

达叔小生:往后余生,唯独有你

You and me, we are family !

90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通

简书博客: 达叔小生

https://www.jianshu.com/u/c785ece603d1

结语

  • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞

Java之JDK7的新语法探索的更多相关文章

  1. java 28 - 6 JDK7的新特性

    JDK7的新特性: 二进制字面量 数字字面量可以出现下划线 switch 语句可以用字符串 泛型简化 异常的多个catch合并 try-with-resources 语句 二进制字面量 JDK7开始, ...

  2. java基础(1)-比较jdk5,jdk6,jdk7的新特性

    jdk8已经出来好长时间了,这里自己学习时简单总结的jdk5,jdk6和jdk7的新特性:本文提纲: 一.jdk5的新特性 二.jdk6的新特性 三.jdk7的新特性 一.jdk5的新特性 首先简单介 ...

  3. Java 8新特性:新语法方法引用和Lambda表达式及全新的Stream API

    新语法 方法引用Method references Lambda语法 Lambda语法在AndroidStudio中报错 Stream API 我正参加2016CSDN博客之星的比赛 希望您能投下宝贵 ...

  4. Java中的10颗语法糖

    语法糖(Syntactic Sugar):也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用.通常来说,使用语法糖能够增加程序的可读性,减少程序代码出错的 ...

  5. .NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法

    开篇:在上一篇中,我们了解了自动属性.隐式类型.自动初始化器等所谓的新语法,这一篇我们继续征程,看看匿名类.匿名方法以及常用的扩展方法.虽然,都是很常见的东西,但是未必我们都明白其中蕴含的奥妙.所以, ...

  6. 总结常见的ES6新语法特性

    前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...

  7. JAVA JDK1.5-1.9新特性

    1.51.自动装箱与拆箱:2.枚举(常用来设计单例模式)3.静态导入4.可变参数5.内省 1.61.Web服务元数据2.脚本语言支持3.JTable的排序和过滤4.更简单,更强大的JAX-WS5.轻量 ...

  8. (转载)Java 1.7的新特性

    网上找了一下,整理了贴出来. 下面是Java 1.7 里新出现的功能的一些用法例子: 对集合的支持 摒弃了 Java 集合接口的实现类,如: ArrayList . HashSet 和 HashMap ...

  9. 总结常见的ES6新语法特性。

    前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...

随机推荐

  1. Win7远程桌面:发生身份验证错误

    下载并安装KB4103718补丁,安装完成后重启计算机 http://www.catalog.update.microsoft.com/Search.aspx?q=KB4103718 根据操作系统选择 ...

  2. Angular中不同的组件间传值与通信的方法

    主要分为父子组件和非父子组件部分. 父子组件间参数与通讯方法 使用事件通信(EventEmitter,@Output): 场景:可以在父子组件之间进行通信,一般使用在子组件传递消息给父组件: 步骤: ...

  3. 优美序列(sequence)

    问题描述 Lxy养了N头奶牛,他把N头奶牛用1..N编号,第i头奶牛编号为i.为了让奶牛多产奶,每天早上他都会让奶牛们排成一排做早操.奶牛们是随机排列的.在奶牛排列中,如果一段区间[L,R]中的数从小 ...

  4. linux RCU机制

    参考资料: https://www.cnblogs.com/qcloud1001/p/7755331.html https://www.cnblogs.com/chaozhu/p/6265740.ht ...

  5. SpringBoot跨域问题

    1.先来说说跨域原理: 跨域原理简单来说就是发起跨域请求的时候,浏览器会对请求域返回的响应信息检查HTTP头,如果Access-Control-Allow-Origin包含了自身域,则允许访问,否则报 ...

  6. WebDriver中的操作使用

    1.WebDriver中使用jquery假如设定jquery包的路径为path,则程序如下: String jquery=null; FileInputStream input = new FileI ...

  7. Maven 的这 7 个问题你思考过没有?

    在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见.Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个 ...

  8. ASP.NET Core使用EntityFrameworkCore CodeFrist

    1,安装环境: 如果是VS2015,确保已经升级至 update3或以上 .net core sdk (https://www.microsoft.com/net/download/core) vs2 ...

  9. Flask 学习目录

    Flask 学习目录 Flask 的学习过程是一个了解如何从单个模块搭建一个 Web 框架的过程. Python.Flask 的安装和设置 简单的 Hello World 程序 使用 Jinjia2 ...

  10. [C#.Net]Window服务调用外部程序

    最近遇到要做回传服务内增加开关,可以自定义运行一些脚本已方便收集PC状态,发现Bat始终无法运行,上网找了半天才发现和Session0有关,也就是程序有不同级别的访问权限,Vista以上版本为了安全因 ...