十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
第一行输出结果是abc:
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了河西免费建站欢迎大家使用!
原因是:
s.substring(1);
s.replace("bc", "xyz");
这两句话没有任何作用 ~因为String是属于值传递~
第二行 输出结果是false:
原因是:
用==比较字符串,是比较两个变量本身的值,即两个对象在内存中的首地址。用equals比较就会为true,equals比较的是内容是否相同。
附:
1、值传递、引用传递的区别:
值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。
引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数
2、用==比较和用equals比较的区别:
对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同.
“==”比较两个变量本身的值,即两个对象在内存中的首地址.
“equals()”比较字符串中所包含的内容是否相同.
if(j==10)里面的语句只有第一次循环时执行了,输出0,10
然后j--,这时j是9,而后面的j++和for()里面的j--抵消了,j还是9,
以后的9次循环里,if后面的语句再也没有执行了,而j++和for()里面的j--每次都抵消,所以j一直是9,
i每次++,一共执行10次,从0到9,所以最后输出i和j是9,9
应该是B,
在java世界中,所有的对象都直接或间接是Object的子类.
参照JLS,结果会是x=6,y=70
这种代码毫无意义,不要研究也不要去写这样的代码。