think in java  , effective java  这两本书一直都在java的生态圈中经久不衰。本来想着先翻过 think in java 这本大山,但是读到一半就放弃了。过长的篇幅,让人难以忍受,再大的兴趣,也被过多繁琐的文字所磨灭了,但是不可否认里面涵盖了许许多多经典的java知识,可能要等我再成熟一点,多一点耐心,再回来翻这本书吧。

  在两三年前我买了 这本 effective java 来自google首席架构师 joshua bloch 的经典之作,当时我接触java时间不是很长,自以为会写几个 hello world,就想向着原始森林进行探险,结果可想而知,有去无回。

拿到书的那一天,我兴奋地回到宿舍,翻开书读了读引言,大多跟平常的书没啥区别,吹一吹作者的平生,找几个业界的大牛再吹一下这本著作,最后做一下总结,谁谁谁可以读这本书,差不多就是这样了。读完引言,我发觉这本书可以说我已经读完了。别误会,这不是我在吹牛,而是我再也看不懂其余的部分了,说实话,还是有点失落的,我TM连第一章都似懂非懂的,我还能看什么。第一段与这本书的缘分基本就这样告一段落。

接下来的两年时间里,参与了一些实际的项目,学习了诸如设计模式,jvm,阅读了部分jdk的源码实现,更深层次理解了集合,框架原理。我再回过头来去看这本我两年前望尘莫及的经典之作。俗话说的好,哪里跌倒,哪里爬起来是不是。全书78条原则,大致包含了并发,设计模式,多态,类库,异常,序列化等相关知识,从安全,高效,性能,扩展,可读性,这几个方面讲述了

How to use Java efficiently ?

  这本书有许许多多,你实际生产碰到过,或者即将碰到,又或者未来会碰到的一些设计思路,能帮你塑造编程思想。看不懂这本书之前,这本书是你努力的目标,看懂看完这本书之后,这本书塑造了你编程思想。看完之后,可能这本书的价值真正体现出来,你不可能在实际开发中碰到过所有的问题,这本书可以成为你未来开发中的指南针。帮你从繁杂的编码设计中,选出最优的方案。

我在这几天已经把书翻了一遍了,但是还有许多不理解的地方,有些可能是积累不够,有些由于翻译的原因,已经难以阅读。英语不错的同学,可以读原著,相对吃力一点,收获自然也是成正比的。让我印象最深的是泛型那部分的知识,由于篇幅原因,我就提一点。

Map<String,Map<String,Object>> map = new HashMap<String,Map<String,Object>>();

  感觉挺常见的代码,但是看上去不咋地,后面的一段泛型声明感觉有点冗余亢长,熟悉guava的同学们可能知道我要说什么。

public class TypeInference {
public static <K,V> HashMap<K,V> newInstance(){
return new HashMap<K,V>();
}
public static void main(String[] args) { Map<String,Map<String,Object>> map = TypeInference.newInstance(); }
}

你可能可以利用 类型推导 让它看着顺眼一点,但是很可惜,jdk集合工具类上并没有上述的静态方法,只能由自己去写一个了。

该书中还有许多看似不起眼,但是写起来很顺眼的东西。除此之外还有一些比较深层次的探索,对javaer帮助还是挺大的,欢迎看过该书的同学一起学习交流。

effective java 读后感的更多相关文章

  1. Effective Java 3 读后感

    Effective Java 3 读后感 最近学习了一下Effectvie Java,这是一本非常适合有一定经验的Java后端人员阅读的书.书中总结许多编码经验对开发很有帮助,比如其中总结的对于流和L ...

  2. Effective java笔记(二),所有对象的通用方法

    Object类的所有非final方法(equals.hashCode.toString.clone.finalize)都要遵守通用约定(general contract),否则其它依赖于这些约定的类( ...

  3. 《Effective java》-----读书笔记

    2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己!预计在2016年要看12本书,主要涉及java基础.Spring研究.java并 ...

  4. 《Effective Java》学习笔记——积累和激励

    从一个实际案例说起 国庆长假前一个礼拜,老大给我分配了这么一个bug,就是打印出来的报表数量为整数的,有的带小数位,有的不带,毫无规律. 根据短短的两个多月的工作经验以及猜测,最终把范围缩小到以下这段 ...

  5. Effective Java笔记一 创建和销毁对象

    Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...

  6. Effective java读书笔记

    2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己 计在16年要看12本书,主要涉及java基础.Spring研究.java并发.J ...

  7. effective java —— 终结方法守卫者

    目录: effective java —— 终结方法守卫者 effective java 第2章:创建和销毁对象.第7条 : 避免使用终结方法.最后的“终结方法守卫者 (finalizer guard ...

  8. Effective Java 创建和销毁对象

    <Effective Java>阅读笔记,用适合自己理解的方式提炼该书内容.<Effective Java>是一本很实用的书,阅读方法应该是快速的领会,总结,然后应用.而非,一 ...

  9. Effective Java

    Effective Java 创建和销毁对象---考虑用静态工厂方法代替构造器 构造器是创建一个对象实例最基本也最通用的方法,大部分开发者在使用某个class的时候,首先需要考虑的就是如何构造和初始化 ...

随机推荐

  1. Git命令----放弃本地修改使用服务器上的代码

    git reset --hard FETCH_HEAD FETCH_HEAD表示上一次成功git pull之后形成的commit点.

  2. 使用java反射机制编写Student类并保存

    定义Student类 package org; public class Student { private String _name = null; ; ; public Student() { } ...

  3. XMPP iOS客户端实现三:登录、注册

    1.创建一个单例模式来管理xmpp的连接和操作 +(XMPPManager *)share { static XMPPManager *_share=nil; static dispatch_once ...

  4. HDFS NameNode 设计实现解析

    接前文 分布式存储-HDFS 架构解析,我们总体分析了 HDFS 架构的主要构成组件包括:NameNode.DataNode 和 Client.本文首先进一步解析 HDFS NameNode 的设计和 ...

  5. ABP理论学习之NHibernate集成

    返回总目录 本篇目录 Nuget包 配置 实体映射 仓储 仓储基类 实现仓储 自定义仓储方法 阅读其他 ABP可以使用任何ORM框架工作,并且已经内置了NHibernate集成.这篇文章会解释如何在A ...

  6. DRY(Don't Repeat Yourself )原则

    凡是写过一些代码的程序猿都能够意识到应该避免重复的代码和逻辑.我们通过提取方法,提取抽象类等等措施来达到这一目的.我们总能时不时的听到类似这样的话:”把这些公用的类放到shared项目去,别的项目还要 ...

  7. [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit

    [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitS ...

  8. [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)

    说在前面:上一篇介绍了无线LED闪烁实现的OSAL部分,本篇介绍如何实现无线数据收发及数据处理: 上一篇是用SI跟着流程查看源码,我个人认为以架构的思维去了解代码能让人更清晰 ::ZMain.c程序入 ...

  9. ASP.NET MVC 5 - 开始MVC5之旅

    本教程将使用Visual Studio 2013手把手教你构建一个入门的ASP.NET MVC5 Web应用程序.本教程配套的C#源码工程可通过如下网址下载:C#版本源码链接.同时,请查阅 Build ...

  10. Step by Step 创建一个 Web Service

    原创地址:http://www.cnblogs.com/jfzhu/p/4022139.html 转载请注明出处 (一)创建Web Service 创建第一个项目,类型选择ASP.NET Empty ...