多线程编程书籍,有没有关于java深入一点的书推荐?
多线程编程书籍,有没有关于java深入一点的书推荐?详细介绍
本文目录一览: 从事CC++服务器开发,网络编程方向有什么好的书籍推荐呢?
读书使人进步,即使工作了,也要经常读一些经典的书籍来充实自己,作为一名一线开发者,下面将自己觉得不错的书籍进行推荐。
1.TCP/IP详解(卷1)
由机械工业出版社出版,一个系列总共三卷,个人感觉卷一足矣。里面基本涵盖了网络的方方面面,是我们补充基础知识的良药,这里建议大家直接读英文版,遇到不认识的单词可以借助翻译工具还是很方便的,中文版读起来总是会有那么的一点点小别扭。
2.TCP/IP网络编程
人民邮电出版,作者是韩国人,写的还是很不错的,可以作为一本很好的入门书籍,文中涉及到Windows和Linux两大平台网络编程基础知识,并以Linux为主,结尾是以HTTP服务器实例向我们介绍了网络编程的方方面面,豆瓣评分8.5,不失为一本经典的网络编程书籍。
下面是一本本人亲自整理的带目录的PDF书籍,如对这本书比较敢兴趣,欢迎私信+关注,我会在第一时间发送你。
3.Unix网络编程
APUE、UNP基本上是Linux开发必读的“圣经”了,Unix网络编程,简称UNP,Linux环境下网络编程必读经典书籍。豆瓣评分飚至9.2,内容简介已经用到了传世之作这四个字,经典之处不必多说。内容也是非常的详尽,可以重点看看工作中常用到的部分,当做案头书,常来翻翻也是不错的,这里重点推荐下。
4.Linux多线程服务端编程
电子工业出版社出版,他们家关于IT类的书籍还是很不错的,作者是大牛陈硕,以其开源的Muduo网络库为基础,讲解了Linux多线程服务端编程的知识,基本属于进阶性质了,阅读本书,不仅需要你有足够的C++功底,还有掌握一些C++11的知识,多线程、网络相关知识也是必备技能点。
基本上,看完这几本书,再加上工作中的实战,基本可以慢慢独当一面了。
最后,欢迎大家关注我的头条号,一个程序员的奋斗史,带你走进真正的程序员视角,分析IT知识。
有没有关于java深入一点的书推荐?
学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:
1.能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料。
2.对着书上的代码自己敲的时候方便。
“看完书之后再次提升自我的最好途径是看一些相关的好博文“,我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处,当然这里不是说自己的学习方法,就不再扯下去了。
很多程序员们往往有看书的冲动,但不知道看哪些书,下面我就给各位Java程序猿们推荐一些好书(每本书的作者会加粗标红),其中绝大多数都是我自己平时在看的书,也算是我对于平时读的书做一个小总结和读后感吧。
首先推荐的不是一本书,而是一个博客,也是我们博客园另外一位博友java_my_life。
目前市面上讲解设计模式的书很多,虽然我前面讲了看书是最好的,但是对设计模式感兴趣的朋友们,我推荐的是这个博客。这位博友的设计模式讲得非常非常好,我认为90%的内容都是没有问题且很值得学习的,其讲解设计模式的大体路线是:
随便开篇点明该设计模式的定义
图文并茂讲解该设计模式中的结构
以详细的代码形式写一下该种设计模式的实现
补充内容
讲解该设计模式的优缺点
对于一个设计模式我们关注、学习的知识点,不就是上面这些吗?
不过我要重点提醒一下网友们,同一种设计模式的写法有多种,并不是说只有按某种写法来写才是这种设计模式。比方说适配器模式,我们关注适配器模式一定要关注的是什么是适配器模式不是怎么写适配器模式,不要认为某段代码不是按照适配器模式的写法写下来的它就不是适配器模式了,记住这一点,你在学习设计模式的时候一定会对代码中用到的设计模式有更深入的理解。
1、深入理解Java虚拟机:JVM高级特性与最佳实践
如果你不满足于做一个只会写ifelse的Java程序员,而是希望更进一步,我随便举几个例子吧:
了解Java代码的底层运行机制
定位性能问题
对整个系统进行性能调优
解决各种奇奇怪怪的线上线下问题
更加高级别的,为自己的项目量身定做一款适合自己项目的虚拟机
那么Java虚拟机是你必学的一门技术。《深入理解Java虚拟机:JVM高级特性与最佳实践》作者是周志明,这本书可以说是国内写得最好的有关Java虚拟机的书籍,近半年,前前后后这本书我起码看了有5遍。国内写虚拟机的书除了这本,其实还有一些其他的,我也买过,不过粗略看下来,很多内容也是《深入理解Java虚拟机:JVM高级特性与最佳实践》此书里面的。
另外值得一提的是,《深入理解Java虚拟机:JVM高级特性与最佳实践》这本书,有电子版的,网上搜一下就能下载到了。不过建议有兴趣的朋友还是去买书看,电子版本下载到的一般是比较老的版本,相比最新修订版的《深入理解Java虚拟机:JVM高级特性与最佳实践》,有很多作者新补充的知识点是没有的。
2、HotSpot实战
所有的Java虚拟机都是遵循着Java虚拟机规范来的,市面上的Java虚拟机几十款,《深入理解Java虚拟机:JVM高级特性与最佳实践》一书里面讲的虚拟机并不针对某种特定的虚拟机,而是从Java虚拟机规范的角度来讲解Java虚拟机。
我们平时使用的乃至商用的大多数Java虚拟机都是Sun公司的HotSpot,大家cmd进入命令行,使用”java-version”命令就可以看到了。如果希望在Java虚拟机规范的基础上更加深入地去理解虚拟机的一些细节是怎么实现的,就可以看一下《HotSpot实战》一书,作者是陈涛。不过由于HotSpot的源码都是C/C++写的,所以要求读者有非常好的C/C++基础,如果对这两门语言不是很熟悉的朋友,看这本书可能对你帮助不是很大。
最后提一句,如果有兴趣的朋友,不妨先去网上下载一个openJDK,HotSpot的源码就在里面。
3、Java并发编程实战
这本书常常被列入Java程序员必读十大书籍排行榜前几位,不过个人不是很推荐这本书。
《Java并发编程实战》作者是BrianGoetz,怎么说呢,这本书前前后后我也看了两遍左右,个人感受是:
文字多代码少
讲解多实践少
我觉得这可能就是老外写书的特点吧,因为Java是北美国家(加拿大、美国)开发和维护的,所以老外对Java方方面面的理论知识体系都掌握得是非常清楚和透彻的。翻开这本书看,多线程什么用、什么是死锁、什么是竞争、什么是线程安全等等,方方面面的知识点都用大量的文字篇幅讲解,不免让人感觉十分枯燥,也难让读者有实质性的进步。我这本书看了两遍也属于一目十行意思,有兴趣的地方就重点看一下。
无论如何,作为一本常常位于Jva程序员必读十大书籍排行榜前几名的书,还是一定要推荐给大家的。
4、java多线程编程核心技术
《Java多线程编程核心技术》作者高洪岩。想要学习多线程的朋友,这本书是我大力推荐的,我的个人博客里面二十多篇的多线程博文都是基于此书,并且在这本书的基础上进行提炼和总结而写出来的。
此书和《Java并发编程实战》相反,这本书的特点是大篇幅的代码+小篇幅的精讲解,可能这和中国人写的书比较偏向实用主义的风格有关。本书关于线程安全、synchronized、Reentrant、Timer等等都用详细的代码进行了讲解,而且每个大知识点下的多个小知识点都会详细讲解到,非常有实践价值。
有兴趣的朋友们,我相信只要你们跟着这本书里面的代码敲、运行、思考,三步走,对于多线程的使用与理解一定会进几大步。
不过这本书的缺点就是对于Java并发包下的一些类像CountDownLatch、Semphore、CyclicBarrier、Future、Callable等都没有讲到,重点的CAS和AQS也没有触及,重点类的实现原理也没有提。当然,这很深入了,在学习了这本书之后如果能再去对这些知识进行一些学习、研究的话,你一定会慢慢成长为一个很厉害的多线程高手。
5、EffectiveJava中文版
这是唯一一本我没有买的书。初识这本书,是在我的博文Java代码优化(长期更新)里面,底下评论的时候有朋友提到了这本书,当时我说要去买,不过这两个月一直都没时间去逛书店,甚是遗憾,之后肯定会找时间去买这本书的。
《EffectiveJava中文版》的作者是JoshuaBloch,这个人就很厉害了,他是谷歌的首席架构师,属于超级技术大牛级别了吧,呵呵。由于没有看过这本书,所以我不好发表评论,但是从这本书的知名度以及其作者的来头来看(多提一句,这本书也是Java之父JamesGosling博士推崇的一本书),我相信这一定是一本值得一看的好书。
好的代码是每个Java程序员都应该去追求的,不是说我今天写一段好代码相比写一段烂代码对性能会有多大的提升,更多的应该是提升了代码的可读性以及可以规避许多潜在的、未知的问题,避免代码上线之后出问题而花时间去维护—-无论从时间成本、人力成本还是风险成本来说,这都是非常高的。
6、深入分析JavaWeb技术内幕
《深入分析JavaWeb技术内幕》,作者许令波,淘宝工程师。
这本书我用一个字概括就是:全。真的非常全,HTTP、DNS、CDN、静态化、Jetty、Tomcat、Servlet、Spring、MyBatis等等,什么都有,涉及知识面非常广,但又不像专门精讲某个知识点的书籍一样讲得非常深入,感觉这本书就是尽量去用短的篇幅讲清楚一些JavaWeb使用到的技术的内幕,让读者对这些知识点的技术内幕有一个理性的认识。
不过,尽管每个知识点的篇幅都不多,但是重点都基本讲到了,是一本让人真正有收获的书。如果想进一步了解这些技术的技术内幕,就要自己去买相关书籍或者自己上网查资料了,有种抛砖引玉,或者说师傅领进门、修行在个人的感觉。
7、大型网站技术架构核心原理与案例分析
一个字评价这本书,_;两个字评价这本书,很_;三个字评价这本书,非常_。呵呵,好了,再说下去可能别人以为我是水军了。
《大型网站技术架构核心原理与案例分析》的作者是李智慧,原阿里巴巴技术专家。
Java的大多数应用都是用在Web上的,现在只要稍微大型一点的Web应用,都一定是一个分布式系统,那么一个分布式系统用到了哪些技术?一个大型网站是如何从一个小型网站成长起来的?如何保证你的网站安全?分布式系统使用到了缓存,有哪些缓存?缓存的使用有哪些值得注意的事项?
关于分布式的知识点,都在这本书里面有体现,只有你想不到,没有他写不到,而且写得非常易懂,基本属于看一两遍,再记一些笔记就知道是怎么一回事儿了。多看几遍,对分布式的理解一定会加深不少。而且里面不仅仅是分布式的知识,还非常接地气地写了如何做一个好的架构师,其实我认为这不仅仅是写给想做架构师的读者看的,就是给读者一些建议,如何更好地提出意见、如何更让别人关注你的声音、如何看到他人的优点,入木三分,让人获益匪浅。
8、大型网站系统与Java中间件实践
《大型网站系统与Java中间件实践》作者曾宪杰,是淘宝的技术总监,算起来应该在阿里有至少P8的级别了吧。
这本书的部分内容和上面一本李智慧的《大型网站技术架构核心原理与案例分析》有所重合,像分布式系统的演化、CDN、CAP理论和BASE理论等等,这也更说明这些都是分布式系统或者说是一个大型网站重点关注的内容,当作一次再学习也不错。
本书要突出的重点是中间件三个字,中间件是分布式系统中一个非常重要的东西,其最重要的作用应该就是解耦,降低模块与模块之间的强依赖,不同的模块之间的依赖度降低,便可以各自独立地开发自己的功能,这也可以说是软件工程发展的目标和驱动力。
因此,本书有一部分的内容就是基于中间件,详细讲解了中间件与JMS的各种知识,适合对分布式系统比较熟悉并且想要往中间件方面有一定研究的读者。
9、从Paxos到ZooKeeper分布式一致性原理与实践
《从Paxos到ZooKeeper分布式一致性原理与实践》,作者倪超,阿里巴巴工程师。
这本书是我最近在研读的一本书,和上面的《大型网站系统与Java中间件实践》一样,属于分布式组件的范畴,属于有些深入的内容,当然也是我自己的个人兴趣。当然,如果有志向做一个出色的大型网站架构师、公司的技术总监之类,这些知识当然是必须掌握的。
本书从分布式系统基本理论开始讲起,讲到Paxos算法,最后慢慢引入到Zookeeper,循序渐进。当然,更多的我目前还不方便发表什么看法,因为这本书的第二张Paxos算法我都还没有弄懂(Paxos算法确实有些难以理解和不太易懂),接下来的章节还没有看下去。
如果网友们所在的公司在使用Zookeeper,并且你又对Zookeeper感兴趣想要研究一下它的原理的,这本书将是不二之选。
10、MySQL5.6从零开始学
《MySQL5.6从零开始学》,作者刘增杰和李坤。
作为一名Java程序员,我认为我们千万不要觉得数据库是DBA的事情,数据库对一个Java程序员来说也是必须掌握的一门知识,丰富的数据库性能优化经验是一个顶尖程序员必备技能。
目前主流的数据库有Oracle和MySQL,当然推荐大家的是MySQL,主要原因我认为有两点:
1、MySQL相比Oracle更轻量级、更小、安装和卸载更方便,SQL其实都是差不多的,如果想学数据库,学MySQL就可以了,在家里面可以自己方便地研究,如果你的公司使用Oracle,只要再用对比学习法,关注一下Oracle和MySQL的差别即可
2、随着2009年阿里巴巴去IOE的运动的进行,目前国内的很多互联网公司都会选择MySQL作为它们使用的数据库,因为MySQL免费,所以既省钱又不需要出了问题就依赖甲骨文公司
MySQL学习我推荐的是这本我自己学习看的《MySQL5.6从零开始学》,我是觉得挺好的这本书,书里面的知识点很细致、很全面,读者选择书籍的标准大多不就是这两点吗?
11、Spring源码深度解析
《Spring源码深度解析》,作者郝佳。
Spring这个框架做得太好了,功能太强大了,以至于很多开发者都只知Spring,不知什么是工厂、什么是单例、什么是代理(我面试别人的真实体会)。这种功能强大的框架内部一定是很复杂的实现,这就导致一旦你的程序使用Spring,出了问题,可能是Error、可能是Exception、可能是程序运行结果不是你的预期的,出现诸如此类问题的时候,将会让你感到困惑,除了上网查资料或者问别人似乎没有更好的解决办法。
研读Spring的源代码不失为一种很好的学习方法,我个人认为这有很多好处:
理解框架内部的实现之后,可以主动去解决问题,而不需要依赖别人
Spring框架内部实现用到了很多设计模式,很好的代码设计思路,这将会对你写代码、对你理解设计模式有很大的提高
研究Spring框架将会大大增强你读代码的能力,我相信只要你能研究清楚Spring内部是如何实现的,其他任何一个框架的源代码都难不倒你
总而言之,我认为读代码的能力是一个普通的程序员和一个好的程序员之间最大的差别之一,前者只会把别人写好的东西拿来用,后者不仅能用好,还清楚知道别人写好的东西底层是如何实现的,在出现问题的时候可以轻松解决。
Spring源代码,个人推荐《Spring源码深度解析》一书,真要研究透并且写清楚Spring源代码,恐怕三四本书都不够,作者在近400页的篇幅中尽量去讲解Spring源代码是如何实现的,殊为不易,尽管无法讲得完全,但是相信作者的讲解配合上读者自己的研究,一定可以对Spring的实现有更深度的理解。
以上就是我对Java高级部分应该看的书籍的推荐,希望可以对你有所帮助。说一点我的建议,我们学Java技术更重要的还是看视频教程,我们只有看更多的视频教程,不断的练习,在脑海当中产生深刻的记忆。我永远坚信我的一句话:书籍能诠释的东西毕竟有限。
最后在这里推荐大家关注一下我的微信公众号:Java新手学习,给你准备了一套最新的Java基础精讲视频教程和Java系统学习路线,关注即可观看。
谁给推荐几本java进阶的书籍?
《Java编程思想》
这本书适合开发过一两个项目,对java已经有一定的了解的人。这本书首先不是java的入门书,虽然这本书介绍了一部分语法,但是更多内容是java特性的讲解,里面的用例水平非常高,对于面向对象讲解,接口,内部类,容器,多线程,I/O的讲解很透彻同时又很深刻,他会告诉你,在什么情况下你应该作何选择。以及各种选择的利弊。这本书不适合从头看到尾,适合在迷惑不解的时候,带着疑问去翻,让你的求知欲带着你去看书,而不是给自己定一个Java编程思想的读书计划。
《深入剖析Tomcat》
试读人群:做过两三个项目,对面向对象设计有一定了解,设计模式似懂非懂,想好好看看什么是面向接口编程,对serlet的加载,映射,及整个http请求处理流程感兴趣,不能容忍自己的知识体系存在黑箱的人。认为Java后台开发仅仅是CRUD的人。Tomcat大家都很熟悉了,不论我们做的课程设计的小项目,还是淘宝天猫等每天PV访问量过亿的大型网站都在用,你还敢瞧不起它吗?还是认为入门的技术不值一提吗?
你可能更换数据库框架,mvc框架,容器,但是很少有人换掉Tomcat。为什么,因为她是一个优秀的设计(帮你做了很多,但在可定制性方面不如Jetty)。
这本书从一个简单的socketB/S程序入门,作者从头编写连接器,处理器,请求(request),处理(response)开始讲解tomcat的设计理念,中间讲Tomcat4及5的源码,讲解tomcat核心的设计Container四大容器,然后讲解tomcat安全,权限,以及配置文件的读取,java对象的管理,定制性Tomcat项目管理的后台(就是你访问tomcat路径的根路径进入的管理网站)。这本书适合于,心无旁骛,没有项目,没有太多事的情况下,对照实际的源码,一行行的读,明白处理流程,了解什么时候是优秀的代码?扩展性,健壮性
《深入理解Java虚拟机》
适度人群:想学习并发编程,反射,想了解JVM优化。闲着无聊,没项目的人首先这本书可能有点枯燥,没有什么用,真的,对于你现在的实际项目没有直接用处,但是,你要想在java方面研究得更深,不可避免,你需要对jvm及其优化,java的内存模型,java类的加载机制,字节码文件到底是什么,以及并发编程,Java性能优化等方面有所了解。,你需要好好读这本书,可能比较枯燥,有点难,但是他值得你用心读。
《设计模式-可复用软件的设计》GoF(《设计模式的艺术之道》刘伟)
适读人群:有过三四大小个项目经验,想了解什么是软件,什么是程序,什么是面向对象,只有读了这本书,你才知道除了算法,性能,之外,我们还要为之奋斗是扩展性,究其原因是:软件行业的梗,需求变更,可能项目初期的需求和项目开发后期的需求有天壤之便,但如何在设计阶段就为需求的变动做好准备,那就是对变化的部分抽离抽象,分层,分工,虽然提高了复杂度,但是后期我们可以轻松一点,如果前期不设计好,真的一个项目可以在需求变化面前,彻底玩完。根本无法继续开发。如果你还没接触到需求变更,只能说你的客户不太重视他的项目,或者客户本身就是程序员自己。一个main函数一个人从头写到尾绝对不是软件。作者从创建型,结构性,行为型三个方面详细介绍了23种设计模式,字字珠玑,耐心的看,耐心的理解,把这本书和Java编程思想放在一起,没事就翻翻看,没准哪一天你在写程序,发现,如果我这么设计,后面的开发我可以非常轻松的。那时,你一定要感谢作者总结了这些设计模式。可能GOF的书距今不叫遥远,设计案例比较陈旧,所以可以同时看《设计模式的艺术之道》这本书同样不错,例子可能更容易理解一些。
软件行业的圣经之作,只要你做技术,你应该时常翻翻看。
《JavaScript编程全解》(JavaScript高级程序设计)
适读人群:学会基本的javascriptdom编程,jquery,做过两三个项目,但是没有系统的学习javascript,总是在为一些语法,或者莫名其妙的错误烦恼的人,这本书绝对适合你,应为他就是写给java程序员的Javasript书籍。Java程序员进阶,为什么要谈JavaScript,我个人不喜欢JavaScript,应该我找了半天错,可能就是因为一个简单的语法错误,还有就是只能操作控件,我一直希望前端人员可以帮我做这些事,后来发现这几乎不可能,JavaScript还得自己写,可能以后工作之后,更得自己写,所以我想系统学习下script,后来这本书真的没有让我失望,这本书后面高级部分还没来得及看,但是仅仅在讲述JavaScript的语法特性,就有一种如沐春风的感觉,良心之作。
有事没事的可以看看。当然这本书并没有侧重于dom编程,可能我们做的更多是dom编程,所以我还推荐你可以看看JavaScript高级程序设计。我看我们前端美女帅哥都在看这书,应该还不错,就是有点厚,但是说明讲的详细,可以做工具书。
《深入分析javaweb技术内幕》
适读人群:做过三四个项目,看过上面的深入剖析Tomcat,深入理解Java虚拟机,设计模式,使用过Spring,mybatis的读者。这本书的水平真是很高,说实话,看这本书的时候,我几乎流下了眼泪,我能感受到作者真的是用心在写书,不是为了出版赚版权费,不是为了装X,而是真的是希望自己当年吃过的苦,别人能少吃一点,别人可以学的更轻松。尤其是作者的细致认真,用工匠精神来说,一点不为过,同时再加上当时看Tomcat源码时的感想,可以总结一句话,一个优秀的程序员在每一个细节都精益求精。在他们的知识体系里,永远不能容忍一个小漏洞存在,在细节处着手,踏踏实实的写好每一行代码。把每一个有疑问的点都在合适的时机解决掉。作者在细节上击败了我。
同时不光在细节上,作者详细讲述了Javaweb中的技术方向,多得数不清,但是每一章你都感觉不到作者的疏漏与不足。博广精专,这就是本书的作者值得我们学习的
本文目录大概包括JavaI/o,字节码,编译,jvm,tomcat,spring,ibatis,等等。
《重构改善既有代码的设计》
适读人群:挣扎于需求剧烈变更,维护升级的孩子们。这本书与设计模式并成为软件行业的两本圣经,虽然我不这么认为,但是毋庸置疑,当你看完这本书,之后,你会更关注你写的代码的的结构,这两本书都是让我们可以写出可维护,可扩展,健壮性强的代码,这本书就是教你如何修改代码,如何修改能够引入更少的错误,同时更加容易维护。作者讲述很多的技巧,实用性极强,但是如果你写的项目变动不是很大,或者没有一些修改代码的苦痛的经历,可能体会不会很深,这是一本独立性比较强的书,看一看是绝对值得的。
《操作系统设计xinu方法》
适读人群:学习完操作系统课程,想深入了解下操作系统内部的细节,如何实现线程调度,内核态用户态转化到底是什么,消息循环,进程管理,等等,你都可以看。这是一本用C语言写的书,但是身为Java程序员,最起码得会C语言,看了这本书有什么好处呢,说实话,对Java的面向对象开发没有什么帮助,他的帮助仅仅是在于你对操作系统的了解更加深刻,当你去看JVM的时候,可能会轻松一点点,同时他也在告诉你,其实操作系统并没有那么高不可攀,你就可以从源代码级别看懂操作系统。同时可能,我觉得当你编写程序到一定级别后,走上架构师之路,操作系统绝对是知识体系中不可避免的一个重要环节。现在可以打个基础。这本书适合于操作系统课程上完一大半之后在读。
一点都不难,真的!
《超越传统的软件开发-极限编程的幻想和真实》(《解析极限编程-拥抱变化》《人月神话》)
这三本书都是软件工程方向的书籍,关注于如何构造高效开发流程。在这方面我懂得很少,我会找别人再来给大家完善这方面的知识,但是这三本书肯定都不难,有过项目领导经验的人来看,收获一定会更多,其他人随便看看,你会收获很多,例如,测试先行,结对编程,螺旋开发,循环迭代,不断优化的理念。等等《Java程序性能优化》
适读人群:做项目三四个以上,了解java内存模型,以及初步掌握多线程编程,再有就是速度狂们。这本书从一些编程技巧,性能优化的理念,以及多线程并发编程的一些设计模式入手,讲解了如何找到项目性能的瓶颈,如何提升系统吞吐量,从细粒度,编程角度去思考这些问题,(而不是分布式处理),真的尤其是后面的多线程部分,如沐春风,激起了我对并发编程的兴趣。
《Java并发编程》(《java多线程编程的艺术》)
适读人群:想深入学习并发编程,对jvm内存模型有了解(深入理解jvm虚拟机内本书很重要)速度狂,对java已经有了不错的感觉,感觉可以代码水平需要更上一层楼的人Java并发编程是Java并发包的作者写的,java.util.concurrent大名鼎鼎,很有名的,学习并发编程的圣经之作,但是不太适合入门,入门需要看看后面的java多线程编程的艺术,一行行的代码,一个个的小技巧,慢慢来,并发编程绝对是是否是高级程序员的一个评判标准。
Java并发编程,你应该时常翻翻看。
《深入分析Spring技术内幕》
适读人群:熟悉精通设计模式,对面向接口,对象编程特别有感觉的人。时间充裕这本书,让我为之震颤,震颤的原因不是因为这本书讲解多么细致,清晰,而是Spring的开发团队为什么把Spring搞得这么复杂,面对一个个的UML图,我真的是很捉急,表示看不懂,可能是我本人比较笨。但是要想读懂这本书,还真需要长时间的阅读,思考。但是
正如那句话,当你感觉生活艰难的时候,可能你在拔一个大萝卜,当你真的透彻了Spring,你就不可限量了。国内,应该没有比这本书更系统从源代码级别详细讲解Spring的了。
《EJB3.0入门经典》
适读人群:闲着没事的人.这本书放在最后,不是因为他重要,而是因为这本书无关紧要,为什么呢,因为现在的开发,可以不适用EJB,但是你了解他之后,你就明白了什么是分布式程序,什么是程序的分布式部署。同时你还会知道除了Spring容器还有一种容器叫做EJB,而是还是J2ee的嫡长子,还会明白,为什么在j2ee领域让野孩子Spring抢了风光。当你学会对比学习两个框架的时候,可能你真的是一个大神了。Spring和EJB就是可以对比的。SpringMVC和Struts,
Hibernate和mybatis,等等,只有学会对比,才会看得更加广阔.但首先还是要踏实
《架构探险,从零开始Javaweb框架》
适读人群:想写框架,对反射,对集合比较熟悉的人;你可以把这本书,当做自己设计框架的入门书,可以看到一个框架的编写是多么的简单,你应该也学会参与开源项目,这本书不难,但是需要用心去读。需要边看边敲代码。什么是Aop,事务处理,mvc框架,等等等等,作者的编码水平高,实在太高,同时讲解的也很透彻
《j2ee核心模式》
适读人群:闲着没事,想开发框架的大神这是Sun公司出版的一本书,对于J2ee的开发非常有指导性,里面总结了一些非常实用经过实践检验的设计思想,设计技巧,有很多你应用了但是你没有注意到,例如,一个不好的实践是控制层有太多的逻辑代码,这种情况下,视图层需求的变动很容易影响到控制层,而你如果利用好”传输对象“这个设计技巧,就可以把需求变化控制在业务处理层和视图层,
(传输对象正如其名,仅仅是一个容器,里面载入了大家需要的各种数据)
有很多你使用的框架应用了,你也没有注意到,例如前端控制器模式
我在做微信开发的时候就不曾理解微信为什么只能定义一个接口,后来的实践告诉我
正是这种模式,才能让我们的控制层与Servlet解耦,我们借助于这个前端控制器拦截请求,
将请求转发到我们的控制器中,甚至你有兴趣可以自己封装request,response,等,事实上
SpringMVC框架就是利用了前端控制器DispathcerServlet将请求映射到controller中。
这本书后面还会介绍jsp中的一些优秀实践,EJB的实践,EJB这部分可以看看数据处理部分。
但是可能没有做过EJB项目的读者,不会收获太多。
《高性能MySQL》(Mysql技术内幕-Innodb引擎)
适度人群:熟练使用Sql,有一般数据库设计经验,对索引,mysql原理,及常用优化方法感兴趣,以及有志于成为DBA的同学。谈java还是离不开数据库的,开发中会遇到很多数据库相关问题,尤其是索引部分,这本书介绍的很是透彻,从数据类型,索引原理,联合索引设计的陷阱,常用优化方法,等方面来谈,都是可以直接应用到实际工作中的经验。对于后面偏架构运维章节,可根据个人兴趣工作需要而定。
第二本书偏原理,能直接应用于工作的很少,但是读完之后,还是让人感觉思维焕然一新,可能感受一下mysql的设计,对于自己以后设计类似功能(事务实现,缓冲池实现,todo,undo..,锁.等)会有很大借鉴意义。
高中毕业生学java开发应该买什么书籍
《 Java学习笔记》、《疯狂java讲义》等等。可以参考我写的有哪些必读的Java基础书籍
高中毕业学JAVA的话就自学是比较吃力的,可以去专业的学校或者培训机构系统的学习。
我最常推荐的是《Java编程思想》。这本书是一本权威的Java教程,它涵盖了Java语言的基础知识,包括变量、数据类型、控制流、数据结构和面向对象编程。这本书还包括许多实际例子,帮助读者更好地理解这门语言。
另外,《Java核心技术·卷I》也是一本不错的选择。这本书是Java的官方教程,它包含了Java语言的基本概念和核心技术,并且提供了许多示例代码来帮助读者理解这些概念。这本书还包括一些更高级的主题,如多线程编程和集合框架。
如果你想要学习Java,这两本书都是不错的选择。希望它们能帮助你学习。
自学编程的书籍推荐
1.CPrimerPlus。推荐《CPrimerPlus》作为自学编程的入门书籍。这本书是经典的C语言字典,适合有基础的人阅读,但不建议入门者深入学习。它提供了大量的例子和练习,帮助读者掌握C语言。此外,它还解释了C++的基础知识,让读者在继续前进时不至于迷茫。如果觉得这本书超厚有压力,可以再看《C++Primer》等其他书籍。2.啊哈C语言。推荐《啊哈C语言》作为自学编程的入门好书,它是一本有趣不枯燥的书籍,适合完全没有基础的人。这本书介绍了C程序设计语言,对于想进阶的人来说非常友好。此外,推荐《C语言入门经典》和《C语言解惑》作为其他自学编程的书籍,它们都从“错误”的角度出发进行讲授,帮助读者具备编制高质量程序的能力。3.深入理解计算机系统。推荐《深入理解计算机系统》这本书,它以程序员的视角全面剖析了计算机系统的实现细节,深入理解了程序的行为和计算机系统的运作原理。这本书包含了计算机领域里的很多课程,比如操作系统、组成原理、计算机的体系结构等,从程序员的视角全面剖析,让读者深刻理解程序的行为。学习计算机,最重要的是想了解计算机是怎么运行的,我们的电脑硬件是如何工作的,操作系统为什么能够帮助我们完成这么多事情,代码能够被运行,这就是这本书要告诉我们的东西。4.算法导论。推荐《算法导论》这本书,它是一本经典的算法教材,涵盖了算法的基本概念和高级主题。全书对于算法概念、分析和实现等方面都有详细的阐述,适合初学者和专业从业者阅读。书中专门讨论了线性规划、动态规划、随机化、线性规划技术的近似算法等,还有递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。此书还介绍了对强连通子图算法正确性的证明,对哈密顿回路和子集求和问题的NP完全性的证明等内容。全书提供了900多个练习题和思考题以及叙述较为详细的实例研究。5.计算机网络:自顶向下。推荐《计算机网络:自顶向下方法》这本书作为自学编程的入门书籍。它从应用层协议开始沿协议栈向下讲解,强调应用层范例和应用编程接口,使读者尽快进入每天使用的应用程序环境之中进行学习和“创造”。本书的讲解以因特网为例,学以致用,注重教学法,深入浅出地重点讲解计算机网络的基本原理。对于想要深入了解计算机网络的人来说,这本书是不可或缺的。6.大话数据结构。推荐《大话数据结构》作为自学编程的书籍之一。这本书以趣味方式叙述了数据结构的基本概念和经典算法,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。全书通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容。这本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。7.代码大全。推荐《代码大全》这本书,它不仅是一本编程实践的百科全书,更是一本关于软件开发技术的信息来源。书中介绍了各种编程语言和技术的应用,不仅填补了初级与高级编程实践之间的空白,也为程序员们提供了一个有关软件开发技术的信息来源。此外,书中还提供了许多实用的技巧和方法,帮助读者编写整洁的代码。这本书口碑评分高达8.7,是一本值得自学编程的书籍。8.程序员修炼之道。推荐《程序员修炼之道(第2版)》,这是一本涵盖了许多不同方面的最佳实践和重大陷阱的书籍。它不仅可以帮助初学者入门编程,还可以探究出编程的本质,创造出更好的软件。此外,它还注重实际,风格幽默且浅显易懂,能够照顾到刚学习编程的程序员。无论是初学者还是有经验的程序员,这本书都能让他们收获良多。9.Java编程思想。推荐《Java编程思想》作为自学编程的入门书籍。该书深入浅出地讲解了Java编程的各个方面,包括面向对象编程、多线程编程、GUI编程等。对于想要深入学习Java编程的读者来说,该书是一本非常有价值的书籍。虽然这本书内容比较厚,也比较罗嗦,但对于已经有一定Java编程经验的人来说,它可以帮助你打好Java编程基础。挑重点的深入看就可以了,不需要每章每节都值得一看。10.算法第四版。推荐《算法第四版》作为自学编程的书籍。这本书是Java语言描述算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,特别针对排序、搜索、图处理和字符串处理进行了论述。书的内容非常多,可以说是Java程序员的必备书籍之一。豆瓣评分高达9.3分,是一本非常值得推荐的书籍。11.HeadFirstJava。推荐《HeadFirstJava》这本书,它是一本非常适合初学者的Java书籍,采用生动有趣的方式讲解Java基础知识,并通过大量的实例和练习帮助掌握Java编程的基本技能。这本书采用了玩乐式教学,让学习Java成为一种风尚。虽然这本书争议较大,但它的内容可以帮助读者更好地掌握Java编程,提高编程能力。建议先借书/看电子版,然后再购买。12.集体智慧编程。推荐《集体智慧编程》这本书,它通过具体实例的方式展示了Python的编程技巧,让读者深入了解人工智能和机器学习中的经典算法。这本书不仅介绍了算法的优缺点,还提供了Python代码和配置好环境可直接运行。此外,它还涵盖了协作过滤技术、集群数据分析、搜索引擎核心技术、搜索海量信息并进行分析统计得出结论的优化算法、贝叶斯过滤技术、用决策树技术实现预测和决策建模功能、社交网络的信息匹配技术、机器学习和人工智能应用等。对于想要自学Python的人来说,这本书是非常值得推荐的。
我想学习编程需要购买那些书籍?
如果你从0开始学起,想精通的话,那看一本书肯定是不够的!
入门的话还是先看谭老先生的
,虽然经常有人说它怎么怎么不好,但是相信我,说它不好的人肯定也看过!这绝对是一本简单易懂的入门书.(而且便宜|||)
然后你的选择就多了,推荐几本:
<
>(5版),这本书看起来要有很大的耐心,前面的部分里有很多后面的概念,有时讲的很复杂,不要指望一遍能读懂
《C陷阱与缺陷》绝对推荐,这本书是强化你的c语言的好书。上面有很多我们在c上常犯得错误,是c大师安德鲁编的。
《c与指针》也可以看看,毕竟指针是c的精华与灵魂,说实话,c功力怎么样,关键是看指针用得好不好。
打个比方吧,我刚学c++的时候看的是谭浩强的c++程序设计,我一个师兄告诉我说大学的教辅书的用处如下:如果c++ 是一门刀法,那么老谭的书只是告诉你怎么拿刀,如果你还想知道怎么把刀舞的好,还需要自己 钻研,看看更高阶的书。
现在网络那么发达,这些书不一定要买,可以下载阿~
希望回答对你的c语言学习有帮助。
易语言,是中文的,比较易学易用,一般一周就可以写出软件,而且源代码全部是中文,比较好理解.如果想学习VB的话,是可以很快转换过去的.
易语言.飞扬 是一款最新推出的中文编程语言,与JAVA和C#类似,这三种语言你可以一起学习,一通百通.
易语言俱乐部论坛上有很多电子教程.
老谭的《c语言程序设计》这个是初学者看的,不错!
想更深入的进行研究的话,就要买国外的书籍了,毕竟国外在这方面还是比中国要强些!
《C陷阱与缺陷》不错,深化!
c++primer
最经典的教材
如果你英语很好
建议买英文版的
有些东西英文的更好理解
书籍整理如下:
C++开发
1.《C++ Primer》:全面学习C++的必备书籍
2.《Thinking in C++》:了解C++背后的一些机bai制
3.《深度探索C++对象模型》:深入了解C++,也是学习COM的必经之路
Windows平台
入门
1.《Windows程序设计》:这本书主要讲的是Windows API的使用,是Windows编程入门书籍。上册涉及到的知识基本上就够用了,时间不充裕的话阅读上册即可。
2.《Win32多线程程序设计》:Windows下多线程编程必备
3.《Windows核心编程》:Window平台基础知识:消息机制,内存管理,多线程,动态链接库等
4.《Windows网络编程》:介绍Windows下各种网络协议的开发和并发处理模型。
进阶
1.《深入浅出MFC》:Windows下编程,MFC虽然有些过时,但其机制还是有学习的价值。重点学习书中提到的MFC 6大机制
2.《COM本质论》:COM是Windows构建用户态的重要技术之一,Windows开发必修课,本书对COM的设计动机作了深入阐述
3.《深入解析ATL》:ATL全名Active Templete Library,是用C++的模版封装了COM,这本书主要讲的是对源码分析
4.《WTL White Paper》:WTL源自微软,基于ATL的一套开源模版库,主要用于界面编程和工具类的使用
5.《代码大全》:这边书主要讲的是工程编码规范
高级
1.《深入解析Windows操作系统》:Windows大牛书籍,讲的主要是Windows操作系统的内核原理
调试技术
1.《软件调试》
2.《Windows高级调试》
3.《windows用户态程序高效排错》
Linux平台
Linux内核
1.《Linux Kernel Development》/《Linux内核设计与实现》:Robert Love的著作,不厚的一本书,深入浅出地将Linux内核娓娓道来
Linux使用和Shell编程
1.《sed & awk》/《sed与awk》:sed与awk都是Linux下常用的日志分析利器
Linux编程
1.《Beginning Linux Programming》/《Linux程序设计》:老牌的Linux编程入门书
2.《Advanced Programming in the Unix Environment》/《Unix环境高级编程》:对Unix编程环境做了细致的总结,涵盖了进程间通讯、网络通讯、文件系统等各方面的知识
网络编程
1.《TCP/IP Illustrated, Volume I》/《TCP/IP详解,卷一》:对理解TCP/IP协议的设计理念和协议细节有显著的帮助。
2.《Unix Network Programming》/《Unix网络编程》,卷一、卷二:网络编程方面难以逾越的著作,事无巨细、深入浅出,强烈推荐
对这些书目抱有100%的信心,全部掌握,融会贯通,即可打通奇经八脉,天下无双。
对了,你没有基础最好从c与c++基础开始。找些基础书开始看。
[C语言入门经典(第四版)].(美)霍顿.扫描版,《C++ Primer》就不错。
Java提高水平的相关书籍?
一、《深入理解Java虚拟机:JVM高级特性与最佳实践》,作者是周志明,这本书可以说是国内写得最好的有关Java虚 拟机的书籍。
二、《HotSpot实战》,如果希望在Java虚拟机规范的基础上更加深入地去理解虚拟机的一些细节是怎么实现的,就可以看一下《HotSpot实战》一书,作者是陈涛。
三、《Java并发编程实战》,作者是Brian Goetz
四、《java多线程编程核心技术》,《Java多线程编程核心技术》作者高洪岩。想要学习多线程,值得推荐。
求推荐windows下的多线程编程的入门书籍。?
多线程编程不需要书籍,当然如果你想了解到线程同步,信号量,自旋锁这个层次另当别论。
想要多线程编程,掌握一个API:CreateThread,然后没了,具体用法,搜索一下,各大博客均有详细教程。
如果你想深层次研究,那就比较麻烦了,因为等你里里外外完全了解了,你所掌握的知识量可以写一个操作系统内核了,这里推荐《Modern Operating System》fourth edition,第二章进程与线程有你所需要的答案,同时第六章deadlock于进程线程编程而言也非常重要。下面附上这两章节目录:
2.1 PROCESSES 85
2.1.1 The Process Model 86
2.1.2 Process Creation 88
2.1.3 Process Termination 90
2.1.4 Process Hierarchies 91
2.1.5 Process States 92
2.1.6 Implementation of Processes 94
2.1.7 Modeling Multiprogramming 95
2.2 THREADS 97
2.2.1 Thread Usage 97
2.2.2 The Classical Thread Model 102
2.2.3 POSIX Threads 106
2.2.4 Implementing Threads in User Space 108
2.2.5 Implementing Threads in the Kernel 111
2.2.6 Hybrid Implementations 112
2.2.7 Scheduler Activations 113
2.2.8 Pop-Up Threads 114
2.2.9 Making Single-Threaded Code Multithreaded 115
2.3 INTERPROCESS COMMUNICATION 119
2.3.1 Race Conditions 119
2.3.2 Critical Regions 121
2.3.3 Mutual Exclusion with Busy Waiting 121
2.3.4 Sleep and Wakeup 127
2.3.5 Semaphores 130
2.3.6 Mutexes 132
2.3.7 Monitors 137
2.3.8 Message Passing 144
2.3.9 Barriers 146
2.3.10 Avoiding Locks: Read-Copy-Update 148
2.4 SCHEDULING 148
2.4.1 Introduction to Scheduling 149
2.4.2 Scheduling in Batch Systems 156
2.4.3 Scheduling in Interactive Systems 158
2.4.4 Scheduling in Real-Time Systems 164
2.4.5 Policy Versus Mechanism 165
2.4.6 Thread Scheduling 165
2.5 CLASSICAL IPC PROBLEMS 167
2.5.1 The Dining Philosophers Problem 167
2.5.2 The Readers and Writers Problem 169
2.6 RESEARCH ON PROCESSES AND THREADS 172
6.1 RESOURCES 436
6.1.1 Preemptable and Nonpreemptable Resources 436
6.1.2 Resource Acquisition 437
6.2 INTRODUCTION TO DEADLOCKS 438
6.2.1 Conditions for Resource Deadlocks 439
6.2.2 Deadlock Modeling 440
6.3 THE OSTRICH ALGORITHM 443
6.4 DEADLOCK DETECTION AND RECOVERY 443
6.4.1 Deadlock Detection with One Resource of Each Type 444
6.4.2 Deadlock Detection with Multiple Resources of Each Type 446
6.4.3 Recovery from Deadlock 448
6.5 DEADLOCK AV OIDANCE 450
6.5.1 Resource Trajectories 450
6.5.2 Safe and Unsafe States 452
6.5.3 The Banker’s Algorithm for a Single Resource 453
6.5.4 The Banker’s Algorithm for Multiple Resources 454
6.6 DEADLOCK PREVENTION 456
6.6.1 Attacking the Mutual-Exclusion Condition 456
6.6.2 Attacking the Hold-and-Wait Condition 456
6.6.3 Attacking the No-Preemption Condition 457
6.6.4 Attacking the Circular Wait Condition 457
6.7 OTHER ISSUES 458
6.7.1 Two-Phase Locking 458
6.7.2 Communication Deadlocks 459
6.7.3 Livelock 461
6.7.4 Starvation 463
6.8 RESEARCH ON DEADLOCKS 464