总结
了解了 JVM 垃圾回收原理和秒杀系统。通过案例分享,进一步了解到秒杀系统的痛点,从而得知,应该如何设计一个系统。其实,从这个例子可以应用到不同的场景当中。现在,一个 WEB 应用,离不开 DB,cache,front-end, back-end, CDN....应该怎样利用所以的资源,建立一个高可用的系统,是需要思考和实践的。
JVM
Java 虚拟机 Java 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制。JVM 实现了 Java 语言最重要的特征:即平台无关性。原理:编译后的 Java 程序指令并不直接在硬件系统的 CPU 上执行,而是由 JVM 执行。JVM 屏蔽了与具体平台相关的信息,使 Java 语言编译程序只需要生成在 JVM 上运行的目标字节码(.class),就可以在多种平台上不加修改地运行。Java 虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。因此实现 java 平台无关性。它是 Java 程序能在多平台间进行无缝移植的可靠保证,同时也是 Java 程序的安全检验引擎(还进行安全检查)。
Java 中那些不可达的对象
就会变成垃圾
。那么什么叫做不可达?其实就是没有办法再引用
到该对象了。主要有以下情况使对象变为垃圾:
1.对非线程的对象
来说,所有的活动线程都不能访问该对象,那么该对象就会变为垃圾。
2.对线程对象来说,满足上面的条件,且线程未启动或者已停止。
(1)强引用:默认情况下,对象采用的均为强引用
(GC 不会回收)
(2)软引用:软引用是 Java 中提供的一种比较适合于缓存场景的应用
(只有在内存不够用的情况下才会被 GC)
(3)弱引用:在 GC 时一定会被 GC 回收
(4)虚引用:在 GC 时一定会被 GC 回收
评论 (1 条评论)