书[0名0]: | Java编程的逻辑|7289346 |
图书定价: | 99元 |
图书作者: | 马俊昌 |
出版社: | 机械工业出版社 |
出版日期: | 2018/1/1 0:00:00 |
ISBN号: | 9787111587729 |
开本: | 16开 |
页数: | 0 |
版次: | 1-1 |
内容简介 |
本书涵盖以下内容:① 讲解编程基础,了解计算机程序的执行流程与基本元素;② 讲解计算机的基本元素由来与基本运行机制(二进制描述);③ 讲解面向对象的编程原理与逻辑,设计类、继承与多态、接口与抽象类、代码的组织机制。④ 讲解常用基础类的实现方式与执行机制。⑤ 讲解泛型、容器类、数据结构和算[0法0];⑥ 讲解文件系统的设计与实现。⑦ 讲解并发编程的基础、实现与编程技巧;⑧ 讲解动态、声明式、函数式编程的编程思路、API与技巧。 |
目录 |
读者[0评0]论 前言 部分 编程基础与二进制 [0第0]1章 编程基础2 1.1 数据类型和变量3 1.2 赋值4 1.2.1 基本类型4 1.2.2 数组类型6 1.3 基本运算8 1.3.1 算术运算8 1.3.2 比较运算10 1.3.3 逻辑运算10 1.3.4 小结11 1.4 条件执行11 1.4.1 语[0法0]和陷阱11 1.4.2 实现原理14 1.5 循环16 1.5.1 循环的4种形式16 1.5.2 循环控制19 1.5.3 实现原理20 1.5.4 小结20 1.6 函数的用[0法0]21 1.6.1 基本概念21 1.6.2 进一步理解函数23 1.6.3 小结27 1.7 函数调用的基本原理27 1.7.1 栈的概念27 1.7.2 函数执行的基本原理28 1.7.3 数组和对象的内存分配29 1.7.4 递归调用的原理30 1.7.5 小结31 [0第0]2章 理解数据背后的二进制33 2.1 整数的二进制表示与位运算33 2.1.1 正整数的二进制表示33 2.1.2 负整数的二进制表示34 2.1.3 十六进制35 2.1.4 位运算36 2.2 小数的二进制表示37 2.2.1 小数计算为什么[0会0]出错37 2.2.2 二进制表示38 2.3 字符的编码与乱码39 2.3.1 常见非Unicode编码39 2.3.2 Unicode编码42 2.3.3 编码转换44 2.3.4 乱码的原因45 2.3.5 从乱码中恢复46 2.4 char的真正含义49 [0第0]二部分 面向对象 [0第0]3章 类的基础52 3.1 类的基本概念52 3.1.1 函数容器52 3.1.2 自定义数据类型53 3.1.3 定义个类55 3.1.4 使用个类55 3.1.5 变量默认值57 3.1.6 private变量57 3.1.7 构造方[0法0]58 3.1.8 类和对象的生命周期60 3.1.9 小结61 3.2 类的组合61 3.2.1 String和Date61 3.2.2 图形类62 3.2.3 用类描述电[0商0]概念63 3.2.4 用类描述人之间的血缘关系65 3.2.5 目录和文件66 3.2.6 一些说明67 3.2.7 小结68 3.3 代码的组织机制68 3.3.1 包的概念68 3.3.2 jar包71 3.3.3 程序的编译与链接71 3.3.4 小结72 [0第0]4章 类的继承73 4.1 基本概念73 4.1.1 根父类Object74 4.1.2 方[0法0]重写74 4.1.3 图形类继承体系75 4.1.4 小结80 4.2 继承的细节80 4.2.1 构造方[0法0]81 4.2.2 重[0名0]与静态绑定82 4.2.3 重载和重写83 4.2.4 父子类型转换85 4.2.5 继承访问[0权0]限protected85 4.2.6 可见性重写86 4.2.7 防止继承final87 4.3 继承实现的基本原理88 4.3.1 示例88 4.3.2 类加载过程90 4.3.3 对象创建的过程91 4.3.4 方[0法0]调用的过程92 4.3.5 变量访问的过程93 4.4 为什么说继承是把[0[0双0]0]刃剑94 4.4.1 继承破坏封装94 4.4.2 封装是如何被破坏的94 4.4.3 继承没有反映is-a关系97 4.4.4 如何应对继承的[0[0双0]0]面性97 [0第0]5章 类的扩展100 5.1 接口的本质100 5.1.1 接口的概念101 5.1.2 定义接口101 5.1.3 实现接口102 5.1.4 使用接口103 5.1.5 接口的细节105 5.1.6 使用接口替代继承106 5.1.7 Java 8和Java 9对接口的增强106 5.1.8 小结108 5.2 抽象类108 5.2.1 抽象方[0法0]和抽象类108 5.2.2 为什么需要抽象类109 5.2.3 抽象类和接口109 5.2.4 小结110 5.3 内部类的本质111 5.3.1 静态内部类111 5.3.2 成员内部类113 5.3.3 方[0法0]内部类115 5.3.4 匿[0名0]内部类117 5.4 枚举的本质119 5.4.1 基础120 5.4.2 典型场景122 [0第0]6章 异常125 6.1 初识异常125 6.1.1 NullPointerException(空指针异常)125 6.1.2 NumberFormatException(数字格式异常)126 6.2 异常类128 6.2.1 Throwable128 6.2.2 异常类体系129 6.2.3 自定义异常130 6.3 异常处理131 6.3.1 catch匹配131 6.3.2 重新抛出异常131 6.3.3 fin[0all0]y132 6.3.4 try-with-resources133 6.3.5 throws134 6.3.6 对比受检和未受检异常135 6.4 如何使用异常135 6.4.1 异常应该且仅用于异常情况136 6.4.2 异常处理的目标136 6.4.3 异常处理的一般逻辑137 [0第0]7章 常用基础类138 7.1 包装类138 7.1.1 基本用[0法0]139 7.1.2 共同点140 7.1.3 剖析Integer与二进制算[0法0]144 7.1.4 剖析Character149 7.2 剖析String155 7.2.1 基本用[0法0]156 7.2.2 走进String内部157 7.2.3 编码转换157 7.2.4 不可变性158 7.2.5 常量字符串159 7.2.6 hashCode160 7.2.7 正则表达式161 7.3 剖析StringBuilder162 7.3.1 基本用[0法0]162 7.3.2 基本实现原理162 7.3.3 String的+和+ =运算符165 7.4 剖析Arrays166 7.4.1 用[0法0]166 7.4.2 多维数组171 7.4.3 实现原理172 7.4.4 小结174 7.5 剖析日期和时间174 7.5.1 基本概念174 7.5.2 日期和时间API175 7.5.3 局限性182 7.6 随机183 7.6.1 Math.random183 7.6.2 Random184 7.6.3 随机的基本原理185 7.6.4 随机密码187 7.6.5 洗牌189 7.6.6 带[0权0]重的随机选择189 7.6.7 抢红包算[0法0]191 7.6.8 北京购车摇号算[0法0]192 7.6.9 小结193 [0第0]三部分 泛型与容器 [0第0]8章 泛型196 8.1 基本概念和原理196 8.1.1 一个简单泛型类197 8.1.2 容器类199 8.1.3 泛型方[0法0]201 8.1.4 泛型接口202 8.1.5 类型参数的限定202 8.1.6 小结205 8.2 解析通配符205 8.2.1 更简洁的参数类型限定205 8.2.2 理解通配符206 8.2.3 [0超0]类型通配符208 8.2.4 通配符比较211 8.3 细节和局限性211 8.3.1 使用泛型类、方[0法0]和接口211 8.3.2 定义泛型类、方[0法0]和接口213 8.3.3 泛型与数组214 8.3.4 小结217 [0第0]9章 列表和队列218 9.1 剖析ArrayList218 9.1.1 基本用[0法0]218 9.1.2 基本原理219 9.1.3 迭代221 9.1.4 ArrayList实现的接口225 9.1.5 ArrayList的其他方[0法0]227 9.1.6 ArrayList特点分析229 9.1.7 小结229 9.2 剖析LinkedList229 9.2.1 用[0法0]230 9.2.2 实现原理232 9.2.3 LinkedList特点分析238 9.3 剖析ArrayDeque239 9.3.1 实现原理239 9.3.2 ArrayDeque特点分析244 [0第0]10章 Map和Set245 10.1 剖析HashMap245 10.1.1 Map接口245 10.1.2 HashMap247 10.1.3 实现原理247 10.1.4 小结256 10.2 剖析HashSet256 10.2.1 用[0法0]256 10.2.2 实现原理258 10.2.3 小结259 10.3 排序二叉树260 10.3.1 基本概念260 10.3.2 基本算[0法0]261 10.3.3 平衡的排序二叉树263 10.3.4 小结264 10.4 剖析TreeMap264 10.4.1 基本用[0法0]265 10.4.2 实现原理267 10.4.3 小结273 10.5 剖析TreeSet274 10.5.1 基本用[0法0]274 10.5.2 实现原理275 10.5.3 小结276 10.6 剖析LinkedHashMap276 10.6.1 基本用[0法0]276 10.6.2 实现原理279 10.6.3 LinkedHashSet282 10.6.4 小结282 10.7 剖析EnumMap283 10.7.1 基本用[0法0]283 10.7.2 实现原理285 10.7.3 小结287 10.8 剖析EnumSet287 10.8.1 基本用[0法0]287 10.8.2 应用场景288 10.8.3 实现原理291 10.8.4 小结294 [0第0]11章 堆与[0优0]先级队列295 11.1 堆的概念与算[0法0]296 11.1.1 基本概念296 11.1.2 堆的算[0法0]298 11.1.3 小结302 11.2 剖析PriorityQueue302 11.2.1 基本用[0法0]302 11.2.2 实现原理304 11.2.3 小结309 11.3 堆和PriorityQueue的应用309 11.3.1 求前K个[0大0]的元素309 11.3.2 求中值311 11.3.3 小结314 [0第0]12章 通用容器类和总结315 12.1 抽象容器类315 12.1.1 AbstractCollection316 12.1.2 AbstractList319 12.1.3 AbstractSequentialList321 12.1.4 AbstractMap323 12.1.5 AbstractSet325 12.1.6 AbstractQueue325 12.1.7 小结326 12.2 Collections326 12.2.1 查找和替换327 12.2.2 排序和调整顺序329 12.2.3 添加和修改332 12.2.4 适配器333 12.2.5 装饰器338 12.2.6 小结342 12.3 容器类总结342 12.3.1 用[0法0]和特点342 12.3.2 数据结构和算[0法0]344 12.3.3 设计思维和模式344 [0第0]四部分 文件 [0第0]13章 文件基本技术348 13.1 文件概述348 13.1.1 基本概念和常识348 13.1.2 Java文件概述352 13.2 二进制文件和字节流355 13.2.1 InputStream/OutputStream355 13.2.2 FileInputStream/File-OutputStream357 13.2.3 ByteArrayInputStream/ByteArrayOutputStream359 13.2.4 DataInputStream/Data-OutputStream361 13.2.5 BufferedInputStream/BufferedOutputStream363 13.2.6 实用方[0法0]364 13.2.7 小结365 13.3 文本文件和字符流365 13.3.1 基本概念366 13.3.2 Reader/Writer368 13.3.3 InputStreamReader/Output-StreamWriter368 13.3.4 FileReader/FileWriter369 13.3.5 CharArrayReader/Char-ArrayWriter370 13.3.6 StringReader/StringWriter370 13.3.7 BufferedReader/Buffered-Writer371 13.3.8 PrintWriter372 13.3.9 Scanner374 13.3.10 标准流374 13.3.11 实用方[0法0]376 13.3.12 小结377 13.4 文件和目录操作378 13.4.1 构造方[0法0]378 13.4.2 文件元数据378 13.4.3 文件操作379 13.4.4 目录操作380 [0第0]14章 文件高级技术383 14.1 常见文件类型处理384 14.1.1 属性文件384 14.1.2 CSV文件385 14.1.3 Excel388 14.1.4 HTML389 14.1.5 压缩文件391 14.2 随机读写文件394 14.2.1 用[0法0]394 14.2.2 设计一个键值数据库BasicDB396 14.2.3 BasicDB的实现397 14.2.4 小结401 14.3 内存映射文件402 14.3.1 基本概念402 14.3.2 用[0法0]403 14.3.3 设计一个消息队列BasicQueue404 14.3.4 实现消息队列406 14.3.5 小结409 14.4 标准序列化机制409 14.4.1 基本用[0法0]409 14.4.2 复杂对象411 14.4.3 定制序列化411 14.4.4 序列化的基本原理413 14.4.5 版本问题414 14.4.6 序列化特点分析414 14.5 使用Jackson序列化为JSON/XML/MessagePack415 14.5.1 基本概念415 14.5.2 基本用[0法0]415 14.5.3 容器对象418 14.5.4 复杂对象419 14.5.5 定制序列化420 14.5.6 Jackson对XML支持的局限性428 14.5.7 小结428 [0第0]五部分 并发 [0第0]15章 并发基础[0知0]识430 15.1 线程的基本概念430 15.1.1 创建线程430 15.1.2 线程的基本属性和方[0法0]432 15.1.3 共享内存及可能存在的问题435 15.1.4 线程的[0优0]点及成本438 15.2 理解synchronized439 15.2.1 用[0法0]和基本原理439 15.2.2 进一步理解synchronized443 15.2.3 同步容器及其注意事项445 15.3 线程的基本协作机制450 15.3.1 协作的场景450 15.3.2 wait/[0no0]tify450 15.3.3 生产者/消费者模式453 15.3.4 同时开始455 15.3.5 等待结束456 15.3.6 异步结果458 15.3.7 集合点461 15.3.8 小结462 15.4 线程的中断463 15.4.1 取消/关闭的场景463 15.4.2 取消/关闭的机制463 15.4.3 线程对中断的反应464 15.4.4 如何正确地取消/关闭线程467 15.4.5 小结467 [0第0]16章 并发包的基石468 16.1 原子变量和CAS468 16.1.1 AtomicInteger469 16.1.2 ABA问题472 16.1.3 小结473 16.2 显式锁473 16.2.1 接口Lock473 16.2.2 可重入锁ReentrantLock474 16.2.3 ReentrantLock的实现原理478 16.2.4 对比ReentrantLock和synchronized483 16.3 显式条件483 16.3.1 用[0法0]483 16.3.2 生产者/消费者模式486 16.3.3 实现原理487 16.3.4 小结489 [0第0]17章 并发容器490 17.1 写时复制的List和Set490 17.1.1 CopyOnWriteArrayList490 17.1.2 CopyOnWriteArraySet493 17.2 ConcurrentHashMap493 17.2.1 并发安全494 17.2.2 原子复合操作495 17.2.3 高并发的基本机制495 17.2.4 迭代安全496 17.2.5 弱一致性497 17.2.6 小结497 17.3 基于跳表的Map和Set498 17.3.1 基本概念498 17.3.2 基本实现原理499 17.4 并发队列501 17.4.1 无锁非阻塞并发队列501 17.4.2 普通阻塞队列502 17.4.3 [0优0]先级阻塞队列503 17.4.4 延时阻塞队列503 17.4.5 其他阻塞队列503 [0第0]18章 异步任务执行服务505 18.1 基本概念和原理505 18.1.1 基本接口505 18.1.2 基本用[0法0]507 18.1.3 基本实现原理509 18.1.4 小结513 18.2 线程池513 18.2.1 理解线程池513 18.2.2 工厂类Executors516 18.2.3 线程池的死锁518 18.2.4 小结518 18.3 定时任务的那些陷阱518 18.3.1 Timer和TimerTask518 18.3.2 ScheduledExecutorService523 18.3.3 小结526 [0第0]19章 同步和协作工具类527 19.1 读写锁ReentrantReadWrite-Lock527 19.2 信号量Semaphore529 19.3 倒计时门栓CountDownLatch531 19.4 循环栅栏CyclicBarrier533 19.5 理解ThreadLocal535 19.5.1 基本概念和用[0法0]535 19.5.2 使用场景536 19.5.3 基本实现原理538 [0第0]20章 并发总结541 20.1 线程安全的机制541 20.2 线程的协作机制543 20.3 容器类544 20.4 任务执行服务546 [0第0]六部分 动态与函数式编程 [0第0]21章 反射550 21.1 Class类551 21.2 应用示例559 21.3 反射与泛型561 [0第0]22章 注解564 22.1 内置注解564 22.2 框架和库的注解566 22.3 创建注解568 22.4 查看注解信息570 22.5 注解的应用:定制序列化571 22.6 注解的应用:DI容器573 [0第0]23章 动态代理577 23.1 静态代理577 23.2 Java SDK动态代理579 23.2.1 用[0法0]579 23.2.2 基本原理581 23.2.3 动态代理的[0优0]点582 23.3 cglib动态代理584 23.4 Java SDK代理与cglib代理比较585 23.5 动态代理的应用:AOP585 23.5.1 用[0法0]585 23.5.2 实现原理587 [0第0]24章 类加载机制592 24.1 类加载的基本机制和过程593 24.2 理解ClassLoader594 24.3 类加载的应用:可配置的策略597 24.4 自定义ClassLoader598 24.5 自定义ClassLoader的应用:热部署599 [0第0]25章 正则表达式603 25.1 语[0法0]603 25.2 Java API612 25.3 模板引擎618 25.4 剖析常见表达式619 [0第0]26章 函数式编程628 26.1 Lambda表达式628 26.1.1 通过接口传递代码629 26.1.2 Lambda语[0法0]630 26.1.3 函数式接口632 26.1.4 预定义的函数式接口632 26.1.5 方[0法0]引用635 26.1.6 函数的复合636 26.1.7 小结637 26.2 函数式数据处理:基本用[0法0]637 26.2.1 基本示例638 26.2.2 中间操作640 26.2.3 终端操作642 26.2.4 构建流646 26.2.5 函数式数据处理思维646 26.3 函数式数据处理:强[0大0]方便的收集器647 26.3.1 理解collect647 26.3.2 容器收集器648 26.3.3 字符串收集器651 26.3.4 分组651 26.4 组合式异步编程658 26.4.1 异步任务管理658 26.4.2 与Future/FutureTask对比659 26.4.3 响应结果或异常662 26.4.4 构建依赖单一阶段的任务流664 26.4.5 构建依赖两个阶段的任务流665 26.4.6 构建依赖多个阶段的任务流666 26.4.7 小结667 26.5 Java 8的日期和时间API668 26.5.1 表示日期和时间668 26.5.2 格式化670 26.5.3 设置和修改时间671 26.5.4 时间段的计算673 26.5.5 与Date/Calendar对象的转换674 |
评分
评分
评分
评分
评分
评分
评分
评分
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有