【大学四年自学Java的学习路线】写了一个月,这是一份最适合普通大众、非科班的路线,祝你零基础快速找到一份满意的工作(1)

简介: 【大学四年自学Java的学习路线】写了一个月,这是一份最适合普通大众、非科班的路线,祝你零基础快速找到一份满意的工作

最近又有一个读者“在你的世界各地”向我提了上面这个问题。但说实话,这个问题并不太好问答。因为 Java 是一门“历史悠久”的编程语言,它的学习资料多到令人眼花缭乱。


但不能为自己找借口啊,毕竟读者就是上帝。于是我花了一个月的时间,精心为你准备了一份万字长文,史上最佳的 Java 自学指南,保证你能找到一份满意的工作。


先来梳理一下读者强调的关键词,有 3 个,分别是“零基础”、“自学”、“找到工作”。


1)“零基础”意味着我提供的学习路线不能太难,或者说应该是循序渐进的。


2)“自学”意味着我提供的学习素材不能太枯燥,或者说应该是幽默风趣的。


3)“找到工作”意味着学习周期要尽可能的短,但还要学有所成。


01、为什么要学 Java


因为 Java 是世界第一的编程语言啊!谁给的底气?大概是 TIOBE 这个编程语言排行榜吧。


TIOBE 是编程语言流行趋势的一个指标,每月更新,基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(Google、Bing、Wikipedia)进行计算。


image.png

上面这幅图是几个热门编程语言(Java、C、Python、JavaScript 等等)近些年来的增长趋势。可以看得出,Java 霸占这份榜单很多年,并且还会持续更久。


1)简单易学,老少咸宜。Java 继承了 C++ 语言面向对象的核心技术,舍弃了容易引起错误的指针,移除了运算符重载和多重继承等难以理解的概念,增加了垃圾回收机制,这些大大简化了程序员的开发成本。


2)跨平台。任何平台只要安装了 JVM(Java 虚拟机),就能运行 Java 程序。真正实现了“Write once, run anywhere”。


3)丰富的类库。全球约有 900 万名 Java 开发人员,创造了一个充满活力和积极进取的 Java 社区,开源类库非常丰富。借助这些类库可以让开发者避免重复造轮子,不用去关注 Java 底层的开发,只关注业务的实现。


4)广泛使用。据估计,全球范围内有超过 30 亿部设备运行 Java,超过其他任何一种语言。Java 被用于众多全球知名的网站中,包括 eBay.com、Linkedin.com、Amazon.com 和 Facebook.com。这一点应该是 Java 屹立不倒的深层次原因吧,大家都在用,才是真的强啊。


5)薪资可观。很多企业都需要 Java 方面的人才,这是一个非常现实的原因,为了生计着想,学习 Java 这个方向不会有错!


02、哪些 Java 知识不需要再学了


张无忌在学太极拳的时候,他爹的师父张三丰告诫他一定要把之前所学习的武功全部忘掉,忘得越多就会学得越快。


同样的,自学 Java 的时候一定要先知道哪些 Java 知识不需要再学了,毕竟技术的更新迭代就好像火箭一样快,Java 的一些知识点早已经过时了。如果不懂得断舍离,那学起来就不免太痛苦了。


1)AWT 和 Swing


真不知道为什么,有些书籍还在介绍 AWT 和 Swing,这就好像不知道大清朝早已经亡了几百年一样。已经 9102 了,谁还会用 AWT 和 Swing 去开发桌面应用呢?


就我所知,C++ 程序员会用 MFC,C# 程序员会用 Winform 和 WPF。甚至还可以用一种更时髦的技术(比如 Electron)把 Web 网页裹一层华丽的外衣,变成可执行文件。


2)Applet


作为网页插件技术,Applet 压根就没流行起来,就连曾经的热门 Flash 也要淘汰了。


3)XML


XML 还没有被淘汰,应用的地方还有不少。但是作为一种数据传输格式,它正在被 JSON 替代。


4)JDBC


我个人不建议再学习偏底层的 JDBC 了,尤其是对于时间宝贵的自学程序员来说。与其花这点时间,不如把精力投入到 MyBatis 的学习上。


5)Struts


Struts 是早年一个优秀的 MVC 框架,单从技术的角度来看,还是蛮不错的。但是自从有了 SpringMVC 后,Struts 就被拍死在沙滩上了。


6)Hibernate


在我刚参加工作那会(2010 年的时候),持久层框架用的正是 Hibernate。但时过境迁,Hibernate 太重量级了,学习成本太高,取而代之的是轻量级的 MyBatis(支持定制化 SQL、存储过程以及高级映射)。


7)JSP


说起来惭愧,我现在维护的一个项目,视图层用的依然是 JSP。但如今流行的是“前后端分离”,JSP 就显得不合时宜了。


03、学习 Java 需要安装的软件


工欲善其事必先利其器,战斗之前我们要先配备好武器。


1)JDK


JDK 是 Java Development ToolKit 的简称,也就是 Java 开发工具包。JDK 是整个 Java 的核心,包括 Java 运行环境(Java Runtime Envirnment,简称 JRE),Java 工具(比如 javac、java、javap 等等),以及 Java 基础类库(比如 rt.jar)。


2)IDE


集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。


在我初学 Java 的时候,老师竟然告诫我们不要使用 IDE(当时是 MyEclipse 风靡的年代),而要使用文本编辑工具,比如说 Editplus、Nodepad++。


