java试题复盘——11月25日
上:
11、下列表述错误的是?(D)
A、int是基本类型,直接存数值,Integer是对象,用一个引用指向这个对象。
B、在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
C、封装的主要作用在于对外隐藏内部实现细节,可以增强程序的安全性
D、final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性。
解析:
16、默认RMI采用的是什么通信协议? C
A、HTTP
B、UDP/IP
C、TCP/IP
D、Multicast
解析:
Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制。使用这种机制,某一台计算机上的对象可以调用另外一台计算机上的对象来获取远程数据。RMI是Enterprise
JavaBeans的支柱,是建立分布式Java应用程序的方便途径。在过去,TCP/IP套接字通讯是远程通讯的主要手段,但此开发方式没有使用面向对象的方式实现开发,在开发一个如此的通讯机制时往往令程序员感觉到乏味,对此RPC(Remote
Procedure
Call)应运而生,它使程序员更容易地调用远程程序,但在面对复杂的信息传讯时,RPC依然未能很好的支持,而且RPC未能做到面向对象调用的开发模式。针对RPC服务遗留的问题,RMI出现在世人面前,它被设计成一种面向对象的通讯方式,允许程序员使用远程对象来实现通信,并且支持多线程的服务,这是一次远程通讯的革命,为远程通信开辟新的里程碑。
17、Given:
1 2 3 4 5 6 7 8 9 |
//point X public class Foo { public static void PrintWriter out new out.printIn(“Hello”); } } |
Which statement at PointX on line I allows this code
to compile and run? A
A、import
java.io.PrintWriter;
B、include
java.io.PrintWriter;
C、import
java.io.OutputStreamWriter;
D、include
java.io.OutputStreamWriter;
E、no statement is
needed.
18、 对于abstract声明的类,下面说法正确的是 E
A、可以实例化
B、不可以被继承
C、子类为abstract
D、只能被继承
E、可以被抽象类继承
解析:
解析:
服务器端,首先是服务器初始化Socket,然后是与端口进行绑定(blind()),端口创建ServerSocket进行监听(listen()),然后调用阻塞(accept()),等待客户端连接。与客户端发生连接后,会进行相关的读写操作(read(),write()),最后调用close()关闭连接。
21、类Parent和Child定义如下:
1 .class Parent{ 2. 3 .} 4 .class Child extends 5 . 6 .} |
将以下哪种方法插入行5是不合法的。( A )
A、float
aFun(float a, float
b){ }
B、public int aFun(int
a, int b) { }
C、public float
aFun(float p, float q){ }
D、private int
aFun(int a, int b){ }
解析:
重写原则(两同两小一大):
1、两同:方法名相同,形参列表相同。
2、两小:子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常更小或相等。
3、一大:子类方法的访问权限应比父类方法的访问权限更大或相等。
4、尤其指出:覆盖方法和被覆盖方法要么都是类方法,要么都是实例方法,不能一个是类方法,一个是实例方法。
A选项是重写,但是默认访问修饰符比父类小,插入第五行编辑器会报错。(默认包访问权限 > public)
B、D不是重写。因为形参列表和返回值类型不同,不满足“两同两小”。所以写在第五行以普通方法对待,插入第五行没有错误。
C选项满足重写的各项条件,是正确的重写,所以插入第五行没有错误。
22、关于匿名内部类叙述正确的是? (B)
A、匿名内部类可以继承一个基类,不可以实现一个接口
B、匿名内部类不可以定义构造器
C、匿名内部类不能用于形参
D、以上说法都不正确
解析:
- 使用匿名内部类时,必须继承一个类或实现一个接口
- 匿名内部类由于没有名字,因此不能定义构造函数
- 匿名内部类中不能含有静态成员变量和静态方法
25、下列关于JAVA多线程的叙述正确的是(BC)(多选)
A、 调用start()方法和run()都可以启动一个线程
B、 CyclicBarrier和CountDownLatch都可以让一组线程等待其他线程
C、 Callable类的call()方法可以返回值和抛出异常
D、 新建的线程调用start()方法就能立即进行运行状态
解析:
A. start()方法来启动线程,真正实现了多线程运行,调用了run()方法;run()方法当作普通方法的方式调用。
27、
关于下面一段代码,以下说法正确的是: (ACD)(多选)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Test { private synchronized void a() { } private void b() { synchronized (this) { } } private synchronized static void c() { } private void d() { synchronized (Test.class) { } } } |
A、 同一个对象,分别调用方法a和b,锁住的是同一个对象
B、 同一个对象,分别调用方法a和c,锁住的是同一个对象
C、 同一个对象,分别调用方法b和c,锁住的不是同一个对象
D、 同一个对象,分别调用方法a、b、c,锁住的不是同一个对象
解析:同步普通方法锁的是this也就是当前对象,同步静态方法锁的是类对象,也就是Class对象
29、局部内部类可以用哪些修饰符修饰?(CD)(多选)
A、 public
B、 private
C、 abstract
D、 final
34、ArrayList和LinkList的描述,下面说法错误的是? D
A、 LinkedeList和ArrayList都实现了List接口
B、 ArrayList是可改变大小的数组,而LinkedList是双向链接串列
C、 LinkedList不支持高效的随机元素访问
D、 在LinkedList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动;而在ArrayList的中间插入或删除一个元素的开销是固定的
解析:
D的说法反了...
Arraylist的内存结构是数组,当超出数组大小时创建一个新的数组,吧原数组中元素拷贝过去。其本质是顺序存储的线性表,插入和删除操作会引发后续元素移动,效率低,但是随机访问效率高
37、下面程序的输出是:(D)
1 2 3 4 5 |
String x="fmn"; x.toUpperCase(); String y=x.replace('f','F'); y=y+"wxy"; System.out.println(y); |
A、 FmNwxy
B、 fmnwxy
C、 wxyfmn
D、 Fmnwxy
解析:
String x="fmn"; “fmn”是在常量池里的不可变对象。
39、以下程序的运行结果是:( C )
1 2 3 4 5 6 7 8 9 10 |
TreeSet<Integer> set = new TreeSet<Integer>(); TreeSet<Integer> subSet = new TreeSet<Integer>(); for(int i=606;i<613;i++){ if(i%2==0){ set.add(i); } } subSet = (TreeSet)set.subSet(608,true,611,true); set.add(629); System.out.println(set+" "+subSet); |
A、 编译失败
B、 发生运行时异常
C、 [606, 608, 610, 612, 629] [608, 610]
D、 [606, 608, 610, 612, 629] [608, 610,629]
解析:
subset(form,true,to,true)是Treeset的非静态方法,该方法返回从form元素到to元素的一个set集合,两个boolean类型是确认是否包含边境值用的。
41、Java程序中的类名称必须与存放该类的文件名相同。 B
A、 对
B、 错
解析:
43、以下代码执行的结果显示是多少(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失效
45、于访问权限,说法正确的是? (A )
A、 类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A可以访问类B的方法testB
B、 类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A不可以访问类B的方法testB
C、 访问权限大小范围:public > 包权限 > protected > private
D、 访问权限大小范围:public > 包权限 > private > protected
46、在 Java 中,属于整数类型变量的是(C)
A、 single
B、 double
C、 byte
D、 char
解析:
Java中的四类八种基本数据类型
第二类:浮点型 float double
第三类:逻辑型 boolean(它只有两个值可取true false)
第四类:字符型 char
48、
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
解析:
下:
17 关于ASCII码和ANSI码,以下说法不正确的是(D)?
A. 标准ASCII只使用7个bit
B. 在简体中文的Windows系统中,ANSI就是GB2312
C. ASCII码是ANSI码的子集
D. ASCII码都是可打印字符
解析:
22 下列关于容器集合类的说法正确的是? C
A. LinkedList继承自List
B. AbstractSet继承自Set
C. HashSet继承自AbstractSet
D. WeakMap继承自HashMap
解析:
这道题其实只要把java集合框架给看了,就一目了然了。
23 关于HashMap和Hashtable正确的说法有(AC)
A. 都实现了Map接口
B. Hashtable类不是同步的,而HashMap类是同步的
C. Hashtable不允许null键或值
D. HashMap不允许null或值
解析:
1、继承不同。public class Hashtable extends Dictionary implements Map
public class HashMap extends AbstractMap implements Map
2、Hashtable 中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。在多线程并发的环境下,可以直接使用Hashtable,但是要使用HashMap的话就要自己增加同步处理了。
3、Hashtable中,key和value都不允许出现null值。
在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示 HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键, 而应该用containsKey()方法来判断。
4、两个遍历方式的内部实现上不同。
Hashtable、HashMap都使用了 Iterator。而由于历史原因,Hashtable还使用了Enumeration的方式 。
5、哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。
6、Hashtable和HashMap它们两个内部实现方式的数组的初始大小和扩容的方式。HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数
24 关于JSP生命周期的叙述,下列哪些为真? AC
A. JSP会先解释成Servlet源文件,然后编译成Servlet类文件
B. 每当用户端运行JSP时,jsp init()方法都会运行一次
C. 每当用户端运行JSP时,jsp service()方法都会运行一次
D. 每当用户端运行JSP时,jsp destroy()方法都会运行一次
解析:
init方法:负责初始化Servlet对象。在Servlet的整个生命周期类,init()方法只被调用一次。
destroy方法:销毁Servlet对象,释放占用的资源,Servlet要被卸载时调用
25 下面有关servlet的层级结构和常用的类,说法正确的有? ABCD
A. GenericServlet类:抽象类,定义一个通用的、独立于底层协议的Servlet。
B. 大多数Servlet通过从GenericServlet或HttpServlet类进行扩展来实现
C. ServletConfig接口定义了在Servlet初始化的过程中由Servlet容器传递给Servlet得配置信息对象
D. HttpServletRequest接口扩展ServletRequest接口,为HTTP Servlet提供HTTP请求信息
26 下面哪些写法能在 java8 中编译执行(AD)
A. dir.listFiles((File f)->f.getName().endsWith(“.Java”));
B. dir.listFiles((File f)=>f.getName().endsWith(“.Java”));
C. dir.listFiles((_.getName().endsWith(“.Java”)));
D. dir.listFiles( f->f.getName().endsWith(“.Java”));
解析:
Lanbda表达式的主要作用就是代替匿名内部类的繁琐语法, 它由三部分组成:
27 jvm中垃圾回收分为scanvenge gc和full GC,其中full GC触发的条件可能有哪些 ? CDE
A. 栈空间满
B. 年轻代空间满
C. 老年代满
D. 持久代满
E. System.gc()
解析:
33 为了使包ch4在当前程序中可见,可以使用的语句是(A)
A. import ch4.*;
B. package ch4.*;
C. ch4 import;
D. ch4 package;
解析:
package ch4;
将你这个类放在了/ch4这个文件夹下面
要使用的话
import ch4.*;导入这个类
36 以下不是修饰符final的作用的是( C)。
A. 修饰常量
B. 修饰不可被继承的类
C. 修饰不可变类
D. 修饰不可覆盖的方法
解析:
final的作用:
37 如果一个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]
解析:
初始化为{5,3,1}
42 下列哪些功能可以通过Cookie来实现?( ABC)
A. 记录访问者的信息
B. 在页面之间传递信息
C. 自动识别用户
D. 对数据库进行操作
解析:
A 项,访问者的信息一般都可以处理成 kv 键值对的形式,故可以保存在 Cookie 中,正确。
48 下列代码,页面打开后能够弹出alert(1)的是? ABC
A. <iframe src=”javascript: alert(1)”></iframe>
B. <img src=”” onerror=”alert(1)”/>
C. IE下<s style=”top:expression(alert(1))”></s>
D. <div onclick=”alert(1)”></div>
解析:
A 加载页面的时候触发;
50 下面这个JS程序的输出是什么:A
A. 0 1 0
B. 0 1 2
C. 0 0 0
D. 0 0 2
解析:
这道题考察闭包和引用类型对象的知识点:
1.一般来说函数执行完后它的局部变量就会随着函数调用结束被销毁,但是此题foo函数返回了一个匿名函数的引用(即一个闭包),它可以访问到foo()被调用产生的环境,而局部变量i一直处在这个环境中,只要一个环境有可能被访问到,它就不会被销毁,所以说闭包有延续变量作用域的功能。这就好理解为什么:
1
2
|
f1(); //0 f1(); //1 |
2.我一开始认为f1和f2都=foo()是都指向了同一个function引用类型,所以顺理成章就会答错认为:
1
|
f2(); //2 |
但其实foo()返回的是一个匿名函数,所以f1,f2相当于指向了两个不同的函数对象,所以结果也就顺理成章的变为:
1
|
f2(); //0 |
java试题复盘——11月25日的更多相关文章
- java试题复盘——11月13日
上: 10. AccessViolationException异常触发后,下列程序的输出结果为( A ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 AccessViol ...
- java试题复盘——9月26日
5.在 JAVA 编程中, Java 编译器会将 Java 程序转换为(A) A. 字节码 B. 可执行代码 C. 机器代码 D. 以上都不对 解析: 编译器将Java源代码编译成字节码cla ...
- java试题复盘——9月8日
上: 1.可将语句块或方法设为同步使用的语句是(A) A synchronized 用于方法或者代码块前,使此方法或者代码变成同步的 B static ...
- 2016年11月25日 星期五 --出埃及记 Exodus 20:16
2016年11月25日 星期五 --出埃及记 Exodus 20:16 "You shall not give false testimony against your neighbor.不 ...
- 'Rem EverythingAutoSetup.VBS 安装Everything的VBS脚本 2019年11月25日写
'Rem EverythingAutoSetup.VBS 安装Everything的VBS脚本 2019年11月25日写 'Rem Everything是voidtools开发的一款本地NTFS文件和 ...
- Java语言学习day19--7月25日
今日内容介绍1.继承2.抽象类3.综合案例---员工类系列定义 ###01继承的概述 *A:继承的概念 *a:继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系 *b:在Jav ...
- 2018年11月25日ICPC焦作站参赛总结
可能就这么退役了吧. 对这次ICPC还是比较有信心的,毕竟心态都放平和了. 路途很波折,热身赛还是赶上了. 等到了正赛的时候,开场看出了A题的签到,签到肯定是我来签的,11分钟签完了这道题之后,开始看 ...
- Week12(11月25日)
Part I:提问 =========================== 1.如何删除一条记录? Part II:理论学习 =========================== 到目前为止,我们考 ...
- 2016年11月9日 星期三 --出埃及记 Exodus 19:25
2016年11月9日 星期三 --出埃及记 Exodus 19:25 So Moses went down to the people and told them.于是摩西下到百姓那里告诉他们.
随机推荐
- params关键字应用
params 是C#中的可变参数, params主要的用处是在给函数传参数的时候用,就是当函数的参数不固定的时候. 关于参数数组,需掌握以下几点. (1)在方法声明中的 params 关键字之后不允 ...
- 关于安装Chrome插件elasticsearch-head
因为Chrome商店不能使用,安装插件很麻烦. 可以在github上下载elasticsearch-Head插件:https://github.com/mobz/elasticsearch-head/ ...
- solr-jd
springMVC.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...
- js之向div contenteditable光标位置添加字符
js之向div contenteditable光标位置添加字符 原理: 在HTML里面,光标是一个对象,光标对象是只有当你选中某个元素的时候才会出现的. 当我们去点击一个输入框的时候,实际上它会产生 ...
- epoll、mysql概念及简单操作
epoll 程序阻塞的过程 假设我们目前运行了三个进程A B C ,如果他们都在处于运行态,那就会被加到一个运行队列中 进程A正在运行socket程序 在linux中有句话,万物皆文件,socket对 ...
- 第一章 Django之学习Django所需知识(3)
所需编程知识 本书读者需要理解基本的面向过程和面向对象编程:流程控制(if, while 和 for),数据结构(列表,哈希表/字典),变量,类和对象. Web 开发经验,正如你所想的,也是非常有帮助 ...
- spring-boot-actuator 常用配置
management: endpoints: web: base-path: "/" exposure: include: "*" endpoint: heal ...
- Java学习第二天之Java程序的基本规则
一.Java程序的组织形式 Java程序是一种纯粹的面向对象的程序设计语言,因此Java程序必须以类(即class)的形式存在,类(class)是Java程序的最小程序单位.Java程序不允许可执行性 ...
- 由java派生出来的证书错误
未安装请求对应接口证书时的异常:> javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: ...
- idou老师教你学Istio :5分钟简析Istio异常检测
异常检测 异常检测和踢出异常主机是一个动态检查上游主机是否正常工作,对不健康主机进行移除的过程.异常检测是一种被动健康检查,根据返回状态码来判断是否满足移除条件,最后将主机移除,首先我们来了解下驱逐算 ...