《Java核心技术》


简介

《Java核心技术》一直以来都是Java的经典教材,基于Java SE8展开了深入浅出的介绍。整个系列分为两本:《Java核心技术 卷Ⅰ-基础知识》、《Java核心技术 卷Ⅱ-高级特性》。时至今日,Java的API已经超过4000个类,可以覆盖业务开发的方方面面。


卷Ⅰ-基础知识

  • CH1 Java程序设计概述
    概述了Java与其他编程语言不同的性能。解释这种语言的设计初衷,以及在哪些方面达到了预期的效果。然后,简要叙述了Java诞生和发展的历史。这一章的内容不求甚解的看就可以,无需深入。

  • CH2 Java程序设计环境
    详细论述了如何下载和安装JDK,以及本书的程序示例。然后,通过编译和运行3个典型的Java程序(控制台程序、图形应用程序、applet),指导读者使用简易的JDK、可启用Java的文本编辑器及一个Java IDE。这一章主要学习如何安装Java,并配置IDE开发环境。

  • CH3 Java的基本程序设计结构
    这一章涉及的基础知识有变量、循环以及简单的函数。对于C或者C++程序员来说,学习这一章的内容将会感觉一帆风顺,因为这些语言特性的语法本质上与C语言相同。对于没有C语言程序设计背景,但使用过其他程序设计语言(如VB)的程序员来说,仔细的阅读这一章是有必要的。

  • CH4 对象与类
    面向对象程序设计OOP,是当今程序设计的主流,而Java是一种完全面向对象的语言。第4章将介绍面向对象的两个基本成分-封装,以及Java语言实现封装的机制,即类与方法。除了Java语言规则之外,还对如何完成合理的OOP设计给出了忠告。最后,介绍奇妙的javadoc工具,它将代码注释转换为一组包含超链接的网页。熟悉C++的程序员可以快速的浏览这一章,而没有面向对象程序设计背景的程序员,在学习Java之前,应先花一些时间时间了解OOP的有关概念。

  • CH5 继承
    类与封装,仅仅是OOP的一部分。这一章将介绍另一部分——继承。继承使程序员可以实现所有的类,并根据需要进行修改。这是Java程序设计中的一个基本技术。Java中的继承机制与C++的继承机制十分相似。C++程序员只需关注两种语言的不同之处即可。

  • CH6 接口、Lambda表达式与内部类
    这一章展示了如何使用Java的接口。接口可以让你的理解超越第5章的简单继承模型。掌握接口可以充分获得Java的完全的面向对象程序设计能力。介绍接口之后,我们将转而介绍啦,lambda表达式,这是一种简洁的方法,用来表述可以在以后某个时间点执行的代码块。本章还将介绍Java的一个有用的技术特性——内部类。

  • CH7 异常、断言和日志
    这一章讨论Java的一种健壮机制——异常处理(exception handling),用于处理可正常运行程序可能出现意外的情况。异常提供了一种将正常处理代码与错误处理代码分开的有效手段。当然,即使程序能够处理所有异常条件,仍然有可能无法按照预计的方式工作。这一章的后半部分将给出大量实用的调试技巧。

  • CH8 泛型程序设计
    这一章介绍泛型设计程序。泛型设计程序可以让程序更可读、更安全。我们会展示如何使用强类型机制,而舍弃不安全的强制类型转换,以及如何处理与旧版本Java兼容所带来的的复杂问题。

  • CH9 集合
    这一章套路的是Java平台的集合框架。如果希望收集多个对象,并在以后获取这些对象,就应当使用集合,而不要简单的把这些元素放在一个数组中,这是这种情况下最适用的做法。这一章会介绍如何充分利用内建的标准集合。

  • CH10 图形程序设计
    这一章开始介绍GUI程序设计,讨论如何建立窗口、如何在窗口中绘图、如何利用几何图形绘图、如何采用多种字体格式化文本,以及如何显示图像。但是目前的技术主流,Java更多的是用于BS架构的Web开发,因此这一部分内容尽管还有使用的空间,但大体上已经脱离了时代,无需阅读了。总的来说,这一章也没有学习的意义。

  • CH11 事件处理
    这一章将详细讨论抽象窗口工具包(abstract window toolkit,AWT)的事件模型。你会看到如何编写代码来响应事件,如鼠标点击事件或按键事件。同时,你还会看到如何处理基本的GUI元素,如按钮和面板。总的来说,这一章也没有学习的意义。

  • CH12 Swing用户界面组件
    这一章将详细讨论Swing GUI工具包。Swing工具包允许建立跨平台的图像用户界面。在这里你会了解这种按钮、文本组件、边框、滑块、列表框、菜单以及对话框的有关内容。不过,一些更高级的组件会在卷2中讨论。同上所示,CH10、CH11、CH12这三章目前在生产中用的很少,可以直接跳过。

  • CH13 部署Java应用程序
    这一章将介绍如何将程序部署为应用或者applet。在这里我们会描述如何将程序打包在JAR文件中,以及如何使用Java Web Start和applet机制在Internet上发布应用。另外还会解释Java程序部署之后如何存储和获取配置信息。由于applet已经没人用了,因此这一章也不需要看了。

  • CH14 并发
    这一章讨论并发,并发能够让程序任务并行执行。在当今这个时代,大多数处理器都有多个内核,你往往希望这些内核都在工作,并发是Java技术的一个重要而且令人振奋的应用。


