吴俊笔记本
  • ABOUT
  • UidGenerator
  • 01 数据结构与算法
    • Long.bitCount() 解析
    • 数据结构
      • 01 数据结构
        • 0 概述
        • 1 线性表(List)
        • 2 栈与队列
        • 3 数组和广义表
        • 4 串(string)
        • 5 树与二叉树
        • 6 图
        • 7 红黑树
        • 8 堆
      • 02 高级数据结构
        • 4 跳跃表(Skip List)
        • 5 划分树
      • 03 查找
        • 0 查找的基本概念
        • 1 顺序表查找
        • 2 有序表查找
        • 3 线性索引查找
        • 4 多路查找树(B 树)
        • 5 散列(Hash)表
      • 04 排序
        • 0 排序的基本概念与分类
        • 1 插入排序
        • 2 交换排序
        • 3 选择排序
        • 4 归并排序
        • 5 分配排序
        • 6 外部排序
      • 动态存储管理
      • 文件管理
    • 算法题
      • 回溯搜索
        • 排列
      • 字符串
        • 把字符串转换成整数
        • 替换空格
      • 数组
        • 二维数组中的查找
        • 数组中重复的数字
      • 树
        • 二叉树的遍历
      • 链表
        • 从尾到头打印链表
        • 单向链表反转
        • 单链表加法
        • 归并链表
  • 02 计算机组成原理
    • 1 计算机系统概述
    • 2 数据的表示和运算
  • 03 操作系统
    • 01 操作系统引论
      • 01 操作系统引论
  • 04 计算机网络
    • 1 计算机网络体系结构
      • 1 计算机网络概述
      • 2 计算机网络的性能
      • 3 计算机网络体系结构与参考模型
      • 计算机网络体系结构的重要概念
    • 2 物理层
      • 1 物理层的基本概念
      • 物理层的重要概念
    • 3 数据链路层
      • 1 使用点对点信道的数据链路层
      • 2 点对点协议 PPP
      • 3 使用广播信道的数据链路层
      • 4 扩展的以太网
      • 5 高速以太网
      • 数据链路层的重要概念
    • 4 网络层
      • 1 网络层提供的两种服务
      • 2 网际协议 IP
      • 3 划分子网和构造超网
      • 4 网际控制报文协议 ICMP
      • 5 互联网的路由选择协议
      • 6 IPv6
      • 7 IP 多播
      • 8 虚拟专用网 VPN 和网络地址转换 NAT
      • 9 多协议标记交换 MPLS
      • 网络层的重要概念
    • 5 传输层
      • 1 运输层协议概述
      • 2 UDP 用户数据报协议
      • 3 TCP 概述
      • 4 TCP 可靠传输
      • 5 TCP 流量控制
      • 6 TCP 拥塞控制
      • 7 TCP 连接管理
    • 6 应用层
      • 1 域名系统 DNS
      • 2 文件传送协议 FTP
      • 3 远程终端协议 TELNET
      • 4 万维网 WWW
      • 5 电子邮件
      • 6 动态主机配置协议 DHCP
      • 7 简单网络管理协议 SNMP
      • 8 应用进程跨越网络的通信
      • 9 P2P 应用
      • 应用层概述
    • 7 网络安全
      • 1 网络安全问题概述
      • 2 两类密码体制
      • 3 数字签名
      • 4 鉴别
      • 5 密钥分配
      • 6 互联网使用的安全协议
      • 7 系统安全:防火墙与入侵检测
  • 05 Java
    • 00 Java 基础
      • 01 基本设计
        • 1 数据类型
        • 2 字符串
        • 3 数组
        • 4 运算符
        • 5 输入输出
        • 6 控制流程
      • 02 对象与类
        • 1 面向对象
        • 2 修饰符
        • 3 类
        • 4 反射
        • 5 文档注释
      • 03 接口、lambda、内部类、代理
        • 1 接口
        • 2 lambda
        • 3 内部类
        • 4 代理
      • 04 异常、断言、日志
        • 1 异常
        • 2 断言
        • 3 日志
      • 05 泛型、事件
        • 1 泛型
        • 2 事件
      • 06 集合
        • 1 集合接口
        • 2.0 具体的集合
        • 2.1 ArrayList、Vector
        • 2.2 LinkedList
        • 2.3 ArrayDeque
        • 2.4 TreeMap、TreeSet
        • 2.5 HashMap、HashSet、Hashtable
        • 2.6 LinkedHashMap、LinkedHashSet
        • 2.7 PriorityQueue
        • 2.8 ConcurrentHashMap
        • 3 映射
        • 4 视图与包装器
        • 5 算法
        • 6 遗留的集合
        • 7 线程安全的集合
      • 07 并发
        • 1 线程
        • 2 线程池
        • 3 锁
        • 4 同步器
        • 5 非阻塞同步
      • 08 Java SE 8 的流库
        • 1 Stream
        • 2 Optional
      • 09 IO
        • 1 输入输出流
        • 2 操作字符
        • 3 操作字节
        • 4 序列化
        • 5 操作文件
        • 6 NIO(内存映射文件)
        • 7 正则表达式
      • 10 XML
        • 1 XML 概述
        • 2 XML 解析
        • 3 验证 XML 文档
        • 4 生成 XML 文档
        • 5 XSL 转换
      • 11 网络
        • 1 Socket 连接
        • 2 获取 URL 数据
        • 3 发送 E-mail
      • 12 JDBC
        • 1 JDBC 简介
        • 2 java.sql 包简介
        • 3 javax.sql 包简介
      • 13 日期和时间
        • 1 绝对时间
        • 2 人类时间
        • 3 格式化和解析
        • 4 与遗留代码的互操作
      • 14 国际化
        • 1 Locale 对象
        • 2 格式化和解析
        • 3 排序和范化
        • 4 消息格式化
        • 5 文本文件和字符集
        • 6 资源包
      • 15 脚本、编译、注解
        • 1 Java 平台的脚本
        • 2 编译器 API
        • 3 使用注解
        • 4 注解语法
        • 5 标准注解
        • 6 源码级注解处理
        • 7 字节码工程
      • 16 安全
        • 1 类加载器
        • 2 安全管理器与访问权限
        • 3 用户认证
        • 4 数据签名
        • 5 加密
      • 17 本地方法
        • 1 调用 C 函数
        • 2 参数与返回
        • 3 todo
    • 01 Java 虚拟机
      • 01 走进 Java
      • 02 JVM 内存
      • 03 GC 与内存分配
      • 04 性能监控 + 故障处理
      • 05 调优案例
      • 06 类文件结构
      • 07 类加载机制
      • 08 字节码执行引擎
      • 09 类加载案例与实战
      • 10 早期(编译期)优化
      • 11 晚期(运行期)优化
      • 12 Java 内存模型
    • 02 Effective Java
      • 01 创建和销毁对象(1-9)
      • 02 对于所有对象都通用的方法(10-14)
      • 03 类和接口(15-25)
      • 04 泛型(26-33)
      • 05 枚举和注解(34-41)
      • 06 Lambdas 与 Streams(42-48)
      • 07 方法(49-56)
      • 08 通用程序设计(57-68)
      • 09 异常(69-77)
      • 10 并发(78-84)
      • 11 序列化(85-90)
  • 06 Spring
    • 01 Core
      • 1 Spring 基本概念
      • 2 IoC 容器与 Bean
      • 3 SpringBoot 启动流程
    • 02 IoC
      • 1 依赖注入
      • 2 高级装配
      • 3 动态注册 Bean
    • 03 AOP
      • 1 AOP 简介
      • 2 切点
      • 3 切面
    • 04 Web
      • 1 Spring MVC
      • 2 Spring MVC 进阶
      • 3 Spring RestTemplate
      • 4 跨域
    • 05 Data.md
      • 1 JdbcTemplate
      • 10 Ehcache 3.8 简单持久化
      • 2 Spring Data JPA
      • 3 Spring Data MongoDB
      • 4 Spring Data Neo4j
      • 5 Spring Data Redis
      • 6 Spring Cache
      • 7 Dynamic DataSource
      • 8 Transaction
      • 9 Spring Cache + Caffeine
    • 06 Security
      • 1 Spring Security
    • 07 Async
      • 1 Scheduled
      • 2 Async
    • 08 Log
      • 1 默认日志
      • 2 slf4j 和 log4j、logback 关系
      • 3 输出 sout 到日志文件
    • 10 Retry
      • 01 Spring Retry
  • 07 数据库
    • 01 MySQL
      • 01 关系数据库
      • 02 锁
      • 03 事务
      • 04 多版本并发控制
      • 05 存储引擎
      • 06 数据类型
      • 07 SQL
      • 08 索引
      • 09 查询性能优化
      • 10 分库分表
      • 11 复制
    • 02 MyBatis
      • 01 MyBatis+Spring Boot
      • 02 MyBatis Generator
      • 03 CDDATA块
      • 04 注解使用
  • 08 系统设计
    • 1 通用设计
      • 01 分布式统一 id 设计
      • 02 跨库分页
      • 03 短链接
      • 04 相似图片调研
      • 05 海明距离计算
      • 06 秒杀、红包系统
      • 07 使用 Java 进行爬虫
      • 08 文章相似度 - simhash 计算
    • 2 业务设计
      • 01 即刻-链接解析-分析
      • 02 消息系统设计
      • 03 关注流调研
      • 04 关注流设计
    • 3 设计模式
      • 1 创建型模式
      • 2 结构型模式
      • 3 行为型模式
      • 4 J2EE 模式
  • 09 DevOps
    • 1 Git
      • 0 搭建Git服务器
      • 1 创建版本库
      • 2 版本管理
      • 3 远程仓库
      • 4 分支管理
      • 5 标签管理
      • 6 其他
    • 2 SVN
      • 1 基础介绍
      • 2 基本操作
      • 3 版本管理
      • 4 冲突及解决
      • 5 开发周期
    • 3 IDEA
      • 1 IDEA 快捷键
    • 4 Maven
      • 1 Maven 笔记
      • 2 Maven 冲突解决
    • 5 Gradle
      • 1 Gradle 概述
      • 2 maven迁移到gradle
    • 6 Linux
      • 1 Centos 7 配置 LAMP
      • 2 Linux 常用命令
      • 3 Shell 脚本
    • 7 Zabbix
      • 1 Zabbix简介
      • 2 zabbix中文乱码
      • 3 zabbix主动模式、被动模式
      • 4 Zabbix迁移
    • 8 ELK
      • 1 ElasticStack
    • 9 Docker
      • 1 Docker 笔记
  • 10 微服务
    • 0 服务注册与发现
      • 01 Spring Cloud Eureka
      • 02 Spring Cloud Consul
    • 1 服务调用
      • 01 Spring Cloud Ribbon
      • 02 Spring Cloud Hystrix
      • 03 Spring Cloud Feign
      • 04 Resilience4j
      • 05 Apache Thrift
        • 1 Apache Thrift 初识 (1) - 简介
        • 2 Apache Thrift 初识 (2) - 数据类型与基本语法
        • 3 Apache Thrift 初识 (3) - 实战Demo
    • 2 配置中心
      • 01 Spring Cloud Config
      • 02 Apollo 项目解析
      • 开源配置中心对比选型
    • 3 API网关
      • 01 Spring Cloud Zuul
      • 02 Spring Cloud Gateway
    • 4 消息组件
      • 01 Spring Cloud Bus
      • 02 Spring Cloud Stream
    • 5 链路追踪
      • 01 Spring Cloud Sleuth
    • Dubbo
      • 00 官方文档
    • Service Mesh
      • 00 相关资料
  • 11 分布式
    • 01 分布式资源协调
      • 4 YARN
    • 02 分布式计算
      • 3 MapReduce
    • 03 分布式存储
      • 03 Redis
        • 1 Redis 简介
        • 2 分布式锁
        • 3 自定义序列化
        • 4 执行脚本
      • 04 Memcached
        • 01 Memcached笔记
      • 05 MongoDB
        • 01 MongoDB 概念
        • 02 MongoDB 操作
        • 03 MongoDB 管理
        • 04 Java中使用
      • 06 Cassandra
        • 1 Cassandra 简介
        • 2 Cassandra 架构
        • 3 Cassandra 数据模型
        • 4 迁移案例示例
        • 5 Gossip 协议
        • 6 Cassandra vs. HBase
      • 2 HDFS
      • 5 HBase
      • NoSQL
    • 04 分布式数据处理
      • 6 Hive
      • 7 Sqoop源码 - 从 MySQL 导入到 Hive
    • 05 分布式事务
      • 分布式事务
      • 分布式会话
    • 06 分布式锁
      • 分布式锁
    • 08 负载均衡
      • 01 一致性哈希
      • Paxos
      • Raft
      • 负载均衡
    • 1 Hadoop
    • 8 Hadoop 数据仓库 - 《离线和实时大数据开发实战》
  • 12 测试
    • 1 EasyMock
      • 1 EasyMock - 模拟对象测试
    • 2 http_load
      • 1 http_load - 压力测试
    • 3 JMeter
      • 1 JMeter - 性能测试
    • 4 JUnit
      • 1 JUnit 5 简介
    • 5 MockMvc
      • 1 MockMvc
  • 13 重构
    • 1 重构-改善既有代码的设计
      • 01 重构,第一个案例
      • 02 重构的原则
      • 03 代码的坏味道
      • 04 构筑测试体系
      • 05 重构列表
      • 06 重新组织函数
      • 07 在对象之间搬移特性
      • 08 重新组织数据
      • 09 简化条件表达式
      • 10 简化函数调用
      • 11 处理概括关系
      • 12 大型重构
  • 14 前端
    • 4 FIS
      • 1 FIS 3接口速查
  • 15 服务器
    • 4 Nginx
      • 1 Nginx 笔记
  • 16 辅助工具类
    • 1 Apache Commons
      • 1 Apache Commons - 总览
      • 2 Apache Commons BeanUtils
      • 3 Apache Commons Codec
      • 4 Apache Commons Collections
      • 5 Apache Commons Lang
      • 6 Apache Commons Pool
      • 7 Apache Commons Text
    • 3 日常小工具
      • 1 使用 Java 自带 MessageDigest 实现加密(MD5 和 SHA)
      • 2 一次性读取 GZIP 压缩的 CSV 文件
      • 3 HttpUtil
    • 4 数据格式
      • 1 Json
        • Jackson 常用记录
      • 1 Lombok消除Java冗长
      • 2 MapStruct实体间转换
      • 3 YAML 基础语法
  • 20 笔记梳理
    • 01 Java
    • 02 JVM
    • 03 MySQL
    • 04 NoSQL
  • 21 其他
    • 2019 年工作总结
    • 2020.2 Java 社招面试整理

