java试题复盘——9月26日
5、在 JAVA 编程中, Java 编译器会将 Java 程序转换为(A)
A. 字节码
B. 可执行代码
C. 机器代码
D. 以上都不对
解析:
编译器将Java源代码编译成字节码class文件
类加载到JVM里面后,执行引擎把字节码转为可执行代码
执行的过程,再把可执行代码转为机器码,由底层的操作系统完成执行。
15、
Integer a = 1; Integer b = 1; Integer c = 500; Integer d = 500; System.out.print(a == b); System.out.print(c == d); |
上述代码返回结果为:B
- true、true
- true、false
- false、true
- false、false
解析:
这是非常有趣的地方。如果你查看Integer.java类,你会找到IntegerCache.java这个内部私有类,它为-128到127之间的所有整数对象提供缓存。
25、类B从类A派生,则类B可以访问类A中的(AC )成员?(多选)
- public成员
- private成员
- protected成员
- 所有数据成员
- 所有函数成员
解析:
数据成员包括ABC
函数成员也包括ABC
所以呢,只要判断ABC就好
private: 本类函数和友元函数可以访问。
protected: 本类函数、友元函数和子类函数可以访问。
public: 本类函数、友元函数、子类函数和本类的对象可以访问。
和公有继承、保护继承和私有继承没有关系,保护继承和私有继承影响的是子类的继承关系。
28、
下面哪个语句是创建数组的正确语句?( ABDE)
- float f[][] = new float[6][6];
- float []f[] = new float[6][6];
- float f[][] = new float[][6];
- float [][]f = new float[6][6];
- float [][]f = new float[6][];
32、下列修饰符中与访问控制权限无关的是?(D )
A. private
B. public
C. protected
D. final
解析:
private:修饰私有变量
public:修饰公有变量
protected:修饰受保护变量
final:保护私有变量不受改变
35、个抽象类并不需要其中所有的方法都是抽象的。( A )
A. 正确
B. 错误
解析:
1)抽象类可以包括抽象方法和非抽象方法
2)如果类里面有抽象方法的话,那么类一定要声明为抽象的!
40、如果要建立一个java.com.computer的包放入当前java类,下列叙述正确的是? (D )
A. 在代码中,不一定是第一句,只要是类定义前,加入package语句即可
B. 只需在代码中加入“package java.com;”一个语句
C. 必须在代码中加入“package java.com;”和“package java.com.computer;”两个语句
D. 只需在代码中第一条非注释性语句加入“package java.com.computer;”
解析:
package 必须是第一条非注释性的语句,在import 之前,不仅仅是类定义前
49、下列在Java语言中关于数据类型和包装类的说法,正确的是(B)
A. 基本(简单)数据类型是包装类的简写形式,可以用包装类替代基本(简单)数据类型
B. long和double都占了64位(64bit)的存储空间。
C. 默认的整数数据类型是int,默认的浮点数据类型是float。
D. 和包装类一样,基本(简单)数据类型声明的变量中也具有静态方法,用来完成进制转化等。
解析:
A基本类型和包装类是两回事,不是同一个概念。包装类像普通的类一样,封装了一系列的方法
C默认的浮点数据类型是float
D基本数据类型没有静态方法的,包装类却可以,因为包装类像普通的类一样,封装了一系列的方法
14关于继承和实现说法正确的 是 ( B )
A.类可以实现多个接口,接口可以继承(或扩展)多个接口
B.类可以实现多个接口,接口不能继承(或扩展)多个接口
C.类和接口都可以实现多个接口
D.类和接口都不可以实现多个接口
解析:
1.类与类之间的关系为继承,只能单继承,但可以多层继承。
2.类与接口之间的关系为实现,既可以单实现,也可以多实现。
3.接口与接口之间的关系为继承,既可以单继承,也可以多继承。
16
1 |
Web程序中,当前用户上下文信息应该保存在下面哪个对象中(C) |
A.page
B.request
C.session
D.Application
解析:
session:当前用户上下文信息
appication:当前应用
pageContext:当前页面
request:当前请求
22
1 2 3 4 5 6 |
static String str0="0123456789"; static String str1="0123456789"; String str2=str1.substring(5); String str3=new String(str2); String str4=new String(str3.toCharArray()); str0=null; |
假定str0,...,str4后序代码都是只读引用。
Java 7中,以上述代码为基础,在发生过一次FullGC后,上述代码在Heap空间(不包括PermGen)保留的字符数为(C)
A.5
B.10
C.15
D.20
解析:
Str1在常量池里,不属于Heap空间
substring实际是new,5字符
str3和4也都是new,每个5字符
分别都会创建新的对象
常量池是PermGen的
因此应该是一共15字符
24. Test.main()函数执行后的输出是(B )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
class Test { public static void main(String[] args) { System.out.println(new B().getValue()); } static class A { protected int value; public A (int v) { setValue(v); } public void setValue(int value) { this.value= value; } public int getValue() { try { value ++; return value; } finally { this.setValue(value); System.out.println(value); } } } static class B extends A { public B () { super(5); setValue(getValue()- 3); } public void setValue(int value) { super.setValue(2 * value); } } } |
A.6 7 7
B.22 34 17
C.22 74 74
D.11 17 34