我有话要说,请仔细看完
我发现一个现象,很多开发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面)
- 你自己最大优势和劣势是什么
- 平时遇见过什么样的挑战,怎么去克服的
- 工作中遇见了技术解决不了的问题,你的应对思路?
- 你的兴趣爱好?
- 未来的职业规划是什么?