京东实习面经

第一篇

1.自我介绍

2.博客一般都是写关于哪种技术的?博客上的东西都经过验证吗?

3.MySQL怎么防注入的?

4.MySQL事务有了解吗?

5.MySQL分库分表有了解吗?这里讨论了好久,给我说了个场景,怎么解决

6.MySQL查询语句优化

7.MySQL聚簇索引 非聚簇索引

8.Redis常用数据结构?底层结构?

9.Lua脚本有了解吗?

10.Redis 原子性怎么保证的?

11.Redis超时策略

12.Redis持久化

13.AOF持久:如果线上主Redis宕机了,从Redis会替代,这时候如果主节点又恢复了,会不会丢失命令?

14.如果主Redis存命令的时候,没有发给从Redis,那么他会不会干哈干啥,这里没听懂

15.说一下SpringIOC/AOP

16.JDK动态代理/CGlib

17.如果用JDK动态代理,把一个类定义为final,还能用AOP吗?

18.Spring循环依赖

19.SpringMVC

20.下层的业务一直抛异常,没拦截,怎么处理?

21.你们之前做项目异常怎么处理的?

22.那接下来咱聊Java基础吧,ArrayList循环中修改发生的问题?有没有看过源码

23.HashMap是线程安全的吗,加上synchronized是安全的吗?

24.ThreadLocal有了解吗?

25.线程池有了解吗?

26.新建线程的方式?

27.乐观锁/悲观锁?

28.MySQL中用过乐观锁/悲观锁吗?

29.避免行锁怎么实现?又列举了一个场景题,抢课怎么解决?

30.垃圾回收算法?标记清除和复制算法区别?

31.设计模式有了解吗?说一个自己熟悉的?

32.voliate能保证写的安全吗?又说了一个场景

 

第二篇

京东一面:

自我介绍,交流项目细节

jvm:内存区域介绍及发生OOM的情况,GC过程,描述调优过程

多线程:synchronized和lock,sleep和wait,线程池种类和工作流程(重点讲new***d线程池)

框架: IOC,AOP,SpringMVC流程,事务怎么配置

数据库:innodb和myisam区别,B+树性质,多列索引及最左前缀原则和其他使用场景。

算法手写快排

京东二面:

自我介绍,项目

jvm:full gc,内存泄漏,CMS收集器

框架:Bean的生命周期,mybatis和hibernate对比

多线程:线程池工作原理

NIONIO和BIO的比较,对netty的了解

Linux常见命令ls,top,lsof,ps,grep等,vim快捷键

HR

自我介绍,对京东的了解,有没有其他offer,你会选择哪个,有没有毕业留京的打算,亦庄比较远能不能适应。

总结:一面二面都是半小时左右,估计是人太多才这么赶,问题也比较简单直接,没有刁难性的问题。

美团一面:

项目

1.运行时异常及处理方法,抽象类和接口的区别,HashMap的put方法源码,2.ArrayList,LinkedList的实现以及插入,查找,删除的过程

3.TCP和UDP区别,三次握手,TIME_WAIT状态

4.jvm内存区域和GC,finalize方法,哪些对象可以作为GC Root

5.NIO的DirectByteBuffer和HeapByteBuffer,同步和异步,阻塞和非阻塞

6.写大数加法代码

7.Spring IOC,AOP,项目中怎么体现的,RestFul API的理解,框架源码中用到的设计模式

8.数据库的完整性约束,事务隔离级别,写一个SQL语句,索引的最左前缀原则

美团二面:

自我介绍,项目

1.数据库:两种存储引擎在索引以及锁机制上的实现方式的区别,limit offset优化,B+树及其查找过程,redis了解程度

2.GC,jvm调优,如果我自己定义一个String类会怎么样(双亲委派机制)

3.NIO和BIO的比较

4.ReentrantLock源码,AQS,synchronized实现,乐观锁和悲观锁,volatile,ThreadLocal原理,线程池工作流程

5.HashMap和ConcurrentHashMap基本原理,扩容机制等

6.描述一下知道的设计模式,装饰者模式和***模式的区别

7.jdk动态***和CGLIB***

8.海量URL数据,低内存情况下找重复次数最高的那一个

HR面:

电话面,实习时间,口头offer

总结:都是一个多小时,面试官对项目细节问得较多,考察基础和重点概念的源码,大部分是常见的问题。

 

第三篇

Java基础相关

1. final关键字在方法上,类上,变量上的作用。什么类是final的(String,Integer等包装类),为什么。
2. static关键字的作用,修饰方法,类,代码块,变量的区别
3. Integer自动拆箱装箱(可能和字面量类型一块考,比如包装类的对象和字面量相加有几次拆箱装箱)
4. String不可变的好处
5. 继承和多态,重载和重写(概念,特点,区别),以及final,private,static关键字在这四个中会起到什么影响(如final的类不能继承,final的方法不存在重写等等)
6. 了解什么设计模式,项目中使用了什么设计模式,详细介绍单例,手写单例(多次遇到!)
7. 浅克隆深克隆
8. 异常的种类
9. 反射获取类的方法有哪些,反射优缺点
10. 基类有哪些方法
11. equals和==和哈希
12. BIO、NIO和AIO

集合相关

1. 介绍集合常用接口和类(List,Map,Set,Queue等等)(超多次遇到!)
2. 详细介绍HashMap(超多次遇到!),特点(1.7和1.8区别,数组和桶,桶的数量和为什么2^n个,链表红黑树,扩容机制等等),线程安全问题(头插法的问题,尾插法等等)
3. HashMap和HashTable区别(安全性,扩容,遗留类等等)
4. 想实现使用集合线程安全怎么办(线程安全的类,Collections.sychrolizedXXX方法,加锁等等)
5. ConcurrentHashMap特点,1.7和1.8区别,是否一定线程安全(否)
6. Set,Map,List区别
7. Vector,ArrayList,LinkedList区别,优缺点,何时使用(如增添多时,需要随机访问,需要线程安全等)
8. CopyOnWriteArrayList特点

