Java的堆、栈和垃圾回收
来源:互联网 发布:java bigdecimal取整 编辑:程序博客网 时间:2024/06/05 21:56
平常写Android,慢慢忘了很多的Java的基础知识,之后看到一道面试题,其实就是java能否实现像c一样的swap方法
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内存区域
阅读全文
0 0
- Java的堆、栈和垃圾回收
- java 堆/Heap和垃圾回收
- java垃圾回收和堆内存布局
- Java堆的管理--垃圾回收
- Java堆的管理--垃圾回收
- Java堆的管理--垃圾回收
- 深入浅出Java堆的管理--垃圾回收
- 深入浅出Java堆的管理--垃圾回收
- Java堆的管理--垃圾回收
- Java堆的管理—垃圾回收
- Java堆的管理--垃圾回收
- 【转载】Java堆的管理--垃圾回收
- 深入浅出Java堆的管理--垃圾回收
- Java堆的管理—垃圾回收
- Java堆的管理--垃圾回收
- 深入浅出Java堆的管理--垃圾回收
- Java堆的管理--垃圾回收
- Java堆的管理--垃圾回收
- 栈
- cdq分治(bzoj 1176: [Balkan2007]Mokia && bzoj 2683: 简单题)
- C语言栈的使用
- guzzle/guzzle 日常使用
- 禁止Ctrl+鼠标滚轴浏览器页面缩放
- Java的堆、栈和垃圾回收
- Android自定义View构造函数、自定义属性详解
- 关于retrofit 传值传null的处理(同样适用于okhttp)
- win7自定义共享文件夹名称
- 机器学习相关定义(更新完监督学习)
- MVVM之DataBinding入门
- 13:反向输出一个三位数
- 类的默认构造函数,直接初始化,拷贝构造函数,赋值运算符的执行次数判断
- 分别用Java、Scala、spark-shell开发wordcount程序及测试代码