图书介绍

精通Java开发技术 由浅入深领会高效开发之道【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

精通Java开发技术 由浅入深领会高效开发之道
  • 陈强编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302311874
  • 出版时间:2013
  • 标注页数:604页
  • 文件大小:416MB
  • 文件页数:620页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

精通Java开发技术 由浅入深领会高效开发之道PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 Java语言初体验1

1.1学习Java的优势2

1.1.1排名第一的编程语言2

1.1.2良好的就业前景2

1.2学习Java需要了解的那些事3

1.2.1 Java语言的发展历史3

1.2.2 Java的特点4

1.2.3 Java的平台无关性5

1.3 Java的运行机制6

1.3.1高级语言的运行机制6

1.3.2 Java的运行机制7

1.3.3 Java虚拟机——JVM8

1.4开发前的准备9

1.4.1安装JDK9

1.4.2设置环境变量13

1.4.3 JRE和JDK是有区别的14

1.4.4困扰初学者的环境变量问题14

1.5体验第一个Java程序15

1.5.1编辑Java源代码15

1.5.2编译Java程序16

1.5.3运行Java程序17

1.5.4分析Java程序的运行过程17

1.6初学者应该明白的几个问题18

1.6.1独特的垃圾回收机制18

1.6.2对学习者的几条建议19

第2章 探索Java敏捷学习之道21

2.1究竟要学习什么22

2.2学习编程的正确观念22

2.3将面向对象贯穿全书23

2.3.1什么是面向对象23

2.3.2面向对象的几个基本特性24

2.3.3 Java的面向对象24

2.3.4 Java的面向对象特性25

2.4初学者应该注意的问题26

2.4.1需要遵循源文件命名规则26

2.4.2不要忽视系统文件的扩展名26

2.4.3时刻注意大小写的问题27

2.4.4必须有main()方法27

2.4.5注意空格带来的麻烦27

2.5使用Java IDE工具能事半功倍28

2.5.1到底用不用IDE工具28

2.5.2最受欢迎的工具——Eclipse28

2.5.3 Sun公司推出的工具——NetBeans34

2.5.4一度很“火”的商业工具——JBuilder35

第3章 速成Java的基本语法37

3.1快速学习语法的秘诀38

3.2变量和常量38

3.2.1不可变的量叫常量39

3.2.2定义常量时的注意事项40

3.2.3可以变化的量叫变量40

3.3数据类型一通则百通42

3.3.1简单数据类型值的范围42

3.3.2字符型43

3.3.3整型44

3.3.4浮点型44

3.3.5布尔型45

3.4 if语句46

3.4.1简单if语句46

3.4.2通过if语句的延伸用法体验if-else语句的意义47

3.4.3 if语句可以有多个条件判断48

3.5 switch语句49

3.5.1 switch语句的基本用法49

3.5.2使用switch语句时应该注意的事项49

3.5.3如果没有break50

3.5.4如果case没有执行语句50

3.5.5如果default不在末尾51

3.6需要正确使用条件语句51

3.6.1参数case和参数switch的值要相等51

3.6.2在使用if语句时要按照逻辑顺序编码52

3.6.3理解switch语句的执行顺序52

3.7循环语句53

3.7.1 for循环53

3.7.2有多个表达式的for循环54

3.7.3 for语句可以嵌套55

3.7.4 while循环语句56

3.7.5可以联合使用if语句和while循环57

3.7.6 do-while循环语句57

3.7.7不要忘记分号58

3.8跳转语句58

3.8.1使用break语句58

3.8.2使用return语句返回一个值59

3.8.3使用continue语句实现跳转60

3.9一维数组60

3.9.1声明一维数组60

3.9.2创建一维数组61

3.9.3一维数组的初始化62

3.10二维数组63

3.10.1声明二维数组63

3.10.2创建二维数组63

3.10.3二维数组的初始化64

3.11 三维数组65

3.11.1声明三维数组65

