《Java特种兵 上册》勘误、问答、反馈、心得

  1. 云栖社区>
  2. 博客>
  3. 正文

《Java特种兵 上册》勘误、问答、反馈、心得

钟隐 2014-09-17 12:23:00 浏览1381
展开阅读全文

大家好,Java特种兵上册已经正式在9月初上市发售。这本书可能很多人拿到会有不同的感受,大多数在意料之中。


不论如何,如果您有什么问题,可以在该博客反馈我,我会在回复、正文中将其反馈。


以下是近期一些同学向我提出的问题:

【光盘中的代码编译有点问题,如何使用?】:

解释:本书的代码大部分基于JDK 1.6,少部分会依赖于JDK 1.7。不过代码之间的依赖关系不强,因此在切换JDK 版本的时候,将相应的类注释掉应该就OK了。lib目录下有一些依赖包,如果您自己有,就不需要这些包了。


【effective Java中及JVM规范中看到重写equals总是重写hashCode,但胖哥的书上有一句说他们关系不大】:

解释:

1、要注意一点,什么是规范,是一种预定,举个例子,当你为别人提供一个API的时候,某个参数传递了,另一个参数必须传递,这就是一种规范。本书强调个人功底,理解内在到底是咋回事,从本质上讲,它们两个没有强依赖关系,不然的话,Java只需要设计一个语法,而不需要2个,或者在只重写其中之一的时候直接编译不通过,因为没有必要多此一举,呵呵!


2、因此,胖哥在书中有这样一段:“此好比:宝剑是否需要有剑鞘?宝贝是否需要有宝箱?雄性是否必须需要雌性?地球是否需要有月亮?而并非是:树是否需要土壤?生命是否需要食物?鱼儿是否必须需要水?世界是否需要阳光?”意思是什么呢?就是他们确实是天生配对的,但是不是强制依赖,不是树必须依赖于突然、生命需要食物的关系,因为他们的用途本身就是不同的。


3、在文中提到了他们的契合点是在Hash类的算法中,例如HashMap、HashSet、CourrentHashMap等,这就是一种通用的约定,才方便Java写出这些Hash算法的基础组件,当然如果你自己写一种算法也是会利用到hashCode也是可以用类似的方式实现的。


4、如果你那天觉得HashCode这个名字不好听、equals名字不好听,或者这两个方法还无法满足变态的需求,你可以自己定义一组接口,定义一组规范,让别人来重写,哈哈,有点高高在上的感觉!


5、最后总结一句,很多事情不用评价对与不对,我们在与事物在自己的理解中要越来越清楚,要形成自己的深刻认识,这是本书所希望您能理解的。同时重写是一种习惯,但是不能当成一种真理,否则很多同学根本不知道为什么需要重写,本书真正希望你通过理解原理的基础上认识到为什么需要这样做。


【JOIN不好,会轮询死等,但胖哥的书上有这样的代码,不好】:

1、胖哥不否认JOIN在某些时候确实不好,不过大家要理解,JOIN依然存在而没有被注解为:@Deprecated,说明官方并没有说它是一个不推荐的方法,它本身也有它的用途所在。


2、在本书JOIN是用在等待多个线程结束后去做其他的事情,在后面的文章中有更多的方法来完成类似的功能,而且比JOIN做得更好,还可以完成许多JOIN做不到的事情。因此JOIN首先是一个引导,而非胖哥推荐,至少你在写一段测试程序的时候,用JOIN是很方便的。


3、会轮询死等,这个说法有2个点,分别是轮询、死等,其实对于JOIN基本是不成立的,首先来说下轮询,虽然跟踪源码你可以看到这样一段代码:

while (isAlive()) {
 wait(0);
}

这段代码的执行因素是join()方法不传递任何参数的时候,会走到这里(问我的同学认为这是JVM底层C代码,其实不然,它就是Java部分的代码,在source包里面可以直接看到)。虽然是一个while循环,但是这个while循环只是为了保证活着,实际运行时还算不上轮询,因为wait(0)方法,传入的值是0,它会一直等待,直到有interrupt或notify发生,基于线程本身来做wait(0)发生这个notify的概率是极低的(除非是自己故意模拟出来的),一般到线程结束循环只会进去一次,就算是几次,也算不上什么轮询。


关于阻塞,问我的同学认为阻塞就是底层在不断做while循环if(xx) {break} 的动作,这个理解是存在问题的,阻塞从某种意义上将你可以认为是线程不干活,但是在OS里面注册了激活的事件,线程暂时不会得到CPU的调度,当相应事件成熟后,才会继续运行。反过来理解,如果阻塞的底层是在做while(true) {if(xx) {break;}}那么一个阻塞的线程足以让一个CPU跑满,这个大家可以在操作系统上并行几个线程做这样的操作来验证(当然前提是让每个线程都在不断循环)。因此阻塞和内部轮询不是一回事。


死等,join的目的是等线程结束,线程没有结束,那么等待是必然的,用其它的框架如果业务上要求必须等待所有任务执行完成,只要任务还没有跑完,也必然是会死等的,这个是毫无疑问的。只是join的死等是一种自身不可控的等待方式,如果一直等,需要外部去中断它,或许其它框架有更好的方式。


另外,join基于线程结束运行的,很多情况下,我们希望线程被复用,例如基于线程池的任务,只要一些相关的任务结束,就任务可以去做下一件事情了,而不需要线程退出。这些在本书的第五章都会有介绍。


最后,join等待线程结束的另一个弊端是join等待线程结束的顺序,并非线程结束的真正顺序,当你期望得到一批任务结束的顺序时,通过单纯的join是做不到的,除非自己又在线程里面增加一个结束时间,最后再来排序,那岂不是相当麻烦?


【本书正文第1章,第22页有一句话写错】

错误语句:

例如:Integer.valueOf("10",16)返回的值就是16,Integer.valueOf("10",16)返回的值是2,这样就可以实现任意进制之间的转换了。

正确语句:

例如:Integer.valueOf("10",16)返回的值就是16,Integer.valueOf("10",2)返回的值是2,这样就可以实现任意进制之间的转换了。


【本书正文第2章,全文第48页有一句话写错】

错误语句:

这个结论和Cacheline有什么关系呢?因为Java数组在内存中分配是先分配第一维(或者说Java没有真正意义上的二维数组),然后再分配多个第二维子数组,也就是说,a[0][x]和a[0][x]是位于两个不同数组上的,空间也自然不会在一起

