- 博客(11)
- 收藏
- 关注
原创 六大设计原则
总结:LSP 要求使用者对父类的认知可以完全的套到子类上,本这这一原则我们可以对一个具体的方法从上往下分析,首先是方法签名,父类的方法参数放在子类上一定适用,也就是说,子类的方法参数一定包含父类,当然更加宽松的话也能符合要求,和返回值和抛出的异常类型也是同理,举一个反例:如果子类的异常类型比父类更加宽松的话,那么子类所抛出的异常父类就不一定包含,也就是在父类中不允许抛出,这就违反了 LSP 原则。通过将大接口拆分成小而专的接口,可以避免客户端被迫依赖不需要的方法,从而提高代码的质量和可演进型。
2025-09-15 10:01:05
630
原创 Java 线程池原理解析1
线程池执行代码的过程,不单单是执行 Thread.start() ,他还维护了一个工作区,工作区添加任务是在创建线程时发生的,这个代码一定会执行,而工作区的清除工作是在线程执行过程(也是 Worker.run())中发生,我们的错误就是没有正常的执行 Worker.run() ,然后导致了线程阻塞。
2025-09-15 09:38:49
387
原创 Switch新特性
在新特性中引入了一种新的开关标签 case L ->,表示如果标签匹配,则仅执行标签右侧的代码,箭头后可以是表达式、块或者 throw 语句。
2025-01-12 09:46:56
436
原创 Comparator比较器
用于对对象集合进行总排序:用来比较两个参数的大小:当 o1 小于、等于、大于 o2 时,分别返回负值、零、正值。其实现方式有两种:使用 lambda 表达式定义、自定义 compare 实现比较器
2025-01-12 09:45:13
1846
原创 Lambda表达式
Lambda 表达式:在 java8 语言中引入的一种新的语法元素和操作符。这个操作符为->,该操作符被称为 Lambda 操作符或箭头操作符。他将 Lambda 分为了两个部分。
2025-01-12 09:41:42
355
原创 Functional接口(函数式接口)
函数式接口是指的接口。它可以包含多个默认方法或静态方法,但抽象方法只能有一个。这种接口都有一个注解。我们可以直接使用 Lambda 表达式来创建函数式接口,然后将创建的函数式接口直接作为某些方法的参数。forEach 是 Iterable 的默认接口,从定义中可以看出,他接受一个的参数。然后在内部遍历集合中的每个元素,并调用来处理每个元素。可以看到,forEach 本来是要接受一个 Consumer 类型的对象作为参数,然后我们直接使用 Lambda 表达式生成了一个 Consumer 对象作为参数。
2025-01-12 09:41:00
1181
原创 javaSE8新特性-方法引用
可以说,方法引用就是 Lambda 表达式、函数式接口的一个实例,通过方法的名字来指向一个方法,可以认为是 Lambda 表达式的一个语法糖。
2025-01-12 09:39:58
319
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