通过简单的实例来感觉一下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. 九章算法:BAT国内班 - 课程大纲

    第1章 国内笔试面试风格及准备方法 --- 分享面试经验,通过例题分析国内面试的风格及准备方法 · 1) C/C++部分: 实现 memcpy 函数 STL 中 vector 的实现原理 · 2)概率 ...

  2. IE9出现异常SCRIPT5011:不能执行已释放Script的代码

    今天同事测试系统,突然出现一个异常SCRIPT5011:不能执行已释放Script的代码 应用场景:用模态方式打开个窗口,对于返回对象使用"=="与字符串比较时出现错误 我也用我的 ...

  3. CloudSetuper

    地址:http://setup.qframer.com/help CloudSetuper CloudSetuper 是一款windows上的安装包制作工具,类似 NSIS or Inno Setup ...

  4. php 统计fasta 序列长度和GC含量

    最近php7的消息铺天盖地, 忍不住想尝试下.星期天看了下语法, 写个小脚本练下手: 这个脚本读取fasta 文件, 输出序列的长度和GC含量: <?php $fasta = "tes ...

  5. LinuxMint下的Orionode源码安装

    1. Orionode介绍 Eclipse-orion是Eclipse项目下面的一个子项目,orion是一个在在线版的代码编辑环境.其介绍参考http://wiki.eclipse.org/Orion ...

  6. MongoDB 之 Capped Collection

    MongoDB 支持 Capped Collection,一种固定大小的集合,当集合的大小达到指定大小时,新数据覆盖老数据,MongoDB Replica set 中的 oplog 就是 Capped ...

  7. java程序员如何编写更好的单元测试的7个技巧

    详解 cppunit进行单元测试 单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的.很明确的功能是否正确.通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函 ...

  8. js读取csv文件为json显示

    摘要: 前面分享了用js将json数据下载为csv文件,方便后期管理.但是对于测试人员更希望能够以页面的形式展现任务,所以就做了一个将csv文件展现在页面上的例子. 代码: <!DOCTYPE ...

  9. 5种实现垂直居中css

    摘要: 在我们制作页面的时候经常会遇到内容垂直居中的需求,今天分享5种垂直居中的方法,每种方法都有自己的优缺点,可以选择自己喜欢的方式.以下代码都经过本人亲自测试. line-height: < ...

  10. Java -- IO -- 目录

    操作文件的类 -- -- File File类的基本介绍 使用File类操作文件 范例 -- -- 列出指定目录的全部内容 RandomAccessFile类 使用RandomAccessFile类写 ...