关于字符串比较的一点不解~ s1和s2指向的地址一样的,jvm运行的时候会用一个东西替换掉所有你西的"hello"但s3和s4是调用的stirng(String a)的构造函数,所以它们指的对象在堆中的位置不一样。不知道说的对不对你可以记住就是这样的就可以. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String s1 = "hello";String s2 = "hello";String s3 = new String("hello");String s4 = new String("hello");为什么System.out.println(s1==s2) 打印true//比较字符串常量,很多人都认为是常量池里什么的,System.out.println(s3==s4) 打印false//比较两个对象,当然不是一个System.out.println(s1==s4) 打印false//字符串常量跟一个对象呵呵,明显不能出true 可以使用String类中的public boolean equals(String s)方法比较一字符串是否与字符串s相同。如:String tom= "we are students";String boy= "We are students";String jerry= "we are students";tom.equals(boy)的值是false,tom.equals(jerry)的值是 true。注意:tom==jerry的值是false。因为字符串是对象,tom,jerry是引用。还可以使用public boolean equalsIgnoreCase(Strin s)方法来比较一个字符串是否和字符串 s相同,但忽略大小写。如:tom.equalsIgnoreCase(boy)的值是true。字符串对象s可以使用String类中的public int compareTo(String another)方法,按辞典序与参数another指定的字符串比较大小。如果s与another相同,该方法返回值0;如果s大于another,该方法返回正值;如果s小于another,该方法返回负值,例如:String s= "abcde";s.compareTo("boy")的值小于0;s.compareTo("aba")的值大于0;s.compareTo("abcde")的值等于0。按辞典序比较两个字符串还可以使用public int compareToIgnoreCase(Strin s)方法,该方法忽略大小写。 你在里面搜索一下,标题中应该含有"初学"之类的字样,有一个专门讨论这个问题.因为String s1 = "hello";String s2 = "hello";这两个对象s1和s2都是指向同一个对象(即,他们之间有一种引用关系),有些类似于s2=s1;至于为什么,你看了那篇文章,你就清楚了,我不多说了.而后面两句,因为你显示地使用了new,所以必然要重新生成对象. 有关jdk的问题 请教各位,帮忙解决这个return的问题 sqlserver 分页问题 一道关于线程的题。。高手进 几个小问题,简单的,关于break什么的 Net程序员学习Java 怎么判断一个字符串是否以英文结束 谁能告诉我,在redhat7.2下怎么安装JBuilder7.0? Java字库的文字 一个很基础的问题 如何用java调用windows中运行命令 在DOS下运行java mynews出现......?
String s2 = "hello";
String s3 = new String("hello");
String s4 = new String("hello");
为什么
System.out.println(s1==s2) 打印true//比较字符串常量,很多人都认为是常量池里什么的,
System.out.println(s3==s4) 打印false//比较两个对象,当然不是一个
System.out.println(s1==s4) 打印false//字符串常量跟一个对象呵呵,明显不能出true
String boy= "We are students";
String jerry= "we are students";
tom.equals(boy)的值是false,
tom.equals(jerry)的值是 true。
注意:tom==jerry的值是false。
因为字符串是对象,tom,jerry是引用。
还可以使用public boolean equalsIgnoreCase(Strin s)方法来比较一个字符串是否和字符串 s相同,但忽略大小写。如:tom.equalsIgnoreCase(boy)的值是true。字符串对象s可以使用String类中的public int compareTo(String another)方法,按辞典序与参数another指定的字符串比较大小。如果s与another相同,该方法返回值0;如果s大于another,该方法返回正值;如果s小于another,该方法返回负值,例如:String s= "abcde";s.compareTo("boy")的值小于0;s.compareTo("aba")的值大于0;s.compareTo("abcde")的值等于0。
按辞典序比较两个字符串还可以使用public int compareToIgnoreCase(Strin s)方法,该方法忽略大小写。
String s1 = "hello";
String s2 = "hello";
这两个对象s1和s2都是指向同一个对象(即,他们之间有一种引用关系),有些类似于s2=s1;
至于为什么,你看了那篇文章,你就清楚了,我不多说了.而后面两句,因为你显示地使用了new,所以必然要重新生成对象.