2019-03-19 14:20发布
学习书上的一个实例,这里的s1 s2的值是什么?前面的b1 b2能看明白,后面s1 s2不知道指啥,所以不明白为啥运算结果b3:false; b4:true。
另外还有个问题,我想把.java文件放在下图目标路径下,然后每次直接运行这下面的,但是找不到,一直提示不正确,不知道哪里出了问题,我现在只能直接放在某个盘的下面(如直接放在D盘下面),不能再嵌套文件夹。以上2个问题,求大神解答,谢谢!
亲、请参考以下解答哈:
问题一:
String s1=new String();是代表了创建一个字符串成员、然后后面没有赋值、也就是默认值为null;
s2也是同样的道理;
然后boolean b3=(s1==s2);这里比较的不是对方的值大小、而是内存地址、因为都是新建的两个空成员变量、内存地址值有所不同、也就是==号是比较两个变量是否引用的同一个地址值、因为在堆中定义出了两个对象、所以引用是不相等的、自然false了、、
而boolean b4=(s1!=s2);因为同样的道理、内存地址值不同、自然是true了、、这道题涉及到了java的堆栈问题、可以自行加深一下理解、、、
问题二:
如果确认了你的Java环境变量配好了的话、也就是系统变量JAVA_HOME 和CLASSPATH、则直接在DOS窗口内输入D:按回车进入D盘下直接运行javac以及java命令即可;
否则在使用dos命令的时候、建议切换好盘符后使用cd命令来切换目录、如cd D:\javastu\190318 、然后在该路径下运行javac以及java命令、、、
s1和s2被初始化为 “”
最多设置5个标签!
亲、请参考以下解答哈:
问题一:
String s1=new String();是代表了创建一个字符串成员、然后后面没有赋值、也就是默认值为null;
s2也是同样的道理;
然后boolean b3=(s1==s2);这里比较的不是对方的值大小、而是内存地址、因为都是新建的两个空成员变量、内存地址值有所不同、也就是==号是比较两个变量是否引用的同一个地址值、因为在堆中定义出了两个对象、所以引用是不相等的、自然false了、、
而boolean b4=(s1!=s2);因为同样的道理、内存地址值不同、自然是true了、、这道题涉及到了java的堆栈问题、可以自行加深一下理解、、、
问题二:
如果确认了你的Java环境变量配好了的话、也就是系统变量JAVA_HOME 和CLASSPATH、则直接在DOS窗口内输入D:按回车进入D盘下直接运行javac以及java命令即可;
否则在使用dos命令的时候、建议切换好盘符后使用cd命令来切换目录、如cd D:\javastu\190318 、然后在该路径下运行javac以及java命令、、、
s1和s2被初始化为 “”
一周热门 更多>