• Java面向对象编程(第2版)
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

Java面向对象编程(第2版)

12.09 1.4折 89 九品

仅1件

北京昌平
认证卖家担保交易快速发货售后保障

作者孙卫琴 著

出版社电子工业出版社

出版时间2017-01

版次01

装帧平装

货号A3

上书时间2024-12-19

旧书香书城

十年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 孙卫琴 著
  • 出版社 电子工业出版社
  • 出版时间 2017-01
  • 版次 01
  • ISBN 9787121303142
  • 定价 89.00元
  • 装帧 平装
  • 开本 16开
  • 纸张 其他
  • 页数 752页
  • 字数 1203.2千字
  • 正文语种 简体中文
【内容简介】
本书采用由浅入深、与实际应用紧密结合的方式,利用大量经典实用的实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结优化Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理。本书的实例都基于*新的JDK8版本。本书的*大特色是以6条主线贯穿书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。另外,本书还贯穿了Oracle公司的OCJP(Oracle Certified Java Programmer)认证的考试要点。
【作者简介】
孙卫琴,知名IT作家和Java专家,毕业于上海交通大学,随后主要从事基于Java的软件开发工作,在此其间还从事Java方面的培训和咨询工作。2002年开始Java技术领域的创作,文风清晰严谨、深入浅出,深受读者欢迎,其多部作品的销量在同类书籍中一度位居全国榜首。代表著作有:<><><><><<精通Hibernate: Java对象持久化技术详解>> <<精通Struts: 基于MVC的Java Web设计与开发>> <> <>作者的技术支持网址为:www.javathinker.net
【目录】
第1章面向对象开发方法概述1
1.1  结构化的软件开发方法简介3
1.2  面向对象的软件开发方法简介6
1.2.1  对象模型6
1.2.2  UML:可视化建模语言7
1.2.3  Rational Rose:可视化建模
工具7
1.3  面向对象开发中的核心思想
和概念8
1.3.1  问题领域、对象、属性、状态、行为、方法、实现8
1.3.2  类、类型10
1.3.3  消息、服务12
1.3.4  接口13
1.3.5  封装、透明14
1.3.6  抽象18
1.3.7  继承、扩展、覆盖20
1.3.8  组合21
1.3.9  多态、动态绑定24
1.4  UML语言简介26
1.4.1  用例图27
1.4.2  类框图28
1.4.3  时序图29
1.4.4  协作图30
1.4.5  状态转换图30
1.4.6  组件图31
1.4.7  部署图32
1.5  类之间的关系32
1.5.1  关联(Association)33
1.5.2  依赖(Dependency)34
1.5.3  聚集(Aggregation)35
1.5.4  泛化(Generalization)36
1.5.5  实现(Realization)36
1.5.6  区分依赖、关联和聚集关系36
1.6  实现Panel系统39
1.6.1  扩展Panel系统42
1.6.2  用配置文件进一步提高Panel
系统的可维护性43
1.6.3  运行Panel系统45
1.7  小结45
1.8  思考题46
第2章第一个Java应用47
2.1  创建Java源文件47
2.1.1  Java源文件结构49
2.1.2  包声明语句49
2.1.3  包引入语句51
2.1.4  方法的声明53
2.1.5  程序入口main()方法的声明54
2.1.6  给main()方法传递参数55
2.1.7  注释语句55
2.1.8  关键字56
2.1.9  标识符56
2.1.10  编程规范57
2.2  用JDK管理Java应用57
2.2.1  JDK简介以及安装方法58
2.2.2  编译Java源文件60
2.2.3  运行Java程序62
2.2.4  给Java应用打包65
2.3  使用和创建JavaDoc文档66
2.3.1  JavaDoc标记68
2.3.2  javadoc命令的用法73
2.4  Java虚拟机运行Java程序的
基本原理75
2.5  小结77
2.6  思考题78
第3章数据类型和变量81
3.1  基本数据类型82
3.1.1  boolean类型82
3.1.2  byte、short、int和long
类型83
3.1.3  char类型与字符编码85
3.1.4  float和double类型87
3.2  引用类型91
3.2.1  基本类型与引用类型的区别92
3.2.2  用new关键字创建对象94
3.3  变量的作用域95
3.3.1  实例变量和静态变量的
生命周期97
3.3.2  局部变量的生命周期100
3.3.3  成员变量和局部变量同名101
3.3.4  将局部变量的作用域
最小化102
3.4  对象的默认引用:this103
3.5  参数传递105
3.6  变量的初始化以及默认值107
3.6.1  成员变量的初始化107
3.6.2  局部变量的初始化108
3.7  直接数109
3.7.1  直接数的类型110
3.7.2  直接数的赋值111
3.8  小结112
3.9  思考题113
第4章操作符115
4.1  操作符简介115
4.2  整型操作符116
4.2.1  一元整型操作符117
4.2.2  二元整型操作符118
4.3  浮点型操作符123
4.4  比较操作符和逻辑操作符124
4.5  特殊操作符“?:”127
4.6  字符串连接操作符“+”127
4.7  操作符“==”与对象的
equals()方法129
4.7.1  操作符“==”129
4.7.2  对象的equals()方法130
4.8  instanceof操作符133
4.9  变量的赋值和类型转换135
4.9.1  基本数据类型转换136
4.9.2  引用类型的类型转换139
4.10  小结139
4.11  思考题142
第5章流程控制145
5.1  分支语句146
5.1.1  if else语句146
5.1.2  switch语句150
5.2  循环语句154
5.2.1  while语句154
5.2.2  do while语句156
5.2.3  for语句158
5.2.4  foreach语句161
5.2.5  多重循环162
5.3  流程跳转语句162
5.4  综合例子:八皇后问题165
5.5  小结168
5.6  思考题169
第6章继承173
6.1  继承的基本语法173
6.2  方法重载(Overload)175
6.3  方法覆盖(Override)177
6.4  方法覆盖与方法重载的
异同183
6.5  super关键字183
6.6  多态185
6.7  继承的利弊和使用原则189
6.7.1  继承树的层次不可太多190
6.7.2  继承树的上层为抽象层190
6.7.3  继承关系最大的弱点:
打破封装191
6.7.4  精心设计专门用于被继承
的类193
6.7.5  区分对象的属性与继承195
6.8  比较组合与继承197
6.8.1  组合关系的分解过程对应
继承关系的抽象过程197
6.8.2  组合关系的组合过程对应
继承关系的扩展过程200
6.9  小结203
6.10  思考题204
第7章  Java语言中的修饰符209
7.1  访问控制修饰符210
7.2  abstract修饰符212
7.3  final修饰符214
7.3.1  final类215
7.3.2  final方法215
7.3.3  final变量216
7.4  static修饰符220
7.4.1  static变量220
7.4.2  static方法223
7.4.3  static代码块226
7.4.4  用static进行静态导入228
7.5  小结228
7.6  思考题230
第8章接口233
8.1  接口的概念和基本特征234
8.2  比较抽象类与接口237
8.3  与接口相关的设计模式241
8.3.1  定制服务模式241
8.3.2  适配器模式245
8.3.3  默认适配器模式250
8.3.4  代理模式251
8.3.5  标识类型模式256
8.3.6  常量接口模式257
8.4  小结258
8.5  思考题259
第9章异常处理261
9.1  Java异常处理机制概述262
9.1.1  Java异常处理机制的优点262
9.1.2  Java虚拟机的方法调用栈264
9.1.3  异常处理对性能的影响267
9.2  运用Java异常处理机制267
9.2.1  try-catch语句:捕获异常267
9.2.2  finally语句:任何情况下
必须执行的代码268
9.2.3  throws子句:声明可能会
出现的异常270
9.2.4  throw语句:抛出异常271
9.2.5  异常处理语句的语法规则271
9.2.6  异常流程的运行过程274
9.2.7  跟踪丢失的异常278
9.3  Java异常类280
9.3.1  运行时异常282
9.3.2  受检查异常
(Checked Exception)282
9.3.3  区分运行时异常和受
检查异常283
9.4  用户定义异常285
9.4.1  异常转译和异常链285
9.4.2  处理多样化异常288
9.5  异常处理原则289
9.5.1  异常只能用于非正常情况290
9.5.2  为异常提供说明文档290
9.5.3  尽可能地避免异常291
9.5.4  保持异常的原子性292
9.5.5  避免过于庞大的try代码块294
9.5.6  在catch子句中指定具体的
异常类型294
9.5.7  不要在catch代码块中忽略
被捕获的异常294
9.6  记录日志295
9.6.1  创建Logger对象及设置
日志级别296
9.6.2  生成日志297
9.6.3  把日志输出到文件297
9.6.4  设置日志的输出格式298
9.7  使用断言299
9.8  小结300
9.9  思考题301
第10章类的生命周期305
10.1  Java虚拟机及程序的
生命周期305
10.2  类的加载、连接和初始化305
10.2.1  类的加载306
10.2.2  类的验证307
10.2.3  类的准备307
10.2.4  类的解析308
10.2.5  类的初始化308
10.2.6  类的初始化的时机310
10.3  类加载器313
10.3.1  类加载的父亲委托机制315
10.3.2  创建用户自定义的类
加载器317
10.3.3  URLClassLoader类323
10.4  类的卸载324
10.5  小结325
10.6  思考题326
第11章对象的生命周期327
11.1  创建对象的方式327
11.2  构造方法330
11.2.1  重载构造方法331
11.2.2  默认构造方法332
11.2.3  子类调用父类的构造方法333
11.2.4  构造方法的作用域337
11.2.5  构造方法的访问级别337
11.3  静态工厂方法338
11.3.1  单例类340
11.3.2  枚举类342
11.3.3  不可变(immutable)类与
可变类344
11.3.4  具有实例缓存的
不可变类348
11.3.5  松耦合的系统接口350
11.4  垃圾回收351
11.4.1  对象的可触及性352
11.4.2  垃圾回收的时间354
11.4.3  对象的finalize()方法简介354
11.4.4  对象的finalize()方法的
特点355
11.4.5  比较finalize()方法和finally
代码块357
11.5  清除过期的对象引用358
11.6  对象的强、软、弱和
虚引用360
11.7  小结366
11.8  思考题367
第12章内部类371
12.1  内部类的基本语法371
12.1.1  实例内部类373
12.1.2  静态内部类376
12.1.3  局部内部类377
12.2  内部类的继承379
12.3  子类与父类中的内部类
同名380
12.4  匿名类381
12.5  内部接口以及接口中的
内部类384
12.6  内部类的用途385
12.6.1  封装类型385
12.6.2  直接访问外部类的成员385
12.6.3  回调386
12.7  内部类的类文件388
12.8  小结389
12.9  思考题389
第13章多线程393
13.1  Java线程的运行机制393
13.2  线程的创建和启动395
13.2.1  扩展java.lang.Thread类395
13.2.2  实现Runnable接口400
13.3  线程的状态转换402
13.3.1  新建状态402
13.3.2  就绪状态402
13.3.3  运行状态402
13.3.4  阻塞状态403
13.3.5  死亡状态404
13.4  线程调度405
13.4.1  调整各个线程的优先级406
13.4.2  线程睡眠:Thread.sleep()
方法408
13.4.3  线程让步:
Thead.yield()方法409
13.4.4  等待其他线程结束:join()410
13.5  获得当前线程对象的引用411
13.6  后台线程412
13.7  定时器413
13.8  线程的同步415
13.8.1  同步代码块418
13.8.2  线程同步的特征422
13.8.3  同步与并发425
13.8.4  线程安全的类426
13.8.5  释放对象的锁427
13.8.6  死锁429
13.9  线程通信430
13.10  中断阻塞435
13.11  线程控制436
13.11.1  被废弃的suspend()和
resume()方法437
13.11.2  被废弃的stop()方法438
13.11.3  以编程的方式控制线程438
13.12  线程组440
13.13  处理线程未捕获的异常441
13.14  ThreadLocal类443
13.15  concurrent并发包445
13.15.1  用于线程同步的Lock
外部锁446
13.15.2  用于线程通信的Condition
条件接口447
13.15.3  支持异步计算的Callable
接口和Future接口450
13.15.4  通过线程池来高效管理
多个线程452
13.15.5  BlockingQueue阻塞队列454
13.16  小结457
13.17  思考题458
第14章数组461
14.1  数组变量的声明461
14.2  创建数组对象462
14.3  访问数组的元素和长度463
14.4  数组的初始化465
14.5  多维数组以及不规则数组465
14.6  调用数组对象的方法467
14.7  把数组作为方法参数或
返回值467
14.8  数组排序470
14.9  数组的二分查找算法471
14.10  哈希表472
14.11  数组实用类:Arrays477
14.12  用符号“…”声明数目
可变参数480
14.13  小结481
14.14  思考题481
第15章  Java集合485
15.1  Collection和Iterator接口486
15.2  集合中直接加入基本类型
数据489
15.3  Set(集)490
15.3.1  Set的一般用法490
15.3.2  HashSet类491
15.3.3  TreeSet类493
15.4  List(列表)497
15.4.1  访问列表的元素498
15.4.2  为列表排序498
15.4.3  ListIterator接口499
15.4.4  获得固定长度的
List对象500
15.4.5  比较Java数组和各种List
的性能500
15.5  Queue(队列)503
15.5.1  Deque(双向队列)504
15.5.2  PriorityQueue
(优先级队列)505
15.6  Map(映射)505
15.7  HashSet和HashMap的
负载因子507
15.8  集合实用类:Collections508
15.9  线程安全的集合510
15.10  集合与数组的互换511
15.11  集合的批量操作512
15.12  历史集合类513
15.13  枚举类型517
15.13.1  枚举类型的构造方法519
15.13.2  EnumSet类和
EnumMap类520
15.14  小结521
15.15  思考题521
第16章泛型523
16.1  Java集合的泛型523
16.2  定义泛型类和泛型接口524
16.3  用extends关键字限定
类型参数526
16.4  定义泛型数组527
16.5  定义泛型方法528
16.6  使用“?”通配符529
16.7  使用泛型的注意事项530
16.8  小结531
16.9  思考题531
第17章  Lambda表达式533
17.1  Lambda表达式的基本用法533
17.2  用Lambda表达式代替
内部类534
17.3  Lambda表达式和集合的
forEach()方法535
17.4  用Lambda表达式对集合
进行排序536
17.5  Lambda表达式与
Stream API联合使用537
17.6  Lambda表达式可操纵的
变量作用域539
17.7  Lambda表达式中的方法
引用540
17.8  函数式接口
(FunctionalInterface)541
17.9  总结Java语法糖541
17.10  小结542
17.11  思考题542
第18章输入与输出(I/O)545
18.1  输入流和输出流概述546
18.2  输入流547
18.2.1  字节数组输入流:
ByteArrayInputStream类548
18.2.2  文件输入流:
FileInputStream类549
18.2.3  管道输入流:
PipedInputStream551
18.2.4  顺序输入流:
SequenceInputStream类552
18.3  过滤输入流:
FilterInputStream552
18.3.1  装饰器设计模式553
18.3.2  过滤输入流的种类554
18.3.3  DataInputStream类555
18.3.4  BufferedInputStream类556
18.3.5  PushbackInputStream类557
18.4  输出流557
18.4.1  字节数组输出流:
ByteArrayOutputStream类557
18.4.2  文件输出流:
FileOutputStream558
18.5  过滤输出流:
FilterOutputStream559
18.5.1  DataOutputStream559
18.5.2  BufferedOutputStream559
18.5.3  PrintStream类561
18.6  Reader/Writer概述563
18.7  Reader类565
18.7.1  字符数组输入流:
CharArrayReader类566
18.7.2  字符串输入流:
StringReader类566
18.7.3  InputStreamReader类567
18.7.4  FileReader类568
18.7.5  BufferedReader类568
18.8  Writer类568
18.8.1  字符数组输出流:
CharArrayWriter类569
18.8.2  OutputStreamWriter类570
18.8.3  FileWriter类572
18.8.4  BufferedWriter类573
18.8.5  PrintWriter类573
18.9  标准I/O574
18.9.1  重新包装标准输入和输出574
18.9.2  标准I/O重定向575
18.10  随机访问文件类:
RandomAccessFile576
18.11  新I/O类库577
18.11.1  缓冲器Buffer概述578
18.11.2  通道Channel概述579
18.11.3  字符编码Charset类概述581
18.11.4  用FileChannel读写文件581
18.11.5  控制缓冲区582
18.11.6  字符编码转换583
18.11.7  缓冲区视图584
18.11.8  文件映射缓冲区:
MappedByteBuffer586
18.11.9  文件加锁587
18.12  对象的序列化与反序列化589
18.13  自动释放资源595
18.14  用File类来查看、创建和
删除文件或目录596
18.15  用java.nio.file类库来操作
文件系统599
18.15.1  复制、移动文件以及遍历、
过滤目录树600
18.15.2  查看ZIP压缩文件601
18.16  小结602
18.17  思考题603
第19章图形用户界面605
19.1  AWT组件和Swing组件605
19.2创建图形用户界面的
基本步骤608
19.3布局管理器610
19.3.1  FlowLayout(流式布局
管理器)611
19.3.2  BorderLayout(边界布局
管理器)613
19.3.3  GridLayout(网格布局
管理器)616
19.3.4  CardLayout(卡片布局
管理器)619
19.3.5  GridBagLayout(网格包
布局管理器)620
19.4事件处理626
19.4.1  事件处理的软件实现626
19.4.2  事件源�事件和监听器
的类层次和关系632
19.5  AWT绘图637
19.5.1  Graphics类639
19.5.2  Graphics2D类644
19.6  AWT线程(事件分派
线程)647
19.7小结649
19.8思考题650
第20章常用Swing组件653
20.1  边框(Border)653
20.2  按钮组件(AbstractButton)
及子类654
20.3  文本框(JTextField)657
20.4  文本区域(JTextArea)与
滚动面板(JScrollPane)660
20.5  复选框(JCheckBox)与单选
按钮(JRadioButton)661
20.6  下拉列表(JComboBox)664
20.7  列表框(JList)665
20.8  页签面板(JTabbedPane)667
20.9  菜单(JMenu)669
20.10  对话框(JDialog)674
20.11  文件对话框
(JFileChoose)676
20.12  消息框679
20.13  制作动画681
20.14  播放音频文件683
20.15  BoxLayout布局管理器686
20.16  设置Swing界面的外观
和感觉689
20.17  小结691
20.18  思考题692
第21章  Java常用类693
21.1  Object类693
21.2  String类和StringBuffer类694
21.2.1  String类694
21.2.2  “hello”与new String(“hello”)
的区别697
21.2.3  StringBuffer类698
21.2.4  比较String类与
StringBuffer类699
21.2.5  正则表达式701
21.2.6  格式化字符串703
21.3  包装类707
21.3.1  包装类的构造方法707
21.3.2  包装类的常用方法708
21.3.3  包装类的自动装箱和拆箱709
21.4  Math类710
21.5  Random类712
21.6  传统的处理日期/时间的类712
21.6.1  Date类713
21.6.2  DateFormat类713
21.6.3  Calendar类715
21.7  新的处理日期/时间的类716
21.7.1  LocalDate类717
21.7.2  LocalTime类718
21.7.3  LocalDateTime类718
21.8  BigInteger类719
21.9  BigDecimal类720
21.10  用Optional类避免空指针
异常722
21.11  小结724
21.12  思考题725
第22章  Annotation注解727
22.1  自定义Annotation注解
类型727
22.2  在类的源代码中引用
注解类型730
22.3  在程序中运用反射机制读取
类的注解信息732
22.4  基本内置注解735
22.5  小结736
22.6  思考题736
点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP