具体描述
Cay S.Horstmann等编著,公飞编译的《Java核心技术》(Core Java)
自第1版出版以来,一直备受广大Java程序设计人员的青睐,畅销不衰,是
Java经典书籍。第8版针对Java SE 6平台进行了全面更新,囊括了Java平
台标准版(Java SE/J2SE)的全部基础知识,提供了大量完整且具有实际意
义的应用实例,详细介绍了Java语言基础知识、面向对象程序设计、接口
与内部类、事件监听器模型、swing图形用户界面程序设计、打包应用程序
、异常处理、登录与调试、泛型程序设计、集合框架、多线程等内容。
本评注版力邀国内资深专家执笔,在英文原著基础上增加了点评和注
释,并对原书内容进行了精简,删除了Java图形窗口编程的相关内容,即
原书的第7-10章,同时对章节序号进行了相应的调整,从而使本书更集中
于Java核心语言。
本评注版的目的旨在以先行者的学研心得与实践感悟,对读者的阅读
和学习加以点拨、指明捷径。
《Java核心技术》中示例程序经过精心设计,不但具有实用价值,而
且易于阅读理解,可以作为初学者自己编写程序的良好开端,也能够帮助
程序员快速地了解Java SE 6的新特性,或迅速从其他语言转向Java语言。
作者简介
CaycS.Horstmann是圣何塞州立大学计算机科学系教授、Java的倡导者.a他经常在计算机会议上讲演.aCraycCornell已经教授程序设计专业课程20余年,2并编写多本专著.a他是Apress的创始人之一.a他撰写的程序设计专业书籍十分畅销,2是JoltcAward的最终获奖者之一,2并在VisualcBasiccMagazin赢得了ReaderscChoice奖。
评注者简介:
公飞 曾工作于中创软件商用中间件有限公司、IBM全球信息科技服务部(GTS)和IBM全球业务咨询服务部(GBS).a目前供职于山东鲁能软件技术有限公司,5负责该公司前瞻业务与技术研究、业务战略管理、解决方案发展、产品与技术规划、软件架构管理、项目管理、软件测试,5以及技术管理体系建设等方面的工作。
目录信息
acknowledgements xxiv
chapter 1 an introduction to java(新增批注共25条) 1
java as a programming platform 2
the java “white paper” buzzwords 3
simple 3
object oriented 4
network-savvy 5
robust 5
secure 6
architecture neutral 7
portable 8
interpreted 9
high performance 9
multithreaded 10
dynamic 10
java applets and the internet 11
a short history of java 12
common misconceptions about java 15
.chapter 2 the java programming environment
(新增批注共20条) 21
installing the java development kit 22
downloading the jdk 22
setting the execution path 26
installing the library source and documentation 28
installing the core java program examples 28
navigating the java directories 29
choosing a development environment 32
using the command-line tools 33
troubleshooting hints 43
using an integrated development environment 45
locating compilation errors 49
running a graphical application 55
building and running applets 58
chapter 3 fundamental programming structures in java
(新增批注共44条) 63
a simple java program 64
comments 68
data types 70
integer types 70
floating-point types 71
the char type 72
the boolean type 74
variables 74
initializing variables 76
constants 76
operators 77
increment and decrement operators 78
relational and boolean operators 79
bitwise operators 81
mathematical functions and constants 81
conversions between numeric types 83
casts 84
parentheses and operator hierarchy 84
enumerated types 85
strings 86
substrings 86
concatenation 86
strings are immutable 87
testing strings for equality 88
code points and code units 89
the string api 90
reading the on-line api documentation 92
building strings 95
input and output 96
reading input 96
formatting output 98
file input and output 103
control flow 105
block scope 105
conditional statements 106
loops 109
determinate loops 113
multiple selections—the switch statement 117
statements that break control flow 119
big numbers 122
arrays 124
the “for each” loop 125
array initializers and anonymous arrays 126
array copying 126
command-line parameters 128
array sorting 129
multidimensional arrays 132
ragged arrays 135
chapter 4 objects and classes(新增批注共55条) 139
introduction to object-oriented programming 140
classes 142
objects 143
identifying classes 143
relationships between classes 144
using predefined classes 146
objects and object variables 146
the gregoriancalendar class of the java library 150
mutator and accessor methods 152
defining your own classes 158
an employee class 158
use of multiple source files 162
dissecting the employee class 163
first steps with constructors 164
implicit and explicit parameters 166
benefits of encapsulation 167
class-based access privileges 170
private methods 171
final instance fields 171
static fields and methods 172
static fields 172
static constants 173
static methods 174
factory methods 175
the main method 175
method parameters 178
object construction 185
overloading 185
default field initialization 185
default constructors 186
explicit field initialization 187
parameter names 188
calling another constructor 188
initialization blocks 189
object destruction and the finalize method 193
packages 194
class importation 195
static imports 196
addition of a class into a package 197
package scope 200
the class path 201
setting the class path 203
documentation comments 204
comment insertion 204
class comments 205
method comments 205
field comments 206
general comments 206
package and overview comments 207
comment extraction 207
class design hints 208
chapter 5 inheritance(新增批注共42条) 213
classes, superclasses, and subclasses 214
inheritance hierarchies 222
polymorphism 222
dynamic binding 224
preventing inheritance: final classes and methods 226
casting 227
abstract classes 229
protected access 234
object: the cosmic superclass 235
the equals method 236
equality testing and inheritance 238
the hashcode method 240
the tostring method 243
generic array lists 248
accessing array list elements 250
compatibility between typed and raw array lists 254
object wrappers and autoboxing 256
methods with a variable number of parameters 259
enumeration classes 260
reflection 263
the class class 263
a primer on catching exceptions 266
using reflection to analyze the capabilities of classes 268
using reflection to analyze objects at runtime 273
using reflection to write generic array code 277
method pointers! 281
design hints for inheritance 284
chapter 6 interfaces and inner classes(新增批注共24条) 289
interfaces 290
properties of interfaces 296
interfaces and abstract classes 297
object cloning 298
interfaces and callbacks 305
inner classes 307
use of an inner class to access object state 309
special syntax rules for inner classes 312
are inner classes useful? actually necessary? secure? 313
local inner classes 316
accessing final variables from outer methods 316
anonymous inner classes 319
static inner classes 322
proxies 325
properties of proxy classes 333
chapter 7 exceptions, logging, assertions, and debugging
(新增批注共38条) 335
dealing with errors 336
the classification of exceptions 338
declaring checked exceptions 340
how to throw an exception 342
creating exception classes 343
catching exceptions 344
catching multiple exceptions 346
rethrowing and chaining exceptions 348
the finally clause 349
analyzing stack trace elements 352
tips for using exceptions 357
using assertions 361
assertion enabling and disabling 361
using assertions for parameter checking 362
using assertions for documenting assumptions 363
logging 364
basic logging 364
advanced logging 365
changing the log manager configuration 367
localization 368
handlers 369
filters 373
formatters 373
a logging recipe 373
debugging tips 381
using a console window 387
tracing awt events 389
letting the awt robot do the work 393
using a debugger 396
chapter 8 generic programming(新增批注共22条) 401
why generic programming? 402
who wants to be a generic programmer? 403
definition of a simple generic class 404
generic methods 406
bounds for type variables 407
generic code and the virtual machine 409
translating generic expressions 411
translating generic methods 411
calling legacy code 413
restrictions and limitations 414
type parameters cannot be instantiated with primitive types 414
runtime type inquiry only works with raw types 415
you cannot throw or catch instances of a generic class 415
arrays of parameterized types are not legal 416
you cannot instantiate type variables 416
type variables are not valid in static contexts of generic classes 418
beware of clashes after erasure 418
inheritance rules for generic types 419
wildcard types 421
supertype bounds for wildcards 423
unbounded wildcards 424
wildcard capture 425
reflection and generics 430
using class[t] parameters for type matching 431
generic type information in the virtual machine 431
chapter 9 collections(新增批注共55条) 437
collection interfaces 438
separating collection interfaces and implementation 439
collection and iterator interfaces in the java library 441
concrete collections 447
linked lists 448
array lists 459
hash sets 459
tree sets 463
object comparison 464
queues and deques 469
priority queues 471
maps 472
specialized set and map classes 476
the collections framework 481
views and wrappers 487
bulk operations 493
converting between collections and arrays 494
algorithms 494
sorting and shuffling 496
binary search 498
simple algorithms 499
writing your own algorithms 500
legacy collections 502
the hashtable class 502
enumerations 502
property maps 503
stacks 504
bit sets 504
chapter 10 multithreading(新增批注共24条) 509
what are threads? 511
using threads to give other tasks a chance 517
interrupting threads 524
thread states 528
new threads 529
runnable threads 529
blocked and waiting threads 530
terminated threads 530
thread properties 531
thread priorities 531
daemon threads 533
handlers for uncaught exceptions 534
synchronization 535
an example of a race condition 536
the race condition explained 540
lock objects 541
condition objects 544
the synchronized keyword 549
synchronized blocks 553
the monitor concept 554
volatile fields 555
deadlocks 556
lock testing and timeouts 559
read/write locks 560
why the stop and suspend methods are deprecated 561
blocking queues 563
thread-safe collections 570
efficient maps, sets, and queues 570
copy on write arrays 572
older thread-safe collections 572
callables and futures 573
executors 577
thread pools 578
scheduled execution 582
controlling groups of tasks 583
synchronizers 584
semaphores 585
countdown latches 585
barriers 585
exchangers 586
synchronous queues 586
example: pausing and resuming an animation 586
threads and swing 592
running time-consuming tasks 594
using the swing worker 598
the single-thread rule 604
index 607
· · · · · · (收起)
读后感
很基础,目前看到图形界面350页,适合初学者的一本java教材。前面的基础讲解的不错。后面的图形界面的有说明也有应用的实例,不知道后面的异常和多线程内容怎么样,看前面的部分来推测 应该不错。建议学Java的看看。
卷1+卷2就是一套JavaSE的大百科全书了。看到《Java核心技术》新版更新已经出到第8版时,虽不狂喜,却也欣喜异常的。 作为一本力求讲解全部java基本知识的经典书籍,研读相关细节,所获心得颇多。从jdk的下载安装到部署应用程序;从数据类型控制流程到对象与类再到集合;从图形...
本书的内容很全面,但是不得不吐糟一下翻译,比如在P231,倒数第8行,“这个方法的调用者可以34使用……”,推测这里的34应该是没有用的,这种错误太低级了。另外翻译的表达不清晰,有效的降低了我对本书的理解,建议大家看原版
写个大纲,希望有所帮助: 1-6章:概述和基本语法,为便于C++程序员迁移,附有大量C++对比注释,还有各种“注意”“警告”的tips,这编排很好。 7-9章:Java基于awt和swing包的界面开发由于缺少良好的IDE支持,界面设计和布局问题让习惯了VS的初学者很烦躁,789可跳读,核心...
写个大纲,希望有所帮助: 1-6章:概述和基本语法,为便于C++程序员迁移,附有大量C++对比注释,还有各种“注意”“警告”的tips,这编排很好。 7-9章:Java基于awt和swing包的界面开发由于缺少良好的IDE支持,界面设计和布局问题让习惯了VS的初学者很烦躁,789可跳读,核心...
用户评价
从排版和编辑的角度来看,这本书的质量也让人不敢恭维。字体选择偏小,行距过于密集,使得长时间阅读眼睛非常容易疲劳,很多关键的代码块和术语解释都没有用粗体或者斜体明确区分出来,阅读起来十分费力。更令人抓狂的是,书中的图表制作水平堪忧,那些试图解释类继承关系或者接口实现的UML图,线条交错,标注不清,我甚至需要反复对照文字才能勉强理解其意图,这完全是本末倒置了。我希望一本严肃的技术著作能够提供清晰、美观、易于理解的视觉辅助材料,帮助消化复杂概念。很遗憾,这本书在这方面的投入似乎极少,给读者的直观感受就是一本仓促赶工、缺乏专业审校的资料汇编,使得原本可能有些价值的内容,也被这种粗糙的呈现方式大大削弱了其可读性和实用性。
说实话,这本书的章节安排简直是一场灾难,逻辑跳跃得厉害,读起来体验极差。前几章还在讲面向对象的继承和多态,讲得津津有味,仿佛时间停滞在了 Java 1.5 的时代。结果,下一章突然就跳到了网络编程的基础 Socket 操作,中间关于异常处理的精妙之处和资源管理的最佳实践却一带而过。我特别想知道作者对“Checked Exception”的深刻理解在哪里,或者他对新版 `try-with-resources` 的设计哲学有什么独到见解,但这些内容几乎是缺失的。更让我感到困惑的是,关于模块化系统(JPMS)的介绍,竟然只是简单地提了一下概念,完全没有展示如何构建一个多模块项目,也没有探讨它对依赖管理带来的深远影响。这感觉就像是作者拼凑了不同年代的笔记,然后强行把它们装订在一起,完全没有一条连贯的主线贯穿始终,让人无法形成完整的知识体系。
作为一名有几年经验的开发者,我购买这本书是冲着它封面上那些“深度”、“核心”的字眼来的,希望能找到一些能让我技术栈更进一步的干货。结果,关于性能调优的部分,简直是令人啼笑皆非。它提到了垃圾回收(GC),但讲解的GC算法停留在上一个十年的主流水平,对 ZGC 或 Shenandoah 这种现代低延迟收集器的描述,寥寥数语,几乎是敷衍了事。更别提并行流(Parallel Stream)的使用场景和潜在的陷阱分析了,书中完全没有提及在高负载多核环境下,不恰当使用并行流反而可能导致性能下降的案例研究。我需要的是那种能够直击痛点,能用在实际工作中解决复杂问题的代码片段和架构思路,而不是教科书式的定义复述。这本书给我的感觉是,作者可能在十年前写完了大部分内容,之后只是机械地修补了一下语法错误,但核心的技术视野明显没有跟上行业的发展步伐。
这本号称“XXX技术精要”的书,拿到手里我就感觉有点不对劲。封面设计得中规中矩,甚至可以说是有点过时了,那种厚重的感觉,让我联想到很多年前那些动辄上千页的参考手册。我原本期待能看到一些关于现代并发编程的新视角,或者至少是对JVM底层原理更深入的剖析。然而,翻开目录,我发现它更多地在堆砌那些已经被嚼烂了的基础知识点。什么变量声明、基本数据类型、简单的流程控制,这些内容占了前三分之一的篇幅,简直就像是为零基础的初学者准备的入门教材。我费了好大力气才找到几章关于设计模式的内容,但讲解方式极其刻板,全是理论的堆砌,鲜有高质量的代码示例来支撑,更别提结合实际业务场景进行分析了。读下来最大的感受是“空洞”,信息密度极低,很多本可以一句话说清楚的概念,非要啰嗦地写上好几段,读起来非常拖沓乏味,让人提不起精神去深入研究。
这本书在代码示例的使用上,简直是反面教材的典范。所有的代码片段都过于“理想化”,像是精心构造的沙箱环境中的演示,与真实世界的混乱和复杂性完全脱节。例如,当涉及到集合框架时,书中仅仅展示了 `ArrayList` 和 `HashMap` 的基本CRUD操作,却从未深入探讨过在极端数据量下,它们内部数据结构动态扩容的实际性能开销,也没有对比过 `ConcurrentHashMap` 在高并发场景下的细微差别及其锁的粒度设计。我尝试着将书中的一些示例代码复制到我的项目中进行微调测试,结果发现很多代码块缺少必要的边界条件检查和日志记录机制,如果直接用于生产环境,无疑是埋下了巨大的隐患。一个好的技术书籍应该引导读者思考“为什么”以及“在什么情况下”使用某种技术,而不是仅仅展示“如何做”,而这本书显然在这方面做得非常不到位,读完后感觉技术能力原地踏步。
仅有perl是不够的,Let's look at the object, Java!!!
仅有perl是不够的,Let's look at the object, Java!!!
有很多和 c++ 的比较,Collection 那章 写的不错。评注还行。
有很多和 c++ 的比较,Collection 那章 写的不错。评注还行。
有很多和 c++ 的比较,Collection 那章 写的不错。评注还行。