3.11.2三维数组的初始化65

3.12复制数组中的数据66

3.13比较两个数组中的数据67

3.14搜索数组中的元素68

3.15排序数组68

3.16深入理解数组69

3.16.1可以任意伸缩数组长度的动态数组69

3.16.2 foreach循环70

3.17初学者应该明白的几个问题71

3.17.1 char中的单引号和int的提升处理71

3.17.2正无穷和负无穷的问题72

3.17.3 double型和float型之间的处理72

3.17.4何时使用switch语句,何时使用if…else if语句72

3.17.5使用for循环的技巧73

3.17.6可以在嵌套语句中使用break语句73

3.17.7设置有意义的标号75

3.17.8通过区别来决定怎样选择跳转语句76

3.17.9理解Java数组的内部机制77

3.17.10数组必须初始化78

3.17.11 Java中的两种引用类型79

3.17.12向数组中填充数据79

3.17.13在使用foreach操作数组时不建议对循环变量进行赋值81

3.17.14定义常量时的注意事项82

3.17.15 移位运算符的限制83

3.17.16扩展赋值运算符83

3.17.17 switch语句和if…else if语句的选择84

第4章 同时学习类和方法87

4.1类中的相关定义88

4.1.1理解类的意义88

4.1.2定义类88

4.1.3定义属性89

4.1.4定义方法89

4.1.5定义构造器90

4.1.6 Java的修饰符90

4.2 Java方法91

4.2.1传递方法参数91

4.2.2可以定义形参长度可变的参数92

4.2.3构造方法和递归方法93

4.3 this关键字95

4.4类和对象96

4.4.1创建和使用对象96

4.4.2使用静态变量和静态方法97

4.5抽象类和抽象方法97

4.5.1为什么推出抽象方法97

4.5.2了解抽象类和抽象方法98

4.5.3抽象类必须有一个抽象方法100

4.6使用软件包101

4.6.1定义软件包101

4.6.2在Eclipse中定义软件包102

4.6.3在程序里插入软件包104

4.7继承105

4.7.1父类和子类105

4.7.2对父类的操作106

4.7.3重写方法的两点注意事项108

4.8重写和重载108

4.8.1重写108

4.8.2重载109

4.8.3重写和重载的区别110

4.9隐藏和封装110

4.9.1 Java中的封装111

4.9.2使用访问控制符111

4.9.3解决重名问题的包113

4.9.4 import115

4.10初学者应该明白的几个问题116

4.10.1方法的所属性问题116

4.10.2探讨Java传递引用类型的实质117

4.10.3体会使用this关键字的好处118

4.10.4体会抽象类的作用119

4.10.5通过一个错误程序体会包的作用121

4.10.6掌握使用包的一些规则122

4.10.7探讨package和import的机制122

第5章 深入理解Java的面向对象125

5.1接口126

5.1.1需要理解Java接口编程的机理126

5.1.2定义接口127

5.1.3接口里的量和方法127

5.1.4实现接口128

5.1.5引用接口128

5.1.6接口的继承129

5.2特殊的方法——构造器129

5.2.1初始化构造器130

5.2.2构造器重载130

5.2.3 this在构造器中的妙用131

5.2.4调用父类构造器131

5.2.5子类构造器调用父类构造器的几种情况131

5.3多态132

5.3.1何谓多态132

5.3.2演示Java中的多态134

5.3.3 Java多态的核心135

5.4引用类型135

5.4.1四种引用类型135

5.4.2 instanceof运算符138

5.4.3强制类型转换不是万能的139

5.5选择继承还是组合141

5.6包装类144

5.7用final修饰基本类型和引用类型变量的区别145

5.7.1用final修饰变量145

5.7.2使用final修饰方法147

5.8内部类148

5.8.1为什么需要内部类148

5.8.2非静态内部类149

5.8.3成员内部类151

5.8.4局部内部类152

5.8.5静态内部类153

5.8.6匿名内部类154

