在主线程新建对象,然后作为参数传入类方法,然后方法修改传入的值。
内存检测方法jmap -histo PID
实验结果:
内存检测方法jmap -histo PID
实验结果:
创建对象 Integer t = 1;
传入方法前Integer个数:259,传入方法后Integer个数:259,
传入前后不改变
结论:做了内存引用拷贝和值拷贝,实体分配到栈空间了。
创建对象 Integer t = new Integer(1);
传入方法前Integer个数:259,传入方法后Integer个数: 260
传入前后不改变
结论:做了内存引用拷贝和值拷贝,实体分配到堆空间了。
创建对象 MyClass t = new MyClass();
传入方法前MyClass个数:1,传入方法后Integer个数: 1
传入前后改变了
结论:只做了内存引用拷贝,不重新分配实体。