2021-05-05
Posted Kirl z
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-05-05相关的知识,希望对你有一定的参考价值。
- 下面的程序 编译运行后,在屏幕上显示的结果是()
public class test {
public static void main(String args[]) {
int x,y;
x=5>>2;
y=x>>>2;
System.out.println(y);
}
}
A 0
B 2
C 5
D 80
结果: A
解释:
Java中的位运算符:
- >>表示右移,如果该数为正,则高位补0,若为负数,则高位补1;
- >>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。
5的二进制是0101。
x=5>>2 (>>带符号右移)
将0101右移2位,为:0001。
y=x>>>2 (>>>无符号右移,左边空缺补充为0)
将0001右移2位,补0。结果为:0000。
所以得出答案0
- 以下代码结果是什么?
public class foo {
public static void main(String sgf[]) {
StringBuffer a=new StringBuffer(“A”);
StringBuffer b=new StringBuffer(“B”);
operate(a,b);
System.out.println(a+”.”+b);
}
static void operate(StringBuffer x,StringBuffer y) {
x.append(y);
y=x;
}
}
A 代码可以编译运行,输出“AB.AB”。
B 代码可以编译运行,输出“A.A”。
C 代码可以编译运行,输出“AB.B”。
D 代码可以编译运行,输出“A.B”。
结果:C
解释:
1.运行程序, 引用a指向对象A, 引用b指向对象B
2.执行方法, 引用x指向对象A, 引用y指向对象B
3.在operate方法中,引用x指向的对象A被连接了B,对象A也就被改变为AB
4.然后又把引用y指向了x所指向的对象地址,也就是此时引用a,x,y指向同一个对象AB, 而引用b没有发生任何变化,依旧指向对象B。
- 装箱、拆箱操作发生在: ()
A 类与对象之间
B 对象与对象之间
C 引用类型与值类型之间
D 引用类型与引用类型之间
结果: C
解释:
通俗的讲,就是基本数据类型和包装类之间的转换。如: int 类型和 Integer 类的转换 基本数据类型转化成包装类是装箱 (如: int --> Integer)。 包装类转化成基本数据类型就是拆箱 (如:Integer --> int)。 包装类就是引用类型,基本数据类型就是值类型。所以选C
- 下列代码执行结果为()
public static void main(String args[])throws InterruptedException{
Thread t=new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
System.out.print("2");
}
});
t.start();
t.join();
System.out.print("1");
}
A 21
B 12
C 可能为12,也可能为21
D 以上答案都不对
结果: A
解释:
暂时还未明白
以上是关于2021-05-05的主要内容,如果未能解决你的问题,请参考以下文章