正确语句:

这个结论和Cacheline有什么关系呢?因为Java数组在内存中分配是先分配第一维(或者说Java没有真正意义上的二维数组),然后再分配多个第二维子数组,也就是说,a[0][x]和a[1][x]是位于两个不同数组上的,空间也自然不会在一起.


【本书正文第2章,代码清单2-1】

代码中第一个单词public,写成了Public,实际光盘中的代码是OK的,在复制到word上自动了下,呵呵!给大家造成不便了!


【正文第3章,第93页下方】

错误语句:

第二步:链接,.......,如果不符合就会抛错:ClassNotFoundError

正确语句:

第二步:链接,.......,如果不符合就会抛错:NoClassDefFoundError

ClassNotFoundError这个类应该是不存在的,不过这东西似乎成了Java的提到类加载不到Error的一个别名,网络上也能搜出大堆,具体的抛出的Error类名应该是NoClassDefFoundError。


【正文中几乎所有地方有一个低级错误】

征用->争用

这个词写的时候没太注意,就都写错了,大家重点理解其意思即可,不要过分纠结,小胖中文本身不好,我们也不是通过这本书学中文,一切从自己哈好理解的角度出发,呵呵!这个是一个低级错误,小胖不是在给自己推脱理由哈,只是期望大家能在书中正确理解进而得到自己想要的东西。


【正文第21页,下半部分】

是否为static.......16进制的8代表二进制的最后3位是100,改变为最后4位为1000。

是否为final.......16进制的10代表二进制的最后4位是1000,改变为最后5位为10000。


【图3-29少了一根线】

少的是CMS与ParNew之间的一根线。


【正文129页,例子2后面的,有一句话是多余的】

多余的一句话是:(如果加1个int,则相当于4个int)。

这个值本身不正确,当初写的时候只是为了突出增加一个属性,则相当于增加了多个属性的空间位置,让大家感性认识在对象中增加属性可能带来的额外开销,但这个本身写错了,而且意义不大,因此这句话可以去掉。


【正文第138页,HttpClient写成了HttpCleint】

不好意思,这个真的是笔误!


【正文第299页,中间部分】:

如果通过newFixedTheadPool(int)方式创建线程池,.......addIfUnderCorePoolSize()判定不成立再进入addIfUnderCorePoolSize()方法也不太可能....

修改为:

如果通过newFixedTheadPool(int)方式创建线程池,.......addIfUnderCorePoolSize()判定不成立再进入addIfUnderMaximumPoolSize()方法,因此该方法创建新线程的概率很低....


【有没有数据结构、容器类的知识】

1、其实数据结构是在本书的字里行间,相信如果你没有数据结构的基础,看本书会有点糊涂。本书没有专门去讲解数据结构,而是在Java当中通过空间、算法思想等自然带出来的,要知道数据结构最终是服务于我们的程序,帮助我们更好的理解程序,而Java中的数据结构是空间上的具体实现,它会有一些小变化,但是至始至终都没离开过这个话题。

2、容器,这个概念比较泛滥,很多地方到处都引用这个名词,WEB容器、Java的集合类也叫容器、某些中间件和平台也叫容器等。如果说WEB容器,在本书上册的第4章会有一部分源码的讲解,下册还会介绍一些坑。集合类有一些小有意思的介绍,当然是用上介绍并不多,我们更多是从原理上了解它的空间、时间、锁、并发性,不过我更加希望大家在了解基础对象的内存结构后再了解集合类,因为基础对象了解后,集合类的内存结构就是数据结构的结合,游刃有余。


【希望提到优化】:

优化这个话题比较大,其实小胖写这本书,其中一个目的就是希望大家从根本上去认识问题的思路,当你学会从根本上去认识问题后,其实优化就不再是一个大问题,唯一的问题就是你需要大胆去思考以及与实践结合进行各种实验。通过理论推断实践,实践印证理论,理论再指导方向。这样去不断做优化,你对优化本身的理解不仅仅是一个盲目测试的结论,而是有清晰目标的测试结论,你可以去分析具体场景和指导优化方案,即使调试参数压测,也是带有目的性的,不然即使性能上去了,我们也不知道到底还有换一个场景有多少坑。当然坑不可避免,我们提前能预知的可以让我们做得更加专业一点。


【下册有没有一些流行技术的介绍】:

这个可能在本书找不到太多,流行的技术即使在下册也只是会提到一些思想和方法,胖哥认为流行技术太多,讲不完,讲完就过时,但他们都是通过这些基础理论组合而来的,有的更多是大胆的创新和打破自我的想法。我们学习技术者,更加希望通过了解一些本质,让自己对行业的技术有底气,学相关的技术都很快,而且不仅仅是学会用,而是学得比别人好,能比别人更会解决问题,比本人能预见到那里可能会有风险,可能会有坑,从而可以从相对长远和全局的角度来解决问题,也从根本上解决问题。


即使我们遇到的某些坑是“硬伤”(确实存在,因为Java方面依赖的三方包太多,三方包本身有硬伤或你的架构本身有硬伤),这种硬伤是一些变态的操作导致的,如果我们深知一些技术本质后,就像我们对业务细节的了解那样,那么也可以有许多思路将硬伤发生的概率降低到很低很低的程度,即使出现也可以在这个低概率发生时,因为我们可预知,所以可通过某些特殊代码手段处理掉。


另外,感谢大家对本书的支持,目前的出货情况比我自己想想当中好。


【新增对于本书反面看法的反馈】

注:本部分不是以针锋相对为目的,通过这个部分或许可以更加了解清楚本书的目的与本质。另外部分地方留言后并不方便沟通,大家都是各说各,那么小胖也来一个各说各,呵呵!

1、作者和出版社怎么想的,直接给个链接让读者下载不行?7M的东西你也非要搞张光盘?这样肆意浪费地球资源,浪费读者钱财的行为,让人非常气愤。

答曰:作者和出版社早就想好了是这样的。直接给个连接下载可以,不过并不是所有的小伙伴都期望这样,或许你期望这样,可以满足你。至于7M是否非要搞个光盘,其实原光盘有几百M内容,有很多是三方工具包在里面。

