1. 下面哪种情况会导致持久区jvm堆内存溢出?(C)
A. 循环上万次的字符串处理
B. 在一段代码内申请上百M甚至上G的内存
C. 使用CGLib技术直接操作字节码运行,生成大量的动态类
D. 不断创建对象
解析:
简单的来说 java的堆内存分为两块:permantspace(持久带) 和 heap space。
持久带中主要存放用于存放静态类型数据,如 Java Class, Method 等, 与垃圾收集器要收集的Java对象关系不大。
而heapspace分为年轻带和年老带
年轻代的垃圾回收叫 Young GC, 年老代的垃圾回收叫 Full GC。
在年轻代中经历了N次(可配置)垃圾回收后仍然存活的对象,就会被复制到年老代中。因此,可以认为年老代中存放的都是一些生命周期较长的对象
年老代溢出原因有 循环上万次的字符串处理、创建上千万个对象、在一段代码内申请上百M甚至上G的内存,既A B D选项
持久代溢出原因 动态加载了大量Java类而导致溢出
2. 已知表达式int m[]={0,1,2,3,4,5,6};下面哪个表达式的值与数组下标量最大值相等?(B)
A. m. length()
B. m. length-1
C. m. length()+1
D. m. length+1
解析:
数组有.length方法,String类型是.length()方法,数组下标从0开始。
3. 下列关于管道(Pipe)通信的叙述中,正确的是(A)
A. 进程对管道进行读操作和写操作都可能被阻塞
B. 一个管道只能有一个进程或一个写进程对其操作
C. 一个管道可实现双向数据传输
D. 管道的容量仅受磁盘容量大小限制
解析:
A正确,因为管道为空,读操作会被阻塞;管道满了,写操作会被阻塞
B.可以有多个进程对其读;也可以有多个进程写,只不过不能同时写。并且题目没有说“同时”,B不对
C.匿名管道只能单向;命名管道可以双向;所以C过于绝对
D.管道是内存中的,所以D不对
4. 下面叙述那个是正确的?(B)
A. java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用。
B. 在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。
C. java接口包含函数声明和变量声明。
D. java中,子类不可以访问父类的私有成员和受保护的成员。
解析:
A.vector是线程安全的ArrayList,在内存中占用连续的空间。初始时有一个初始大小,当数据条数大于这个初始大小后会重写分配一个更大的连续空间。如果Vector定义为保存Object则可以存放任意类型。
B.try{}catch{}会增加额外的开销
C.接口中声明的’变量’必须为public final static,所以为常量
D.子类可以访问父类受保护的成员
5. What is displayed when the following is executed;(A)
double d1=-0.5;
System.out.println("Ceil d1="+Math.ceil(d1));
System.out.println("floor d1="+Math.floor(d1));
A. Ceil d1=-0.0
floor d1=-1.0
B. Ceil d1=0.0
floor d1=-1.0
C. Ceil d1=-0.0
floor d1=-0.0
D. Ceil d1=0.0
floor d1=0.0
E. Ceil d1=0
floor d1=-1
解析:
If the argument value is less than zero but greater than -1.0, then the result is negative zero ”,翻译过来就是:如果参数是-1.0到0.0之间的数,结果是-0.0。
6. 下面有关webservice的描述,错误的是?(B
A. Webservice是跨平台,跨语言的远程调用技术
B. Webservice通信机制实质就是json数据交换
C. Webservice采用了soap协议(简单对象协议)进行通信
D. WSDL是用于描述 Web Services 以及如何对它们进行访问
解析:
Webservice是跨平台,跨语言的远程调用技术;
它的通信机制实质就是xml数据交换;
它采用了soap协议(简单对象协议)进行通信
7. 变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000; 变量b是一个64位有符号的整数,初始值用16进制表示为:0x