- 博客(20)
- 资源 (7)
- 收藏
- 关注

原创 剑指 Offer 全解(Java 版)
3. 数组中重复的数字NowCoder题目描述在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。Input:{2, 3, 1, 0, 2, 5}Output:2解题思路要求时间复杂度 O(N),空间复杂度 O(1)。因此不能使用排序的方法,也不能使用...
2019-06-17 08:39:08
937
原创 攻击技术
文章目录一、跨站脚本攻击概念攻击原理危害防范手段1. 设置 Cookie 为 HttpOnly2. 过滤特殊字符二、跨站请求伪造概念攻击原理防范手段1. 检查 Referer 首部字段2. 添加校验 Token3. 输入验证码三、SQL 注入攻击概念攻击原理防范手段1. 使用参数化查询2. 单引号转换四、拒绝服务攻击参考资料微信公众号一、跨站脚本攻击概念跨站脚本攻击(Cross-Site S...
2019-06-17 08:46:25
286
原创 分布式
文章目录一、分布式锁数据库的唯一索引Redis 的 SETNX 指令Redis 的 RedLock 算法Zookeeper 的有序节点1. Zookeeper 抽象模型2. 节点类型3. 监听器4. 分布式锁实现5. 会话超时6. 羊群效应二、分布式事务2PC1. 运行过程1.1 准备阶段1.2 提交阶段2. 存在的问题2.1 同步阻塞2.2 单点问题2.3 数据不一致2.4 太过保守本地消息表三...
2019-06-17 08:46:03
891
原创 SQL
文章目录一、基础二、创建表三、修改表四、插入五、更新六、删除七、查询DISTINCTLIMIT八、排序九、过滤十、通配符十一、计算字段十二、函数汇总文本处理日期和时间处理数值处理十三、分组十四、子查询十五、连接内连接自连接自然连接外连接十六、组合查询十七、视图十八、存储过程十九、游标二十、触发器二十一、事务管理二十二、字符集二十三、权限管理参考资料微信公众号一、基础模式定义了数据如何存储、存储...
2019-06-17 08:44:46
649
原创 Socket
文章目录一、I/O 模型阻塞式 I/O非阻塞式 I/OI/O 复用信号驱动 I/O异步 I/O五大 I/O 模型比较二、I/O 复用selectpoll比较1. 功能2. 速度3. 可移植性epoll工作模式1. LT 模式2. ET 模式应用场景1. select 应用场景2. poll 应用场景3. epoll 应用场景参考资料微信公众号一、I/O 模型一个输入操作通常包括两个阶段:等...
2019-06-17 08:44:22
557
原创 Redis
文章目录一、概述二、数据类型STRINGLISTSETHASHZSET三、数据结构字典跳跃表四、使用场景计数器缓存查找表消息队列会话缓存分布式锁实现其它五、Redis 与 Memcached数据类型数据持久化分布式内存管理机制六、键的过期时间七、数据淘汰策略八、持久化RDB 持久化AOF 持久化九、事务十、事件文件事件时间事件事件的调度与执行十一、复制连接过程主从链十二、Sentinel十三、分片...
2019-06-17 08:44:01
885
1
原创 MySQL
文章目录一、索引B+ Tree 原理1. 数据结构2. 操作3. 与红黑树的比较MySQL 索引1. B+Tree 索引2. 哈希索引3. 全文索引4. 空间数据索引索引优化1. 独立的列2. 多列索引3. 索引列的顺序4. 前缀索引5. 覆盖索引索引的优点索引的使用条件二、查询性能优化使用 Explain 进行分析优化数据访问1. 减少请求的数据量2. 减少服务器端扫描的行数重构查询方式1. 切...
2019-06-17 08:43:36
792
原创 Linux
文章目录一、常用操作以及概念快捷键求助1. --help2. man3. info4. doc关机1. who2. sync3. shutdownPATHsudo包管理工具发行版VIM 三个模式GNU开源协议二、磁盘磁盘接口1. IDE2. SATA3. SCSI4. SAS磁盘的文件名三、分区分区表1. MBR2. GPT开机检测程序1. BIOS2. UEFI四、文件系统分区与文件系统组成文件...
2019-06-17 08:42:49
4761
原创 Leetcode-Database 题解
文章目录595. Big CountriesDescriptionSQL SchemaSolution627. Swap SalaryDescriptionSQL SchemaSolution620. Not Boring MoviesDescriptionSQL SchemaSolution596. Classes More Than 5 StudentsDescriptionSQL Schem...
2019-06-17 08:42:20
303
原创 Leetcode 题解 - 分治
文章目录1. 给表达式加括号2. 不同的二叉搜索树微信公众号1. 给表达式加括号241. Different Ways to Add Parentheses (Medium)Input: "2-1-1".((2-1)-1) = 0(2-(1-1)) = 2Output : [0, 2]public List<Integer> diffWaysToCompute(St...
2019-06-17 08:38:22
384
原创 Leetcode 题解 - 二分查找
文章目录1. 求开方2. 大于给定元素的最小元素3. 有序数组的 Single Element4. 第一个错误的版本5. 旋转数组的最小数字6. 查找区间微信公众号正常实现Input : [1,2,3,4,5]key : 3return the index : 2public int binarySearch(int[] nums, int key) { int l = 0, ...
2019-06-16 17:14:48
415
原创 Leetcode 题解 - 动态规划
文章目录斐波那契数列1. 爬楼梯2. 强盗抢劫3. 强盗在环形街区抢劫4. 信件错排5. 母牛生产矩阵路径1. 矩阵的最小路径和2. 矩阵的总路径数数组区间1. 数组区间和2. 数组中等差递增子区间的个数分割整数1. 分割整数的最大乘积2. 按平方数来分割整数3. 分割整数构成字母字符串最长递增子序列1. 最长递增子序列2. 一组整数对能够构成的最长链3. 最长摆动子序列最长公共子序列0-1 背包...
2019-06-16 17:13:35
1090
原创 HTTP
文章目录一 、基础概念URI请求和响应报文1. 请求报文2. 响应报文二、HTTP 方法GETHEADPOSTPUTPATCHDELETEOPTIONSCONNECTTRACE三、HTTP 状态码1XX 信息2XX 成功3XX 重定向4XX 客户端错误5XX 服务器错误四、HTTP 首部通用首部字段请求首部字段响应首部字段实体首部字段五、具体应用连接管理1. 短连接与长连接2. 流水线Cookie...
2019-06-16 17:13:04
243
原创 Git
文章目录集中式与分布式中心服务器工作流分支实现冲突Fast forward分支管理策略储藏(Stashing)SSH 传输设置.gitignore 文件Git 命令一览参考资料微信公众号集中式与分布式Git 属于分布式版本控制系统,而 SVN 属于集中式。 集中式版本控制只有中心服务器拥有一份代码,而分布式版本控制每个人的电脑上就有一份完整的代码。集中式版本控制有安全性问题,当中心服务...
2019-06-16 17:12:42
236
原创 Docker
文章目录一、解决的问题二、与虚拟机的比较启动速度占用资源三、优势更容易迁移更容易维护更容易扩展四、使用场景持续集成提供可伸缩的云服务搭建微服务架构五、镜像与容器参考资料微信公众号一、解决的问题由于不同的机器有不同的操作系统,以及不同的库和组件,在将一个应用部署到多台机器上需要进行大量的环境配置操作。Docker 主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主...
2019-06-16 17:12:25
318
原创 Java 虚拟机
文章目录一、运行时数据区域程序计数器Java 虚拟机栈本地方法栈堆方法区运行时常量池直接内存二、垃圾收集判断一个对象是否可被回收1. 引用计数算法2. 可达性分析算法3. 方法区的回收4. finalize()引用类型1. 强引用2. 软引用3. 弱引用4. 虚引用垃圾收集算法1. 标记 - 清除2. 标记 - 整理3. 复制4. 分代收集垃圾收集器1. Serial 收集器2. ParNew 收...
2019-06-16 17:11:51
575
原创 Java 容器
文章目录一、概览Collection1. Set2. List3. QueueMap二、容器中的设计模式迭代器模式适配器模式三、源码分析ArrayList1. 概览2. 扩容3. 删除元素4. Fail-Fast5. 序列化Vector1. 同步2. 与 ArrayList 的比较3. 替代方案CopyOnWriteArrayList读写分离适用场景LinkedList1. 概览2. 与 Arra...
2019-06-16 17:08:34
232
原创 Java IO
文章目录一、概览二、磁盘操作三、字节操作实现文件复制装饰者模式四、字符操作编码与解码String 的编码方式Reader 与 Writer实现逐行输出文本文件的内容五、对象操作序列化Serializabletransient六、网络操作InetAddressURLSocketsDatagram七、NIO流与块通道与缓冲区1. 通道2. 缓冲区缓冲区状态变量文件 NIO 实例选择器1. 创建选择器2...
2019-06-16 17:08:00
195
原创 Java 并发
文章目录一、线程状态转换新建(New)可运行(Runnable)阻塞(Blocked)无限期等待(Waiting)限期等待(Timed Waiting)死亡(Terminated)二、使用线程实现 Runnable 接口实现 Callable 接口继承 Thread 类实现接口 VS 继承 Thread三、基础线程机制ExecutorDaemonsleep()yield()四、中断Interrup...
2019-06-16 17:07:27
298
原创 Java 基础
文章目录一、数据类型基本类型包装类型缓存池二、String概览不可变的好处String, StringBuffer and StringBuilderString Poolnew String("abc")三、运算参数传递float 与 double隐式类型转换switch四、继承访问权限抽象类与接口super重写与重载五、Object 通用方法概览equals()hashCode()toStri...
2019-06-16 17:05:22
548
微服务设计 高清
2018-12-16
Paxos 到 Zookeeper:分布式一致性原理与实践 高清
2018-12-16
NoSQL 精粹 高清
2018-12-16
大型网站技术架构
2018-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人