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

开发者社区> 沉默王二> 正文

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

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

《Java编程思想》无疑一直都会被大力推荐,可是第四版的出版时间竟然早在 2007 年,全书大部分的代码是基于 JDK 1.5 完成的。如今什么年代了?


告诉你一个好消息,《Java编程思想》的作者 Bruce Eckel 在 2017 年的时候发布了第五版,没想到吧?为什么在网上都看不到这本书的消息呢?因为改名了,而且只有电子版。



这本书的所有源代码已经开源在 GitHub,传送门:


https://github.com/BruceEckel/OnJava8-Examples


如果英语水平像我一样菜,看英文版比较费劲,可以在 GitHub 上查看大婶们的译本,传送门:


https://github.com/LingCoder/OnJava8


如果英语水平还不错,可以自行购买电子版的《On Java 8》,虽然比较贵。


2)《Java 核心技术卷一》


《Java核心技术卷一》是唯一可以和《Java编程思》媲美的一本 Java 入门书。单从技术的角度来看,前者更好一些。但上升到思想层面嘛,自然后者更好,两者的偏重点不同。


思想不会变,所以《Java编程思想》还停留在第 4 版(2007 年);而技术是要更新迭代的,所以《Java核心技术卷一》来到了第十版(2016 年)。


我们来看一下《Java核心技术卷一》第十版的大纲。



前九章:包括 “Java 程序设计概述”、“Java 程序设计环境”、“Java 的基本程序设计结构”、“对象与类”、“继承”、“接口”、“lambda 表达式与内部类”、“异常”、“断言和日志”、“泛型程序设计”、“集合”。这九章讲述的是 Java 基础知识点,是 Java 程序员必须要掌握的内容,所以必看。


第十到第十二章:讲的是 AWT 和 Swing,个人感觉这部分内容属于不需要再学的 Java 知识点。当然了,窗口编程涉及到的“事件驱动-监听-方法回调”的机制蛮重要的,需要掌握,但和 AWT 和 Swing 的关联度不大。就好像,我们取钱直接去招商银行,没必要把招商银行的钱转到工商银行再取出来。


第十三章:讲的是应用部署和 Applet,显然 Applet 也没必要学了。出版社没有把这部分内容删掉,纯粹是为了让这本书变得更笨重(定价就高了)。


第十四章:并发编程。这也是 Java 学习过程中最难的一块之一,另外一难是 Java 虚拟机。但这是初级程序员迈向高手的必经之路。


整体上来讲,《Java核心技术卷一》非常值得一读,广度和深度都恰到好处。强烈推荐。


我知道,有些同学因为工作时间的原因,一直没有时间读书。像《Java核心技术卷一》这样厚得像特朗普的脸皮一样的书,更是没有时间读了。不过,不要担心,二哥替大家解决了这个烦恼,我用了一个月的时间把这本书完整地读了一遍,并写了 9 篇高质量且通俗易懂的文章,供大家作为参考。


先来通过思维导图看一下这 9 篇 Java 核心技术博文涉及到的内容。


image.png


下面是这 9 篇 Java 核心技术博文对应的链接。


Java面试官:兄弟,你确定double精度比float低吗?


请用面向对象的思想,谈一谈这次面试的过程


再谈 Java 的继承和超类 Object


Java:接口和抽象类,傻傻分不清楚?


Java生成二维码分享海报


Java:优雅地处理异常真是一门学问啊!


教妹学 Java:晦涩难懂的泛型


教妹学Java:大有可为的集合


教妹学 Java:难以驾驭的多线程


3)《Head First Java》



在我遇到《Head First Java》之前,如果你要我推荐 Java 技术书,我会毫不犹豫地推荐《Java 编程思想》和《Java 核心技术卷》,因为大家都说好嘛,我只能“同流合污”了(强颜欢笑);但换成是现在的话,我会优先推荐《Head First Java》。


尽管《Head First Java》也非常的厚,至少比我的脸皮后,但趣味性就要甩前面两本好几条街了。这年头,大家都没时间读枯燥的技术书,尤其是厚的。上一张图大家感受一下《Head First Java》的调皮吧。



就冲着这张图,我觉得《Head First Java》的作者就足够的大胆。作者挑选的图片可以说张张经典,真正实现了“图文并茂”的需求,搞得你感觉有点不好意思,仿佛不是在读一本 Java 技术书,而是在读一本《知音》。


不止是图片,还有游戏、拼图、解谜题以及意想不到的内容。真的是一点都不“正经”,正因为如此,阅读起来才感觉兴趣盎然。


第一章主要介绍了 Java 的工作原理、发展简史、程序结构。


第二章主要介绍了 Java 的面向对象,包括继承、覆盖等内容。


什么是面向对象编程(OOP)?


第三章主要介绍了 Java 的变量。关键点:引用变量存储的是对象的地址(储存方式)、数组也是对象。


为什么要将局部变量的作用域最小化?


