Java编程从入门到精通

作者
胡平 刘涛
丛书名
普通高等教育软件工程“十三五”规划教材
出版社
人民邮电出版社
ISBN
9787115526939
简要
简介
内容简介 本书立足于新工科和工程教育,从工程应用和实践者的视角,全面系统地介绍了目前在工业界中使用*为广泛的JDK 8的全部核心知识。全书共17章,主要内容包括Java概述、Java基本类型与运算符、程序流程控制、数组、类与对象、抽象类、接口与嵌套类、GUI编程、Swing高级组件、异常与处理、I ?MO流与文件、多线程与并发、容器框架与泛型、字符串与正则表达式、反射与注解。 本书适合可作为普通高等院校、高职院校计算机及相关专业的教学用书,也可作为Java爱好者、程序开发人员的参考用书。
目录
第 1章\tJava概述\t1


1.1 JAVA语言的诞生及发展 1


1.1.1 诞生 1


1.1.2 发展历程 1


1.2 JAVA的特点及地位 2


1.2.1 特点 2


1.2.2 在主流编程语言中的地位 4


1.3 JAVA平台及版本 4


1.3.1 JRE组成 5


1.3.2 版本划分 5


1.3.3 Java程序的种类 6


1.4 JDK安装及环境配置 6


1.4.1 本书为何基于JDK 8 7


1.4.2 JDK下载与安装 7


1.4.3 JDK的结构 9


1.4.4 配置环境变量 9


1.5 第 一个JAVA程序 11


1.5.1 编辑源文件 12


1.5.2 编译源文件 13


1.5.3 运行类文件 13


1.6 程序错误与调试 14


1.6.1 语法错误 14


1.6.2 运行时错误 15


1.6.3 逻辑错误 15


1.6.4 程序调试 15


习题 16


第 2章 基本类型与运算符 17


2.1 标识符 17


2.1.1 关键字和保留字 17


2.1.2 用户标识符 18


2.1.3 命名惯例和约定 19


2.2 变量与常量 19


2.2.1 变量 19


2.2.2 常量 20


2.3 整型 20


2.3.1 整型常量 20


2.3.2 整型变量 21


2.4 浮点型 21


2.4.1 浮点型常量 22


2.4.2 浮点型变量 23


2.5 字符型 23


2.5.1 Unicode概述 23


2.5.2 字符型常量 24


2.5.3 字符型变量 25


2.6 布尔型 26


2.7 类型转换 26


2.7.1 自动转换 26


2.7.2 强制转换 27


2.8 基本类型的包装类 28


2.8.1 包装类 28


2.8.2 包装类的主要方法 28


2.8.3 自动装箱和拆箱 29


2.9 运算符与表达式 30


2.9.1 赋值运算符 31


2.9.2 算术运算符 31


2.9.3 关系运算符 33


2.9.4 条件运算符 34


2.9.5 逻辑运算符 34


2.9.6 位运算符 35


2.9.7 表达式 37


习题 37


第3章 程序流程控制 39


3.1 语句及语句块 39


3.2 分支结构 40


3.2.1 if语句 40


3.2.2 if-else语句 41


3.2.3 if及if-else的嵌套 41


3.2.4 switch语句 42


3.3 循环结构 45


3.3.1 while语句 45


3.3.2 do-while语句 46


3.3.3 for语句 47


3.3.4 break与continue语句 48


3.3.5 循环的嵌套 49


3.3.6 带标号的break与continue语句 51


3.4 案例实践1:简单人机交互 52


习题 53


第4章 数组 55


4.1 一维数组 55


4.1.1 声明一维数组 55


4.1.2 创建一维数组 55


4.1.3 访问一维数组 56


4.1.4 增强型for循环 58


4.1.5 命令行参数 58


4.2 案例实践2:约瑟夫环问题 59


4.3 二维数组 60


4.3.1 声明和创建二维数组 60


4.3.2 二维数组的存储结构 61


4.3.3 访问二维数组 61


4.4 案例实践3:K-MEANS聚类 63


习题 65


第5章 类与对象 67


5.1 面向对象概述 67


5.1.1 产生背景 67


5.1.2 相关概念 68


5.1.3 基本特性 69


5.2 类 70


5.2.1 类的定义格式 70


5.2.2 变量的作用域 72


5.3 方法 73


5.3.1 方法定义 73


5.3.2 return语句 73


5.3.3 方法调用 74


5.3.4 方法重载 75


5.3.5 构造方法 76


5.3.6 this关键字 78


5.3.7 变长参数方法 79


5.3.8 native方法 80


5.4 包 83


5.4.1 包的概念 83


5.4.2 package语句 83


5.4.3 import语句 84


5.5 常用修饰符 85


5.5.1 访问权限修饰符 85


5.5.2 final和static 86


5.6 案例实践4:单例模式 88


5.7 对象 89


5.7.1 对象的初始化 89


5.7.2 对象的引用 90


5.7.3 栈和堆 90