0 概述

程序设计 = 数据结构 + 算法 1 数据结构 数据结构:相互之间存在一种或多种特定关系的数据元素的集合。 1.1 基本概念 数据:能别计算机识别、处理的符号集合 数据对象:性质相同的数据元素的集合,是数据的子集。 数据元素:组成数据的、有一定意义的基本单位。通常作为整体被计算机处理。 数据项:数 ...
2020-03-20 01 数据结构与算法 > 数据结构 > 01 数据结构

2 栈与队列

一、栈 1 基本概念 栈:是限定仅在表尾进行插入和删除操作的线性表。后进先出LIFO 栈顶(top):允许插入和删除的一端 核底(bottom):另一端 栈的引入简化了程序设计,使关注范围缩小,聚焦于要解决的问题核心。 2 栈的顺序存储结构 - 顺序栈 1)存储结构 栈是线性表的特例,栈的 ...
2020-02-24 01 数据结构与算法 > 数据结构 > 01 数据结构

5 树与二叉树

一、树的基本概念 树:是 n ( n>=0 ) 个结点的有限集。 n = 0 时称为空树。 在任意一棵非空树中: 有且仅有一个根结点 当 n > 1 时,其余结点可分为一个或多个互不相交的有限集。 其中每一个集合本身又是一棵树,并且称为根的子树。 1、结点分类 结点的度:结点 ...
2020-02-05 01 数据结构与算法 > 数据结构 > 01 数据结构

