英文原文:http://www.programcreek.com/2013/08/top-books-for-advanced-level-java-developers/

java语言是当今最受欢迎的编程语言之一。对于初学者来说,有许多有关这样的书籍。但是对于有一些java编程经验的程序员来说,其中有些书过于简单,有些又是过于繁琐。所以这些入门书籍并不会带来新鲜感,激发一些有意思的灵感。然而,java编程的高级书籍并不是很容易写出来的,并不是因为写这些书需要多少技术,多少经验,而是这些是要内功深厚的人才能写出来的。

在这篇文章中,笔者仅仅拿出java高级编程的书籍与大家分享我的看法,这就意味着,像“Thinking in Java” 或是 “Head First Java”并不会出现在这个表单中,即使它们对于初学者来说真的是很好的书。当然,笔者也会尽量避免所列出的书籍仅仅局限于特定的软件或是框架,因为笔者所说的并不是纯java。

1、Java in a Nutshell


  与其说这是一本书籍,倒不如说这是一份参考资料。

2、Effective Java


  这本书是为深入理解java的程序员所准备的。它将78种不可或缺的编程规则玩弄与指尖之中:编程中最佳的运行方案、最佳的解决方案挑战着你每天所见到的认为最佳的。

3、The elements of Java style


  这本书是针对想用java编程的人员来写,它为java程序员提供了一系列规则,标准、约定和参考,并且通过举例子的方式来指导java程序员如何编写出容易理解的、易维护的、可扩张的健壮性的代码。

4、Java Concurrency in Practice


  想把这本弄明白是真的是很困难的一件事情。

5、Design patterns: elements of reusableobject-oriented software


  实际上,这本书中的例子是用c++或是smalltalk编写的,但是那有怎样呢?如果你想成为java开发人员,你就必须得了解设计模式,充分利用别人的经验,还要从那些面临相同的人身上吸取教训。当然,还有许多这样的书籍,不过它们也仅仅做一些补充性的工作。

6、The Pragmatic Programmer: From Journeyman to Master


  再次重申,这并不是只针对java程序员的书籍。这本书最大的用处是能够让代码简练、易阅读。这本书可以帮助你继续提升你的编程能力,

7、Patterns of Enterprise Application Architecture


也许你对设计模式有所了解,但是可能不大知道如何在企业级的框架中运用。这本书会告诉你企业级设计模式的共同特点。

8、Refactoring: Improving the Design of Existing Code


  如果你已有多年的编程经验,那么这一本书真的很适合你读。代码重构会让你所写的代码更易于阅读,更易于维护。

9、OSGi in Action: Creating Modular Applications in Java


或多或少的说,知道面向服务的编程的知识是很有用的。本书的第一部分的几个章节会给你介绍以及给出具体的例子。

10、Clean Code: A Handbook of Agile Software Craftsmanship


  最后一本,但也是很重要的一本。查看你自己编程的特点也是很有用的。开发软件中大约90%的时间都是花在了代码的维护上,所以保持简练的代码是很重要的。

