
面经and八股
文章平均质量分 95
Yonagi833
差不多得了
展开
-
JUC专题——Java并发基础
现代操作系统使用时分的形式调度运行的线程, 操作系统会分出一个个时间片, 线程会分配到若干时间片, 当线程的时间片用完了就会发生线程调度, 并等待下次分配. 时间片多少决定了线程使用处理器资源的多少, 而线程优先级就是决定线程需要多或者少分配一些处理器资源的线程属性。在运行线程之前要构造一个线程对象, 线程对象在构造时候需要提供线程所需要的属性, 如线程所属的线程组, 优先级, 是否为Daemon线程等信息。方法来修改优先级, 默认的优先级为 5. 优先级高的线程分配时间片的数量要多于优先级低的线程.原创 2024-04-18 11:51:03 · 298 阅读 · 0 评论 -
JUC专题——Java并发机制的底层实现原理
Java 语言规范中对 volatile 的定义如下:Java 编程语言允许线程访问共享变量, 为了保证共享变量能被准确和一致地更新, 线程应该确保通过排他锁单独获得这个变量. 如果一个变量被声明为 volatile, 那么 Java 线程内存模型保证所有线程看到这个变量的值是一致的volatile 的两条实现原则Lock前缀指令会引起处理器缓存写回到内存一个处理器缓存回写到内存会导致其他处理器的缓存无效。原创 2024-04-16 13:00:37 · 765 阅读 · 0 评论 -
JVM专题——垃圾回收
本文部分内容节选自Java Guide和《深入理解Java虚拟机》, Java Guide地址: https://javaguide.cn/java/jvm/jvm-garbage-collection.html回顾堆内存的结构. Java 自动内存管理的主要区域是 Java 堆, 因此 Java 堆也被称为 GC 堆在 JDK1.7及以前的版本, 堆内存分为以下三部分:JDK1.8 之后, 永久代被元空间取代具体的关于堆内存基本结构相关信息, 请看JVM专题3大多数情况下, 对象在新生代中Eden区分配,原创 2024-04-06 10:33:27 · 911 阅读 · 0 评论 -
JVM专题——内存结构
本文部分内容节选自Java Guide和《深入理解Java虚拟机》, Java Guide地址: https://javaguide.cn/java/jvm/memory-area.htmlJVM 在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域. 这些区域有各自的用途, 以及创建和销毁的时间, 有的区域随着虚拟机进程的启动而一直存在, 有些区域则是依赖于用户线程的启动和结束而建立和销毁. 根据 Java 虚拟机规范 的规定, JVM 所管理的内存将会包括以下几个运行时区域 线程原创 2024-04-05 13:59:51 · 1528 阅读 · 0 评论 -
JVM专题——类文件加载
JVM 中内置了3个重要的(启动类加载器): 最顶层加载类, 由C++实现, 通常表示为null, 且没有父级, 主要用来加载 JDK 内部的核心类库以及被参数指定的路径下的所有类(扩展类加载器): 主要负责加载目录下的jar包和类以及被系统变量所指定的路径下所有的类(应用程序类): 负责加载当前应用 classpath 下所有的jar包和类除了上面三个类加载器, 用户还可以自定义类加载器除了是 JVM 自身的一部分之外, 其他所有的类加载器都是在 JVM 外部实现的, 并且全部继承自。原创 2024-04-04 15:57:46 · 865 阅读 · 1 评论 -
JVM专题——类文件结构
本文部分内容节选自Java Guide和《深入理解Java虚拟机》, Java Guide地址: https://javaguide.cn/java/jvm/class-file-structure.htmlClass文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中,中间没有添加任何分隔符, 这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据, 没有空隙存在。当遇到需要占用8个字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8个字节进行存储。 结原创 2024-04-01 19:16:03 · 1069 阅读 · 0 评论 -
Java集合知识总结(下)
前面已经提及了JDK1.7及其之前的版本下HashMap的多线程操作可能导致死锁. 实际上, 在 JDK1.8及其之后的版本下, 在多线程环境中,HashMap在扩容时可能会导致数据丢失的问题JDK1.8之后, 在HashMap中, 多个键值对可能会被分配到一个桶中, 并以链表或红黑树的形式存储. 多个线程对HashMap的put操作 会导致数据不安全, 具体来说会导致数据覆盖两个线程1, 2同时进行 put 操作, 并且发生了哈希冲突。原创 2024-03-30 11:36:48 · 988 阅读 · 0 评论 -
Java集合知识总结(上)
Java集合类相关知识,适用于已经学习了Java集合的新人,也适用于准备面试复习基础八股的老人。部分内容节选自Java Guide原创 2024-03-21 11:53:34 · 1279 阅读 · 0 评论 -
Java基础知识总结(下)
Java的基础知识。适用于刚学完Java基础的新人,或者正在准备面试复习基础知识的老人。部分内容节选自Java Guide原创 2024-03-19 13:15:03 · 1323 阅读 · 0 评论 -
Java基础知识总结(中)
Java的基础知识。适用于刚学习完Java基础的新人,或者正在准备面试复习基础知识的老人。部分内容节选自Java Guide原创 2024-03-17 20:10:51 · 841 阅读 · 0 评论 -
Java基础知识总结(上)
JavaEE的基础知识。适用于刚学习完Java基础的新人,或者正在准备面试复习基础知识的老人。部分内容节选自Java Guide。原创 2024-03-17 08:49:03 · 796 阅读 · 1 评论