2019年10月30日_java_2
考点1
下列叙述错误的是( )
- A java提供了丰富的类库
- B java很好的利用了网络资源
- C java支持多线程
- D java不支持TCP/IP协议
正确答案: D
解析
考点2
对于java类型变量char c,short s,float f,double d,表达式c*s+f+d的结果类型为()
- A float
- B char
- C short
- D double
正确答案: D
解析
自动类型转换遵循下面的规则:
1.若参与运算的数据类型不同,则先转换成同一类型,然后进行运算。
2.转换按数据长度增加的方向进行,以保证精度不降低。例如int型和long型运算时,先把int量转成long型后再进行运算。
3.所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
4.char型和short型参与运算时,必须先转换成int型。
5.在赋值运算中,赋值号两边的数据类型不同时,需要把右边表达式的类型将转换为左边变量的类型。如果右边表达式的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度。
byte->short->int
char -> int -> long
float -> double
int -> float->double
long -> double
考点3
以下程序的运行结果是()
public class Increment
{
public static void main(String args[])
{
int a;
a = 6;
System.out.print(a);
System.out.print(a++);
System.out.print(a);
}
}
- A 666
- B 667
- C 677
- D 676
正确答案: B
解析
a++表示先用后+,
而++a表示先+后用
考点4
BufferedReader的父类是以下哪个?
- A FilterReader
- B InputStreamReader
- C PipedReader
- D Reader
正确答案: D
解析
考点5
枚举(enum)属于原始数据类型(primitive type)。
- A 正确
- B 错误
正确答案: B
解析
这里的原始数据类型就是基本数据类型
byte,short,int,long,float,double,boolean,char.
枚举类是一种特殊对的类,既然是类。那他就不是原始数据类型了
考点6
public class contained in a Java program file must have the same name as the file, except for the extension “.java”.
- A FALSE
- B TRUE
正确答案: A
解析
1、java文件中类型为public的类有两种,一种是外部类,一种是内部类;
2、当外部类的类型为public时,文件名需要与其相同;
3、当内部类的类型为public时,而外部类不是public类型的,则文件名可随意,但需要满足命名规范(以字母或下划线开头)。
考点7
关于java编译和运行命令叙述不正确的是? ( )
- A 运行“java Scut.class”
- B 运行“java Scut”
- C 运行“javac Scut.java”的输出文件是Scut.class
- D java这个命令的运行对象是Scut.class
正确答案: A
解析
先编译:javac scut.java.产生字节码文件(scut.class).
再运行字节码文件:java scut.此时不需要加后缀
考点8
在java中重写方法应遵循规则的包括()
- A 访问修饰符的限制一定要大于被重写方法的访问修饰符
- B 可以有不同的访问修饰符
- C 参数列表必须完全与被重写的方法相同
- D 必须具有不同的参数列表
正确答案: BC
解析
两同两小一大原则:
两同:方法名和参数列表相同
两小:返回值或声明异常比父类小(或相同)
一大:访问修饰符比父类的大(或相同)
访问权限可以相同,所以A不对。
访问权限可以更大,则不同,所以B对
考点9
以下程序执行后,错误的结果是()
public class Test {
private String name = “abc”;
public static void main(String[] args) {
Test test = new Test();
Test testB = new Test();
String result = test.equals(testB) + “,”;
result += test.name.equals(testB.name) + “,”;
result += test.name == testB.name;
System.out.println(result);
}
}
- A true,true,true
- B true,false,false
- C false,true,false
- D false,true,true
正确答案: ABC
解析
Test重写equals方法。比较的是地址。所以test.equals(testB) 返回false。
String重写了equals方法,比较的是内容,所以,test.name.equals(testB.name)返回true。
String name = “abc”,name引用的是字符串直接量,字符串直接量放在常量区,只创建一次,所以是同一对象,所以test.name == testB.name返回true
也就是false,true,true
但是题目要你选错误的
考点10
下面有关java的引用类型,说法正确的有?
- A 对于一个对象来说,只要有强引用的存在,它就会一直存在于内存中
- B 如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。
- C 如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存
- D 一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的空间
正确答案: ABCD
解析
1、强引用:一个对象赋给一个引用就是强引用,比如new一个对象,一个对象被赋值一个对象。
2、软引用:用SoftReference类实现,一般不会轻易回收,只有内存不够才会回收。
3、弱引用:用WeekReference类实现,一旦垃圾回收已启动,就会回收。
4、虚引用:不能单独存在,必须和引用队列联合使用。主要作用是跟踪对象被回收的状态。