卷Ⅱ-高级特性

  • CH1 流与文件
    这一章主要讲述输入输出处理。在Java中,所有I/O都是通过所谓“流”来处理的。流使你可以按照统一的方式来处理与各种数据源之间的通信,例如文件、网络连接或内存块。我们对各种读入器和写入器类进行了详细的讨论,它们使得对Unicode的处理变得很容易。我们还向你展示了:如何使用对象序列化机制,从而使保存和加载对象变得容易而方便,及其背后的原理。最后,我们讨论了Java SE 7的正则表达式和NIO2类库,它们使某些通用操作变得非常便捷,例如读取文件中的所有行。

  • CH2 XML
    这一章主要介绍XML,介绍怎样解析XML文件,怎样生成XML以及怎样使用XSL转换。在一个实用示例中,我们将展示怎样在XML中指定Swing窗体的布局。我们还讨论了XPath API,它使得“在XML的干草堆中寻找绣花针”变得更加容易。

  • CH3 网络
    这一章介绍网络API。Java使复杂的网络编程工作变得很容易实现。我们将介绍怎样创建连接到服务器上,怎样实现你自己的服务器,以及怎样创建HTTP连接。

  • CH4 数据库编程
    这一章介绍数据库编程,重点讲解JDBC,即Java数据库连接API,这是用于将Java程序与关系数据库进行连接的API。我们将介绍怎样通过使用JDBC API的核心子集,编写能够处理实际的数据库日常操作失误的使用程序。如果要完整介绍JDBC API的功能,可能需要编写一本很厚的书才行。最后,我们简要介绍了层次数据库,探讨了一下JNDI-Java命名及目录接口,以及LDAP-轻量级目录访问协议。

  • CH5 国际化
    这一章介绍一个极为重要、且会不断提升的特性——国际化。Java编程语言是少数几种一开始就被设计为可以处理Unicode的语言之一,不过Java平台的国际化支持则走的更加深远。因此,你可以对Java应用程序进行国际化,使得他们不仅可以跨平台,而且可以跨越国界。例如,我们会展示怎样编写一个退休金计算器的Applet,对它可以根据本地浏览器的情况使用英语、德语或者汉语进行浏览。

  • CH6 高级Swing
    这一章介绍Swing的高级特性,介绍了重要、复杂的树形构件和表格构件。随后我们介绍了编辑面板的基本用法,“多文档”界面的Java实现、在多线程程序中用到的进度指示器,以及诸如闪屏和支持系统托盘这样的“桌面集成特性”。我们仍着重介绍在实际编程中可能遇到的最为有用的构件,因为对Swing类库进行百科全书般的介绍,需要占据非常大的篇幅,并且只有专门的开发人员才会感兴趣。实际上,Swing已经多年没有更新,几乎没有人在生产中会使用;此外,桌面开发从来也不是Java的强项,因此这一章的内容已经可以不再涉及了。

  • CH7 高级AWT
    这一章介绍Java 2D API,你可以用它来创建实际的图形和特殊的效果。该章还介绍了抽象窗口操作工具包AWT的一些高级特性,这部分内容看起来过于专业,不适合在基本特性中介绍。但这些技术还是应该成为每一个编程人员工具包的一部分。这些特性包括打印、用于剪切粘贴、拖放的API。事实上,AWT伴随着Swing一起没落了,因此这一章的内容都可以略过。

  • CH8 JavaBean构件
    这一章介绍了用于Java平台的构建API-JavaBean,你将会看到怎样去编写自己的Bean,以及其他编程人员,如何在集成环境中对它们进行操作。最后我们展示怎样使用JavaBean的持久性,以某种与对象序列化不同的适用于长期存储的格式,来存储自己的数据。

  • CH9 安全
    这一章介绍Java的安全模型。Java平台一开始就是基于安全而设计的,这一章会深入内部,查看这种设计是怎样实现的。我们将编写用于特殊应用的类加载器,以及安全管理器。然后介绍允许使用消息、代码签名、授权以及认证和加密等重要特性的安全API。最后,我们用一个使用aes和rsa加密算法的实例进行了总结。

  • CH10 脚本、编译、与注解处理
    这一章讨论了三种处理代码的技术。脚本机制和编译器API允许程序去调用一些脚本语言编写的代码,例如JavaScript和Groovy,并且允许程序去编译Java代码。可以使用注解向Java程序中添加任意信息。我们将展示注解处理器怎么样在源代码级别,或者类文件级别上收集这些注解,以及怎样运用这些注解,来影响运行时的类行为。注解只有在工具的支持下才有用,因此,我们希望我们的讨论能够帮助你根据需要选择有用的注解处理工具。

  • CH11 分布式对象
    这一章介绍分布式对象。我们详细介绍了RMI远程方法调用,这个API可以让你运行分布在多台机器上的Java对象。

  • CH12 本地方法
    这一章介绍本地方法。这个功能可以让你调用Windows API这样的特殊机制,以编写各种方法。很显然,这种方法具有争议:使用本地方法,那么Java的跨平台特征则会消失。但是,每个为特定平台编写Java应用的开发者都应该了解这些技术。有时,当你与不支持Java的设备进行交互时,为了你的目标平台,你可能需要使用操作系统的API。我们将通过使用Java来访问Windows注册表的API,来展示这一点。


