1.下面哪个标识符是合法的?
A “9HelloWorld”
B “_Hello World”
C “Hello*World”
D “Hello$World”
我的回答: B (错误)
正确答案: D
B选项中有空格
D选项虽然 美元符号 一般自己不使用,但是在这道题中它是正确选项
Java语言中,对于变量、常量、方法和语句块也有名字, 它们被统称为Java标识符。
标识符是用来给类、成员变量、方法、接口等命名的
命名规则:
1.Java标识符由字母、数字、_(下划线)、美元符号或人民币符号组成。
2.不能由数字开头。
3.关键字不能作为标识符。
2.java 的字符类型采用的是 Unicode 编码方案,每个 Unicode 码占用()个比特位。
A 8
B 16
C 32
D 64
他的回答: B (正确)
正确答案: B
Unicode 编码方案一个字符占两个字节
一个字节是8比特位、那么2个字节就是16个比特位
3.阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有()
这个题还是有些许不明白
A 能编译通过,并正确运行
B 因为使用了未初始化的变量,所以不能编译通过
C 以错误的方式访问了静态方法
D 能编译通过,但因变量为null,不能正常运行
Test中的hello方法是静态方法,静态方法的调用与对象是否实例化无关。
直接使用Test.hello()也可以编译通过并成功运行
4.如下代码的输出结果是什么?
A 0
B 1
C 2
D 编译失败
静态变量只能在类主题中定义,不能自方法体中定义
5.以下程序的输出结果为()
class Base{
public Base(String s){
System.out.print("B");
}
}
public class Derived extends Base{
public Derived (String s) {//该句编译不通过 错误提示:在Base中没有无惨构造方法
System.out.print("D");
}
public static void main(String[] args){
new Derived("C");
}
}
TODO
在调用子类构造方法之前,会先调用父类构造方法。
当子类构造方法中没有使用super调用父类构造方法(有参或无参)时,会默认调用父类的无参构造方法。如果父类中有有参构造方法,确没有无参构造方法,则**必须指明使用super(参数)调用父类的有参构造方法(这个不会)或是在父类中显示地写出无参构造方法**,否则就会编译出错。
6.下列哪个选项是Java调试器?如果编译器返回程序代码的错误,可以用它对程序进行调试。
Java.exe 编译.java文件
javac.exe 执行已编译好的.class文件
javadoc.exe 生成java说明文档
javaprof.exe j剖析工具
jdb java调试器
7.jre 判断程序是否执行结束的标准是()
8.以下代码结果是什么?
借用别人画的图来理解
9.装箱、拆箱操作发生在: ()
关于装箱和拆箱:https://zhuanlan.zhihu.com/p/35213678
装箱:将一个基本数据类型转换为包装类
拆箱:将包装类转换为基本数据类型
10.下面有关JVM内存,说法错误的是?
JVM运行时,数据区包含:虚拟机栈、堆、方法区、本地方法栈、程序计数器,其中,方法区和堆是线程共享的,程序计数器和栈是线程隔离的(私有的)
链接:https://www.nowcoder.com/questionTerminal/2a1cdf3e61d14947bf00dfe10e25a2c0
来源:牛客网
方法区域存放了所加载的类的信息(名称、修饰符等)、类中的静态变量、类中定义为final类型的常量、类中的Field信息、类中的方法信息,当开发人员在程序中通过Class对象中的getName、isInterface等方法来获取信息时,这些数据都来源于方法区域,同时方法区域也是全局共享的,在一定的条件下它也会被GC,当方法区域需要使用的内存超过其允许的大小时,会抛出OutOfMemory的错误信息