JVM内存

1. 方法区:

       (1) 类加载的时候,会将静态方法和静态变量常驻于方法区,不会被垃圾回收

       (2) 字符串常量池保存在方法区中,比如String a = 'hello',字符串无用时,就被清理出常量池;

       (3) 静态方法会常驻内存,如果程序中存在大量静态方法,则会占用过多内存,从而影响性能

2. 堆:

      (1) 存放实例化对象

      (2) 新生代、老年代

      (3) 线程共享 

      (4) 垃圾回收机制

3. 栈:

      (1) 存放基本数据(int, float, double)类型和对象引用

      (2) 压栈:当执行对象中方法时,会从堆中对象的方法和变量(局部变量)拉到栈中执行;

                     当执行静态方法时,会从方法区拉到栈中执行

    

     (3) 线程私有的,随线程而生,随线程而亡,即方法执行结束,其变量就被回收

     (4) 后进先出(LIFO)

   (5)存取速度快比堆快,堆需要动态分配内存

4. 程序计数器:记录着当前线程所执行的字节码(class)的行号指示器。

5. Java内存区域图

6. 类加载机制

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值