![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 63
pospre
这个作者很懒,什么都没留下…
展开
-
为什么函数式接口 Comparator 中有 “两个抽象方法”?
为什么函数式接口 Comparator 中有 “两个抽象方法”?原创 2022-07-21 10:10:56 · 795 阅读 · 1 评论 -
【TreeMap】-根据 key 或 value 排序
1. 根据 key 排序引言TreeMap 中key 可以自动对 String 类型或8大基本类型的包装类型进行排序。但是,TreeMap 无法直接对自定义类型进行排序。当我们想对对 TreeMap 中 key 中的自定义类型排序时,必须要指定**排序规则。主要有两种解决方案**:根据 key 排序,主要有两种方法方法1:实现 Comparator 接口,并传递给 TreeMap 构造器;方法2:使得 key 对应类 implements Comparable接口。两种排序规则如原创 2022-04-17 12:47:04 · 4721 阅读 · 1 评论 -
try-catch-finally
参考 《Java核心技术 卷1》1. try - catch - finally 语法try { // 1 code that might throw exceptions // 2} catch (IOException e) { // 3 show error message // 4} finally { // 关闭资源 // 5 in.dose();}// 6finally 语句不管异常是否被捕获,finally 子句中的代码都会执行;通常,.原创 2022-03-20 11:10:24 · 2439 阅读 · 0 评论 -
抽象类 vs. 接口
区别抽象类接口有构造器,但是不能被实例化没有构造器,也不能被实例化无默认类型;JDK7之前只能有 abstract 方法,即空方法体;JDK8 开始接口中可以使用 default、static方法;JDK9开始接口中可以使用 private方法默认方法类型为 public abstract无默认类型,可以有非 psf 类型字段默认字段类型为 public static final注意:接口可以理解为是对抽象类的进一步抽象,它是一种“规范” -> 方便我原创 2022-02-16 23:56:04 · 456 阅读 · 0 评论 -
Java 中由继承带来的方法冲突
Java 中,以下两种情况会造成方法冲突:如果同时扩展的两个接口含同名方法(包括参数列表);如果继承的父类和扩展的接口中含同名方法(包括参数列表)1、超类优先如果一个类继承一个超类且扩展了一个接口,则优先使用超类的具体方法,而不是接口中默认方法;一个类继承的超类和实现的接口中,如果有同名方法,主要有下面 4 种情况:超类接口使用情况具体方法抽象方法调用的是超类中的具体方法。此时,不用在具体类中重写接口中的抽象方法具体方法默认方法超类优先。使用的仍然原创 2021-07-02 12:10:28 · 524 阅读 · 0 评论 -
Java 遍历数组的常见方法
参考 labmbda 表达式引言记录一下 Java 遍历数组的几种常见方法下面以遍历整数数组为例Integer[] arr = {1, 3, 4, 5, 6}; // 这里不能使用 int[],会报错// !!!注意:使用 Arrays.asList 转换为集合时,不能用其进行修改集合的相关方法(add/remove)List<Integer> list = Arrays.asList(arr);1、利用 for 遍历// 1、利用 for 遍历System.out.prin原创 2021-06-24 11:46:53 · 4459 阅读 · 1 评论 -
Java 中 Map 的常见遍历方法
1、Map 接口常见方法方法签名功能Set keySet()返回 map 中得 key 集合(Set)Collection values()返回 map 中的 value 集合(Collection)Set<Map.Entry<K, V>> entrySet()返回 map 对应的 Map.Entry 集合(set)V put(K key, V value)向 map 中添加键为 key,值为 value的元素(map中有key,则更新原创 2021-06-24 16:36:23 · 251 阅读 · 1 评论 -
Java 对象构造执行顺序
引用自《Java 核心技术 卷1》ch4.6 对象构造构造器的具体处理步骤:如果构造器第一行调用了第二个构造器, 则基于所提供的的参数执行第二个构造器否则,所有数据域被初始化为默认值(0、false 或null)。按照在类声明中出现的次序, 依次执行所有域初始化语句和初始化块。先执行静态初始化块,再执行对象初始化块。静态初始化块只执行一次,对象初始化块在每次创建这个类的对象时均执行执行这个构造器的主体.代码如下:(书上的代码)public class Constru.原创 2021-06-04 11:20:25 · 247 阅读 · 0 评论 -
Java中 == 和 equal() 的区别
@[TOC](Java中 == 和 equal() 的区别)要想搞清 == 和 equal() 的区别,首先要知道 Java 中变量在内存中的分配规则。Java中的变量类型主要分为两种类型:基本类型(8大类) 和 引用类型。二者在内存中的分配规则如下:对于基本类型来说,栈中直接放的就是基本类型变量的值;对于引用类型来说,栈中包含的是指向引用类型值的指针(地址),而引用类型真正的值放在堆中。1、==“==” 比较的是栈中的值是否相等:1、对于基本类型来说 == ,直接比较的是其值是否相等原创 2021-04-12 20:00:00 · 174 阅读 · 0 评论 -
while、do-while 和 for 循环的区别
while、do-while 和 for 的本质区别for 循环执行顺序while 循环执行顺序do-while 循环执行顺序三者区别1、for 循环2、while 循环2.1 “循环迭代<3>”放在 continue 之后2.2 “循环迭代<3>”放在 continue 之前3、do-while 循环3.1 “循环迭代<3>”放在 continue 之后3.2 “循环迭代<3>”放在 continue 之前3.3 do-while 至少执行一次不原创 2021-04-06 21:50:24 · 5152 阅读 · 0 评论