Java书籍推荐有哪些

Python08

Java书籍推荐有哪些,第1张

对于初学者来说,看书只是学习的一部分,还有很重要的一部分就是实践,一定要多敲代码,多敲代码,多敲代码。下面给大家推荐几本个人觉得还不错的书。

书是永远都读不完的,但是知识可以是自己的,只有选择适合你自己的书单,才是最佳的解决方案。有些书籍是因为当时有项目需要用到这方面技术才需要看的,比如云计算和大数据相关的书籍,单纯的Java学习者可以忽略这方面的书籍,特此提醒。

1. 《程序员修炼之道》(推荐67%)

The Pragmatic Programmer:From Journeyman to Master

作者:[美]Andrew Hunt,David Thomas

内容简介:

《程序员修炼之道》之所以在全球范围内广泛传播,被一代代开发者奉为圭臬,是因为它可以创造出真正的价值:或编写出更好的软件,或探究出编程的本质,而所有收获均不依赖于特定语言、框架和方法。

“要把低级的知识放在代码中,它属于那里;把注释保留给其他的高级说明。”

—— 引自 第2章 务实的方法

2.《代码整洁之道》(推荐66%)

Clean Code:A Handbook of Agile Software Craftsmanship

作者:[美]Robert C. Martin

内容简介:

干净的代码,既在质量上较为可靠,也为后期维护和升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践,并辅以来自实际项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

“我们都曾经瞟一眼自己亲手造成的混乱,决定弃之不顾,走向新一天。 我们都曾经看到自己的烂代码居然能运行,然后断言能运行的烂程序总比没有强。 我们都曾经说过有朝一日再回头清理。当然,那些日子里,我们都没听过勒布朗( LeBlanc )法则:稍后等于永不( Later equals never.) 。”

——引自 第1章 1.2 糟糕的代码

3.《代码大全》(推荐42%)

Code Complete

作者:[美]Steve McConnell

内容简介:

本书被广泛认为是编程的最佳使用指南,其十多年来一直帮助开发人员编写更好的软件。

这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。

“有效地管理(需求)变更是实现高质量的一个关键。”

——引自 第20章 软件质量概述

4. 《重构》(推荐35%)

Refactoring: Improving the Design of Existing Code

作者:[美]Martin Fowler

内容简介:

书中清晰揭示了重构的过程,解释了重构的原理和实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了60多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。

本书提出的重构准则将帮助开发人员一次一小步地修改代码,从而减少开发过程中的风险。

“过去20年,《重构》一直是我案头必备的图书。每次重读,仍有感悟。对我而言,《重构》的意义不只在于指导代码重构,更在于让人从一开始就知道什么是好的代码,并且尽量写出没有'坏味道'的代码。Martin Fowler这次对本书进行的重构,体现了近年来编程领域的一些思潮变化。看来,既有设计,永远有改进空间。”

——韩磊,《代码整洁之道》译者

5.《深入浅出设计模式》(推荐29.4%)

Head First Design Patterns

作者:[美]Eric Freeman,Bert Bates,Kathy Sierra,Elisabeth Freeman

内容简介:

本书向您展示了功能强大、优雅、可重用、灵活的设计模式,并利用认知科学和学习理论的最新研究来创造多感官的学习体验,采用视觉丰富的形式,专门为大脑的工作方式而设计,而不是使您沉入睡眠的繁琐的文本输入法形式。

“针对接口编程,而不是针对实现编程。”

——引自 影印版 第11页

6.《人月神话》(推荐27.9%)

The Mythical Man-Month:Essays on Software Engineering

作者:[美]Frederick P. Brooks Jr

内容简介:

本书内容源于作者Brooks在IBM公司任System/360计算机系列以及其庞大的软件系统OS/360项目经理时的实践经验。在本书中,Brooks为人们管理复杂项目提供了最具洞察力的见解,既有很多发人深省的观点,又有大量软件工程的实践,为每个复杂项目的管理者给出了自己的真知灼见。

“简洁和直白来自概念的完整性。每个部分必须反映相同的原理、原则和一致的折中机制。在语法上,每个部分应使用相同的技巧;在语义上,应具有同样的相似性。因此,易用性实际上需要设计的一致性和概念的完整性。”

——引自 章节 团队的性质

7. 《代码整洁之道:程序员的职业素养》(推荐27.9%)

The Clean Coder:A Code of Conduct for Professional Programmers

作者:[美]Robert C. Martin

内容简介:

本书是编程大师 Bob 大叔 40 余年编程生涯的心得体会, 讲解成为真正专业的程序员需要什么样的态度、原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。

“软件行业的飞速改变,意味着软件开发人员必须坚持广泛学习才不至于落伍。”

——引自 第1章 专业主义

8.《修改代码的艺术》(推荐26.4%)

Working Effectively with Legacy Code

作者:[美]Michael Feathers

内容简介:

