1. 伯乐范文网 > 知识库 >

java2核心技术,Java 2核心技术与JAVA核心技术(书)

本文目录索引

1,Java 2核心技术与JAVA核心技术(书)

是同一部书的两个版本,第八版更新,讲的是jdk6,第七版讲的是jdk1.5,仍然属于java2的范畴,所以叫《Java2核心技术》,而第八版去掉了2。 建议购买第八版,因为java的jdk是在不断的更新的,虽然现在立刻不能让企业、公司里的jdk全部换代,但是这是必然趋势,迟早也需要买jdk6的书,jdk6的书里也会讲和jdk1.5的区别。 《java核心技术》这套书非常好,是公认极好的java入门书籍。不过很厚,可能不太容易让人有兴趣一下读完。另外一本公认很好的java入门书叫做《Head First java》,是融入大量图片的书,比较有趣,你可以上网搜搜,按喜欢购买。不过,目前后者只出到jdk1.5的版本。 java入门以后,熟练以后想要成为高手还有必备的一部经典书,《Thinking in java》,能给开发人员很大的提高。 加油哦,祝你学好java(*^__^*)

Java 2核心技术与JAVA核心技术(书)

2,求java核心技术电子书pdf

Java领域最有影响力和价值的著作之一,拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。第9版根据JavaSE7全面更新,同时修正了第8版中的不足,系统全面讲解Java语言的核心概念、语法、重要特性和开发方法,包含大量案例,实践性强。 java核心基础卷1 第九版,可以参考这个链接网页链接,超清pdf,Java领域最有影响力和价值的著作之一,拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。

3,怎样学习JAVA

