Java的堆、栈和垃圾回收
2017-08-30 18:27
141 查看
平常写Android,慢慢忘了很多的Java的基础知识,之后看到一道面试题,其实就是java能否实现像c一样的swap方法
问最后打印的是什么,结果是
10—-20
10—-20
bean
s4
虽然我知道java方法传参是传引用,但还是上面标注的2有些不明白。当我将swap方法总的代码直接移到2的位置,又可以交换成功,真心有点不太明白,希望看到博客的那些懂的大神,可以为小弟解惑!
之后去看了很多资料,都说java无法正常像c一样实现swap方法。
之后看到两篇不错的文章,就记录下来,我对java研究不是很深,直接给链接吧,有兴趣的去看看,感谢原博主!
Java中堆内存和栈内存详解
Java垃圾收集器
Java内存管理:深入Java内存区域
public static void main(String[] args) { MyClass myClass = new MyClass(); myClass.mainTest(); } public void mainTest(){ S s1 = new S("s1",10); S s2 = new S("s2",20); S s3 = new S("s3",30); S s4 = new S("s4",40); swap(s1.age,s2.age);//1 System.out.println(s1.age+"----"+s2.age); swap(s1,s2);//2 // S temp; // temp = s1; // s1 = s2; // s2 = temp; System.out.println(s1.age+"----"+s2.age); changeName(s3);//3 System.out.println(s3.name); changeName(s4.name);//4 System.out.println(s4.name); } public static void swap(int a,int b){ int temp = a; a = b; b = temp; } public static void swap(S a,S b){ S temp = a; a = b; b = temp; } public static void changeName(String name){ name = "hello world"; } public static void changeName(S s){ s.name = "bean"; s = new S(); s.name = "sam"; } public static class S { private String name; private int age; public S(){} public S(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
问最后打印的是什么,结果是
10—-20
10—-20
bean
s4
虽然我知道java方法传参是传引用,但还是上面标注的2有些不明白。当我将swap方法总的代码直接移到2的位置,又可以交换成功,真心有点不太明白,希望看到博客的那些懂的大神,可以为小弟解惑!
之后去看了很多资料,都说java无法正常像c一样实现swap方法。
之后看到两篇不错的文章,就记录下来,我对java研究不是很深,直接给链接吧,有兴趣的去看看,感谢原博主!
Java中堆内存和栈内存详解
Java垃圾收集器
Java内存管理:深入Java内存区域
相关文章推荐
- 深入Java核心 探秘Java垃圾回收机制
- Java 垃圾回收
- Java基础--Java内存管理与垃圾回收
- Java垃圾回收机制_动力节点Java学院整理
- java垃圾回收机制
- Java体系结构---垃圾回收
- Java的垃圾回收机制
- java垃圾回收机制
- JVM原理(Java代码编译和执行的整个过程+JVM内存管理及垃圾回收机制)
- Java垃圾回收机制与引用类型
- java垃圾回收之循环引用
- java 虚拟机 垃圾回收机制
- 成为JavaGC专家Part I — 深入浅出Java垃圾回收机制
- java垃圾回收机制
- Java之JVM内存管理及垃圾回收
- Java基础之GC垃圾回收的历史
- java 垃圾回收机制
- Java垃圾回收机制——方法区
- 重读《深入理解Java虚拟机》二、Java如何分配和回收内存?Java垃圾收集器如何工作?
- java垃圾回收机制(GC)