世界级计算机专家Michael C. Feathers的经典之作,软件开发大师Robert C. Martin作序倾情推荐,修改遗留代码的权威指南。深入剖析修改遗留代码的各种方法和策略,从理解遗留代码、为其编码测试、重构及增加特性等方面给出大量实用建议,是所有程序开发人员必读之作。

“封装是好事情,但可别对测试人员这么说,他们可不这样想。过分庞大的类往往隐藏了过多的东西。”

——引自 第20章 处理大类

9. 《设计模式》(推荐25%)

Design Patterns

作者:[美]Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides

内容简介:

四位顶尖的设计师在面向对象软件的设计方面积累了丰富的经验,针对常见的设计问题提出了一系列简洁、明了的解决方案。这23种设计模式可让设计人员创建更加灵活,美观,可重用的设计,而无需自己再寻找解决方案。

“将系统分解成对象集合要考虑许多因素:封装、粒度、依赖关系、灵活性、性能、演化、复用等等,它们都影响着系统的分解,并且这些因素通常还是互相冲突的。”

——引自 第1章 1.5 组织编目

10. 《程序员面试金典(第6版)》(推荐22%)

Cracking the Coding Interview

作者:[美]Gayle Laakmann McDowell

内容简介:

本书层层紧扣程序员面试的每一个环节,全面而详尽地介绍了程序员应当如何应对面试,才能在面试中脱颖而出。

内容主要涉及面试流程解析,面试官的幕后决策及可能提出的问题,面试前的准备工作,对面试结果的处理,以及出自微软、苹果、谷歌等多家知名公司的189道编程面试题及详细解决方案。

第6版修订了上一版中一些题目的解法,为各章新增了介绍性内容,加入了更多的算法策略,并增添了对所有题目的提示信息。

“我不是招聘人员,我是软件工程师。因此,我知道要当场提出出色的算法,然后在白板上编写无瑕的代码是什么感觉。 作为候选人和面试官,我都经历过这个过程。”

——引自 序

以上呢,是为大家推荐的几本不错的编程书籍资料,大家可以搜索一下读一读,即使无法掌握全部,但充实一下自己的知识量总归没有错!

当然了,除了书籍资料之外,视频教程也是必不可少的,毕竟书本是死的,视频是灵活的,看书的同时不要忘记跟着视频敲代码练项目哦!毕竟以后找工作不是看你能记住多少知识点,而是看你的实战经验,是否能自己开发项目!

在此,我自我推荐一下我们家的Java基础教程,不敢保证有多好,但我们尽全力去辅导:

Java300集零基础适合初学者视频教程_Java初学入门视频基础巩固教程

希望这个回答对你有帮助!

