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 学习的八大名著的更多相关文章

  1. Java基础语法学习

    Java基础语法学习 1. 注释 单行注释: //单行注释 多行注释: /*多行注释 多行注释 多行注释 多行注释 */ 2. 关键字与标识符 关键字: Java所有的组成部分都需要名字.类名.变量名 ...

  2. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  3. 一位资深程序员大牛给予Java初学者的学习路线建议

    java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈 ...

  4. java并发编程学习: ThreadLocal使用及原理

    多线程应用中,如果希望一个变量隔离在某个线程内,即:该变量只能由某个线程本身可见,其它线程无法访问,那么ThreadLocal可以很方便的帮你做到这一点. 先来看一下示例: package yjmyz ...

  5. 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议

    引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...

  6. Java程序员学习之路

    1. Java语言基础 谈到Java语 言基础学习的书籍,大家肯定会推荐Bruce Eckel的<Thinking in Java>.它是一本写的相当深刻的技术书籍,Java语言基础部分基 ...

  7. 老鸟谈谈JAVA EE的学习

    老鸟谈谈JAVA EE的学习 因为出差和项目的原因,有将近一个月的时间没有更新博客了,今天终于得闲,和兄弟们分享一下JAVA EE的学习心得.书中带过,直入主题,下面我们首先看看什么是JAVA EE. ...

  8. Java虚拟机JVM学习07 类的卸载机制

    Java虚拟机JVM学习07 类的卸载机制 类的生命周期 当Sample类被加载.连接和初始化后,它的生命周期就开始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就 ...

  9. Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论

    Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论 创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的f ...

随机推荐

  1. 阿里云LINUX服务器配置HTTPS(NGINX)

    本文首发于:http://www.fengzheng.pub/archives/238.html 背景说明 服务器为阿里云 ECS,操作系统为 CentOS 6.5. 部署配置说明 第一步,安装ngi ...

  2. 线上问题debug过程(cat,grep,tr,awk,sort,uniq,comm等工具的综合使用)

    问题:发现线上到货单的数量,小于实际到货的数量. 怀疑一些隐藏的条件,将部分唯一码进行了过滤,导致数量变少. 开展了如下的跟踪流程: 1.找到其中一个明细的唯一码 grep 6180e-4b09f p ...

  3. iOS开发之仿射变换示例总结

    本篇博客比较简单,但还是比较实用的.其中的示例依然使用Swift3.0来实现,该博客算是下篇博客的一个引子,因为我们下篇博客要介绍使用Swift开发iOS应用中常用的一些Extension.而在这些E ...

  4. JDK 安装过程

    1.首先是下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.下载完 ...

  5. 类中的两大类(string类、math类)的应用

    类是我们在学习C#的过程中很关键也是特别容易让人蒙逼得地方,类的应用直接可以调用它的属性和方法来进行判断和验证 string类(也叫字符串类) C#中的String类很有用,下面是一些它的常用方法的总 ...

  6. html、css、js实现轮播图

    2017-03-13 今天把轮播图的知识1过了一下,写了一个比较简单的轮播图,给大家参考一下. 查看具体的效果点击这个链接 : http://gjhnstxu.me/%E8%BD%AE%E6%92%A ...

  7. 3381: [Usaco2004 Open]Cave Cows 2 洞穴里的牛之二

    3381: [Usaco2004 Open]Cave Cows 2 洞穴里的牛之二 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 21  Solved ...

  8. Gridview AutoGenerateColumns属性

    第一篇随笔,以后会陆续的把刚开始工作时的知识点都记录下来,毕竟现在用WebForm的不多了~ AutoGenerateColumns MSDN 说明 : 获取或设置一个值,该值指示是否为数据源中的每个 ...

  9. Android Material Design 系列之 SnackBar详解

    SnackBar是google Material Design提供的一种轻量级反馈组件.支持从布局的底部显示一个简洁的提示信息,支持手动滑动取消操作,同时在同一个时间内只能显示一个SnackBar. ...

  10. Win10下 VS2017 安装失败 未能安装包“Microsoft.VisualStudio.AspNet45.Feature,version=15.0.26208.0”

    事情的起因是这样的,前段时间,VS2017发布当天,想在自己的Win10上安装VS2017,然而,由于自己的系统很久没有更新(PS:自己关闭了Windows更新). 安装提示:未能安装包“Micros ...