更新时间:2019-08-16 14:20:40 来源:极悦 浏览3338次
近三年,其实都是在做一个项目,项目是一个大型的多节点部署的项目,做了好几个版本,中间用到了很多技术和框架,也用了一些管理工具和敏捷实践。我这里不是来说项目的,因为最近看了一些招聘信息,结合项目中用到的一些知识和管理措施,作为一个程序员,需要去实时评估下自己当前的能力是否能跟上时代的步伐,所以,总结了下作为一个中高级Java开发人员或架构师,到底需要掌握哪些技能。
当然,下述所列都是自己的看法,有兴趣的参考下,没兴趣的,就当看笑话了吧。
Java基础
1、List和Set的区别
2、HashSet是如何保证不重复的
3、HashMap是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)?
4、HashMap的扩容过程
5、HashMap1.7与1.8的区别,说明1.8做了哪些优化,如何优化的?
6、finalfinallyfinalize
7、强引用、软引用、弱引用、虚引用
8、Java反射
9、Arrays.sort实现原理和Collection实现原理
10、LinkedHashMap的应用
11、cloneable接口实现原理
12、异常分类以及处理机制
13、wait和sleep的区别
14、数组在内存中如何分配
Java并发
1、synchronized的实现原理以及锁优化?
2、volatile的实现原理?
3、Java的信号灯?
4、synchronized在静态方法和普通方法的区别?
5、怎么实现所有线程在等待某个事件的发生才会去执行?
6、CAS?CAS有什么缺陷,如何解决?
7、synchronized和lock有什么区别?
8、Hashtable是怎么加锁的?
9、HashMap的并发问题?
10、ConcurrenHashMap介绍?1.8中为什么要用红黑树?
11、AQS
12、如何检测死锁?怎么预防死锁?
13、Java内存模型?
14、如何保证多线程下i++结果正确?
15、线程池的种类,区别和使用场景?
16、分析线程池的实现原理和线程的调度过程?
17、线程池如何调优,最大数目如何确认?
18、ThreadLocal原理,用的时候需要注意什么?
19、CountDownLatch和CyclicBarrier的用法,以及相互之间的差别?
20、LockSupport工具
21、Condition接口及其实现原理
22、Fork/Join框架的理解
23、分段锁的原理,锁力度减小的思考
24、八种阻塞队列以及各个阻塞队列的特性
1、BeanFactory和FactoryBean?
2、SpringIOC的理解,其初始化过程?
3、BeanFactory和ApplicationContext?
4、SpringBean的生命周期,如何被管理的?
5、SpringBean的加载过程是怎样的?
6、如果要你实现SpringAOP,请问怎么实现?
7、如果要你实现SpringIOC,你会注意哪些问题?
8、Spring是如何管理事务的,事务管理机制?
9、Spring的不同事务传播行为有哪些,干什么用的?
10、Spring中用到了那些设计模式?
11、SpringMVC的工作原理?
12、Spring循环注入的原理?
13、SpringAOP的理解,各个术语,他们是怎么相互工作的?
14、Spring如何保证Controller并发的安全?
Netty
1、BIO、NIO和AIO
2、Netty的各大组件
3、Netty的线程模型
4、TCP粘包/拆包的原因及解决方法
5、了解哪几种序列化协议?包括使用场景和如何去选择
6、Netty的零拷贝实现
7、Netty的高性能表现在哪些方面
分布式相关
1、Dubbo的底层实现原理和机制
2、描述一个服务从发布到被消费的详细过程
3、分布式系统怎么做服务治理
4、接口的幂等性的概念
5、消息中间件如何解决消息丢失问题
6、Dubbo的服务请求失败怎么处理
7、重连机制会不会造成错误
8、对分布式事务的理解
9、如何实现负载均衡,有哪些算法可以实现?
10、Zookeeper的用途,选举的原理是什么?
11、数据的垂直拆分水平拆分。
12、zookeeper原理和适用场景
13、zookeeperwatch机制
14、redis/zk节点宕机如何处理
15、分布式集群下如何做到唯一序列号
16、如何做一个分布式锁
17、用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗
18、MQ系统的数据如何保证不丢失
19、列举出你能想到的数据库分库分表策略;分库分表后,如何解决全表查询的问题
20、zookeeper的选举策略
21、全局ID
数据库
1、分页有什么优化
2、悲观锁、乐观锁
3、组合索引,最左原则
4、mysql的表锁、行锁
5、mysql性能优化
6、mysql的索引分类:B+,hash;什么情况用什么索引
7、事务的特性和隔离级别
缓存
1、Redis用过哪些数据数据,以及Redis底层怎么实现
2、Redis缓存穿透,缓存雪崩
3、如何使用Redis来实现分布式锁
4、Redis的并发竞争问题如何解决
5、Redis持久化的几种方式,优缺点是什么,怎么实现的
6、Redis的缓存失效策略
7、Redis集群,高可用,原理
8、Redis缓存分片
9、Redis的数据淘汰策略
JVM
1、详细jvm内存模型
2、讲讲什么情况下回出现内存溢出,内存泄漏?
3、说说Java线程栈
4、JVM年轻代到年老代的晋升过程的判断条件是什么呢?
5、JVM出现fullGC很频繁,怎么去线上排查问题?
6、类加载为什么要使用双亲委派模式,有没有什么场景是打破了这个模式?
7、类的实例化顺序
8、JVM垃圾回收机制,何时触发MinorGC等操作
9、JVM中一次完整的GC流程(从ygc到fgc)是怎样的
10、各种回收器,各自优缺点,重点CMS、G1
11、各种回收算法
12、OOM错误,stackoverflow错误,permgenspace错误
1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的。
2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的。
3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的。
4、觉得自己很牛B,一般需求都能搞定,但是所学的知识点没有系统化,很难在技术领域继续突破的。
程序员的核心竞争力是什么?
是学习能力。我们这个行业实在变化太快,“一招鲜,吃遍天”这种事情是不存在的,我们总会遇到从未接触过的新挑战,怎么办?学习。就如同一个优秀的企业,它最有价值的地方在于它有无限的发展前景。那么一个优秀的程序员,最有价值的地方就在于拥有无限的潜力。要知道,公司雇佣一个人,并不是因为他现在水平深浅,而是他能不能和公司一起成长,只看眼前的公司不会长久,只看眼前的员工没有未来。
程序员到底何去何从?
其实啰嗦了那么多,归根结底就是持续提升自己,就这么简单。把焦虑、嫉妒、迷茫的时间拿来充实自己,到了35岁你会发现,这真的是职业生涯的分岔路口,只不过我们的路通向美好。
合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
给你分析一下这些技术,给大家罗列一些技术,看你有没有学到这些技术。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习