老师说的有一定的道理,比如说,在没有代码提醒的帮助下,我们能够通过不停的手敲记住一些 Java 的常见名词。但在我看来也就仅此而已。


没有 IDE 的帮助,让初学者对编程望而生畏,因为那些名词实在是太多了。我们班当时很多同学就是因为觉得太痛苦了,就放弃编程了。


我到现在也不太会敲 extends、implements(在 Eclipse 中复制出来的),不会敲又怎样呢?有好的工具,我们就应该利用,不应该受苦。


下面是最为受欢迎的 IDE 的榜单。


image.png


对于我来说,一直喜欢的是 Eclipse,这可能是一种情怀吧。


据说,喜欢 IntelliJ IDEA 的 Java 程序员越来越多了。


3)JAD


将源代码转换成二进制执行代码的过程叫做“编译”,一般指的是将 Wanger.java 编译成 Wanger.class 字节码文件;而将字节码文件转换成源代码的过程叫做“反编译”,比如将 Wanger.class 转成 Wanger.java。


JAD 是一款老牌的、经典的 Java 反编译工具。更重要的是,JAD 能够让我们深入的了解 Java 代码的工作机制。


比如说有这样一段代码:


String chenmo = "沉默";

String wanger = "王二";


System.out.println(chenmo + wanger);


它的“庐山真面目”是下面这样子的。


String chenmo = "\u6C89\u9ED8"; // 沉默

String wanger = "\u738B\u4E8C"; // 王二

System.out.println((new StringBuilder(String.valueOf(chenmo))).append(wanger).toString());



4)Maven


Maven 是一个项目管理和自动化构建工具,基于项目对象模型(POM)的概念,可以管理项目的构建、报告以及文档。作为 Apache 组织中的一个颇为成功的开源项目,Maven 主要服务于基于 Java 的项目构建、依赖管理和项目信息管理。


相关文章
|
19天前
|
存储 分布式计算 Oracle
Java初级学习路线
本文为Java初学者提供了一条清晰、系统的学习路线,从环境搭建到实战练习,涵盖了Java基础语法、面向对象编程、常用API、异常处理及项目实践,助你从零开始掌握Java编程,打下坚实基础。
|
13天前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
132 3
|
3月前
|
消息中间件 Java 微服务
2025 版 Java 学习路线实战指南从入门到精通
《Java学习路线实战指南(2025版)》是一份全面的Java开发学习手册,涵盖基础环境搭建、核心语法与新特性、数据结构与算法、微服务架构、云原生技术栈、AI融合及项目实战。内容包括JDK安装配置、IntelliJ IDEA设置、Records类与模式匹配增强、LeetCode题解、Spring Cloud微服务开发、Kubernetes部署、OpenAI API调用等。结合在线商城系统案例,采用Vue 3、Spring Boot 3.5、MySQL、Elasticsearch等技术,提供从理论到实践的完整路径,助力开发者掌握2025年最新趋势与最佳实践。
301 4
|
14天前
|
Java 数据库连接 微服务
零基础自学 Java 全栈必备最全学习路线及知识清单方向指引
本文为零基础学习者提供完整的Java全栈学习路线,涵盖Java基础、进阶、框架、项目实战及拓展方向,助你系统掌握全栈开发技能,快速成长为优秀Java工程师。
117 6
|
16天前
|
算法 Java 测试技术
零基础学 Java: 从语法入门到企业级项目实战的详细学习路线解析
本文为零基础学习者提供完整的Java学习路线,涵盖语法基础、面向对象编程、数据结构与算法、多线程、JVM原理、Spring框架、Spring Boot及项目实战,助你从入门到进阶,系统掌握Java编程技能,提升实战开发能力。
58 0
|
2月前
|
存储 安全 Java
Java 学习路线 35 掌握 List 集合从入门到精通的 List 集合核心知识
本文详细解析Java中List集合的原理、常用实现类(如ArrayList、LinkedList)、核心方法及遍历方式,并结合数据去重、排序等实际应用场景,帮助开发者掌握List在不同业务场景下的高效使用,提升Java编程能力。
267 0
|
2月前
|
安全 算法 Java
Java 多线程:线程安全与同步控制的深度解析
本文介绍了 Java 多线程开发的关键技术,涵盖线程的创建与启动、线程安全问题及其解决方案,包括 synchronized 关键字、原子类和线程间通信机制。通过示例代码讲解了多线程编程中的常见问题与优化方法,帮助开发者提升程序性能与稳定性。
110 0
|
2月前
|
Java API 调度
从阻塞到畅通:Java虚拟线程开启并发新纪元
从阻塞到畅通:Java虚拟线程开启并发新纪元
269 83
|
3月前
|
存储 SQL 安全
Java 无锁方式实现高性能线程实战操作指南
本文深入探讨了现代高并发Java应用中单例模式的实现方式,分析了传统单例(如DCL)的局限性,并提出了多种无锁实现方案。包括基于ThreadLocal的延迟初始化、VarHandle原子操作、Record不可变对象、响应式编程(Reactor)以及CDI依赖注入等实现方式。每种方案均附有代码示例及适用场景,同时通过JMH性能测试对比各实现的优劣。最后,结合实际案例设计了一个高性能配置中心,展示了无锁单例在实际开发中的应用。总结中提出根据场景选择合适的实现方式,并遵循现代单例设计原则以优化性能和安全性。文中还提供了代码获取链接,便于读者实践与学习。
82 0

热门文章

最新文章