一、首先,做了一套笔试题(题目靠回忆写的,会有一些出入)
1.补充代码,找出list集合在1-100的数字中缺少了哪些数字;
2.下列程序的输出结果是多少?
public class Test {static {int x = 5;
//第一次被载入JVM时运行,由于是局部变量,x = 5不影响后面的值}
static int x,y;
//初始化 x=0,y=0;
public static void main (String[] args){
x--;
// x = -1;
myMethd();
System.out.println( x + y++ +x );
// 1 + 0 + 1 = 2
}
public static void myMethod() {
y = x++ + ++x;
// y = 0,x = 1;
}
}
答案:2
3. hibernate中get()和load()的区别。
4. 简单描述JVM中一次full gc过程。
5.补充代码,Test类在多线程环境下运行,为new Test()开启一个新线程,而且每个线程的id不一样。
【广州三七互娱java面试(社招、应届生)】6.java实现RLU算法
7.线程池的设置,线程数量要考虑什么因素,写一下思路。
8.下面递归算法的复杂度,并写出优化方案。
public static fn(int n){
if(n <= 0){
return 0;
}
else if(n > = 1){
return 1;
}
return f(n - 1) + f(n - 2);
}
优化方案1:用数组保存算过的数,每次循环之前,判断该n在不在数组里面。
优化方案2:使用迭代
9.
10.关于并发问题,查看代码有无错误
二、笔试后,技术面
1.ArrayList和LinkList的区别,分别在什么情况下使用。
- ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 (LinkedList是双向链表,有next也有previous)
- ArrayList会限制容量大小,当超出大小时会进行扩容,添加到末尾;LinkedList可以添加到任何位置。
- 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
- 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
3.Spring框架的作用。
4.synchronized怎么使用
5.hashmap,怎么解决哈希冲突
6. set 和 list的区别
7.并发和多线程问题。
比如多个管理员在同时删除同一条数据,怎么解决同步问题。给最先管理员删除数据的管理员加一个锁,在加锁期间其他管理员不能删除该条数据。
公司环境不错,面试官很好说话,整个面试过程很轻松,不过本博主比较菜,这次面试准备不充分,很久没复习过java的这些知识,面试答得不好,面试过程就知道自己挂了。最后,祝大家顺利找到合适的工作。