为什么老年代的垃圾回收会把新生代的垃圾回收慢得多?
为什么老年代的垃圾回收会把新生代的垃圾回收慢得多?
|
0 评论
一、为什么新生代的垃圾回收快?因为新生代的存活对象比较少,通常占10%左右,从GC Roots出发追踪的存活对象比较少,速度比较快,清理时,只需要把存活的对象移动到Survivor区,原来的Eden区和另外一个Survivor区的所有垃圾对象全部快速删除即可。二、为什么老年代的垃圾回收慢?因为老年代
JVM垃圾回收后存活对象何去何从?
JVM垃圾回收后存活对象何去何从?
|
0 评论
一、堆空间内存结构堆的内存空间分为新生代和老年代,默认占比是新生代占1/3,老年代占2/3,可以通过-XX:NewRatio来调整比例。而新生代又划分了3个区域,分别是Eden区、from survivor区和to survivor区,默认占比是Eden区占8/10,from survivor区占1
强引用、软引用、弱引用、虚引用
强引用、软引用、弱引用、虚引用
|
0 评论
Java对象引用支持4种级别,从高到低分别是:强引用、软引用、弱引用和虚引用,用于控制灵活的控制对象的生命周期。一、强引用强引用就是我们平时创建的对象实例,JVM执行垃圾回收时,只要对象实例的引用还在,在内存不足时宁愿抛出OOM也不会对它进行回收。private static void testSt
Java类的生命周期
Java类的生命周期
|
0 评论
类在JVM的生命周期分别经历:加载、验证、准备、解析、初始化、使用和卸载7个阶段,其中验证、准备和解析也叫连接阶段。1、加载由类加载器进行加载class文件,加载的途径可以是本地文件、网络数据流、数据库等能获取到class文件的地方。java采用双亲委派机制进行类加载,也就是对某个类进行加载的时候,
我们写的java代码是如何运行起来的?
我们写的java代码是如何运行起来的?
|
0 评论
1、我们在IDE(IntellJ IDEA、Eclipse)上编写java代码,实际保存的是.java后缀的文件。2、java代码通过编译器进行编译打包成jar或者war文件。3、其中war文件可以放在容器进行运行,比如Tomcat;jar文件通常可以通过java -jar直接运行。4、例如我们通过
登录页面验证码
登录页面验证码
|
0 评论
一、概述如上图,在登录页面上,除了输入用户名和密码之外,有时候需要输入验证码,那么验证的功能可以怎么实现呢?二、实现过程1、工具类public class CaptchaUtil { /** 验证码源 */ public static final String CAPTHCHA_CODE