高级Java必看的10本书

转载自 高级Java必看的10本书

1、深入理解Java虚拟机:JVM高级特性与最佳实践

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

2、从Paxos到Zookeeper:分布式一致性原理与实践

本书从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议。同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方[0法0]、内部实现及运维技巧,旨在帮助读者全面了解ZooKeeper,并更好地使用和运维ZooKeeper。

3、Spring源码深度解析

《Spring源码深度解析》从核心实现和企业应用两个方面,由浅入深、由易到难地对Spring源码展开了系统的讲解,包括Spring的设计理念和整体架构、容器的基本实现、默认标签的解析、自定义标签的解析、bean的加载、容器的功能扩展、AOP、数据库连接JDBC、整合MyBatis、事务、SpringMVC、远程服务、Spring消息服务等内容。

4、Effective Java

这本经典Jolt获奖作品实属众望所归。作者对新版进行了彻底的更新。涵盖了自第l版之后所引入的Java E5和Java SE 6的特性,同时开发了新的设计模式和语言习惯用法,介绍了如何充分利用从泛型到枚举、从注解到自动装箱的各种特性。书中的每一章都包含几个“条目”,以简洁的形式呈现,自成独立的短文,它们提出了具体的建议,对于Java平台精妙之处的独到见解,以及优秀的代码范例。每个条目的综合描述和解释都阐明了应该怎么做,不应该怎么做,以及为什么。

5、Java多线程编程核心技术

资深Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术的专著。本书以浅白的措辞,结合大量实例,全面讲解Java多线程编程中的并发访问、线程间通信、锁等难突破的技术与应用实践。

6、代码整洁之道

软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。《代码整洁之道》提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,《代码整洁之道》作者给出了一系列行之有效的整洁代码操作实践。这些实践在《代码整洁之道》中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。

7、重构 改善既有代码的设计

《重构 改善既有代码的设计》清晰揭示了重构的过程,解释了重构的原理和实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。《重构改善既有代码的设计》提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。

8、Tomcat权威指南

本书是一本万能工具,其主题涵盖了Apache Tomcat这一广受欢迎的开源servlet、JSP容器和高性能的web server。本书对管理员和web站点管理员而言,具有较强的参考价值;对在开发或产品中要使用Tomcat作为web应用程序服务器的开发者而言,这是一本有用的指南书;对Tomcat感兴趣的人而言,这是一本优秀的介绍工具。

9、Netty权威指南

本书是异步非阻塞通信领域的经典之作,基于全新版本的Netty 5.0编写,是国内首本深入介绍Netty原理和架构的书籍,也是作者多年实战经验的总结和浓缩。内容不仅包含Java NIO入门知识、Netty的基础功能开发指导、编解码框架定制等,还包括私有协议栈定制和开发、Netty 核心类库源码分析,以及Netty 的架构剖析。

10、O'Reilly:Head First设计模式

本书共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。《O'Reilly:Head First设计模式(中文版)》趋近完美,因为它在提供专业知识的同时,仍然具有相当高的可读性。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES嵌套聚合

【1】 // dsl {"_source":["RCRD_ID", "STATE", "BUSI_CODE"], "query":{"bool":{"filter":[{"term":{"STATE":"PDOS"} }, {"nested":{"path":…

进阶Java架构师必看的15本书

转载自 进阶Java架构师必看的15本书 1、大型网站技术架构:核心原理与案例分析 本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例&#xff0…

HDU2612(BFS算法)

Problem Descrption Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki. Yifenfei’s home is at the countryside, but Merceki’s home is in…

es 嵌套类型聚合

【1】分组后求均值聚合 //dsl {"_source":["RCRD_ID", "STATE", "BUSI_CODE"], "query":{"bool":{"filter":[{"term":{"STATE":"PDOS"} }]} }, "aggs"…

2017年,Java程序猿10本经典好书推荐

1、Java 8实战 本书全面介绍了Java 8 这个里程碑版本的新特性,包括Lambdas、流和函数式编程。有了函数式的编程特性,可以让代码更简洁,同时也能自动化地利用多核硬件。全书分四个部分:基础知识、函数式数据处理、高效Java 8 编程和…

es嵌套聚合dsl(求均值,求和)

【1】根据客户号分组后求均值和求和 // dsl {"_source":["RCRD_ID", "STATE", "BUSI_CODE"], "query":{"bool":{"filter":[{"term":{"STATE":"PDOS"} }]} }, &…

字符串拼接+和concat的区别