Java - 近10年来计算机软件发展过程中的传奇,其在众多开发者心中的地位就如“屠龙刀”、“倚天剑”。
Java是个平台,我只想说说我对学好Java的一点看法,希望对初学者有所帮助。
1. 思考一下
学习Java之前,先别急,静下心来好好想想:
1)你对学习Java是否有兴趣?
2)你是否能静下心来坚持不懈地学习?
嗯,这是个容易但又绝对不应该忽略的问题,你确信自己对Java感兴趣、而且又有吃苦的准备,那你才可能学好Java!如果具备这两点条件,就请继续往下看……
2. 准备一下
请不要把你的学习Java之路和其它计算机技术分开看待,技术的联系往往是千丝万缕的,你应该掌握一些学习Java所涉及的基础知识,对于“CLASSPATH要怎么设置啊”、“跪求JDK下载地址”等等问题,你不该问,因为Internet上太多答案了,甚至换个角度说,你是不是还不适合直接学习编程?
1)买本Java学习用书。
JDK 6正式版刚刚推出,市面上你暂时买不到JDK6的书籍,但我仍推荐你买一本适合入门的、较新JDK版本的Java书籍,那么,你现在选择一本讲述JDK5 的入门书籍还是有条件的。我可以推荐一些入门书,但是我不打算这么做,因为合我口味的,不一定适合你。但无论如何,《Thinking In Java》绝对不应该作为你入门Java的第一本书籍!
记住,网络上学习Java的资源很多,但基本不够系统,拥有一本Java入门书籍,是你系统学习Java的基础。
2)准备Java学习环境。
准备你的学习环境,很简单,安装JDK6,然后用类似UltraEdit、EditPlus的文本编辑器配置你的学习环境,Internet上有很多关于如何配置的文章。初学Java,不建议用IDE工具,通过一行行的敲代码,你会碰到很多问题,只有这样,你才能学会怎样解决问题,并加深自己对Java的理解。
准备好后,开始进入激动人心的Java学习里程吧!
3. Java基础学习之路
学习Java的过程虽然辛苦些,但又是处处有精彩!学习过程中的心态一定要保持专一,网上关于语言间的“PK”到处都是,别被浮躁影响!认准了Java,你就坚持!克服心魔,恒心最终会给你回报的。
Java的体系分为Java SE、Java EE和Java ME(JDK 5.0以前分别叫J2SE、J2EE和J2ME),Java的敲门砖就是Java SE了,也就是你要入门学习的内容,不论你日后是选择哪个体系领域作为发展方向,你都得从Java SE起步。
学习Java SE,打好Java基础;如果想学Java EE(对不起,我不了解JavaME,所以我无法涉及JavaME的相关内容),对于AWT、Swing是否要学习呢,我个人是觉得还是要知道其所以然的,特别是其事件处理模式,我强烈建议初学者一定要弄清楚,其他具体的开发就不一定要全面掌握了,毕竟AWT、Swing方面的内容足够用几本大部头的书才能描述详尽;当然,如果你的工作就是做AWT、Swing开发,那就另当别论了。
I/O、Thread都是基础之一。
4. Java EE学习之路
学习了Java SE,还只是完成“万里长征”的第一步。
接下来选择学习Java EE或是Java ME(或者你还想不断深入学习JavaSE,只要你喜欢,你可以一直深入下去,就像前面所说的,我不会讲到Java ME的学习);估计选择Java EE方面的学习者会多一些,JavaEE所涉及技术非常多,考虑到初学者的接受程度,我会尽量从最常用的角度来介绍。
学习Java EE,在开发环境上不建议再用文本编辑器,我感觉NetBeans 5.5(目前最高正式版本)很适合初学者,我个人也很喜欢NetBeans,如果你喜欢用别的IDE如Eclipse,都没问题,看自己喜欢吧。
4.1 学习JSP/Servlet
Java EE最高版本目前是5.0版本。
在JavaEE中,首先要学习JSP/Servlet(结合Tomcat、MySQL)技术,建议JSP1.2/2.X的知识都要掌握,毕竟现在很多的在用系统都还是基于JSP1.2,学习JSP,还必须掌握一些外延技术,如:你还得掌握HTML 基础知识,最好再掌握些JavaScript(目前正火的AJAX技术之一)、CSS的技术,而了解XML是必不可少的(至少描述性配置信息是通过XML 来描述的)。在学习JSP/Servlet过程中,应该结合学习JDBC、数据库开发技术,毕竟绝大多数Java Web项目都是和数据库紧密结合的。
4.2 学习数据库开发技术
这里我想重点说一下数据库开发技术,数据库技术是做业务系统必备技能,JavaWeb开发人员最低程度都应该掌握SQL语句的使用!数据库技术大体可分为DBA技术和数据库开发技术,对于开发而言,应侧重数据库开发技术,而数据库基本操作,也是要掌握的。常用数据库有DB2、Oracle、SQLServer、MySQL等,你可以结合实际需要,选择一种数据库,并花大力气掌握其开发技术。
记住,学习数据库开发技术和学习Java EE,是相对独立的,你可以在学习JSP/Servlet的同时,学习数据库开发技术(如SQL语句等),或者先学数据库开发技术,之后再学习JSP /Servlet。
4.3 学习Java EE其它开发技术
再往后,可以学习一些EJB的知识,目前EJB最新版本是3.0,其和前面的2.X版本相比,有较大不同,考虑到目前EJB2.X还有很大的应用市场,建议结合学习EJB 2.X/3.0。在学习EJB过程中,应同时掌握一种企业级应用服务器的使用(如WebSphere、Weblogic、Sun Applcation Server或JBOSS等,目前Sun Applcation Server9.X和JBOSS都可支持EJB 3.0)。
之后的学习中,再逐渐扩展到其他Java EE技术。
5. 之后
等你对Java EE有些感悟的时候,你自然就会想不断扩展你的知识面,这时候你可以学习Spring、Hibernate,以及各种Web框架(如Struts、 JSF、Webwork或是Tapestry等)。
随着技术、经验的不断积累,你会逐步关注分析、设计等更高层次的知识,这时候,你可进一步学习相关的UML、模式等知识(积累了一定经验,你就可以安排自己学习这些知识了)。
6. 小结
永远记住:自始至终,实践是学习Java技术历程中极其重要的一环。脱离了实践,是学不好技术的!
Java学习、实践之路依然没有银弹,况且一步步走来,要学的东西很多,勤奋是金!
善于利用Internet上众多的资源,多吸取些别人的经验。
JAVA架构设计:
Java架构设计
软件架构作为一个概念,体现在技术和业务两个方面。
从技术角度来说:软件架构随着技术的革新不断地更新其内容,软件架构建立于当前技术和一些基本原则的基础之上。
先说一些基本原则:
分层原则:分层是为了降低软件深度复杂性而使用的关键思想,就像社会有了阶级一样,软件有了层次结构。
模块化原则:模块化是化解软件广度复杂的必然手段,模块化的目的就是让软件分工。
接口实现分离原则随着软件模块化的不断深入改进,面向接口编程而不是面向实现编程可以让复杂度日趋增高的软件降低模块之间的耦合度,从而让各模块更轻松改进。从这个原则出发,软件也从微观进行了细致的规范化。
还有两个比较小但很重要的原则:
细节隐藏原则很显然把复杂问题简化,把难看的细节隐去,能让软件结构更清晰。其实这个原则使用很普遍,java/c++语言中的封装原则以及设计模式中的Facade(外观)模式就很能体现这个原则的精神。
依赖倒置原则随着软件结构的进一步发展,层与层之间、模块与模块之间的依赖逐渐加深,而层、模块的动态可插拔要求不端增大。依赖倒置原则可看视 为接口实现分离原则的深化,根据此原则的精神,软件进入了工具时代。这个原则有点类似于知名的好莱坞法则:Don't call us, we'll call you。
以上这些原则奠定了我们的软件架构的价值指标。但软件架构毕竟是建立在当前技术之上的。而每一代技术都有架构模式。过去的不再说了,让我们现在就来看一下当前流行的技术,以及当前我们能采用的架构。
因为面向对象是当前最流行开发技术,且设计模式的大量使用使面向对象的走向成熟,而数据库是当前最有效的存储结构、web界面是当前最流行的用 户接口,所以当前最典型的三层次架构就架构在以上几项技术的基础之上,用数据库作存储层、用面向对象来实现业务层、用web来作为用户接口层。我们从三层 次架构谈起:
因为面向对象技术和数据库技术不适配,所以在标准三层次架构的基础上,我们增加了数据持久层,来管理O-R双向映射,但目前一直没有最理想的实 现技术。cmp和entity bean技术因为其实现复杂,功能前景有限,已接近被淘汰的边缘。JDO及hibernate作为o-r映射的后期之秀,尤其是hibernate,功能 相当完备。推荐作为持久层的首选
在业务层,因为当前业务日趋负载,且变动频繁,所以我们必须有足够敏捷的技术来保证我们的适应变化的能力,在标准j2ee系统中session bean负责业务处理,且有不错的性能表现,但采用ejb系统对业务架构模式改变太大,且其复杂而昂贵,业务代码移植性差。而spring 作为一个bean配置的轻量级架构,漂亮的IOC模式实现,对业务架构影响小,所以推荐作为中间层业务框架。
在用户结构层,虽然servlet/jsp/jstl/javaBean 能够实现MVC架构,但终究过于粗糙。struts对MVC架构的实现就比较完美,Taperstry也极好地实现MVC架构,且采用基于事件的方式,非 常诱人,惜其不够成熟,我们仍旧推荐struts作为用户接口层基础架构。
因为业务层是三层次架构中最有决定意义的,所以让我们回到业务层细致地分析一下,在复杂的业务我们常常需要以下基础服务的一种或几种:事务一致 性服务acid(tool:jta/jts)、并发加锁服务concurrent&&lock、池化管理服务cache、访问控制服务 (tool:jaas)、流程控制服务workflow、动态实现服务IOC,串行化消息服务(tool:jms)、负载平衡服务blance等。如果我 们不采用重量级应用服务器(如weblogic,websphere,jboss等)及重量级组件(EJB),我们必须自己实现其中一些服务。虽然我们大 多情况下,不需要所有这些服务,但实现起来却非易事。幸运的是我们有大量的开源实现代码,但采用开源代码却常常是件不轻松的事。
随着xml作为结构化信息传输和存储地位日渐重要,一些xml文档操作工具 (DOM,Digester,SAX等)的使用愈发重要,而随着 xml schema的java binding工具(jaxb,xmlbean等)工具的成熟,采用xml schema来设计xml文档格式,然后采用java binding来生成java bean 会成为主要编程模式,而这又进一步使数据中心向xml转移,使在中小数据量上,愈发倾向于以xquery为查询语言的xml数据库。最近还有一个趋势, microsoft,ibm等纷纷大量开发中间软件如(microsoft office之infopath),可以直接从xml schema 生成 录入页面等非常实用的功能。还有web service 的广泛应用,都将对软件的架构有非常重大的影响。至于面向服务架构(SOA)前景如何,三层次架构什么时候走入历史,现在还很难定论。
aop的发展也会对软件架构有很深的影响,但在面向对象架构里,无论aspectJ还是 jboss-aop抑是aspectWerks、 nanning都有其自身的严重问题:维护性很差,所以说它将很难走远。也许作为一个很好的思想,它将在web service里大展身手。
rdf,owl作为w3c语义模型的标志性的语言,也很难想象能在当前业务架构发挥太大影响。但如果真如它所声称那样,广泛地改变着信息的结构。那么对软件架构也会有深远影响。
在这里我可以对那些想要学习这方面知识的人推荐一下【英才添翼】,这个学校还是不错的,是国内最高端的一个专注于架构设计软件开发人员培养的专业机构,但是这个学校对学员的入学条件要求比较高。如果感兴趣,你们可以自己在网上查一下他们学校。
有关架构设计的一些忠告:
尽量建立完整的持久对象层.可获得高回报
尽量将各功能分层,分块,每一模块均依赖假定的其它模块的外观
不能依赖静态数据来实现IOC模式,应该依赖数据特征接口,静态数据仅是数据特征接口实现方式之一
架构设计时xml是支持而不是依赖.但可以提供单一的xml版本的实现
从业务角度说:软件架构应是深刻体现业务内部规则的业务架构,但因为业务变化频纴,所以软件架构很难保持恒定不变,但业务的频繁变化不应是软件架构大规模频繁变化的原因,软件架构应是基于变化的架构。
一种业务有其在一段时间内稳定存在的理由(暂且不谈),业务内部有许多用例,每一种用例都有固定的规则,每一规则都有一些可供判定的项,每一项 从某一维度来观察都是可测量的,我们的架构首先必须保证完美适应每一项每一种测量方式,很多失败的架构都是因为很多项的测量方式都发生变更这种微观变化 中。
每个用例都有规则,我们在作业务用例分析,常常假定一些规则是先验的,持久稳定的,然而后来的业务改变常常又证明这种看法是错误的,然而常常我 们的架构已经为之付出了不可挽回的代价。大量事实证明:规则的变化常常用例变化的根本原因。所以我们的架构要尽可能适应规则的变化,尽可能建立规则模版。
每个用例都关系着不同的角色。每一个用例的产生都必然是因为角色的变更(注意:不是替换,而是增强或减弱),所以注意角色的各种可能情况,对架构的设计有举足轻重的意义。在我们当前的三层架构里,角色完美地对应接口概念。
在一个系统里很多用例都相互关联,考虑到每个用例均有可能有不同的特例,所以在架构设计中,尽量采用依赖倒置原则。如架构许可可采用消息通信模式(JMS)。这样可降低耦合度。
现在我们谈一下业务稳定存在理由对业务的影响。存在即是合理,在这里当然是正确的。业务因人而存在,所以问业务存在的理由即是问不同角色的需要这项业务的理由以及喜欢不喜欢当前业务用例的理由,所有这样的角色都应该在系统里预留。
在架构设计中有几个原则可以考虑:
用例尽量细分
用例尽量抽象
角色尽量独立
项测量独立原则
追求简单性
这里未提供相关的例子,例子会在以后的更新时提供。
业务和模式之间的关系
业务中的一些用例之间的关系常常和一些常规的模式很相似。但随着时间的演化,慢慢地和先前的模式有了分歧。这是个正常的现象。但这对系统架构却要求非常高,要求系统架构能适应一些模式的更替。在这里我们尽可能早地注意到用例之间的相互角色变化,为架构更新做好准备.

