本帖最后由 刘胜寒 于 2013-5-23 20:18 编辑
- package com.yb.Test;
- /*
- * 题目:两个字符串的比较(“equals()”和“==”的使用)。
- *
- * 解析:
- * (1)str1 == str2表示比较str1与str2两个字符串是否引用同一个对象;
- * (2)str.equals(str2)是表示比较str1与str2两个字符串的内容是否相等;
- * (3)为了比较基本数据类型变量的值是否相等是使用“==”,但这个办法并不适用String对象(或者其他任何对象)。
- * 即不适用引用类型的比较。
- * (4)对于str1和str3,都是引用同一个字符串常量"abc",其内容也当然相同。
- * 故"str1 == str3"和"str.equals(str3)"均取真值true。
- * (5)对于str1和str4,内容虽然相同,但引用的却不是同一对象。原因在于:
- * str1引用的是的编译时就确定的字符串常量,而str4引用的是程序运行时才创建的对象。
- *
- * 也就是说:字符串常量"abc"是在编译时就写到内存了,
- *
- * */
- public class Test4 {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- String str1 = "abc";
- String str2 = "Abc";
- String str3 = "abc";
- String str4 = new String("abc");
- System.out.println(str1 == str2);
- System.out.println(str1.equals(str2));
- System.out.println(str1 == str3);
- System.out.println(str1.equals(str3));
- System.out.println(str1 == str4);
- System.out.println(str1.equals(str4));
- }
- }
复制代码 |
|