1.设Tree为已定义的类名,下列语句能正确创建 Tree 对象的是 。
A.Tree t=new Tree;
Tree t=new Tree();
Tree t=Tree();
Tree t[ ]=new Tree[10];
2.高优先级的线程比低优先级的线程运行得更快。
A.对
B.错
3.如果类的方法没有返回值,该方法的返回值类型应当是abstract。()
A.正确
B.错误
4.下面哪个关键字可以用于Java的构造方法上?
A.final
B.static
C.synchronized
D.native
E.None of these.
5.Java创建对象的说法正确的有()
A.用new语句创建对象,是最常见的创建对象的方法。
B.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
C.调用对象的clone()方法。
D.运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
6.队列(Queue)是先进先出的。( )
A.正确
B.错误
7.类Test1定义如下:
public class Test1{//1
public float aMethod(float a,float b){}//2
//3
}//4
将以下哪种方法插入行3是不合法的。
A.public int aMethod(int a,int b){}
B.private float aMethod(int a,int b,int c){}
C.public float aMethod(float a,float b){}
D.public float aMethod(float a,float b,float c){}
8.下面有关java classloader说法错误的是?
A.Java默认提供的三个ClassLoader是BootStrap ClassLoader,Extension ClassLoader,App ClassLoader
B.ClassLoader使用的是双亲委托模型来搜索类的
C.JVM在判定两个class是否相同时,只用判断类名相同即可,和类加载器无关
D.ClassLoader就是用来动态加载class文件到内存当中用的
9.java中提供了哪两种用于多态的机制
A.通过子类对父类方法的覆盖实现多态
B.利用重载来实现多态.即在同一个类中定义多个同名的不同方法来实现多态。
C.利用覆盖来实现多态.即在同一个类中定义多个同名的不同方法来实现多态。
D.通过子类对父类方法的重载实现多态
10.如果Child extends Parent,那么正确的有()?
A.如果Child是class,且只有一个有参数的构造函数,那么必然会调用Parent中相同参数的构造函数
B.如果Child是interface,那么Parent必然是interface
C如果Child是interface,那么Child可以同时extends Parent1,Parent2等多个interface
D.如果Child是class,并且没有显示声明任何构造函数,那么此时仍然会调用Parent的构造函数
(1)B
总结:
A: 少括号
B: 正确(但是要前提,Tree类中存在无参构造器,并且是public的。如果Tree中存在有参构造器且无参构造器不存在或者无参构造器为private的话,选B也是错误的)
C: 缺少new,没有创建新的对象
D:题中创建的是数组对象,而不是Tree对象。
(2)错
高优先级线程在获得CPU时间片的几率上更高,并不一定一定会比低优先级线程先执行,同时,线程的运行速度与线程优先级没有关系
(3)选B
如果类的方法没有返回值,该方法的返回值类型应当是void。
被abstract修饰的类是抽象类,抽象类不能被实例化,但是可以被继承,也可以继承。
(4)答案:E
解析:构造方法不能被子类继承,所以用final修饰没有意义。构造方法用于创建一个新的对象,不能作为类的静态方法,所以用static修饰没有意义。此外,Java语言不支持native或synchronized的构造方法。
(5)ABCD
Java有5种方式来创建对象:
使用 new 关键字(最常用): ObjectName obj = new ObjectName();
使用反射的Class类的newInstance()方法: ObjectName obj = ObjectName.class.newInstance();
使用反射的Constructor类的newInstance()方法: ObjectName obj = ObjectName.class.getConstructor.newInstance();
使用对象克隆clone()方法: ObjectName obj = obj.clone();
使用反序列化(ObjectInputStream)的readObject()方法: try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(FILE_NAME))) { ObjectName obj = ois.readObject(); }
(6)队列先进先出,栈先进后出
(7)答案:C
关于方法的重载: 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同的方法。
方法重载具体规范
一.方法名一定要相同。
二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
三.方法的返回类型、修饰符可以相同,也可不同。
(8)C
JVM在判定两个class是否相同时,不仅要判断两个类名是否相同,而且要判断是否由同一个类加载器实例加载的。
(9)AB
Java通过方法重写和方法重载实现多态
方法重写是指子类重写了父类的同名方法
方法重载是指在同一个类中,方法的名字相同,但是参数列表不同
(10)正确答案: B C D