jvm笔记2

一、常量池动态变化展示

java 复制代码
public static void main(String[] args) {

        System.out.println("0");
        System.out.println("1");
        System.out.println("2");
        System.out.println("3");
        System.out.println("4");
        System.out.println("5");
        System.out.println("6");
        System.out.println("7");
        System.out.println("8");
        System.out.println("9");

        System.out.println("0");
        System.out.println("1");
        System.out.println("2");
        System.out.println("3");
        System.out.println("4");
        System.out.println("5");
        System.out.println("6");
        System.out.println("7");
        System.out.println("8");
        System.out.println("9");
        
    }

对上面的代码进行debug,同时把idea右下角的Memery功能打开,刚开始每执行一步,String 对象就会加1,说明刚开始每执行一步都会创建一个String对象。当开始执行第二遍的时候,String对象的个数不再增加,说明第二遍执行的时候不再创建创建String对象,而是直接把第一遍执行时放入串池的对象拿过来。

二、通过反编译来理解常量池

三、虚拟机站的详解

相关推荐
程序员-珍2 分钟前
报错下载android sdk失败
android·java
糖果店的幽灵7 分钟前
langgraph分支之 - 动态分支(Dynamic Branch)
java·前端·javascript·人工智能·langgraph
唐青枫1 小时前
Java Spring Security 实战详解:从登录认证到 JWT 权限控制
java
曹牧1 小时前
文档格式:OFD
java
豆角焖肉1 小时前
Maven进阶与搭建私服
java·maven
大不点wow2 小时前
Java序列化与反序列化:让对象走出JVM
java·开发语言·jvm
噢,我明白了2 小时前
Java中日期和字符串的处理
java·开发语言·日期
程序员天天困2 小时前
Arthas trace 命令怎么用?一行定位最慢那行代码
jvm·后端
dkbnull2 小时前
Spring Boot请求处理组件对比详解
java·spring boot
jun_bai2 小时前
Orthanc服务器使用java上传dicom影像文件
java·运维·服务器