每日一题Day5

1.下面的程序 编译运行后,在屏幕上显示的结果是()

public class test {
public static void main(String args[]) {
int x,y;
x=5>>2;
y=x>>>2;
System.out.println(y);
}
}

答案:0
解析:
>>是带符号右移;
>>>是无符号右移,即无论是正数还是负数,高位通通补0
5的二进制0101右移两位变为0001,再右移两位变为0000
2.以下代码结果是什么?

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
解析:
JAVA 中 Stringbuffer 有append( )方法
 Stringbuffer其实是动态字符串数组, append( )是往动态字符串数组添加,跟“xxxx”+“yyyy”相当那个‘+’号 ,跟String不同的是Stringbuffer是放一起的
 String1+String2 和Stringbuffer1.append(“yyyy”)虽然打印效果一样,但在内存中表示却不一样
 String1+String2 存在于不同的两个地址内存
 Stringbuffer1.append(Stringbuffer2)放再一起。
 StringBuffer是线程安全的,多用于多线程。
3、在JAVA中,假设A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法和语句格式应该为(B)
A this.A(x)
B this(x)
C super(x)
D A(x)
解析:
A选项是调用普通方法的格式
C选项为调用父类构造方法的格式
D选项为调用静态方法的格式

4.下面代码的运行结果是(C)

public static void main(String[] args){
String s;
System.out.println("s="+s);
}

A 代码编程成功,并输出”s=”
B 代码编译成功,并输出”s=null”
C 由于String s没有初始化,代码不能编译通过。
D 代码编译成功,但捕获到NullPointException异常
5.装箱、拆箱操作发生在: ©
A 类与对象之间
B 对象与对象之间
C 引用类型与值类型之间
D 引用类型与引用类型之间
解析:装箱就是 自动将基本数据类型转换为包装器类型;拆箱就是 自动将包装器类型转换为基本数据类型

6.一个以”.java”为后缀的源文件(C)
A 只能包含一个类,类名必须与文件名相同
B 只能包含与文件名相同的类以及其中的内部类
C 只能有一个与文件名相同的public类,可以包含其他类
D 可以包含任意类

7、 下列哪个说法是正确的(D)
A ConcurrentHashMap使用synchronized关键字保证线程安全
B HashMap实现了Collction接口
C Array.asList方法返回java.util.ArrayList对象
D SimpleDateFormat是线程不安全的
8.以下说法错误的是(D)
A 虚拟机中没有泛型,只有普通类和普通方法
B 所有泛型类的类型参数在编译时都会被擦除
C 创建泛型对象时请指明类型,让编译器尽早的做参数检查
D 泛型的类型擦除机制意味着不能在运行时动态获取List中T的实际类型

9.下列代码执行结果为(21)

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");
}

解析:join会阻塞

10.指出以下程序运行的结果是 B

public class Example{
String str=new String("good");
char[]ch={'a','b','c'};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
System.out.print(ex.ch);
}
public void change(String str,char ch[]){
//引用类型变量,传递的是地址,属于引用传递。
str="test ok";
ch[0]='g';
}
}

A good and abc
B good and gbc
C test ok and abc
D test ok and gbc
解析:str是按值传递,所以在函数中对它的操作只生效于它的副本,与原字符串无关。
ch是按址传递,在函数中根据地址,可以直接对字符串进行操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值