第一图书网

Java核心技术卷1

(美)Cay S.Horstmann Gary Cornel 人民邮电出版社
出版时间:

2008-11  

出版社:

人民邮电出版社  

作者:

(美)Cay S.Horstmann Gary Cornel  

页数:

836  

Tag标签:

无  

前言

  1995年底,Java语言在Intemet舞台上一亮相便名声大噪。其原因在于它将有望成为通过信息将用户联系起来的“万能胶”,而不论这些信息来自于Web服务器、数据库、信息提供商,还是任何其他渠道。事实上,就发展前景而言,Java的地位是独一无二的。它是一种完全可以信赖的程序设计语言,得到了除微软之外所有厂家的认可。其固有的可靠性与安全性不仅令Java程序员放心,也令使用Java程序的用户放心。Java内建了对网络编程、数据库连接、多线程等高级程序设计任务的支持。  1995年以来,SUN MicroSystems公司已经发布了Java开发工具箱(Java Development Kit)的7个主要版本。在过去的11年中,应用程序接口(API)已经从200个类扩展到3000个类,并覆盖了用户界面构建、数据库管理、国际化、安全性以及XML处理等各个不同的领域。  本书是《Java核心技术》第8版的卷I。自《Java核心技术》出版以来,每个新版本都尽可能快地跟上Java开发工具箱发展的步伐,并重新改写部分内容,以适应Java的最新特性。在这一版中,已经反映了Java标准版(Java SE 6)的特性。  与前几版一样,本版仍然将读者群定位在那些打算将Java应用到实际工程项目中的程序设计人员。本书假设读者是一名具有程序设计语言(除Java之外)坚实背景知识的程序设计人员,并且不希望书中充斥着玩具式的示例(诸如烤面包机、动物园的动物或神经质的跳动文本)。这些内容绝对不会在本书中出现。本书的目标是让读者充分地理解书中介绍的Java语言及Java类库的相关特性,而不会产生任何误解。  在本书中,我们选用大量的示例代码演示所讨论的每一个语言特性和类库特性。我们有意使用简单的示例程序以突出重点,然而,其中的大部分既不是赝品也没有偷工减料。它们将成为读者自己编写代码的良好开端。

内容概要

  《Java核心技术卷1:基础知识(第8版)(英文版)》第1版出版以来,一直备受广大Java程序设计人员的青睐,畅销不衰,是Java经典书籍。第8版针对Java SE 6平台进行了全面更新,囊括了Java 2平台、标准版(J2SE)的全部基础知识,提供了大量完整且具有实际意义的应用实例,详细介绍了Java语言基础知识、面向对象程序设计、接口与内部类、事件监听器模型、Swing图形用户界面程序设计、打包应用程序、异常处理、登录与调试、泛型程序设计、集合框架、多线程等内容。《Java核心技术卷1:基础知识(第8版)(英文版)》示例程序经过精心设计,不但具有实用价值,而且易于阅读理解,可以作为初学者自己编写程序的良好开端,也能够帮助程序员快速地了解Java SE 6的新特性,或迅速从其他语言转向Java语言。

书籍目录

