JDK8的新特性: http://bbs.itcast.cn/thread-24398-1-1.html 其中之一:接口可以使用方法 interface Inter { //抽象方法 public abstract void show(); //default方法 public default void defaultPrint() { System.out.println("defaultPrint JDK8接口可以使用方法了"); } //static方法 public stati…
一.接口的默认方法.static方法.default方法. 1.接口的默认方法 在Java8之前,Java中接口里面的默认方法都是public abstract 修饰的抽象方法,抽象方法并没有方法实体. public class Test_interface { public static void main(String[] args) { pubInterface ts = new MyInterface(); ts.fun1(); } } //测试接口 interface pubInter…
Java8 新特性 Lambda 表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递).使用它可以写出更简洁.更灵活的代码. Lambda 表达式的本质是作为函数式接口的实例. ->, 该操作符被称为 Lambda 操作符或箭头操作符.它将 Lambda 分为两个部分: 左侧:指定了 Lambda 表达式需要的参数列表: 右侧:指定了 Lambda 体,是抽象方法的实现逻辑,也即 Lambda 表达式要执行的功能. pack…
Java9 新特性 模块化系统 Java 和相关生态在不断丰富的同时也越来越暴露出一些问题: Java 运行环境的膨胀和臃肿.每次 JVM 启动的时候,至少会 30-60MB 的内存加载,主要原因是 JVM 需要加载 rt.jar,不管其中的类是否被类加载器加载,第一步整个 jar 都会被 JVM 加载到内存当中去,而模块化可以根据模块的需要加载程序运行需要的 class: 当代码库越来越大,创建复杂,盘根错节的"意大利面条式代码"的几率呈指数级的增长.不同版本的类库交叉依赖导致让人头…
Java11 新特性 新增字符串处理方法 新增方法: 判断字符串是否为空白 " ".isBlank(); // true 去除首尾空白 " Javastack ".strip(); // "Javastack" 去除尾部空格 " Javastack ".stripTrailing(); // " Javastack" 去除首部空格 " Javastack ".stripLeading()…
1. java9 新特性 模块化的使用 减少内存的开销. 可简化各种类库和大型应用的开发和维护. 安全性,可维护性,提高性能. 在 module-info.java 文件中,我们可以用新的关键词module来声明一个模块,具体如下: module 模块名称 { } 钻石操作符:匿名内部类的使用中使用钻石操作符<>,省略类型 集合工厂:List.Set和Map集合中增加了静态工厂方法of实现不可变实例的创建 不可变体现在无法添加.修改和删除它们的元素. 不允许添加null元素对象 保证线程安全:…
Java10 新特性 局部变量类型推断 局部变量的显示类型声明,常常被认为是不必须的. 场景一:类实例化时.在声明一个变量时,总是习惯了敲打两次变量类型,第一次用于声明变量类型,第二次用于构造器. 场景二:返回值类型含复杂泛型结构. 场景三:经常声明一种变量,它只会被使用一次,而且是用在下一行代码中. 局部变量类型推断适用情况: package parzulpan.com.Java10; import java.util.ArrayList; /** * @Author : parzulpan…
在jdk8之前,interface之中可以定义变量和方法,变量必须是public.static.final的,方法必须是public.abstract的.由于这些修饰符都是默认的,所以在JDK8之前,下面的写法都是等价的. public interface JDK8BeforeInterface { public static final int field1 = 0; int field2 = 0; public abstract void method1(int a) throws Exce…
Java学习:JDK8的新特性 一.十大特性 Lambda表达式 Stream函数式操作流元素集合 接口新增:默认方法与静态方法 方法引用,与Lambda表达式联合使用 引入重复注解 类型注解 最新的Date/Time API (JSR 310) 新增base64加解密API 数组并行(parallel)操作 JVM的PermGen空间被移除:取代它的是Metaspace(JEP 122) 一.Lambda表达式 1.函数式编程 函数编程非常关键的几个特性如下: 1.闭包与高阶函数 函数编程支持…
Java8新特性之接口增强 在Java7以及以前的版本中,接口里的方法都是抽象的,并且不存在静态方法,属性默认修饰符是public static final.所有方法的声明都是public [返回类型] [方法名](参数列表) [throws 异常列表]. Java8定义的接口属性:only public, static & final are permitted. Java8定义的接口方法:Only public, abstract, default, static and strictfp…