APP下载

入门学习Java开发 有什么书籍推荐?学习的方法和过程是怎样的?

消息来源:baojiabao.com 作者: 发布时间:2026-05-18

报价宝综合消息入门学习Java开发 有什么书籍推荐?学习的方法和过程是怎样的?

现在互联网上资源丰富,Java 学习并不难。贴个 Java 服务端入门和进阶指南,是给我们组新人入门用的,包括了学习目标、需要掌握的技能和参考资料,并规划了学习阶段和时间,希望帮助到题主。前言欢迎加入我们。这是一份针对实习生/毕业生的服务端开发入门与进阶指南。遇到问题及时问你的 mentor 或者直接问我。 建议:尽量用 google 查询技术资料。有问题在 stackoverflow 找找,大部分都已经有人回答。多看官方的技术文件。ibm developerworkers 的文章质量整体上有保障。平时花一些时间在 github 上阅读优秀专案源代码。

入门(1-2 个月)目标:参与简单的专案开发。技能:掌握 Java。经典的《Java 核心技术:卷1 基础知识》(或者《Java 程式设计思想》)必看,跳过其中的图形和 applet 章节。习惯查阅 Java API Doc。为了保证程式码的质量,《Effective Java》、《Clean Code》和《重构》也需要至少通读一遍。

熟悉 Linux 开发环境和 bash shell。Linux 是我们的开发和部署环境,你最好尽快熟练它。Linux 的基本使用可以通过《鸟哥的Linux私房菜:基础学习篇(第三版)》学习,开发 bash shell 指令码可以参考《Linux Shell指令码攻略》。

掌握开发工具

熟练使用一种 IDE。Intellij IDEA或者 Eclipse 都可以,推荐使用前者。至少熟悉常用的快捷键,会 debug(包括远端 debug)专案。熟悉一种编辑器。比如 Vim/Emacs/Sublime Text,至少学会搜寻/替换/程式码补全。掌握 JDK 以外的常用类库和工具包。JDK 原生 API 在很多场景下使用并不方便。你需要掌握社群贡献的优秀类库和工具包,比如 apache commons、google guava 等,具体可以翻阅 服务端技术选型 的Utility 篇。

掌握 Web 开发框架。我们使用 Spring(或Rose) + Ibatis(或Jade) 开发 web 服务,你需要熟练掌握它们。

学习程式码规范。我们大致上遵循 oracle 的 Java 语言编码规范,你可以先阅读并熟悉它。Code Formatting 档案在 [email protected]/coding-standard.git,在编写程式码之前,请把它汇入到 IDE 中。另外,确认 IDE 已经安装 Findbugs 和 CheckStyle 外挂。

熟悉开发流程。我们的开发流程大致如下:功能开发->单元测试->功能测试->Code Review->整合测试->释出。确保你熟悉其中的每个环节。

其他。需要熟练使用版本控制工具 Git(阅读:《Git 权威指南》),以及专案构建工具 Maven(阅读:《Maven 实战》)。另外,在这个阶段可以尝试 TDD 开发。

进阶(2-6 个月)

目标:独立负责某个服务端专案。

技能:

掌握 web 开发最佳实践,掌握 Restful API 设计,理解 Spring 原理。推荐阅读《Spring揭秘》。掌握专案分层、子模组划分。推荐阅读:《J2EE 核心模式》。掌握 web 架构设计。包括 Http 反向代理,资料快取,负载均衡,水平扩充套件和垂直扩充套件。推荐阅读:《分散式 Java 应用:基础与实践》。掌握关系型数据库。包括设计 MySQL 表结构,根据业务特点分表分库,基于执行计划的 SQL 分析优化,以及数据库容量规划。推荐阅读:《MySQL 必知必会》、《高效能 MySQL》。了解 NoSQL。我们大规模使用 Hadoop、HBase、Hive,同时部分专案使用 Redis、Storm。你需要学会这些工具最基本的使用。学习 web 安全知识。了解 web 前端安全问题。设计安全 web 服务,包括加解密、防伪造、防重放攻击等。掌握 Http (推荐阅读:《图解Http》、《http权威指南》)、Thrift 等协议。掌握服务容量规划,效能调优,可靠性保证,以及故障处理。学习容量规划和效能调优知识,梳理业务监控点,熟练使用我们的监控报警系统。推荐阅读:《深入理解 Java 虚拟机器》。其他。设计模式:从专案中学习,有时间可以看看《深入浅出设计模式》、《JDK 里的设计模式》。学习Java Socket 程式设计与多执行绪知识,可以看看《Java 并发程式设计实战》,并翻翻并发程式设计网的文章。

深入(6 个月-)目标:分散式系统和中介软件开发。

构建知识体系:《大型网站系统与 Java 中介软件实践》、《大型网站技术架构:核心原理与案例分析》。

原理与设计:《大规模储存式系统》、《UNIX 网络程式设计 卷1:套接字联网 API》、《How Tomcat Works》。

学习开源专案:Apache Thrift、Zipkin、Netty、Rose、Jade、淘宝 RPC 系统 Dubbo 等。分析专案中的设计思路。比如,同样是RPC框架,Finagle 和 Dubbo 有什么异同。

其他。根据参与的专案加深学习吧。比如,如果需要写 DSL,可以读一下《领域特定语言》,对 Redis 感兴趣推荐读一下:《Redis 设计与实现》。有两本书,无论做什么专案,都推荐读:《Unix 程式设计艺术》、《UNIX 环境高阶程式设计(第3版)》。

最后还是要推荐下小编的Java学习群:641121948,也可以加我微信:Zhanlaoshi51 不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2019最新的java精讲视讯入门教程,欢迎初学和进阶中的小伙伴。

每天晚上20:00都会开直播给大家分享入门学习java的知识和路线方法,群里会不定期更新最新的教程送2019java学习教程),大家都是学习技术的,或是兴趣,或是大学生,还有工作中想提升自己能力的朋友,如果你是正在学习java的小伙伴可以加入学习。最后祝所有爱好者都能够走上人生巅峰,让程式码将梦想照进现实,非常适合新手学习,有不懂的问题可以随时问我,工作不忙的时候希望可以给大家解惑。

2020-01-05 17:52:00

相关文章