java基础---->java的新特性(一)
2017-12-26 16:41
162 查看
通过简单的实例来感觉一下java7和java8的新特性。当那条唯捷径省略了朝拜者,我便在一滴花露中瞬间彻悟。
对上述的接口测试:InterfaceSuper
详细的java8介绍:http://www.importnew.com/11908.html
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); // 241 int num = 12_234_34_45; System.out.println(num); // 122343445 }
三、关于异常和自动的资源管理
@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()); // 1 } // 接口可以直接调用自己的static方法 @Test public void staticMethod() { System.out.println(DefaultFunInterface.find()); // 1 } } 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基础加强1.5新特性)
- Java基础<六>---> 面向对象与java特性(封装、继承、多态
- <黑马程序员>java基础加强--JDK 5.0 新特性
- Java基础加强<一>_MyEclipse、JDK1.5新特性、枚举、反射
- Java基础(七)面向对象高级特性
- 黑马程序员——java基础---JDK1.5新特性
- 黑马程序员 Java基础 --->7K面试题之交通灯管理系统
- 黑马程序员——Java基础---集合<二>Map,Arrays,Collections
- 黑马程序员====JAVA基础之面向对象及其特性====
- JAVA基础【1.4】《Java核心技术1》Java程序设计概述-Java JDK1.7新特性【收集】
- 黑马程序员——java基础知识篇——>异常总结
- 程序员_Java基础之<七>-集合框架
- 黑马程序员——java基础知识篇——>java概述
- 黑马程序员-->Java基础-->单例设计模式
- 黑马程序员--java基础之jdk1.5新特性
- java基础学习总结(2):类的基础特性
- java 从零开始,学习笔记之基础入门<servlet_文件下载>(二十七)
- day05<Java语言基础--数组>
- 黑马程序员<java基础<常用类特点>>
- 黑马程序员 java基础<五>--IO流(3)