8 堆

堆(Heap)是一种特别的树状数据结构:“给定堆中任意节点 P 和 C,若 P 是 C 的母节点,那么 P 的值会小于等于(或大于等于)C 的值”。分为最小堆和最大堆。 二叉堆 左倾堆 斜堆 二项堆 斐波那契堆 索引堆 Treap 树堆 1、二叉堆 二叉堆是完全二元树或者是近似完全二元树,按照数 ...
2020-02-04 01 数据结构与算法 > 数据结构 > 01 数据结构

3 数组和广义表

1 数组的概念、多维数组的实现 1)数组的概念 数组的特点:元素数目固定;下标有界。 数组的操作:按照下标进行读写。 2)多维数组的实现 行优先顺序 存储时先按行从小到大的顺序存储,在每一行中按列号从小到大存储。 列优先顺序 存储时先按列从小到大的顺序存储,在每一列中按行号从小到大存储。 2 矩 ...
2019-12-25 01 数据结构与算法 > 数据结构 > 01 数据结构

1 线性表(List)

一、线性表的定义和基本操作 1)定义 线性表:零个或多个数据元素的有序排列。 除第一个元素外,每个元素有且只有一个直接前驱元素;初最后一个元素外,每个元素有且只有一个直接后继元素。 2)基本操作 InitList:初始化 ListEmpty:判空 ClearList:清空 GetElem:取值 ...
2019-12-25 01 数据结构与算法 > 数据结构 > 01 数据结构

