随笔分类 - Java基础篇
摘要:Java多线程中的几个关键词 Synchronized与ReentrantLock SynchronizedReentrantLock 层次 JVM层面的锁,是Java关键词 JDK提供的,属于API层面的锁 使用 1.修饰实例方法:锁的是类的实例对象 public synchronized voi
阅读全文
摘要:Java多线程 线程基础 进程与线程 进程:操作系统分配资源的最小单位 线程:CPU执行的最小单位 线程分类 1. 用户线程 用户自己创建的业务线程; 2. 守护线程 为用户线程提供服务的线程,如GC; 通过thread.setDaemon(true);设为守护线程,且必须放在start方法前; 4
阅读全文
摘要:Jvm垃圾回收 相关概念 GC如何判断对象可回收? 1. 引用计数法(已淘汰) 引用新增+1,释放-1,计数为0释放。 2. 可达性分析算法(根引用) 从GcRoot开始向下搜索,经过的路径为引用链,当对象与GcRoot之间没有引用链则被回收。 GcRoot包括:静态变量(方法区),常量(方法区),
阅读全文
摘要:Jvm内存模型 总览 名称 说明 方法区 存储:类的元信息、静态变量、常量 jdk1.8之后,用元空间替换了方法区,且元空间的内存不在jvm中,而是用的本地内存。 堆 存储:对象实例 虚拟机栈 存储:局部变量 每个线程创建单独的运行时栈 本地方法栈 与虚拟机栈类似,区别:处理native方法 程序计
阅读全文
摘要:Class初始化过程 加载 jvm将.class文件以二进制的形式读取到内存(.class文件本身是2进制的,但其文件内容是16进制的字节码),存放在方法区(类的元信息),并在堆区创建Class对象(类的实例,用于封装方法区的数据结构)。 双亲委派模型 约定类加载器的加载机制:根加载器 > 扩展加载
阅读全文
摘要:Jvm基础知识点 jvm、jre、jdk的关系? jvm: java虚拟机,能够识别.class文件,解析指令并调用操作系统上的函数完成操作; jre: java运行时环境(java runtime environment),在jvm基础上提供了一堆类库; jdk: java开发包(java dev
阅读全文
摘要:一、Map HashMap 在jdk1.7与1.8中的区别? jdk1.7: 数组+链表 jdk1.8: 数组+链表/红黑树 线程不安全的原因? jdk1.7: 环形链表(扩容时的transfer方法:头插法 -> 死循环); 数据丢失; jdk1.8: 数据覆盖; 数组每次扩容2倍(保持数组容量为
阅读全文
摘要:在 Java 中除了以 Map 结尾的类之外,其他类都实现了 Collection 接⼝。并且以Map结尾的类都实现了Map接⼝ List,Set,Map 三者的区别? List (对付顺序的好帮⼿): 存储的元素是有序的、可重复的。 Set (注重独⼀⽆⼆的性质): 存储的元素是⽆序的、不可重复的
阅读全文

浙公网安备 33010602011771号