天梯180417

天梯180417

1. 抽象类方法的访问权限默认都是public。(  )

A. 正确

B. 错误

2. 在一个基于分布式的游戏服务器系统中,不同的服务器之间,哪种通信方式是不可行的()?

A. 管道

B. 消息队列

C. 高速缓存数据库

D. 套接字

3. 下面哪种情况会导致持久区jvm堆内存溢出?

A. 循环上万次的字符串处理

B. 在一段代码内申请上百M甚至上G的内存

C. 使用CGLib技术直接操作字节码运行,生成大量的动态类

D. 不断创建对象

4. (不定项)以下为 java 语法保留不能作为类名和方法名使用的是

A. default

B. int

C. implements

D. throws

5. 经过强制类型转换以后,变量ab的值分别为多少?

short a =128

byte b =(byte) a

 

A. 128  127

B. 128 - 128

C. 128  128

D. 编译错误

 

 

 

 

 

 

 

//----------------------分割线--------------------------------

B

A

C

ABCD  

B

 

 

答案解析:

1.

关于抽象类

JDK 1.8以前,抽象类的方法默认访问权限为protected

JDK 1.8时,抽象类的方法默认访问权限变为default

 

关于接口

JDK 1.8以前,接口中的方法必须是public

JDK 1.8时,接口中的方法可以是public的,也可以是default

JDK 1.9时,接口中的方法可以是private

2.

管道通信和通信中的半双工信道的进程通信机制相似,一个管道虽然可以实现双向的数据传输,但是同一时刻最多只能存在一个方向的传输,不能两个方向同时进行。

3.

简单的来说 java的堆内存分为两块:permantspace(持久带) 和 heap space

持久带中主要存放用于存放静态类型数据,如 Java Class, Method 等, 与垃圾收集器要收集的Java对象关系不大。

heapspace分为年轻带和年老带

年轻代的垃圾回收叫 Young GC, 年老代的垃圾回收叫 Full GC

在年轻代中经历了N次(可配置)垃圾回收后仍然存活的对象,就会被复制到年老代中。因此,可以认为年老代中存放的都是一些生命周期较长的对象

年老代溢出原因有  循环上万次的字符串处理、创建上千万个对象、在一段代码内申请上百M甚至上G的内存,既A B D选项

持久代溢出原因  动态加载了大量Java类而导致溢出

4. Java8关键字default也被使用了,所以正确答案应该全选

5. 1000 0000 是补码,大小为-128

阅读更多
文章标签: Java笔试题
个人分类: gc天梯赛
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