Contents1 AN INTRODUCTION TO JAVAJava As a Programming PlatformThe Java “White Paper” Buzzwords Simple Object Oriented Network-Savvy Robust Secure Architecture Neutral Portable Interpreted High Performance Multithreaded DynamicJava Applets and the InternetA Short History of JavaCommon Misconceptions about Java2 THE JAVA PROGRAMMING ENVIRONMENTInstalling the Java Development Kit Downloading the JDK Setting the Execution Path Installing the Library Source and Documentation Installing the Core Java Program Examples Navigating the Java DirectoriesChoosing a Development EnvironmentUsing the Command-Line Tools Troubleshooting HintsUsing an Integrated Development Environment Locating Compilation ErrorsRunning a Graphical ApplicationBuilding and Running Applets3 FUNDAMENTAL PROGRAMMING STRUCTURES IN JAVAA Simple Java ProgramCommentsData Types Integer Types Floating-Point Types The char Type The boolean TypeVariablesInitializing Variables ConstantsOperators Increment and Decrement Operators Relational and boolean Operators Bitwise Operators Mathematical Functions and Constants Conversions between Numeric Types Casts Parentheses and Operator Hierarchy Enumerated TypesStrings Substrings Concatenation Strings Are Immutable Testing Strings for Equality Code Points and Code Units The String API Reading the On-Line API Documentation Building StringsInput and Output Reading Input Formatting Output File Input and OutputControl Flow Block Scope Conditional Statements Loops Determinate Loops Multiple Selections——The switch Statement Statements That Break Control FlowBig NumbersArrays The “for each” Loop Array Initializers and Anonymous Arrays Array Copying Command-Line Parameters Array Sorting Multidimensional Arrays Ragged Arrays4 OBJECTS AND CLASSESIntroduction to Object-Oriented Programming Classes Objects Identifying Classes Relationships between ClassesUsing Predefined Classes Objects and Object Variables The GregorianCalendar Class of the Java Library Mutator and Accessor MethodsDefining Your Own Classes An Employee Class Use of Multiple Source Files Dissecting the Employee Class First Steps with Constructors Implicit and Explicit Parameters Benefits of Encapsulation Class-Based Access Privileges Private Methods Final Instance FieldsStatic Fields and Methods Static Fields Static Constants Static Methods Factory Methods The main MethodMethod ParametersObject Construction Overloading Default Field Initialization Default Constructors Explicit Field Initialization Parameter Names Calling Another Constructor Initialization Blocks Object Destruction and the finalize MethodPackages Class Importation Static Imports Addition of a Class into a Package Package ScopeThe Class Path Setting the Class PathDocumentation Comments Comment Insertion Class Comments Method Comments Field Comments General Comments Package and Overview Comments Comment ExtractionClass Design Hints5 INHERITANCEClasses, Superclasses, and Subclasses Inheritance Hierarchies Polymorphism Dynamic Binding Preventing Inheritance: Final Classes and Methods Casting Abstract Classes Protected AccessObject: The Cosmic Superclass The equals Method Equality Testing and Inheritance The hashCode Method The toString MethodGeneric Array Lists Accessing Array List Elements Compatibility between Typed and Raw Array ListsObject Wrappers and AutoboxingMethods with a Variable Number of ParametersEnumeration ClassesReflection The Class Class A Primer on Catching Exceptions Using Reflection to Analyze the Capabilities of Classes Using Reflection to Analyze Objects at Runtime Using Reflection to Write Generic Array Code Method Pointers!Design Hints for Inheritance6 INTERFACES AND INNER CLASSESInterfaces Properties of Interfaces Interfaces and Abstract ClassesObject CloningInterfaces and CallbacksInner Classes Use of an Inner Class to Access Object State Special Syntax Rules for Inner Classes Are Inner Classes Useful? Actually Necessary? Secure? Local Inner Classes Accessing final Variables from Outer Methods Anonymous Inner Classes Static Inner ClassesProxies Properties of Proxy Classes7 GRAPHICS PROGRAMMINGIntroducing SwingCreating a FramePositioning a Frame Frame Properties Determining a Good Frame SizeDisplaying Information in a ComponentWorking with D ShapesUsing ColorUsing Special Fonts for TextDisplaying Images8 EVENT HANDLINGBasics of Event Handling Example: Handling a Button Click Becoming Comfortable with Inner Classes Creating Listeners Containing a Single Method Call Example: Changing the Look and Feel Adapter ClassesActionsMouse EventsThe AWT Event HierarchySemantic and Low-Level Events9 USER INTERFACE COMPONENTS WITH SWINGSwing and the Model-View-Controller Design Pattern Design Patterns The Model-View-Controller Pattern A Model-View-Controller Analysis of Swing ButtonsIntroduction to Layout Management Border Layout Grid LayoutText Input Text Fields Labels and Labeling Components Password Fields Text Areas Scroll PanesChoice Components Checkboxes Radio Buttons Borders Combo Boxes SlidersMenus Menu Building Icons in Menu Items Checkbox and Radio Button Menu Items Pop-Up Menus Keyboard Mnemonics and Accelerators Enabling and Disabling Menu Items Toolbars TooltipsSophisticated Layout Management The Grid Bag Layout Group Layout Using No Layout Manager Custom Layout Managers Traversal OrderDialog Boxes Option Dialogs Creating Dialogs Data Exchange File Dialogs Color Choosers10 DEPLOYING APPLICATIONS AND APPLETSJAR Files The Manifest Executable JAR Files Resources SealingJava Web Start The Sandbox Signed Code The JNLP APIApplets A Simple Applet The Applet HTML Tag and Its Attributes The object Tag Use of Parameters to Pass Information to Applets Accessing Image and Audio Files The Applet ContextStorage of Application Preferences Property Maps The Preferences API11 EXCEPTIONS, LOGGING, ASSERTIONS, AND DEBUGGINGDealing with Errors The Classification of Exceptions Declaring Checked Exceptions How to Throw an Exception Creating Exception ClassesCatching Exceptions Catching Multiple Exceptions Rethrowing and Chaining Exceptions The finally Clause Analyzing Stack Trace ElementsTips for Using ExceptionsUsing Assertions Assertion Enabling and Disabling Using Assertions for Parameter Checking Using Assertions for Documenting AssumptionsLogging Basic Logging Advanced Logging Changing the Log Manager Configuration Localization Handlers Filters Formatters A Logging RecipeDebugging Tips Using a Console Window Tracing AWT Events Letting the AWT Robot Do the WorkUsing a Debugger12 GENERIC PROGRAMMINGWhy Generic Programming? Who Wants to Be a Generic Programmer?Definition of a Simple Generic ClassGeneric MethodsBounds for Type VariablesGeneric Code and the Virtual Machine Translating Generic Expressions Translating Generic Methods Calling Legacy CodeRestrictions and Limitations Type Parameters Cannot Be Instantiated with Primitive Types Runtime Type Inquiry Only Works with Raw Types You Cannot Throw or Catch Instances of a Generic Class Arrays of Parameterized Types Are Not Legal You Cannot Instantiate Type Variables Type Variables Are Not Valid in Static Contexts of Generic Classes Beware of Clashes After ErasureInheritance Rules for Generic TypesWildcard Types Supertype Bounds for Wildcards Unbounded Wildcards Wildcard CaptureReflection and Generics Using Class Parameters for Type Matching Generic Type Information in the Virtual Machine13 COLLECTIONSCollection Interfaces Separating Collection Interfaces and Implementation Collection and Iterator Interfaces in the Java LibraryConcrete Collections Linked Lists Array Lists Hash Sets Tree Sets Object Comparison Queues and Deques Priority Queues Maps Specialized Set and Map ClassesThe Collections Framework Views and Wrappers Bulk Operations Converting between Collections and ArraysAlgorithms Sorting and Shuffling Binary Search Simple Algorithms Writing Your Own AlgorithmsLegacy Collections The Hashtable ClassEnumerations Property Maps Stacks Bit Sets14 MULTITHREADINGWhat Are Threads? Using Threads to Give Other Tasks a ChanceInterrupting ThreadsThread States New Threads Runnable Threads Blocked and Waiting Threads Terminated ThreadsThread Properties Thread Priorities Daemon Threads Handlers for Uncaught ExceptionsSynchronization An Example of a Race Condition The Race Condition Explained Lock Objects Condition Objects The synchronized Keyword Synchronized Blocks The Monitor Concept Volatile Fields Deadlocks Lock Testing and Timeouts Read/Write Locks Why the stop and suspend Methods Are DeprecatedBlocking QueuesThread-Safe Collections Efficient Maps, Sets, and Queues Copy on Write Arrays Older Thread-Safe CollectionsCallables and FuturesExecutors Thread Pools Scheduled Execution Controlling Groups of TasksSynchronizersSemaphores Countdown Latches Barriers Exchangers Synchronous Queues Example: Pausing and Resuming an AnimationThreads and Swing Running Time-Consuming Tasks Using the Swing Worker The Single-Thread RuleAppendixIndex


