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语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...
随机推荐
- Jenkins+Gradle+Docker打docker镜像包上传至s3
gradle打包跟maven打包的环境搭建有相似之处,可参考maven打包https://www.cnblogs.com/chenchen-tester/p/6408815.html 进入Jenkin ...
- 局域网内yum源搭建
在一些环境下,服务器不能连接互联网,但是我们又偏偏需要安装一些软件,此时有点麻烦了.通过使用centos镜像文件,搭建yum本地源,局域网内所有服务器都可以连接这一本地源进行软件的下载和安装,下面具体 ...
- supermap数据库型数据源的数据索引问题
按如下方式查看帮助文档,根据不同的场景选用不同的索引
- 面试简单整理之web
63.servlet是什么?运行过程? Servlet是一门用于开发动态web资源的技术. 运行过程: Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后: ①W ...
- P1439 最长公共子序列(nlognLCS问题)
模板 #include <iostream> #include <cstdio> using namespace std; ],loc[],b[],k,n,l,r,mid; i ...
- 合适IT人的健身技巧
合适IT人的健身技巧: 健身益寿生活十条 虽然遗传学家说人的平均寿命可长达120岁,但本世纪人的寿命远远达不到这个数字^有鉴于此,国外一批医生.心理学家和营养学家制定了健身益寿生活10条准则,认为如能 ...
- The First Day Of Cnblogs
The fear of the LORD is the beginning of wisdom,and knowledge of the Holy One is understanding. ——Pr ...
- ApocalypseSomeday
ApocalypseSomeday CountDownLatch和CyclicBarrier分别都是在什么时候使用的? Charles使用(apphttp抓包,request拦截,response拦截 ...
- mybatis递归查询
<!--mybatis递归查询--><resultMap id="recursionMenuMap" type="AgentMenu" ext ...
- qt网络通讯出现中文乱码
转自:https://blog.csdn.net/i_fuqiang/article/details/21174227 发送: void TcpS::btn_send() { QByteArray d ...