深入理解java虚拟机-1工具和虚拟机分类

1.说在前面的话简单介绍。

--------------------------------1---------------------------

--------------------------------2---------------------------

jdk  jre  jvm

字节码.class运行在jvm中。

java程序设计语言  java的API类库  java虚拟机

-----------------------3------------------------------------

 模拟溢出:

    在方法里面,对象放在堆中。

    

    

   

 

  

 如何设置溢出范围和堆快照:

-XX:+HeapDumpOnOutOfMemoryError -Xms20m程序初始化的时候 -Xmx20m程序运行的时候

什么是Xms和Xmx:https://blog.csdn.net/qq_20864311/article/details/81319310

查找快照:

   

IDEA安装Jprofiler:https://blog.csdn.net/wytocsdn/article/details/79258247

-----------------------4-------------------------------------

如何查找mac的JDK:https://www.jianshu.com/p/075993dfd8db

数据jconsole指令即可查看的。

列出了本地的所有的java 进程。

用这个命令列出所有的java进程

jps

 双击这个

看到这个画面

写代码监控我们的程序。

写一个例子JconsoleTest

对:新生代  老年代

新生代:

有对象new的话就放在Eden中,GC垃圾回收垃圾就被清除,存活就放在存活区域里面。多次存活就放在持久代中。

package jconsole;

import java.util.ArrayList;
import java.util.List;

public class JconsoleTest {
    //声名一个128字节的数组成员变量是放在堆里面的
    public byte[] b1 = new byte[128*1024];
    public static void main(String[] args) {
        try {
            Thread.sleep(10000);
        } catch (Exception e) {
            e.printStackTrace();
        }
        fill(1000);
        System.out.println("开始fill");
    }
    public static void fill(int num){
        List<JconsoleTest> list = new ArrayList<JconsoleTest>();
        for(int i=0;i<num;i++){
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            list.add(new JconsoleTest());
        }
    }
}

观察jconsole的变化 堆区域  Eden区域  survivor区域

修改byte为

为什么这么写?https://www.cnblogs.com/libin6505/p/11226940.html

堆不是增加了而是增加减少 增加减少堆里的被回收了

--------5------------图形化工具-------------------

--------6----------杂谈----

-------7-----8-------java发展史----

-----9----java技术体系------

lambda表达式和函数式编程。

-------10-------java8新特性-----

解决匿名内部类的问题

简化匿名内部类:

------11-------lambda表达式---

-----12--虚拟机的种类----classic VM---------

------13------------Exact VM-------------

热点代码探测技术。后面会讲。

-------14------HotSpot VM-------------

嵌入式虚拟机

------------15--------KVM---------

-------16------JRockit----------

IBM:

--------17----J9-----------

不能执行.class文件

------18--------------Dalvik------

-----19----------Microsoft VM-----------

--------20----------自己就是一个小的操作系统--------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值