5.8.7对内部类的总结157

5.9枚举类161

5.9.1手动实现枚举类的缺点161

5.9.2枚举类型163

5.9.3接口和抽象类165

5.10初学者应该明白的几个问题166

5.10.1区分构造器和方法166

5.10.2使用instanceof运算符时要避免编译错误167

5.10.3分析Java中的自动装箱和自动拆箱168

5.10.4 Java类的几种权限169

5.10.5使用this限定类的属性169

5.10.6 在匿名类和内部类中使用this170

5.10.7枚举类常用的几个方法171

第6章 集合173

6.1 Java集合概述174

6.2学习Collection和Iterator的诀窍175

6.2.1基础知识介绍175

6.2.2改变Collection集合元素的问题177

6.3挖掘Set接口的妙用178

6.3.1基础知识介绍178

6.3.2使用HashSet181

6.3.3 HashSet深入183

6.4深入List接口183

6.4.1基本知识介绍183

6.4.2使用List接口和ListIterator接口185

6.4.3使用ArrayList和Vector类186

6.4.4 ArrayList和Vector的区别187

6.5 Map接口的深入浅出187

6.5.1使用HashMap和Hashtable实现类188

6.5.2使用SortedMap接口和TreeMap类实现排序处理190

6.5.3使用WeakHashMap类192

6.5.4使用IdentityHashMap类193

6.5.5使用EnumMap类194

6.5.6分析几种Map类的性能195

6.6模拟队列数据结构的Queue接口195

6.6.1常用的方法196

6.6.2 List接口的实现类——LinkedList196

6.6.3处理优先级的PriorityQueue类197

6.7集合工具类Collections198

6.7.1排序操作198

6.7.2使用swap()方法交换集合中两个位置的内容199

6.7.3查找和替换199

6.8初学者应该明白的几个问题201

6.8.1总结Java中处理排序的问题201

6.8.2使用EnumSet类的注意事项206

6.8.3体会List中的额外方法206

6.8.4 HashMap和Hashtable之间的选择207

6.8.5 TreeMap判断两个元素是否相等的标准207

6.8.6体验数组的优良性能207

6.8.7 LinkedList、ArrayList、Vector性能问题的研究208

第7章 使用类库提高开发效率211

7.1 StringBuffer类212

7.1.1 StringBuffer类基础212

7.1.2使用StringBuffer类212

7.1.3 StringBuffer和String选择的异同213

7.2运行时操作类 Runtime213

7.3实现Java程序国际化215

7.3.1 Java实现国际化的方案215

7.3.2表示国家语言的类——Locale215

7.3.3 ResourceBundle类216

7.3.4处理动态文本217

7.3.5使用类代替资源文件219

7.4系统类System220

7.4.1 System类基础220

7.4.2垃圾对象的回收221

7.5日期操作类——Date222

7.5.1使用Date类222

7.5.2使用Calendar类获取当前时间222

7.5.3使用DateFormat类设置日期的格式224

7.5.4使用SimpleDateFormat类225

7.6使用Math类实现数学运算226

7.7使用Random类生成随机数226

7.8数字格式化类——NumberFormat227

7.9使用Arrays类操作数组228

7.10 Comparable接口229

7.10.1 Comparable接口基础229

7.10.2使用Comparable接口229

7.10.3使用Comparator接口230

7.11使用Observable类和Observer接口实现观察者模式232

7.12正则表达式233

7.12.1正则表达式是一种可以用于模式匹配和替换的规范233

7.12.2 String类和正则表达式235

7.13线程类Timer和TimerTask236

7.14初学者应该明白的几个问题237

7.14.1了解Java的内存管理机制237

7.14.2传递可变参数239

7.14.3通过System类获取本机的全部环境属性240

7.14.4把一个日期变为指定格式241

7.14.5在Math类中也有一个random()方法241

7.14.6如果没有实现Comparable接口会出现异常242

7.14.7体验正则表达式的好处243

