自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (13)
  • 收藏
  • 关注

原创 请求一下子太多了,数据库危

大家好,我是七淅(xī)。如标题所说,和大家分享一个我曾优化过的业务场景。当然,具体业务细节不重要,重要的是优化的思路。如果大家以后有遇到类似特点的场景,能够想到七淅这篇优化文章,那我就觉得很值了。接下来我就直接进入主题,要分享得优化思路就是请求合并。弱弱说一句,由于优化效果特别明显,这一优化我直接写到简历上了。之前面试有不少面试官都会来问我是怎么做的,你看这不就给我机会发挥了吗?所以大家懂的,有合适场景记得用起来,以后面试也和面试官谈笑风生。首先说明一下,这并不是什么高级的优化方式,不难,朴实无华,但有用

2022-06-27 13:23:48 239

原创 有关 ThreadLocal 的一切

早上好,各位新老读者们,我是七淅(xī)。今天和大家分享的是面试常驻嘉宾:ThreadLocal当初鹅厂一面就有问到它,问题的答案在下面正文的第 2 点。1. 底层结构ThreadLocal 底层有一个默认容量为 16 的数组组成,k 是 ThreadLocal 对象的引用,v 是要放到 TheadLocal 的值public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = ge

2022-05-10 13:17:44 650 5

原创 实战篇:单库单表变更成多库多表

大家好,我是七淅(xī)。如标题所说,本文会结合我自己的亲身经历,介绍 3 部分内容:线上单库单表变更到多库多表的各个实现方案方案优劣对比对于历史存在的单表,并且它们不需要变成多表,需要怎么处理先下个结论,没有百分百完美的方案,技术方案永远要结合产品业务来设计。以下举例的方案也只是较为通用的做法,具体细节是可以根据业务场景进行变化调整的。只要能够满足业务需求,就是好方案,不要为了秀技术而忽略业务。看完这篇文章,如果后面有人问你,关于变更到多库多表的方案问题,那你可以和他谈笑风生了。好了

2022-04-10 11:23:19 1006

原创 面试官:Redis中的缓冲区了解吗

hello 大家好,我是七淅(xī)。Redis 大家肯定不陌生,但在使用层面看不到的地方,就容易被忽略。今天想和大家分享的内容是 Redis 各个缓冲区的作用、溢出的后果及优化方向。在开始正文前,想多叨叨几句。不管是 Redis 还是其他中间件,底层很多原理都是相似的,设计思想都是通用的。大家以后如果在学什么新框架/组件,可以尽量和已经学过的知识点进行联想,这样会更容易理解点的,不至于说死记硬背。比如现在说到的缓冲区,它的目的是什么呢?无它,为了性能。要么缓存数据,提高响应速度。比如 MySQ

2022-03-19 11:23:26 694

原创 一文讲明白缓存雪崩、穿透、击穿

大家好,我是七淅(xī)。作为后端开发,我想缓存是大家再熟悉不过的东西了。本文会介绍出现缓存雪崩、穿透和击穿的业务背景、解决方案和对业务可靠性处理。事先说明,最佳解决方案一定需要结合实际业务调整,不同业务的处理不完全相同其实我在网上也看过不少关于缓存雪崩、穿透、击穿介绍,不知道是不是大家所做业务的不同,发现有不少小伙伴有以下疑问,比如:加随机时间过期后,如果访问时间刚好就是加了随机时间后的数据,这样岂不是白加了随机时间?热点数据不过期,那岂不是有越来越多的脏数据?就以上问题,我都会在文中一一

2022-03-08 16:49:10 612

原创 简历准备及面试技巧,你应该知道的一切

最近金三银四,借此机会和大家分享我在简历、投递策略和面试上的经验。 先介绍我自己的情况,我的履历相当普通,普通本科毕业,毕业后去了一家小厂,3 个月后因寒冬被裁。 以这样的劣势开局,用了 2 年半时间成功进入某大厂。期间没少被各大中小公司虐过,幸好收获了一些经验。我会把自己行之有效的准备方法、技巧和注意点都和大家说一说,这些内容其实不管是在面大厂还是小厂,都是通用的本文一共 6k+ 字,肝到了凌晨 3 点多,希望对大家求职有所帮助。 1

