[作业]数据类型的值和对象值的区别

来源:互联网 发布:张艺兴直播的软件 编辑:程序博客网 时间:2024/04/28 22:29
栈区 键 值 a 135121 b 135122 c 1500 堆区 键 地址 c 1500 name “zhangsan” age 20 常量池 值 地址 10 135121 “hello” 135122 / /

系统内存中可理解分为:栈区,堆区和常量池,栈区的基本数据类型的值,在被引用时会产生一个副本,此副本的值被改变时不会改变原来的值,但如果是对象,它在栈区的值是指向堆区对应数据的地址,当此对象被引用时,其被引用的是地址,不是值,一旦改变对象里的内容,实质改变的就是堆区里的内容,与基本数据类型有明显区别。如上图:a和b被引用时产生的会是副本,但c是对象,其保存的是指向堆区的c的地址,改变的值会是其对象c的值。

总结一下:如果方法中传入的是基本数据类型,那么原变量的值是不会发生改
变的,如果方法中传入的是引用数据类型(即类类型),那么传入方法中,如
果对对象的相关属性进行了修改,那么原对象的相关属性也会发生改变。

阅读全文
0 0
原创粉丝点击