5.7.4 参数传递 91


5.7.5 垃圾回收 92


5.8 类的继承 94


5.8.1 继承的语法与图形化表示 94


5.8.2 super关键字 95


5.8.3 构造方法的调用顺序 95


5.8.4 方法重写与运行时多态 96


5.8.5 对象造型与instanceof 98


5.8.6 根类Object 99


5.8.7 对象的等价性 100


5.9 枚举 101


5.9.1 定义枚举类型 101


5.9.2 带构造方法的枚举 102


5.10 案例实践5:简单工厂模式 103


习题 104


第6章 抽象类、接口与嵌套类 107


6.1 抽象类 107


6.1.1 抽象方法 107


6.1.2 抽象类 107


6.2 接口 108


6.2.1 声明接口 108


6.2.2 接口继承接口 109


6.2.3 类实现接口 109


6.2.4 含默认方法的接口 112


6.3 抽象类与接口的比较 113


6.3.1 从语法层面 113


6.3.2 从设计层面 114


6.4 案例实践6:适配器模式 115


6.5 嵌套类 116


6.5.1 静态嵌套类 117


6.5.2 内部类 118


6.5.3 局部内部类 119


6.5.4 匿名内部类 119


6.6 函数式接口与LAMBDA表达式 121


6.6.1 函数式接口 121


6.6.2 Lambda表达式 122


6.6.3 方法引用 125


习题 126


第7章 GUI编程 129


7.1 概述 129


7.1.1 AWT 129


7.1.2 Swing 129


7.1.3 SWT 130


7.2 SWING库的架构 131


7.2.1 组件类的继承关系 131


7.2.2 java.awt.Component 132


7.2.3 java.awt.Container 132


7.2.4 java.awt.Window 133


7.2.5 java.awt.Frame 133


7.2.6 JComponent 134


7.3 容器组件 134


7.3.1 窗口:JFrame 134


7.3.2 面板:JPanel 135


7.3.3 可滚动面板:JScrollPane 136


7.3.4 分割面板:JSplitPane 137


7.3.5 分页面板:JTabbedPane 139


7.4 标签和图片 140


7.4.1 标签:JLabel 140


7.4.2 图标/图片:Icon/ImageIcon 141


7.5 按钮和工具提示 142


7.5.1 常规按钮:JButton 142


7.5.2 开关按钮:JToggleButton 144


7.5.3 单选按钮:JRadioButton 145


7.5.4 复选按钮:JCheckBox 146


7.6 文本组件 146


7.6.1 文本框:JTextField 146


7.6.2 密码框:JPasswordField 148


7.6.3 文本区:JTextArea 149


7.7 可调节组件 149


7.7.1 进度条:JProgressBar 150


7.7.2 滚动条:JScrollBar 151


7.7.3 滑块条:JSlider 152


7.8 菜单和工具栏 153


7.8.1 菜单相关组件:JMenuBar/JMenu/JMenuItem 153


7.8.2 弹出菜单:JPopupMenu 155


7.8.3 工具栏:JToolBar 155


7.9 颜色和字体 156


7.9.1 颜色:java.awt.Color 156


7.9.2 字体:java.awt.Font 157


7.10 布局管理 158


7.10.1 布局管理器:LayoutManager 159


7.10.2 流式布局:FlowLayout 159


7.10.3 边界布局:BorderLayout 160


7.10.4 网格布局:GridLayout 161


7.10.5 网格包布局:GridBagLayout 161


7.10.6 空布局:绝对定位 163


7.10.7 可视化GUI设计器 164


7.11 案例实践7:仿QQ聊天窗口 164


7.12 事件处理 166


7.12.1 事件处理模型 167


7.12.2 事件监听器类的编写方式 168


7.12.3 常用事件类 171


7.12.4 常用事件监听器接口 171


习题 172


第8章 SWING高级组件 173


8.1 对话框 173


8.1.1 基本对话框:JDialog 173


8.1.2 文件选择器:JFileChooser 174


8.1.3 选项面板:JOptionPane 176


8.2 列表和下拉列表 178


8.2.1 MVC模式 178


8.2.2 列表:JList 178


8.2.3 下拉列表:JComboBox 180


8.3 表格和树 182


8.3.1 表格:JTable 182


8.3.2 树:JTree 186


8.4 其他高级组件 190


8.4.1 微调按钮:JSpinner 190


8.4.2 内部窗口:JInternalFrame 191


习题 192


第9章 异常与处理 194


9.1 异常的概念和分类 194


9.1.1 异常的概念 194


9.1.2 异常的分类 195


9.2 异常处理及语法 196


9.2.1 异常的产生及处理 196


9.2.2 throw语句及throws子句 197


9.2.3 try-catch 199


9.2.4 finally 201


9.2.5 try-catch-finally的嵌套 202


9.2.6 try-with-resources 203


9.3 异常类的主要方法 206


9.3.1 Throwable类的方法 206


