愿景:"让编程不再难学,让技术与生活更加有趣"
更多架构课程请访问 xdclass.net
目录
第1集 大话JDK各个版本常见问题讲解
简介:讲解JDK一些基础知识科普
-
OpenJDK和OracleJDK版本区别
-
OpenJDK是JDK的开放源码版本,以GPL协议的形式发布(General Public License)
-
Oracle JDK采用了商业实现
-
-
LTS 是啥意思?
-
Long Term Support 长期支持的版本,如JDK8、JDK11都是属于LTS
-
JDK9 和 JDK10 这两个被称为“功能性的版本”不同, 两者均只提供半年的技术支持
-
甲骨文释出Java的政策,每6个月会有一个版本的释出,长期支持版本每三年发布一次,根据后续的发布计划,下一个长期支持版 Java 17 将于2021年发布
-
-
8u20、11u20是啥意思?
-
就是Java的补丁,比如JDK8的 8u20版本、8u60版本; java11的 11u20、11u40版本
-
-
JDK要收费了????
-
问题的产生由来
-
Oracle 宣布 Java8 在 2019 年 1月之后停止更新,另外 Java11 及以后版本将不再提供免费的 long-term support (LTS) 支持,猜测未来将有越来越多 Java 开发者转向使用 OpenJDK
-
OpenJDK是免费的,想要不断体验新特性的developer来说是不错的选择
-
OracleJDK不是免费的,对于企业用户来说,有钱的情况下就选择OracleJDK
-
-
-
-
对应oracleJDK ,我们可以自己用来写代码,调试,学习即可
第2集 玩转JDK13新特性之多行文本块
简介:讲解JDk13里面新增的多行文本块
-
JDK13发布,主要更新点
-
https://www.oracle.com/technetwork/java/javase/13-relnote-issues-5460548.html#NewFeature
-
JEP全称 :JDK Enhancement Proposal 特性增强提议
-
多行文本块
-
旧:在java代码里面编写多行源码带有特殊字符则需要转义,如HTML,sql等
-
新:原生字符串文字(raw string literals),它可以跨多行源码而不对转义字符进行转义
-
旧:
String html = "<html>\n" +
" <body>\n" +
" <p>Hello, world</p>\n" +
" </body>\n" +
"</html>\n";
String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" +
"WHERE `CITY` = 'INDIANAPOLIS'\n" +
"ORDER BY `EMP_ID`, `LAST_NAME`;\n";
新:
String html = """
<html>
<body>
<p>Hello, world</p>
</body>
</html>
""";
String query = """
SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
WHERE `CITY` = 'INDIANAPOLIS'
ORDER BY `EMP_ID`, `LAST_NAME`;
""";
对比一
"""
line 1
line 2
line 3
"""
等效于字符串文字:
"line 1\nline 2\nline 3\n"
对比二
"""
line 1
line 2
line 3"""
等效于字符串文字:
"line 1\nline 2\nline 3"
对比三
文本块可以表示空字符串,但不建议这样做,因为它需要两行代码:
String empty = """
""";
注意:错误例子
String a = """"""; // no line terminator after opening delimiter
String b = """ """; // no line terminator after opening delimiter
String c = """
";
-
开启新版支持 jshell --enable-preview
第3集 玩转JDK13新特性之增强switch表达式
简介:讲解JDk13里面优化了switch表达式
-
旧:没有break,则匹配的case后面会一直输出, value类型 可以是 byte、short、int 、char、String 类型
public void testOldSwitch1(){
int i = 1;
switch(i){
case 0:
System.out.println("zero");
case 1:
System.out.println("one");
case 2:
System.out.println("two");
default:
System.out.println("default");
}
}
public void testOldSwitch2(int i){
switch(i){
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
default:
System.out.println("default");
}
}
-
新:使用箭头函数,不用声明break,会自动终止,支持多个值匹配,使用逗号分隔
public void testNewSwitch(int i){
switch(i){
case 0 -> {
System.out.println("zero");
System.out.println("这是多行语句");
}
case 1,11,111 -> System.out.println("one");
case 2 -> System.out.println("two");
default -> System.out.println("default");
}
}
干货文档
关注公众号发送:“CSDN干货文档” 即可领取