4,Java学习内容有哪些

目前Java培训内容包括: 1、HTML+CSS3+数据库 2、Java SE(Java面向对象思想;设计模式、面向对象原则、Java高阶API、线程、网络编程、反射、NIO) 3、Java web(Java web基础、JS、DOM操作、JSP/Servlet、第三方工具包、Tomcat...) 4、框架(网络原理、HTTP协议、Linux操作系统、云服务搭建、SSM框架应用、Oracle应用、Spring JPA、Hibernate...) 5、高可用、高并发、高扩展(SpringBoot、缓存、分布式、插件、全文索引、服务中间件、消息中间件、云服务器、云存储、云数据库、域名服务...) 6、微服务、大数据 以下是我们2020年更新的课程,您可以了解一下! 如想学习,可以在我们线上学习平台:百战程序员进行了解! 希望对你有所帮助,望采纳!!

5,Java核心技术第8版和JAVA2核心技术第8版有什么区别??

Java核心技术第8版 此书较新

根据卓越网的信息对比

Java2核心技术卷Ⅰ:基础知识(第7版)(英文版) 霍斯特曼,,,美%康奈尔,,,美 人民邮电出版社

JAVA核心技术卷1:基础知识(原书第8版)(Sun公司核心技术丛书)
作者:(美国 )(Horstmann Gay S.)昊斯特曼 (美国)Gary Cornell
机械工业出版社