代码的作用我希望和书联系在一起,那里面没有一个应用系统完全的,都是小例子,我想只要对照着书上玩,能玩出一些小东西,而本书所倡导的也就是这样。而7M不7M看怎么理解,我也可以说7M有700W个字节,如果全是代码,够小伙伴们研究的了。

肆意浪费地球资源和钱财也是根据别人拿到能得到多少好处来看的,如果愿意自己敲那些小例子,没有人强求,你也可以强烈建议商家不要给你发光盘或直接将光盘反馈回去这样,出版社后续的版本就不用再发光盘了。另外,这本书光盘基本是不需要读者花钱的,在价格方面或许有人会说很高,我也几次因为这个事情与出版社说过降低价格,也可以对比下同行的书籍价格是什么样的,而再对比下现在的物价是什么样的,对于初学者,经济困难者的一些人,如果觉得对它自己有帮助,我可以直接赠送,有能力挣钱的,觉得合适就可以购买,没有人强求什么,是否浪费地球资源其实也是购买者自愿,不然出版社也不会印刷那么多。

另外,言行来看,是带着气氛来看这本书,小胖的前言就提醒过,这本书应该不适合类似怨气冲天之人。反过来讲,有光盘,光盘啥内容小胖早就说过,如果觉得内容太小,小胖可以拷贝几个应用工程进去,不行的话再放点文档,再放点某些工具绘制的图形,再不行放点电影进去?呵呵,光盘是给有需要的人使用,至于挂不挂到网上或挂到那里,小胖会和出版社有一个约定。


2、买了后,有准备好好看一下。结果发现书中并没自己想的那么好,有些章节也是说了很多废话,没讲到重点,没得出结论。个人还是觉得,大多数书都是废话连篇

我想这位理论上是一位高手,因为这个结论小胖早在写书的时候就想到了,对于这类小伙伴,小胖只觉得惋惜,浪费钱买这本书了。

关于废话多的问题,小胖也早提到过,也拿了样章啥的给大家看,如果觉得不爽,就要知道不适合,不要花冤枉钱,不过这个废话的问题小胖认为不同人会有不同的看法,我不是写给高手看的,因此对于某些人我会用我认为可靠的方法去说,反反复复从不同的角度去说,因为小胖一直保持菜鸟的心态,写书也不是写给小胖自己看的。

至于重点与结论,在本书确实看不到什么,因为小胖是在写过程,过程中每个人会发现很多不同的精彩,有人希望快速在书上找到结论,那么本书不是和你,这一点小胖早就说过。至于提到的重点是看自己想要看到些什么,如果走马观花那天下间所有的风景都是一样的,对于所有的事情会用“无非是XX”来概括了,当然对于高手来讲,这本书确实看不到什么精彩,因为小胖说过本身就不是写给高手看的。

因此,仁者见仁、智者见智这句话也早说过,我没期望所有人认可,我只期望合适的人在合适的时候得到合适的收获,所以也没期望书大卖。我写这些也是期望读者朋友能用正确的方式来阅读本书,因为我们花钱卖书是为了从中得到想要得到的东西,而不是来展示自己有多么牛逼的,除非钱太多了而且很闲。


3、看了下样章,谨慎的建议国内技术作者写书前都去学习下BWK的写作风格:简练,严谨,实用。而不是搞什么"九阳神功” “易筋经“出来,或是把读者当傻子在那里故弄玄虚

首先对于这个问题提出,我认为也应该是一个高手!

不过呢小胖比较孤陋寡闻,BWK是什么不知道,网上搜索了一把似乎也没找到想要的,呵呵,或许搜索方式有问题。

至于简练、严谨、实用,或许和本书确实关系不大,或许唯一能沾一点点边的是实用吧,而且只能说针对某些人。

小胖的回复就比较繁琐,因此小胖就是一个啰嗦的人,^_^,我与读者之间希望是一种沟通,而不是一种倾述,一种陈列,我希望这种陈列读者能够自己去发现和理解,每一个人看到的东西不一样就会有不同的陈列和理解,小胖的陈列始终是小胖的,画一幅图、列一个表,能看懂多少,会不会看?小胖认为能看懂的高手依然能看懂,看不懂的人能通过这种方式看懂的概率很低,因为这是按照小胖的理解写的。小胖在提到一些点的时候是挖掘式和探讨式,如果期望得到答案,那没有,场景不同答案就是千差万别。

因此,我会坚持这种不简练去写后续下册的内容,会反反复复用不同的角度来阐述问题,对于静心阅读者或许可以将一些问题看得更加清楚,对于不进行阅读者,本身就不是小胖期望的读者对象,在前言中建议过不要买这本书,买了只会给大家带来痛苦。

小胖在书中第一章提到了“九阳神功”,呵呵,如果读者将这个作为重点的话,那么小胖无言以对,因为本书的前言告诉过读者该怎么来好好阅读这本书,娱乐的话题是我们“中国人”的风格,或者说是我们这一代中国人的一些心态与风格,只要这些风格不至于让我们充满负能量,有何不可呢?我想这不是啥故弄玄虚,在娱乐的同时,我们或许可以换个角度来考虑下问题,小胖又没有大篇幅介绍九阳神功秘籍的内容,哈哈!

另外,小胖没有把读者当傻子,如果真是,那小胖才是傻子,每一个人成长需要过程,这个过程是需要一些思想经历的,小胖写这本书就是将自己曾经的思想经历和遇到问题的朋友的思想经历用一个玩笑展现出来,为什么?因为中国人在用自己的思路理解设计语言的老外的思路,或许达到高手的程度就不需要这些了,但小胖又不是写给高手看的,小胖的能力又帮助不了高手。所以这些思想经历如果是傻子的话,那么最傻的就是小胖本人,或许我们可以一辈子去做一个别人眼里的傻子,但是我们这些傻子会去追求我们所想要的东西。

小胖的个人性格如此,如果建议的话,尤其是谨慎建议话,小胖认为词汇中不存在一些定义成分(是、而不是、然后再来傻子词汇升级词汇),如果是定义成分很浓的话,这本身就是小胖所不能接受的,小胖写这本书的目的也是希望让很多读者在思想上打破很多真理与定义。写法无对错,适用人群不同吧了,如果说小胖鼓弄玄虚,小胖也可以说某些人是故作高深呢,因为陈列出来的是站在高度的喊话与倾述,不说出点别人看不懂的东西,似乎害怕显示不出来自己比别人好像要技高一筹,小胖在尽量用屌丝的心态在给读者朋友交流与沟通,小胖不是牛人或高手,所以写不出那么牛逼的抽象,呵呵。

