Java
从常用Java基础知识到其原理以及最佳实践讲解
MALE_2
做时间的主人
展开
-
线程私有-ThreadLocal
线程安全的方式不可变互斥线程私有ThreadLocalTheadLocal是通过线程私有变量来实现变量线程安全的一个类主要用途在进行对象跨层传递的时候,使用ThreadLocal可以避免多次传递,打破层次间的约束,典型的就是通过切面拦截将用户的登陆信息存储在ThreadLocal中,在后续的调用层里可以直接通过ThreadLocal获取用户信息线程间数据隔离,这个看具体业务场景,需要进行哪些数据隔离,比较典型的有连接池,各个线程有自己的变量实现原理三个关键类Thread.cl原创 2021-10-12 00:41:57 · 1737 阅读 · 0 评论 -
深入理解Java虚拟机
文章目录Java 运行时数据区域程序计数器Java 虚拟机栈本地方法栈堆方法区运行时常量池直接内存Java对象的创建对象的内存布局对象的访问定位垃圾收集判断一个对象是否可被回收引用类型垃圾收集算法垃圾收集器内存分配与回收策略Minor GC和Full GC内存分配策略Full GC 的触发条件类加载机制类初始化时机类与类加载器类加载器分类双亲委派模型Java内存模型与线程内存间的交互操作volatileJava 内存模型特性happen before 先行发生原则Java 与 线程线程的实现Java 线程的翻译 2021-10-10 16:57:33 · 179 阅读 · 0 评论 -
集合系列(三) LinkedList
文章目录类属性构造方法常用方法我们先来列举一下常用方法接下来我们看一下内部关键方法LinkedLIst 是一个底层为双端链表的数据结构,可以当队列,栈,列表使用,特点是类public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable{}我们从这个类的继承原创 2021-08-01 19:02:03 · 126 阅读 · 0 评论 -
集合系列(二) Vector与Stack
Vectorvector是一个同步线程安全的集合,底层是数组,实现同步的方式是对底层数组的操作方法添加synchronize关键字,因此性能会较差,整体实现跟ArrayList差不多// 诸如此类public synchronized boolean add(E e) {}Stack顾名思义,是个栈,后进先出,继承自Vector,所以线程安全,效率较低,可以用线程不安全的LinkedList替代public class Stack<E> extends Vector<E原创 2021-07-28 23:14:51 · 402 阅读 · 0 评论 -
集合系列(一) ArrayList
文章目录类属性构造方法常用方法类public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable支持随机访问支持克隆支持序列化属性// 默认容量 用于初始化时默认的容量大小private static final int DEFAULT_CAPACITY = 10;/原创 2021-07-17 18:23:04 · 114 阅读 · 0 评论