关键字

abstract  // 抽象类或抽象方法
assert  // 用来查找内部程序错误
boolean  // 基本数据类型:布尔值
break  // 跳出一个switch,或跳出循环
byte  // 基本数据类型:byte
case  // switch语句的分支
catch  // 捕获异常的语句块
char  // 基本数据类型:Unicode字符
class  // 定义一个类
const  // 保留字,未使用
continue  // 在循环末尾继续
default  // switch语句的缺省子句
do  // do/while循环最前面的语句
double  // 基本数据类型:双精度浮点数类型
else  // if语句的else子句
enum  // 枚举类型
extends  // 指定一个类的父类
final  // 一个常量,或不能覆盖的一个类或方法
finally  // try/catch异常捕获语句块中,总会执行的部分
float  // 基本数据类型:单精度浮点数类型
for  // for循环
goto  // 保留字,暂未使用
if  // if条件语句
implements  // 指定一个类实现的接口
import  // 导入一个包
instanceof  // 测试一个对象是否为一个类的实例
int  // 基本数据类型:int类型,32位整数
interface  // 一个抽象类型,其中包含可以由类实现的方法
long  // 基本数据类型:long类型,64位长整数
native  // 由宿主系统实现的一个方法
new  // 分配一个新对象
null  // 空引用;技术上来说,null是一个直接量,而不是关键字
package  // 包含类的一个包
private  // 该类或变量只能由该类的方法,在内部访问
protected  // 该类或变量只能由该类、其子类以及同一个包中的其他类的方法访问
public  // 该类或变量可以由所有类的方法访问
return  // 从一个方法返回
short  // 基本数据类型:short类型,16位整数
static  // 该方法或变量是该类特有的,而不属于这个类的对象
strictfp  // 对浮点数计算使用严格的规则
super  // 超类对象或构造函数
switch  // switch选择语句
synchronized  // 对线程而言是原子的方法或代码块
this  // 当前类的一个方法或构造函数的隐含参数
throw  // 抛出一个异常
throws  // 一个方法可能抛出的异常
transient  // 标志非永久的数据
try  // 捕获异常的代码块
void  // 指示一个方法不返回任何值
volatile  // 确保一个字段可以由多个线程访问
while  // while循环
在软件设计里到处都是模式,框架。有次朋友问什么是模式?我也在学习中,就我的学习经验,给出以下小结。(注意:个人观点,仅供参考,欢迎指正。)??1.什么是模式???模式,即pattern。其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是模式。??Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。??模式有不同的领域,建筑领域有建筑模式,软件设计领域也有设计模式。当一个领域逐渐成熟的时候,自然会出现很多模式。??什么是框架???框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。??2.为什么要用模式???因为模式是一种指导,在一个良好的指导下,有助于你完成任务,有助于你作出一个优良的设计方案,达到事半功倍的效果。而且会得到解决问题的最佳办法。??为什么要用框架???因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。??框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。??软件为什么要分层???为了实现“高内聚、低耦合”。把问题划分开来各个解决,易于控制,易于延展,易于分配资源…总之好处很多啦:)。??3.以下所述主要是JAVA,J2EE方面的模式和框架:??常见的设计模式有什么???首先,你要了解的是GOF的《设计模式--可复用面向对象软件的基础》一书(这个可以说是程序员必备的了),注意:GOF不是一个人,而是指四个人。它的原意是Gangs Of Four,就是“四人帮”,就是指此书的四个作者:Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides。这本书讲了23种主要的模式,包括:抽象工厂、适配器、外观模式等。??还有其他的很多模式,估计有100多种。??软件设计模式太多,就我的理解简单说一下最常见的MVC模式。??MVC模式是1996年由Buschmann提出的:??模型(Model):就是封装数据和所有基于对这些数据的操作。??视图(View):就是封装的是对数据显示,即用户界面。??控制器(Control):就是封装外界作用于模型的操作和对数据流向的控制等。??另外:??RUP(Rational Unified Process)软件统一过程,XP(Extreme Programming)极端编程,这些通常被叫做“过程方法”,是一种软件项目实施过程的方法论,它是针对软件项目的实施过程提出的方法策略。也是另一个角度的模式。??4.常见的JAVA框架有什么???WAF:??全称:WEB APPLICATION FRAMEWORK??主要应用方面:EJB层,(WEB层也有,但是比较弱)。??主要应用技术:EJB等??出处:http://java.sun.com/blueprints/code/index.html??简述:这是SUN在展示J2EE平台时所用的例子PetStore(宠物商店系统)里面的框架。是SUN蓝皮书例子程序中提出的应用框架。它实现了 MVC和其他良好的设计模式。SUN的网站上有技术资料,最好下载PetStore来研究,WEBLOGIC里自带此系统,源码在beaweblogic700samplesserversrcpetstore。这是学习了解J2EE的首选框架。??免费。??Struts:??主要应用方面:WEB层。??主要应用技术:JSP,TagLib,JavaBean,XML等??出处:http://jakarta.apache.org/struts/index.html??简述:这是APACHE的开源项目,目前应用很广泛。基于MVC模式,结构很好,基于JSP。Jbuilder8里已经集成了STRUTS1.02的制作。??免费。??简述WAF+STRUTS结合的例子:WEB层用STRUTS,EJB层用WAF:??JSP(TagLib)——>ActionForm——>Action ——> Event——>EJBAction——>EJB ——>DAO——>Database JSP(TagLib)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值