Java 基础
1:
int a = 1;
int m1 = ++a +3;
结果 :m1 = 5;a=2;
++a表示先赋值
2:
int a = 1;
int m = a+++3;
结果 m = 4; a= 2;
a++表示后赋值
3:
m<<2 表示 m*2*2
m<< 3 表示 m*2*2*2
int result =5<<2 ;//a 20 5*2*2 ;
int result1 =6<<3 ;// 48 6*2*2*2
int result2 =7<<4 ;//112 7*2*2*2*2
4:
a++ 表示a+1
int a = 2;
int result = (a++ > 2)?(++a):(a+=3);
结果是//6
5. 下面程序的运行结果是()
String str1 = "hello";String str2 = "he" + new String("llo");System.err.println(str1 == str2);
答案:false
解析:因为str2中的llo是新申请的内存块,而==判断的是对象的地址而非值,所以不一样。如果是String str2 .equals(str1),那么就是true了。
4. 下列说法正确的有()
A. class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名
C. constructor在一个对象被new时执行
D.一个class只能定义一个constructor
答案:C
解析:这里可能会有误区,其实普通的类方法是可以和类名同名的,和构造方法唯一的区分就是,构造方法没有返回值。
- 下面程序的运行结果:(