Java 面试基础题小总结
2023年已经开始,马上也要过农历新年了,过完年很多码农们可能会去选择其他更好的平台了。但是想要去更好平台也得练好基本功。我这里有一些比较基础题,大家一起学习参考,顺便了解一下里面各种道道。
第一题,参考下面的图片:
这个会打印出什么结果呢,会是两个good吗?
结果却是字符串类型的是good 保持原来一样,下面的数组却发生变化 变成了food。出现这个结果的原因是第一个 String 类型,当方法执行到 change 方法中str = "bad"; 时,其实真正的现象是 str = new String("bad");只是改变了str内存指向对象而已。 而执行到arr[0] = 'f';时,则是在其原来的位置进行替换。
简单理解就是String这种是不可变性,基本数据类型传的是数据,引用数据类型传的是地址值。但是数组没有不可变性,所以会随之变化。
第二题,进一步理解java 到底是值传递还是引用传递.
这个应该到底会怎么转变呢,这里的车都变成"高端车"呢?
这里发现大众升级成奥迪,但是别克没有变成凯迪拉克。这两个方法最大区别ct 方法重新将对象进行new ,其代码本质还是对象地址值传递。只不过在ct 的时候将其对象地址转变,而cc方法只是在原来地址进行修改数据