美图2018秋招Java笔试题分享
单选题
关于垃圾回收算法G1,哪个说法是错误的
A. 并行和并发,具有多线程操作能力
B. 不适用堆空间太大的场景
C. G1停顿时间更加可预测
D. 不会对系统吞吐量产生较大影响
多线程中栈与堆是公有的还是私有的
A. 栈私有,堆私有
B. 栈公有,堆私有
C. 栈公有,堆私有
D. 栈私有,堆公有
在SQL数据库一个班级表里只记录了100位同学的情况,那么对该表建立索引文件的描述正确的是
A. 一定要,因为索引对于任何数据库表都是必要的
B. 没有必要,因为建立索引对任何数据库的性能都没有影响
C. 一定要,因为索引有助于加快搜索记录的进程
D. 不适宜,因为对少量记录的表进行索引实际上会产生不利的影响
Java垃圾回收算法CMS执行的顺序是
A. 初始标记->并发标记->并发预清理->重新标记->并发清理->并发重置
B. 初始标记->并发标记->重新标记->并发预清理->并发清理->并发重置
C. 初始标记->并发预清理->并发标记->重新标记->并发清理->并发重置
D. 初始标记->并发标记->重新标记->并发预清理->并发重置->并发清理
下列哪种情况会导致持久区jvm堆内存溢出
A. 循环上万次的字符串处理
B. 在一段代码申请上百M甚至上G的内存
C. 不断创建对象
D. 使用CGLIB技术直接操作字节码运行,生成大量的动态类
java.util.Comparator体现的设计模式是
A. Decorator
B. Strategy
C. Interpreter
D. Command
什么样的数据结构被使用在功能redo-undo上?
A. queue
B. Tree
C. Graph
D. stack
以下哪个协议将数据包拆分并发送到网络中的指定地址的?
A. Proxy Server
B. DNS
C. Socket
D. TCIP/IP
下列程序的返回值是,其中arr[] = {9,12,2,11,2,2,10,9,12,10,9,11,2}且n为arr的大小?
int fun(int arr[],int n){
int x = arr[0];
for(int i=1;i<n;i++)
x = x^arr[i];
return x;
}
A. 12
B. 9
C. 0
D. 2
B. throw
C. catch
D. try
java中String是线程安全的吗?
A. 不是
B. 是
有如下程序:
String s1 = new String(“abc”);
String s2 = “abc”;
String s3 = “a” + “bc”;
下列哪项执行结果为false
A. S2 = S3
B. S1.equals(s2)
C. S1 = S2
D. S1.compareTo(s3) ==0
、下列程序完成什么功能?
int fun(int x, int y){
if(y == 0)
return 0;
}
A. x*y
B. x+y
C. x^y
D. x+x*y
18、新建一个流对象,下面哪个选项的代码是错误的?( C
19、 )
A. new BufferedWrite(new FileWriter(“a.txt”));
B. new ObjectlnputStream(new FilelnputStream(“a.dat”));
C. new BufferedReader(new FilelnputStream(“a.dat”));
D. new GZIPOutputStream(new FileOutputStream(“a.zip”));
JDK新生代垃圾回收机制默认采用的是复制算法,影响该算法最关键的因素是
A. 对象存活率
B. 创建新对象的频率
C. SurvivorRatio参数
D. 对象的大小
java.util.HashMap处理hash碰撞的方法是
A. 拉链法
B. 线性探查法
C. 随机探测
D. 线性补偿探测法
多选题
1、以下哪些是运行时异常
A. java.lang.lndexOutOfBoundsException
B. java.lang.NullPointerException
C. java.util.ConcurrentModificationException
D. java.time.format.DataTimeParseException
以下哪些能够保证线程安全
A. 单例模式
B. java.util.Hashtable
C. synchronized
D. volatile
垃圾回收算法CMS的缺点有哪些
A. 需要更大的堆空间
B. 需要更多的CPU空间
C. 不会整理、压缩堆空间
D. 增加了回收的停顿时间
以下哪些属于工厂模式
A. 工厂方法模式
B. 简单工厂模式
C. 抽象工厂模式
D. 组合工厂模式
以下哪些语句可以正常创建Lock对象?
A. Lock lock = new ReentrantLock(true);
B. Lock lock = new ReentrantLock();
C. Lock lock = new Lock();
D. Lock lock = new ReentrantLock(false);
以下程序的输出是( )垃圾回收
public class Test {
public static void main(String args[]) throws InterruptedException{
Test t = new Test();
//making t eligible for garbage collection
t = null;
//calling garbage collector
System.gc();
//waiting for gc to complete
Thread.sleep(1000);
System.out.println("end main");
}
protected void finalize()
{
System.out.println("finalize method called");
System.out.println(10/0);
}
}
A. end main
B. 其他所有
C. finalize method called
D. Throw java.lang.ArithmeticException:/by zero
7、哪些情况会触发FULL GC
A. 老年代空间不足
B. 统计得到的Minor GC晋升到旧生代的平均大小大于旧生代的剩余空间
C. 堆中分配很大的对象
D. CMS GC时出现promotion failed和concurrent mode failure
8、以下哪些是spring的事物隔离级别:
A. PROPAGTION_SUPPORTS
B. PROPAGATION_NESTED
C. PROPAGATION_MANDATORY
D. PROPAGATION_NEVER
9、下列关于java数组论述,正确的是:
A. int[] x = {0};与int[] x = new int[1];的结果是完全等价的。
B. String[] x = {“o” ,”k” ,”ok”);所创建的数组对象含有3个串对象。
C. Int [] [] x = {{1},{1,2},{1,2,3},new int[1]};是正确语句。
D. 定义一个Java的***数组变量,实际上是定义了将会指向数组对象的引用,该数组对象所包含的元素又将是另一个数组对象的引用。
10、以下哪些数据隔离级别会产生幻读
A. Read Uncommitted
B. repeatable read
C. Serializable
D. read committed
#春招##笔试题目##秋招##Java#