1.java 的字符类型采用的是 Unicode 编码方案,每个 Unicode 码占用()个比特位。
A 8
B 16
C 32
D 64
2.阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有()
package NowCoder;
class Test {
public static void hello() {
System.out.println("hello");
}
}
public class MyApplication {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test=null;
test.hello();
}
}
A 能编译通过,并正确运行
B 因为使用了未初始化的变量,所以不能编译通过
C 以错误的方式访问了静态方法
D能编译通过,但因变量为null,不能正常运行
3.如下代码的输出结果是什么?
public class Test {
public int aMethod(){
static int i = 0;
i++;
return i;
}
public static void main(String args[]){
Test test = new Test();
test.aMethod();
int j = test.aMethod();
System.out.println(j);
}
}
A 0
B 1
C 2
D 编译失败
4.下列哪个选项是Java调试器?如果编译器返回程序代码的错误,可以用它对程序进行调试。
A java.exe
B javadoc.exe
C jdb.exe
D javaprof.exe
5.jre 判断程序是否执行结束的标准是()
A 所有的前台线程执行完毕
B 所有的后台线程执行完毕
C 所有的线程执行完毕
D 和以上都无关
在基本 JAVA 类型中,如果不明确指定,整数型的默认是 int 类型,带小数的默认是 double 类型
6.下面有关JVM内存,说法错误的是?
A 程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的
B Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
C 方法区用于存储JVM加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,是线程隔离的
D 原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的
1.unicode*2,16个比特位
2.A
当程序执行Test tset时:jvm发现还没有加载过一个称为”Test”的类,它就开始查找并加载类文件”Test.class”。它从类文件中抽取类型信息并放在了方法区中,jvm于是以一个直接指向方法区lava类的指针替换了’test’符号引用,以后就可以用这个指针快速的找到Test类了。所以这也是为什么可以直接test.任何静态的东西
3.D
肯定编译失败啊,不是静态方法里面有个静态属性
4
javac.exe是编译.java文件
java.exe是执行编译好的.class文件
javadoc.exe是生成Java说明文档
jdb.exe是Java调试器
javaprof.exe是剖析工具
5.A
后台线程就是守护线程啊,当只存在精灵线程就说明程序结束
6.方法区是线程共享的,所以C错误