keepspy 发布于 06月09, 2021

【工作踩坑】之mysql问题

最近不知道怎么回事,接连有同事踩坑,而且都是和Mysql有关,一个是执行delete语句导致全变数据删除,另一个是使用Mybatis封装的Wrapper更新表出问题导致 in子查询问题前两天同事遇到一个Mysql删除语句问题,最终导致全表数据删除,接下来就给大家详细介绍下问题的原因和解决方法。问题重现在介绍问题之前,先问大家一个问题,现在库里有两张表user(用户表)、class(班级表),用户表有两个字段(id,name),班级表也有两个字段(id,type),然后执行以下sql:delete from user where name in ( select name from class...

阅读全文 »

keepspy 发布于 01月13, 2021

【Leetcode题解】-只出现一次的数字、多数元素、搜索二维矩阵

今天分享几个leetcode(力扣)有趣的几个题目的题解1、只出现一次的数字题目连接:https://leetcode-cn.com/problems/single-number/给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4题解:题意很明确,就是找数组中只出现一次的数字,如果不关心要求(时间复杂度O(n)、空间复杂度O(1)),可能大多数人想到的是维护一个map,key是数组...

阅读全文 »

keepspy 发布于 12月22, 2020

【转载面经】-阿里影业四面、美团二面

阿里影业-四面挂一面时间:2020/11/25 20:00 37分钟1、你在项目中遇到过的最难的问题是什么,如何解决的根据自己实际情况作答2、JAVA8有哪些新特性,说一下你了解的 (1)、 lambda表达式 (2)、 去永久代,变为元空间 (3)、Optional 类 − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。 (4)、Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。 (5)、Date Time API − 加强对日期与时间的处理。3、设置元空间大小的参数知道吗...

阅读全文 »

keepspy 发布于 12月08, 2020

【java基础系列】之垃圾回收器及回收算法

本章和大家聊一下jvm的垃圾收集器以及对应的垃圾收集算法,可能大部分同学对于GC方面的了解程度还停留在面试那一级别,如果问起什么三色标记算法,可能有些同学就不知道啦,下面就和大家一起整体了解下GC和它的一些延伸知识点你懂的越多,你不懂的越多垃圾收集算法本章大概介绍几个常见的垃圾收集算法:复制算法、标记-清除、标记-整理、分代回收标记-清除算法算法分为"标记"和“清除”两个阶段:首先扫描所有对象标记出需要回收的对象,在标记完成后扫描回收所有被标记的对象,所以需要扫描两遍。回收效率略低,如果大部分对象是朝生夕死,那么回收效率降低,因为需要大量标记对象和回收对象它的主要问题,标记...

阅读全文 »

keepspy 发布于 11月30, 2020

【Mysql知识汇总】之常用索引及sql优化

写在前边:索引在mysql中是极其重要的,它可以大大提高数据查询的速度,而且使用起来灵活方便,本章大概聊一下常用的索引类型以及sql优化相关的知识你懂得越多,你不懂的越多索引类型mysql的索引类型从逻辑角度大概可分为:普通索引(normal)、唯一索引(unique)、主键索引、组合索引。普通索引(normal)普通索引可以理解为单个字段的索引,可以使用如下命令创建CREATE INDEX index_name ON table(column(length))或者修改通过表结构的方式创建ALTER TABLE table_name ADD INDEX index_name ON (colum...

阅读全文 »

keepspy 发布于 11月02, 2020

【Mysql知识汇总】之存储引擎和索引模型

写在前边:mysql所涉及的基础知识还是比较多的,什么存储引擎、索引、索引模型、sql优化、范式等等,本节先描述最基础的存储引擎和索引模型 你懂得越多,你不懂的越多存储引擎 存储模型是对数据库存取数据的一种实现机制,包括为存储数据建立索引,以及查询技术的方式。常用的存储引擎:MyISAM、InnoDB、Memory、Archive。查看方式: show engines; // 查看mysql所支持的存储引擎,以及从中得到mysql默认的存储引擎。四种存储引擎的比较InnDB:数据的屋里组织形式是簇表 支持事务支持自增长列支持MVCC的行级锁支持外键支持热备份默认使用B+ 树 索引模型不仅缓...

阅读全文 »

keepspy 发布于 09月11, 2020

【通信协议】笔记之Redis协议抓取分析

从此篇文章开始,将进入通信协议相关学习,大概囊括几个知识点:TCP协议、UDP协议、Redis协议相关,顺带介绍Wireshark分析工具、Tcpdump命令等使用工具。本篇文章主要介绍Redis协议相关知识点。RESP(Redis序列化协议)概念 Redis底层使用的通信协议是RESP(Redis Serialization Protocol的缩写),RESP协议可以序列化多种类型,比如Simple Strings(简单字符串),Errors(错误类型),Integers(整形),Bulk Strings(批量串)和Arrays(数组),但此协议只适用于Redis客户端-服务端之间的通信,R...

阅读全文 »

keepspy 发布于 05月25, 2020

【java基础系列】-Map集合之HashMap(java8)

提起Map想必大家都不陌生,用的最多的比如:HashMap、TreeMap、ConconrentHashMap等等,本文主要介绍HashMap底层的一点东西,说的不全,后续会继续补充。。。你懂得越多,你不懂的越多简介HashMap在java.util包下,是AbstractMap的字类,属于非线程安全的集合,HashMap的源码相信很多人都看过,我再稍微总结下,做个笔记,以便后续复习,先介绍下HashMap类的几个变量:DEFAULT_LOAD_FACTOR = 0.75f :默认装载因子(0.75)EFAULT_INITIAL_CAPACITY = 1 << 4:默认初始容量...

阅读全文 »

keepspy 发布于 03月28, 2020

【Redis学习笔记】—应用场景、数据类型、雪崩、穿透、击穿

仔细体会这句话你知道的越多,你不知道的越多使用场景传统Mysql已经不能满足所有场景,比如,秒杀商品库存扣减,App流量访问高峰,很多高并发场景都有可能吧redis打崩,于是引入缓存中间件,常用的有Redis、Memcached。延伸:Redis和Memcached的优缺点Redis优点: 1、 速度快,内存型Key-Value存储,查找时间复杂度O(1); 2、数据类型丰富:List、Set、Zset、Hash、Geo等; 3、支持事务,操作原子性; 4、功能多:自定义过期时间、跳表、哨兵、分布式锁实现等;Redis相比于Memcached的优点: 1、Memcached 存储是简...

阅读全文 »

keepspy 发布于 12月19, 2019

【工作】记一次TCP数据传输的问题修复过程

背景:前一阵接了某家公司的车辆数据,接入方式是使用底层的tcp传输协议,数据处理中间层框架使用mina,联调完后发现时不时会出现数据丢失现象。解决过程首先想到可能是数据包解析方面的问题,于是翻了下对方提供的协议文档,按照对方提供的协议,发现字节没有对错,咨询对方技术后人家说不是按数字节解析,而是每个字段前面对应的标识解析。之后连夜写(其实是拷贝粘贴)了个通用解析方法,部署后发现大多数丢的数据恢复了,但偶尔还是有那么几个数据丢失,作为一个对工作极其负责(较真)的人,我决定彻查到底。排除了解析问题,接下来就是要确认下是不是存在网络丢包,于是想用ping 测试下丢包率,结果对方服务器设置了限制pin...

阅读全文 »