第8章 泛型245

8.1泛型基础246

8.1.1使用泛型的好处246

8.1.2检查类型246

8.1.3使用泛型248

8.2深入泛型249

8.2.1定义泛型接口和类249

8.2.2派生子类250

8.2.3并不存在泛型类251

8.3类型通配符252

8.3.1设置类型通配符的上限253

8.3.2设置类型形参的上限255

8.4泛型方法256

8.4.1定义泛型方法256

8.4.2设置通配符下限259

8.5泛型接口260

8.6泛型继承262

8.6.1以泛型类为父类262

8.6.2以非泛型类为父类263

8.7运行时类型识别264

8.8强制类型转换265

8.9擦除266

8.9.1擦除基础266

8.9.2需要避免擦除带来的错误269

8.10初学者应该明白的几个问题270

8.10.1使用泛型应该遵循的原则和注意的问题270

8.10.2分析Java语言中泛型的本质271

8.10.3体验泛型方法和类型通配符的区别271

8.10.4重温泛型类的继承规则272

8.10.5挖掘类型擦除和泛型特性的联系273

第9章 异常处理275

9.1什么是异常276

9.1.1认识异常276

9.1.2 Java的异常处理机制276

9.1.3 Java为我们提供了异常处理类279

9.2处理异常的方式280

9.2.1使用try-catch来处理异常280

9.2.2处理多个异常281

9.2.3使用finally关键字处理异常281

9.2.4访问异常信息283

9.3抛出异常284

9.3.1使用throws抛出异常284

9.3.2使用throw抛出异常286

9.3.3区别throws关键字和throw关键字287

9.4自定义异常287

9.4.1 Throwable类介绍287

9.4.2子类Error和Exception290

9.5 Checked异常和Runtime异常的区别290

9.6初学者应该明白的几个问题292

9.6.1杜绝异常处理的陋习293

9.6.2学习异常没有诀窍296

9.6.3异常处理语句的规则296

9.6.4建议使用嵌套来处理异常298

9.6.5分析异常类的继承关系298

第10章 使用I/O系统来处理文件301

10.1 Java I/O简介302

10.2与文件有关的类——File302

10.3随机读取类RandomAccessFile304

10.4字节流和字符流306

10.4.1字节流类和字符流类306

10.4.2使用字节流306

10.4.3使用字符流309

10.5字节转换流311

10.6内存操作流312

10.7使用管道流实现线程间的通信313

10.8使用打印流输出信息315

10.9 BufferedReader类316

10.9.1 BufferedReader类基础316

10.9.2使用BufferedReader类317

10.10 Scanner类318

10.11数据操作流320

10.11.1 DataOutputStream类321

10.11.2 DataInputStream类322

10.12压缩流323

10.12.1 ZIP压缩输入/输出流简介323

10.12.2 ZipOutputStream类324

10.12.3 ZipFile类327

10.12.4 ZipInputStream类327

10.13回退流328

10.14字符编码329

10.14.1得到本机的编码显示329

10.14.2产生乱码330

10.15对象序列化330

10.15.1 Serializable接口331

10.15.2对象输出流ObjectOutputStream331

10.15.3对象输入流ObjectInputStream332

10.15.4 Externalizable接口333

10.15.5关键字transient333

10.15.6序列化一组对象335

10.16新增的I/O336

10.16.1新I/O概述336

10.16.2使用Buffer336

10.17初学者应该明白的几个问题338

10.17.1使用File.separator表示分隔符338

10.17.2综合创建和删除文件的操作338

10.17.3体会File类的复杂用法339

10.17.4将写入的数据换行340

10.17.5弄清字节流和字符流的区别340

10.17.6显示菜单342

10.17.7对象序列化和对象反序列化操作时的版本兼容性问题344

10.17.8不能让所有的类都实现Serializable接口344

10.17.9如何选择Externalizable接口和Serializable接口345

第11章 快速体验AWT347

