关于字符串比较的一点不解~ 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,所以必然要重新生成对象. 关于集合arraylist的问题 JComboBox 获取箭头部分或者如何为箭头部分添加监听事件? override the method in superclass/interface 有谁做过qrcode的程序??? 怎样获得系统cpu队列长度,用什么函数? 问一个简单的问题:你是如何输入的 现金1000元!!征求护士工作安排表java解决方案,注意。是现金哦,在线等待 向applet传参数? 如何在一台没有装JDK的Windows下运行java程序? 关于weblogic 如何用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,所以必然要重新生成对象.