对于内容,国内和国外不用区分的那么过分,在技术能力上老外发明这个东西的确实牛得多,不过呢写法上小胖是写给国内人看,不是写给老外看的,所以没必要有这样的颜色感存在,如果小胖带点颜色感会认为这有强迫症,强迫自己所喜欢的东西是真理,还有人强迫自己看不懂的东西是真理。在细节层面,小胖前言提到过本书不是在说知识,我们是在说别的,我们的知识细节只是为了阐述更多的侧面和思考。如果觉得恶心想吐,先不要认为所有人都会恶心,如果是大多数都恶心,那么小胖可以停止掉这本书的发行,如果有很多人可以得到收获,小胖会坚持现在的坚持,而你自己也可以去坚持你自己的理念,或者换个思路来思考一些事情。


4、大片大片的文字 
  自以为是很幽默的语言 比较反感 
  挺失望的 ... 
  java的书也买了不少了 
  这本是最差的 看来还是要买久经考验的书才好 
  作者就是在码字的节奏 里面的代码字体太小


大片大片的文字:

如果喜欢看大文字的话,可以去买别的书看,例如一些成功学啥的,呵呵,小胖的样章在网上有,文字多大可以看得到,小胖觉得这个字似乎已经大得比我预想的要大了,你说出这个话或许你可以去看下编程思想,呵呵,那个字或许要小1-2个字号。

自以为是很幽默的语言 比较反感 :

咦,这个就要看小胖不懂幽默还是读者不懂幽默了,呵呵,或者读者不喜欢幽默,如果读者不喜欢的话,看下样章就不该选择这本书,如果看了还选了,目的不是自己给自己花钱找罪受吗。小胖幽默不幽默不敢说,不过呢在小胖所在的群里面或者小胖周围的团队中,一般平时的工作都很欢乐,一种年轻人的欢乐,小胖也认为欢乐的小组会给我们更多的动力和“鸡血”!因为小胖认为我们不是在痛苦地接受一些老外的发明,反而是在欢乐的成长与知识的分享。

挺失望的 ... 

综合前两者,这个肯定是结论了,不过这样的失望其实对于小胖来讲不值得说太多,小胖写书是写给适合的人看,是将小胖的理解与思想用一种方式表达出来,希望在成长的道路上有共识者得到帮助,而不是把读者当成上帝来提各种写法上的需求,进而来写书,那样写出的不是小胖的书,而是另一份老外的书,一份仿真度极高的老外的书。

java的书也买了不少了

这个多少的结论不去评论,因为没什么好评论的,想说的是买多买少或许不是重点,如果这是重点就是在比钱多,比书架,比高度,而不是比收获。

小胖认为是买什么样书,认真看多少书中的内容,体会书中多少内容,思考了多少,才是书所带来的价值。小胖从来不认为自己的书是多么好的,但我希望读者用正确的心态来面对自己的花钱买的书。

小胖在给很多人的面试中,了解到这些小伙伴提到自己看了多少多少牛书,那么好吧,小胖问你在某某牛书中学到的东西列举几个经典出来,或许很多人说不出来,部分能说出来的人,小胖与他展开探讨的时候,通常了解到它们只是认识到一些皮毛,稍微深问就不清楚了。这是在把书当饭吃的一种心态,吃完就是自己的了?比谁吃得多吗?如果是比这个来说明自己多么牛逼,那这有点奇葩了。

这本是最差的 看来还是要买久经考验的书才好 

通过上面提到,这本最差的书最终还是花了钱,小胖唯一觉得是可惜。至于小胖的书是否能久经考验,不好说,小胖又没想过大卖多少人,呵呵。但反过来说,久经考验的书也未必是啥好书,有的书就是很多人必须买的,即使是一本烂书,只要某些人需要,一样大卖。在国内,只要有推销的渠道,只要有人际圈、关系网,就会长期性的大卖,为啥,因为我们喜欢做看的见摸的着的东西,因此,实用二字在每个人心目中的标准是不同的,在国内大多数程序员心目中,step by step操作步骤如何使用叫做实用,有的人会以长期受用的方法和探索问题的技术为实用,有的人会将别人的结论当成是实用。

最后,这句话似乎是职业差评师的评语,小胖希望这些职业者也要专业一点,因为在国内的这个职业虽然天生一股怨气,不过也不要太明显,到处都是这句话。职差这种职业本身所倡导的是找出一些可去改进的毛病去改善一些事情,在我们这个戾气众生的环境中,不说啥职业道德也希望有点自己的职业标准,呵呵!


作者就是在码字的节奏 里面的代码字体太小

就码字数的问题,在上面的一个问题中我已经提到。我依旧会反反复复从不同角度来阐述类似的问题,依然会去坚持这种啰嗦,因为这是小胖的风格。

对于码字来讲,小胖是这样看的,如果小胖文中大量的代码叫码字;如果代码大量的篇幅在做代码输出、截图或许叫码字;如果在反复提到相同的事务且从同一个角度大篇幅说明也叫码字;再说即使码字又没让读者强者给钱,字号大得多的书,然后到处是空格回车啥的比这本书贵得多的多的是,不过这只是说码字没让别人买单,而书的内容是写给谁的,上面已经提到了。换句话讲,你要看看码的是什么字,或许小胖傻到要花大量的时间从不同角度去思考问题,然后将不同角度的思考用码字的方式表达出来?

至于字体太小的问题,和前面回答一样,或许你说看的书多,那么口口称赞的编程思想也没看过?呵呵,技术书如果写得跟看图说话一样的书确实还片少数,里面的代码字体是Eclipse、IDEA的标准字体,或许你喜欢把代码的字体放得超级大,感觉滚动条的快感,让自己无比陶醉于代码量中,其实小胖还可以教你一招,要提高代码量的直接方法是“不写循环”,把循环体代码拷贝循环次数来完成,呵呵。小胖有自己去做事情的方式,出版社每页纸张都会算钱,小胖虽然砍价,但也要砍页码,否则这本书的定价会更高。