2022-03-02 22:06:15 324

原创 你应该知道的Redis事务

前两篇 Redis 文章都大几千字,今天我们换个小清新点的,篇幅不多也容易理解。如果你也了解过关系型数据库事务的话,相信这篇文章对你来说是很容易理解的了。具体什么是事务我就不说不多了,直接讲 Redis 事务相关的部分。首先,我们先来看下,Redis 是怎么执行事务的。1. 事务执行过程show code:127.0.0.1:6379> multiOK127.0.0.1:637...

2019-01-30 12:38:47 185

原创 一文让你明白Redis主从同步

今天想和大家分享有关 Redis 主从同步(也称「复制」)的内容。我们知道,当有多台 Redis 服务器时,肯定就有一台主服务器和多台从服务器。一般来说,主服务器进行写操作,从服务器进行读操作。那么这里有存在一个问题:从服务器如何和主服务器进行数据同步的呢?这个问题,就是通过今天的内容:主从同步来解决的。文章内容依旧比较干,建议大家静下心来专心看,文末会给大家做个简单总结归纳。1. 如何...

2019-01-23 13:01:07 307 2

原创 一文让你明白Redis持久化

网上虽然已经有很多类似的介绍了,但我还是自己总结归纳了一下,自认为内容和细节都是比较齐全的。文章篇幅有 4k 多字,货有点干,断断续续写了好几天,希望对大家有帮助。不出意外地话,今后会陆续更新 Redis 相关的文章,和大家一起学习。好了,下面开始回归正文:Redis 一共有 2 种持久化方式,分别是 RDB 和 AOF,下面我来详细介绍两种方式在各个过程所做的事情,特点等等。1. RDB...

2019-01-19 10:07:08 150

原创 你应该知道的Redis过期键和过期策略

今天,我和大家分享一篇关于 Redis 有关过期键的内容,主要有四个内容:如何设置过期键如何取消设置的过期时间过期键的过期策略是怎样的RDB、AOF 和复制对过期键的处理又是怎样的设置键的生存时间或过期时间redis 一共有 4 个命令来设置键的生存时间(可以存活多久)或过期时间(什么时候被删除)expire :将 key 的生存时间设置为 ttl 秒pex...

2019-01-05 17:07:16 560 5

原创 一文让你明白平均负载

1. 什么是平均负载首先,我们先理解下什么是平均负载。平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。(为什么和 CPU 使用率没直接关系,这个我后面说明)那么问题来了,可运行状态和不可中断状态又是什么东西呢?所谓可运行状态的进程,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们常用 ps 命令看...

2019-01-05 16:50:48 301

原创 一文让你明白CPU上下文切换

我们都知道,Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时运行的错觉。而在每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好CPU 寄存器和程序计数器什么是 CPU 上下文CPU 寄存器和程序计数器就是...

2018-12-20 13:07:37 3699

原创 stash —— 一个极度实用的Git操作

今天要介绍的 Git 操作就是 stash,毫不夸张地说,每个用 Git 的开发人员都一定要会懂怎么使用。在介绍之前,不知道你有没有和我一样的经历:某一天,我正在一个 feature 分支上高高兴兴地写着(ba)代(a)码(ge)。突然线上环境报错了,是我负责的部分,此时当然是救火要紧哈,准备停下手中的工作准备切 master 分支 checkout 个 hotfix 分支出来。脑袋正闪出这个...

2018-12-14 23:16:26 524

原创 记一次狂怼多线程的面经

多线程有什么方法可以监控线程的状态synchronized 的作用synchronized 底层是怎么实现的synchronized 有哪几个使用方式修饰方法和修饰代码块有什么不同synchronized 为什么要添加对象锁,即 synchronized () 中,为什么要有这个括号里面的内容说下并发包和 synchronized 的区别说下 Java 内存模型是什么volat...

2018-11-30 14:33:18 207

原创 面试官:快排会写吗?