转载自 字符串拼接和concat的区别和concat都可以用来拼接字符串,但在使用上有什么区别呢,先来看看这个例子。 public static void main(String[] args) {// example1String str1 "s1";System.out.println(str1 100);//s1100System.out.prin…

thinking-in-java(21)并发2

think-in-java 并发前半部分(并发1)参见: https://blog.csdn.net/PacosonSWJTU/article/details/104855730 【21.4.3】中断 1、Thread类包含 interrupt方法,可以终止被阻塞的任务。这个方法将设置线程的中断状态。 如果一个线程…

HDU1176(DP)

Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了&am…

Java趣味分享:try/finally

转载自 Java趣味分享:try/finally考虑以下四个测试方法,它们会输出什么?public class Test {public static void main(String[] args) {System.out.println(test1());System.out.println(test2());System.out.println(test3());System.out.pr…

(转)ThreadPoolExecutor最佳实践--如何选择队列

转自: https://blog.hufeifei.cn/2018/08/12/Java/ThreadPoolExecutor%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5--%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%E9%98%9F%E5%88%97/ 前一篇文章《如何选择线程数》讲了如何决定线程池中线程个数,这篇文章讨论“如何…

HDU1576(欧几里得算法)

Problem Descption 要求(A/B)%9973&#xff0c;但由于A很大&#xff0c;我们只给出n(nA%9973)(我们给定的A必能被B整除&#xff0c;且gcd(B,9973) 1)。 Input 数据的第一行是一个T&#xff0c;表示有T组数据。 每组数据有两个数n(0 < n < 9973)和B(1 < B < 10^…

为什么byte取值-128~127??

转载自 为什么byte取值-128~127??java设计byte类型为1个字节&#xff0c;1个字节占8位&#xff0c;即8bit&#xff0c;这是常识。另外&#xff0c;计算机系统中是用补码来存储的&#xff0c;首位为0表示正数&#xff0c;首位为1表示负数&#xff0c;所以有以下结论&#xff1…

(转)threadPoolExecutor 中的 shutdown() 、 shutdownNow() 、 awaitTermination() 的用法和区别

最近在看并发编程&#xff0c;在使用到ThreadPoolExecutor时&#xff0c;对它的三个关闭方法&#xff08;shutdown()、shutdownNow()、awaitTermination()&#xff09;产生了兴趣&#xff0c;同时又感到迷惑。查了些资料&#xff0c;自己写了测试代码&#xff0c;总算有了个比较…

HDU2049(错列排序)

国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的: 首先,给每位新娘打扮得几乎一模一样,并盖上大大的红盖头随机坐成一排; 然后,让各位新郎寻找自己的新娘.每人只准找一个,…

厉害了,Servlet3的异步处理机制

转载自 厉害了&#xff0c;Servlet3的异步处理机制Servlet3发布好几年了&#xff0c;又有多少人知道它的新特性呢&#xff1f;下面简单介绍下。 主要增加了以下特性&#xff1a; 1、异步处理支持 2、可插性支持 3、注解支持&#xff0c;零配置&#xff0c;可不用配置web.xml ..…

(转)Elasticsearch 聚合查询、桶聚合、管道聚合及复合查询

转自&#xff1a; https://blog.csdn.net/zx711166/article/details/81906881 聚合查询 聚合是一种基于查询条件对数据进行分桶、计算的方法。 聚合可以嵌套&#xff0c;由此可以组合复杂的操作&#xff08;Bucketing 聚合可以包含 sub-aggregation&#xff09;。 聚合的三种…

3种常见的Class级别的错误

转载自 3种常见的Class级别的错误ClassNotFoundException 很明显&#xff0c;这个错误是 找不到类异常&#xff0c;即在当前classpath路径下找不到这个类。 ClassNotFoundException继承了Exception&#xff0c;是必须捕获的异常&#xff0c;所以这个异常一般发生在显示加载类的…

(转)es 聚合查询并返回每个组的数据

转自&#xff1a; https://blog.csdn.net/ywdhzxf/article/details/84878760 需求 我现在是有一个这样的需求, 我需要在es里面按照 cityarea 进行分组(group by), 并且每个 cityarea的组 需要展示 按照时间排序的前10条, 状态全部为1的数据 实现 { "query": {…

java程序员被误导的一个概念,Set也可以有序

转载自 java程序员被误导的一个概念&#xff0c;90%人不知道我们经常听说List是有序且重复的&#xff0c;Set是无序不重复的。这里有个误区&#xff0c;这里说的顺序有两个概念&#xff0c;一是按添加的顺序排列&#xff0c;二是按自然顺序a-z排列。Set并不是无序的&#xff0c…