zoukankan      html  css  js  c++  java
  • 深入理解java虚拟机(一)

     

    java历史

    • 1996.01.23发布Jdk1.0
    • 1998.12.04发布jdk1.2(里程碑的版本)注意:集合容器Collection和Map都是从1.2开始
    • 1999.04.27HotSpot虚拟机发布,成为1.3后Sun JDK的默认虚拟机,这本书主要讲这个虚拟机
    • 2004.09.30发布jdk1.5这个版本也很重要,出现了自动装箱,泛型,动态注解,枚举,可变长参数,遍历循环,等语法特性

    java自动内存管理机制

    • 运行时数据区域


       
       
    • 对象访问
      也就是我们java中常说的new一个对象
      Student s=new Student();
      这里的Student s会反映到java栈的本地变量表中,作为一个reference类型数据出现,我的理解也就是对象的引用s会放到栈内存中
      而new Student()这部分会反映到堆中,形成一块存储了Student类型的所有实例数据值(Instance Data,对象中各个实例字段的数据)的结构化内存,我的理解就是实例对象在堆中。包括了成员变量。
      堆中包含能查找到此对象类型数据(如对象类型,父类,实现的接口,方法等)的地址信息
      而这些类型数据则存储在方法区中。(包括静态成员变量在方法区的静态区域里)
      对象访问方式有两种
    • 第一种


       
       
    • 第二种


       
       

      本书说Sun HotSpot是使用第二种进行对象引用

    总结

    java中new一个对象 Student s=new Student();是把Student s存放在栈内存中,new Student()实例存放在堆内存中,Student的方法存放在方法区,s通过直接指针方式访问堆中的实例。所以s存的是堆中实例的地址值

  • 相关阅读:
    动态展示图片
    vue 字符串长度控制显示的字数超出显示省略号
    ivew-admin 校验 自定义验证表单多层嵌套
    ivew 【provide/inject] 页面刷新实现reload
    vue-ivew input 框 回车搜索功能
    php中二维数组如何使用
    页面图片按钮案例
    html页面插入flash代码
    js动态设置输入框字体/颜色
    php如何判断是手机访问还是电脑访问
  • 原文地址:https://www.cnblogs.com/StudyZhh/p/9918181.html
Copyright © 2011-2022 走看看