• Mr.z
    2019-06-12
    那强引用,弱引用,幻想引用怎么理解呢?

    作者回复: 这个作为初学的内容,是有点超纲了。SoftReference,WeakReference和PhantomReference首先是一个类,并不是一个Java的基本数据类型。这三个更多的是和 Java 的垃圾回收相关。如果是你在准备面试,可以研究一下,如果是平时工作使用,建议谨慎使用。这三个类的Javadoc对它们的特性解释的比较清楚了。

    简单来说,soft是能不回收就不回收,适合做cache,weak是能回收就回收,如果没有别的正常引用指向一个对象,只有weak的reference,那就回收。PhantomReference就直接不能使用,只是用来影响finalize方法。

    总结一下,这三种引用,我的建议是,能不用就不用。

    
     3
  • 种个大西瓜
    2019-11-24
    学到了

    作者回复:
    隔着屏幕都能感觉到满满的学习的满足感

    
     1
  • 安东
    2019-11-21
    老师你好,请问二级跳是这样的吗?栈中存基本类型和引用类型对象的地址,如果是基本类型,那么这块地址的值就是这个基本类型的值;如果是引用类型,那么这块地址存储的是堆中这个实例的地址。

    作者回复: 补充完整一下, 避免歧义:

    如果是基本类型,那么这块地址“对应的内存里”的值就是这个基本类型的值;如果是引用类型,那么这块地址“对应的内存里”存储的“值”是堆中这个实例的地址。

     1
     1
  • 仲先生
    2019-09-18
    老师,一个类被引用多次会被重复放在堆里么

    作者回复:
    我理解你的问题是对象被多次引用,而不是类。不会的,一个对象无论被多少引用引着,都只有一个

    
     1
  • Geek_a7fd0f
    2020-02-06
    老师,你好!又有几个问题得请教一下你:
    1.先在内存中给这些成员变量分配空间再生成堆还是直接先有堆,再在堆上给这些成员变量分配空间?
    2.给对象的成员变量分配空间,这些空间的地址在内存中连续吗(假设一个成员变量只占用一个地址)?
    3.堆应该怎么理解?是对2中分配的这些地址的引用的集合(堆本身是一段新的内存空间)还是就是2中被分配的地址本身?
    4.某个本子在公告板上的地址怎么理解?
    4.1如果是3中说的引用的集合的话,这个本子的地址的值对应多个地址?如何存储?
    4.2如果是3中所说的是地址本身的话,这个本子的地址的值存储哪个地址?
    展开

    作者回复: 写了一篇文章回答你所有问题

    https://github.com/deepnighttwo/LetsJava/blob/master/FAQ/02%E7%AB%A0-Java%20%E4%B8%AD%E7%9A%84%E5%86%85%E5%AD%98%E6%98%AF%E6%80%8E%E4%B9%88%E5%88%86%E9%85%8D%E7%9A%84%20.md

     1
    
  • 谭低调
    2019-11-27
    请问老师,Merchandise m1这个引用类型变量是多大呢?或者说为了存储实例的地址,需要给m1多大的内存?

    作者回复:
    终于抽空把你这个问题给回复了..... 问题有点复杂,详见FAQ里的文章
    https://github.com/deepnighttwo/LetsJava/blob/master/FAQ/02%E7%AB%A0-Java%E9%87%8C%E7%9A%84%E5%90%84%E7%A7%8D%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%8D%A0%E7%94%A8%E5%A4%9A%E5%B0%91%E5%86%85%E5%AD%98%E7%A9%BA%E9%97%B4.md

    
    
  • 🗿顾晓峰🈹🈳�...
    2019-08-08
    这些和C++的内容差不多。

    作者回复: 差不多会容易混淆。Java中没有指针。不允许操作内存地址。参数传递也不大一样。Java没有多继承。除此之外OO的内容和cpp差不多了。

    
    
我们在线,来聊聊吧