最新公告
  • 欢迎您光临源码库,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入
  • 《JAVA面向对象编程(孙卫琴)》PDF

    资源名称:《JAVA面向对象编程(孙卫琴)》PDF

    内容简介:

    本书采用由浅入深、与实际应用紧密结合的方式,利用大量经典实用的实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结优化Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理。本书的实例都基于最新的JDK8版本。本书的特色是以6条主线贯穿书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。另外,本书还贯穿了Oracle公司的OCJP(Oracle Certified Java Programmer)认证的考试要点。

    作者简介:

    孙卫琴,知名IT作家和Java专家,毕业于上海交通大学,随后主要从事基于Java的软件开发工作,在此其间还从事Java方面的培训和咨询工作。2002年开始Java技术领域的创作,文风清晰严谨、深入浅出,深受读者欢迎,其多部作品的销量在同类书籍中一度位居全国榜首。代表著作有:

    《Java面向对象编程》

    《Java网络编程精解》

    《Java逍遥游记》

    《Hibernate逍遥游记》

    《精通Hibernate: Java对象持久化技术详解》

    《精通Struts: 基于MVC的Java Web设计与开发》

    《Tomcat与Java Web开发技术详解》

    《Java 2认证考试指南与试题解析》

    资源目录:

    第1章面向对象开发方法概述1

     1.1结构化的软件开发方法简介3

     1.2面向对象的软件开发方法简介6

     1.2.1对象模型6

     1.2.2UML:可视化建模语言7

     1.2.3RationalRose:可视化建模工具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.4UML语言简介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.1Java源文件结构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.1JDK简介以及安装方法58

     2.2.2编译Java源文件60

     2.2.3运行Java程序62

     2.2.4给Java应用打包65

     2.3使用和创建JavaDoc文档66

     2.3.1JavaDoc标记68

     2.3.2javadoc命令的用法73

     2.4Java虚拟机运行Java程序的基本原理75

     2.5小结77

     2.6思考题78

    第3章数据类型和变量81

     3.1基本数据类型82

     3.1.1boolean类型82

     3.1.2byte、short、int和long类型83

     3.1.3char类型与字符编码85

     3.1.4float和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.8instanceof操作符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.1ifelse语句146

     5.1.2switch语句150

     5.2循环语句154

     5.2.1while语句154

     5.2.2dowhile语句156

     5.2.3for语句158

     5.2.4foreach语句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.5super关键字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.2abstract修饰符212

     7.3final修饰符214

     7.3.1final类215

     7.3.2final方法215

     7.3.3final变量216

     7.4static修饰符220

     7.4.1static变量220

     7.4.2static方法223

     7.4.3static代码块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.1Java异常处理机制概述262

     9.1.1Java异常处理机制的优点262

     9.1.2Java虚拟机的方法调用栈264

     9.1.3异常处理对性能的影响267

     9.2运用Java异常处理机制267

     9.2.1try—catch语句:捕获异常267

     9.2.2finally语句:任何情况下必须执行的代码268

     9.2.3throws子句:声明可能会出现的异常270

     9.2.4throw语句:抛出异常271

     9.2.5异常处理语句的语法规则271

     9.2.6异常流程的运行过程274

     9.2.7跟踪丢失的异常278

     9.3Java异常类280

     9.3.1运行时异常282

     9.3.2受检查异常(CheckedException)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.1Java虚拟机及程序的生命周期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.3URLClassLoader类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.1Java线程的运行机制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.14ThreadLocal类443

     13.15concurrent并发包445

     13.15.1用于线程同步的Lock外部锁446

     13.15.2用于线程通信的Condition条件接口447

     13.15.3支持异步计算的Callable接口和Future接口450

     13.15.4通过线程池来高效管理多个线程452

     13.15.5BlockingQueue阻塞队列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.1Collection和Iterator接口486

     15.2集合中直接加入基本类型数据489

     15.3Set(集)490

     15.3.1Set的一般用法490

     15.3.2HashSet类491

     15.3.3TreeSet类493

     15.4List(列表)497

     15.4.1访问列表的元素498

     15.4.2为列表排序498

     15.4.3ListIterator接口499

     15.4.4获得固定长度的List对象500

     15.4.5比较Java数组和各种List的性能500

     15.5Queue(队列)503

     15.5.1Deque(双向队列)504

     15.5.2PriorityQueue(优先级队列)505

     15.6Map(映射)505

     15.7HashSet和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.2EnumSet类和EnumMap类520

     15.14小结521

     15.15思考题521

    第16章泛型523

     16.1Java集合的泛型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.1Lambda表达式的基本用法533

     17.2用Lambda表达式代替内部类534

     17.3Lambda表达式和集合的forEach()方法535

     17.4用Lambda表达式对集合进行排序536

     17.5Lambda表达式与StreamAPI联合使用537

     17.6Lambda表达式可操纵的变量作用域539

     17.7Lambda表达式中的方法引用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.3DataInputStream类555

     18.3.4BufferedInputStream类556

     18.3.5PushbackInputStream类557

     18.4输出流557

     18.4.1字节数组输出流:ByteArrayOutputStream类557

     18.4.2文件输出流:FileOutputStream558

     18.5过滤输出流:FilterOutputStream559

     18.5.1DataOutputStream559

     18.5.2BufferedOutputStream559

     18.5.3PrintStream类561

     18.6Reader/Writer概述563

     18.7Reader类565

     18.7.1字符数组输入流:CharArrayReader类566

     18.7.2字符串输入流:StringReader类566

     18.7.3InputStreamReader类567

     18.7.4FileReader类568

     18.7.5BufferedReader类568

     18.8Writer类568

     18.8.1字符数组输出流:CharArrayWriter类569

     18.8.2OutputStreamWriter类570

     18.8.3FileWriter类572

     18.8.4BufferedWriter类573

     18.8.5PrintWriter类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.1AWT组件和Swing组件605

     19.2创建图形用户界面的基本步骤608

     19.3布局管理器610

     19.3.1FlowLayout(流式布局管理器)611

     19.3.2BorderLayout(边界布局管理器)613

     19.3.3GridLayout(网格布局管理器)616

     19.3.4CardLayout(卡片布局管理器)619

     19.3.5GridBagLayout(网格包布局管理器)620

     19.4事件处理626

     19.4.1事件处理的软件实现626

     19.4.2事件源﹑事件和监听器的类层次和关系632

     19.5AWT绘图637

     19.5.1Graphics类639

     19.5.2Graphics2D类644

     19.6AWT线程(事件分派线程)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.15BoxLayout布局管理器686

     20.16设置Swing界面的外观和感觉689

     20.17小结691

     20.18思考题692

    第21章Java常用类693

     21.1Object类693

     21.2String类和StringBuffer类694

     21.2.1String类694

     21.2.2“hello”与newString(“hello”)的区别697

     21.2.3StringBuffer类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.4Math类710

     21.5Random类712

     21.6传统的处理日期/时间的类712

     21.6.1Date类713

     21.6.2DateFormat类713

     21.6.3Calendar类715

     21.7新的处理日期/时间的类716

     21.7.1LocalDate类717

     21.7.2LocalTime类718

     21.7.3LocalDateTime类718

     21.8BigInteger类719

     21.9BigDecimal类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

    猜你在找

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!

    源码资源库 » 《JAVA面向对象编程(孙卫琴)》PDF