Java之JDK7的新语法探索

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(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的新语法探索的更多相关文章
- java 28 - 6 JDK7的新特性
JDK7的新特性: 二进制字面量 数字字面量可以出现下划线 switch 语句可以用字符串 泛型简化 异常的多个catch合并 try-with-resources 语句 二进制字面量 JDK7开始, ...
- java基础(1)-比较jdk5,jdk6,jdk7的新特性
jdk8已经出来好长时间了,这里自己学习时简单总结的jdk5,jdk6和jdk7的新特性:本文提纲: 一.jdk5的新特性 二.jdk6的新特性 三.jdk7的新特性 一.jdk5的新特性 首先简单介 ...
- Java 8新特性:新语法方法引用和Lambda表达式及全新的Stream API
新语法 方法引用Method references Lambda语法 Lambda语法在AndroidStudio中报错 Stream API 我正参加2016CSDN博客之星的比赛 希望您能投下宝贵 ...
- Java中的10颗语法糖
语法糖(Syntactic Sugar):也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用.通常来说,使用语法糖能够增加程序的可读性,减少程序代码出错的 ...
- .NET中那些所谓的新语法之二:匿名类、匿名方法与扩展方法
开篇:在上一篇中,我们了解了自动属性.隐式类型.自动初始化器等所谓的新语法,这一篇我们继续征程,看看匿名类.匿名方法以及常用的扩展方法.虽然,都是很常见的东西,但是未必我们都明白其中蕴含的奥妙.所以, ...
- 总结常见的ES6新语法特性
前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...
- JAVA JDK1.5-1.9新特性
1.51.自动装箱与拆箱:2.枚举(常用来设计单例模式)3.静态导入4.可变参数5.内省 1.61.Web服务元数据2.脚本语言支持3.JTable的排序和过滤4.更简单,更强大的JAX-WS5.轻量 ...
- (转载)Java 1.7的新特性
网上找了一下,整理了贴出来. 下面是Java 1.7 里新出现的功能的一些用法例子: 对集合的支持 摒弃了 Java 集合接口的实现类,如: ArrayList . HashSet 和 HashMap ...
- 总结常见的ES6新语法特性。
前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...
随机推荐
- Win7远程桌面:发生身份验证错误
下载并安装KB4103718补丁,安装完成后重启计算机 http://www.catalog.update.microsoft.com/Search.aspx?q=KB4103718 根据操作系统选择 ...
- Angular中不同的组件间传值与通信的方法
主要分为父子组件和非父子组件部分. 父子组件间参数与通讯方法 使用事件通信(EventEmitter,@Output): 场景:可以在父子组件之间进行通信,一般使用在子组件传递消息给父组件: 步骤: ...
- 优美序列(sequence)
问题描述 Lxy养了N头奶牛,他把N头奶牛用1..N编号,第i头奶牛编号为i.为了让奶牛多产奶,每天早上他都会让奶牛们排成一排做早操.奶牛们是随机排列的.在奶牛排列中,如果一段区间[L,R]中的数从小 ...
- linux RCU机制
参考资料: https://www.cnblogs.com/qcloud1001/p/7755331.html https://www.cnblogs.com/chaozhu/p/6265740.ht ...
- SpringBoot跨域问题
1.先来说说跨域原理: 跨域原理简单来说就是发起跨域请求的时候,浏览器会对请求域返回的响应信息检查HTTP头,如果Access-Control-Allow-Origin包含了自身域,则允许访问,否则报 ...
- WebDriver中的操作使用
1.WebDriver中使用jquery假如设定jquery包的路径为path,则程序如下: String jquery=null; FileInputStream input = new FileI ...
- Maven 的这 7 个问题你思考过没有?
在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见.Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个 ...
- ASP.NET Core使用EntityFrameworkCore CodeFrist
1,安装环境: 如果是VS2015,确保已经升级至 update3或以上 .net core sdk (https://www.microsoft.com/net/download/core) vs2 ...
- Flask 学习目录
Flask 学习目录 Flask 的学习过程是一个了解如何从单个模块搭建一个 Web 框架的过程. Python.Flask 的安装和设置 简单的 Hello World 程序 使用 Jinjia2 ...
- [C#.Net]Window服务调用外部程序
最近遇到要做回传服务内增加开关,可以自定义运行一些脚本已方便收集PC状态,发现Bat始终无法运行,上网找了半天才发现和Session0有关,也就是程序有不同级别的访问权限,Vista以上版本为了安全因 ...