排可以说是一道必知的常见面试题,同时也有多种实现方式。在这篇文章中,我使用的是随机三路快排。之所以使用随机快速排序而不是普通的快排。是因为前者可以使得数列有序的概率降低,从而使随机快速排序平均速度是比快速排序要快的。具体的两者的性能差别可以看下这篇文章:https://blog.csdn.net/haelang/article/details/44496387talk id cheap,sh...

2018-11-14 09:53:39 3102 2

原创 面试官:说说快速失败和安全失败是什么

什么是快速失败(fail-fast)和安全失败(fail-safe)?它们又和什么内容有关系。以上两点就是这篇文章的内容,废话不多话,正文请慢用。我们都接触 HashMap、ArrayList 这些集合类,这些在 java.util 包的集合类就都是快速失败的;而 java.util.concurrent 包下的类都是安全失败,比如:ConcurrentHashMap。1. 快速失败(fai...

2018-11-10 08:50:59 1707

原创 二叉树前中后序遍历的实现(递归和非递归版)

各位读者周末愉快呀,今天我想来说说一道很常见的面试题目 —— 关于二叉树前中后序遍历的实现。本文将以递归和非递归方式实现这 3 种遍历方式,代码都比较短,可以放心食用。先简单说明一下这 3 种遍历方式有什么不同 —— 对于每种遍历,树中每个结点都需要经过 3 次(对于叶结点,其左右子树视为空子树),但前序遍历在第一次遇到结点时就立即访问,中序遍历是在第二次遇到结点时访问,后序遍历则是第三次访问。...

2018-11-03 09:15:26 431

原创 浅谈布隆过滤器

1. 问题情景如果面试官问你,一个网站有 100 亿 url 存在一个黑名单中,每条 url 平均 64 字节。问这个黑名单要怎么存?若此时随便输入一个 url,如何判断该 url 是否在这个黑名单中?对于第一个问题,如果把黑名单看成一个集合,将其存在 hashmap 中,貌似太大了,需要 640G,明显不科学。那该怎么办?ok,现在该介绍今天的主角了 —— 布隆过滤器就可以解决这样的问题。...

2018-11-01 09:36:12 381

原创 你应该知道的数据库数据类型及其设计原则

文章目录1. 整数类型2. 实数类型3. 字符串类型4. 日期和时间类型5. 设计合理的数据类型1. 整数类型整数类型有:tinyint、smallint、mediumint、int、bigint,分别使用 8、16、24、32、64 位存储空间。它们可以存储的值范围从 -2 的 (n-1) 次方到 2 的 (n-1) 次方 -1,n 是存储空间的位数。整数有可选的 unsigned 属性...

2018-10-16 08:35:10 1890

原创 Java 内存区域介绍

注:本文内容均来自《深入理解 Java 虚拟机》,仅为学习记录。1. Java 虚拟机运行时数据区Java 虚拟机所管理的内存将会包括以下几个运行时数据区域,如图所示:1.1 程序计数器它是一块较小的内存空间,是唯一一个在 Java 虚拟机规范中没有规定任何 OutOfMemoryError 情况的区域。 它可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时,就是通过改变这个计数器的

2017-07-20 22:18:56 374

原创 mybatis foreach 属性及其三种使用情况

foreach 属性介绍单参数是 array 类型单参数是 List 类型单参数是 Map 类型多参数foreach 属性介绍foreach 用于迭代传入过来的参数。 它的属性介绍分别是collection:表示传入过来的参数的数据类型。该参数为必选。要做 foreach 的对象,作为入参时,List 对象默认用 list 代替作为键,数组对象有 array 代替作为键,Map 对象没有

2017-07-19 10:26:51 25650

原创 mybatis 学习记录(0)——细节注意点

写在前面配置文件1 SqlMapConfigxml 文件各参数介绍2 BeanMapperxml21 MyBatis 中 和 的区别22 SQL 语句中的列名与关键字冲突解决23 表字段名和 bean 属性名不一样时导致获取不到返回数据的问题解决java 代码2 Param 参数的作用2 二级缓存0. 写在前面主要记录使用 mybatis 开发过程需要注意的一些细节和犯的错误,

2017-06-19 23:57:21 1402

原创 多线程学习笔记

尊重他人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/73168419此文章纯属记录 Java 多线程的一些知识点,涉及程度比较入门。如果读者是想深入学习的话,或许其他文章会更合你的胃口。内容基本来自《Java 多线程编程核心技术》线程和进程的定义区别多线程访问成员变量与局部变量线程各状态描述synchronizedv

2017-06-13 12:07:10 497

原创 mybatis 学习记录(4.2)—— 级联查询(有 association 和 collection)

版权声明:版权声明:尊重他人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/725996811. 项目介绍本文主要介绍在级联操作中 association,collection 的使用。如果对最基本的级联操作还不是很了解的话,可以参考这篇文章。mybatis 学习记录(4.1)—— 级联操作(无 association 和 co

2017-05-21 17:40:39 1738

原创 mybatis 学习记录(4.1)—— 级联查询(无 association 和 collection)

版权声明:版权声明:尊重他人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/725996431. 先前介绍本文是对 mybatis 级联操作最简单操作的介绍,如果想要了解有关 association 和 collection 内容的话,可以移步到这篇文章进行阅读。 mybatis 学习记录(4.2)—— 级联操作(有 asso

2017-05-21 17:19:47 720 1

原创 interrupt(),interrupted() 和 isinterrupted() 的区别

尊重他人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/720268251. 结论先行 interrupt():将调用该方法的对象所表示的线程标记一个停止标记,并不是真的停止该线程。是一个实例方法。 具体中断线程的方法请看我这篇文章。中断线程的方法 interrupted():测试当前线程的中断状态,并且会

2017-05-14 16:54:29 942 2

原创 中断线程的方法

尊重个人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/72026801异常法【推荐】public class Run { public static void main(String[] args) { try { StopThread01 thread01 = new S

2017-05-14 16:50:43 666

原创 mybatis 学习记录(3)—— 动态 sql

尊重个人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/71436960本篇博客主要介绍 mybatis 中动态 SQL 的使用(增删改查)。话不多说,直接进正题了。1. 动态查询关键代码:@Testpublic void main() throws Exception { StudentDao studentDa

2017-05-08 22:53:33 469

原创 mybatis 学习记录(2)—— 分页查询

尊重个人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/714049401. 无条件分页查询StudentMapper.xml 代码:<select id="findByFY" parameterType="map" resultType="com.czd.mybatis01.bean.Student"> SE

2017-05-08 11:50:40 563

原创 SELECT LAST_INSERT_ID() 的使用和注意事项

尊重个人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/71302441首先我先解释以下在在映射文件中的代码是什么意思。<insert id="insertStudent" parameterType="com.czd.mybatis01.bean.Student"> INSERT stu(name)VALUES (#{

2017-05-06 21:15:14 111800 18

原创 mybatis 学习记录(1)—— 入门程序

尊重个人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/712417750.写在前面本文仅介绍 mybatis 的入门级使用,即对单个表的增删改查操作。1. 准备环境IDEA 14.1.7Mysql 5.5maven 2. 数据库学生表:stu 3. 配置文件jdbc.propertiesjdbc.driver=

2017-05-05 20:09:14 452

原创 javaweb 基础(2)—— cookie

1. 什么是 Cookie?Cookie 是一小段的文本信息,可以用来保存用户信息。在客户端请求服务器时,如果服务器需要记录该用户状态,就使用 response 向客户端发送一个 Cookie。客户端会把 Cookie 保存起来。当客户端再请求该网站时,客户端就会把请求的网址连同该 Cookie 一同提交给服务器。服务器检查该 Cookie,以此来辨认用户状态。同时,服务器也可以根据需要修改 Cook

2017-04-26 18:21:09 339 1

原创 javaweb 基础(1)—— servlet

尊重个人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/703063521. 定义servlet 是运行在服务器端的,按照一定规范编写的 java 应用程序。用下表解释定义: Java类 服务器端运行 必须调用Java Servlet API Servlet是用Java语言编写的,遵守所有Java语言的语法规则的J

2017-04-20 22:47:40 426

转载 WebService 到底是什么?

本文转载于:http://blog.csdn.net/wooshn/article/details/80690871. 序言大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传 WebService 技术,其中不乏很多吹嘘和做广告的成分。但是不得不承认的是 WebService 真的是一门新兴和有前途的技术,那么 WebService 到底是

2017-03-31 23:30:01 606

原创 getSimpleName(),getClass(),getGenericSuperclass()和getActualTypeArguments()的返回结果

方法介绍 getClass():返回当前类的包名.类名 getSimpleName():返回当前类的类名 getGenericSuperclass():返回当前类父类的类型(即:包名.类名<具体类型>) getActualTypeArguments():返回表示此类型实际类型参数的 Type 对象的数组。【一般不直接使用该方法,而是在该方法后加一个下标,如下两行】

2017-03-10 19:47:17 1195

转载 写给准备参加秋招的学弟学妹们~一定要来看哦~

转载于:http://blog.csdn.net/liuqiyao_01/article/details/26567237 如有侵权请私信我,马上删除。一、前言  好久没写blog了,可能工作比较忙的原因吧。工作之后也略显疲惫,有点懒,不是很愿意动笔。不过由于今年秋招的临近,于是决定整理一下自己和其他几个大牛的经验,指导一下自己的学弟学妹们。   首先要说明的是,此次我主要是针对互联网公司的面试

2017-02-24 09:52:18 1356

原创 在IDEA中使用JUnit进行方法测试

1. 前文刚学习到的新技能,对JUnit的了解也还是皮毛程度,在这里做个笔记。如果哪位大神有更完整或更便捷的使用操作的话,希望可以分享一下,大家一起学习:)2. 正文2.1 环境IDEA 14.1.7版本2.2 情景设置现有一个类StudentDaoImpl,有如下方法public class StudentDaoImpl implements IStudentDao {public void s

2016-12-11 14:28:20 42666 5

原创 简单了解Http协议

1. Http协议入门1.1 什么是Http协议http协议:对浏览器客户端和服务器端之间数据传输的格式规范2. Http请求Http请求内容如下所示:GET /text/hello HTTP/1.1 -请求行Host: localhost:8080 --请求头(包含该行和下面多个key-value对象)User-Agent: Mozilla/5.0 (Windows

2016-11-07 19:24:25 1235

转载 Android 编码规范

1. 前言这份文档参考了 Google Java 编程风格规范和 Google 官方 Android 编码风格规范。该文档仅供参考,只要形成一个统一的风格,见量知其意就可。1.1 术语说明在本文档中,除非另有说明: 术语 class 可表示一个普通类,枚举类,接口或是annotation类型(@interface) 术语 comment 只用来指代实现的注释(implementation comments),我们不使用"documentation comments"一词,而是用

2016-10-21 00:36:38 443

原创 同步更新Github中Fork的代码

本文为博主原创文章,转载请注明出处:http://blog.csdn.net/czd3355/article/details/52863744我们如何同步更新Github中Fork下来的代码呢?废话不多说,直接以同步android-open-project这个项目为例,(ps:这是一个Android 开源项目分类汇总,推荐!链接:android-open-project) 先上个图,这是同步之前的

2016-10-19 21:50:59 792

重构_改善既有代码的设计[高清版].pdf

重构_改善既有代码的设计[高清版].pdf

2017-05-28

深入JAVA虚拟机第二版.pdf

深入JAVA虚拟机第二版.pdf

2017-05-28

敏捷开发-敏捷软件开发:原则、模式与实践(全).pdf

敏捷开发-敏捷软件开发:原则、模式与实践(全).pdf

2017-05-28

Java多线程编程核心技术.pdf

Java多线程编程核心技术.pdf

2017-05-28

Java并发编程实战(中文版).pdf

Java并发编程实战(中文版).pdf

2017-05-28

earn-github-from-zero

张哥所著,公众号:AndroidDeveloper;博客:http://blog.csdn.net/googdev?viewmode=contents。

2017-05-28

StateListDrawable例子

Drawable系列(四)——StateListDrawable的属性和使用介绍一文Demo下载资源

2016-10-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除