美文网首页
对象访问

对象访问

作者: 简书徐小耳 | 来源:发表于2018-11-17 22:23 被阅读1次

    Object obj= new Object();这个简简单单一个方法涉及到java 栈,堆,方法区三个之间的关系

    -.栈
    1.Object obj 会在我们栈里面本地变量表中,作为一个reference类型数据出现。

    -.堆
    1.new Object()会在java堆中,形成一块存储了Object类型的所有实例数据值的结构化内存。

    -.方法区
    1.在java堆中还必须包含能查找到此对象类型数据(如对象类型,父类,实现的接口,方法等)的地址信息,这些信息存储在方法区中。

    java访问对象的方式有两种

    • 一.句柄
      1.java会在堆中划分一个内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据(在堆)和类型数据(class信息,比如全局变量 类的相关信息在方法区)各自的地址信息。
      2.好处就是如果 reference存储的是稳定的句柄地址,不论对象怎么移动(垃圾回收时候会移动),不需要修改reference到句柄的指针。
      3.坏处就是需要2次指针定位
    • 二.直接指针(hotspot使用该种方法)
      1.reference的引用直接指向对象实例数据,对象实例数据内部包含对象类型数据的指针,从而可以去方法区获取对象类型数据
      2.好处就是可以快速访问对象,由于访问对象比较频繁所以这种积少成多也是非常可观

    如何可以建立更多的线程

    1.减小堆的大小
    2.减小栈的容量

    相关文章

      网友评论

          本文标题:对象访问

          本文链接:https://www.haomeiwen.com/subject/bqnifqtx.html