最后,小胖是在工作之余加班写的这本书,由于工作非常忙,所以经常半月、1月会被停止写这本书,再开始写的时候思路会断,因此书中的很多冗余肯定是存在的,不过小胖认为对于大多数认真阅读本书的人来讲,这些都不是什么太大的问题,因为小胖至少不是用老外的语言风格在给大家去交流,我想对于很多冗余和错别字,大多数小伙伴们都是“会心一笑”,小胖哥中文真烂,又写错别字了,还不至于说看不懂想要表达些什么。


5、应该是企业文化崇拜所谓的"大神"买的. 个人出于好奇买了一本, 里面的语言生涩难懂, 封面上写着"没有数页代码", 然而你往100页往后看半页代码的实在不少.从这本书也可以看出阿里的企业文化不怎么样.

今天是12.29号,我本身不想回应类似的帖子的,因为不想让别人感觉我这个人太强势,不过呢有些话语看到了,哥就是有点强势,这些与小胖在书中提到如何战胜困难一样的强势。为啥呢,如果有些事情不回应小胖认为自己很被动,尤其是在这个喜欢“类似一本正经胡说八道”的世界里面,小胖也给他一本正经的胡说八道一番,呵呵!

里面的语言生涩难懂

不想回复太多,因为上面有回复,样章内容不少,语言生涩难懂没看过就跑来买书,真是钱多。不过不论这位仁兄咋说,还有不少人看得懂,似乎比老外翻过过来的没那么难懂。那么好吧,我也回应下,这位仁兄的水平要么高到极点,要么低到极致。这两类人物都不是看这本书的对象。

封面上写着"没有数页代码", 然而你往100页往后看半页代码的实在不少

如果语文上看不懂的话,哥想告诉这位仁兄,什么叫做没有数页的代码。不是叫没有代码,也不是没有半页的代码。哥再告诉你,数页的代码是什么,是告诉你一个校园管理系统所有的代码都贴书里面,一个接着一个的贴代码,好吧,我承认,这样子光盘的内容也会非常的多。

小胖搞不清楚这是买知识还是买仇恨来的,这个道理和光盘的一样,你要看看每一段代码都讲了些什么,你可以得到什么,不要以为文字多或代码多你就可以得到你想要的,吸收了多少才是关键,而且文字多肯定代码少,文字少代码肯定多,这个数学题没玩明白还是一直没搞清楚这个逻辑,再说第3章节开始真正接触JVM虚拟机,里面的每一段代码都会说明一些特征和使用手段,我想问的是你是在找书上的仇恨吗,如果是职差,TNND的也太肤浅了吧。如果是程序员,其中任何一个测试代码,你肯定可以从改动这个代码过程中学到点什么,如果学不到还是那句话,只有两种可能性,要么太牛要么太挫。

从这本书也可以看出阿里的企业文化不怎么样.

小胖回复原因最看不惯的就是这句话,这尼玛还上升到公司文化上来了,还真厉害,还真自以为是。小胖就算千不是万不是,也和公司的企业文化无关,这本书所有的一切观念只代表个人,你有看不惯的一个只能代表你个人的看法,不要装着一副高高在上看唱戏的上帝样子,另一个只能小胖本人,和任何公司无关。

或许下册很多内容针对这群自己为是的人,当然这群人未必看得懂就是了,小胖只是希望更少的人去加入到这个人群之中,有太多人被这个乌烟瘴气的世界变得阴暗。说白了,这群人看不惯小胖,小胖也看不惯这样一群人,不要以为自己很拽,很拽的话为啥只敢在网上自己瞎YY下,小胖所有的联系方式都有,有本事互动下,我知道,即使这样一群人被打败也有一堆自言自语的碎碎念,为啥我们不必多说,每个人都有不同的路去走,所以你也不要去想小胖是什么样的路。

6、全书都在自以为是的啰嗦,没有任何条理,东拼西凑,感觉是在凑字数,虚伪的作者,没有真才实学吧。

全书都在自以为是的啰嗦

大部分内容在前文中回应,这里不想回应太多。只说一点,“自以为是”这个词或许用在你身上更好,哥的大部分内容都是引导式的,从来没有站在高高在上的宣讲,即使发表个别观点,也是“我认为”、“小胖认为”、“或许我们可以这样”、“或许这样可以更好”、“变通一个思路”、“那么或许有这样一个结论”、“小小总结”。如果你认为这个是自以为是,那么或许你太自以为是了。至于说啰嗦,在上文有回复,小胖承认在某些细节处理上确实显得有点过,不过用心之人必能看出该书是用心写书,如果你单纯地在找一本书找啰嗦,我可以告诉你没有几本书找不出,如果找不出小胖也认为这本书基本也没啥用,好吧,这也只代表小胖的观点,因为小胖认为即使这样的书上的知识再好也是“冷冰冰的”,而不是“热乎乎的”,我书上的前言就说过,我们是在交流与分享,我们不是在灌输。

没有任何条理,东拼西凑

这一点我承认一部分,单看一个点上,思维比较发散,这一点是第一次写书比较忌讳的,在原稿上更发散,出版前已经减少了很多,这是小胖的思维习惯,不过呢,似乎小胖最终还是没跑题。如果你拿到一个点来说一本书的话,在看样章早就该得出结论,本书最发散的一章就是第一章,因为它是从小例子开始说到很多JVM内存乃至多线程的东西。后续内容即使发散也是小范围的,所以如果你认为没有条理,或许你还真不知道搞这一行该学点啥,那么你可以去继续坚守你的SSH的崇高信念,哥从来没有拦着谁,不过你也不要来着拉仇恨,哥从来不挑起仇恨,但从来不惧怕仇恨。

那么东拼西凑这个词小胖就自然有说法了,小胖从来就没有说过要写某个点上的问题,在前言说得很清楚,你为啥要买,还是那句话来拉仇恨的吗?本书所写的是小胖认为一个渴望成长的Java开发者可以去提升的点在那些方面,小胖会写出一些或许你平时没有关注的地方去关注,去深入挖掘,学会去探讨知识,思考问题的思路。

感觉是在凑字数

