effective java 读后感
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 读后感的更多相关文章
- Effective Java 3 读后感
Effective Java 3 读后感 最近学习了一下Effectvie Java,这是一本非常适合有一定经验的Java后端人员阅读的书.书中总结许多编码经验对开发很有帮助,比如其中总结的对于流和L ...
- Effective java笔记(二),所有对象的通用方法
Object类的所有非final方法(equals.hashCode.toString.clone.finalize)都要遵守通用约定(general contract),否则其它依赖于这些约定的类( ...
- 《Effective java》-----读书笔记
2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己!预计在2016年要看12本书,主要涉及java基础.Spring研究.java并 ...
- 《Effective Java》学习笔记——积累和激励
从一个实际案例说起 国庆长假前一个礼拜,老大给我分配了这么一个bug,就是打印出来的报表数量为整数的,有的带小数位,有的不带,毫无规律. 根据短短的两个多月的工作经验以及猜测,最终把范围缩小到以下这段 ...
- Effective Java笔记一 创建和销毁对象
Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...
- Effective java读书笔记
2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己 计在16年要看12本书,主要涉及java基础.Spring研究.java并发.J ...
- effective java —— 终结方法守卫者
目录: effective java —— 终结方法守卫者 effective java 第2章:创建和销毁对象.第7条 : 避免使用终结方法.最后的“终结方法守卫者 (finalizer guard ...
- Effective Java 创建和销毁对象
<Effective Java>阅读笔记,用适合自己理解的方式提炼该书内容.<Effective Java>是一本很实用的书,阅读方法应该是快速的领会,总结,然后应用.而非,一 ...
- Effective Java
Effective Java 创建和销毁对象---考虑用静态工厂方法代替构造器 构造器是创建一个对象实例最基本也最通用的方法,大部分开发者在使用某个class的时候,首先需要考虑的就是如何构造和初始化 ...
随机推荐
- Opencv算法学习二
1.直方图:图片中像素值分布情况的坐标图. 直方图均衡化:按一定规律拉伸像素值,提高像素值少的点,增加原图的对比度,使人感觉更清晰的函数. equalizeHist( src, dst ); 2.ha ...
- [Window Title] (没有登录) [Content] ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 [OK]
重启Oracle服务
- norm函数的作用,matlab
格式:n=norm(A,p)功能:norm函数可计算几种不同类型的返回A中最大一列和,即max(sum(abs(A))) 2 返回A的最大奇异值,和n=norm(A)用法一样 inf 返回A中最大一行 ...
- 使用ReSharper打造团队代码检查流程
首先我想跟大家分享一下我们团队的代码检查流程. 1. 项目经理随时会检查成员的代码,如果发现有不符合规范的代码,会在注释里面加todo.比如,假设leo的代码不符合规范,那么项目经理就会加注释: // ...
- 给Macbook Pro更换固态硬盘并转移系统的最简单办法
没有固态硬盘,再快的CPU,再强悍的显卡,都是白搭,由于“木桶原理”,瓶颈就在这里啊.如今的固态硬盘价格跌了很多,我记得去年我买的120G的固态硬盘还要将近600元,而现在只需要不到400了. 我 ...
- [.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 利用多线程提高程序性能(中)
[.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 利用多线程提高程序性能(中) 本节要点: 上节介绍了多线程的基本使用方法和基本应用示例,本节深入介绍.NET ...
- 《R in Action》读书笔记(3) 数据变换
MindMapper 原文件
- [译]Asp.net MVC 之 Contorllers(一)
Asp.net MVC contorllers 在Ajax全面开花的时代,ASP.NET Web Forms 开始慢慢变得落后.有人说,Ajax已经给了Asp.net致命一击.Ajax使越来越多的控制 ...
- 如何在 ASP.NET MVC 中集成 AngularJS(2)
在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩.应用程序版本自动刷新和工程构建等内容. 下面介绍如何在 ASP.NET MVC 中 ...
- VB6.0中,DTPicker日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)
VB6.0中,日期.时间控件不允许为空时,采用文本框与日期.时间控件相互替换赋值,或许是一个不错的选择. 实现效果如下图: 文本框txtStopTime1 时间框DTStopTime1(DTPicke ...