9.3.2 Exception类的构造方法 206


9.4 自定义异常类 207


9.5 案例实践8:用户登录 208


习题 210


第 10章 I/O流与文件 211


10.1 概述 211


10.1.1 I/O与流 211


10.1.2 流的分类 211


10.2 字节流 212


10.2.1 字节输入流:InputStream 212


10.2.2 字节输出流:OutputStream 212


10.3 字符流 213


10.3.1 字符输入流:Reader 213


10.3.2 字符输出流:Writer 213


10.4 文件流 214


10.4.1 File类 214


10.4.2 字节文件流:FileInputStream和FileOutputStream 215


10.4.3 字符文件流:FileReader和FileWriter 216


10.5 案例实践9:文件复制器 216


10.6 缓冲流 218


10.6.1 字节缓冲流:BufferedInputStream和BufferedOutputStream 218


10.6.2 字符缓冲流:BufferedReader和BufferedWriter 220


10.7 转换流 221


10.8 打印流 222


10.9 数据流 224


10.10 对象流 226


10.11 案例实践10:程序快照机 227


10.12 其他常用I/O类 228


10.12.1 读入器:Scanner 228


10.12.2 控制台:Console 230


习题 231


第 11章 多线程与并发 233


11.1 概述 233


11.1.1 程序、进程与线程 233


11.1.2 多任务与多线程 233


11.1.3 线程状态及调度 234


11.1.4 Thread类与Runnable接口 235


11.2 线程状态控制 236


11.2.1 start方法 236


11.2.2 sleep方法 237


11.2.3 join方法 237


11.2.4 yield方法 238


11.2.5 interrupt方法 239


11.3 案例实践11:数字秒表 240


11.4 并发控制 241


11.4.1 同步与异步 241


11.4.2 synchronized关键字 243


11.4.3 wait、notify和notifyAll方法 244


11.5 案例实践12:生产者与消费者问题 244


习题 245


第 12章 容器框架与泛型 247


12.1 核心接口 247


12.1.1 容器根接口:Collection 247


12.1.2 集合接口:Set 248


12.1.3 列表接口:List 248


12.1.4 队列接口:Queue 248


12.1.5 映射接口:Map 249


12.1.6 遍历容器 249


12.2 常用集合类 252


12.2.1 哈希集合:HashSet和LinkedHashSet 252


12.2.2 树形集合:TreeSet 254


12.3 案例实践13:产品排序 254


12.4 常用列表类 256


12.4.1 顺序列表:ArrayList 256


12.4.2 链式列表:LinkedList 258


12.5 常用映射类 259


12.5.1 哈希映射:HashMap和LinkedHashMap 259


12.5.2 树形映射:TreeMap 261


12.6 遗留容器类 261


12.6.1 向量:Vector 261


12.6.2 哈希表:Hashtable 262


12.7 容器工具类 262


12.7.1 Collections 263


12.7.2 Arrays 263


12.8 泛型 264


12.8.1 为什么需要泛型 264


12.8.2 泛型基础 265


12.8.3 泛型不是协变的 265


12.8.4 类型通配符 266


12.8.5 有界泛型 267


12.8.6 泛型方法 267


习题 268


第 13章 字符串与正则表达式 269


13.1 STRING类 269


13.1.1 字符串是对象 269


13.1.2 字符串对象的等价性 270


13.1.3 常用API 270


13.2 字符串格式化 272


13.2.1 Formatter类 272


13.2.2 格式说明与修饰符 273


13.3 案例实践14:简单文本搜索器 277


13.4 STRINGBUFFER类 278


13.4.1 可变与不可变 278


13.4.2 StringBuffer类 279


13.5 正则表达式 279


13.5.1 概述 279


13.5.2 Pattern类 279


13.5.3 Matcher类 280


13.5.4 正则表达式语法 281


13.6 案例实践15:用户注册校验 282


习题 284


第 14章 反射与注解 285


14.1 类型信息 285


14.1.1 Class类 285


14.1.2 获得Class对象 286


14.2 成员信息 289


14.2.1 Member接口 289


14.2.2 Field类 289


14.2.3 Method类 290


14.2.4 Constructor类 291


14.3 注解 293


14.3.1 注解的定义与使用 293


14.3.2 访问注解信息 294


14.4 标准注解 295


14.4.1 @Override 295


14.4.2 @Deprecated 296


14.4.3 @SuppressWarnings 297


14.5 文档注解及API文档生成 299


14.5.1 文档注解 299


14.5.2 生成API文档 301


14.6 元注解 301


14.6.1 @Target 301


14.6.2 @Retention 302


14.6.3 @Documented 303


14.6.4 @Inherited 303


14.7 案例实践16:简易单元测试工具 304


习题 306


附录A ECLIPSE使用简介 307


附录B 查阅API文档和源码 313


附录C JAVA编程规范与最佳实践 316


附录D JAVA全栈工程师学习路线 323









推荐

车牌查询
桂ICP备20004708号-3