11.1 GUI和AWT348

11.2容器350

11.2.1容器基础350

11.2.2容器中的常用组件350

11.3布局管理器353

11.3.1布局利器FlowLayout353

11.3.2布局利器BorderLayout355

11.3.3矩形网格布局GridLayout356

11.3.4版面管理器GridBagLayout358

11.3.5可以设置一个组件的布局——CardLayout360

11.3.6可以摆放GUI组件的布局管理器——BoxLayout362

11.4 AWT中的常用组件364

11.4.1 AWT中的组件364

11.4.2实现对话框效果367

11.5事件处理369

11.5.1 Java的事件模型369

11.5.2事件和事件监听器371

11.5.3事件适配器376

11.6 AWT的菜单378

11.6.1菜单条、菜单和菜单项378

11.6.2右键菜单381

11.7绘图383

11.7.1 Component类中的绘图方法383

11.7.2 Graphics类383

11.8操作位图385

11.8.1 Image类和BufferedImage类385

11.8.2输入/输出位图388

11.9初学者应该明白的几个问题389

11.9.1创建Glue、Strut和RigidArea的几个静态方法389

11.9.2体会绝对定位的好处390

11.9.3 AWT中的菜单组件不能创建图标菜单391

第12章 由浅入深体验Swing393

12.1 Swing介绍394

12.2 Swing的基本组件394

12.2.1 Swing组件的层次结构395

12.2.2 Swing组件的特性396

12.2.3 Swing胜过AWT的优势397

12.2.4使用Swing实现AWT组件397

12.2.5 JFrame、JScrollPane和边框398

12.2.6 JToolBar401

12.2.7 JColorChooser和JFileChooser403

12.2.8 JOptionPane405

12.2.9 JSplitPane408

12.2.10 JTabbedPane409

12.3拖放处理410

12.4 JProgressBar、ProgressMonitor和BoundedRangeModel412

12.4.1创建一个进度条413

12.4.2使用ProgressMonitor创建进度条对话框413

12.5 JSlider和BoundedRangeModel415

12.6 JList和JComboBox416

12.6.1使用JList和JComboBox的构造器创建列表框416

12.6.2使用ListCellRenderer418

12.7 JTree和TreeModel418

12.7.1创建树419

12.7.2拖动、编辑节点420

12.8初学者应该明白的几个问题421

12.8.1贯穿Java开发的MVC模式421

12.8.2实现有意义的进度条效果422

第13章 数据库编程425

13.1与数据库相关的概念426

13.2.SQL语言428

13.2.1数据定义428

13.2.2数据操纵430

13.2.3视图432

13.2.4 SQL高级操作433

13.3初识JDBC434

13.3.1 JDBC驱动类型434

13.3.2 JDBC的常用接口和类435

13.3.3 JDBC编程步骤437

13.4常用的几种数据库441

13.4.1 Access数据库441

13.4.2 SQL Server数据库441

13.4.3 MySQL数据库445

13.5执行SQL语句的方式445

13.5.1使用executeUpdate445

13.5.2使用execute方法447

13.6事务处理449

13.6.1 JDBC中的事务控制449

13.6.2检查数据库是否支持事务处理450

13.6.3 JDBC事务控制的流程450

13.7存储过程454

13.7.1创建存储过程454

13.7.2调用创建的存储过程456

13.8初学者应该明白的几个问题458

13.8.1通过课外学习掌握数据库技术458

13.8.2数据库产品概览,没有最完美的产品458

13.8.3乱花渐欲迷人眼,始终相信合适的即为最好的460

第14章 网络与通信编程463

14.1 Java中的网络包464

14.1.1 InetAddress类详解464

14.1.2 URLDecoder类和URLEncoder类464

14.1.3 URL和URLConnection465

14.1.4实践演练467

14.2 TCP编程468

14.2.1使用ServletSocket469

14.2.2使用Socket469

14.2.3 TCP中的多线程471

