java基础---->java的新特性(一)
通过简单的实例来感觉一下java7和java8的新特性。当那条唯捷径省略了朝拜者,我便在一滴花露中瞬间彻悟。
java7代码实例
一、java7中switch中可以字符串
- @Test
- public void jdk7Switch() {
- String name = "huhx";
- switch (name) {
- case "huhx":
- System.out.println("name is = " + name);
- break;
- case "linux":
- System.out.println("name is = " + name);
- break;
- default:
- System.out.println("my name is huhx.");
- }
- }
二、二进制和数字下划线的分割的支持
- @Test
- public void jdk7Binary() {
- int bNum = 0b11110001;
- System.out.println(bNum); //
- int num = 12_234_34_45;
- System.out.println(num); //
- }
三、关于异常和自动的资源管理
- @Test
- public void jdk7CatchExceptions() {
- try {
- Integer.parseInt("aa");
- } catch (NumberFormatException | MaxRunTimeException e) {
- e.printStackTrace();
- }
- }
- @Test
- public void jdk7TryWithResource() throws IOException {
- try (BufferedReader reader = new BufferedReader(new FileReader("C:/Users/76801/Desktop/huhx.txt"))) {
- StringBuilder builder = new StringBuilder();
- String line = null;
- while ((line = reader.readLine()) != null) {
- builder.append(line + "\n");
- }
- System.out.println(builder.toString());
- }
- }
java8代码实例
一、Lambda的简单使用
- package com.tomhu.huhx.java8;
- import org.junit.Test;
- import java.util.function.Function;
- /**
- * @Author: huhx
- * @Date: 2017-09-21 上午 9:10
- */
- public class LambdaTest {
- @Test
- public void lambdaThread1() {
- Thread thread = new Thread(() -> {
- System.out.println("hello wolrd");
- });
- thread.start();
- }
- @Test
- public void lambaFunction1() {
- // Function是1.8里面的函数式接口
- Function<Integer, String> function1 = new Function<Integer, String>() {
- @Override
- public String apply(Integer integer) {
- return null;
- }
- };
- // lambda expression
- Function<Integer, String> function2 = (t) -> String.valueOf(t);
- // 引用的方式
- Function<Integer, String> function3 = String::valueOf;
- }
- }
二、函数式接口
- 定义一个函数式接口:DefaultFunInterface]
- package com.tomhu.huhx.java8;
- /**
- * @Author: huhx
- * @Date: 2017-09-21 上午 9:35
- */
- public interface DefaultFunInterface {
- default int count() {
- return 1;
- }
- public static int find() {
- return 1;
- }
- }
- 对上述的接口测试:InterfaceSuper
- package com.tomhu.huhx.java8;
- import org.junit.Test;
- /**
- * @Author: huhx
- * @Date: 2017-09-21 上午 9:34
- */
- public class InterfaceSuper {
- @Test
- public void defaultMethond() {
- DefaultFunInterface funInterface = new SubDefaultFunClass();
- System.out.println(funInterface.count()); //
- }
- // 接口可以直接调用自己的static方法
- @Test
- public void staticMethod() {
- System.out.println(DefaultFunInterface.find()); //
- }
- }
- class SubDefaultFunClass implements DefaultFunInterface {
- @Override
- public int count() {
- return 0;
- }
- }
三、java中nio的改进
- package com.tomhu.huhx.java8;
- import org.junit.Test;
- import java.io.File;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.time.LocalDate;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @Author: huhx
- * @Date: 2017-09-21 上午 9:39
- */
- public class StreamTest {
- @Test
- public void streamTest1() {
- List<String> stringList = new ArrayList<>();
- stringList.add("linux");
- stringList.add("liuling");
- stringList.add("liuli");
- stringList.add("tomhu");
- stringList.add("zhoucf");
- stringList.stream().filter((s -> s.startsWith("l"))).forEach(System.out::print); // linuxliulingliuli
- }
- @Test
- public void findAllFiles() throws IOException {
- Files.list(new File(".").toPath()).forEach(System.out::println);
- }
- @Test
- public void localDateTest() {
- LocalDate localDate = LocalDate.now(); // 2017-09-21
- System.out.println(localDate);
- localDate = LocalDate.ofYearDay(2017, 333); // 2017-11-29
- System.out.println(localDate);
- }
- }
四、更加简单的遍历Collection类型
- public void listForEachTest() {
- List<String> lists = Arrays.asList("huhx", "linux", "liuling");
- lists.forEach(item -> {
- if (item.startsWith("l")) {
- System.out.println(item);
- }
- });
- lists.forEach(System.out::println);
- lists.stream().filter(item -> item.contains("l")).forEach(System.out::println);
- }
- public void mapForEachTest() {
- Map<String, String> map = new HashMap<>();
- map.put("name", "huhx");
- map.put("pass", "1234");
- map.forEach((key, val)-> {
- if (key.equals("name")) {
- System.out.println(val);
- }
- });
- }
友情链接
- 比较详细的java8介绍:https://www.ibm.com/developerworks/cn/java/j-lo-jdk8newfeature/index.html
- 详细的java8介绍:http://www.importnew.com/11908.html
java基础---->java的新特性(一)的更多相关文章
- 【Java基础】Java11 新特性
Java11 新特性 新增字符串处理方法 新增方法: 判断字符串是否为空白 " ".isBlank(); // true 去除首尾空白 " Javastack " ...
- Java基础之java8新特性(1)Lambda
一.接口的默认方法.static方法.default方法. 1.接口的默认方法 在Java8之前,Java中接口里面的默认方法都是public abstract 修饰的抽象方法,抽象方法并没有方法实体 ...
- 【Java基础】Java8 新特性
Java8 新特性 Lambda 表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递).使用它可以写出更简洁.更灵活的代码. L ...
- 【Java基础】Java9 新特性
Java9 新特性 模块化系统 Java 和相关生态在不断丰富的同时也越来越暴露出一些问题: Java 运行环境的膨胀和臃肿.每次 JVM 启动的时候,至少会 30-60MB 的内存加载,主要原因是 ...
- 【Java基础】Java10 新特性
Java10 新特性 局部变量类型推断 局部变量的显示类型声明,常常被认为是不必须的. 场景一:类实例化时.在声明一个变量时,总是习惯了敲打两次变量类型,第一次用于声明变量类型,第二次用于构造器. 场 ...
- java基础---java8后新特性
1. java9 新特性 模块化的使用 减少内存的开销. 可简化各种类库和大型应用的开发和维护. 安全性,可维护性,提高性能. 在 module-info.java 文件中,我们可以用新的关键词mod ...
- JAVA JDK1.5-1.9新特性
1.51.自动装箱与拆箱:2.枚举(常用来设计单例模式)3.静态导入4.可变参数5.内省 1.61.Web服务元数据2.脚本语言支持3.JTable的排序和过滤4.更简单,更强大的JAX-WS5.轻量 ...
- Java 8 正式发布,新特性全搜罗
经过2年半的努力.屡次的延期和9个里程碑版本,甲骨文的Java开发团队终于发布了Java 8正式版本. Java 8版本最大的改进就是Lambda表达式,其目的是使Java更易于为多核处理器编写代码: ...
- Java基础-面向对象第三大特性之多态(polymorphism)
Java基础-面向对象第三大特性之多态(polymorphism) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.多态概述 多态是继封装,继承之后,面向对象的第三大特性,多态的 ...
- Java学习之==>Java8 新特性详解
一.简介 Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.Java 8是 Java 自 Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库. ...
随机推荐
- server的响应数据
前言 如果使用了MVC框架(比方,struts2). server的响应数据.分3种情况 1.响应数据是结果页面 2.响应数据是json格式的数据 3.响应数据是json格式的数据,然后再又一次发出一 ...
- How to suppress 'Maybe this is program method' warnings from ProGuard
11down votefavorite 2 I'm using ProGuard with my Android application and I'm running getting the war ...
- 7款HTML5精美应用教程 让你立即爱上HTML5
你喜欢HTML5吗?我想下面的这7个HTML5应用一定会让你爱上HTML5的,不信就一起来看看吧. 1.HTML5/jQuery雷达动画图表 图表配置十分简单 之前我们介绍过不少形形色色的HTML5图 ...
- ubuntu14.04_64位安装tensorflow-gpu
第一步(可直接跳到第二步):安装nvidia显卡驱动 linux用户可以通过官方ppa解决安装GPU驱动的问题.使用如下命令添加Graphic Drivers PPA: sudo add-apt-re ...
- Java基础--深克隆补充
深克隆文章很多,这里推荐Java提高篇--对象克隆(复制). 以上文章条理清晰,一目了然,但最近在项目中碰到的实际问题是,所要克隆的对象是加上子类父类共计207个,无论用上述两种方式的哪一种,都要一一 ...
- middle源码
CREATE TABLE `middle` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `innserSessionid` VARCHAR(250 ...
- Thinkphp5笔记一:项目部署
系统:window 7 64位 Thinkphp版本:5.0.5 环境:wampserver集成 笔记分为两大部分,配置篇与数据库篇 一.虚拟主机部署/本地部署 在网站根目录下建立文件index.ph ...
- EasyUI的功能树之异步树
最近几个项目都用到了EasyUI这个Jquery框架,目前感觉起来还是很好使的,展示效果很好,帮助文档什么的资料很多,而且互联网上Easy粉很多,大多数拥护和喜爱EasyUI的粉丝们都愿意在网络平台互 ...
- Ubuntu下安装配置redis
安装redis apt-get install redis-server 查看是否启动 ps -aux|grep redis 客户端连接 注: 安装Redis服务器,会自动地一起安装Redis命令行客 ...
- org.apache.http.client.methods.HttpGet 转到定义找不到源代码
例如 org.apache.http.client.methods.HttpGet ,提示没有源码 到这里下载 http://hc.apache.org/downloads.cgi Source 4. ...