1.HashSet子类依靠(A)方法区分重复元素。
A)toString(),equals() B)clone(),equals() C)hashCode(),equals() D) getClass(),clone()
解析:HashSet内部使用Map保存数据,即将HashSet的数据作为Map的key值保存,这也是HashSet中元素不能重复的原因。而Map中保存key值前,会去判断当前Map中是否含有该key对象,内部是先通过key的hashCode,确定有相同的hashCode之后,再通过equals方法判断是否相同。
2.以下语句的执行结果是什么?A
1+”10”+3+”2”
A.”11032” B .“16” C.16 D.“32101”
解析:注意“+”的两边的类型
3.请问输出的结果是:A
1 2 3 4 5 6 7 8 9 10 11 12 |
|
A false . B true C报错 D以上选项都不正确
解析:== 表示是否指向的是同一个内存。
4.下面所示的java代码,运行时,会产生(D)类型的异常
1 2 |
|
A. ArithmeticException B.NullPointException C.IOException D.ArraylndexOutOfBoundsException
解析:定义的数组长度为10,角标即为0-9;访问数组角标10会出现数组角标越界异常。
5.为AB类的一个无形式参数无返回值的方法method书写方法头,可以用AB.method()方式调用,该方法头的形式为( A )。
A.static void method( ) B.public void method( ) C.final void method( ) D.abstract void method( )
解析:AB为一个类,可以不创建对象,直接使用AB.method ("类名.方法名"的方式),所以method是static修饰的静态方法;其次method无返回值,所以method是void类型的方法。
6.Java中只有整型才能使用的运算符为?C
A.* B./ C.% D.+
解析:ABD选项的操作符都可用于float和double,只有%取余操作,只适用于整型
7.明朝时期张居正改革的一条鞭法的主要思想是(C)
A面向过程 B万物皆数 C统一接口 D泛型编程
解析:一条鞭法的主要思想是“税以银征收”,取消了原本的田赋、力役和其他杂税,促进自然经济的瓦解和商品经济的发展。面向过程是指以过程为中心的编程思想,形成模块化特点。万物皆数是毕达哥拉斯学派的数学哲学理念(特指有理数),属于世界观的一种。泛型编程是一种语言机制,能够帮助实现一个通用的标准容器库。所谓通用的标准容器库,就是要能够做到,比如用一个List类存放所有可能类型的对象这样的事;泛型编程让你编写完全一般化并可重复使用的算法,其效率与针对某特定数据类型而设计的算法相同。泛型即是指具有在多种数据类型上皆可操作的含意,与模板有些相似。一条鞭法的主要思想并不是以征税过程为中心的思想,同时也不是在多种类型上的操作。
8.用户不能调用构造方法,只能通过new关键字自动调用。(B)
A.正确 B.错误
解析:在类内部可以用户可以使用关键字this.构造方法名()调用(参数决定调用的是本类对应的构造方法);在子类中用户可以通过关键字super.父类构造方法名()调用(参数决定调用的是父类对应的构造方法);反射机制对于任意一个类,都能够知道这个类的所有属性和方法,包括类的构造方法。
9.定义有StringBuffer s1=new StringBuffer(10);s1.append(“1234”)则s1.length()和s1.capacity()分别是多少?A
A.4 10 B.4 4 C.10 10 D.10 4
解析:length 返回当前长度;如果字符串长度没有初始化长度大,capacity返回初始化的长度;如果append后的字符串长度超过初始化长度,capacity返回增长后的长度。
10.在Java中,关于HashMap类的描述,以下错误的是(A)?
A.HashMap能够保证其中元素的顺序
B.HashMap允许将nulI用作值
C.HashMap允许将null用作键
D.HashMap使 用键/值得形式保存数据
解析:HashMap的底层是由数组加链表实现的,对于每一个key值,都需要计算哈希值,然后通过哈希值来确定顺序,并不是按照加入顺序来存放的,因此可以认为是无序的,但不管是有序还是无序,它都一个自己的顺序。故A错。最开始有Hashtable,Hashtable是不允许key和value的值为空的,但后来开发者认为有时候也会有key值为空的情况,因为可以允许null为空,通过查看HashMap的源代码就知道:if(key = null) {putForNullKey(value);};Map底层都是用key/value键值对的形式存放的。
11.下列哪些针对代码运行结果的描述是正确的?A
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
A.Car B.Vehicle C.Compiler error at line 3 D.Compiler error at line 5 E.Exception thrown at runtime
解析:首先final声明的方法是不能被覆盖的,但是这里并不错误,因为方法是private的,也就是子类没有继承父类的run方法,因此子类的run方法跟父类的run方法无关,并不是覆盖。new Car().run()也是调用子类的run方法。
12.以下代码的输出的正确结果是D
1 2 3 4 5 6 |
|
A.24 B.16 C.15 D.8
解析:length得到的是字符,不是字节。
13.以下程序的运行结果是:( C )
1 2 3 4 5 6 7 8 9 10 |
|
A编译失败
B发生运行时异常
C[606, 608, 610, 612, 629] [608, 610]
D[606, 608, 610, 612, 629] [608, 610,629]
14.如果一个list初始化为{5,3,1},执行以下代码后,其结果为(B)?
nums.add(6);
nums.add(0,4);
nums.remove(1);
A.[5,3, 1, 6] B.[4,3, 1, 6] C. [4,3, 6] D.[5,3,6]
解析:nums.add(6); //往后边加一个6,{5,3,1,6};nums.add(0,4);//往下标为0的数加一个4,{4,5,3,1,6};nums.remove(1); // 移除下标为1 的元素,{4,3,1,6}
15.如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是? (C )
A.void use() { ..}
B.protected void use() { ...
C.public void use() {…}
D.以上语句都可以用在类SmallCup中
解析:既然是实现接口,就要实现接口的所以方法,相当于重写方法,方法的重写需要满足:三同一大一小(方法名、返回值类型、形参相同;访问权限>=重写前;抛出异常<=重写前)
16.给出以下代码,请给出结果:(B)
1 2 3 4 5 6 7 8 9 10 |
|
A.运行时抛出异常
B.true
C.Fred
D.第三行编译错误
解析:创建了一个匿名内部类,并将所创建的匿名对象赋给 Object (多态:子类对象赋给超类引用)。同时,该匿名内部类重写了 Object 类的 equals 方法。在执行语句时,根据多态及覆盖原则,会调用匿名内部类重写后的 equals 方法。
17.表达式(short)10/10.2*2运算后结果是什么类型?C
A.short B.int C.double D.float
解析:要注意是(short)10/10.2*2,而不是(short) (10/10.2*2),前者只是把10强转为short,又由于式子中存在浮点数,所以会对结果值进行一个自动类型的提升,浮点数默认为double,所以答案是double;后者是把计算完之后值强转short。
18.下面有关servlet service描述错误的是?B
A.不管是post还是get方法提交过来的连接,都会在service中处理
B.doGet/doPost则是在javax.servlet.GenericServlet中实现的
C.service()是在javax.servlet. Servlet接口中定义的
D.service判断请求类型,决定是调用doGet还是doPost方法
解析:doGet/doPost 则是在 javax.servlet.http.HttpServlet 中实现的。
19.抽象类方法的访问权限默认都是public。( B )
A.正确 B.错误
20.下列在Java语言中关于数据类型和包装类的说法,正确的是(B)
A.基本(简单)数据类型是包装类的简写形式,可以用包装类替代基本(简单)数据类型
B.long和double都占了64位( 64bit)的存储空间。
C.默认的整数数据类型是int,默认的浮点数据类型是float。
D.和包装类-样,基本(简单) 数据类型声明的变量中也具有静态方法,用来完成进制转化等。
解析:A包装和基本类型不是同一个概念 C默认的浮点数据类型是double,如果要指明使用float,则需要在后面加f D基本数据类型是没有静态方法的,但是基本数据类型的包装类却有。
21.输出结果为:B
1 2 |
|
A.0 B.1 C.出现异常
解析:String获取长度用的是length()方法,而数组类型我们直接用属性length获取长度,所以String[]数组类型我们应该用length获取长度;总结来说,因为原字符串不包含分隔符,所以直接返回原字符串,分割出来只有一个空的字符串数组。
22.下面程序的运行结果(D)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
A.t2 B.t2=t3 C.不确定 D.t2>t3
解析:ArrayList内部是动态数组实现,在增加空间时会复制全部数据到新的容量大一些的数组中。而LinkedList内部为双向链表,可以按需分配空间,扩展容量简单,因此LinkedList用时少。
23.下列语句正确的是:D
A形式参数可被字段修饰符修饰
B形式参数不可以是对象
C形式参数为方法被调用时真正被传递的参数
D形式参数可被视为local variable
24.以下代码的输出结果是?C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
A静态块构造块构造块构造块
B构造块静态块构造块构造块
C构造块构造块静态块构造块
D构造块构造块构造块静态块
解析:开始时JVM加载B.class,对所有的静态成员进行声明,t1 t2被初始化为默认值,为null,又因为t1 t2需要被显式初始化,所以对t1进行显式初始化,初始化代码块→构造函数(没有就是调用默认的构造函数),咦!静态代码块咋不初始化?因为在开始时已经对static部分进行了初始化,虽然只对static变量进行了初始化,但在初始化t1时也不会再执行static块了,因为JVM认为这是第二次加载类B了,所以static会在t1初始化时被忽略掉,所以直接初始化非static部分,也就是构造块部分(输出''构造块'')接着构造函数(无输出)。接着对t2进行初始化过程同t1相同(输出'构造块'),此时就对所有的static变量都完成了初始化,接着就执行static块部分(输出'静态块'),接着执行,main方法,同样也,new了对象,调用构造函数输出('构造块')。
25.在java语言中,如果你编写一个多线程序,可以使用的方法是(AB)
A扩展类Thread
B实现Runnable接口
C扩展类Runnable
D实现接口Thread
解析:继承Thread类(Override它的run方法);实现Runnable接口(实现run方法);使用ExecutorService、Callable、Future实现有返回结果的多线程。
26.已知 boolean result = false,则下面哪个选项是合法的:BD
A.result=1 B.result=true; C.if(result!=0) {//so something..} D.if(result) {//do something...}
解析:boolean类型只有两个直接量值:true和false. 除成员变量会有默认初始值外,其他变量必须在第一次使用之前初始化。
27.下面有关java的instanceof、?、&、&&说法正确的有?ABCD
A.instanceof可用来判断某个实例变量是否属于某种类的类型。
B."?:"三目运算符
C.&在逻辑运算中是非短路逻辑与,在位运算中是按位与.
D.&&逻辑运算:逻辑与
解析:instanceof 用来判断某个实例变量是否属于某种类的类型。这句话不准确,instanceof可以用来判断某个实例变量是否属于某种类的类型,但它的功能不局限于此,比如还可以判断某个类是否属于某个类的子类的类型。
28.如下哪些是 java 中有效的关键字(AD)
A.native B.NULL C.false D.this
解析:true、false、null都不是关键字;goto、const、是保留的关键字。
29.有关hashMap跟hashTable的区别,说法正确的是?ABCD
A.HashMap和Hashtable都实现了Map接口
B.HashMap是非synchronized,而Hashtable是synchronized
C.HashTable使用Enumeration,HashMap使用Iterator
D.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
30.下列哪些方法是针对循环优化进行的 ABD
A强度削弱
B删除归纳变量
C删除多余运算.
D代码外提
解析:常见的代码优化技术有:复写传播,删除死代码, 强度削弱,归纳变量删除。
31.下面不是类及类成员的访问控制符的是( C )。(不考虑内部类的情况)
A.public B.private C.static D.protected
解析:类访问控制符只有三种:public ,private, protected
static和访问控制无关
32.下列类在多重catch中同时出现时,哪一个异常类应最后一个列出(C)
A.ArithmeticException
B.NumberFormatException
C.Exception
D.ArrayIndexOutOfBoundException
解析:这是多重catch块的顺序问题,由于异常处理系统就近寻找匹配异常处理程序,应先子类后父类。
33.以下有关构造方法的说法,正确的是:(A)
A.一个类的构造方法可以有多个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其他方法调用
D.构造方法可以和类同名,也可以和类名不同
解析:A一个类有多个构造方法便是重载的表现。重载参数列表不同。所以A是正确的。B构造方法是在对象创建时就被调用,用于初始化。C构造方法是给与之对应的对象进行初始化,初始化的动作只执行一次。D构造方法必须与所在类的名称同名。
34.局部变量能否和成员变量重名?A
A.可以,局部变量可以与成员变量重名,这时可用“this”来指向成员变量
B.可以,这时可用“local”关键字来指向局部变量
C.不能,局部变量不能与成员变量重名
D.不能,在一个类中不能有重名变量,不管是成员变量还是函数中的局部变量
解析:局部变量可以和成员变量重名,不加“this”修饰时,优先使用最近的变量。
35.后端获取数据,向前端输出过程中,以下描述正确的是D
A.对于前端过滤过的参数,属于可信数据,可以直接输出到前端页面
B.对于从数据库获得的数据,属于可信数据,可以直接输出到前端页面
C.对于从用户上传的Excel等文件解析出的数据,属于可信数据,可以直接输出到前端页面
D.其它选项都不属于可信数据,输出前应该采用信息安全部发布的XSSFilter做进行相应编码
解析:后端获取数据,向前端输出的过程中,输出前应该采用信息安全部发布的XSSFilter进行相应编码。
36.如下Java语句 double x=2.0; int y=4; x/=++y; 执行后,x的值是(C)
A.0.5 B.2.5 C.0.4 D.2.0
解析:++y 是先加再运行
37.以下代码执行的结果显示是多少(B)
public class Demo{
public static void main(String[] args){
System.out.print(getNumber(0));
System.out.print(getNumber(1));
System.out.print(getNumber(2));
System.out.print(getNumber(4));
}
public static int getNumber(int num){
try{
int result = 2 / num;
return result;
}catch (Exception exception){
return 0;
}finally{
if(num == 0){
return -1;
}
if(num == 1){
return 1;
}
}
}
}
A.0110
B.-1110
C.0211
D.-1211
解析:finally一定会在return之前执行,但是如果finally使用了return或者throw语句,将会使trycatch中的return或者throw失效
38.Java语言与其它语言相比,独有的特点是( C )
A.面向对象
B.多线程
C.平台无关
D.网络编程
解析:跨平台
39.以下程序的执行结果是:A
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
A.ABDCBDCB
B.ABCDABCD
C.编译时出错
D.运行时抛出异常
40.类A1和类A2在同一包中,类A2有个protected的方法testA2,类A1不是类A2的子类(或子类的子类),类A1可以访问类A2的方法testA2。( A )
A.正确 B.错误
解析:public:可以被所有其他类所访问;private:只能被自己访问和修改;protected:自身、子类及同一个包中类可以访问;default:同一包中的类可以访问,声明时没有加修饰符,认为是friendly。
41.下面代码的执行结果是 :A
class Chinese{
private static Chinese objref =new Chinese();
private Chinese(){}
public static Chinese getInstance() { return objref; }
}
public class TestChinese {
public static void main(String [] args) {
Chinese obj1 = Chinese.getInstance();
Chinese obj2 = Chinese.getInstance();
System.out.println(obj1 == obj2);
}
}
A.true
B.false
C.TRUE
D.FALSE
解析:单例模式: 第一步,不让外部调用创建对象,所以把构造器私有化,用private修饰。 第二步,怎么让外部获取本类的实例对象?通过本类提供一个方法,供外部调用获取实例。由于没有对象调用,所以此方法为类方法,用static修饰。 第三步,通过方法返回实例对象,由于类方法(静态方法)只能调用静态方法,所以存放该实例的变量改为类变量,用static修饰。 最后,类变量,类方法是在类加载时初始化的,只加载一次。所以由于外部不能创建对象,而且本来实例只在类加载时创建一次。
42.以下哪项是错误的( A)。
A.JPanel中不能包含按钮。
B.Frame 中可以设置Panel。
C.Applet 中可以包含按钮。
D.Dialog 中不可以设置菜单条。
解析:JPanel 是 Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,是一种轻量级容器,可以加入到JFrame窗体中。JPanel默认的布局管理器是FlowLayout,其自身可以嵌套组合,在不同子容器中可包含其他组件(component),如JButton、JTextArea、JTextField 等,功能是对对窗体上的这些控件进行组合,A是错误的。
43.下面哪种情况会导致持久区jvm堆内存溢出?C
A.循环上万次的字符串处理
B.在一段代码内申请上百M甚至上G的内存
C.使用CGLib技术直接操作字节码运行,生成大量的动态类
D.不断创建对象
44.面向对象方法的多态性是指(C)
A.一个类可以派生出多个特殊类
B.一个对象在不同的运行环境中可以有不同的变体
C.针对一消息,不同的对象可以以适合自身的方式加以响应
D.一个对象可以是由多个其他对象组合而成的
解析:对于同一个父类方法,不同的子类会有不同的实现方式
45.What results from the following code fragment? C
1 2 3 |
|
A.Compilation error because”~”doesn’t operate on integers
B.-5
C.-6
D.15
解析:公式-n=~n+1可推出~n=-n-1,所以~10=-11再加5结果为-6
46.下面有关struts1和struts2的区别,描述错误的是?B
A.Struts1要求Action类继承一个抽象基类。Struts 2 Action类可以实现一个Action接口
B.Struts1 Action对象为每一个请求产生一个实例。Struts2 Action是单例模式并且必须是线程安全的
C.Struts1 Action 依赖于Servlet API,Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试
D.Struts1 整合了JSTL,Struts2可以使用JSTL,但是也支持OGNL
解析:从action类上分析:
1.Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。
2. Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。
从Servlet 依赖分析:
3. Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时HttpServletRequest 和 HttpServletResponse 被传递给execute方法。
4. Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2 Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest 和 HttpServletResponse的必要性。
从action线程模式分析:
5. Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。
6. Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)
47.SSH MVC开发模式说法正确的是( B)
A.Struts进行业务流转
B.Hibernate进行数据库操作的封装
C.Spring进行流程控制
D.其他选项均不正确
解析:Struts 主要控制逻辑关系的处理 ;Spring 是一个轻量级的控制反转 (IoC) 和面向切面 (AOP) 的容器框架;Hibernate 是数据持久化层 , 是一种新的对象、关系的映射工具 , 提供了从 Java 类到数据表的映射,也提供了数据查询和恢复等机制
48.下面哪些接口直接继承自Collection接口(AC)
A.List
B.Map
C.Set
D.Iterator
49.不能用来修饰interface的有( ACD)(仅限外部接口)
A.private
B.public
C.protected
D.static
50.以下哪些类是线程安全的(ADE)
A.Vector
B.HashMap
C.ArrayList
D.StringBuffer
E.Properties
解析:Vector相当于一个线程安全的List;HashMap是非线程安全的,其对应的线程安全类是HashTable;Arraylist是非线程安全的,其对应的线程安全类是Vector;StringBuffer是线程安全的,相当于一个线程安全的StringBuilder;Properties实现了Map接口,是线程安全的。
51.final方法等同于private方法。( B )
A.正确 B.错误
private方法只可以在类的内部使用,在类外根本访问不到, 而final方法可以在类外访问,但是不可以重写该方法,就是说可以使用该方法的功能但是不可以改变其功能
52.下列叙述错误的是(C )
A.java程序的输入输出功能是通过流来实现的
B.java中的流按照处理单位可分成两种:字节流和字符流
C.InputStream是一个基本的输出流类。
D.通过调用相应的close()方法关闭输入输出流
"基本的",其实就是将流分为节点流和处理流,而“基本的”是表示节点流所以C选项可以看成:InputStream是属于节点输出流;
所以我们就要判断InputStream是节点流还是处理流,是输出流还是输入流
53.在Java中,main()方法的返回值的类型是:C
A.public
B.static
C.void
D.String
54.有以下程序片段,下列哪个选项不能插入到第一行 ( A)。
1)
2)public class A{
3)//do sth
4) }
A.public class MainClass{ }
B.package mine;
C.class ANotherClass{ }
D.import java.util.*;
Java一个源程序只能有一个public类存在,且类名与文件名相同。Java程序是从main方法开始执行的,public为类加载器提供入口,然后找到public类中的main方法开始执行。如果存在多个public类,程序将不知道该从哪里执行。内部类可以是public的,因为内部类是作为外部类的成员存在的。
55.What is the result?C
1 2 3 4 5 6 7 8 9 10 |
|
A.The output is “Equal”
B.The output in “Not Equal”
C.An error at line 5 causes compilation to fall.
D.The program executes but does not print a message.
if()语句括号中为比较表达式,返回值要么是true,要么是false,if(x=y)是将y赋值给x,但是数据类型是int类型的,编译不能通过
56.事务隔离级别是由谁实现的?C
A.Java应用程序
B.Hibernate
C.数据库系统
D.JDBC驱动程序
我们写java程序的时候只是设定事物的隔离级别,而不是去实现它;Hibernate是一个java的数据持久化框架,方便数据库的访问;事物隔离级别由数据库系统实现,是数据库系统本身的一个功能;JDBC是java database connector,也就是java访问数据库的驱动
57.在java的一个异常处理中,可以包含多个的语句块是 ( D)。
A.try
B.finally
C.throws
D.catch
58.关于继承和实现说法正确的 是 ? ( A )
A.类可以实现多个接口,接口可以继承(或扩展)多个接口
B.类可以实现多个接口,接口不能继承(或扩展)多个接口
C.类和接口都可以实现多个接口
D.类和接口都不可以实现多个接口
类与类之间的关系为继承,只能单继承,但可以多层继承。 类与接口之间的关系为实现,既可以单实现,也可以多实现。 接口与接口之间的关系为继承,既可以单继承,也可以多继承。
59.JVM内存不包含如下哪个部分( D )
A.Stacks
B.PC寄存器
C.Heap
D.Heap Frame
java好像只有栈帧 没有堆帧 pc寄存器 就是 程序计数器;程序计数器是一个以线程私有的一块较小的内存空间,用于记录所属线程所执行的字节码的行号指示器;字节码解释器工作时,通过改变程序计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳准、异常处理、线程恢复等基础功能都需要依赖程序计数器来完成
60.关于下面的程序,说法正确的是:D
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
A.第5行和12行不能编译,因为该方法没有方法名和返回值。
B.第12 行不能编译,因为只能有一个static初始化块。
C.代码编译并执行,输出结果x = 10.
D.代码编译并执行,输出结果 x = 5.
E.代码编译并执行,输出结果 x = 15.
61.下列语句中,正确的是B
A.float x=0.0
B.boolean b=3>5
C.、char c="A"
D.double =3.14
62.下面字段声明中哪一个在interface主体内是合法的? (B)
A.private final static int answer = 42;
B.public static int answer = 42;
C.final static answer = 42;
D.int answer;
在接口中,属性都是默认public static final修饰的,所以: A(错误):不能用private修饰; B(正确):在接口中,属性默认public static final,这三个关键字可以省略;
C(错误):没写属性的类型; D(错误):final修饰的属性必须赋值;
63.(D)运算符把其操作数中所有值为0和所有值为1的位分别在结果的相应中设置1和0
A.&
B.|
C.!
D.~
64.下面程序段的时间复杂度是(B)
1 2 3 4 5 |
|
A.O(n)
B.O(n^1/2)
C.O(n*i)
D.O(n+i)
加是开根号,乘是取对数
65.下面哪个方法与Applet的显示无关?A
A.draw
B.paint
C.repaint
D.update
66.以下哪几种是java的基本数据类型。BC
A.String
B.int
C.boolean
D.Double
基本数据类型:byte,short,int,long,double,float,boolean,char
67.jdk1.8中,下面有关java 抽象类和接口的区别,说法错误的是?BD
A.抽象类可以有构造方法,接口中不能有构造方法
B.抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法
C.一个类可以实现多个接口,但只能继承一个抽象类
D.接口中可以有普通成员变量,抽象类中没有普通成员变量
接口可以有default、static方法
68.下列哪些操作会使线程释放锁资源?BC
A.sleep()
B.wait()
C.join()
D.yield()
所谓的释放锁资源实际是通知对象内置的monitor对象进行释放,而只有所有对象都有内置的monitor对象才能实现任何对象的锁资源都可以释放。又因为所有类都继承自Object,所以wait()就成了Object方法,也就是通过wait()来通知对象内置的monitor对象释放,而且事实上因为这涉及对硬件底层的操作,所以wait()方法是native方法,底层是用C写的。
其他都是Thread所有,所以其他3个是没有资格释放资源的,而join()有资格释放资源其实是通过调用wait()来实现的
69.What is Static Method in Java(ABC)
A.t is a method which belongs to the class and not to the object(instance)
B.A static method can access only static data. It can not access non-static data (instance variables)
C.A static method can call only other static methods and can not call a non-static method from it.
D.A static method can not be accessed directly by the class name and doesn’t need any object
不管实例成员还是实例方法,都可以在静态方法里实例化一个对象再去调用
70.下面关于面向对象的一些理解哪些是错误的( C )
A.面向对象的最重要的特性是支持继承、封装和多态
B.系统设计应该遵循开闭原则,系统应该稳定不不可修改,但应支持通过继承、组合等方式进行扩展
C.函数式的语言必然是面向对象的语言
D.面向对象设计时,每个类的职责应该单一,不要再一个类中引入过多的接口
E.过程式语言和面向对象的语言各有其优势,过程式语言更加灵活,面向对象语言更加强调抽象和封装
F.Java和C++都是静态类型的面向对象编程语言