实际上是同一本书,两个翻译版本而已,显然原书第8版较新

6,java核心技术和java2核心技术有什么不一样

晕,楼上的不要误人子弟了啊。。。

当然要买2了,版本相对比较新么。

书籍都是跟着技术走的,当年java刚出来的时候肯定出的书就叫做
《java核心技术》了,

后来SUN公司不断改进更新,发布了新版本的JDK,
java从1.4版本后更名为java2,1.5版本后更名为JAVA SE 5,
1.4以前的版本叫java

《java 2核心技术》内容都是基于jdk1.4版本以后的

7,java核心技术 于java2核心技术的区别

首先名字上就不一样。哇哈哈哈哈,这两本上我还真没看到过,新手适合看的书挺多的,你要没有一点编程语言基础的话可以看看,不过感觉有个哥们说的挺有道理的。下面是引用他说的-------个人经验,如果让我给你教,一个星期保证你把基础就学完了,如果给你推荐书吧,因为是从0开始,所以还真是有点难哦。中国人写的书吧,都是骗小孩子的,没什么实质内容,不过对于没有基础的你来说,应该可以凑合着看一下,不用死扣中国人写的书,对于基本的java语法会了就行了,然后在找点经典的有代表性的例子练习,再然后就是做一个web系统,现在的java多用于web开发,你就开发个登录,查询,添加,修改,删除,退出这样一个简单的小系统,多做几次,做完了,你的java基础就差不多了,当然最好用上struts,hibernate等流行的框架,这样你对于当前流行的web架构也会有所了解的。不要小看这个小系统,它可是麻雀虽小,但五脏俱全哦。你要做好这个小系统,一个是看java基础方面的书,再一个就是看javaee方面书,再然后你基本就可以下山了,当然以后的路就靠你自己根据自己的方向和能力来选择了,不可不说的是,开发可是一直都要学习的,之前这些只是让你有了点基础而已,再接下来的学习就是在项目实践中学习了,同时也要自己看书,继续深入研究java和开源代码,书籍方面有java核心技术,thank in java以及设计模式等等更高级的东西,不过这都是后话了。先搞好基础吧。
最后再送您一句:书是用来查阅的,不是用来阅读的,至少在我们搞开发这行是这样的,关键是动手编代码,不懂的东西才查书或者网络的。这种学习方式跟学校里是不一样的哦。个人体会。

