杂谈:心情很低落,可是依然要坚持学习,希望自己能不被其他因素所影响,希望真的能越来越好
-----------------------------------------------------------------------------------------------------------------
public class Sample{
long length;
public Sample(long l){ length=l;}
public static void main(String arg[])
{
Sample s1,s2,s3;
s1=new Sample(21L);
s2=new Sample(21L);
s3=s2;
}
}
A. s1==s2;
B. s2.equals(s3)
C. s1.equals(s2)
D. s2!=s3;
A答案s1和s2比较的是引用地址,因为都是new出来的不同地址,所以为false
B答案 因为s3的赋值为s2,那么s2和s3指向的是同一个东西,所以为true
C答案 这个要重点看,这个类没有返回值,s1和s2是Sample的对象,equals方法也没有重写,没有办法具体比较,所以为false
D答案 同B答案原理
public class test{
public static void main(String args[]) {
String s1 = "hello";
if (s1 == "hello") {
System.out.println("s1 = \"hello\"");
} else {
System.out.println("s1 !=hello");
}
}
}
A.输出 s1 !=hello
B.输出 s1="hello"
C. 编译正确,运行错误
D. 产生编译错误
此题s1=="hello",那么在"s1 = \"hello\"" 中其实是使用了转义字符,hello前后的2个 \" 相当于 " (双引号),其实就等同于"s1 = "hello" "
那么最后输出的就是 s1="hello"
JAVA中转义字符:
1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'
\0:空字符
2.Unicode转义字符:\u + 四个十六进制数字;0~65535
\u0000:空字符
3.特殊字符:就3个
\":双引号
\':单引号
\\:反斜线
4.控制字符:5个
\' 单引号字符
\\ 反斜杠字符
\r 回车
\n 换行
\f 走纸换页
\t 横向跳格
\b 退格
点的转义:. ==> u002E
美元符号的转义:$ ==> u0024
乘方符号的转义:^ ==> u005E
左大括号的转义:{ ==> u007B
左方括号的转义:[ ==> u005B
左圆括号的转义:( ==> u0028
竖线的转义:| ==> u007C
右圆括号的转义:) ==> u0029
星号的转义:* ==> u002A
加号的转义:+ ==> u002B
问号的转义:? ==> u003F
反斜杠的转义: ==> u005C
类Teacher和Student是类Person的子类:
Person p;
Teacher t;
Student s;
//p,t and s are all non-null.
if(t instanceof Person) {s=(Student)t;}
最后一句语句的结果是:
A. 编译时正确,但运行时错误
B. 将构造一个Student对象
C. 表达式是错误的
D. 表达式是合法的
t不能强转为S,student和teacher没有继承关系,这种在表达式上直接就报错