第四章主要介绍了 Java 的方法。关键点:实参和形参、值传递和引用传递、== 和 equals()。


Java到底是值传递还是引用传递?


如何比较 Java 的字符串?


第五章主要介绍了程序设计与实现的步骤。


第六章主要介绍了 Java 的 API。关键点:ArrayList。


第七章主要介绍了继承和多态。关键点:覆盖和重载。


第八章主要介绍了接口和抽象类。关键点:超类 Object。


再谈 Java 的继承和超类 Object


第九章主要介绍了构造器与垃圾收集器。关键点:对象存储在堆中,对象引用在栈中;当对象失去最后一个引用变量时,它会被回收。


第十章主要介绍了静态类、静态方法、静态变量。关键点:final、常量、数字格式化、日期表示法。


第十一章主要介绍了异常处理。


第十二章和第十三章,主要介绍了 GUI 和 Swing。关键点:事件处理机制。


第十四章主要介绍了序列化和文件输入/输出。关键点:Serializable接口。


Java Serializable:明明就一个空的接口嘛


第十五章主要介绍了网络 Socket 和多线程。


Java Socket:飞鸽传书的网络套接字


Java 网络编程:必知必会的 URL 和 URLConnection


第十六章主要介绍了集合和泛型。


第十七章主要介绍了程序的打包和发布。


第十八章主要介绍了远程服务调用。


4)《Effective Java》


《Effective Java》除了翻译让众多 Java 程序员诟病之外,再没有任何缺点了(有读者戏称:“这本书为翻译们作出了杰出的表率”)。其目标是帮助 Java 程序员更加有效地使用 Java 编程语言及其基本类库,主要涉及到 java.lang、java.util、 java.io 包下面的类。



《Effective Java》第三版一共包含了 90 条极具实用价值的经验规则,每条规则都值得 Java 程序员在实战中去参照。这本书不需要按部就班地从头到尾读,可以随意挑选任意小节进行阅读,因为每条规则相对都是独立的,尽管它们之间会交叉引用,但并不妨碍我们随心所欲地阅读。


作者 Josh Bloch 非常的牛逼,曾是 Google 的首席 Java 架构师,《Java开发者杂志》将他列为世界上最顶尖的四十名软件人物之一。Java 之父詹姆斯·高斯林对《Effective Java》的评价也非常的高。


这里有一份第三版的中文在线翻译文档,大家可以参照一下。


https://github.com/sjsdfg/effective-java-3rd-chinese/tree/master/docs/notes


我在读这本书的时候,曾写过两篇文章,大家也可以阅读一下。


为什么要将局部变量的作用域最小化?

面试官:兄弟,说说基本类型和包装类型的区别吧


5)《Java网络编程》


《Java网络编程》全面介绍了如何使用 Java 开发网络程序。网络编程是指编写运行在多个设备(计算机)上的程序,这些设备可以通过网络连接起来。这也是 Java 基础学习完后必须要学习的一大块内容,包括:Internet 底层协议(TCP/IP 和 UDP/IP)、网络输入和输出、DNS 交互、定位、识别和下载网络资源、HTTP 协议(REST、HTTP 头部和 Cookie)、Socket 通信等等。



这本书的整体评价并不算高,吐槽的反而更多。但是,对于学习 Java 网络编程的基础知识非常的有用。


6)《Java 并发编程实战》


《Java并发编程实战》深入浅出地介绍了 Java 线程和并发编程,是一本还算不错的 Java 并发编程参考手册。本书从并发和线程安全性的基本概念出发,介绍了如何使用类库来提供基本的并发方案,包括如何利用线程来提高并发应用程序的吞吐量、如何识别可并发执行的任务、如何提高单线程子系统的响应性、如何确保并发程序执行预期的任务,如何提高并发代码的性能和可伸缩性等等内容。



但我必须要说的是,《Java并发编程实战》这本书并没有摆脱翻译枯燥的老毛病,读起来很需要耐住性子,不然就很难把这本书吃透。当然了,并发编程本身就很难,大家要做好心理准备。


7)《深入理解Java虚拟机》


《深入理解 Java 虚拟机:JVM 高级特性与最佳实践(第 2 版)》是唯一一本我们国内程序员写的经典书,可以媲美《Java 编程思想》。



这本书牛逼到什么程度,几乎所有写 Java 虚拟机方面的文章,没有一个不在文章最后注明:本文参考字周志明老师的《深入理解 Java 虚拟机》。假如这篇文章最后没有注明的话,那保不准是不尊重版权。


第 1 版两年内印刷近 10 次,好评(五星)如潮,是整个 Java 图书领域公认的经典著作和畅销书。


第 2 版共分为 5 大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对 JVM 进行了全面深入的分析,深刻揭示了 JVM 的工作原理。


第一部分主要介绍了 Java 的技术体系、Java 和 JVM 的发展历程。


第二部分主要介绍了 JVM 的自动内存管理,包括虚拟机的内存区域划分原理,内存溢出产生的原因、常见的垃圾收集算法、垃圾收集器的工作原理等等。


