1 自我介绍

还有一个月就毕业一年了,从2020年7月开始暑期实习,辗转换了好几份工作,到今天2022年5月24日为止,满打满算有工作1年半了。科班出身,基础不扎实。

2 为什么选择Java

科班出身,在大学里面基本都会知道前端、后端这两个出路。对前端没兴趣,又从大一开始没打算考研,就决定选择走后端的路线了。身边的人(师兄师姐们)都说Java好找工作,并且自己对Java有那么一点兴趣,也就选了Java了。其实现在看来,Java真的太卷了,门槛低,看看视频随便都能转行来Java。再者,大厂更需要的是那种熟悉操作系统、计算机网络、数据结构、算法的人才。这些才是核心竞争力。

3 那些年写过的项目

想起来真觉得大二时候的我很憨,竟然去研究什么servlet、jsp、jdbc,还花一大半时间进去。用jsp写过基本的前后端耦合小demo,都是些什么管理系统。

大三从一个师姐那里接触到谷粒学院,了解到spring、mybatis、mysql基础、mysql高级等,仿佛接触到了一个新世界。然后去学,用thymeleaf写了一个前后端耦合的图书商城。再后来接触到一个叫layui的前端框架,又弄了一个图书商城。

4 从入门到进阶

经过职场的洗礼,深知掌握技术底层原理才是核心竞争力,包括但不限于操作系统计算机网络数据结构算法redisMVCC索引优化并发知识MQNacosspring cloud alibaba等等。

4.1 技术原理层面

  1. 研究spring bean生命周期
  2. MySQL索引底层原理
  3. 研究Nacos自动服务注册底层原理
  4. 研究InnoDB架构
  5. 研究InnoDB锁
  6. 研究MVCC
  7. 研究ThreadLocal
  8. volatile关键字底层原理
  9. 研究Java并发编程的知识
  10. 对多线程的理解

4.2 业务层面

  1. 设计模式的实践
  2. MySQL json类型字段的应用场景
  3. 营销活动的业务建模以及设计模式的优化
  4. 从营销活动的业务场景了解领域驱动设计
  5. 如何正确使用事务与缓存
  6. 更新20w个商品缓存
  7. Java 8 流的使用
  8. 阿里线上诊断工具Arthas
  9. AOP切面编程(其实笔者不太喜欢这个,有时候都不知道别人写的处理逻辑在哪里,一直定位不出bug)

5 Java经久不衰的关键

这有必要引入一个故事。一家创业公司使用php搭建了一个电商购物网站,火爆占领市场后,业务范围不断扩大,使用了oracle付费数据库保证数据持久化服务可靠。又因市场份额逐渐扩大、业务量继续增大,领导聘用某国外参与开源项目的最高技术人,看好当时并不普及的 spring 框架,果断放弃当时普及的 struct框架,从php转型到Java,并采用开源数据库——MySQL。一举拿下电商领域的市场份额,成为国内电商领域的巨头,没有之一。这就是阿里的淘宝的故事。

在今天,阿里也一直推进Java中间件的发展,比如rocketmq、nacos、spring cloud alibaba。在云计算方面更是独树一帜。

Java经久不衰的关键,笔者认为是其能跨平台运行的特点。而且开源社区活跃,有很多成熟的开源解决方案。

6 Java会被取代吗?

这是一个一直备受争议的话题。笔者认为,在阿里仍采用Java作为主流语言的时代,至少在十年内不会被取代。

7 我对Java未来的期许

笔者在大学期间有那么一段时间学习前端的东西,但最终没能独立完成一个前端项目,笔者认为花时间掌握后端技术原理更具有核心竞争力。至今笔者都还看不懂前端代码。但基本的交互能了解个大概。

Java一直在服务器方面有优势。或许是否能弄一个在前端领域有优势的新版本呢?这样后端开发者就再也不用额外学习别的前端语言了。一套Java就能写个前后端分离的小项目,自己放到阿里云上面跑起来。最后放一张超级全面的技术栈图片作为结尾。