多线程并发

1. Synchronized和Lock区别(由什么支持,中断性,公平性,锁住的东西,释放等等)和底层实现(monitor机制,CAS和volatile)(超多次遇到!)
2. volatile原理,修饰了volatile发生了什么(多次遇到!)
3. CAS原理和问题以及解决办法(多次遇到!)
4. Synchronized在不同位置使用的区别(方法上,代码块上,和static同时,锁住类等等)
5. wait和sleep和yield
6. wait和await
7. Executor的submit和execute区别
8. 4大类Executor
9. ThreadPoolExecutor的各个参数和不同种类
10. 使用过什么AQS里的,介绍一下
11. Thread和Runnable

JVM虚拟机

1. 虚拟机结构(堆栈那些)和1.6、1.7、1.8老年代的区别(超多次遇到!)
2. 对象四种引用类型和ThreadLocal
3. 垃圾回收器和工作原理(主要的那7种)(每种使用的回收算法,作用域,区别,特点等等)
4. 垃圾回收算法的原理
5. 类加载过程和机制(可能在原理的基础上,结合实际的例子考察,如各种地方加了各种修饰符后new一个子类或者父类输出什么)
6. 对象死亡的条件
7. OOM发生的位置和解决办法
8. JVM调优(很少出现)
9. 一般GC ROOTs有哪些
10. full gc触发条件

操作系统

1. 死锁的条件,预防,检测回复,避免的方法,银行家算法
2. 并发和并行
3. 线程和进程和协程
4. 虚拟内存(为什么要有虚拟内存,段,页,段页区别,页表页框)
5. 页面置换算法
6. 线程间通信和进程间通信

计网

1. tcp和udp区别
2. 三次握手四次挥手
3. 根据你学的网络模型说一下有哪些层(5层,7层,我是基于5层说的),每层有什么代表性协议
4. http和https区别,https加密方法
5. http的首部
6. 打开网页过程中发生了什么,使用了哪些协议

数据库

1. ACID
2. MVCC和隔离级别
3. InnoDB和MyISAM
4. Redis相关,速成可以借鉴

https://baijiahao.baidu.com/s?id=1660009541007805174&wfr=spider&for=pc
5. 具体的一些使用,可能给题写代码
6. 索引的各种类型,好处,什么时候使用什么样的索引
7. B+树

其他

1. 各种排序算法的复杂度,稳定性
2. IOC和AOP
3. 红黑树
4. 大顶堆小顶堆
5.大数据相关问题,可以借鉴

https://blog.csdn.net/wypersist/article/details/80114709

手写算法

1. 二叉树的前中后遍历,递归迭代两种方式
2. 单例的实现
3. 链表相交节点
4. 翻转链表
5. 删除链表倒数第N个节点
6. 青蛙每次跳3,4,5格,到最终目的地有几种跳法(跳超了也算),能不能跳到目的地(只能刚好跳到),最短跳几次
7. 两个字符串的最长相同子串
8. 生产者消费者
9. sql的,场景好像是找到每个部门工资最高的员工,打印员工名,部门名,部门id,薪水(数据在两张表上)
10. 字符串形式大数相乘
11. 两个栈实现队列,两个队列实现栈
12. 几道动态规划和DFS,BFS大概medium的题,忘了具体题目,给场景的,类似股票问题和岛屿问题那样
13. LRU缓存
14. 类似N皇后的问题,但是棋盘上已经有棋子了,判断是否会攻击,不会攻击输出所有的放棋子方式

15. 一些常规easy题,时间太久记不得了,大概整数翻转合并链表这个难度

项目相关,因人而异

1. 简单介绍

2. 深入挖掘兴趣点

3. 最大困难,怎么克服

4. 最大亮点

5. 使用设计模式了吗?为什么?

6. 改进空间

总结

简历上写到的一定要会,都会问到,这次没问下次也跑不了。

是在遇到不会的,实话实说,谁还没点不会的东西,当然结果如何还是看考官心情,但我个人觉得诚实比硬挺或者瞎编好,毕竟问你的知识人家肯定很了解。

技术面的问题一般都比较基础,突击可以看看git上的cyc2018,真的不错,方向清晰。

算法方面,剑指是真的得会,剩下随缘刷吧,个人感觉动态规划比较多,同时多线程,sql也得会写。

hr面别怕,正常发挥就行,展现真实自己(当然只展现好的一面)。

 

第四篇

基础:

  • 看你用了redis,你能说说redis的常用命令吗?(这波我没想到,答的很一般)
  • SpringIOC是什么?你怎么理解的?
  • Autowired和Resource区别?
  • 介绍一下工厂模式?
  • Spring与工厂模式?
  • 单例模式说一下?
  • 口述DCL?为什么使用DCL?
  • linux命令了解吗?(只了解几个)
  • 创建线程的方式?
  • 平时用到的集合类?
  • HashMap底层说一下?红黑树解决了什么问题?
  • 数组和ArrayList说一下?
  • HashSet和ArrayList说一下?

算法

  • 组合总和,追问排序和乱序对效率的影响

生活:

  • 平时看什么书?学了什么新技术?
  • 怎么学习的?
  • 实习时间与到岗时间?
  • 你说的六个月,你上课怎么办?
  • 你们工作室是干啥的?

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值