通过简单的实例来感觉一下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);
}
});
}

友情链接

java基础---->java的新特性(一)的更多相关文章

  1. 【Java基础】Java11 新特性

    Java11 新特性 新增字符串处理方法 新增方法: 判断字符串是否为空白 " ".isBlank(); // true 去除首尾空白 " Javastack " ...

  2. Java基础之java8新特性(1)Lambda

    一.接口的默认方法.static方法.default方法. 1.接口的默认方法 在Java8之前,Java中接口里面的默认方法都是public abstract 修饰的抽象方法,抽象方法并没有方法实体 ...

  3. 【Java基础】Java8 新特性

    Java8 新特性 Lambda 表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递).使用它可以写出更简洁.更灵活的代码. L ...

  4. 【Java基础】Java9 新特性

    Java9 新特性 模块化系统 Java 和相关生态在不断丰富的同时也越来越暴露出一些问题: Java 运行环境的膨胀和臃肿.每次 JVM 启动的时候,至少会 30-60MB 的内存加载,主要原因是 ...

  5. 【Java基础】Java10 新特性

    Java10 新特性 局部变量类型推断 局部变量的显示类型声明,常常被认为是不必须的. 场景一:类实例化时.在声明一个变量时,总是习惯了敲打两次变量类型,第一次用于声明变量类型,第二次用于构造器. 场 ...

  6. java基础---java8后新特性

    1. java9 新特性 模块化的使用 减少内存的开销. 可简化各种类库和大型应用的开发和维护. 安全性,可维护性,提高性能. 在 module-info.java 文件中,我们可以用新的关键词mod ...

  7. JAVA JDK1.5-1.9新特性

    1.51.自动装箱与拆箱:2.枚举(常用来设计单例模式)3.静态导入4.可变参数5.内省 1.61.Web服务元数据2.脚本语言支持3.JTable的排序和过滤4.更简单,更强大的JAX-WS5.轻量 ...

  8. Java 8 正式发布,新特性全搜罗

    经过2年半的努力.屡次的延期和9个里程碑版本,甲骨文的Java开发团队终于发布了Java 8正式版本. Java 8版本最大的改进就是Lambda表达式,其目的是使Java更易于为多核处理器编写代码: ...

  9. Java基础-面向对象第三大特性之多态(polymorphism )

    Java基础-面向对象第三大特性之多态(polymorphism) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.多态概述 多态是继封装,继承之后,面向对象的第三大特性,多态的 ...

  10. Java学习之==>Java8 新特性详解

    一.简介 Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.Java 8是 Java 自 Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库. ...

随机推荐

  1. Oracle EM错误,java.lang.Exception: Exception in sending Request :: null 分类: Oracle 2015-07-08 21:24 44人阅读 评论(0) 收藏

    操作系统:Win7 64bit Oracle: 10.2.0.1.0 很久没有使用EM了,打开一看,居然报错了,出现java.lang.Exception: Exception in sending ...

  2. Sublime text 3 中Package Control 的安装与使用方法

    Package Control插件本身是一个为了方便管理插件的插件,在Sublime text 3中,Package Control 的安装方法一开始出来的方法是要先安装Git, 再输入代码来安装,原 ...

  3. 算法-Java组合

    code: import org.assertj.core.util.Lists; import java.util.ArrayList; import java.util.Collections; ...

  4. OCA,OCP,OCM傻傻分不清?

    可能大家知道OCA.OCP.OCM的关系是一个比一个难考,一个比一个含金量高,但是你知道具体的考试科目.考试方式.就业形势区别吗?不知道的话这篇通俗易懂的文章会让你一目了然. 区别一:含金量 ■OCA ...

  5. android studio怎么导入appcompat-v7

    方法1: 在项目的build.gradle文件里,用传统的自动依赖处理方式:compile ‘com.Android.support:appcompat-v7:+’,然后rebuild就可以了. 方法 ...

  6. 深入浅出:全面理解SQL Server权限体系

    转自IT168  好文转载存档! [IT168 技术]权限两个字,一个权力,一个限制.在软件领域通俗的解释就是哪些人可以对哪些资源做哪些操作.在SQL Server中,"哪些人", ...

  7. winform下 PictureBox 显示网络图片

    Image pic = new Image.FromStream(WebRequest.Create("http://x.com/x.jpg").GetResponse().Get ...

  8. highcharts系列之xAxis

    xAxis定义的是x坐标轴的配置选项.默认情况下,x轴指的是水平轴,特殊指定的时候也可以作为垂直的轴使用,在多坐标系中,xAxis是有多个配置好了的轴object的数组. 下面来看一下,xAxis常用 ...

  9. 教你下载BarTender 2016

    BarTender是全球领先标签.条形码.RFID和证卡设计打印软件,功能强大,操作简单,具有很强的灵活性.目前,BarTender软件已更新至最新版BarTender 2016.BarTender ...

  10. Android开发学习笔记-自定义组合控件的过程

    自定义组合控件的过程 1.自定义一个View 一般来说,继承相对布局,或者线性布局 ViewGroup:2.实现父类的构造方法.一般来说,需要在构造方法里初始化自定义的布局文件:3.根据一些需要或者需 ...