Java是按值传递还是按引用传递?

Java是按值传递还是按引用传递? Java是pass by value 还是 pass by reference?这是一个Java面试中常见的问题。

对于原始类型(primitive type也译为值类型),是通过拷贝一个相同的值传给java方法的参数的;而对于引用类型(reference type),就是对象,是通过拷贝一个相同的引用或地址传给java方法的参数的。业界都统称这是pass-by-value(值传递)

 

1.什么是值传递

值传递指的就是是在方法调用时,传递的参数是按值的拷贝传递

2.什么是引用传递

引用传递,指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,就是变量所对应的内存空间的地址。

搞清楚了这两种传递的内涵之后我们再来思考有些人说的那句:“在Java里面参数传递都是按值传递”。

这句话的意思其实应该是:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称为“按值传递”

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注