随笔分类 - Java
摘要:2023.10.6 1.poll,peek,element 相同点:都是返回队列首个元素 不同点: poll:将首个元素从队列中弹出,如果队列是空的,就返回null peek:查看首个元素,不会移除首个元素,如果队列是空的就返回null element:查看首个元素,不会移除首个元素,如果队列是空的
阅读全文
摘要:2023.8.31 try...catch...finally,如果有如下代码 public static void main(String[] args) { try { System.out.println(func1()); } catch (Exception e) { System.out
阅读全文
摘要:2023.8.31 1.该关键字是可以保证有序性的,也就是禁止重排 2024.6.12 1.不会阻塞 2.不能保证原子性 3.如有改动对各个线程立即可见 4.因为不是每次改动都生效,所以不能仅依赖它实现计数锁
阅读全文
摘要:2023.8.30 1.该方法是一个同步方法,高并发情况下影响性能 public void println(String x) { synchronized (this) { print(x); newLine(); } }
阅读全文
摘要:2023.8.25 1.StringBuilder线程不安全但更快 2.StringBuffer线程安全,方法用synchronized修饰,但是慢。 2023.11.12 1.StringBuffer是一个final类
阅读全文
摘要:2023.8.23 1.底层是个双向链表 2.内部是折半查询
阅读全文
摘要:2023.8.23 1.底层是hashmap实现,我们存的对象就是hashmap的key 2.value是一个object对象,占16个字节
阅读全文
摘要:2023.8.23 1.hashmap不存在缩容,要考虑重新计算index值的问题
阅读全文
摘要:2023.8.22 1.懒加载初始化数组 2.数组的初始大小为10 3.扩容公式 newLen = oldLen + oldLen >> 1 2023.8.23 1.modCount在add操作或remove操作时会更新。遍历时新增或删除会报错 2.和Vector实现的区别 相同点 初始容量都是10
阅读全文
摘要:以下cchm代表concurrenthashmap 1.相比于1.7剔除了segment分段锁,但本质上都是锁竞争 2.使用synchronized+cas保证节点线程安全 3.结构上,和hashmap一样,像加载因子、初始容量等 4.对比hashtable,hashtable 是对全table加锁
阅读全文
摘要:2023.8.17 以前对方法区的理解有误,它并非是一个物理上的分区,而是一个概念上的分区。 方法区存在于堆中,1.7用永久代,1.8用元空间。 2024.7.14 1.运行时常量池是每一个类或接口的常量池的运行时表示形式。具体体现就是在Java编译后生成的.class文件中,会有class常量池,
阅读全文
摘要:2024.7.10 1.强引用对象的回收 先说结论,会被回收。 简单想一想,我们平时写java代码,如果不回收的话,内存肯定是不够用的。 一般我们见到的描述——“强引用对象不会被回收”,指的是依旧由gcRoot的有效引用到这个对象。 几段典型的代码可以参考下方的链接。 https://www.fre
阅读全文
摘要:1.Cloneable接口的用途 Cloneable接口是一个标记型接口,内部没有方法和属性,实现该接口表示该对象能被克隆,也就是能使用Object.clone()方法。如果一个对象没实现该接口就调用clone()方法会抛出CloneNotSupportedException异常。
阅读全文
摘要:简而言之: 1.isEmpty认为空格(无论几个)都不是空。 2.isBlank认为空格、换行符(\n)、tab都是空。
阅读全文
摘要:1.什么是自动拆装箱 自动装箱就是将java的基本类型,比如说int类型的变量转换成Integer对象,反之从引用类型转换成基本类型就是拆箱。 看一段代码以及它的输出结果: public class Test { public static void main(String[] args) { te
阅读全文
摘要:2025.6.5 PECS原则 https://www.cnblogs.com/lori/p/16145271.html T代表一种类型。 加在类上: class SuperClass{} 加在方法上: public void fromArrayToCollection(T[] a, Collect
阅读全文
摘要:访问权限 类 包 子类 其他包 public √ √ √ √ protected √ √ √ × default √ √ × × private √ × × ×
阅读全文
摘要:1.数据类型 在java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,引用类型保存的是引用值,也就是地址值。 2.堆和栈 栈是运行时单元,堆是存储单元。 栈解决程序的运行问题,也就是程序如何执行,或者说如何处理数据;堆解决的是数据存储问题,即数据怎么放,放在哪。 每个
阅读全文
摘要:1.概述 NIO有三大核心部分:Channel(通道)、Buffer(缓冲区)、Sellector。传统的IO面向流操作,而NIO面向缓冲区操作。数据总是从缓冲区写到通道或者从通道读入缓冲区。Selector用于监听各个通道的事件。Selector监听注册到它的连接,基于回调函数获取通知。
阅读全文
摘要:1.实现 抽象类的子类用extends来继承;接口使用implements来实现。 2.构造函数 抽象类可以有构造函数;接口不能有,它只能由实现类实现。 3.main方法 抽象类可以有main方法,并且能够运行;接口不能有main方法。 4.实现数量 类可以实现很多接口;但只能集成一个抽象类 5.访
阅读全文

浙公网安备 33010602011771号