Java Level 2 学习的八大名著
Java Level 2 学习的八大名著
前段时间有几天难得的假期,于是把自己认为Java技术栈中的精华总结了一下,但是一直没有时间写下来,今天终于得空希望本文可以对大家有所启发。通过多个实际项目的沉淀和一些Java开源项目的源代码研究,个人认为Java语言中的精华技术主要包括如下三个方面,其实严格来说只有第一点说的是纯Java中的东西,提到二,三两点是因为这两种技术在Java技术栈中应用的比较广泛,而且对于Java技术栈的意义比较大。
1. 内存模型,并发基础设施,IOs
2. 开源MQ
3. 开源内存数据库
笔者之前在C++技术栈中写了多年的多线程代码,对比Java技术栈给我印象最为深刻的就是JVM的内存模型,并发基础设施,IOs,JVM的内存模型从根本上保证了多线程程序的简单性和一致性,在C++技术栈中很多的东西需要依赖操作系统本身或者线程库提供的基础设施来完成,如果需要完成一个复杂项目的设计,其实施难度是难以想象的,老鸟凭借多年的沉淀,对OS和线程库的熟悉程度也许可以完成,但是新手来写这样的东西基本就是不能用的。Java技术栈中关于JVM内存模型,并发基础设施,IOs的名著主要有如下几本。
名著1 <<Java Concurrency In Practice>> -- 推荐理由,如果只能选一本书来学习Java多线程和并发,那么选这本吧,因为目前业内普遍认同的只有这一本,这本书是Cover的是JDK1.5以后的技术,再早的书籍也没什么价值了。
名著2 <<Effective Java>> -- 推荐理由,书中有一章专门讲并发编程,难得的赞,其他章节也都值得学习,这本书笔者读了3遍+,每次都有新收获。
名著3 <<Java 8 In Action>> -- 推荐理由,前面两本书相对比较老,这本书算是对前面两本名著的补充
名著4 <<Java IOs>> -- 推荐理由,这是Java技术栈中IO技术的血泪史,俗话说知道历史才能进步,这本书的价值就在这里
名著5 <<Netty In Action>> -- 推荐理由,Netty 这个框架是Java技术栈对Reactor模式的一个实现,Netty 这个框架的源代码可以说把Java技术栈中的多线程和IO用到了极致,所以对这个框架源代码的学习也是对以上所有相关技术学习的一次升华。
开源MQ和开源NoSQL内存数据库在现代的大型Java项目中已经基本成了标配,MQ技术主要解决的问题是耗时处理的异步化和异构系统的通信协作,Redis解决的是数据读写性能问题,下面这三本书可以说是这方面的经典。
名著6 <<Active MQ In Action>>
名著7 <<Rabbit MQ In Action>>
名著8 <<Redis In Action>>
总结
本文对Java技术栈进阶的主要技术进行了简单的总结,并总结出了8本相关的名著有针对性的对这些技术的学习提出了建议,希望对大家有所帮助。
Java Level 2 学习的八大名著的更多相关文章
- Java基础语法学习
Java基础语法学习 1. 注释 单行注释: //单行注释 多行注释: /*多行注释 多行注释 多行注释 多行注释 */ 2. 关键字与标识符 关键字: Java所有的组成部分都需要名字.类名.变量名 ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- 一位资深程序员大牛给予Java初学者的学习路线建议
java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈 ...
- java并发编程学习: ThreadLocal使用及原理
多线程应用中,如果希望一个变量隔离在某个线程内,即:该变量只能由某个线程本身可见,其它线程无法访问,那么ThreadLocal可以很方便的帮你做到这一点. 先来看一下示例: package yjmyz ...
- 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...
- Java程序员学习之路
1. Java语言基础 谈到Java语 言基础学习的书籍,大家肯定会推荐Bruce Eckel的<Thinking in Java>.它是一本写的相当深刻的技术书籍,Java语言基础部分基 ...
- 老鸟谈谈JAVA EE的学习
老鸟谈谈JAVA EE的学习 因为出差和项目的原因,有将近一个月的时间没有更新博客了,今天终于得闲,和兄弟们分享一下JAVA EE的学习心得.书中带过,直入主题,下面我们首先看看什么是JAVA EE. ...
- Java虚拟机JVM学习07 类的卸载机制
Java虚拟机JVM学习07 类的卸载机制 类的生命周期 当Sample类被加载.连接和初始化后,它的生命周期就开始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就 ...
- Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论
Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论 创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的f ...
随机推荐
- Spring-mvc介绍
Spring-mvc介绍 1.1市面上流行的框架 Struts2(比较多) Springmvc(比较多而且属于上升的趋势) Struts1(即将被淘汰) 其他 1.2 spring-mvc结构 1 ...
- 记一个Java错误 1 -- Unsupported major.minor version 52.0
今天打开ADT eclipse 准备调试上周的安卓项目, 发现总是报错 如图: 百度了一下说是 jdk版本过低的问题 (低版本的jre运行高版本project) 于是就修改了一下 window - ...
- Oracle客户端工具安装
Oracle简易客户端登录工具安装 @[Database|Oracle|客户端工具] [TOC] 引言 Oracle服务的安装是一件的繁琐的事情,我们往往喜欢在本地不安装oracle数据库的方式来访问 ...
- 解释 : translate 功能,过程
本来预计是这样设计的 admin在增加内容时,如:添加新的地点或新的FAQ,这时需要有中文,马来文等,但是顾客通常是不会添加的,所以这部分就不给顾客添加或更改. 用户来到前台,先看看localstor ...
- Ansible 系列之 Playbooks 剧本 (1)
一.Playbooks 介绍 1.Playbooks是Ansible的配置,部署和编排语言.它们可以描述您希望远程系统执行的策略,或一般IT流程中的一组步骤. 如果说ansible 模块 是你车间里的 ...
- Python学习--23 第三方库
本文将介绍python里常用的模块.如未特殊说明,所有示例均以python3.4为例: $ python -V Python 3.4.3 网络请求 urllib urllib提供了一系列用于操作URL ...
- 解决https证书验证不通过的问题
1.报错信息 java.security.cert.CertificateException: No name matching api.weibo.com found; nested excepti ...
- 【2-26】string/math/datetime类的定义及其应用
一string类 (1)字符串.Length Length作用于求字符串的长度,返回一个int值 (2)字符串.TrimStart(); TrimStart():可删除前空格,返回一个stri ...
- MySQL中的完整性约束条件(主键、外键、唯一、非空)
数据库的完整性约束用来防止对数据的意外破坏,来保证数据的安全性和一致性. 主键 1.创建表时候指定主键 创建表user(id, username, age),并且id字段非空自增. CREATE TA ...
- Html<img>标签特写 2017-03-10 AM
1.插入图片 <img src="picture1.gif" width="300" height="100" title=" ...