这个问题上文已经回复,这里也不想多说,还是那句话,如果你认为哥在凑字数,你可以去看看写的是什么,那些字数或许比你直接写还痛苦,哥有必要么。再说,字数让你给过钱么,这个字数的书可以去看看别的书是多少钱,再去看看比这书薄一半的书多少钱,哥写不同的角度一个是思维习惯,我们很多时候被一种思维习惯禁锢在一个范围内,以至于思考问题不能看到很大的范围,以至于我们学习知识也只关注眼前的事情,如果你觉得哥在这样凑字数,你凑一个来看看。

虚伪的作者

最尼玛看不惯的也是这类评价,上一个因为一本书上升到公司企业文化,这一个因为这本书上升到人格,你们还真厉害。评价一个人或一个公司没有亲身接触不要乱说,用你自己的话说就是真”自以为是“,上面的回复如果顺理成章或许你还有点点道理,但请记住,这只是你个人的看法,别认为自己可以代表所有人,可以去看看这本书大部分的说法,你或许要想想自己是不是有问题。

哥说的话你未必信,但哥在工作场上一直是一个直言不畏的人,有些时候会得罪人,但面对工作和知识从来不谈虚伪,哥最嫉恨虚伪和成天和我嬉皮笑脸不干实事的人,当然如果干实事嬉皮笑脸是另一回事,哥也很喜欢开玩笑,如果你开不起没有人让你选择我的风格。所以你要提人格,你未必有哥的人格好,虽然哥由于直肠子经常得罪人,人格也不咋的。

没有真才实学吧

好吧,你非要说这句话,哥就告诉你,有没有真才实学哥的工作说了算,哥的朋友说了算,阅读本书的总体评价说了算,而不是某个人说了算。既然你说哥自以为是,哥也从你的评语中给几句评价:“从评价中就看得出没有认真看过这本书,更没有认真看过前言如何阅读这本书和本书要讲什么,在我看来随手翻了几页,首先带着有色眼镜来看这本书是中国人写的,中国人就不可能写出啥好玩意出来,我要又有机会好好鄙视别人一番了,翻了几页,要么文字多,要么代码多,即使不多也能整出个不少出来,还真能玩文字游戏”。

还有,哥从来不认为自己有真才实学,哥是在分享自己的经历和思维方式,哥永远看得到比自己强的人,所以从来认为自己很弱,不过至少比很多人要强,这是一个客观的评价,如果是这样,哥觉得有些东西值得去分享,因为这些人或许可以更快达到小胖的水平,而比小胖强得多的人去帮助这群人,或许可以让他们看到很多没见过的牛人秘籍,他们也会为自己所见所闻沾沾自喜,因为太牛逼了,可惜没咋看懂,不过有本牛书感觉有底气。


7、初学者可以看看,基础知识不较多,想通过此书来提高水平的不怎么样,只能用来巩固基础(非差评,但和小胖观点偏差有点多)

或许这位是顶尖级的牛人,在这位大牛的眼中的初学者或许是业界已经不错的人,不过呢,小胖认为过分初级的初学者不适合这本书,因为很多东西你未必能看得懂,尤其是基础太差的同学,基础好的也可以看。如果真是这样,小胖奉劝这位牛人,请不要以牛人的标准或你所在的圈子来衡量这个世界所有的程序员。还有就是当自己站在高处时,请不要认为与你距离很远的人可以瞬间转移过来。

巩固基础是真话,小胖写的东西很多在教材上可以找到,也结合了很多社会实践,换了一些思路来讲,挑选了一些重点,另外主要要把思路连贯起来。不过在小胖眼里,巩固基础就是提高水平,或者叫提升内功。或许你认为是某方面的能力,如更快完成项目、设计项目、更快沟通、更快设计理想中的产品、更快解决问题。我想这没有什么书可以帮助你,提升内功小胖也只说方法,引导方向,从来不谈过分细的细节。另外水平上讲,小胖认为能写出更好代码,能清楚自己代码开销,能充分评估自己的应用系统的开销,能诊断问题并定位问题,也是水平和能力。并通过这些东西不断磨练,小胖相信其它方面的能力也可以得到更快的提升,这就是小胖所提到的所谓的内功。一个是静心,一个就是找打破方向、方法后去坚持。坚持和静心本身也属于方法,但是你是否去做,小胖管不了,小胖只是对比了很多见过的人,发现这可能是一个共性,分享给大家。

8、看了字符串的一张,竟然把JVM穿插进来讲。没有条理,语言太口语化,说实话写书水平还没李兴华、李刚的那些书好
现在的java程序员总是喜欢搞些飘飘然的东西,老老实实把常用的类库学习好(并发网络集合加密等),老老实实把一些常用的框架学好,多关注JSR里的新技术(比如最近的那本restful的书我挺喜欢),看看老外的提高书,就行了

《Java编程思想》关注的更多是语言层面的东西,并没有涉及jvm,jvm方面让专门写jvm的书来描述比较好(比如那本深入理解java虚拟机、java虚拟机规范),框架让专门写框架的书来写,你一个java书 非要一口吃掉所有东西
宣传成是“中国的thinking in java”实在是太夸大了,还是看那些外国人的书比较好,有条理、质量高(比如Java核心技术、并发编程、性能优化权威指南、XXX实战这类)


看了字符串的一张,竟然把JVM穿插进来讲

将JVM进来怎么的了?说白了,就是有太多人搞不懂自己写的代码和JVM有啥关系才有本书的存在,如果以小胖个人的观点来讲,如果一个写代码Java代码的人在JVM上运行情况是怎么回事都不知道的人根本算不上合格的程序员,常常有人问起为啥学JVM,没兴趣、头大,或许这会唤起很多人去学习的兴趣,也确实有不少人反馈开始有兴趣去研究一些细节。

反过来还是那句话,小胖的样章在网上,没看就来下手是来拉仇恨的吗?再说第一章是浅显说了下大概,并没有提到什么深入JVM的的内容。

没有条理,语言太口语化,说实话写书水平还没李兴华、李刚的那些书好

有点乱小胖承认,不过有没有条理未必是这么看,有些乱是在细节的发散上。是口语化啊,小胖又不是专业写书的,从来不想和谁比写书厉害,出书的意图不是本人,而是别人希望我出本书。而且说实话,口语化怎么了,小胖本人就是屌丝出生,小胖是和屌丝程序员交流,不是与你这些高大上的人看的。

现在的java程序员总是喜欢搞些飘飘然的东西,老老实实把常用的类库学习好(并发网络集合加密等),老老实实把一些常用的框架学好,多关注JSR里的新技术(比如最近的那本restful的书我挺喜欢),看看老外的提高书,就行了

