我有话要说,请仔细看完

我发现一个现象,很多开发5年的程序员仍然停留在crud的阶段,这是什么原因?

最主要的原因就是基础很差,尤其对于JVM和并发编程这方面掌握的比较差,而JVM和并发编程就是非常非常重要的基础了,作为一个Java开发人员如果你连JVM和并发编程掌握的很差,那你是无法写出高质量的代码的,直白说,你就只能做crud的工作,理想的工作和薪资跟你是无缘的,同时也很容易被行业淘汰!

现在大厂面试肯定是从基础开始发问,下面我也贴出了阿里招聘Java开发人员的要求,可以详细的看一下,下面几道是阿里面试真题,看你能答对几道?

  • Java中的垃圾回收算法?
  • 有哪几种垃圾回收器,有哪些优缺点?cms和g1的区别?
  • 什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
  • 什么是并发容器的实现?
  • 什么是线程池? 为什么要使用它?

上面我更多的是强调了基础的重要性,想要拿到阿里p6岗offer绝不是扎实的基础就能搞定的,这时候就更需要你多维度,深度,广度的学习Java技术,不多说了,直接上干货吧!

京东Java研发岗一面(基础面,约1小时)

  • 自我介绍,主要讲讲做了什么和擅长什么
  • springmvc和spring-boot区别
  • @Autowired的实现原理
  • Bean的默认作用范围是什么?其他的作用范围?
  • 索引是什么概念有什么作用?MySQL里主要有哪些索引结构?哈希索引和B+树索引比较?
  • Java线程池的原理?线程池有哪些?线程池工厂有哪些线程池类型,及其线程池参数是什么?
  • hashmap原理,处理哈希冲突用的哪种方法?
  • 还知道什么处理哈希冲突的方法?
  • Java GC机制?GC Roots有哪些?
  • Java怎么进行垃圾回收的?什么对象会进老年代?垃圾回收算法有哪些?为什么新生代使用复制算法?
  • HashMap的时间复杂度?HashMap中Hash冲突是怎么解决的?链表的上一级结构是什么?Java8中的
  • HashMap有什么变化?红黑树需要比较大小才能进行插入,是依据什么进行比较的?其他Hash冲突解决方式?
  • hash和B+树的区别?分别应用于什么场景?哪个比较好?
  • 项目里有个数据安全的,aes和md5的区别?详细点

京东Java研发岗二面(问数据库较多)

  • 自我介绍
  • 为什么MyISAM查询性能好?
  • 事务特性(acid)
  • 隔离级别
  • SQL慢查询的常见优化步骤?
  • 说下乐观锁,悲观锁(select for update),并写出sql实现
  • TCP协议的三次握手和四次挥手过程?
  • 用到过哪些rpc框架
  • 数据库连接池怎么实现
  • Java web过滤器的生命周期

京东Java研发岗三面(综合面,约一个小时)

  • 自我介绍。
  • ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用 ConcurrentHashMap?
  • 加锁有什么机制?
  • ThreadLocal?应用场景?
  • 数据库水平切分,垂直切分的设计思路和切分顺序
  • Redis如何解决key冲突
  • soa和微服务的区别?
  • 单机系统演变为分布式系统,会涉及到哪些技术的调整?请从前面负载到后端详细描述。
  • 设计一个秒杀系统?

京东Java研发岗四面(HR面)

  • 你自己最大优势和劣势是什么
  • 平时遇见过什么样的挑战,怎么去克服的
  • 工作中遇见了技术解决不了的问题,你的应对思路?
  • 你的兴趣爱好?
  • 未来的职业规划是什么?