永发信息网

java的基础问题求大神看下

答案:4  悬赏:60  手机版
解决时间 2021-04-07 18:03
  • 提问者网友:愿为果
  • 2021-04-06 23:58
java的基础问题求大神看下
最佳答案
  • 五星知识达人网友:妄饮晩冬酒
  • 2021-04-07 00:38
str1==str3
str2==str5
这两个是true,下面解释下。

首先明确一下, a==b 这个表达式,只有a个b两个变量的内存地址相等,返回才是true,是内存地址,不是看上去显示的那个值。
equals比较不管地址,只要数值相等就可以返回true了

str1==str2 str1是用new String()新开辟的一个地址,str2也是新加了一个地址,这两个虽然值相等,可是地址不一样。
str1==str3,因为这个有这么一句String str3=str1;这就是将str1的地址赋给了str3,所以他们两个地址相同。
str1==str4 这两个都是通过new String()出来的,调用new String就会新开辟一个地址,所以这两个都是新开辟的,肯定地址不一致
str2==str5,这个str5穿件的时候没有new String,就会优先使用已经存在的,前面String str2="Hello";已经穿见过了,所以这次直接使用,所以他们地址是一致的追问你说的这个我明白了,那 那个equals和==有什么区别吗?追答equals 只管比较变量的值,这个直观的想就是我们平时的那种比较了,比如"aa".equals("aa");这个不管怎么比较,肯定是只能返回true;
==是不管变量值的,之比较他们引用的是不是同一个变量,也就是只看这两个变量是不是指向同一个内存地址,"aa"=="aa"这个,就不一定返回true了,这要看实际情况,如果这两个aa是来自同一个内存地址就返回true,如果这两个值是保存在内存中不同位置的,那就是返回false,就像你提问中的哪些情况了
全部回答
  • 1楼网友:旧脸谱
  • 2021-04-07 02:27
str1==str3;
str2==str5;
但是为什么不自己敲一下呢?追问哦对 用equals(String str)比较下是吧 等等追答String的equals跟==是不一样的,equals比较的是String对象的内容是否相等,而==比较的则是对象在堆栈中的位置是否相等,也就是是否引用同一个对象追问那我应该怎么测试啊?我用equals
if(str1.equals(str2))
if(str1.equals(str3))
执行结果str1==str2 str1==str3...追答你这个问题问的是==,你就用==测
  • 2楼网友:一把行者刀
  • 2021-04-07 01:56
反射机制是经常需要用到的,如果初学可以不必了解原理,但碰到了一定要知道这是用到了反射机制,如 class.forName()这种,目前做到知道它是什么就行,后期再深入了解它的机制。

正则表达式也不是核心内容,大致了解下,真正能记住表达式的很少,后面很多都是网上再找找攻略。

java你初学,首先了解OOP基础知识,如数据类型、各种数据结构(数组、List等)、继承、封装、多态等。

不知道你以后想从事哪个方向,所以不好直接指导你需要哪些重点看。

但记住一点,光看教程是没用的,学习一定要多动手,自己练习了遇到问题并解决了 这样才算真正的提高。
这样可以么?追问你妈的都跟我扯到正则表达式了,复制粘贴好玩么沙比?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