Discuss / Java / JAVA内存 基本类型和引用类型的处理 以及 对类处理的影响

JAVA内存 基本类型和引用类型的处理 以及 对类处理的影响

Topic source

simple

#1 Created at ... [Delete] [Delete and Lock User]
结论没问题:

1、整数、浮点数、字符是基本类型。
2、字符串、数组是引用类型(内存数据的索引)


3、基本类型参数的传递,是调用方值的复制。双方各自的后续修改,互不影响。
4、引用类型参数的传递,调用方的变量和接收方的参数变量,指向的是同一个对象。双方任意一方对这个对象的修改,都会影响对方。


那么3个例子中,
1、整数的参数传递理解了,复制出来的,分家了,自己管理自己的,类读出数据不变。
2、字符串数组的参数传递也理解了,都是指向同一个地方,数组的一个元素改了,类读出数据也就变了。
3、字符串也是引用参数,为什么类读出数据不变?因为重写了整个字符串(新开内存,新指向,参看字符串更改章节。),类依然指向之前内存块(复制了内存地址),类读出数据不变,同结论1。如果只是修改字符串内存中某一个字符,则同结论2。


简单结论:类对基本类型都是复制。对引用类型是指向,修改应用类型内存中的数据,都会变;修改字符串本身是指向转移,类的指向不变,所有数据不变。

  • 1

Reply