我现在在学java有c的基础,手头上有两本书籍分别是《java核心技术卷1》和《java编程思想(第四版)》,请问各位高手
   我应该先看哪一本啊! 我先前看了《java编程思想》,看了大概三分之一吧!觉得里面有些东西写的挺深奥的难以理解。请指教!多谢了。 对了我正在看马士兵的视频,看到了io那一块了。

解决方案 »

  1.   

    2006年我曾经写过一篇讨论Java未来的文章,在那篇文章中我讨论了开源、Java在消费电子设备中的使用,现在在所有类型的移动设备上 Java的应用正在逐步上升。对Sun被收购一事,以及Java与Oracle产品集成我没什么好预测的,也没什么好的建议,我只担心Java的未来会走向何方?在这篇文章中我重新审视了Oracle收购Sun后Java的未来之路。Java是什么?如果要向一无所知的人解释Java是什么还是比较有难度的,是的,它是一门编程语言,但发展到今天,Java一词远程超出了语言的定义,具体来说,Java是一个包括虚拟机环境,与C语言类似,包括库和支持软件,允许它运行在各种操作系统、计算机、设备和域中的平台,包括以下技术:用于桌面的Java SE用于服务器和企业解决方案的Java EE用于嵌入式和移动设备的Java ME用于应用程序暂时需要的实时Java(Real-Time Java)用于构建RIA应用程序的JavaFX,用于PC、移动设备和电视(机顶盒、蓝光播放机等)上的媒体应用因此,如果有人说"我是一名Java开发人员",他们需要澄清究竟是Java的哪一个领域。我这里从平台的角度讨论Java的未来,包括Java SE,Java EE,Java ME,JavaFX,工具和语言。Java的市场有多大?按照Oracle的说法,Java是时下最流行的,无处不在的技术,2010年1月的统计数字如下:9百万Java开发人员8.4亿桌面安装了Java100多种不同硬件平台支持上亿的Java桌面安装a)每天2百万的下载量财富100强公司全部使用了Java55亿Java卡片26亿拥有Java功能的手机b)250家手机运营商合作伙伴c)10多万Java ME应用程序4千万电视和蓝光播放机Java仍是目前最广泛使用的编程语言,比所有脚本语言加起来的总数还多,由于Java平台支持由不同脚本语言编写的应用程序运行,这些数字会是重叠的。例如,Java虚拟机(JVM)可以执行用Java、Rexx、Ruby、JavaScript、Python、PHP、Groovy、 Clojure和Scala.编写的程序。在许多情况下,Sun的HotSpot JVM将会更好地运行这些应用程序,因为JIT(实时)编译器会重新优化编译过的代码。Java仍然是大多数企业和Web应用程序开发首选的语言/平台,并继续保持增长,Java是免费提供给开发者使用的,许多大学的计算机系也选择 Java作为编程语言课程,虽有这些光环笼罩,但这并不意味着我们不应该重新审视Java的未来发展方向,特别是Sun被收购后的这段时间。Java SEOracle已经公布了Java的未来战略,目标是加强和继续扩大Java在新领域的应用,简化,优化,并将Java平台纳入新的部署架构,加大对 Java社区的投资,允许社区更多地参与。Oracle产品开发执行副总裁Thomas Kurian表示,Oracle将推动Java成为使用最多,最具效率和世界上最流行的编程平台,也将推动Java在更多的嵌入式设备中使用。 Kurian表示会保留Java社区进程(Java Community Process,JCP)推动Java的发展,但我怀疑Oracle将会改造JCP过程,因为最近几年已经暴露出不少问题,不合作的参与者可能会拖延 Java规范请求(Java Specification Requests,JSR)。Kurian也证实,Oracle将继续为所有主流操作系统提供支持,以及流行的Java业务支持计划,它将为当前和过期的JVM版本提供长期的支持,对于要在旧版本Java上维护传统Java程序的企业而言,获得安全补丁和其它支持是至关重要的。最有趣的是,Kurian的发言几乎总是围绕最近发布的Java SE 7,Oracle的JRockit虚拟机和Sun的HotSpot合并展开的,Oracle在Java SE 7中计划包括以下新特性:模块化的VM:我们的目标是将VM拆分成小块由应用程序使用,并按需推向Internet,这样的结果是 Java应用程序的启动时间更短了,当VM不在目标机器上时,下载的时间也更短了。额外的语言支持:Java平台支持用不同语言编写的应用程序,现在将会添加更多的语言支持,当然也包括对动态语言的支持,这就是所谓的达芬奇机或多语言虚拟机,请参考JSR-292。要特别指出的是,JVM增加了动态语言的支持,因此要想添加更多语言的支持就不费神了,在此之前,受Java语言静态要求的影响,Java编译器需要额外的编码才能实现对动态语言的支持,这样会致使JIT编译时间增加,并且比正常的内存消耗大得多,因此也增加了垃圾回收的次数。在Java SE 7中有了这个增强后,可以在运行时修改现有的类字节码,因此消耗的持久化空间更少了,垃圾回收的次数也减少了,让JIT可以优化更多的编译后代码。增强的多核支持:需要借助工具、库和内置设施帮助新的和现有的Java应用程序更有效地利用多核硬件的优势,Java的线程模型可以轻松地创建并行执行任务的线程,但你如何将一个单一的任务拆分成多片进行并行执行呢?有第三方的软件包可以帮助我们,如Pervasive的DataRush产品,例如,Doug Lea修改了Java Fork/Join Framework,为Java增加了这一功能,直接将框架添加到java.util.concurrent包,它就会递归地将任务分解成子任务进行并行执行,框架处理线程和协调任务,当所有子任务结束时组成结果。其它改进包括持续的性能改进,以及许多语言方面的增强,包括增加的闭包,在switch语句中对Strings的支持,以及多块异常捕获,闭包是一个有争议的功能,它是通过使用匿名的Java内部类实现的。Sun HotSpot和Oracle JRockit合并在我看来,到目前为止,最令人吃惊的消息是HotSpot和JRockit的合并。多年来,前BEA JVM和Sun的JVM一直被困扰在性能和管理功能上,但现在王者终于再次回归,在性能基准测试、总体延迟和垃圾回收技术中达到了最好的成绩。虽然很多人认为Sun的HotSpot JIT编译器技术是最好的,但JRockit凭借其优秀的垃圾回收技术和其它目标性能增强使它成为某些应用程序的首选,如金融领域使用得就颇多。事实上,JRockit实时功能比Sun的Java RTS产品更具优势,因为RTS经常要求修改应用程序的代码。但Sun的HotSpot被认为是最可靠的JVM,可靠比速度应该更重要,同时,HotSpot支持更多操作系统和硬件平台组合。鉴于这两个JVM都有各自的优势,结合两者的优点将会带来更好的成绩,到目前为止,Oracle表示JVM的整合目标如下:增强管理和监控:HotSpot带来了它的VisualVM和VisualGC工具,允许你可视化配置,检查和分析运行中的Java应用程序,包括它们的内存使用情况和性能。Oracle提供了JRockit任务控制工具集,实现应用程序执行,GC活动和由线程同步导致的延迟,IO或内存相关问题的可视化报告。此外,JRockit的任务控制功能提供了不真实的监控和报告。在hypervisor上本地执行:直接在硬件上运行Java虚拟机,超出了传统操作系统的限制,这也是 Oracle收购BEA和Sun之前这两家公司的共同目标。这种设计可能消除了Java应用程序和硬件本身之间的大量软件层。事实上,Azul公司在很多年以前就开始了这种尝试,构建专门的硬件和Java虚拟机协同工作,从而消除传统的操作系统。通过增加一个hypervisor,Oracle消除了专用硬件的限制,让JVM可以运行在数据中心已经部署的所有硬件平台上,如英特尔,AMD和基于Sparc的系统。先进的垃圾回收:结合了Oracle/BEA和Sun在垃圾回收方面的技术沉淀,现在再怎么说也应该有一个质的飞跃了,Sun对实时行为和吞吐量(Java SE 6并行收集器)还单独实现了一个GC(Java RTS的实时垃圾回收)。Jrcokit支持更少的回收,但它允许你指定操作模式。此外,对动态模式的支持,在运行时回收器可以选择最佳的垃圾回收策略。双方都做了许多有趣的努力和工作(Sun的工作成果是G1回收器),现在双方一起工作应该可以创造出更优秀的垃圾回收器。对多核系统的NUMA支持:非一致内存访问(NUMA)让内存访问时间依赖于内存位置相对于处理器执行代码的物理位置,在多核处理器技术领域更是一个热门话题。例如,在多核处理器中,每个内核有它自己的本地数据缓存,在处理器级别又有一个共享的二级缓存,如图1 所示。图 1 多核处理器中的NUMA架构另一种设计是所有内核共享处理器级缓存,但这并不一定是更好的设计。例如,共享缓存通常来自每个内核的物理缓存,访问必须要在内核之间进行协调。但据Oracle Java SE首席工程师Mark Reinhold透露,Java虚拟机合并可能会持续很长的时间,一是难度很大,二是要保证稳定性,他估计需要2年时间才能完成,Reinhold也希望能结合双方的所有优点,造出一个超级产品。无论发生什么情况,为了达到最佳性能和最低的延迟,JVM需要知道和支持NUMA架构。例如,通过与硬件打交道,JVM可以尝试在一个内核上使用热缓存执行代码,所谓热缓存就是你需要的数据就存储在它里面。Java EEOracle长期以来一直都是Java的支持者,也是最大的JCP成员之一,公司10多年前就开始参与Java EE规范的编制,因此对Oracle成为Java中间件市场的大鳄不应该感到意外。通过自身努力和并购,Oracle汇聚成了自己的融合中间件平台,它由完整的Java EE堆栈,基于SOA的服务,一个ESB,事务服务器和开发工具等组成。收购Sun后,Oracle拥有了Glassfish软件套件,它也是一个 Java EE参考实现。由于Oracle还拥有另一个Java EE平台Weblogic,据最新的产品路线图,Oracle在融合中间件堆栈中将使用Weblogic,而在嵌入式方面可能会使用Glassfish。至于Java EE的未来,Oracle表示将在以下几方面做出努力:模块化,开发标准:Java EE 6通过配置文件(Profile)定义实现了模块化Java EE,允许厂商根据特定需求创建更小的Java EE堆栈子集,解决成本和Java EE使用复杂问题。通过模块化设计和定义标准,有助于简化Java EE,让它的应用领域更广泛。Java EE 6规定了两种配置文件:Web配置文件(Servlet,JSP和JSF)和Java EE企业配置文件。显然还可以定义更多的配置文件种类,例如,为支持会话初始化协议(SIP)定义电信服务器配置文件。除了配置文件外,模块化可用于部署中间件到其它设备,例如,Java EE堆栈的嵌入式部分嵌入到移动设备,如安防摄像头,RFID阅读器,或其它你能想到的任何智能设备,开放了标准Java编程模型后让它的使用范围更广了。UI和RIA:HTML仍然是Java EE应用程序隐含的UI协议,通常有Java Servlet,JSP和JSF生成,考虑到生产的Web页面是静态的,可以使用Ajax技术,不过它已经超出了Java EE的范畴。虽然Ajax和Comet方法已经被证明是非常强大的,具有活力,让Web应用程序的易用性更好,但目前还缺乏标准和优秀的JavaScript开发工具。虽然Oracle没有明确这方面的具体计划,但我猜测未来Java EE和JavaFX集成时将会解决Ajax问题,事实上,根据2009年JavaONE大会上拉里埃里森的关于Ajax和JavaFX的发言,我的猜测应该是正确的。Java MEJava ME是Sun的一个巨大成功,已经用于数十亿各种类型的手机,它还由第三方定制用于无数的电力嵌入式解决方案。具体而言,Java ME主要由两个产品组成:连接限制设备配置(Connected Limited Device Configuration,CLDC)和连接设备配置(Connected Device Configuration,CDC)。两者之间的区别是它们的能力,CLDC是一个较小的子集,拥有一个非常小的虚拟机(VM),因此在能力有限的设备上运行。CDC是一个较完整的Java实现,它是为更强大的设备设计的。CDC与Java SE的字节码兼容,即为Java SE编译的.class文件可以在CDC JVM上运行,但CLDC就不行。由于Java ME(CDC和CLDC)和Java SE之间的限制和差异,在Java API和库方面也有差异,这就造成了开发分裂,为了解决这个问题,Oracle日前宣布将统一Java ME和Java SE API,彻底消除Java市场的分裂。另外,Oracle还宣布要改善Java ME的启动时间和整体性能,改进移动设备的电源管理,并努力支持新兴嵌入式设备(MID,媒体播放器等),以及改进JavaFX和JavaFX Mobile。JavaFX根据拉里埃里森和其它高层(如Thomas Kurian)的表态,Oracle将会继续支持和发展JavaFX,JavaFX是一个强大的运行时,脚本语言和工具集,让Java开发人员更容易构建 RIA应用程序,Flash/Flex和Silverlight也是RIA领域的竞争者,但JavaFX应用程序是为了满足你生活方方面面的应用,此外,JavaFX及基于Java构建的,因此你可以在JavaFX程序中集成和使用现有Java代码。你可以直接在桌面计算机上,嵌入到网页,通过Java WebStart或支持JavaFX Mobile的设备上运行JavaFX应用程序,在移动世界大会(Mobile World Congress,MWC)2009上,多家手机制造商和运营商宣布它们的手机将会支持JavaFX,但Oracle对JavaFX是如何计划的呢?Oracle表示它将增加JavaFX的投资,为RIA应用提供无与伦比的体验,重点如下:基buy wow power leveling
    buy wow powerleveling
    wow leveling
    Fast Power leveling
    Honor power leveling
    cheap wow power leveling
    wow power leveling
    wow power leveling
    wow power level
    aion power leveling
    aion powerleveling
    wow powerleveling
    wow powerleveling
    cheap power leveling
    wow gold
    buy wow goldwow gold
    buy wow gold
    wow power leveling
    wow power leveling
    wow powerleveling
    wow powerleveling
    aion power leveling
    aion powerleveling
    aion power leveling
    aion powerlevelingcataclysm power leveling
    cataclysm leveling
    power leveling cataclysm 
    Goblins leveling
    Worgen leveling
    cataclysm gold
    wow cataclysm gold
    cheap cataclysm gold
    cataclysm skills levelingaion power leveling
    aion powerleveling
    aion kinah
    aion gold
    buy aion kinah
    buy aion gold
    power leveling
      

  2.   

    先看java核心技术卷,java编程思想是很难。。
      

  3.   

    有一本叫做JAVA笔记,写的很好,建议你看看
      

  4.   

    看java编程思想吧,没你想的那么难,我当初就看了2天
      

  5.   

    上面 不是吹牛吧  花了两天就看了 java编程思想  不是走马光花吧!  我个人而言 java编程思想确实挺深奥的哦!
      

  6.   

    我觉得 java编程思想 可以 当当字典用 对于初学者 比较难啊  一些话  写得太深奥了
      

  7.   

    建议看java编程思想 ,看下来收获会很大,坚持就是胜利。
      

  8.   

    《thinking in Java》感觉这本书不错~多写多练
      

  9.   

    我打算暑假看Java编程思想。Java快学了两个学期了,现在看应该比较能看懂一点吧?麻烦过来人指点一下。谢谢
      

  10.   

    个人认为初学者应从核心JAVA开始,在学会怎么做之后再去了解这么做的原因,这样收获会很大。如果一味的去想这么做的原因会让你有腾云驾雾感觉。
    嗯,你自己现在的方法不错,从视频教程开始,可以边看视频教程边看书,注意多做例子,至于JAVA思想可以在你知道如何使用JAVA之后再去研究。
      

  11.   

    http://www.5fuyou.com/images/head/DownLoad.html 分享一个编程视频下载地址,很好,很强大
      

  12.   

    先把马士兵的J2SE基础部分内容看完再看THINKING IN JAVA把,我感觉编程思想里面有的内容不适合初学者,虽然例子解释都很经典
      

  13.   

    有没有人介绍一下学习java的一些方法吗
      

  14.   

    楼主是初学者吗?
    那就一定不要看《Java编程思想》,它不适合初学者。建议去看《Java2核心技术》I。
    如果想更快入门,不妨看《Java2实用教程》,清华大学出版社,耿祥义、张跃平编著。不过,该书只适合新手入门,内容远远不够实际应用,建议学完它之后再读其它书籍,例如《Java2核心技术》I、II。