JAVA面试
kingfoulin
我是一名JAVA web开发,深度学习爱好者
展开
-
面试之敌系列 3 多线程详解【超详细整理】
进程和线程 官方定义:线程是CPU调度和分配的基本单位,一定要和进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位区别清楚。注意,一个是cpu的,一个是系统的资源(这里的资源表示除了CPU 之外的一切东西,也叫上下文) CPU进程无法同时刻共享,但是出现一定要共享CPU的需求呢?此时线程的概念就出现了。线程被包含在进程当中,进程的不同线程间共享CPU和程序上下文。(共享进程分配到的资源)。 单CPU进行进程调度的时候,需要读取上下文+执行程序+保存上下文,即进程切换。如果这个CPU是单核原创 2020-12-30 17:14:11 · 263 阅读 · 0 评论 -
面试之敌系列 2 JVM管理详解【超详细整合】
JAVA 内存管理和性能优化篇 一,运行时数据区域 JAVA 的内存管理中,将内存分为了运行时数据区域和直接内存区域。运行时数据区域是JAVA需要进行分配和垃圾回收管理的最主要区域。而直接内存是java1.4中才提出的一个NIO的缓冲区域,它会直接调用Native函数库直接进行堆外内存分配,然后通过一个存储在JAVA堆中的对象进行该内存区域的管理。这样,直接内存其实也是会间接的受到gc的影响的,但是细节不清楚,这样做的好处是避免了垃圾回收的时候频繁的复制和移动数据,提高了性能。同样的,直接内存也会出现OO原创 2020-12-30 17:11:15 · 313 阅读 · 0 评论