第1章Java开发前奏
1.1Java虚拟机及Java的跨平台原理
1.2Java开发环境的搭建
1.2.1环境变量的介绍
1.2.2如何查看系统环境变量
1.2.3如何设置系统环境变量
1.3体验Java编程的过程
脚下留心:运行Java程序的注意事项
1.4classpath的设置
脚下留心:配置Java环境变量时应忌讳的问题
多学两招:1.如何快速得到路径字符串
2.如何在命令行窗口中拷贝和粘帖
3.如何在命令行窗口中快速进入某个目录
1.5有效利用Java的文档帮助
1.6JVM(虚拟机)的运行过程
1.7垃圾回收器
1.8反编译工具的介绍
1.8.1JAD
1.8.2FrontEnd
第2章Java编程基础
2.1Java基本语法格式
2.1.1Java代码的落脚点
2.1.2Java是严格区分大小写的
2.1.3Java是一种自由格式的语言
脚下留心:1.字符串的断行问题
2.分号(,)问题
2.1.4Java程序的注释
脚下留心:程序注释中应注意的一些问题
不得不说:养成良好的编程风格
2.1.5Java中的标识符
2.1.6Java的关键字
2.1.7Java中的常量
多学两招:特殊字符的表示
2.2变量及变量的作用域
2.2.1变量的概念
2.2.2Java的变量类型
独家见解:数值所代表的意义
2.2.3注意变量的有效取值范围
2.2.4基本数据类型之间的转换
独家见解:轻松理解类型转换
2.2.5表达式的数据类型自动提升
多学两招:字符串中的加号(+)问题
2.2.6变量的作用域
脚下留心:Java与C/C++的区别
2.2.7局部变量的初始化
2.3函数与函数的重载
2.3.1函数
独家见解:如何理解函数返回值类型为void的情况
2.3.2函数的参数传递过程
多学两招:形式参数的作用
2.3.3函数的重载
2.4Java中的运算符
2.4.1算术运算符
多学两招:两个经典算法
2.4.2赋值运算符
脚下留心:"=="运算符的注意事项
2.4.3比较运算符
2.4.4逻辑运算符
2.4.5位运算符
多学两招:移位的特殊功能
脚下留心:使用移位运算符应注意的事项
2.4.6运算符的优先级
2.5程序的流程控制
2.5.1顺序结构
2.5.2if条件语句
多学两招:一种更简单的写法
2.5.3switch选择语句
2.5.4while循环语句
脚下留心:while表达式的注意事项
2.5.5dowhile语句
2.5.6for循环语句
多学两招:无限循环
2.5.7break与continue语句
2.6数组
2.6.1数组的基本概念
多学两招:内存分配的奥秘
2.6.2数组的静态初始化
2.6.3使用数组时要注意的问题
2.6.4多维数组
2.6.5一些与数组操作相关的函数
第3章面向对象(上)
3.1面向对象的概念
3.1.1面向过程
3.1.2面向对象
3.2类与对象
3.2.1类的定义
脚下留心:成员变量与局部变量同名的问题
3.2.2对象的产生与使用
3.2.3对象的比较
多学两招:怎样比较两个数组对象的内容是否相等
3.2.4匿名对象
3.2.5实现类的封装性
指点迷津:良好的封装
多学两招:Private的试验
3.3构造函数
3.3.1构造函数的定义与作用
脚下留心:如何理解构造函数的返回值
3.3.2构造方法的重载
3.3.3构造方法的一些细节
3.4this引用句柄
3.5与垃圾回收有关的知识
3.5.1finalize方法
3.5.2System.gc的作用
3.6函数的参数传递
3.6.1基本数据类型的参数传递
3.6.2引用数据类型的参数传递
3.7Static关键字
3.7.1静态变量
3.7.2静态方法
3.7.3静态代码块
3.7.4单态设计模式
3.7.5理解main方法的语法
3.8内部类
3.8.1类中定义的内部类
指点迷津:何时使用内部类
3.8.2内部类如何被外部引用
3.8.3方法中定义的内部类
3.9使用Java的文档注释
第4章面向对象(下)
4.1类的继承
4.1.1继承的特点
4.1.2子类对象的实例化过程
4.1.3覆盖父类的方法
4.1.4final关键字
多学两招:Java中的常量
4.2抽象类与接口
4.2.1抽象类
4.2.2接口(interface)
4.3对象的多态性
4.3.1对象的类型转换
4.3.2Object类
4.3.3面向对象的多态性
独家见解:接口的概念
4.3.4匿名内部类
4.4异常
4.4.1了解异常
4.4.2try…catch语句
脚下留心:发挥by…catch语句的作用
4.4.3throws关键字
4.4.4自定义异常与Throw关键字
多学两招:如何实现程序的跳转
4.4.5finally关键字
4.4.6异常的一些使用细节
4.4.7Java引入异常的好处
4.5包
4.5.1package语句及应用
指点迷津:1.类名相同不等同于同一类
2.同名包的目录位置
脚下留心:不要被旧文件所迷惑
4.5.2import语句及应用
多学两招:父包和子包之间的关系
4.5.3JDK中的常用包
4.6访问控制
4.6.1类成员的访问控制
4.6.2类的访问控制
多学两招:类名与文件名
4.6.3Java的命名习惯
4.7使用jar文件
4.7.1jar文件包
4.7.2jar命令详解
4.7.3使用WinRAR对,jar文件进行查看
指点迷津:1.注意jar文件的相对路径问题
2.快速查看jar包中的类
第5章多线程
5.1如何创建与理解线程
5.1.1了解线程概念
5.1.2用Thread类创建线程
5.1.3使用Runnable接口创建多线程
5.1.4两种实现多线程方式的对比分析
5.1.5后台线程与联合线程
5.1.6多线程在实际中的应用
5.2多线程的同步
5.2.1线程安全问题
5.2.2同步代码块
5.2.3同步函数
5.2.4代码块与函数间的同步
多学两招:同步的注意事项
5.2.5死锁问题
5.3线程间的通信
5.3.1问题的引出
5.3.2问题如何解决
5.4线程生命的控制
5.4.1线程的生命周期
5.4.2如何控制线程的生命
第6章JavaAPl
6.1理解API的概念
6.2工具软件的介绍与使用
6.3String类和StringBuffer类
脚下留心:内容相同,对象不同
6.4基本数据类型的对象包装类
6.5集合类
多学两招:对List接口的对象进行排序
6.6Hashtable与Properties类
6.7System类与Runtime类
6.7.1System类
多学两招:检测程序段运行的时间
6.7.2Runtime类
6.8Date与Calendar,DateFormat类
6.9Math与Random类
6.10学习API的方法
第7章IO/输入输出
7.1File类
7.2RandomAccessFile类
7.3节点流
7.3.1理解流的概念
7.3.2InputStream与OutputStream
指点迷津:1.如何选择输入与输出
2.为什么要调用close方法
多学两招:IO中的缓冲区
7.3.3FilelnputStream与FileOutputStream
7.3.4Reader与Writer
独家见解:隐含的缓冲区
7.3.5PipedlnputStream与PipedOutputStream
独家见解:管道流类的作用
7.3.6ByteArraylnputStream与ByteArrayOutputStream
7.3.7IO程序代码的复用
7.4过滤流与包装类
7.4.1理解包装类的概念与作用
7.4.2BufferedlnputStream与BufferedOuputStream
脚下留心:使用mark时应考虑的问题
7.4.3DatalnputStream与DataOutputStream
7.4.4PrintStream
指点迷津:何谓格式化输出
7.4.5ObjectlnputStream与ObjectOutputStream
指点迷津:如何处理字符乱码问题
7.4.6字节流与字符流的转换
7.4.7IO包中的类层次关系图
7.5IO中的高级应用
7.5.1字符集的编码问题
指点迷津:如何处理字符乱码问题
7.5.2Decorator设计模式
7.5.3Java虚拟机读写其他进程的数据
多学两招:提高程序的运行效率
第8章图形用户界面GUI(一)
8.1初识AWT
8.2AWT线程
8.3AWT事件处理
8.3.1事件处理机制
8.3.2用事件监听器处理事件
指点迷津:同一事件源的不同表示类型
8.3.3事件适配器
8.3.4事件监听器的匿名内置类实现方式
8.3.5事件处理的多重运用
8.3.6高级事件处理
8.4GUI组件上的图形操作
8.4.1Graphics类
指点迷津:如何打印字符文本
独家见解:JDK的失误
8.4.2组件重绘
8.4.3图像操作
8.4.4双缓冲的技术
第9章图形用户界面GUI(二)
9.1常用AWT组件
9.1.1Component类
9.1.2Canvas
9.1.3Checkbox
9.1.4Choice
9.1.5菜单
9.1.6Container类
9.1.7Window类
9.1.8Dialog
9.1.9Panel类
9.1.10ScrollPane类
9.2布局管理器
9.2.1了解布局管理
9.2.2BorderLayout
9.2.3FlowLayout
9.2.4GridLayout
9.2.5CardLayout
9.2.6GridBagLayout
9.2.7取消布局管理器
9.3Swing
9.3.1Swing介绍
9.3.2从AWT过渡到Swing
9.3.3JFrame
9.3.4JScrollPane
9.3.5对话框
9.3.6计算器界面的程序实现
9.3.7BoxLayout布局管理器
第10章Applet
10.1浏览器怎样显示网页
10.2浏览器处理网页脚本代码的过程
10.3浏览器怎么处理Applet
10.4Applet类及其方法
指点迷津:destroy()与finalize()的区别
10.5一个显示动画的Applet的程序
10.5.1URL类
10.5.2update方法
多学两招:学会容器与插件的设计思想
10.6关于Applet的一些细节
10.6.1Applet的运行环境
10.6.2Applet程序中如何使用控制台输出
10.6.3Applet程序中需要注意的问题
10.6.4Applet标记
脚下留心:参数名的大小写问题
10.6.5OBJECT标记
脚下留心:使用HTMLConverter工具的注意事项
10.7验证Applet对象在客户端如何存在
第11章网络编程
11.1网络编程的基础知识
11.1.1TCP/IP网络程序的IP地址和端口号
11.1.2UDP与TCP
11.1.3Socket
11.2Java编写UDP网络程序
11.2.1DatagramSocket
11.2.2DatagramPacket
11.2.3InetAddress
11.2.4最简单的UDP程序
指点迷津:UDP数据的发送原理
多学两招:中文信息的处理
11.2.5用UDP编写聊天程序
11.3Java编写TCP网络程序
11.3.1ServerSocket
11.3.2Socket
11.3.3简单的TCP服务器程序
指点迷津:TCP程序的运行
多学两招:使用teinet测试TCP客户端程序
11.3.4完善的TCP服务器程序模型
指点迷津:服务器回送结果与发送字符不一致
11.3.5TCP客户端程序
多学两招:利用netstat命令,查看程序使用的端口号
指点迷津:1.怎样理解应用程序协议和网络通信协议的关系
2.怎样区分ASP.JSP与网络编程的概念