2021-05-05

Posted Kirl z

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-05-05相关的知识,希望对你有一定的参考价值。

  1. 下面的程序 编译运行后,在屏幕上显示的结果是()
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

  1. 以下代码结果是什么?
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。

  1. 装箱、拆箱操作发生在: ()

A 类与对象之间
B 对象与对象之间
C 引用类型与值类型之间
D 引用类型与引用类型之间
结果: C

解释:
通俗的讲,就是基本数据类型和包装类之间的转换。如: int 类型和 Integer 类的转换 基本数据类型转化成包装类是装箱 (如: int --> Integer)。 包装类转化成基本数据类型就是拆箱 (如:Integer --> int)。 包装类就是引用类型,基本数据类型就是值类型。所以选C

  1. 下列代码执行结果为()
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的主要内容,如果未能解决你的问题,请参考以下文章

2021-05-05

2021-05-05

2021-05-05

2021-05-05

SELECT 语句,带有附加逻辑,用于修改某些记录

Flutter 添加APP启动 Story View