具体描述
编辑推荐
视频讲解 49小时大型同步视频讲解(光盘中),把市场价值1000元的名师课堂搬回家;
案例教学 全书有506个实例、6大案例源程序分析,用实例、案例学习最快捷;
实战应用 以实战应用、就业实践为目的,拒绝纸上谈兵;
名师编著 由具有多年软件开发和培训经验、著有教材4部、北京魔乐科技实训中心知名实战派讲师李兴华编著,确保图书的实战性及优良品质;
配套完善 网站或者光盘提供了电子教案、教学课件、习题答案、交流论坛、源程序等大量学习资源。赠送Oracle数据库学习视频;
内容简介
《Java核心技术精讲》是一本实战型的、完全以自学为主的Java核心入门类图书。全书内容包括Java简介、Java基础语法、面向对象、异常的捕获及处理、包及访问控制权限、Java新特性、多线程、常用类库、Java IO操作、网络编程、类集框架、Java数据库编程、DAO设计模式、Eclipse开发工具。
作者简介
李兴华,北京魔乐科技软件实训中心(MLDN)教学总监,首席讲师,Java培训讲师,JavaEE高端培训讲师,赛迪网职业特约讲师,51CTO知名专家。8年软件开发经验,8年高端培训经验,先后为60多家大中型企业做过培训,在Java以及目前的3G/4G培训方面享有很高的知名度。
内页插图
目录
第1部分 Java基础知识
第1章 Java简介
视频讲解:2小时38分钟
1.1 Java概述
1.2 JDK的安装与配置
1.3 第一个Java程序:永远的“Hello World !”
1.4 第一个程序解释
1.5 CLASSPATH
1.6 本章小结
1.7 实践与练习
1.7.1 简答题
1.7.2 编程题
第2章 Java基础语法
视频讲解:2小时23分钟
2.1 注释
2.2 标识符和关键字
2.3 数据类型
2.3.1 整型(byte、short、int、long)
2.3.2 浮点型(float、double)
2.3.3 字符型(char)
2.3.4 布尔型(boolean)
2.3.5 字符串(String)
2.4 运算符
2.4.1 三目运算符
2.4.2 逻辑运算符
2.4.3 位运算符
2.5 程序结构
2.5.1 选择(分支)结构
2.5.2 循环结构
2.6 方法
2.6.1 方法的基本定义
2.6.2 方法的重载
2.6.3 递归调用
2.7 习题讲解
2.8 本章小结
2.9 实践与练习
2.9.1 简答题
2.9.2 编程题
第2部分 面向对象
第3章 面向对象
视频讲解:20小时
3.1 面向对象简介
3.2 类与对象
3.2.1 类与对象的基本概念
3.2.2 类与对象的定义
3.2.3 引用传递的初步深入
3.3 封装性初步
3.4 构造方法
3.5 匿名对象
3.6 简单Java类
3.7 数组
3.7.1 数组的基本概念
3.7.2 数组的静态初始化
3.7.3 数组与方法
3.7.4 与数组有关的操作方法
3.7.5 二维数组
3.7.6 对象数组
3.7.7 习题讲解
3.8 String类
3.8.1 String类的两种对象实例化方式
3.8.2 字符串比较
3.8.3 字符串常量是String类的匿名对象
3.8.4 String类的两种实例化方式的区别
3.8.5 字符串的内容一旦声明则不可改变
3.9 String类的常用方法
3.9.1 字符串与字符
3.9.2 字符串与字节
3.9.3 字符串比较
3.9.4 字符串查找
3.9.5 字符串替换操作
3.9.6 字符串截取
3.9.7 字符串拆分
3.9.8 其他方法
3.9.9 习题讲解
3.10 this关键字
3.10.1 “this.属性”表示本类属性
3.10.2 调用本类方法
3.10.3 this表示当前对象
3.11 引用传递的三道范例
3.12 对象比较
3.13 static关键字
3.13.1 使用static定义属性
3.13.2 使用static定义方法
3.13.3 理解主方法
3.13.4 static关键字的使用
3.14 代码块
3.14.1 普通代码块
3.14.2 构造块
3.14.3 静态块
3.15 思考题
3.16 内部类
3.16.1 内部类的基本概念
3.16.2 使用static定义内部类
3.16.3 在方法中定义内部类
3.17 引用与类抽象的实际作用
3.18 核心思考题
3.19 单向链表
3.19.1 链表的基本概念
3.19.2 链表的基本雏形
3.19.3 开发可用链表
3.19.4 保存多个对象
3.20 继承性
3.20.1 继承问题的引出
3.20.2 继承的实现
3.20.3 继承的限制
3.21 覆写
3.21.1 方法的覆写
3.21.2 属性的覆盖
3.22 核心思考题
3.23 final关键字
3.24 构造方法私有化
3.25 多例设计模式
3.26 多态性
3.27 抽象类
3.27.1 抽象类的基本概念
3.27.2 抽象类的应用——模板设计模式
3.28 接口
3.28.1 接口的基本概念
3.28.2 使用接口定义标准
3.28.3 接口的实际作用——工厂设计模式(Factory)
3.28.4 接口的实际作用——代理设计模式(Proxy)
3.28.5 抽象类和接口的区别
3.29 匿名内部类
3.30 Object类
3.30.1 取得对象信息:toString()
3.30.2 对象比较:equals()
3.30.3 使用Object接收所有的引用数据类型
3.31 包装类
3.31.1 装箱与拆箱
3.31.2 数据转型
3.32 思考题
3.33 本章小结
3.34 实践与练习
3.34.1 简答题
3.34.2 编程题
第4章 异常的捕获及处理
视频讲解:1小时13分钟
4.1 认识异常
4.2 处理异常
4.3 异常的处理流程
4.4 throws关键字
4.5 throw关键字
4.6 异常处理的标准格式
4.7 RuntimeException
4.8 断言:assert
4.9 自定义异常类
4.10 本章小结
4.11 实践与练习
4.11.1 简答题
4.11.2 编程题
第5章 包及访问控制权限
视频讲解:53分钟
5.1 包的定义及使用
5.1.1 包的定义
5.1.2 包的导入
5.1.3 jar命令
5.2 Java的常用包
5.3 四种访问权限
5.4 命名规范
5.5 本章小结
5.6 实践与练习
5.6.1 判断题
5.6.2 简答题
第6章 Java新特性
视频讲解:1小时56分钟
6.1 可变参数
6.2 foreach输出
6.3 静态导入
6.4 JDK 1.5三大主要新特性——泛型
6.4.1 泛型的引出
6.4.2 通配符
6.4.3 泛型接口
6.4.4 泛型方法
6.5 JDK 1.5三大主要新特性——枚举
6.5.1 枚举的基本概念
6.5.2 枚举的其他定义
6.6 JDK 1.5三大主要特性——Annotation
6.7 本章小结
6.8 实践与练习
6.8.1 简答题
6.8.2 编程题
第3部分 JAVA SE基础知识
第7章 多线程
视频讲解:2小时11分钟
7.1 进程与线程
7.2 多线程的实现
7.2.1 继承Thread类实现多线程
7.2.2 利用Runnable接口实现多线程
7.2.3 Thread类和Runnable接口实现多线程的区别
7.2.4 线程的操作状态
7.3 线程的主要操作方法
7.3.1 线程的命名和取得
7.3.2 线程的休眠
7.3.3 线程的优先级
7.4 线程的同步与死锁
7.4.1 同步问题
7.4.2 死锁
7.5 线程间的经典操作案例
7.5.1 解决数据错位问题:依靠同步就可以解决
7.5.2 解决数据的重复设置和重复取出
7.6 线程的生命周期
7.7 本章小结
7.8 实践与练习
7.8.1 简答题
7.8.2 编程题
第8章 常用类库
视频讲解:4小时22分钟
8.1 StringBuffer类
8.2 Runtime类
8.3 System类
8.4 日期操作类
8.4.1 日期时间类:java.util.Date
8.4.2 日期格式化操作类:SimpleDateFormat
8.5 随机数类:Random
8.6 数学公式类:Math
8.7 大数字操作类
8.8 数组操作类:Arrays
8.9 比较器
8.9.1 常用比较器:Comparable
8.9.2 挽救的比较器
8.10 对象克隆
8.11 正则表达式
8.11.1 正则表达式的引出
8.11.2 常用正则匹配符号
8.11.3 String类对正则的支持
8.12 反射机制
8.12.1 认识反射
8.12.2 反射的深入应用
8.13 本章小结
8.14 实践与练习
8.14.1 简答题
8.14.2 编程题
第9章 Java IO操作
视频讲解:4小时14分钟
9.1 文件操作类:File
9.2 字节流和字符流
9.2.1 字节输出流:OutputStream
9.2.2 字节输入流:InputStream
9.2.3 字符输出流:Writer
9.2.4 字符输入流:Reader
9.2.5 字节流和字符流的区别
9.2.6 思考题
9.3 转换流
9.4 内存操作流
9.5 字符编码
9.6 打印流
9.7 System类
9.8 缓冲区操作:BufferedReader
9.9 Scanner
9.10 对象序列化
9.10.1 对象序列化的概念
9.10.2 实现序列化和反序列化
9.10.3 transient关键字
9.11 本章小结
9.12 实践与练习
9.12.1 简答题
9.12.2 编程题
第10章 网络编程
视频讲解:56分钟
10.1 网络编程简介
10.2 网络程序的基本实现
10.3 网络开发的经典模型——ECHO程序
10.4 本章小结
第11章 类集框架
视频讲解:2小时2分钟
11.1 认识类集
11.2 单值保存的最大父接口:Collection
11.3 允许重复的子接口:List
11.3.1 新的子类:ArrayList
11.3.2 旧的子类:Vector
11.4 不允许重复的子接口:Set
11.4.1 散列存放的子类:HashSet
11.4.2 排序存放的子类:TreeSet
11.4.3 关于TreeSet排序的说明
11.4.4 关于重复元素的说明
11.5 集合的输出操作
11.5.1 迭代输出:Iterator
11.5.2 双向迭代输出:ListIterator
11.5.3 废弃的接口:Enumeration
11.5.4 JDK 1.5的支持:foreach
11.6 偶对象保存:Map接口
11.6.1 新的子类:HashMap
11.6.2 旧的子类:Hashtable
11.6.3 关于Map集合的输出问题
11.6.4 关于Map中保存key的说明
11.7 Stack类
11.8 Collections类
11.9 属性操作类:Properties
11.10 本章小结
11.11 实践与练习
11.11.1 简答题
11.11.2 编程题
第12章 Java数据库编程
视频讲解:1小时41分钟
12.1 JDBC的简介
12.2 连接Oracle数据库
12.3 使用Statement操作数据库
12.3.1 使用Statement接口进行数据表的更新操作
12.3.2 使用Statement接口进行查询
12.4 预处理:PreparedStatement
12.5 批处理及事务处理
12.6 本章小结
第4部分 设计开发
第13章 DAO设计模式
视频讲解:2小时45分钟
13.1 程序分层
13.2 实例分析
13.3 准备阶段
13.3.1 VO类:负责数据的传输与包装
13.3.2 DatabaseConnection类:负责数据库连接
13.4 开发数据层
13.4.1 定义IEmpDAO接口:数据层开发标准
13.4.2 定义IEmpDAO接口的实现类
13.4.3 定义DAO工厂类
13.5 开发业务层
13.5.1 开发业务层标准
13.5.2 定义业务层标准的实现类
13.5.3 定义Service工厂类
13.6 定义测试类
13.7 本章小结
附录A Eclipse开发工具
A.1 Eclipse历史
A.2 JDT使用
A.3 JUNIT测试工具
A.4 小结
前言/序言
面向开发者的Java实践宝典:深入解析JVM、并发与设计模式 内容简介 本书旨在为广大Java开发者提供一本深度、实用且与时俱进的开发指南。我们抛开了基础语法层面的繁琐阐述,将目光聚焦于Java语言的核心机制、高级特性以及在复杂项目开发中至关重要的实践经验。通过对Java虚拟机(JVM)的深度剖析,我们帮助开发者理解代码如何在底层运行,从而优化性能、解决内存问题,并编写出更健壮的代码。同时,我们系统地讲解了Java并发编程的精髓,从多线程的基础到同步机制、线程池的应用,再到并发容器的运用,旨在让开发者能够游刃有余地应对高并发场景下的挑战。此外,本书还深入探讨了Java中常用的设计模式,将其与实际开发场景相结合,教授开发者如何运用设计模式来构建可维护、可扩展、高内聚、低耦合的优秀软件系统。 第一篇:Java虚拟机(JVM)精细解读 Java的强大之处,很大程度上源于其高效、灵活的虚拟机。本篇内容将带您深入Java虚拟机的内部世界,揭开其神秘面纱。 JVM的内存模型与垃圾回收(GC)机制: 我们将详细阐述JVM的内存区域划分,包括堆(Heap)、栈(Stack)、方法区(Method Area)、程序计数器(Program Counter)等,并深入分析对象在内存中的生命周期。在此基础上,我们将详细讲解JVM的垃圾回收算法(如标记-清除、复制、标记-整理)以及各种垃圾收集器(Serial, Parallel, CMS, G1, ZGC, Shenandoah)的工作原理、优缺点和适用场景。通过理解GC的调优参数,开发者可以有效避免内存泄漏,提升应用程序的性能和稳定性。我们将提供具体的案例分析,展示如何通过监控和分析GC日志来定位和解决内存相关问题。 JVM类加载机制: 本章将剖析Java类从被加载到内存到最终被卸载的完整过程,包括加载、链接(验证、准备、解析)和初始化三个阶段。我们将深入讲解双亲委派模型的工作原理,以及自定义类加载器的实现方式,帮助开发者理解类加载器的作用,例如在热部署、框架集成等场景下的应用。我们将通过代码示例演示类加载过程中的各种细节,以及异常情况的处理。 JVM性能调优与故障排查: 基于对JVM内存和类加载机制的理解,本章将聚焦于实际的性能调优技术。我们将介绍如何使用JVM自带的工具(如`jps`, `jstat`, `jmap`, `jstack`, `jcmd`)和第三方工具(如MAT, VisualVM, JProfiler)来监控JVM的运行状态,分析CPU占用率、内存使用情况、线程活动等。我们将通过一系列真实的性能瓶颈案例,讲解如何诊断和解决CPU飙升、响应缓慢、内存溢出等常见问题,并提供具体的调优建议,如调整JVM参数、优化代码逻辑、选择合适的GC算法等。 第二篇:Java并发编程实战 随着多核处理器的普及,并发编程已成为现代软件开发中不可或缺的一部分。本篇内容将系统地引导开发者掌握Java并发编程的核心技能。 线程的基础与创建: 我们将从Thread类和Runnable接口开始,讲解线程的创建、启动、终止以及线程的状态转换。在此基础上,我们将深入探讨线程的生命周期管理,以及join(), sleep(), wait(), notify(), notifyAll()等关键方法的用法和注意事项。我们将强调线程安全的重要性,并为后续的同步机制打下基础。 Java内存模型(JMM)与可见性、原子性、有序性: 理解Java内存模型(JMM)是编写正确并发程序的前提。本章将详细解释JMM的规范,以及它如何保证线程之间的可见性(visibility)、原子性(atomicity)和有序性(ordering)。我们将深入讲解volatile关键字的语义,以及它如何解决可见性问题。我们还将通过分析指令重排序(instruction reordering)等底层机制,帮助开发者理解并发场景下的“怪异”行为,并学会如何规避这些问题。 同步机制与锁: 本章将系统介绍Java提供的各种同步机制,从最基础的`synchronized`关键字(包括对象锁和类锁),到更强大、更灵活的`java.util.concurrent.locks`包下的Lock接口及其实现类(如ReentrantLock, ReadWriteLock)。我们将深入讲解可重入性、公平锁与非公平锁、中断响应等概念,并结合实际场景演示如何选择和使用合适的锁来保护共享资源,避免竞态条件。 并发工具类与线程池: `java.util.concurrent`包是Java并发编程的宝库。本章将精讲该包下的核心工具类,如CountDownLatch, CyclicBarrier, Semaphore, Exchanger等,并展示它们在协调多线程执行、资源控制等场景下的应用。我们还将重点讲解线程池(ExecutorService)的设计理念、创建方式、常用线程池的类型(FixedThreadPool, CachedThreadPool, ScheduledThreadPool, SingleThreadExecutor)以及线程池的参数调优,帮助开发者高效地管理线程生命周期,提升资源利用率,避免线程创建和销毁的开销。 并发容器与并发数据结构: 传统的Java集合类(如ArrayList, HashMap)在并发环境下存在线程安全问题。本章将介绍`java.util.concurrent`包下提供的线程安全集合类,如ConcurrentHashMap, CopyOnWriteArrayList, BlockingQueue等,并分析它们在不同并发场景下的性能优势和使用方法。我们将讲解CAS(Compare-And-Swap)原子操作在ConcurrentHashMap等数据结构中的应用,并对比与传统锁机制的性能差异。 线程间通信与协作: 除了共享内存和锁,线程之间还可以通过消息传递等方式进行通信和协作。本章将介绍`wait()`, `notify()`, `notifyAll()`在线程间通信中的应用,并引入更高级的并发通信模式,如管程(Monitor)以及Actor模型(通过第三方库如Akka)。我们将通过实际案例,演示如何利用这些机制来构建复杂的并发应用,如生产者-消费者模型、多线程任务分解与合并等。 第三篇:Java设计模式与代码重构 设计模式是软件工程的基石,它提供了解决常见问题的成熟方案。本篇内容将深入剖析Java中常用的设计模式,并结合代码重构,指导开发者写出高质量、易于维护的代码。 创建型模式: 我们将详细讲解单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)、原型模式(Prototype)等。通过丰富的代码示例,我们将演示这些模式的结构、适用场景,以及它们如何解决对象创建的复杂性,提高代码的灵活性和可复用性。我们将重点分析单例模式的各种实现方式及其线程安全问题,以及建造者模式在构建复杂对象时的优势。 结构型模式: 本章将深入分析适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Composite)、装饰器模式(Decorator)、外观模式(Facade)、享元模式(Flyweight)、代理模式(Proxy)等。我们将探讨这些模式如何组织类和对象,以实现灵活的组合和松耦合,例如装饰器模式如何动态地给一个对象添加额外的职责,代理模式如何控制对象的访问。我们将通过实际项目中的应用场景,展示这些模式如何简化代码,提升系统的可扩展性。 行为型模式: 本章将重点讲解责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式(State)、策略模式(Strategy)、模板方法模式(Template Method)、访问者模式(Visitor)。我们将阐述这些模式如何描述对象之间的通信算法和责任分配,例如观察者模式在事件驱动开发中的广泛应用,策略模式如何实现算法的动态切换。我们将通过实例,演示这些模式如何使代码更易于理解、修改和扩展。 设计模式在实际项目中的应用与权衡: 理论结合实践,本章将引导开发者将设计模式融会贯通。我们将分析大型Java项目(如Web框架、GUI应用、分布式系统)中设计模式的应用实例,并讨论在不同场景下选择哪种模式的权衡。我们将强调避免“过度设计”和“滥用模式”,提倡在必要时才使用设计模式,并理解其背后的设计哲学。 代码重构与设计模式的结合: 本章将阐述代码重构的重要性,以及如何利用设计模式来改进现有代码。我们将讲解常见的重构技术,如提取方法、替换继承关系、封装字段等,并展示如何通过应用设计模式来解决代码中的坏味道(code smell),如长方法、过大的类、重复代码等。我们将通过“重构前”和“重构后”的对比,直观地展示设计模式在提升代码质量、可读性和可维护性方面的价值。 本书的编写风格注重逻辑清晰、讲解深入浅出,并配以大量的代码示例和实践建议,力求为每一位希望在Java开发领域不断精进的开发者提供宝贵的参考和指导。通过对JVM、并发和设计模式的系统学习,您将能够构建出更高效、更稳定、更易于维护的Java应用程序。