面试总结 【高顿-京东-金风科技-滴滴-字节跳动】
高顿教育:
- Mybatis用过的命令
- Mybatis注解和xml区别
- 暑期工还做过前端?
- 个人项目1写了哪几个算法
- 做过Android?
- 个人项目2表结构
- 请描述一下JMM
- 线程之间的通讯方式?volatile能有什么作用,为什么能只保证可见性却不保证原子性?:因为在线程内存中不会保留该对象的副本,每次读取都要在主内存中
京东:
个人商城项目:
- 难点亮点?
- 数据来源?
- 以加入购物车为例,描述运行逻辑
- 主要有哪些组件
- 是否有考虑超售问题?如果是加锁的话,对于分布式应用应该如何处理?
数据库:
- 在个人商城项目中是否有用过索引?
- 是否了解索引,简要描述
- innodb索引文件的存储形式
- 各种索引的区别
java基础:
- 集合类都有什么
- ArrayList和linkedlist的区别,各自优缺点,适用场景,实现方式
- 常用算法都会啥
- 排序算法,请描述快速排序和归并排序的思路
- 是否了解JUC,请讲出有什么JUC组件
- 线程池是否理解,都有哪些参数
- 线程池的核心线程数,最大线程数,队列之间的关系。new新的线程是怎样的逻辑?
金风科技:
上来就直接:你说一下擅长的框架/组件/工具……
说到了JUC,所以问熟悉的一个类,我说了reentrantlock,然后需要描述它的特点,我说了他和synchronized的区别。
说一下读写锁ReadWriteLock。如果线程A已经有读锁,那么线程B能否获得写锁?
线程进入写锁的前提条件:
没有其他线程的读锁
没有其他线程的写锁
linux修改文件权限的命令。chmod+751 具体是什么权限?
说一下mysql数据库的索引类型。
联合索引可以只用来查询一个列吗?为什么?-->最左前缀集合
熟悉ajax吗?
说一下spring中bean的四种作用域?他们分别在什么情况下起作用?
你有用过ElasticSearch?说一下里面的索引方法。倒排索引和关系型数据库的索引有什么区别?
一个数据库语句查询太慢,你会从哪些方面去进行优化?
滴滴出行技术一面:
请说出下面小程序的结果:
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); }
请说出下面小程序的结果:
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; } }
有用过设计模式吗?说一下都有哪些常用的。
编程题:给定一个数组,返回第二大的那个数。
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); }
请说一下spring事务的7中传播行为
我们来写一下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作为主表,使用左连接进行查询。
滴滴出行技术二面:
- 自我介绍
- 说一下spring的AOP机制。
- AOP的具体底层是怎样实现的?
- 说一下HashMap。
- HashMap中的两个参数是怎样影响这个容器的?
- String,StringBuilder,StringBuffer的区别是怎样的。
- 说一下CMS。(标记清除垃圾回收算法)
- 说一下B+树。
- B+树不适用的场景是什么?
- 说一下都有哪些Java容器。
- 怎样判断一个单向链表是否有环?==》回答使用快慢指针。==》问:如果两个指针的步长分别是2和4的话能否实现判断有环?==》思考后回答不行,因为在极限状态下如果环中只有2个节点,且进入环时两个指针分别在两个节点,那么无论怎样循环都不会相遇==》面试官点头
- 请问这个句子是否有错,如果错了的话错在哪里?
List<Number> ls = new ArrayList<Integer>();
字节跳动:
自我介绍
说一下java的类加载机制
说一下AOP。知道AOP的底层实现是怎样的吗?
说一下动态代理。
说一下HashMap
HashMap中为什么要用红黑树来代替链表?
两个线程交替打印12345...和ABCDE...怎么做?
说一下TCP的连接过程。
说一下TCP和UDP的区别吧。他们都分别用于什么场景
知道HTTP和HTTPS的区别吗?
来说一下mysql的事务都有哪些
mysql的隔离级别都有什么
说一下mysql索引的结构
来我们写点代码:
我们有一个表t_score
里面有一些字段 stu_id sub_id score 分别代表学生ID,课程ID,得分
请查询总分排名3-5的学生
我们有一个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]); } } ```
全部评论
(7) 回帖