1.用Java编写网络程序是非常简单的——至少比在现有其他编程环境下要简单得多。本书的新版本带给开发者的是Java发展的最新特性。一旦开始使用Java的网络API进行网络编程,我们能做到可以想像到的一切事情。 本书对开发网络程序进行了非常完整的介绍(从应用程序和applet两方面),它包括了从网络基础到远程方法调用(RMI)的所有内容。本书的章节涵盖了TCP和UDP套接字、组播、内容和协议处理器以及两个新的API:JSSE(SSL实现)和JavaMail API。扩充了I/O和多线程等基础知识。还讲述了在不直接编写网络代码时你所能够实现的内容,例如如何用URL实现自己的目标、applet的基本功能以及如何用Swing处理HTML。无论是有经验的网络程序员还是只想随意看一看的初学者,都会发现本书对于Java的网络程序类的学习是相当完整的。本书内容涵盖了:1、Java 2(JDK 1.2和1.3)和Java1.1。2、许多完整的程序(可在线获取)。3、网络编程基础的所有方面。4、一些高级专题,包括RMI和组播。5、许多重要的API,有JSSE、JavaMail以及Swing中的HTML解析器。Elliotte Rusty Harold是著名的Java网站Cafe Au Lait的作者(http://metalab.unc.edu/javafaq),国际知名的计算机专家。他是《Java I/O》以及其他一些Java和XML技术图书的作者。 “直到找到这本书之后,我才开始真正理解Java网络编程。”——Bruce Eckel,《Java编程思想》的作者.

2.JAVA的特点§ 1.2 Java的特点

Java是一个广泛使用的网络编程语言 ,它是一种新的计算概念。

首先 ,作为一种程序设计语言 ,它简单、面向对象、不依赖于机器的结构、

具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。其

次 ,它最大限度地利用了网络 ,Java的小应用程序 (applet)可在网络上传输而

不受 CPU和环境的限制。另外 ,Java还提供了丰富的类库 ,使程序设计者可以很

方便地建立自己的系统。

下面我们分别从这三个方面来讨论 Java的特点 ,然后通过把 Java与 C,

C++相比进一步指出它所具有的优点。

一、 Java语言

Java语言有下面一些特点 :简单、面向对象、分布式、解释执行、鲁棒、

安全、体系结构中立、可移植、高性能、多线程以及动态性。

:1.简单性

Java语言是一种面向对象的语言 ,它通过提供最基本的方法来完成指定的

任务 ,只需理解一些基本的概念 ,就可以用它编写出适合于各种情况的应用程

序。 Java略去了运算符重载、多重继承等模糊的概念 ,并且通过实现自动垃圾

收集大大简化了程序设计者的内存管理工作。另外 ,Java也适合于在小型机上运

行 ,它的基本解释器及类的支持只有 40KB左右 ,加上标准类库和线程的支持也

只有 215KB左右。库和线程的支持也只有 215KB左右。

2.面向对象

Java语言的设计集中于对象及其接口 ,它提供了简单的类机制以及动态的

接口模型。对象中封装了它的状态变量以及相应的方法 ,实现了模块化和信息

隐藏 而类则提供了一类对象的原型 ,并且通过继承机制 ,子类可以使用父类

所提供的方法 ,实现了代码的复用。

3.分布性

Java是面向网络的语言。通过它提供的类库可以处理 TCP/IP协议 ,用户

可以通过 URL地址在网络上很方便地访问其它对象。

4.鲁棒性

Java在编译和运行程序时 ,都要对可能出现的问题进行检查 ,以消除错误

的产生。它提供自动垃圾收集来进行内存管理 ,防止程序员在管理内存时容易

产生的错误。通过集成的面向对象的例外处理机制 ,在编译时,Java提示出可能

出现但未被处理的例外 ,帮助程序员正确地进行选择以防止系统的崩溃。另外,

Java在编译时还可捕获类型声明中的许多常见错误 ,防止动态运行时不匹配问题

的出现。

5.安全性

用于网络、分布环境下的 Java必须要防止病毒的入侵。 Java不支持指针,

一切对内存的访问都必须通过对象的实例变量来实现 ,这样就防止程序员使用

"特洛伊 "木马等欺骗手段访问对象的私有成员 ,同时也避免了指针操作中容易

产生的错误。

6.体系结构中立

Java解释器生成与体系结构无关的字节码指令 ,只要安装了 Java运行时

系统 ,Java程序就可在任意的处理器上运行。这些字节码指令对应于 Java虚拟

机中的表示 ,Java解释器得到字节码后 ,对它进行转换 ,使之能够在不同的平

台运行。

7.可移植性

与平台无关的特性使 Java程序可以方便地被移植到网络上的不同机器。

同时 ,Java的类库中也实现了与不同平台的接口 ,使这些类库可以移植。另外,

Java编译器是由 Java语言实现的 ,Java运行时系统由标准 C实现 ,这使得Java

系统本身也具有可移植性。

8.解释执行

Java解释器直接对 Java字节码进行解释执行。字节码本身携带了许多

编译时信息 ,使得连接过程更加简单。

9.高性能

和其它解释执行的语言如 BASIC、 TCL不同 ,Java字节码的设计使之能

很容易地直接转换成对应于特定CPU的机器码 ,从而得到较高的性能。

10.多线程

多线程机制使应用程序能够并行执行 ,而且同步机制保证了对共享数据

的正确操作。通过使用 多线程 ,程序设计者可以分别用不同的线程完成特定

的行为 ,而不需要采用全局的事件循环机制 ,这样就很容易地实现网络上的实

时交互行为。

11.动态性

Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入

新的方法和实例变量而不会影响用户程序的执行。并且 Java通过接口来支持

多重继承 ,使之比严格的类继承具有更灵活的方式和扩展性。

参考资料:http://chat.xwsy.com/wangshangjiaocheng/java/Java.htm

3.Java已用动态的交互应用软件使Web栩栩如生。它使开发人员

具有‘编写一次到处运行TM”的巨大能力。而且,借助其JavaAPI

及其编程语言上的Java虚拟机,它已产生一种分布信息的崭新模式。

这种模式叫做Java企业计算,正在帮助各企业以各种不同的方法取

得竞争优势。网管和控制已大大简化。软件分配基本上是免费的,

而且立即可实现。电子贸易已获得。占有成本大幅度降低。信息和

应用软件到处可存取。

Java建立在简单的前提基础上,即所有微处理器都应讲同一种

语言——所有内部采用芯片的产品都应能一起工作,无缝而方便地

共享信息。它已经改变企业和个人同Internet大交道的方式。现在,

它正在对消费类产品产生明显的影响,而且从总体上更加深刻地影

响企业计算。

借助Java,您可自由自在地使用您已拥有的硬件和软件。这是因

为Java是独立于平台的。它还可使您超越企业计算,使应用软件在便

携式计算机、信息亭、电视、蜂窝电话和其他大量设备上运行。

全世界的公司都已发现Java数不胜数的用途。所有用途可从其无

可比拟的能力,即提高可靠性、安全性和简化各种不同计算产品和

环境的能力中受益非浅,而且节省的时间和费用十分可观。

Java无处不在。它已拥有几百万个用户,其发展速度要快于在它

以前的其他任何一种计算机产品。它可位于任何地方,而且能到处运

行。Java正在迅速被用做传播信息的事实上标准,这是因为它既可给

企业,也可给最终用户带来似乎数不清的好处。