Java笔记1

 

1.boolean equals(String s)方法比较某字符串是否与字符串s相同。例如:
String str1="abc";

String str2=Abc;
String str3="abc";
String str4=new String("abc");

 

System.out.println(str1.equals(str2));

System.out.println(str1==str2);

      

System.out.println(str1.equals(str3)); System.out.println(str1==str3);

      

System.out.println(str1.equals(str4));

System.out.println(str1==str4);
注意两个字符串比较与两个字符串引用对象比较的区别。
比如,表达式str1.equals(str2)与表达式str1==str2的差异。前者表示所引用的两个字符串的内容是否相同,后者表示str1str2是否引用同一个对象。在以上4行代码中,由于str1str2分别引用不同的对象,所以str1==str2的值是false;因为str1str3引用同一个字符串常量,str1==str3的值是true。尽管str1str4引用的对象的内容相同,因为他们是不同的对象,str1引用的是编译时能确定的字符串常量,str4引用的是程序运行时创建的对象,所以表达式str1==str4的值是false。所以后面的六行代码的输出结果分别是:

false

false

true

true

true

false

2.    根据下列条件,描述正确的是?

Integer i = new Integer (42);
Long 1 = new Long (42);
Double d = new Double (42.0);
A. (i ==1)
B. (i == d)
C. (d == 1)
D. (i.equals (d))
E. (d.equals (i))
F. (i.equals (42))

这是CSDN论坛上一个题目,觉得蛮有意思的!答案是F

显然ABC不对哦!论坛上说要查看它们实现的原代码,我查了一下,是这样的:

public boolean equals(Object obj) {

       if (obj instanceof Integer) {

           return value == ((Integer)obj).intValue();

       }

       return false;

}

 

3.还有是关于String的创建的对象和引用的问题

同样是CSDN上的题目:

11)下面代码一共创建了几个对象?
1. String s1 = "abc";
2. String s2 = s1;
3. String s3 = "abc";
A. None B. 1  C. 2   D. 3
12)下面代码一共创建了几个对象?
1. String s1 = "abc";
2. String s2 = s1;
3. String s3 = new String("abc");
A. None  B. 1  C. 2  D. 3
 
13)下面代码一共创建了几个对象?
1. String s1 = "abc";
2. String s2 = new String(s1);
3. String s3 = new String("abc");
A. None  B. 1   C. 2  D. 3

当然答案显然是  A  B  C

上面说了String s1=”abc”,只是引用编译时的一个变量,并没有创建对象!只有当new语句时,才在内存中为对象分配一块空间!

 

Sting,和数组是Java SE最基础的东西啦,也是考得很多的东西,自认为这块掌握得不是很好!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值