String i = "";
if(i==i+0){
sysout(“66”)
}
sysout(i)//打印出来的还是空字符串
为什么这个打印不出来呢?i+0后为什么还是空字符串?求赐教
==比较的是对象的地址吧?看和equal()的区别。你这肯定进不去的
那为啥比较完后i还是空字符串,在if的括号里i不是加了和0吗,那i的值应该变成“0”,为啥没变呢?
@砖家变专家: i + 0后你又没存,怎么可能是0?如果你 i = i+0 的话,i 是 0。光 i + 0,i 怎么会改变值呢?
@名字不好起啊: 哦哦,懂了。三克油~
@砖家变专家:
public void returnAdd () { if(i == i + 0 ){ System.out.println("in"); }else{ System.out.println("out"); System.out.println(i); System.out.println(i + 0); } }
多写几种可能,都试试,不过它铁定不会进 true 的
这是什么语言啊
忘说了,是java
@砖家变专家: 肯定不行啊,i+0后是"0",跟""肯定不相等啊
@编程点滴: 那i+0为什么不会对i做出改变呢? 我想的是i+0后i就变成了 “0”,但最后i还是“”,这是为啥呢
因为你变量i = ""咯;空值
java里 string是对象还是基本元素?string在栈里还是堆里?
同学,Java基础还是要继续看的……
1. Java中,String不属于基本类型,它是字符串类型,继承自Object类。
2. 运算符号=等号是赋值,==两个等号是判断比较(比较的是引用,也就说比较的是变量的地址)。
3. 打印语句不是System.out.println()这个么,是不是输入完“sysout”之后没按快捷键。
如果说String是字符串类型,继承自Object类。那他是不是对象?
输这个总是输不对:System.out.println()
于是就偷懒输了个这个:sysout O(∩_∩)O
弄明白了,谢谢