广州三七互娱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不一样。

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的这些知识,面试答得不好,面试过程就知道自己挂了。最后,祝大家顺利找到合适的工作。

你可能感兴趣的:(面试记录)