2021-09-23错题

场景:

在练习


错题

错题1描述:

以下Java程序运行的结果是:


public class Tester{
public static void main(String[] args){
   Integer var1=new Integer(1);
   Integer var2=var1;
   doSomething(var2);
   System.out.print(var1.intValue());
   System.out.print(var1==var2);
}
public static void doSomething(Integer integer){
    integer=new Integer(2);
    }
}

A. 1true

B. 2true

C. 1false

D. 2false


原因分析:

在这里插入图片描述
答案: A


错题2描述:

判断一块内存空间是否符合垃圾收集器收集的标准有哪些?

A. 给对象赋予了空值null,以下再没有调用过

B. 对象重新分配了内存空间

C. 给对象赋予了空值null

D. 给对象赋予了新值


原因分析:

在java语言中,判断一块内存空间是否符合垃圾收集器收集标准的标准只有两个:
1.给对象赋值为null,以下没有调用过。
2.给对象赋了新的值
3.重新分配了内存空间。

答案: A C D


错题3描述:

以下哪几种方式可用来实现线程间通知和唤醒:( )

A. Object.wait/notify/notifyAll

B. ReentrantLock.wait/notify/notifyAll

C. Condition.await/signal/signalAll

D. Thread.wait/notify/notifyAll


原因分析:

在这里插入图片描述答案: A C


错题4描述:

对 Map 的用法,正确的有:

A. new java.util.Map().put(“key” , “value”) ;

B. new java.util.SortedMap().put(“key” , “value”) ;

C. new java.util.HashMap().put( null , null )

D. new java.util.TreeMap().put( 0 , null ) ;


原因分析:

A选项Map属于接口类型,不可以new的方式创建对象。所以A错误。
B选项SortedMap属于接口类型,不可以new的方式创建对象。所以B错误。
C选项HashMap基于哈希表实现Map接口的类,并允许null的值和null键。
D选项TreeMap通过红黑树实现Map接口的类,key不可以为null,会报NullPointerException异常,value可以为null。

答案:C D


错题5描述:

以下那些代码段能正确执行

A.	public static void main(String args[]) {
		byte a = 3;
		byte b = 2;
		b = a + b;
		System.out.println(b);
		}
		
B.	public static void main(String args[]) {
		byte a = 127;
		byte b = 126;
		b = a + b;
		System.out.println(b);
		}		
		
C.	public static void main(String args[]) {
		byte a = 3;
		byte b = 2;
		a+=b;
		System.out.println(b);
		}

D.	public static void main(String args[]) {
		byte a = 127;
		byte b = 127;
		a+=b;
		System.out.println(b);
		}

原因分析:

细节问题

在这里插入图片描述
答案: C D


错题6描述:

下列代码片段中,存在编译错误的语句是()

	byte b1=1,b2=2,b3,b6,b8;
	final byte b4=4,b5=6,b7;
	b3=(b1+b2);  /*语句1*/
	b6=b4+b5;    /*语句2*/
	b8=(b1+b4);  /*语句3*/
	b7=(b2+b5);  /*语句4*/
	System.out.println(b3+b6);

A. 语句2

B. 语句1

C. 语句3

D. 语句4


原因分析:

语句1错误:b3=(b1+b2);自动转为int,所以正确写法为b3=(byte)(b1+b2);或者将b3定义为int;

语句2正确:b6=b4+b5;b4、b5为final类型,不会自动提升,所以和的类型视左边变量类型而定,即b6可以是任意数值类型;

语句3错误:b8=(b1+b4);虽然b4不会自动提升,但b1仍会自动提升,所以结果需要强转,b8=(byte)(b1+b4);

语句4错误:b7=(b2+b5); 同上。同时注意b7是final修饰,即只可赋值一次,便不可再改变。

答案: B C D


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

关于我成为程序员这档事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值