广州三七互娱java面试(社招、应届生)

一、首先,做了一套笔试题(题目靠回忆写的,会有一些出入)
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要移动数据。
2.单例模式、工厂模式。
3.Spring框架的作用。
4.synchronized怎么使用
5.hashmap,怎么解决哈希冲突
6. set 和 list的区别

7.并发和多线程问题。
比如多个管理员在同时删除同一条数据,怎么解决同步问题。给最先管理员删除数据的管理员加一个锁,在加锁期间其他管理员不能删除该条数据。

公司环境不错,面试官很好说话,整个面试过程很轻松,不过本博主比较菜,这次面试准备不充分,很久没复习过java的这些知识,面试答得不好,面试过程就知道自己挂了。最后,祝大家顺利找到合适的工作。

    推荐阅读