网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | Java开发从入门到精通 |
分类 | 人文社科-社会科学-语言文字 |
作者 | 扶松柏,叶维中 |
出版社 | 人民邮电出版社 |
下载 | ![]() |
简介 | 作者简介 目录 章计算机基础和Java开发入门1 1.1计算机基础2 1.1.1中央处理器2 1.1.2比特和字节2 1.1.3二进制3 1.1.4编码格式3 1.2初识Java4 1.2.1何谓Java4 1.2.2Java的特点5 1.2.3Java的地位5 1.3技术解惑6 1.3.1对初学者的建议6 1.3.2理解Java的垃圾回收机制6 1.3.3充分利用JavaAPI文档7 1.4课后练习7 第2章段Java程序8 2.1搭建Java开发环境9 2.1.1安装JDK9 2.1.2配置开发环境—Windows711 2.1.3配置开发环境—Windows1011 2.2编写段Java程序13 2.2.1段Java代码13 2.2.2关键字13 2.2.3标识符14 2.2.4注释14 2.2.5main()方法15 2.2.6控制台的输入和输出15 2.3编译并运行Java程序15 2.3.1编译Java程序15 2.3.2运行Java程序16 2.3.3Java11新特性:新的程序运行方式16 2.4使用IDE工具—Eclipse17 2.4.1Eclipse17 2.4.2获得并安装Eclipse17 2.4.3新建一个Eclipse项目20 2.4.4编译并运行Eclipse项目23 2.4.5使用Eclipse打开一个Java项目24 2.5Java的运行机制25 2.5.1编译型/解释型语言的运行机制25 2.5.2Java程序则要先编译、后运行25 2.6技术解惑26 2.6.1遵循Java源文件的命名规则26 2.6.2忽视系统文件的扩展名26 2.6.3环境变量的问题26 2.6.4大小写的问题27 2.6.5main()方法的问题27 2.6.6注意空格问题27 2.6.7到底用不用IDE工具27 2.6.8区分JRE和JDK28 2.7课后练习28 第3章Java语法基础29 3.1常量和变量30 3.1.1常量30 3.1.2变量31 3.2数据类型33 3.2.1为什么要使用数据类型33 3.2.2简单数据类型的取值范围34 3.2.3字符型34 3.2.4整型35 3.2.5浮点型36 3.2.6布尔型37 3.3运算符38 3.3.1算术运算符38 3.3.2关系运算符和逻辑运算符41 3.3.3位逻辑运算符42 3.3.4条件运算符43 3.3.5赋值运算符44 3.3.6运算符的优先级45 3.4字符串46 3.4.1字符串的初始化46 3.4.2String类47 3.4.3StringBuffer类49 3.5类型转换50 3.5.1自动类型转换50 3.5.2强制类型转换51 3.6Java11新特性:新增的String函数51 3.7技术解惑54 3.7.1定义常量时的注意事项54 3.7.2char类型中单引号的意义54 3.7.3正无穷和负无穷的问题55 3.7.4移位运算符的限制55 3.8课后练习55 第4章条件语句56 4.1if语句详解57 4.1.1if语句57 4.1.2if语句的延伸58 4.1.3有多个条件判断的if语句59 4.2switch语句详解60 4.2.1switch语句的形式61 4.2.2无break的情况62 4.2.3case语句后没有执行语句62 4.2.4default可以不在末尾63 4.3条件语句演练64 4.3.1正确使用switch语句64 4.3.2正确使用if语句64 4.3.3switch语句的执行顺序65 4.4技术解惑66 4.4.1if…else语句的意义66 4.4.2使用switch语句时的几个注意事项67 4.4.3switch语句和if…elseif语句的选择68 4.5课后练习68 第5章循环语句69 5.1循环语句70 5.1.1for循环70 5.1.2while循环语句72 5.1.3do…while循环语句73 5.2跳转语句74 5.2.1break语句的应用74 5.2.2return语句的应用76 5.2.3continue语句77 5.3技术解惑77 5.3.1使用for循环的技巧77 5.3.2跳转语句的选择技巧78 5.4课后练习79 第6章数组80 6.1简单的一维数组81 6.1.1声明一维数组81 6.1.2创建一维数组81 6.1.3初始化一维数组82 6.2二维数组83 6.2.1声明二维数组83 6.2.2创建二维数组83 6.2.3初始化二维数组84 6.3三维数组85 6.3.1声明三维数组86 6.3.2创建三维数组的方法86 6.3.3初始化三维数组86 6.4操作数组87 6.4.1复制数组87 6.4.2比较数组87 6.4.3排序数组88 6.4.4搜索数组中的元素89 6.4.5填充数组89 6.4.6遍历数组90 6.5技术解惑90 6.5.1动态初始化数组的规则90 6.5.2引用类型91 6.5.3数组的初始化91 6.6课后练习91 第7章Java的面向对象(上)93 7.1面向对象的基础94 7.1.1面向对象的定义94 7.1.2Java的面向对象编程94 7.1.3一切皆为对象94 7.1.4Java面向对象的几个核心概念95 7.2创建类96 7.2.1定义类96 7.2.2定义属性97 7.2.3定义方法97 7.2.4定义构造器98 7.3修饰符98 7.3.1public修饰符98 7.3.2private修饰符99 7.3.3protected修饰符100 7.3.4其他修饰符100 7.4方法详解101 7.4.1方法与函数的关系101 7.4.2传递方法参数102 7.4.3长度可变的方法102 7.4.4不使用void关键字构造方法名103 7.4.5递归方法104 7.5使用this105 7.6使用类和对象105 7.6.1创建和使用对象106 7.6.2使用静态变量和静态方法106 7.7抽象类和抽象方法107 7.7.1抽象类和抽象方法的基础107 7.7.2抽象类必须有一个抽象方法108 7.7.3抽象类的作用109 7.8软件包110 7.8.1软件包的定义110 7.8.2在Eclipse中定义软件包110 7.8.3在程序里插入软件包111 7.9技术解惑112 7.9.1在Java中传递引用类型的实质112 7.9.2掌握this的好处113 7.9.3推出抽象方法的原因114 7.9.4使用抽象类的时机114 7.9.5static修饰的作用115 7.9.6数组内是同一类型的数据115 7.10课后练习115 第8章Java的面向对象(中)116 8.1类的继承117 8.1.1继承的定义117 8.1.2父类和子类117 8.1.3调用父类的构造方法118 8.1.4访问父类的属性和方法119 8.1.5多重继承120 8.1.6重写父类的方法121 8.2重写和重载122 8.2.1重写122 8.2.2重载124 8.3隐藏和封装125 8.3.1Java中的封装125 8.3.2访问控制符125 8.3.3Java中的包127 8.3.4import129 8.4接口129 8.4.1定义接口129 8.4.2接口里的常量和方法130 8.4.3引用接口132 8.4.4接口间的继承134 8.4.5接口的私有方法134 8.5技术解惑137 8.5.1重写方法的注意事项137 8.5.2重写和重载的区别138 8.5.3举例理解类的意义138 8.5.4Java包的一些规则138 8.5.5探讨package和import机制138 8.5.6接口编程的机理139 8.5.7接口和抽象类的区别和联系140 8.6课后练习141 第9章Java的面向对象(下)142 9.1构造器详解143 9.1.1初始化构造器143 9.1.2构造器重载143 9.1.3调用父类构造器144 9.2多态145 9.2.1多态的定义145 9.2.2演示Java中的多态147 9.2.3使用instanceof运算符148 9.3引用类型149 9.3.14种引用类型150 9.3.2引用变量的强制类型转换151 9.4组合152 9.5初始化块154 9.5.1初始化块概述154 9.5.2静态初始化块155 9.6包装类156 9.7final修饰符157 9.7.1用final修饰变量158 9.7.2final方法159 9.8内部类160 9.8.1内部类概述160 9.8.2非静态内部类160 9.8.3成员内部类162 9.8.4局部内部类162 9.8.5静态内部类163 9.9匿名类163 9.9.1定义匿名类164 9.9.2匿名内部类164 9.9.3匿名内部类使用final形参165 9.10枚举类166 9.10.1枚举类的方法166 9.10.2模拟枚举类167 9.10.3枚举类型168 9.11Java11新特性:嵌套访问控制170 9.12技术解惑172 9.12.1构造器和方法的区别172 9.12.2this在构造器中的作用173 9.12.3子类构造器调用父类构造器的情况173 9.12.4强制类型转换的局限性174 9.12.5继承和组合的选择174 9.12.6发生异常的原因174 9.12.7用final修饰基本类型和引用类型变量之间的区别174 9.12.8类的4种权限174 9.12.9手工实现枚举类的缺点175 9.13课后练习175 0章集合176 10.1Java中的集合类177 10.2Collection接口和Iterator接口178 10.2.1Collection接口概述178 10.2.2Iterator接口概述179 10.2.3使用Collection接口中的方法来操作集合里的元素179 10.3Set接口180 10.3.1Set接口概述180 10.3.2使用HashSet183 10.3.3使用TreeSet类184 10.3.4使用EnumSet类186 10.4List接口188 10.4.1List接口概述188 10.4.2根据索引操作集合内的元素190 10.4.3使用ArrayList和Vector类191 10.5Map接口192 10.5.1Map接口中的方法192 10.5.2Map接口中的接口和类193 10.5.3使用HashMap和Hashtable实现类196 10.5.4使用SortedMap接口和TreeMap实现类197 10.5.5使用WeakHashMap类199 10.5.6使用IdentityHashMap类200 10.5.7使用EnumMap类201 10.6Queue接口201 10.6.1LinkedList类202 10.6.2PriorityQueue类203 10.7集合工具类Collections203 10.7.1排序操作203 10.7.2查找和替换操作204 10.8其他集合类205 10.8.1Stack类205 10.8.2属性类Properties206 10.9创建不可变的List、Set和Map(Java9新增功能)209 10.9.1Java9以前版本的解决方案209 10.9.2Java9版本的解决方案209 10.10使用var类型推断(Java10新增功能)211 10.11技术解惑212 10.11.1Collection集合元素的改变问题212 10.11.2深入理解HashSet212 10.11.3使用类EnumSet的注意事项213 10.11.4ArrayList和Vector的区别213 10.11.5TreeMap判断两个元素相等的标准213 10.11.6分析Map类的性能213 10.11.7LinkedList、ArrayList、Vector的性能问题214 10.11.8用swap()方法交换集合中两个位置的内容214 10.12课后练习214 1章常用的类库215 11.1StringBuffer类216 11.1.1StringBuffer类概述216 11.1.2使用StringBuffer类216 11.2Runtime类218 11.2.1Runtime类概述218 11.2.2使用Runtime类218 11.3程序国际化220 11.3.1国际化基础220 11.3.2Locale类221 11.3.3ResourceBundle类221 11.3.4处理动态文本222 11.3.5使用类代替资源文件223 11.4System类224 11.4.1使用System类224 11.4.2垃圾对象的回收225 11.5Date类225 11.5.1使用Date类226 11.5.2使用Calendar类226 11.5.3使用DateFormat类227 11.5.4使用SimpleDateFormat类228 11.6Math类229 11.7Random类230 11.8NumberFormat类231 11.9BigInteger类232 11.10BigDecimal类233 11.11复制对象235 11.12Arrays类235 11.13Comparable接口236 11.13.1Comparable接口概述236 11.13.2使用Comparable接口238 11.13.3使用Comparator接口238 11.14Observable类和Observer接口239 11.15正则表达式241 11.15.1正则表达式概述241 11.15.2Java中的正则表达式类242 11.15.3使用Pattern类和Matcher类243 11.15.4String类和正则表达式243 11.15.5Java9新增的正则表达式方法244 11.15.6Java11新特性:正则表达式参数的局部变量语法245 11.16Timer类和TimerTask类245 11.16.1Timer类246 11.16.2TimerTask类246 11.17技术解惑247 11.17.1StringBuffer和String的异同247 11.17.2通过System类获取本机的全部环境属性247 11.17.3分析对象的生命周期248 11.17.4若未实现Comparable接口会出现异常248 11.17.5正则表达式的好处248 11.18课后练习249 2章泛型250 12.1泛型概述251 12.1.1泛型的优点251 12.1.2类型检查251 12.1.3使用泛型253 12.2泛型详解253 12.2.1定义泛型接口和类253 12.2.2派生子类254 12.2.3并不存在泛型类255 12.3类型通配符255 12.3.1设置类型实参的上限256 12.3.2设置类型形参的上限257 12.3.3设置通配符的下限258 12.4泛型方法258 12.5泛型接口260 12.6泛型继承261 12.6.1以泛型类为父类261 12.6.2以非泛型类为父类262 12.7强制类型转换263 12.8擦除263 12.8.1擦除的定义263 12.8.2擦除带来的问题265 12.9技术解惑266 12.9.1Java语言中泛型的本质266 12.9.2泛型方法和类型通配符的区别267 12.9.3泛型类的继承规则268 12.9.4类型擦除和泛型特性之间的联系268 12.9.5使用原则和注意事项268 12.10课后练习268 3章异常处理270 13.1异常概述271 13.1.1认识异常271 13.1.2Java提供的异常处理类271 13.2异常处理方式272 13.2.1try…catch语句272 13.2.2处理多个异常273 13.2.3finally语句274 13.2.4访问异常信息275 13.3抛出异常276 13.3.1使用throws抛出异常276 13.3.2使用throw抛出异常278 13.4自定义异常279 13.4.1Throwable类及其子类279 13.4.2使用Throwable类自定义异常281 13.5Checked异常和Runtime异常的区别282 13.5.1机制上的差异282 13.5.2逻辑上的差异283 13.6技术解惑283 13.6.1使用嵌套异常处理是更合理的方法283 13.6.2区别throws关键字和throw关键字284 13.6.3异常类的继承关系284 13.6.4子类Error和Exception284 13.7课后练习284 4章I/O文件处理和流处理285 14.1JavaI/O概述286 14.2File类286 14.2.1File类中的方法286 14.2.2使用File类操作文件287 14.3RandomAccessFile类290 14.3.1RandomAccessFile类的常用方法290 14.3.2使用RandomAccessFile类291 14.4字节流与字符流292 14.4.1字节流类和字符流类292 14.4.2使用字节流292 14.4.3使用字符流296 14.5字节转换流299 14.6内存操作流299 14.7管道流301 14.8打印流302 14.8.1打印流概述302 14.8.2使用打印流303 14.9System类303 14.9.1System.out304 14.9.2System.err304 14.9.3System.in305 14.9.4输入/输出重定向305 14.10BufferedReader类307 14.10.1BufferedReader类概述307 14.10.2使用BufferedReader类308 14.11Scanner类309 14.11.1Scanner类概述310 14.11.2使用Scanner类310 14.12数据操作流312 14.12.1DataOutputStream类313 14.12.2DataInputStream类313 14.13合并流315 14.14压缩流316 14.14.1ZIP压缩输入/输出流概述316 14.14.2ZipOutputStream类316 14.14.3ZipFile类319 14.14.4ZipInputStream类319 14.15回退流320 14.16字符编码321 14.16.1得到本机编码322 14.16.2产生乱码322 14.17对象序列化323 14.17.1Serializable接口323 14.17.2对象输出流ObjectOutputStream324 14.17.3对象输入流ObjectInputStream324 14.17.4Externalizable接口325 14.17.5关键字transient326 14.17.6序列化一组对象327 14.18Buffer类328 14.18.1Buffer类中的主要方法329 14.18.2使用Buffer类330 14.19Channel类331 14.20使用流API333 14.20.1Java8中的流333 14.20.2Java9中新增的Stream335 14.21使用try…with…resources语句337 14.21.1try…with…resources语句概述337 14.21.2try…with…resources的改进(Java9新增功能)338 14.22技术解惑341 14.22.1使用File.separator表示分隔符341 14.22.2综合演练创建和删除文件341 14.22.3File类的复杂用法342 14.22.4字节流和字符流的区别342 14.22.5System.err和System.out的选择344 14.22.6使用I/O实现一个简单的菜单效果344 14.22.7对象序列化和对象反序列化操作时的版本兼容性问题345 14.22.8不能让所有的类都实现Serializable接口346 14.23课后练习346 5章AWT的奇幻世界347 15.1GUI框架概述348 15.1.1AWT框架348 15.1.2Swing框架348 15.1.3JavaFX框架348 15.2AWT框架的结构349 15.3容器350 15.3.1容器概述350 15.3.2容器中的常用组件351 15.4布局管理器352 15.4.1FlowLayout布局353 15.4.2BorderLayout布局353 15.4.3GridLayout布局355 15.4.4GridBagLayout布局356 15.4.5CardLayout布局356 15.4.6BoxLayout布局管理器357 15.5AWT中的常用组件357 15.5.1AWT组件概览358 15.5.2使用组件358 15.6AWT中的对话框360 15.6.1AWT对话框概述360 15.6.2使用AWT对话框360 15.7使用图像多分辨率API361 15.7.1图像多分辨率概述361 15.7.2图像多分辨率API详解361 15.7.3图像多分辨率API实战362 15.8javax.imageio.plugins.tiff364 15.8.1ImageIO模块概述364 15.8.2TIFF接口366 15.9技术解惑367 15.9.1使用绝对定位367 15.9.2对事件处理模型的简化368 15.9.3使用AWT开发动画368 15.9.4图片缩放在现实中的意义368 15.9.5AWT和Swing是窗体编程的两个主角368 15.9.6AWT中的菜单组件不能创建图标菜单368 15.9.7Java的事件模型368 15.9.8事件和事件监听器370 15.10课后练习372 6章Swing373 16.1Swing概述374 16.2Swing的组件375 16.2.1Swing组件的层次结构375 16.2.2Swing实现AWT组件376 16.3拖放处理380 16.4实现进度条效果381 16.4.1创建一个进度条381 16.4.2使用ProgressMonitor创建进度条对话框383 16.5技术解惑383 16.5.1贯穿Java开发的MVC模式383 16.5.2Swing的优势383 16.5.3使用JSlider和BoundedRangeModel测试滑动条效果384 16.5.4使用ListCellRenderer改变窗体中列表项的外观385 16.6课后练习385 7章JavaFX开发基础386 17.1JavaFX概述387 17.1.1JavaFX的特色387 17.1.2安装e(fx)clipse插件387 17.1.3认识个JavaFX程序389 17.2JavaFX界面结构389 17.2.1窗体结构剖析389 17.2.2属性绑定391 17.2.3样式属性和角度属性392 17.3使用Color类设置颜色393 17.3.1设置颜色的方法393 17.3.2使用RGB方式设置颜色395 17.3.3使用Web方式设置颜色395 17.4绘制文字396 17.4.1Text包概述396 17.4.2绘制指定样式的文本397 17.5绘制形状398 17.5.1使用Line绘制线条398 17.5.2使用Rectangle绘制矩形399 17.5.3使用Circle绘制圆401 17.5.4使用Ellipse绘制椭圆402 17.5.5使用Arc绘制圆弧403 17.5.6使用Polygon绘制多边形404 17.5.7使用Polyline绘制折线405 17.5.8使用CubicCurve绘制三次曲线406 17.5.9使用QuadCurve绘制二次曲线407 17.6显示图像408 17.6.1使用Image显示图像408 17.6.2使用ImageView显示图像409 17.7界面布局410 17.7.1使用Pane的画布功能411 17.7.2使用StackPane实现特定面板功能412 17.7.3使用FlowPane实现序列放置412 17.7.4使用GridPane实现网格布局414 17.7.5使用BorderPane实现区域布局415 17.7.6使用HBox实现水平布局417 17.7.7使用VBox实现垂直布局418 17.8技术解惑419 17.8.1Swing、AWT和JavaFX的区别419 17.8.2JavaFX的属性类型419 17.9课后练习420 8章使用JavaFXUI组件421 18.1使用标签组件422 18.1.1标签属性和方法422 18.1.2标签组件实战演练423 18.2使用按钮组件424 18.2.1按钮属性和方法424 18.2.2按钮组件实战演练425 18.3使用复选框组件426 18.3.1复选框属性和方法426 18.3.2复选框组件实战演练427 18.4使用单选按钮组件428 18.4.1单选按钮属性和方法428 18.4.2单选按钮组件实战演练429 18.5使用文本框组件430 18.5.1文本框的属性和方法430 18.5.2文本框组件实战演练431 18.6使用文本域组件432 18.6.1文本域的属性和方法432 18.6.2文本域组件实战演练432 18.7使用选择框组件434 18.7.1选择框的属性和方法434 18.7.2选择框组件实战演练434 18.8使用密码框组件435 18.8.1密码框的属性和方法435 18.8.2密码框组件实战演练436 18.9使用组合框组件437 18.9.1组合框的属性和方法437 18.9.2组合框实战演练438 18.10使用列表视图组件439 18.10.1列表视图的属性和方法439 18.10.2列表视图组件实战演练440 18.11使用滚动条组件442 18.11.1滚动条的属性和方法442 18.11.2滚动条组件实战演练442 18.12使用滑块组件444 18.12.1滑块的属性和方法444 18.12.2滑块组件实战演连445 18.13使用树视图组件446 18.13.1树视图的属性和方法446 18.13.2树视图组件实战演练447 18.14使用进度组件448 18.14.1进度指示器448 18.14.2进度条448 18.14.3进度组件实战演练448 18.15使用HTML编辑器组件449 18.15.1HTML编辑器组件概述450 18.15.2HTML编辑器组件实战演练450 18.16使用菜单组件451 18.16.1菜单组件概述451 18.16.2创建菜单栏452 18.17使用文件选择框组件453 18.17.1文件选择框概述453 18.17.2文件选择框组件实战演练454 18.18使用颜色选择器组件456 18.18.1颜色选择器概述456 18.18.2颜色选择器组件实战演练458 18.19技术解惑459 18.19.1制作圆形按钮459 18.19.2设置按钮的内容460 18.19.3树表视图460 18.20课后练习460 9章JavaFX事件处理程序461 19.1JavaFX事件处理系统概述462 19.1.1Java的事件模型462 19.1.2JavaFX中的事件462 19.1.3事件处理机制的流程463 19.1.4事件处理465 19.1.5事件和事件源465 19.2使用快捷方法实现事件处理467 19.2.1快捷方法概述467 19.2.2处理按钮事件468 19.3处理鼠标事件469 19.3.1鼠标事件概述469 19.3.2使用鼠标事件469 19.4处理键盘事件470 19.4.1键盘事件概述470 19.4.2使用键盘事件471 19.5使用事件过滤器472 19.5.1注册和移除事件过滤器472 19.5.2使用事件过滤器473 19.6使用事件处理程序475 19.6.1注册和移除事件处理程序475 19.6.2使用事件处理程序476 19.7使用可触摸设备的事件477 19.7.1手势和触摸事件477 19.7.2手势事件实战478 19.8技术解惑483 19.8.1实现鼠标移到按钮上按钮变大的效果483 19.8.2实现JavaFX绑定483 19.9课后练习483 第20章JavaFX框架下的Web开发484 20.1JavaFX内嵌浏览器概述485 20.2使用WebView组件486 20.2.1WebView组件概述486 20.2.2WebView组件实战演练487 20.3使用WebEngine接口488 20.3.1WebEngine概述488 20.3.2在JavaFX中执行JavaScript程序489 20.3.3在Web页面中调用JavaFX程序492 20.3.4实现弹出式窗口493 20.4管理Web历史记录495 20.4.1WebHistory概述495 20.4.2网页浏览历史记录实战495 20.5使用CSS文件496 20.6使用FXML499 20.6.1FXML概述499 20.6.2FXML实战演练500 20.7技术解惑504 20.7.1JavaFX集合504 20.7.2使用标题面板505 20.8课后练习505 第21章JavaFX框架下的多媒体开发506 21.1变换操作507 21.1.1变换概述507 21.1.2变换操作507 21.2动画效果510 21.2.1过渡动画510 21.2.2时间轴动画512 21.3视觉特效514 21.3.1混合特效514 21.3.2发光特效515 21.3.3模糊特效517 21.3.4阴影特效519 21.3.5内阴影特效520 21.3.6倒影特效522 21.3.7光照特效523 21.43D特效524 21.4.1JavaFX3D概述524 21.4.2使用3D形状524 21.4.33D镜头525 21.4.4使用子场景527 21.4.5使用光照529 21.4.6使用材质530 21.5音频和视频532 21.5.1使用Media获取获得媒体源532 21.5.2使用MediaPlayer播放并控制媒体532 21.5.3使用MediaView显示视频533 21.5.4控制播放的视频演练533 21.6CSSAPI(Java9新增功能)535 21.6.1使用传统方式535 21.6.2使用SkinAPI536 21.7技术解惑538 21.7.1注册一个事件处理程序538 21.7.2注意场景背景图的问题539 21.7.3y-down坐标系和y-up坐标系539 21.8课后练习539 第22章数据库编程540 22.1SQL基础541 22.1.1数据定义541 22.1.2数据操纵542 22.2初识JDBC544 22.2.1JDBCAPI544 22.2.2JDBC驱动类型544 22.2.3JDBC的常用接口和类545 22.2.4JDBC编程的一般步骤547 22.3连接Access数据库549 22.3.1Access数据库概述549 22.3.2连接本地Access数据库550 22.4连接SQLServer数据库552 22.4.1下载并安装SQLSever2016驱动552 22.4.2测试连接553 22.4.3获取SQLServer数据库中指定的表554 22.5连接MySQL数据库555 22.5.1下载并配置MySQL驱动555 22.5.2将MySQL驱动加载到Eclipse中556 22.5.3测试连接557 22.6技术解惑557 22.6.1连接池的功效557 22.6.2服务器自带连接池的问题557 22.6.3连接池模型559 22.6.4数据模型、概念模型和关系数据模型559 22.6.5数据库系统的结构560 22.7课后练习560 第23章网络与通信编程561 23.1Java中的网络包562 23.1.1InetAddress类562 23.1.2URLDecoder类和URLEncoder类562 23.1.3URL类和URLConnection类563 23.1.4实践演练564 23.2TCP编程567 23.2.1使用ServerSocket567 23.2.2使用Socket568 23.2.3TCP中的多线程569 23.3UDP编程572 23.3.1使用DatagramSocket572 23.3.2使用MulticastSocket574 23.4代理服务器577 23.4.1代理服务器概述577 23.4.2使用Proxy创建连接578 23.4.3使用ProxySelector选择代理服务器579 23.5HTTP/2ClientAPI(Java10的改进)581 23.5.1孵化器模块usergrid概述581 23.5.2HTTP/2ClientAPI概述582 23.5.3处理HTTP请求582 23.6技术解惑584 23.6.1使用异常处理完善程序584 23.6.2使用ServerSocketChannel的弊端584 23.6.3体会复杂的DatagramPacket585 23.6.4MulticastSocket类的重要意义585 23.6.5继承ProxySelector时需要做的工作585 23.6.6代理服务无止境585 23.6.7生成jdk.incubator.httpclient模块的Javadoc586 23.7课后练习586 第24章多线程和进程587 24.1线程概述588 24.1.1线程与进程588 24.1.2线程的意义588 24.1.3Java的线程模型589 24.2创建线程590 24.2.1使用Thread类创建线程590 24.2.2使用Runnable接口创建线程592 24.2.3使用Thread.onSpinWait()方法实现循环等待593 24.3线程的生命周期594 24.3.1线程的运行与停止594 24.3.2线程的挂起和唤醒595 24.3.3终止线程的3种方法596 24.3.4线程的阻塞597 24.3.5线程的死亡597 24.4控制线程598 24.4.1使用join方法599 24.4.2慎重使用volatile关键字599 24.4.3后台、让步和睡眠602 24.5线程传递数据603 24.5.1向线程传递数据的方法603 24.5.2线程中返回数据的方法605 24.6进程606 24.6.1使用类ProcessBuilder606 24.6.2使用类Process609 24.6.3使用类ProcessHandle(Java9新增功能)609 24.7技术解惑612 24.7.1线程和函数的关系612 24.7.2在run方法中使用线程名时产生的问题612 24.7.3继承Thread类或实现Runnable接口的比较612 24.7.4start()和run()的区别613 24.7.5使用sleep()方法的注意事项613 24.7.6线程的优先级613 24.7.7如何确定发生死锁613 24.7.8关键字synchronized和volatile的区别614 24.7.9sleep()方法和yield()方法的区别614 24.7.10分析Swing的多线程死锁问题614 24.8课后练习615 第25章大数据综合实战:爬取并分析知乎用户信息616 25.1系统设计617 25.1.1系统目标617 25.1.2系统功能结构617 25.2数据库设计618 25.3知乎爬虫请求分析618 25.4系统文件夹组织结构621 25.5系统详细运行流程图622 25.6具体编码623 25.6.1核心模块代码的编写623 25.6.2知乎抓取功能模块629 25.6.3代理功能模块637 25.7知乎用户大数据分析645 25.7.1数据展示模块645 25.7.2运行展示646 25.8项目开发难点分析648 内容推荐 本书专门介绍Java编程,主要内容包括:Java基础知识、Java语法基础、条件语句、循环语句、数组、Java面向对象编程、集合、常用的类库、泛型、异常处理、I/O文件处理和流程、AWT、Swing、JavaFX基础知识、UI组件、事件处理程序、基于JavaFX框架的Web和多媒体开发、数据库编程 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。