再读《Java编程思想 》

Posted Herman-Hong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了再读《Java编程思想 》相关的知识,希望对你有一定的参考价值。

     前段时间在豆瓣上无意间看到一个帖子“我为什么把thinking in java 读了10遍”,是11年的帖子,下面评论至今,各种声音都有,不过大多数还是佩服和支持的。我个人来讲也是非常支持的,而且也打算再读《Thinking in Java》,上学那会老师再三强调:“读书百遍,其义自见!”,但是对于程序猿,不光要读,而且要实践。

一、为什么要再读

    上一篇,我曾经说过,如何在Java界立足,凭借的就两点:

    1、基本功,包括:Java基本知识,(Java编程思想、Effective Java),Java进阶(Java虚拟机、Java设计模式)、网络相关(这个时代没有网络就没有一切,Java网络编程、HTTP权威指南、TCP/IP协议),计算机系统相关(编译原理、深入理解计算机系统等)这些都是根本,所谓万变不离其宗,在掌握这些基本功的基础上,再学习新技术,面对日新月异的新技术时就会游刃有余。

    2、将琐碎知识串联起来的能力,也就是归纳总结能力。无论是在工作中还是学习中,起初用到的知识是东一块、西一块,其实许多东西都是关联的,通过系统的梳理形成自己的知识体系,打造属于自己的专属领域,这也是在Java界立足的根本。

    对于很多程序猿来说,或许都有体会,一本编程类的书,特别是像《Thinking in Java》这样阐释内部原理的书读一遍是不行的;在编程一段时间之后(遇到各种问题)再读此书,有些问题就会豁然开朗,比如“==”和“equals”的区别、为什么覆盖equals时总要覆盖hashCode、为什么向上转型是自动的向下转型却需要Cast,为什么要使用Enum类代替常量,等等这些问题,在读此书后都会找到答案。借用此书绪论中的话:

Like any human language, Java provides a way to express concepts. If successful, this medium of expression will be significantly easier and more flexible than the alternatives as problems grow larger and more complex.
You can’t look at Java as just a collection of features—some of the features make no sense in isolation. You can use the sum of the parts only if you are thinking about
design, not simply coding. And to understand Java in this way, you must understand the problems with the language and with programming in general. This book discusses programming problems, why they are problems, and the approach Java has taken to solve them. Thus, the set of features that I explain in each chapter are based on the way I see a particular type of problem being solved with the language. In this way I hope to move you, a little at a time, to the point
where the Java mindset becomes your native tongue.Throughout, I’ll be taking the attitude that you want to build a model in your head that allows you to develop a deep understanding of the language; if you encounter a puzzle, you’ll feed it to your model and deduce the answer.

书中所有的概念或者模式的建立都是为了解决特定问题的,如果理解了这些,就能够高效、快速的使用Java。

二、怎么样读

     1、实践

    书读完之后贵在实践,不要“眼高手低”,特别是对于咱们程序猿来说,实践是检验真理的唯一标准,这句话非常恰当。书只是对代码的一个解读,唯有编码才能检验其是否正确。要把学到的都一点一点用到项目中去,例如要用Enum类代替常量

替换之前:

public static final String AUDIT_WAIT = "审核中";
public static final String AUCTIONING = "竞买中";
public static final String ENDAUCTION = "竞买已结束";
public static final String AUCTION_WAIT = "等待竞买";


替换之后:

public enum BidProductStatus
		AUDIT_WAIT("审核中"), AUCTIONING("竞买中"), ENDAUCTION("竞买已结束"), AUCTION_WAIT("等待竞买");

		public String getDesc() 
			return desc;
		

		public void setDesc(String desc) 
			this.desc = desc;
		

		private String desc;
		BidProductStatus(String s) 
			desc = s;
		
	

     2、读源码

    有一句话,程序猿们应该都知道“Read The Fucking Source Code”,简称“RTFSC”,就是读源码。想知道其内部原理吗,那你就读源码吧,别无办法!就像Spring,为什么那么牛逼,一个功能,一个配置文件或者一个注解就搞定了,怎么做到的,去读源码吧!你会发现,经典的开源框架将Java运用到了极致,而且你还会学到设计模式。我的《Spring应用》专栏就是在读Spring源码的基础上完成的,而且我还要反复去研读。

三、总结

一个简单的工作反复的做,你就成了“专家”!此次为再读、后面或许还会有再在读、或许会读十遍呢,谁知道呢。以上纯属个人观点,在此记录、以兹鼓励!




以上是关于再读《Java编程思想 》的主要内容,如果未能解决你的问题,请参考以下文章

《java编程思想》读后感

编程珠玑第一章书后习题解答

源码分析HashMap源码再读-基于Java8

Java 用eclipse编程根据URL获取HTML代码存为txt,再读txt成String截取里面的中文,结果显示为乱码,怎么办

java文件上传是是一次性上传到服务器内存再读还是一边读客户端一边写

关于《大道至简:软件工程实践者的思想》一书的读后感