14.2.4实现非阻塞Socket通信475

14.3 UDP编程479

14.3.1使用DatagramSocket479

14.3.2使用MulticastSocket484

14.3.3 MulticastSocket类的意义487

14.4代理服务器487

14.4.1什么是代理服务器487

14.4.2使用Proxy创建连接489

14.4.3使用ProxySelector选择代理服务器490

14.4.4服务器代理实例492

14.5初学者应该明白的几个问题496

14.5.1 URL处理的两点注意事项496

14.5.2使用异常处理完善程序497

14.5.3分析ServerSocketChannel的麻烦之处497

14.5.4体会繁琐的DatagramPacket498

14.5.5需要知道代理背后的事情498

14.5.6代理服务无止境499

第15章 多线程501

15.1线程基础502

15.1.1线程概述502

15.1.2线程与函数的关系502

15.1.3 Java的线程模型503

15.2创建线程503

15.2.1使用Thread类创建线程503

15.2.2使用Runnable接口创建线程506

15.3线程的生命周期508

15.3.1创建并运行线程508

15.3.2 start和run的区别509

15.3.3挂起和唤醒线程509

15.3.4终止线程的三种方法511

15.3.5线程的优先级513

15.3.6线程阻塞513

15.3.7线程死亡514

15.4控制线程514

15.4.1使用join方法514

15.4.2慎重使用volatile关键字515

15.4.3后台、让步和睡眠517

15.4.4 sleep()方法和yield()方法的区别519

15.5线程传递数据519

15.5.1向线程传递数据的三种方法519

15.5.2两种从线程返回数据的方法522

15.6数据同步523

15.6.1使用synchronized关键字同步类方法526

15.6.2使用Synchronized块同步变量529

15.6.3同步锁531

15.7多线程编程的常见缺陷及其产生的原因533

15.7.1死锁问题534

15.7.2多线程编程的常见陷阱537

15.8初学者应该明白的几个问题541

15.8.1在方法run()中使用线程名时带来的问题542

15.8.2继承Thread类或实现Runnable接口的比较542

15.8.3使用sleep()方法的注意事项542

15.8.4如何确定死锁发生543

15.8.5关键字synchronized和volatile的区别543

15.8.6使用关键字synchronized的注意事项544

15.8.7分析Swing的多线程死锁问题546

第16章 案例:综合供求信息平台549

16.1需求分析550

16.1.1规划流程550

16.1.2开发背景550

16.1.3需求分析550

16.1.4项目规划551

16.2网站功能结构551

16.3搭建开发环境552

16.4搭建数据库552

16.4.1数据库需求分析553

16.4.2数据库概念设计553

16.4.3数据库逻辑结构设计554

16.5设计公共类555

16.5.1数据库连接及操作类555

16.5.2业务处理类557

16.5.3分页类559

16.5.4字符串处理类560

16.6具体编码560

16.6.1设计前台页面561

16.6.2前台信息显示设计562

16.6.3信息发布模块设计570

16.6.4登录模块572

16.6.5后台页面模块574

16.6.6后台信息管理模块574

16.7测试577

第17章 案例:小区物业管理系统581

17.1系统概述和总体设计582

17.1.1系统需求分析582

17.1.2系统演示流程583

17.2数据库设计583

17.2.1选择数据库583

17.2.2数据库结构的设计584

17.3系统框架设计586

17.3.1创建工程及设计主界面586

17.3.2数据库ADO访问类589

17.3.3系统登录模块设计589

17.4基本信息管理模块590

17.4.1小区信息管理590

17.4.2楼宇信息管理592

17.4.3业主信息管理594

17.4.4收费项目管理594

17.4.5查询单价清单595

17.5消费指数管理模块596

17.5.1业主消费录入597

17.5.2物业消费录入599

17.6各项费用管理模块600

17.6.1业主费用查询600

17.6.2物业费用查询602

17.7测试604

参考文献605

热门推荐