多线程和虚拟机
一般谈起jvm,首先就需要知道虚拟机的内存模型-java如何存储数据,各种分区,还有回收对象的垃圾回收算法
一般谈起多线程,一般直接就是关键字synchronized,一系列锁,以及线程池。
jvm
对于虚拟机来说,我么都知道java程序运行在虚拟机上,虚拟机又和操作系统打交道,最终通过二进制指令操纵电子电路运行,进而完成数据的读取,存储,运算和输出。
虚拟机在加载class文件的时候,会在内存开辟一块区域叫做“方法区”,专门用来存储类的基本信息,同时在“堆”区特意为这些类生成一个Class对象,作为类的“镜像”,为反射提供基础。运行程序的过程中,需要不断的创建对象以及对象的不断死亡,有的对象的生存时间特别短,比如说方法内部生成的临时对象,相对有一些对象长命百岁,例如有的长生不死除非世界毁灭(虚拟机关闭,典型的如servlet)。对象生要需要住,结束要处理,所以虚拟机就不停得申请内存,回收内存。对象生成得方法有很多,new,反射等,对象回收得方法也有很多,标记清除法,复制法。
垃圾回收
从字