- 博客(118)
- 资源 (4)
- 收藏
- 关注
原创 「笔记」设计模式之美 - 导读篇
为什么要学习设计模式应对面试中的设计模式相关问题告别写被人吐槽的烂代码Talk is cheap,show me the code ;代码能力是一个程序员最基础的能力,是基本功是展示一个程序员基础素养的最直接的衡量标准,你写的代码,实际上就是你名片烂代码的情况,比如命名不规范、类设计不合理、分层不清晰、没有模块化概念、代码结构混乱、高度耦合等等维护起来非常费劲,添加或者修改...
2020-03-22 23:04:01
428
原创 「笔记」数据结构与算法之美 - 基础篇(二)
排序(上)如何分析一个排序算法排序算法的执行效率最好情况、最坏情况、平均情况时间复杂度有序度不同的数据,对于排序的执行时间肯定是有影响的时间复杂度的系数、常数 、低阶在对同一阶时间复杂度的排序算法性能对比的时候,我们就要把系数、常数、低阶也考虑进来比较次数和交换(或移动)次数排序算法的内存消耗原地排序算法,就是特指空间复杂度是 O(1) 的排序算法...
2020-03-15 23:16:33
506
原创 「笔记」数据结构与算法之美 - 基础篇(一)
数组数组(Array)是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据线性表线性表就是数据排成像一条线一样的结构,每个线性表上的数据最多只有前和后两个方向非线性表在非线性表中,数据之间并不是简单的前后关系(比如二叉树、堆、图等连续的内存空间和相同类型的数据带来的一个堪称“杀手锏”的特性:“随机访问”数组支持随机访问,根据下标随机访...
2020-03-01 10:34:47
463
原创 「笔记」数据结构与算法之美 - 入门篇
为什么要学掌握数据结构和算法,不管对于阅读框架源码,还是理解其背后的设计思想,都是非常有用的BadCase:经历项目很多,但每个项目都是重复地堆砌业务逻辑而已,完全没有难度递进,看不出有能力提升目的建立时间复杂度、空间复杂度意识写出高质量的代码能够设计基础架构提升编程技能训练逻辑思维积攒人生经验掌握了数据结构与算法,你看待问题的深度,解决问题的角度就会完全不一样精选留...
2020-02-29 17:45:07
472
原创 「笔记」非暴力沟通
思维导图概览版详情版来源:《非暴力沟通》思维导图实践及感触文章特别棒,但个人修行本领尚浅,经常情绪一激动就容易犯上面的错误…犯错后一定要主动找对方道歉,事后复盘争论过程尽量做到思考后,再给反馈,运用BIC理论的方式用BIC帮助他人改正缺点...
2020-02-29 17:39:56
700
原创 「笔记」清单革命
思维导图实践及感触推荐款软件 - 滴答清单详细功能及进阶使用参考官网推荐搭配 Alfred 一同食用食用教程:[alfred-tick]食用效果(随时5s内完成清单记录使用场景 新员工入职的新手任务清单 GitLab merge-request 时的待确认事项(关联需求设计问题、上线需执行SQL Jira链接、FindBugs 结果等 重大项...
2020-02-29 17:38:31
637
原创 「笔记」睡眠革命
思维导图昼夜节律图实践及感触入睡前23点以后停止工作学习,洗数完成后躺在床上看点闲书不要玩游戏(游戏会让你变得兴奋平躺下后尽量让手机远离自己特殊情况下可服用 褪黑素维生素B片醒来后起床后第一时间拉开窗帘打开灯(唤醒身体查看手机是否有急事,若未则开始洗漱午睡时存在困意时,则午睡一会儿;若无,则继续学习工作…关于咖啡中度咖啡依赖,一天 ...
2020-02-29 17:35:06
1532
原创 「笔记」MySQL 实战 45 讲 - 实践篇(六)
不连续的自增主键由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧凑自增值保存在哪儿表的结构定义存放在后缀名为.frm 的文件中,但是并不会保存自增值。不同的引擎对于自增值的保存策略不同MyISAM 引擎的自增值保存在数据文件中InnoDB 引擎的自增值,其实是保存在了内存里(MySQL 8.0 版本后才有自增值持久化的能力在 MySQL 5....
2020-01-26 14:15:55
295
原创 「笔记」MySQL 实战 45 讲 - 实践篇(五)
MySQL Join背景介绍:t1,t2 表结构一致(字段 id,a,b —> PRIMARY KEY (id), KEY a (a)Index Nested-Loop Join栗子:select * from t1 straight_join t2 on (t1.a=t2.a);straight_join 让 MySQL 使用固定的连接方式执行查询(即这里 t1 会驱动...
2020-01-14 23:34:58
379
原创 「笔记」MySQL 实战 45 讲 - 实践篇(四)
检测 MySQL 健康状态每个改进的方案,都会增加额外损耗,需要业务方根据实际情况去做权衡建议优先考虑 update 系统表,然后再配合增加检测 performance_schema 的信息select 1 判断使用非常广泛的 MHA(Master High Availability),默认使用的就是这个方法另一个可选方法是只做连接,就是 “如果连接成功就认为主库没问题”...
2020-01-05 18:01:57
225
原创 「笔记」MySQL 实战 45 讲 - 实践篇(三)
MySQL 主备MySQL 能够成为现下最流行的开源数据库,binlog 功不可没binlog 可以用来归档,也可以用来做主备同步几乎所有的高可用架构,都直接依赖于 binlogMySQL 主备切换流程 — M-S 结构虽然节点 B 没有直接被访问,但依然建议把节点 B(备库)设置成只读(readonly)模式有时候一些运营类的查询语句会被放到备库上去查,设置为只读可...
2020-01-01 21:32:56
291
原创 「笔记」MySQL 实战 45 讲 - 实践篇(二)
Sql Bad Case条件字段函数操作对索引字段做函数操作,可能会破坏索引值的有序性,因此优化器就决定放弃走树搜索功能栗子:month () 函数、where id + 1 = 10000 等隐式类型转换在 MySQL 中,字符串和数字做比较的话,是将字符串转换成数字栗子:select “10” > 9(返回 1 代表做数字比较隐式字符编码转换utf8mb4...
2019-12-15 16:51:49
242
原创 「笔记」MySQL 实战 45 讲 - 实践篇(一)
change bufferInooDB 会将这些更新操作缓存在 change buffer 中,就不需要从磁盘中读入这个数据页change buffer 在内存中有拷贝,也会被写入到磁盘上将 change buffer 中的操作应用到原数据页,得到最新结果的过程称为 merge触发 merge 的场景 访问对应数据页 后台线程定期 merge 数据库正常关闭优势:减少...
2019-12-13 23:56:41
269
原创 「笔记」MySQL实战 45讲 - 基础篇
MySQL 的逻辑架构图Server 层涵盖 MySQL 的大多数核心服务功能以及所有的内置函数所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等存储引擎层负责数据的存储和提取(架构模式是插件式的MySQL 5.5.5 版本开始 InnoDB 成为了默认存储引擎不同的存储引擎共用一个 Server 层连接器负责跟客户端建立连接、获取权限、维持...
2019-12-02 00:40:28
320
原创 「笔记」Java 虚拟机
文章目录Java 内存区域与内存溢出异常垃圾收集器与内存分配策略内存分配与回收策略虚拟机类加载机制Java 内存区域与内存溢出异常程序计数器、Java 虚拟机栈、本地方法栈 均为线程私有程序计数器当前线程所执行的字节码的行号指示器字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令分支、循环、跳转、异常处理、线程恢复等功能均依赖计数器Java...
2019-06-28 16:34:22
195
原创 「笔记」Java 泛型
泛型定义Java 1.5 新特性,本质就是参数化类型,即所操作的数据类型被指定为一个参数泛型的好处是在编译的时候进行类型安全检查,并且所有的强制转换都是自动和隐式的,以提高代码的重用率主要规则只能是 类 类型,不能是基础简单类型(Integer / int )同一种泛型允许有多个实现实例,但实现实例之间互不兼容泛型的参数类型可以有多个泛型的参数类型可以使用extends、sup...
2019-06-10 10:05:40
299
原创 「笔记」加密算法
加密算法的种类哈希算法、对称加密算法、非对称加密算法哈希算法严格意义上,哈希算法不属于加密算法,但它在信息安全领域起到了很重要的作用用于生成信息摘要,用以验证原信息的完整性和来源的可靠性生成信息摘要的过程叫做签名,验证信息摘要的过程叫做验签常用的哈希算法:MD5(128位)、SHA系列(更安全)对称加密算法流程:明文通过密钥进行加密生成密文,同时密文通过秘钥进行...
2019-03-31 18:41:44
381
转载 OSI 七层模型详解
OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。完成中继功能的节点通常称为中继系统。在 OSI 七层模型中,处于不同层的中继系统具有不同的名称。 一个设备工作在哪一层,关键看它工作时利用哪一层的...
2019-03-17 15:47:15
327
原创 《MySQL 技术内幕》事务
文章目录前言认识事物事务的实现事务控制语句隐式提交的 SQL 语句对于事务操作的统计事务的隔离级别分布式事务不好的事务习惯长事务前言事务(Transaction)是数据库区别于文件系统的重要特性之一数据库系统引入事务的主要目的 事务会把数据库从一种一致状态为另一种一致状态 数据库提交时,可以确保要么全部修改都已经保存,要么所有修改都不保存InnoDB 存储引擎中的事务完全符合 ...
2019-03-01 08:29:12
403
原创 《MySQL 技术内幕》锁
文章目录前言什么是锁lock 与 latchInnoDB 存储引擎中的锁锁的算法锁问题阻塞死锁锁升级前言开发多用户、数据库驱动的应用时,存在的最大难点一方面要最大程序地利用数据库的并发访问另一方面还要确保每个用户能以一致的方式读取和修改数据什么是锁锁 是数据库系统区别于文件系统的一个关键特性锁机制 用于管理对共享资源的并发访问数据库系统使用锁是为了支持对共享资源进行并发...
2019-02-24 23:46:31
332
原创 《MySQL 技术内幕》索引和算法
文章目录前言InnoDB 存储引擎索引概述B+ 树B+ 树索引Cardinality 值B+ 树索引的使用哈希算法全文检索前言索引是应用程序设计和开发的一个重要方面索引过多,应用程序的性能可能会受到影响;索引太少,查询性能又会产生影响如何找到一个合适的平衡点,这对应用程序的性能至关重要InnoDB 存储引擎索引概述InnoDB 支持以下常见的索引 B+ 树索引 全文索...
2019-02-21 23:54:19
338
1
原创 《MySQL 技术内幕》表
文章目录前言索引组织表InnoDB 逻辑存储结构InnoDB 行记录格式视图前言表就是关于特定实体的数据集合(关系型数据库模型的核心)索引组织表InnoDB 存储引擎中的表是根据主键顺序组织存放的,这种存储方式的表称为 索引组织表InnoDB 存储引擎表中都有一个主键(Primary Key),若未显示定义,则按以下方式选择或创建主键 首先判断表中是否有 非空 唯一索引,如果有...
2019-02-17 23:51:40
286
原创 《MySQL 技术内幕》InnoDB存储引擎
文章目录前言InnoDB 存储引擎概述InnoDB 存储引擎的版本InnoDB 体系架构Checkpoint 技术InnoDB 关键特性前言InnoDB 是事务安全的存储引擎,设计上采用类似于 Oracle 数据库的架构InnoDB 存储引擎是 OLTP 应用中核心表的首选存储引擎InnoDB 存储引擎概述InnoDB 存储引擎是第一个完整支持 ACID 事务的 MySQL 存储引...
2019-02-14 21:45:32
358
原创 《高性能MySQL》EXPLAIN
文章目录前言调用 EXPLAIN重写非 SELECT 查询EXPLAIN 中的列MySQL 5.6 中的改进前言调用 EXPLAIN 来获取关于查询执行计划的信息与输出调用 EXPLAIN使用:在 SELECT 关键字之前增加 EXPLAIN每个表在输出中只有一行,若多表关联,则输出多行这里的表的定义:可以是一个子查询,一个 UNION 结果EXPLAIN 的两个主要...
2019-02-10 14:55:49
322
原创 《MySQL 技术内幕》MySQL 体系结构和存储引擎
定义数据库和实例数据库领域中很容易混淆的两个词数据库物理操作系统文件或其他形式文件类型的集合实例MySQL 数据库由后台线程以及一个共享内存区组成数据库实例才是真正用于操作数据库文件的在 MySQL 数据库中,数据库与实例的关系是一一对应,集群情况下,可能存在一对多的情况MySQL 被设计为一个单进程多线程架构的数据库实例在系统上的表现就是一个进程M...
2019-02-02 10:25:30
382
原创 《高性能MySQL》查询性能优化
文章目录前言为什么查询速度会慢慢查询基础:优化数据访问重构查询的方式查询执行的基础MySQL 查询优化器的局限性查询优化器的提示(hint)优化特定类型的查询总结前言三驾马车:查询优化、索引优化、库表结构优化为什么查询速度会慢对应查询来说,真正重要的是响应时间查询的大致生命周期客户端 -> 服务器(解析、生成执行计划、执行、返回结果)-> 客户端执行:包括了检索数据到...
2019-01-27 16:06:44
577
原创 《高性能MySQL》创建高性能的索引
文章目录前言索引基础索引类型索引的优点高性能的索引策略索引案例学习维护索引和表总结前言索引是存储引擎用于快速找到记录的一种数据结构索引基础索引是在存储引擎层而不是服务层实现不同存储引擎的索引的工作方式并不一样,也不是所有的存储引擎都支持所有类型的索引索引类型B-Tree 索引存储引擎以不同的方式使用 B-Tree 索引MyISAM:前缀压缩技术、数据的物理位置引用被...
2019-01-19 20:10:44
285
原创 《高性能MySQL》 MySQL 架构与历史
MySQL 逻辑架构第一层:连接处理、授权认证、安全等第二层:存储过程、触发器、视图第三层:存储引擎(插拔式架构并发控制读写锁共享锁排他锁锁粒度锁策略:在锁的开销和数据的安全性之间寻求平衡表锁(MySQL服务层实现行锁(存储引擎层实现事务ACID原子性(atomicity一致性(consistency隔离性(isolati...
2019-01-13 17:02:16
257
原创 「笔记」Nginx总结
代理服务器含义:「客户端」在发送请求时,先发送给「代理服务器」,「代理服务器」接受请求后转发给「服务端」,「服务端」处理请求后返回数据给「代理服务器」,「代理服务器」存储数据并转发给「客户端」目的:提高访问速度:「客户端」访问相同的站点数据时,直接从「代理服务器」中读取,起到缓存的作用防火墙:可为「服务端」过滤某些不安全的请求信息翻墙看片 可访问受限网点:「客户端」访问受限时,可通过...
2018-09-24 19:14:23
345
原创 事务未完成提交,导致表被锁
背景在xxxx项目中,需要将旧表数据导入新表中,因表结构与字段名都不同,遂采取设置一个定时任务去搞。读取老数据拆分新表所需数据信息插入新表在本地Debug启动调试,程序运行到插入新表时,直接「 强制 」关闭程序。然后 … 除了「复制」,其他操作都直接卡死…完了完了… 这下得收拾收拾工位准备去找财务结算了额,不对!这好像是「Dev环境」,NICE !~~...
2018-09-16 14:55:50
5891
1
原创 Linux grep常用选项
「grep」常用选项常用操作:输出包含数字的行 grep -E '[0-9]+' $file_name 输出每行出现的数字(若存在) grep -o -E '[0-9]+' $file_name 输出数字出现的总行数 grep -o -E '[0-9]+' $file_name | wc -l输出数字出现的总行数(去重) grep -o -c -E...
2018-09-16 14:18:09
627
原创 Git学习笔记(二)
基本原理冲突常用命令与配置基本原理查看「.git」文件夹里的结构treeor ll 都可以:这里包括了所有Git存储和操作的对象 HEAD 文件指示目前被检出的分支 index 文件保存暂存区信息 objects 目录存储所有数据内容 refs 目录存储指向数据(分支)的提交对象的指针 版本迭代的过程:分支 与 HEA...
2018-08-23 22:19:03
191
转载 Typora-Markdown工具
本文选自《Markdown 实用指南》 作者:毕小烦Hello TyporaTypora 是什么?Typora 是一款简单、高效而且非常优雅的 Markdown 编辑器,它提供了一种所见即所得的全新的 Markdown 写作体验。Typora 把源码编辑和效果预览两者合二为一,在输入 Markdown 代码的时候即时生成预览效果。Typora 是...
2018-08-20 16:29:52
2785
原创 JavaWeb毕业设计项目-足球队管理系统(四)引入Excel_To_DB项目+源码
一、引入Excel_To_DB项目1.业务介绍 加入球员数据批量导入功能,允许球队主教练批量导入数据,进入界面的步骤: 图一:使用“主教练”的账户密码登录 图二:选择【球队日常管理】-【数据统计管理】中的【批量导入】进入界面 图三:进入球员数据同步工具界面,详细功能业务请参考【Excel_To_DB】SpringBoot+EasyPoi+Redis消息队列实现Excel批量...
2018-07-08 17:19:45
6452
5
原创 假期复习资料及其完成情况(打卡贴—Done!!)
哈哈哈哈哈哈 假期来临了 ~ 重返校园 贼开心~ 毕业论文也撸得差不多了 ~ 清考也过了~ 重修网课也上完了~ cool !!! 准备趁着这段假期,系统地过一遍基础~ 要求 学习链接 要求 完成情况及其完成日期 Java入门——Java基础 http://www.imooc.com/learn/85 完成所有内容学习,并且做完相...
2018-05-25 17:36:59
396
原创 Git学习笔记记录 + IDEA中使用git对应的操作
1.Git是目前世界上最先进的分布式版本控制系统。2.Git是由创建了Linux系统的大佬Linus创建的。3.CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统。那分布式版本控制系统与集中式版本控制系统有何不同呢? 首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电...
2018-05-21 14:54:04
946
4
原创 Github上更改项目技术标签、语言属性 (JavaScript / Java 等)
例如:上传的一个项目,被GitHub自动划分为JavaScript标签,但个人更倾向于Java标签 进入项目,在目录下创建新文件,名称为:.gitattributes 内容为:*.js linguist-language=Java*.css linguist-language=Java*.html linguist-language=Java如图: 创建完成,返回首页...
2018-05-18 12:14:38
2367
转载 使用Emacs / IDEA 敲出UML,PlantUML快速指南(新手使用教程)
原文地址:http://archive.3zso.com/archives/plantuml-quickstart.htmlTable of Contents前言什么是PlantUML在Emacs里配置PlantUML(参考:Run it from Emacs)其他软件里的PlantUML下载和安装如何使用顺序图(Sequence Diagram)简单示例注释语句申明...
2018-05-13 09:40:00
1171
原创 非常抱歉,我可能要暂停更新一段时间......
春招我的2018年春招之旅提前结束了,3月15号收到了 便利蜂 正式的校招offer邮件,综合考虑下再加上确实是对便利蜂面试官强烈的好奇(ps:这次是近段时间几家公司面试中回答最差的一次…而且面试过程时间也最短,20分钟面试官就准备结束面试,看网上面经都是1个小时左右,瞬间心态崩盘,强行挽留住面试官唠了十分钟Mysql…..),决定不再继续观望,提前结束春招之旅,将精力重心放在真正的实战开发上...
2018-03-25 16:54:41
551
SecureCRT_
2017-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人