编辑推荐

  《Java核心技术卷1:基础知识(第8版)(英文版)》是Java实际项目应用的权威指导书。《Java核心技术卷1:基础知识(第8版)(英文版)》作者Cav S.Horstmann是圣何塞州立大学计算机科学系教授、Java的倡导者。  Garv Cornell拥有20余年程序设计专业课程教学经验,撰写过多本专著,曾获得Jolt大奖提名。  《Java核心技术卷1:基础知识(第8版)(英文版)》针对Java SE 6平台进行了全面更新,并通过大量经过测试的示例说明了最重要的语言特性和类库特性。这些示例程序经过精心设计,不但具有实用价值,而且易阅读和理解,可以作为读者自己编写程序的良好开端。本卷详细介绍以下内容:  Java语言基础知识;  Swing图形用户界面程序设计;  泛型程序设计;  面向对象程序设计;  打包应用程序;  集合框架;  接口与内部类;  异常处理;  多线程。  事件监听器模型;  登录与调试。

图书封面

图书标签Tags

广告

下载页面


Java核心技术卷1 PDF格式下载



  还说该书是四大家族的书,害的花了钱买,亏死了,没什么价值,买本书看参考手册还不如官网,真后悔,没屁点价值,可能对初学有点价值。


  作为一本入门书,循序渐进的说明Java语言的语法特性,OOP的细节。其中涉及的细节,都讲解的很清晰,需要注意的点也都有讲到,对于理解why & how都有帮助。
  
  在很多细节上和C++语言的特性做比较,有助于有经验的C/C++程序员对Java的理解,也的确体现了Java对于语言的改进。


  我看java基础的书,最多的也还是这本了。
  我很喜欢书的内容结构布局。代码布局工整,翻译也给力,java基础的经典中,除了java编程思想,在我心里就排它了。其实编程思想没有它看的勤快。不管是在集合、泛型还是内部类,有了疑问,第一想到的就是翻开次数猫一猫,解解惑,过过瘾。
  一个字,好书!


   本书的内容很全面,但是不得不吐糟一下翻译,比如在P231,倒数第8行,“这个方法的调用者可以34使用……”,推测这里的34应该是没有用的,这种错误太低级了。另外翻译的表达不清晰,有效的降低了我对本书的理解,建议大家看原版


  (非程序员,内容与编程无关,书评与书无关)
  
  
  前几天看到一种说法,技术即容器。
  
  书即容器,装载着人与出行方式
  电脑即容器,装载着数据与信息浏览方式
  文字即容器,装载着字的意义与交流方式
  
  不禁让我想到了JAVA中的类,任何东西都是类中的一员,编程是调用各个类中的对象属性方法
  
  那么我们的文字从编程的角度来看就是,每一个字都是一个类,类中包含着这个字的对象属性方法。当我们调用不同字类中的对象属性方法组合起来,这就是所谓的遣词造句。整个世界其实都可以用这种视角来解析
  
  这时我想到了PHP中的变量
  JAVA中的变量使用前要定义好是整型或浮点型或其他,但PHP却不需要
  
  $p是一个变量,但它只是一个变量而已,你无法说出它是属于哪一种类型的变量
  想知道$p的类型就必须给它赋值
  给它赋整数值,它就立刻变成整数型
  给它赋浮点值,它就立刻变成浮点型
  
  感觉很熟悉,
  薛定谔的猫,
  打开盒子前猫处于不死不活的叠加状态
  打开盒子后,猫的生命状态被决定
  薛定谔的猫原型
  电子同时位于很多个不同的地点
  人类进行观测,电子定位与一点
  
  此外还可以说一说随机函数
  我们生活中存在很多的不确定性
  最普遍的就是我今天中午吃什么
  两种选择,一种吃饭,一种吃面,
  一般来说,我吃饭的可能更大,但也会出现随机因素导致我最终选择吃面
  转换成编程就是
  吃饭 $rice=5
  吃面 $noodle=3
  随机选择0-4中的一个数 rand(0,4)
  if ( $rice >= ( $noodle + rand(0,4)))
  {吃饭};
  else
  {吃面};
  生活中的rand(0,4)其实就是上帝在掷骰子
  
  历史很多时候都是上帝在掷骰子,
  有时掷出0,1,2,历史不会改变
  有时掷出3,4,历史完全不同
  
  有趣的想法
  程序员,编程,写入rand(0,4)函数
  上帝,创造世界,掷骰子
  程序员写入rand(0,4),但随机得到的数字取决于电脑,程序员自己对此无能为力
  上帝掷骰子,不知道骰子落地后哪一面会朝上


   这是一本讲的很详细的书,既可以用作入门书,也可以当手册,需要的时候查询。
   700页的书,基本每个例子都敲了一遍,看完之后很有成就感。
   当然,只看书是不够的,关键还是实践;基本功很重要,但是用不上的基本功就是废柴。
   加油!
   准备开始看第二卷。


  学习Java有两部很好的书籍:《Thinking in Java》和《Core Java》。前者内容丰富,在讲述Java语言的同时把Java编程思想也娓娓道来,让人如沐春风;后者偏重于讲解Java技术,举例说明了大量API的使用。这两部书在讲解Java上殊途同归,都值得放在书桌上时常翻阅。
  
  不过看完后比较的话,会发现《Core Java》的作者有些不厚道:这部书被分拆成卷I和卷II,每卷的价格都和《Thinking in Java》差不多!《Core Java》能被分拆成卷I和卷II是因为作者用大量篇幅讲述了Java的GUI编程,但对大部分使用不到Java Swing图形界面编程读者来说,这部分内容没有任何价值!而且作者很狡猾,把Java Swing图形界面编程部分分别放在两卷书中。比如在卷I中第七章到第九章共三章将近两百多页的介绍Swing内容,对我就来说没任何用处。而经常要用到非常基本的“流与文件”技术在“基础知识”卷I中根本没讲,反而是放到“高级特性”的卷II中去了,对作者这种划分很无语。不打算买卷II,因为卷II只有几章内容有用,下载电子版看看算了。
  
  《Core Java》卷I和卷II内容不合理的划分是让我对这部书不爽的地方,但不可否认这本书是一本很好的Java学习书籍。这本书一开始就推荐使用Eclipse IDE编程,例子程序简洁易用,展示了大量API用途。
  
  综合来评价的话,这本书在新手入门上比《Thinking in Java》稍胜一筹,但在内容深广度、性价比方面则跟《Thinking in Java》不可同日而语。


  很基础,目前看到图形界面350页,适合初学者的一本java教材。前面的基础讲解的不错。后面的图形界面的有说明也有应用的实例,不知道后面的异常和多线程内容怎么样,看前面的部分来推测 应该不错。建议学Java的看看。


  《java核心技术(卷1)》书评
  最近花了一个多星期的时间看了《Java核心技术》卷一,感觉这本书是一本介绍java内容比较全面的一本书,几乎所有Java的知识点都有涉及,而且讲解的也很详细,对java的初学者来说是一本很好的入门书籍。该书对java中jdk的下载和安装部署都进行了详细的介绍,这对于初次接触java的人来说,帮助是很大的。该书在讲解java的基础知识时,引入了大量的程序示例,这样可以帮助初学者更好的理解java语言的语法知识和java语言的特性。这是一本适合初学者入门的经典好书。


  卷1+卷2就是一套JavaSE的大百科全书了。看到《Java核心技术》新版更新已经出到第8版时,虽不狂喜,却也欣喜异常的。
  
  作为一本力求讲解全部java基本知识的经典书籍,研读相关细节,所获心得颇多。从jdk的下载安装到部署应用程序;从数据类型控制流程到对象与类再到集合;从图形程序设计到Swing用户界面组件;从异常处理到多线程...每一块内容介绍的极其详细,显然有了这本书以后 再也不用google搜索java基础了。
  
  如果能够反复并从具体开发角度阅读会发现,此书不只是全面、具体而准确的介绍了java的相关概念和特性而已。而且深入讲解了Java语言的核心特性。诚如书名“Core Java”——Java语言核心内容。
  
  这是java初学者及提高者的bible(圣经)。


  ActionScript和JAVA真的很像,很多类和常用方法是完全相同的。
  第1章建议详看,因为这样可以对JAVA多一些了解;
  第2章很短,可以详看,同时应该删除Flash Builder独立版,改装插件版。因为独立版不支持JAVA开发,需要自己装一堆插件才行。在国内的网络环境下,去在线装哪些插件(还要处理各插件之间的关联)是很痛苦的事情,还不如去下载一个JAVA开发版的Eclipse,然后再安装插件版的Flash Builder。
  第3章可以稍看快些,因为大多数东西AS都是类似的,只是许多地方语法不同。
  第4章还在看……


  写个大纲,希望有所帮助:
  
  1-6章:概述和基本语法,为便于C++程序员迁移,附有大量C++对比注释,还有各种“注意”“警告”的tips,这编排很好。
  
  7-9章:Java基于awt和swing包的界面开发由于缺少良好的IDE支持,界面设计和布局问题让习惯了VS的初学者很烦躁,789可跳读,核心机制是事件驱动-监听-方法回调的机制。书中很多相关示例代码。
  
  10-11章:应用部署和applet,先了解一下,要发布时再仔细看也来得及,至于applet,据说现在用的比较少了。如果你熟悉C++或C++++的话,异常几乎没新内容,但是建议读第4章之前先读一下异常这章,因为java中所有可能的非运行时异常都需要人工捕获处理。
  
  12-13章:虚拟机的泛型系统实现特点及使用注意是第一卷的进阶精华,也是MetaPrograming的第一步,和C++的template的实现很不一样,C++的程序员要注意比较区别。至于集合,要注意分类,因为历史遗留和兼容性问题,java这块比较乱。
  
  14章:先有多线程的概念在看书要好些,包里有一大堆过时的API,小心尽量不使用。书里的配图很好。
  
  最后,这本书总的来说偏向实用,除了java虚拟机的泛型系统实现机制,其他方面讲的都够用又不是很难,广度和深度都恰到好处,值得一读。
  


  挺好的一本书。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  
  


  这本使JAVA里面最重要的一本书,是我开始JAVA之旅的第一本书,希望大家能够好好研读一下,可以学到很多的东西,这本书所涵盖的内容比其他的要多地多,即包括基础知识,又包括高级的应用,不论你是自己编程还是做企业级的开发系统,我想这本书可以给你足够的参考。我那时看得是第六版。


程序员的思维果然简洁 哈哈。!


正在读卷1,很自然地跳过第7-10章,这部分真是鸡肋。
如果搞图形编程,用C#多爽,拖拖拽拽就出来了,根本不用记这些东西。


你好,我是初学者,你一个多星期就读完了?为啥我一个月都没多大进展呀?呵呵


给初学者或第一次看这本书的人节约时间的好参考


一直做C#,现在搞起来感觉有点弱


概括的很好,可以省下很多时间


我在看第七版


我在看第八版


我在看第八版~


我在看第八版。不过第九版貌似要出来了


相关图书