易截截图软件、单文件、免安装、纯绿色、仅160KB

java中equals和==的区别

值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
==比较的是2个对象的地址,而equals比较的是2个对象的内容。
显然,当equals为true时,==不一定为true;
一、String中的equals和==
1、
public class TestString {
     public static void main(String[] args) {
         String s1 = "Monday";
         String s2 = "Monday";
     }
}
上面这段程序中,到底有几个对象呢?
来检测一下吧,稍微改动一下程序
public class TestString {
     public static void main(String[] args) {
         String s1 = "Monday";
         String s2 = "Monday";
         if (s1 == s2)
             System.out.println("s1 == s2");
         else
             System.out.println("s1 != s2");
     }
}
编译并运行程序,输出:s1 == s2
说明:s1 与 s2 引用同一个 String 对象 -- "Monday"!
2.
再稍微改动一下程序,会有更奇怪的发现:
public class TestString {
     public static void main(String[] args) {
         String s1 = "Monday";
         String s2 = new String("Monday");
         if (s1 == s2)
             System.out.println("s1 == s2");
         else
   &nb


相关文档:

java入门

 Java学习从入门到精通 
一、 JDK (Java Development Kit) 
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......

使用Java操作文本文件的方法详解(转)

   最初Java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中write(char[] ch,int off,int length),flush()和close()方法为抽象方法,Reader中read(char[] ch,int off,int length)和close()方法是抽象方法。子类应该分别实现他们。
  当我们读写文 ......

Java集合对象排序测试


Java集合对象排序测试
 
Java API针对集合类型排序提供了两种支持:
java.util.Collections.sort(java.util.List) 
java.util.Collections.sort(java.util.List, java.util.Comparator) 
 
第一个方法要求所排序的元素类必须实现java.lang.Comparable接口。
第二个方法要求实现一个java.util. ......

CentOS 5 下 SUN JAVA JRE 1.6 的安装

到http://java.sun.com/javase/downloads/index.jsp下载 JRE 1.6,目前(2008年3月5日)的版本是Java SE Runtime Environment 6 Update 5.
注意:要下载的是Linux self-extracting file而非Linux RPM in self-extracting file
下面执行的命令是在root特权帐户下执行的
下载到的文件是jre-6u5-linux-i586.bin
步骤1: mv ......

Java中的Super和this的用法

1、super(参数):调用基于父类的某一个构造函数(应该为构造函数的第一条语句);
2、this(参数):调用同一个类中其他的构造函数(应该为构造函数的第一条语句)。
3、super:它引用当前直接父类中的成员(用于访问当前直接父类中被隐藏的父类中的数据或方法,父类与子类中有相同的成员定义)
       ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号