- 博客(4)
- 收藏
- 关注
原创 多线程学习面试题(一)
问题来源:JavaGuide.什么是进程 ?什么是线程 ?进程是系统运行一个程序的基本单位,可以简答理解为一个进程就是一个程序。比如运行main方法,就会启动一个jvm的进程,而main函数所在的主线程就是其中的线程。线程与进程类似,是比进程更小的执行单位,一个进程可以有很多线程,不同的是同类的多个线程共享进程的堆和方法区,每个线程拥有独享的程序计数器、虚拟机栈和本地方法栈。个人理解:一个程序就是一个进程,而这个程序可以同时干不同的事就是线程去干的。比如使用网易云音乐,可以一边播放歌曲一边搜索歌单。
2020-05-27 21:30:55 113
原创 JVM基础学习(三)-------JVM类加载过程
JVM类加载过程加载-->连接-->初始化-->使用-->卸载1.加载1.通过全类名获取此类的二进制字节流2.将字节流代表的静态存储结构转换为方法区的运行时数据结构3.在内存中生成一个代表该类的CLASS文件作为方法去这些数据的访问入口2.连接2.1验证1.文件格式验证:验证字节流是否符合class文件格式规范2.元数据验证:对字节码描述的信息进行分析,以保证其描述的信息符合java语言规范3.字节码验证:通过数据流和控制流分析,确定程序语义是合法的,符合逻辑的
2020-05-10 09:51:12 154
原创 JVM基础学习(二)-------JVM垃圾回收
JVM垃圾回收1. JVM内存的分配与回收 java的自动内存管理主要是针对对象的内存分配与回收。java堆是GC的主要场所,所以java堆也被称为GC堆。从垃圾回收的角度来讲,现在的垃圾收集器基本是采用分代收集,所以堆还能分为新生代(Eden 空间、From Survivor、To Survivor 空间)和老年代(tentired )。1.1 对象优先在Eden分配 大...
2020-04-20 20:41:02 117
原创 JVM基础学习(一)-------运行时数据区
初学JVM,对自己的学习进行记录。参考了:https://github.com/Snailclimb/JavaGuide《深入理解Java虚拟机(第二版)》第二章运行时数据区jdk1.8以前:方法区,堆,本地方法栈,虚拟机栈,程序计数器jdk1.8以后:堆,本地方法栈,虚拟机栈,程序计数器,元空间程序计数器程序计数器是一块较小的内存空间,当前线程所执行字节码的行数指示器。(唯一一个...
2020-04-18 16:49:53 111
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人