
★ JavaSe·高级特性
不爱我就写代码
给自己定一个小目标:成为架构师
展开
-
【JavaSe】高级特性篇(一) Java高级特性泛型
JavaSe·特性篇(一) 泛型1. 泛型概述我们都知道集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。public static void main(String[] args) { Collection coll = new ArrayList(); coll.add(...原创 2019-08-25 15:21:11 · 889 阅读 · 0 评论 -
【JavaSe】高级特性篇(二) Java高级特性枚举
JavaSe·高级特性篇(二) Java高级新特性注解1. 为什么需要枚举一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值。此类问题在JDK 1.5 以前采用自定义带有枚举功能的类解决,Java 5.0以后可以直接使用枚举予以解决。 JDK 1.5 新增的Enum 关键字用于定义一个枚举类。2. 枚举的使用类的对象只有有限个,确定的。举例如下:星期:Monday...原创 2019-08-27 13:30:53 · 572 阅读 · 0 评论 -
【JavaSe】高级特性篇(三) Java高级特性注解
JavaSe·高级特性篇(三) Java高级新特性注解1. 注解(Annotation)概述1.1 定义定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。1.2 与注释的区别注解:说明程序的。给计算机看...原创 2019-08-27 14:07:50 · 608 阅读 · 0 评论 -
【JavaSe】高级特性篇(四) Java高级特性反射机制
JavaSe·高级特性篇(四) Java高级新特性反射机制1. Java Reflection 概述Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整...原创 2019-08-27 15:43:51 · 584 阅读 · 0 评论 -
【JavaSe】高级特性篇(五) Java高级特性类加载和类加载器
JavaSe·高级特性篇(五) Java高级新特性类加载和类加载器1. 了解类加载过程当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过如下三个步骤来对该类进行初始化加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口(即引用地址)。所有需要...原创 2019-08-27 16:15:16 · 544 阅读 · 0 评论 -
【JavaSe】高级特性篇(六) Java高级特性动态代理
JavaSe·高级特性篇(六) Java高级特性动态代理1. 动态代理概述动态代理是指客户通过代理类来调用其它对象的方法,并且是在程序运行时根据需要动态创建目标类的代理对象,在不改变目标对象方法的情况下对方法进行增强2. Java动态代理相关APIProxy :专门完成代理的操作类,是所有动态代理类的父类。通过此类为一个或多个接口动态地生成实现类。提供用于创建动态代理类和动态代理对象...原创 2019-08-27 18:17:17 · 551 阅读 · 0 评论 -
【JavaSe】高级特性篇(七) Java8新特性Lambda表达式
JavaSe·高级特性篇(七) Java8新特性Lambda表达式1. 函数式编程思想概述在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。面向对象的思想:做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成...原创 2019-08-27 19:02:25 · 582 阅读 · 0 评论 -
【JavaSe】高级特性篇(八) Java8新特性函数式接口
JavaSe·高级特性篇(八) Java8新特性函数式接口1. 函数式接口1.1 概念函数式接口在Java中是指:有且仅有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。“语法糖”是指使用更加...原创 2019-08-27 19:45:10 · 650 阅读 · 0 评论 -
【JavaSe】高级特性篇(九) Java8新特性方法引用
JavaSe·高级特性篇(九) Java8新特性方法引用1. 方法引用引入1.1 冗余的 Lamdba 场景在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿什么参数做什么操作。那么考虑一种情况:如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再写重复逻辑?来看一个简单的函数式接口以应用Lambda表达式:@Functiona...原创 2019-08-27 22:26:24 · 568 阅读 · 0 评论 -
【JavaSe】高级特性篇(十) Java8新特性Stream流
JavaSe·高级特性篇(十) Java8新特性Stream流1. 引言1.1 传统集合的多步遍历代码几乎所有的集合(如 Collection 接口或 Map 接口等)都支持直接或间接的遍历操作。而当我们需要对集合中的元素进行操作的时候,除了必需的添加、删除、获取外,最典型的就是集合遍历public static void main(String[] args) { List<...原创 2019-08-27 23:02:15 · 952 阅读 · 0 评论 -
【JavaSe】高级特性篇(十一) Java8新特性Optional类
JavaSe·高级特性篇(十一) Java8新特性Optional类1. Optional类引入到目前为止,臭名昭著的空指针异常是导致Java应用程序失败的最常见原因。以前,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码。受到Google Guava的启发,Optional类已经成...原创 2019-08-27 23:17:29 · 679 阅读 · 0 评论 -
【JavaSe】高级特性篇(十二) Java9主要的9大新特性
JavaSe·高级特性篇(十二) Java9新特性前言: JDK9的发布经过4次跳票,历经曲折的Java 9 终于终于在2017年9月21日发布。从Java 9 这个版本开始,Java 的计划发布周期是 6 个月,下一个 Java 的主版本将于 2018 年 3 月发布,命名为 Java 18.3,紧接着再过六个月将发布 Java18.9。这意味着Java的更新从传统的以特性驱动的发...原创 2019-08-28 00:17:16 · 512 阅读 · 0 评论 -
【JavaSe】高级特性篇(十三) Java10新特性局部变量类型推断
JavaSe·高级特性篇(十二) Java10新特性局部变量类型推断前言:JDK10发布2018年3月21日,Oracle官方宣布Java10正式发布。需要注意的是 Java 9 和 Java 10 都不是 LTS (Long-Term-Support) 版本。和过去的 Java 大版本升级不同,这两个只有半年左右的开发和维护期。而未来的 Java 11,也就是 18.9 LTS,才是...原创 2019-08-28 00:29:35 · 484 阅读 · 0 评论 -
【JavaSe】高级特性篇(十四) Java11的五大新特性
JavaSe·高级特性篇(十四) Java11的五大新特性前言: JDK 11发布北京时间 2018年9 月 26 日,Oracle 官方宣布 Java 11 正式发布。这是 Java 大版本周期变化后的第一个长期支持版本,非常值得关注。从官网即可下载,最新发布的 Java11 将带来 ZGC、Http Client 等重要特性。JDK 11 将是一个 企业不可忽视的版本。从时间节点...原创 2019-08-28 00:47:34 · 865 阅读 · 0 评论 -
【JavaSe】高级特性篇(十五) Java12新特性Switch表达式
JavaSe·高级特性篇(十五) Java12新特性Switch表达式前言:JDK12发布2019年3月20日,Java 12 正式发布了新特性:Switch Expressions这是一个为开发者准备的特性,我们可以利用具体代码快速了解一下,下面是传统 statement 形式的 switch 语法:switch (day) { case MONDAY: case FRID...原创 2019-08-28 01:18:33 · 927 阅读 · 0 评论