当前位置:网站首页 > Java基础 > 正文

java se基础



设计模式

模板方法

模板方法(Template Method):定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。明确一部分功能,而另一部分功能不明确。需要延伸到子类中实现

 
 
 
 

单例模式

目的:单例,让一个类只产生一个对象;
分类:
① 饿汉式
② 懒汉式

饿汉式

 

懒汉式

 
 

Lombok

简化JavaBean开发

  • 下载插件
  • 导入Jar包
    Jar包链接
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Lombok通过增加一些“处理程序”,可以让java变得简洁
Lombok能以注解形式简化JavaBean代码,提高开发效率。开发中经常需要写Javabean,都需要去增加对应的getter/setter,构造器、equals等方法,需要维护。
Lombok能通过注解的方式,在编译时自动为属性生成构造器,getter、setter、equals、hashCode、toString方法。

 

不提供有参构造

JDK新特性

Lambda 表达式

格式:

():重写方法的参数位置
->:将参数传入方法体中
{}:重写方法的方法体

 

使用

① 必须是函数式接口作方法参数传递
② 有且只有一个抽象方法的接口,用去检测在这里插入图片描述

 

① 观察是否是函数式接口作方法参数传递
② 调用方法,以匿名内部类的形式传递实参
③ 改造

 
 

省略规则
① 重写方法的参数类型可省略
② 重写方法的参数只有一个可省略
③ 方法体中,代码只有一行可省略
④ 方法体中,代码只有一行且,可省略

 

函数式接口

Supplier

Supplier接口
java.util.function.Supplier< T >接口,它意味着“供给”
方法:
T get() 我们需要什么,get方法就可以返回什么
需求:
使用Supplier接口作为方法的参数
用Lambda表达式求出int数组中的最大值
泛型:
<引用数据类型> 规定了需要操作的数据类型

 

Consumer

java.util.function.consumer< T > 消费型接口
方法:
void accept(T t),意味着消费一个指定的泛型数据

 

java se基础

Function

java.util.function.Function< T,R >:接口用来根据一个类型得到另一个类型的数据
方法:
R apply(T t):根据类型T参数获取类型R的结果

 

Predicate

 

Stream流

Stream流中的“流”不是特指“IO流”,它是一种“流式编程”(编程方式),可以看做是“流水线”

 

Stream的获取

① 针对集合,Collection中的方法:

② 针对数组,Stream接口的静态方法:

 

Stream的方法

forEach

 

在这里插入图片描述

第二个forEach就会报错

Count()


统计元素个数
count也是个终结方法

 

filter()

 

limit()

:获取Stream流对象中的前n个元素,返回一个新的Stream流对象

 

skip

:跳过Stream流对象中的前n个元素,返回一个新的Stream流对象

 

concat()

:将两个Stream流合并成一个

 

collect()

从Stream流对象转成集合对象

 

dinstinct()

 
 
 

map

``Stream< R > map(Function<T , R> mapper):转换流中的数据类型

 

方法引用

引用方法
使用:
① 被引用的方法要写在重写方法中
② 被引用的方法从参数上,返回值上要和所在重写方法一致,而且引用的方法最好是操作重写方法的参数值的
③ 去除重写方法的,去除 ,去除引用方法的参数,将被引用的方法改成

 

对象名-引用成员方法

使用对象名引用成员方法
格式:
对象成员方法名

函数式接口:supplier
java.util.function.Supplier< T >接口
抽象方法:
T get(),用来获取一个泛型参数指定类型的对象数据
Supplier接口使用什么泛型,就可以使用get获取一个什么类型的数据

 

类名-引用静态方法

 

类-构造引用

类 - 构造方法引用
格式:
构造方法名new

函数式接口:Function
java.util.function.Function< T,R>接口
抽象方法
R apply(T t),根据类型T的参数获取类型R的结果。用于数据类型转换

 

数组-数组引用

格式:
数组的数据类型[]::new
int [] :: new 创建一个int型的数组
double[] ::new 创建一个double型的数组

 

JDK8之后的新特性

接口的私有方法

Java8版本接口直接了两类成员:

  • 公共的默认方法
  • 公共的静态方法

Java9版本接口又新增了一类成员:

  • 私有方法:因为有了默认方法和静态方法这样具有具体实现的方法,那么就可能出现多个方法由共同的代码可以抽取,而这些共同的代码抽取出来的方法又只希望在接口内部使用,所以就增加了私有方法。
 
 
 

砖石操作符与匿名内部类结合

自Java9 之后我们将能够与匿名实现类共同使用砖石操作符,即匿名实现类也支持类型自动推断

 

Java 8 的语言等级编译会报错,Java 9 以上版本才能编译和运行

try…catch升级

try(IO流对象1声明和初始化;IO流对象2声明和初始化){
可能出现异常的代码
}catch(异常类型 对象名){
异常处理方案
}

JDK1.9对trywitch-resources的语法升级了

  • 该资源必须实现java.io.closeable接口
  • 在try子句中声明并初始化资源对象,也可以直接使用已初始化的资源对象
  • 该资源对象必须是final的

IO流对象1 声明和初始化
IO流对象2 声明和初始化
try(IO流对象1,IO流对象2){
可能出现异常的代码
} catch(异常类型 对象名){
异常处理方案
}

局部变量类型自动推断

 

switch

 

文本块

 

instanceof 模式匹配

 
 
 
 

Record类

 
 

密封类

  • 密封类用修饰符来修饰
  • 使用关键字来指定可以继承或实现该类的类型有哪些
  • 一个类继承密封类或实现密封接口,该类必须是修饰的
  • sealed修饰的类或接口必须有子类或实现类

版权声明


相关文章:

  • java基础培训班2025-04-02 16:18:05
  • 毕向东java基础课堂笔记2025-04-02 16:18:05
  • java 基础概念2025-04-02 16:18:05
  • 优秀java基础2025-04-02 16:18:05
  • java 基础有哪些2025-04-02 16:18:05
  • 零基础学java赚钱吗2025-04-02 16:18:05
  • java 基础入门复习2025-04-02 16:18:05
  • java基础用户登陆2025-04-02 16:18:05
  • java数据学基础2025-04-02 16:18:05
  • sax java基础2025-04-02 16:18:05