8,请问学习java需要什么基础吗?

入门学习java唯一需要的基础就是英语词汇量,入门阶段不需要太多的词汇量,3000足够了(这里面java程序类关键字是最重要的),注意仅仅是词汇量而已,不需要掌握英语口语沟通中的语法。但是入门以后,想要完全精通java(当然这不是一件容易的事),8000以上词汇量还是要有的。 除此之外就是书本上最基础的一些java理论知识,这些理论知识不一定必须都要一字不差的背下来,但是这些都是基础需要很好的了解和理解,而且并不难理解。 这些基础的东西并没有什么技术性的难度,可以说就是一些需要死记硬背的东西而已,真正有难度的是你之后自己动手写代码的这个阶段。刚开始可能很难自己动手写出来100行以上逻辑性强且没有Bug的代码,基本都是需要看着别人的代码然后自己照葫芦画瓢的抄写,不然就不会写,所有初学者开始都是这样,所以是很正常的,这个就需要平时多写多练,一点一点累积。知识点积累的多了,逻辑通顺了,之后自然而然的就会动手写出自己的代码了。就是一个多写多练的问题。 如果你已经决定了要去学java,并且以找工作为目的的话,不建议自学,因为java想要零基础自学到最后顺利找到开发的工作,可以说基本是不可能的。一种情况除外,就是你对电脑编程有着异于常人的天赋可以无师自通,否则的话还是要去系统的培训一下。只要你能跟着有经验的人学,能有人带你练习做项目,外加平时自己多写代码,多去接触并理解新的知识点,最后找到开发的工作问题还是不大的。具体可以参考下这个网站网页链接,希望我的回答能帮到你。

