首页 > Java后端实习生面经分享

Java后端实习生面经分享

面试总结 【高顿-京东-金风科技-滴滴-字节跳动】

高顿教育:

  1. Mybatis用过的命令
  2. Mybatis注解和xml区别
  3. 暑期工还做过前端?
  4. 个人项目1写了哪几个算法
  5. 做过Android?
  6. 个人项目2表结构
  7. 请描述一下JMM
  8. 线程之间的通讯方式?volatile能有什么作用,为什么能只保证可见性却不保证原子性?:因为在线程内存中不会保留该对象的副本,每次读取都要在主内存中

京东:

  1. 个人商城项目:

    1. 难点亮点?
    2. 数据来源?
    3. 以加入购物车为例,描述运行逻辑
    4. 主要有哪些组件
    5. 是否有考虑超售问题?如果是加锁的话,对于分布式应用应该如何处理?
  2. 数据库:

    1. 在个人商城项目中是否有用过索引?
    2. 是否了解索引,简要描述
    3. innodb索引文件的存储形式
    4. 各种索引的区别
  3. java基础:

    1. 集合类都有什么
    2. ArrayList和linkedlist的区别,各自优缺点,适用场景,实现方式
    3. 常用算法都会啥
    4. 排序算法,请描述快速排序和归并排序的思路
    5. 是否了解JUC,请讲出有什么JUC组件
    6. 线程池是否理解,都有哪些参数
    7. 线程池的核心线程数,最大线程数,队列之间的关系。new新的线程是怎样的逻辑?

金风科技:

  1. 上来就直接:你说一下擅长的框架/组件/工具……

  2. 说到了JUC,所以问熟悉的一个类,我说了reentrantlock,然后需要描述它的特点,我说了他和synchronized的区别。

  3. 说一下读写锁ReadWriteLock。如果线程A已经有读锁,那么线程B能否获得写锁?

    线程进入写锁的前提条件:

    没有其他线程的读锁

    没有其他线程的写锁

  4. linux修改文件权限的命令。chmod+751 具体是什么权限?

  5. 说一下mysql数据库的索引类型。

  6. 联合索引可以只用来查询一个列吗?为什么?-->最左前缀集合

  7. 熟悉ajax吗?

  8. 说一下spring中bean的四种作用域?他们分别在什么情况下起作用?

  9. 你有用过ElasticSearch?说一下里面的索引方法。倒排索引和关系型数据库的索引有什么区别?

  10. 一个数据库语句查询太慢,你会从哪些方面去进行优化?

滴滴出行技术一面:

  1. 请说出下面小程序的结果:

    public void test() {
    
            int i = 1;
            i = i++;
            i = ++i;
            int j = i++;
            int k = ++j;
            int m = i++ * ++i;
            System.out.println("m: " + m);
    }
  2. 请说出下面小程序的结果:

    public class Test {
        public static void main(String[] args) {
            Integer i = 10;
            Integer j = 5;
            int o = 10;
            int k = 5;
    
            Test test = new Test();
            System.out.println("i:" + i + " j:" + j);
            System.out.println("o:" + o + " k:" + k);
            test.doSwap(i, j);
            System.out.println("i:" + i + " j:" + j);
            test.doSwap2(o, k);
            System.out.println("o:" + o + " k:" + k);
        }
        public void doSwap(Integer a, Integer b) {
            Integer temp = a;
            a = b;
            b = temp;
        }
        public void doSwap2(int a, int b) {
            int temp = a;
            a = b;
            b = temp;
        }
    }
  1. 有用过设计模式吗?说一下都有哪些常用的。

  2. 编程题:给定一个数组,返回第二大的那个数。

   public static void main(String[] argv){
           int[] table = {1,5,8,6,19,30,29,28};
           int max = table[0];
           int second = table[0];
           for (int i = 0; i < table.length; i++) {
               if (table[i]>max){
                   second = max;
                   max = table[i];
               }else if (table[i]>second){
                   second = table[i];
               }
           }
           System.out.println(second);
       }
  1. 请说一下spring事务的7中传播行为

  2. 我们来写一下SQL语句吧:

    有这么一个表

    TABLE:USER id user_code user_name age

    请查询所有重复的人名以及重复的次数。

还有这么两个表

TABLE:MENU id menu_code menu_name menu_desc status(0:有效 1:失效)

TABLE:ORDER id user_id menu_id order_create_time status(0:未领取 1:已领取)

场景:有一个公司给员工进行订餐,请用一条查询语句返回所有的订餐情况。

提示:使用USER作为主表,使用左连接进行查询。

滴滴出行技术二面:

  1. 自我介绍
  2. 说一下spring的AOP机制。
  3. AOP的具体底层是怎样实现的?
  4. 说一下HashMap。
  5. HashMap中的两个参数是怎样影响这个容器的?
  6. String,StringBuilder,StringBuffer的区别是怎样的。
  7. 说一下CMS。(标记清除垃圾回收算法)
  8. 说一下B+树。
  9. B+树不适用的场景是什么?
  10. 说一下都有哪些Java容器。
  11. 怎样判断一个单向链表是否有环?==》回答使用快慢指针。==》问:如果两个指针的步长分别是2和4的话能否实现判断有环?==》思考后回答不行,因为在极限状态下如果环中只有2个节点,且进入环时两个指针分别在两个节点,那么无论怎样循环都不会相遇==》面试官点头
  12. 请问这个句子是否有错,如果错了的话错在哪里? List<Number> ls = new ArrayList<Integer>();

字节跳动:

  1. 自我介绍

  2. 说一下java的类加载机制

  3. 说一下AOP。知道AOP的底层实现是怎样的吗?

  4. 说一下动态代理。

  5. 说一下HashMap

  6. HashMap中为什么要用红黑树来代替链表?

  7. 两个线程交替打印12345...和ABCDE...怎么做?

  8. 说一下TCP的连接过程。

  9. 说一下TCP和UDP的区别吧。他们都分别用于什么场景

  10. 知道HTTP和HTTPS的区别吗?

  11. 来说一下mysql的事务都有哪些

  12. mysql的隔离级别都有什么

  13. 说一下mysql索引的结构

  14. 来我们写点代码:

    1. 我们有一个表t_score

      里面有一些字段 stu_id sub_id score 分别代表学生ID,课程ID,得分

      请查询总分排名3-5的学生

    2. 我们有一个m行n列的二维整型数组,现在需要找出从[0,0]到[m,n]的最短路径。路径只能向下或者向右。

      解:这是一个动态规划题目。

   ```java
   public class Main {
       public static void main(String[] args) {
           int[][] array = new int[][]{{1,2,1,3,5},{1,1,3,2,1},{1,1,2,1,4}};
           int[][] min = new int[3][5];
           min[0][0] = array[0][0];
           for(int i = 1; i < min[0].length; i++){//第一行只能向右
               min[0][i] = array[0][i] + min[0][i-1];
           }
           for(int i = 1; i < min.length; i++){//第一列只能向下
               min[i][0] = array[i][0]+min[i-1][0];
           }
           for(int i = 1; i < min.length; i++){//其余的
               for(int j = 1; j < min[0].length; j++){
                   min[i][j] = Math.min(min[i][j-1]+array[i][j],
                                       min[i-1][j]+array[i][j]);
               }
           }
           System.out.println(min[2][4]);
       }
   }

   ```

最终结果:金风offer,高顿offer,滴滴offer。已签约滴滴。

大家加油!

更多模拟面试

全部评论

(7) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