java开发通过跳槽提升技术好还是自学好?目前市场上技术实力强的公司,对于候选人的要求是比较严格的,尤其是大型的互联网公司 。进入是需要门槛的,经过多轮次的技术面,才能拿到Offer。

在这个行业摸爬滚打很多年,知道一些情况,希望对你有所帮助。面试过很多候选人,目前的通过率不是很高,一到三年工作经验的,技术面通过率20%左右;工作经验越久的,通过率越低。这就应了那句老话,逆水行舟不进则退啊。

java开发提升技术

我给你的建议是一定要花时间学习,如果连续作几年的CURD,基本上就废了,以后面试很难进入优秀的公司。先学习打好基础,然后有好的机会就去个大公司 ,这是比较好的选择。

具体学习什么呢?或者说面试官主要关注哪些知识点呢?做个简答的总结。主要包括五大类,分别是:基础知识、数据结构与算法、框架技术、中间件、以及综合类的。

1、Java基础知识

  • 基本概念。继承、基本数据类型、集合类、关键字、反射等
  • 多线程。线程状态、sychronized关键字、volatile关键字。
  • jvm。内存模型、垃圾回收机制、内存泄露
  • IO。TCP协议、BIO、NIO、Unix网络模型、Netty
  • web编程。Http协议、Servlet生命周期、Filter、Session、Cookie等
2、数据结构与算法
  • 数组、链表、二叉树、队列、堆、栈
  • 基础算法:排序(冒泡、快速排序、堆排序)、二分查找、递归算法
  • 高级算法:Top K、分治思想、动态规划、字符串
  • B+Tree、红黑树

3、框架技术

  • Spring,IOC、AOP、动态代理技术、事务、懒加载、mvc常用注解
  • MyBatis,优缺点、如何防sql注入、分页原理等
  • Spring Boot,starter工作机制、启动过程
  • Dubbo,服务注册、rpc优势、优雅关闭、负载原理
  • Spring cloud,常用组件、负载原理、Eruka集群、熔断
4、中间件
  • Mysql,SQL语句、SQL优化、存储引擎、索引、事务隔离级别、分表分库
  • Redis,特点、数据类型、哨兵机制、集群
  • Rabbit MQ,消息路由、多个消费者、死信队列、集群、幂等性
  • Kafka,特点、应用场景、体系结构、消费者组
  • Zookeeper,节点类型、选主策略、Zab协议
5、综合
  • 分布式事务
  • 秒杀系统设计
  • 大日志处理
  • CAP原理

列举了这么多,并不是说都需要掌握,而是根据你的工作履历,做一定的精简。要做到用过的,一定要懂;简历上写的,一定要理解。得到面试机会是比较容易的,面试通过才是关键。