java实战代码解析 java代码例子讲解( 五 )


第4章 线程安全性
第5章 安全发布对象
第6章 线程安全策略
第7章 J.U.C之AQS
第8章 J.U.C组件拓展
第9章 线程调度-线程池
第10章 多线程并发拓展
第11章 高并发之扩容思路
第12章 高并发之缓存思路
第13章 高并发之消息队列思路
第14章 高并发之应用拆分思路
第15章 高并发之应用限流思路
第16章 高并发之服务降级与服务熔断思路
第17章 高并发之数据库切库分库分表思路
第18章 高并发之高可用手段介绍
第19章 课程总结
《实战Java高并发程序设计》读后感(四):实战Java高并发程序设计书评
说实话,在当当上找了很多有关java并发编程的书籍 , 最后也不知道是什么原因买了这本书(好像是这本书有优惠 。。。)买来之后看了,简直后悔得不行!
这本书的作者是葛一鸣和郭超,出版社是电子工业出版社!
首先,这本书的作者的写作态度值得怀疑,书中的配图完全是手画的 , 而且画的质量实在不敢恭维,写过的论文都应该知道 , 画图应该用Visio 。实在纳闷那么多专业的图,作者为何不用Visio或其他专业画图软件 , 选择用手画是几个意思,关键画的质量还不咋地,歪七八糟的,看都看不清楚!作为一个专业的出版社,编辑也能审核通过,我是佩服出版社的编辑的审稿能力!
其次,关于java并发这块,这本书连入门书籍都算不上,只能算是科普下,书中涉及到的并发知识,比如java内存模型,volatile,锁等,作者都没有深入原理的讲,基本上都是简单带过 , 远不如百度来的讲得好 , 其中讲volatile的一段:“和原子性问题一样,我们只要简单地使用volatile来声明ready变量,告诉java虚拟机,这个变量可能会在不同的线程中修改,这样就可以顺利的解决这个问题了 。” 不知道大家觉得怎么样,反正我看完想说脏话,作者你就是这么讲解技术的吗?用volatile来告诉虚拟机变量会在不同线程中修改??我只能说呵呵
还有一点,其他豆瓣网友也提到过,很多内容以及代码都是从其他博客、文章copy过来,作者原创的有价值的东西,几乎为零 。
书中还有其他一些低级错误 , 就不一一指出了,最后,如果有幸能够被作者看到此评论,真心希望作者好好反思下,请你为写出的书负责,确保产出原创的有意义的内容,不是随意copy几段文字和代码,整理下就能出书的,请你对得起买书的读者!
Java开发实战中,在什么情况下最适合用extends 去继承一个非抽象的类?抽象类和接口java实战代码解析的区别:默认的方法实现 抽象类可以有默认的方法实现完全是抽象的 。接口根本不存在方法的实现 。抽象类中可以有已经实现了的方法java实战代码解析,也可以有被abstract修饰的方法(抽象方法)java实战代码解析,因为存在抽象方法,所以该类必须是抽象类 。但是接口要求只能包含抽象方法,抽象方法是指没有实现的方法 。所以就不能像抽象类那么无赖了 , 接口就根本不能存在方法的实现 。实现 抽象类使用extends关键字来继承抽象类 。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现 。子类使用关键字implements来实现接口 。它需要提供接口中所有声明的方法的实现 。抽象类虽然不能实例化来使用,但是可以被继承,让子类来具体实现父类的所有抽象方法 。有点老子没完成的梦想交给儿子来完成,但是如果子类将抽象方法没有全部实现 , 就必须把自己也修饰成抽象类 , 交于继承它的子类来完成实现 。就相当于,儿子能力不够也没完成老爹的梦想,现在儿子等着再生儿子(被继承),然后让孙子去完成 。以此类推 , 知道没有抽象函数 。接口的实现,通过implements关键字 。实现该接口的类,必须把接口中的所有方法给实现 。不能再推给下一代 。和抽象类相比,抽象类是将梦想传给家族,一代一代去完成 。那么接口就是掌门人找大师兄来完成帮派的鸿星伟业,这时候就只有一次希望 , 要么有能力就实现,没能力就不要接 。抽象类可以有构造器,而接口不能有构造器这个原因很简单,我们回到双方的定义上来,抽象类再怎么流氓无赖也好,终究是属于类,就天生享有类的所有特性(但是不能实例化),当然包括类的构造方法,也就是构造器 。但是接口是所有抽象方法的集合,注意,是集合 , 不是类 。当然没有构造方法一说,更别提什么构造器了 。抽象方法可以有public、protected和default这些修饰符 接口方法默认修饰符是public 。你不可以使用其它修饰符 。抽象类的目的就是被继承,抽象方法就是为了被重写 , 所以肯定不能用private修饰符,肯定是可以用public的 。但是protected和default也是可以的 。接口就有且只有一个public修饰 。(是不是感觉抽象类像小儿子各种耍无赖,接口就像私生子,说什么只能是什么)抽象类在java语言中所表示的是一种继承关系,一个子类只能存在一个父类,但是可以存在多个接口 。java在类的继承上并没有多继承 。抽象类属于类,所以可以被继承 。但子类只能继承一个父类 。java为了实现多继承 , 使用了接口 。一个类可以实现多个接口 。继承就好比生了孩子,只能有一个爹,但是这个孩子可以学语文,学数学,学英语等等很多东西 , 而语文、数学、英语就相当于接口 。总的来说,因为java中抽象类只有单继承 , 接口就可以实现多继承 。抽象方法比接口速度要快接口是稍微有点慢的,因为它需要时间去寻找在类中实现的方法 。记住抽象方法是小儿子,从小吃的好所以跑的快,接口是私生子,从小日子苦 , 营养不良 。如果你往抽象类中添加新的方法,你可以给它提供默认的实现 。因此你不需要改变你现在的代码 。如果你往接口中添加方法,那么你必须改变实现该接口的类 。抽象类可以有一些非抽象方法的存在 , 这些方法被称为默认实现 。如果添加一个默认实现方法(不能是抽象方法),就不需要在子类中去实现,所以继承这个抽象类的子类无须改动 。但是 , 接口中只能添加抽象方法 , 当你添加了抽象方法,实现该接口的类就必须实现这个新添加的方法 。因为,定义中说的很清楚,接口的实现必须实现所有的方法 。所有,当然包括新添加的方法 。

推荐阅读