9,学习java需要什么基础?

从安装JDK的那一瞬间,我就知道我将和Java结下不解之缘,就像谈恋爱一样,始于心动,终于白首。不知不觉来千锋广州参加Java面授学习已经一个多月了,从“helloWorld”开始,一路走来确实不容易。 第一周学习了Java数据类型、运算符、分支、循环结构,方法。都是比较基础的部分,内容有些多,还好我之前有看过书能跟上进度。循环结构这部分的知识比较考验逻辑性,特别是多重嵌套循环,比如打印九九乘法口诀表,正三角形等,之前写日历查询时写了70多行代码,也就是用了嵌套for循环以及if分支,当时觉得代码写太多了。学习了方法之后,发现写起代码来变得灵活了,这里调用一个方法,那里调用一个方法,非常方便。 第一周学习的位运算和位移运算都比较重要,面试题里就有一个如何快速计算2^3,可能大家第一反应是2*2*2=8,,其实最快的方法就是直接用位移运算符,2 第二,三周学习了数组、面向对象、内部类、System、Math、String等。面向对象是一种思想,万事万物皆对象,这是Java学习的一个核心哲学思想,听说我们老师花了五年时间才领悟,所以我想我还有很长时间需要去摸索。对象的三大特性封装、继承、多态以及内部类的知识以后会经常用到,在学习匿名内部类的时候,会学到有关lambda的知识,用五个字来总结就是行为参数化,因为它的简便性,用过lambda的人都说好。 在学习这一部分的时候要学会使用面向对象的思想去思考问题,当要写一个程序时,可以先试着在草稿纸上面写个大概的流程,要学会使用这种打草稿画流程图的方法,正所谓工欲利其事,必先利其器。 第四周学习了集合、异常、IO。集合里面涉及的知识点比较多,但是整理过后会发现集合之间都会有着一些联系和区别,其中ArrayList、linkedList、HashMap这几个是需要重点掌握的,可以把这些集合之间的区别以及共性做一个整理,这样会对理解集合有帮助。异常时我们会经常遇到学会抛异常和抓异常,使用finally通知GC来回收那些不再使用可以回收的垃圾。IO是很重要的知识点,可我学得不是很好,主要是被那一大段的单词给击败了,不过IO的本质也还是把内容写入对应的磁盘,然后从磁盘里面的内容读取,这个过程中的流大都是装饰基础流的,并没有想象中那么复杂。 第五周学习了多线程、线程池、并发、Socket,NIO。说实话,这个星期的知识都很难,并不好掌握,如果是能力强学的好的话,可以做一些类似客户端与服务器之间的文件传输练习,先做单线程然后再实现多线程。如果觉得这一部分学的不太好,就重点学好基础部分,掌握了基础,那些难一点的知识才能更好的掌握。 总的来说在千锋广州Java面授学习的第一阶段收获还是很多的,学习过程中一定要让自己静下心来,编程中要养成打草稿的习惯,先整体再局部。我相信只要把学习Java当成一种兴趣,在程序员这条路上我一定能走得更远。

10,JAVA核心技术 卷一 基础知识 这本书对于初学者好不好???

建议看java编程思想,它可以帮助你深刻领悟java的精髓。以下附上java相关的十大书籍排名:

第一名:Java编程思想(Thinking in java )
包含范围:全部。

