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 ...
随机推荐
- oracle系列笔记(2)---多表查询
多表查询 这篇文章主要讲四点: (1)oracle多表查询 (2)SQL99标准的连接查询 (3)子查询 (4)分级查询 oracle多表查询有两种方式,一种是oracle所 ...
- Entity Framework+SQLite+DataBaseFirst
Entity Framework+Sqlite+DataBaseFirst 本篇主要是说明在vs中配置Sqlite,及使用Entity Framework DataBaseFirst模式. 如果没有下 ...
- PHP结合memcacheq消息队列解决并发问题
在处理业务逻辑时有可能遇到高并发问题,例如商城秒杀.微博评论等.如果不做任何措施可能在高瞬间造成服务器瘫痪,如何解决这个问题呢?队列是个不错的选择.队列(Queue)又称先进先出(First In F ...
- 批量删除的PHP
第一个页面shanchu.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- Number()、parseInt()、parseFloat()的区别
最近在一个项目中遇到:需要在前台页面用javascript去处理很数值的计算. 各种用法都有,为了统一且保证处理方式正确,特地总结了一下相关的数值转换的用法: 作用: Number():可以用于任何数 ...
- 黑苹果macOS Sierra 10.12 安装教程(venue11 pro测试)
黑苹果macOS Sierra 10.12 安装教程(venue11 pro测试) 2017-03-12 03:46:24 by SemiconductorKING PS:刚刚装好黑苹果,来记录一篇折 ...
- HAproxy健康检查的三种方式
1.通过监听端口进行健康检测 .这种检测方式,haproxy只会去检查后端server的端口,并不能保证服务的真正可用. 配置示例: listen http_proxy mode http cooki ...
- springMVC在普通方法中调用service方法
SpringContextUtil类 package com.common.util; import org.springframework.beans.BeansException;import o ...
- AVFoundation之如何从摄像头获取图像
前言: 最近项目有个需求是对试图对手机密码进行强破解的人进行拍照(通过摄像头截图),因为之前没做过,所以一堆坑.现在就把我的经验都分享出来,希望后来人不用再踏上坑途中. 直接上代码: // 创建会话 ...
- Git-多人协作
声明: 此文参考廖雪峰老师的官方网站知识总结http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017 ...