第三部分主要介绍了类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎。


第四部分主要介绍了程序的编译和代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;还有 HotSpot 的即时编译器。


第五部分主要介绍了 Java 实现高效并发的原理,包括 JVM 内存模型等。


作者周志明更成为了广大 Java 程序员心目中的大神级人物,厉害厉害了!有读者曾这样感叹道:“国内程序员很难再写出这么经典的书了!”


如果大家想要成为一名优秀的 Java 程序员,本书不得不读啊!并且是细细品味的那种。


8)《Java性能权威指南》


市面上专注于 Java 性能的书不多,《Java性能权威指南》算是一本很不错的。通过阅读本书,我们可以运用 4 个基本原则最大程度地提升性能测试的效果、使用 JDK 自带的工具收集程序的性能数据、理解 JIT(即时编译器)编译器的优缺点、调优 JVM 垃圾收集器、最大程度优化多线程等等。



9)《代码整洁之道》


我可以这么肯定地说:《代码整洁之道》值得所有的程序员读一读。软件的质量,不仅依赖于架构,更与代码质量息息相关。而代码的质量与其整洁度成正比关系,越整洁的代码,其质量毫无疑问的就会越高。由于本书中的例子是由 Java 实现的,因此 Java 程序员在读这本书的时候有着天然的优势。



如何写出整洁的代码呢?Keep It Simple Stupid:代码简单直接,不仅能够提高代码的效率,还能够让阅读代码的人赏心悦目。


本书的第一章,对整洁代码下了一个定义,每个程序员都应该铭记在心。


1、整洁的代码力求专注,每个方法、每个类都应该全神贯注于一件事;命名更要给人一种“顾名思义”的感觉。

2、整洁的代码简单直接,从不隐藏设计者的意图。

3、整洁的代码应当有单元测试。

4、整洁的代码拒绝重复,其表达力直击人的心灵。

10)《设计模式之禅》


《设计模式之禅(第 2 版)》是设计模式领域公认的 3 本经典著作之一,也是我们国内程序员写的一本书,趣味化十足,读起来也非常容易理解。这本书值得所有的程序员读一读,但 Java 程序员读起来更容易上手,因为源码是 Java 完成的。作者名叫秦小波,和我最喜欢的作家王小波同名。



本书可以分为五个部分:


第一部分(第 1~6 章),包含有单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则等内容,对面向对象程序员设计的 6 大原则进行了深刻解读。


第二部分(第 7~29 章)通过大量生动的案例讲解了 23 种最常用的设计模式。包含单例模式、工厂方法模式、抽象工厂模式、模板方法模式、建造者模式、代理模式、原型模式、中介者模式、命令模式、责任链模式、装饰模式、策略模式、适配器模式、迭代器模式、组合模式、观察者模式、门面模式、备忘录模式、访问者模式、状态模式、解释器模式、享元模式、桥梁模式。


第三部分(第 30~33 章)对同类型和相关联的模式进行了比较,旨在说明它们之间的差别。


第四部分(第 34~36 章)探讨了如何在实际开发中将各种设计模式混合起来使用的可能性,以发挥设计模式的最大功效。


第五部分(第 37~38 章)主要讲解了 5 种新的设计模式的原理、意图和最佳实践。


大家都听说过,学习设计模式非常的重要,那么为什么这么重要呢,设计模式到底是什么?打个比喻学编程就像学武功一样。


武功要练得很牛逼,有两样东西不能丢。第一,是内功;第二,是武功秘籍。内功对应到编程就是我们编程基础能力,那编程的设计模式就可以想象成武术中的武功秘籍。


设计模式就是根据不同类型场景,设计优雅的(编码)解决方案。学好设计模式有很多好处,比如,容易看懂经典代码中的逻辑(很多优秀的开源框架大量使用了设计模式);应对面试时对答如流(设计模是面试重点);可以编写出优雅的解决方案(或者代码)。


11)《Java开发手册》


《Java开发手册》是每个 Java 程序员都值得拥有的一本参考指南。该手册涵盖了编程规约、异常日志、单元测试、安全规约、MySQL 数据库、工程结构、设计规约灯 7 个部分,参考价值极大。




《Java 开发手册》作为阿里官方的 Java 代码规范标准,是行业内领先的开发规范文档。如果能够认真践行该手册中提到的规约,绝壁能够帮助 Java 程序员养成良好的编程习惯,并且提高代码的质量和降低项目维护的难度。


据说,这本手册在阿里内部打磨了很久很久才对外开放的,所以倾注了很多大佬们的心血。况且,阿里作为一个大厂,拿出来一份有瑕疵的手册,多少会丢脸,所以这本手册绝对值得读一读。


本手册的作者孤尽曾说:


代码规范这事情,它是一个吃力不讨好,短期没结果,费心又费力的事情。唯有自己内心的技术情怀。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
26793 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10883 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12076 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9161 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
11818 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
4660 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7496 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
22404 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载