这句话基本认同,不过搞些飘飘然的东西要看其目的,不适合你这些高大上的人,未必不适合别人。最后一句“看看老外的提高书,就行了”,小胖不咋认同,虽然不是说小胖的书怎么样,但小胖只能说这只是你的看法。在小胖眼里这只是一群带着颜色的眼睛看世界的人,不过你拉仇恨还是稍微专业了一点,中间几句话还是有点意思,不过说实话这些东西小胖都有提到,而且小胖认为在很多方面比你说得要清楚得多,只是你这些方面你有自己的“信仰”了(在小胖眼里叫信徒)那么小胖就没有别的想探讨的了。

还有最后,所谓学好什么叫做学好,是会用、会搭积木等叫学好还是什么叫学好?或许懂得一些思考的人看小胖的书会多少知道点,有些事情不是我们看的那么简单。

《Java编程思想》关注的更多是语言层面的东西,并没有涉及jvm,jvm方面让专门写jvm的书来描述比较好(比如那本深入理解java虚拟机、java虚拟机规范),框架让专门写框架的书来写,你一个java书 非要一口吃掉所有东西

首先《Java编程思想》原作者主要写的是语言层面的东西,肯定是没问题的,但没有讲JVM是扯淡的,原作者有一定的篇幅也是讲了JVM,如果你没看那是另一回事,或只是看了小部分。还有谁规定了写这类书就只能写和编程思想一样的东西,要是那样小胖写它干嘛。JVM确实有专门写得好的书,你列举的第一本也是中国人写的那本写得不错,这和阁下提到的看老外的书自相矛盾。但是谁规定了只能写这样的书,小胖的书的前言、目录全部都有,没看下就下手又是来拉仇恨的吗?还有小胖问过很多学你提到的高大上的书,问10个人有8、9个人说看不懂,这些人可以被认为还在摸索阶段的人,不要认为所有的人都属于那10%的人,为啥要写这些?有人不知道咋学习,有人不知道怎么提高,有人不知道学这些用来干什么?有人不知道平时写的代码和JVM有啥关系?等等有人不知道,哥写给这样一群需要帮助的人。

哥从来不想过要吃掉所有的东西,哥没那么大的胃口,在前言写得十分清楚,这本书不是专门针对什么东西去写,小胖希望让人明白一些事情,同时掌握一些学习方法、思路、技巧,小胖的书从来就没有定位是来讲解知识的,小胖的观点尽在书中,需要掌握什么东西叫功底以及如何学习,有功底攻克框架,框架,这个过程叫屌丝程序员的进步,不是类似LZ这些高大上中的高大上。另外,框架方面小胖从来没想过要写书,大多数写框架的都是咋用,写原理的屈指可数,既然有我为啥写,没看出来写这部分内容的篇幅很小吗?因为挑选的都是很多人经常问的疑问来反推框架怎么实现的。而且哥是根据问题反推的,包括讲很多前面的技术也是这样,为啥这样?很多人知道用来做啥才有想法去学,当然我告诉读者了,自己不看是小胖管部着的,所以小胖提到静心读书者。在哥看来,框架的源码是根据自己的工作场景把它挖掘明白的,不是一本书讲清楚的,即使讲清楚也只是某个版本的部分功能,小胖更崇尚自己挖掘的能力和结合技术功底的理解。

最后,本书定位在前言很清楚,为啥写这么多方面都有答案。小胖也可以告诉你,如果出下册,内容将会更广、更宽、更结合实际,会结合上册的框架、JVM、并发编程、计算机基础,当然还会结合下册提到的更多的内容在实际场景中不断变通,因为在技术层面小胖看来这些是现代程序员所需要去掌握的方面,在思路方面是一个程序员所需要去掌握的,小胖也会继续用屌丝的思路让更多的人找到路子,有很多细节可以去调整,但是小胖拒绝无建设性的拉仇恨,会坚持自己所坚持的。

宣传成是“中国的thinking in java”实在是太夸大了,还是看那些外国人的书比较好,有条理、质量高(比如Java核心技术、并发编程、性能优化权威指南、XXX实战这类)

首先“中国人版的thinking in java”不是哥说的,而是小胖的一位朋友写推荐的时候写的,小胖写书的初衷只是一种交流和沟通,而这位朋友为啥会这样写,小胖问过,他觉得写作方式有点类似,引人思考和挖掘,并阐述方法。而并非要写什么内容才叫thinking in java,不好意思,这句话作为出版社的封面宣传了,但从书的内容上我想你找不到任何一个与此关键字有关的信息。

又回到老外的话题,还是那句话,这是你个人的观点。对于你提出的这几本书有好也有不好,小胖在这里也不想做任何评价。


书真不怎么样。作者的语言工底不行,一个简单的知识,反而越读越糊涂。

书怎么样是个人观点,小胖没啥好说的。


作者语言功底不行,这个也算吧,因为小胖一直就是搞计算机的,不是搞语文的,语文一直不及格,呵呵。有些挺多句子确实不通顺,不过似乎很多人也看得懂,而且看起来似乎比很多文章更容易懂。或者换个说法,小胖虽然需要提高语言能力,但是不会因为语言能力让某些东西的本质变味。本书的目的也不是让人来欣赏语言功底的。


一个简单的知识,反而越读越糊涂,这个问题也许是小胖的语言功底不好导致的,但也有可能是一个简单的问题并没有那么简单,而被大多数人认为简单所导致的。本书早已提到,我们是通过一些小知识,从每一个细节出发,挖掘细节的知识,并与之联系起来。这种说话的风格也是书中的风格,这种风格从第一章开始就是这样。


我看了深入理解jvm,并发实战。想看看作者对于这些知识有没有提及其他书没有的一些重点。但是真的看得头很大。动不动就是开始讲人生道理,太绕了。

首先,我要说的是,JVM、并发实战上该讲的知识点一定会比Java特种兵多,在每一章的开头,只需要30s的时间看章节介绍,就可以看到小胖提到本章讲的内容是什么。换句话说,知识点就那么一些,JVM给你提供的特征和机制就是这些,不可能谁给你假设一种没有的机制出来。