没说的,绝对的大师作品,当之无愧的第一。第一版时就享誉整个java界(当时网上好象也有人译了)。国内版是京京工作室翻译的,基本上毁了此书--错误术语太多。推荐高手看E文版,新手就不要先看此书了。第二版更精采,台湾的侯捷译了此书。可以到看看前几章的中文版(不过是台湾术语)。希望国内会快些引入此书,你也可到作者的主页免费下载此书推荐。有chm格式的,非常棒!BTW:这位大师最近在写Thinking in Python相信又是一本经典名著:)

第二名:Java2编程详解(special edition java2)
包含范围:全部

这本书会排在core java2的前面可能很多人会不同意,但是就中译本和内容来看非常全面。适合新手成为高手。虽然国内的价位高了些(150),但基本还是值得的。该有的内容都有了,做参考书也很不错。BTW,这个系列中的oracle8/8i使用手册也是一本很经典的书,同样推荐。

第三名:Java2核心技术卷一,二(core java2 volume1,2)
包含范围:全部

这两本我把它们看成一本不会有人有异议吧。这也是Sun的官方的书,我觉得相对来说。第二卷高级特性要比第一卷基础知识好(第一卷又是京京工作室译的--真影响情绪:()。内容同样很全面,但是卷一虽说是基础知识,同样对新手来说不是很合适。感觉条理性不强,而且内容有些混杂,但第二卷完全可以弥补这些--精辟而细致,很适合有一定基础的Java程序员看。

第四名:Java 2图形设计 卷1:AWT 卷2:Swing-Graphic Java 1.2 Mastering the JFC Volume I:AWT SWING 3rd Edition
包含范围:Java图形设计

没什么说的了,尽管图形设计不如J2EE那么火 ,而且Win32下做应用程序也不是java的强项,但是AWT和Swing仍然是Java程序员的必修课。看这两本就够了,看看厚度就知道了,而且这也是Sun官方出的图书。

第五名:J2EE构建企业系统专家级解决方案
包含范围:J2ee

清华大学出版社 译作者:[美]Paul J. Perrone,et al.著 张志伟等译

又是一本极厚的书1038页,105元。不过内容十分丰富,适合想对J2EE整体做了解的程序员,至于每项都想精就不太可能了,呵呵。毕竟在Java中思想是主要的。在这类中有本Java服务器高级编程也很不错,机工华章出的-wrox系列中的。
第六名: Java XML编程指南
电子工业出版社 译作者: [美]Tom Myers,Alexander Nakhimovsky著

包含范围:Java+XML

XML在Java中的地位也越来越重要了,而国内能看到的还有一本中国电力出的o eilly的Java和XML。最后我还是选了这本wrox的,当然你要是想好好学学XML本身,还是看看那本XML高级编程吧。wrox系列中的-机工华章出的。

第七名:书名:Jini核心技术 英文原书名: Core Jini
作者: W.Keith Edwards

包含范围:Jini

Jini也是Java体系中很重要的部分,而且更重要的是这本可能是国内唯一的一本Jini专著-翻译的也不错。在我看来是当之无愧的经典,同样是Sun的官方图书,内容很清晰透彻。

第八名:Enterprise JavaBeans第二版 英文原书名: Enterprise JAVABEANS
作者: (美)Richard Monson-Haefel

包含范围:EJB

O‘reilly出的,ejb的重要性我不用多说了吧。尽管有人说这本译的不好,但是同样它是国内目前唯一的EJB专著。o eilly的书就是只讲一方面或一项技术,很细,但价格也不菲,这本书的架构还可以,值得一看。

!!!!!!!!第九名:数据结构与算法分析(Java版)
译作者: [美]Clifford A.Shaffer著 张铭 刘晓丹译

包含范围:Java算法

尽管基本上Java图书都是讲Java本身的特性。因为Java的体系太庞大了,而用Java来实现的数据结构与算法,这本书也是唯一一本,所以尽管这本不是那么的好但还是做以推荐。

第十名:软件工程Java语言实现 英文原书名: Software Engineering with Java
作者: Stephen R.Schach 译者: 袁兆山等

这本书没什么多说的,纯理论性的东西,但软件工程的重要也是有目共睹的,而且同样是这个领域中唯一的一本Java书。
参考资料:第九名:数据结构与算法分析(Java版)