java基础
文章平均质量分 78
默海情深以往
随便记录一些知识点
展开
-
jvm 基础知识点速记
1 什么是java虚拟机?为什么java被称为 与平台无关的语言 java虚拟机是一个可以执行java字节码文件的虚拟机进程,java源文件被称为java虚拟机的执行的字节码文件。java被设计成允许应用程序执行的字节码文件,这不需要程序员为每个平台做单独的重写或者重新编译。 2 java 内存模型: java堆:Java虚拟机内存管理的最大的一块 ,java堆是所有线程共享的一块内存区域 ,在虚拟机启动时创建,此内存区域唯一的目的就是存放对象实例,几乎所有对象的实例都在这里分配内存。 方法区:方法区和j原创 2020-12-28 14:57:40 · 126 阅读 · 0 评论 -
多线程面试题
先写问题 后写答案: 线程池创建方式: 线程池都有哪些状态? 线程池中 submit()和 execute()方法有什么区别? 多线程锁的升级原理是什么? 什么是死锁? 怎么防止死锁? ThreadLocal 是什么?有哪些使用场景? synchronized 底层实现原理? synchronized 和 volatile 的区别是什么? synchronized 和 Lock 有什么区别? 答案 1 线程池创建方式: ①. newFixedThreadPool(int nThreads) 创建一个固定长度原创 2020-07-14 09:51:45 · 175 阅读 · 0 评论 -
java类加载机制 双亲
双亲委派机制简述 一个新类的加载 会先有 Appliction ClasLoader(应用程序类加载器) 询问父类 Extension ClassLoader (扩展类加载器)再询问 BootStrp ClassLoader( 启动类类加载器)然后由 BootStrp ClassLoader( 启动类类加载器) 反馈能否加载,如果能就加载,如果不能就由Extension ClassLoader (扩展类加载器)反馈能否加载 ,如果能就加载,如果不能就由 Appliction ClasLoader(应用..原创 2020-06-29 13:58:11 · 169 阅读 · 0 评论 -
synchronized和volatile学习笔记
synchronized关键字是java最重要的关键字 面试多线程必问点之一,那么今天学习了一些内容就简单记录一下 java1.6 synchronized优化 java1.6对synchronized做了优化 仅我所知的一点是在 轻量级转重量级锁时做的优化 优化前 有线程自旋十次或者竞争线程超过cpu核数的二分之一时转成重量级锁 优化后采用自适应方式进入重量级锁 其他优化暂时未学到后续补充 锁升级过程 此外synchronized 关键字的代表的锁升级过程如下 无锁->偏向锁->轻原创 2020-06-28 17:15:54 · 135 阅读 · 0 评论 -
java父子类各个组件加载顺序
父类静态成员 父类静态代码块 子类静态成员 子类静态代码块 父类普通成员 父类普通块 父类构造方法 子类普通成员 子类普通代码块 10.子类构造方法原创 2020-06-29 15:02:55 · 200 阅读 · 0 评论 -
java基础 HashMap1.7与1.8
老生常谈java常面 HashMap: 首先都知道HashMap是线程不安全的那么聊一聊HashMap: 默认初始化大小 16 负载因子 0.75 即当存放数据数量达到当前预计数量的 0.75时 会发生扩容 扩容倍数 2 即发生扩容会是之前预计数量的两倍 ok 基础说完了那就聊聊为什么会不安全 首先说jdk1.7的不安全 重点代码如下 void transfer(Entry[] newTable, boolean rehash) { int newCapac原创 2020-06-30 14:53:24 · 170 阅读 · 0 评论 -
jdk并发包
同步控制工具类 ReentrantLock 简而言之, 就是自由度更高的synchronized, 主要具备以下优点. 可重入: 单线程可以重复进入,但要重复退出 可中断: lock.lockInterruptibly() 可限时:超时不能获得锁,就返回false,不会永久等待构成死锁 公平锁: 先来先得, publicReentrantLock(boolean fair), 默认锁不公平的, 根据线程优先级竞争. Condition 类似于 Object.wait()和Object.notify(.原创 2020-07-02 20:16:27 · 225 阅读 · 0 评论