至于说小胖为何写这些章节,其一是这些是Java程序员所必备知识,另外,小胖只是讲一些比较基础的东西,平时比较关注点的部分。例如JVM、并发编程里面和具体每一种虚拟机、OS、版本相关的实现细节不会提到,因为我们是Java程序员不是内核程序员或JVM程序员,我们学这些的意义是帮助我们更好的写代码、优化代码、参数调整等。

至于说人生道理,从第一章就开始有,如果不习惯可以从一开始就不要选择这样的方式。喜欢听的人始终喜欢听,不喜欢听的人始终是大道理,人自古以来都有自己所想和所不想,不是同路又何须执着呢?回到话题,很多地方并没有人生道理那么夸张,很多地方结合的是生活场景方便一些人去理解(再次说高手不合适,或许在小胖眼里,一些高手已经有自己的固化思维方式),也有一些地方是探讨心态(小胖是希望与读者交流,而不是灌输),还有一些地方是假设和推导(这个是思路演进和联系,有多少人学懂了知识的原理但不知道为什么原理要是这样的,很多时候大家欠缺的不是知识的原理,而是对原理的一种思考,而是被动的接收原理吧了,即使你理解了,甚至于在工作中应用上了那么一点点也无法称得上“驾驭”二字)。


作者态度不认真,代码直接从电脑上截那种模糊的图。语言表达能力差,简单的知识,写出来能让人读得晕头转向。

态度不认真这个问题,不是任何人说了算,在认真二字面前不服的小胖可以接受任何人的挑战,在小胖能力范围甚至于一些能力范围外内去做一些事情对任何事情的严谨性会做到小胖认为最好的程度,尤其是编写核心代码。

如果非要说这本书,只能说小胖是忙里偷闲写的,平时上班写代码经常加班连续一两个月,时间不多,如果对书的这些方面有洁癖的话完全没必要选择小胖写的这样的书。至于电脑截图,那大部分是源码截图,一些开源框架以及JDK自带的源码,都是截图出来的,至于模糊,似乎还不至于,至少我手稿我认为是非常清晰的,出版社虽然改过几次,我也大概浏览过,里面的文字基本都是看得清楚的,如果出现个别文字看不清楚的情况可以单独反馈。


语言能力方面的问题,上面提到,不再说明。

简单知识写出来,很绕,上面已经提到,也不再多说。


其实这本书中的很多章节最好找其他书来看,比如并发那一节就看java并发实战。jvm就看深入理解jvm虚拟机。他讲的其实都是那些上面有的东东,但是作者组织语言的能力真的让人看得头疼。

这个应该回复与上面类似,同样的回复,并发、JVM这些知识本身就是固定的,没有说谁能多出来,多出来的都是我们通过现有知识YY的,当然文中小胖不乏带着大家一起YY过现在的技术以及一些技术展望的YY,另外,本书开篇、每一章都会提到目的和写的程度,翻翻目录就会有。所以不存在说谁有、谁没有的问题,非要说只能说看怎么讲的问题,小胖讲法适合一群人,但不要因为不适合你而你可以代表所有人。

另外,学并发、JVM这些知识有多少人真正结合场景理解过他知识的本质原理,理解原理的人有多少人理解原理为什么是这样子的,有没有和操作系统的底层原理对比下为什么JVM设计成这个样子,它的实用价值是什么,如果看小胖的书是奔着知识点而来的,那就别浪费钱了。我们学习东西难道只是装B还是科研,即使是科研最终也是要为社会生产服务,而不论是计算机还是其它任何科研都是为提升各种综合效率而存在的,还真别不认,人类的世界就是这样子的,更何况计算机本身的存在就是为效率而生的。


《Java特种兵》:阿里的大牛会写书吗?通篇口语化,内容章节完全没有条理,居然还号称“中国的Thinking in java”,作者你以为读者都是这不懂那不懂的傻逼吗?名书里有的 知识你就别写了,写起来又没有条理。

关于会不会写书和口语化以及是否号称“中国的Thinking in java”前面有提到,不多说了。

内容完全没条理可能是口语化导致的,不过是不是真的没条理似乎我自己没那么认同哈,我不是来写总结报告的,那么有框架性,也没想过去追求高大上,从头到尾就是口语聊天。

读者这不懂那不懂与是不是傻逼是两回事,扯到一起不是我干的,小胖从来不认为什么都不懂的人是傻逼,我只是要教很多不太懂的人而已,读者如果这懂哪懂没必要来看小胖的书,找成就感可以去看别的,作者的角度也奉劝你也不要认为你曾经懂过别人也很懂。

名书里面有的知识你就别写了,写起来又没有条理。谢谢你认为我还在写知识,其实小胖不觉得自己在写知识,而是在做沟通交流和简单分享而已,中间穿插几个别人没写的东西或许很多翻书器跳跃了而已。再说回来,这个世道知识体系就那么些,早已提到在乎于讲法。---其余不多说了,人各有志。


【小胖综合反馈】:

希望读者看了目录、样章、前言在考虑是否买书,我也诚心期望买书之人是合适读该书之人。在本书前言说得很清楚,小胖也不是专门写书的人,也不是服务员要去照顾到谁的口味是什么,小胖就是小胖,小胖在写书的会后不会把自己变成另一个人去写书,对什么有异议可以客观探讨,喜欢通过挑刺这种方式找上帝式的存在感或卖牛逼的话可找小胖单练,或许有机会当面鄙视下作者本人以发泄内心的不满,作者也会因此而得到你想要的下场!

认为买错此书者,可通过该博客或私信作者,作者将无条件花钱买回本书(小胖也不会和你讨价还价),包括邮寄费!买回本书,不是为了封住谁的嘴巴,只是作者不希望书被扔进垃圾桶,小胖还是经常会收到很多人需要该书的人,小胖可以把书送给这些人。


====>

就一年多下来,通过本书,小胖结识了不少朋友,很多朋友坦言通过直接或间接阅读小胖的书找到了自己理想中的工作,,也有很多直白的朋友提到自己超越周边人的待遇,也有很多朋友坦言自己对很多问题的看待方法和思路有了很大的改变,而不是浮于表面,默默去努力和成长,并在面对选择时更加坚定自己的立场。所以,小胖也同时相信所编写的书籍的价值,虽然有很多毛病,而且这些毛病小胖早就知道,所以书是写给该看之人看。



网友评论

登录后评论
0/500
评论
钟隐
+ 关注