对java高级程序员有益的十本书的更多相关文章

  1. Java高级程序员(5年左右)面试的题目集

    Java高级程序员(5年左右)面试的题目集 https://blog.csdn.net/fangqun663775/article/details/73614850?utm_source=blogxg ...

  2. 成为java高级程序员需要掌握哪些

    section 1 1.Core Java,就是Java基础.JDK的类库,很多童鞋都会说,JDK我懂,但是懂还不足够,知其然还要知其所以然,JDK的源代码写的非常好,要经常查看,对使用频繁的类,比如 ...

  3. 转 Java高级程序员面试题

    1.你认为项目中最重要的过程是那些? 分析.设计阶段  尽量找出进度的优先级 2.如果给你一个4-6人的team,怎么分配? 挑选一技术过硬的人作为我的替补.其它人平均分配任务,每周进行全面的任务分配 ...

  4. Java高级程序员面试题

    1.你认为项目中最重要的过程是那些? 分析.设计阶段  尽量找出进度的优先级 2.如果给你一个4-6人的team,怎么分配? 挑选一技术过硬的人作为我的替补.其它人平均分配任务,每周进行全面的任务分配 ...

  5. java 面试,java 后端面试,数据库方面对初级和高级程序员的要求

    本内容摘自 java web轻量级开发面试教程 对于合格的程序员,需要有基本的数据库操作技能,具体体现在以下三个方面. l  第一,针对一类数据库(比如MySQL.Oracle.SQL Server等 ...

  6. 【转】成为Java顶尖程序员 ,看这11本书就够了

    成为Java顶尖程序员 ,看这11本书就够了 转自:http://developer.51cto.com/art/201512/503095.htm 以下是我推荐给Java开发者们的一些值得一看的好书 ...

  7. [刘阳Java]_Java程序员的成长路线_第3讲

    按照Java从业人员的职位晋升来说,Java程序成长路线大致如下 Java程序员 JavaEE初级软件工程师 JavaEE中级软件工程师 JavaEE高级软件工程师 Java架构师 按照职业发展方向, ...

  8. 如何成为一个C++高级程序员

    C++这门语言从诞生到今天已经经历了将近30个年头.不可否认,它的学习难度都比其它语言较高.而它的学习难度,主要来自于它的复杂性.现在C++的使用范围比以前已经少了很多,java.C#.python等 ...

  9. 程序员带你十天快速入门Python,玩转电脑软件开发(四)

    本系列文章立志于从一个已经习得一门编程语言的基础之上,全面介绍Python的相关开发过程和相关经验总结.本篇文章主要是基于上一篇的程序员带你十天快速入门Python,玩转电脑软件开发(三)的基础之上, ...

随机推荐

  1. SQL注入漏洞的原理

    在平常生活中,我们登陆某网页,常常需要输入用户名和密码,点击登陆,即可登陆成功. 对于黑客来说,不需要用户名和密码,只输入 admin '— 也可以登陆成功. 黑客利用的这种漏洞就是SQL Injec ...

  2. 立即响应ScrollView上的子视图的手势

    self.myScrollView.delaysContentTouches = YES; self.myScrollView.CanCancelContentTouches=NO; 写了一个继承sc ...

  3. [Robot Framework] 怎么做数学运算?

    运用BuiltIn里面的Set Variable

  4. eclipse打开出现Failed to create the java virtual machine

    低配伤不起呀... 这个问题经常是由于创建JAVA 虚拟机时,内存不足导致的,怎么办呢? 1.找到这么个文件:eclipse.ini(在哪?与ECLIPSE.EXE在一起,在一起...) 2.修改里面 ...

  5. .net使用NPOI的XSSFWorkbook进行web开发中导出Excel

    之前也使用过NPOI导出excel,这次是因为在导出的excel里新增了几个列,正好超出了255的限制,所以又要改了. 今天主要出了4个问题: 1. Invalid column index (256 ...

  6. hibernate集合映射inverse和cascade详解<转载>

    1.到底在哪用cascade="..."? cascade属性并不是多对多关系一定要用的,有了它只是让我们在插入或删除对像时更方便一些,只要在cascade的源头上插入或是删除,所 ...

  7. 【Redis】使用Jedis操作Redis

    Jedis介绍 jedis就是集成了redis的一些命令操作,封装了redis的java客户端. Jedis使用 使用jedis需要引入jedis的jar包,下面提供了maven依赖 jedis.ja ...

  8. 【Web】网页清除浮动的方法

    网页中,经常用浮动的div来布局,但是会出现父元素因为子元素浮动引起内部高度为0的问题,为了解决这个问题,我们需要清除浮动,下面介绍4中清除浮动的方法. 在CSS中,clear属性用户清除浮动,语法: ...

  9. java JNI 实现原理 (二) Linux 下如何 load JNILibrary

    在博客java JNI (一)虚拟机中classloader的JNILibrary 中讨论了java中的Library 是由classloader 来load的,那我们来看看 classloader是 ...

  10. SpringMVC作用域传值几种方式

    一.SpringMVC 作用域传值的几种方式 1  使用原生Servlet 1.1 在 HandlerMethod 参数中添加作用域对象 1.1.1 ServletContext不能在方法参数中获取, ...