4 串(string)

1 基本概念 串:是由零个或多个字符组成的优先序列,又名叫字符串。 本质是一种线性表的扩展,但更多的是关注子串的应用问题 子串在主串中的位置就是子串的第一个字符在主串中的序号。 字符编码 ASCII:7位 拓展 ASCII:8位 Unicode:16位 串的比较 挨个比较字符,以第一个不同 ...
2019-12-25 01 数据结构与算法 > 数据结构 > 01 数据结构

6 图

一、图的基本概念 图:由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为: G(V,E),其中,G 表示一个图,V 是图 G 中顶点的集合。E 是图 G 中边的集合。 1、各种图定义 无向边:若顶点 $V_i$ 到 $V_j$,之间的边没有方向,则称这条边为无向边(Edge)。 用无序偶对 ...
2019-12-25 01 数据结构与算法 > 数据结构 > 01 数据结构

7 红黑树

1、红黑树定义 红黑树是一种近似平衡的二叉查找树,它能够确保任何一个节点的左右子树的高度差不会超过二者中较低那个的一陪。可以在 O(logn) 时间内做查找,插入和删除。红黑树相对于AVL树来说,牺牲了部分平衡性以换取插入/删除操作时少量的旋转操作,整体来说性能要优于AVL树。 满足如下条件: 每 ...
2019-12-25 01 数据结构与算法 > 数据结构 > 01 数据结构

©2019- Wu Jun | pv | uv
Theme Tree by WuJun Powered by Hexo