天梯180411
1. 下列不正确的 Java 语言标识符是( )
A. Sky
B. $Computer
C. for
D. NULL
2. (不定项)对于线程局部存储TLS(thread local storage),以下表述正确的是
A. 解决多线程中的对同一变量的访问冲突的一种技术
B. TLS会为每一个线程维护一个和该线程绑定的变量的副本
C. 每一个线程都拥有自己的变量副本,从而也就没有必要对该变量进行同步了
D. Java平台的java.lang.ThreadLocal是TLS技术的一种实现
3. (不定项)往OuterClass类的代码段中插入内部类声明, 哪一个是错误的:
public class OuterClass{
private float f=1.0f;
//插入代码到这里
}
A. class InnerClass{
public static float func(){return f;}
}
B. abstract class InnerClass{
public abstract float func(){}
}
C. static class InnerClass{
protected static float func(){return f;}
}
D. public class InnerClass{
static float func(){return f;}
}
4. 下列Java代码中的变量a、b、c分别在内存的____存储区存放。
class A {
private String a = “aa”;
public boolean methodB() {
String b = “bb”;
final String c = “cc”;
}
}
A. 堆区、堆区、堆区
B. 堆区、栈区、堆区
C. 堆区、栈区、栈区
D. 堆区、堆区、栈区
E. 静态区、栈区、堆区
F. 静态区、栈区、栈区
5. 变量a是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF;变量b是一个64位有符号的整数,初始值用16进制表示为:0x8000000000000000。则a+b的结果用10进制表示为多少?
A. 1
B. -1
C. 2^63+2^62+…+2^2+2^1+2^0
D. –(2^63+2^62+…+2^2+2^1+2^0)
//------------------------分割线-------------------------
C
ABD
ABCD
C
B
1. Java中只有null, scala中才有NULL.
2. ThreadLocal可以给一个初始值,而每个线程都会获得这个初始化值的一个副本,这样才能保证不同的线程都有一份拷贝。ThreadLocal 不是用于解决共享变量的问题的,不是为了协调线程同步而存在,而是为了方便每个线程处理自己的状态而引入的一个机制.
3.
静态方法不能访问非静态变量,A和C错;
抽象类中的抽象方法不能有方法体,B错;
一个类中有多个类声明时,只能有一个public类,D错
4.
a是类中的成员变量,存放在堆区
b、c都是方法中的局部变量,存放在栈区
5. 给的都是补码,直接计算就行。得到0xFFFFFFFFFFFFFFFF ,表示-1