就最近两周找工作的情况来看,市场对Java工程师的需求并没有因为经济发展受阻而大幅减少,只是市场对Java工程师的要求越来越高。
但我们要知道,寒冬之中,什么是最珍贵,就让鄙人告诉你:人才。只要有过硬的技术和装备,在逆风直下的情况下,咱们也能迎难而上,打他个戳手不及。不是“李云龙”大哥说:“过狭路相逢勇者胜.”
一面
- 自我介绍
- 谈一个你觉得你学到最多的项目,使用了什么技术,挑战在哪里
- Spring的bean的作用域?(比如:singleton,prototype等)
- Spring的 ioc 实现原理?没有无参 构造函数 能实例化吗?有参构造函数注入?(xml配置)
- 通过反射,谈到了方法区,然后,类加载机制?
- synchronized 的实现原理?Volatile能保证原子性吗?为什么
- hashmap 和concurrenthashmap的size方法怎么实现的
- JVM的调优参数?(-Xmn,-Xms等具体参数设置)
- 线程池 优点,参数,如果我想实现newSingleThreadPoll,应该怎么配置, 构造方法 传什么参数
- mysql 死锁 ,怎么解决,如果不要求执行顺序,死锁怎么解决
- ioc和aop原理
- 线程 的五态?转化过程?
- TCP三次握手,为什么三次握手?
- JVM内存分区?( 主存 ,工作内存,堆,栈。。。。)
- 讲一下GC?
- 为什么要用老年代和新生代?
- 新生代进入老生代的情况?
- 新生代的分区?
二面
- 变着法的问了一大堆线程池的知识 (主要考对应的参数)
- java内存模型
- lock和synchronized的区别
- reentrantlock的实现
- hashmap和concurrenthashmap
- B+树 和B-树的区别
- 复合 索引
- 聚集索引和非聚集索引的区别?
- 数据库索引 主键 和唯一索引有什么区别
- 索引失效条件,什么时候该建立索引
- innDB和MyISAM的区别?
- 线程安全(阻塞同步,非阻塞同步,无同步)
三面
主要高并发和分布式架构设计
- 服务器模型以及之间的区别
- 线程池的设计
- 线程池如何做负载均衡
- 如何实现线程调度算法
- 复合索引是如何实现的?
- 如何设计 单点登录 ,单点登录的原理
- redis缓存 和 memcached 缓存的区别,以及各自的优劣势
- 大型高并发网站如何做性能优化:Web性能、数据库性能、应用服务* 实践中如何优化MySQL:SQL语句及索引的优化、数据库表结构的优化、系统配置的优化、硬件的优化
- 分库分表和 读写分离 如何设计
- 微服务架构: dubbo 和 springcloud 的区别,以及各自对应的使用场景。
以上是阿里最新技术三面题目
另:在这个变化莫测的时代,大家要与时俱进,不要在舒适区待太久,祝大家都能找到满意的工作。