摘要: MySQL百万数据深度分页优化思路分析 博客园图片丢失了,可以点这个链接进行查看本文 业务场景 一般在项目开发中会有很多的统计数据需要进行上报分析,一般在分析过后会在后台展示出来给运营和产品进行分页查看,最常见的一种就是根据日期进行筛选。这种统计数据随着时间的推移数据量会慢慢的变大,达到百万、千万条数据只是时间问题。 瓶颈再现 创建了一张 阅读全文
posted @ 2023-05-09 14:32 一个程序员的成长 阅读(808) 评论(0) 推荐(1) 编辑
摘要: Java停止线程的逻辑(协同、通知) 在Java程序中,我们想要停止一个线程可以通过interrupt方法进行停止。但是当我们调用interrupt方法之后,它可能并不会立刻就会停止线程,而是通知线程需要停止。线程接收到通知之后会根据自身的情况判断是否需要停止,它可能会立即停止,也有可能会执行一段时 阅读全文
posted @ 2022-08-17 14:15 一个程序员的成长 阅读(565) 评论(0) 推荐(2) 编辑
摘要: 什么叫装箱 & 拆箱? 将int基本类型转换为Integer包装类型的过程叫做装箱,反之叫拆箱。 首先看一段代码 public static void main(String[] args) { Integer a = 127, b = 127; Integer c = 128, d= 128; S 阅读全文
posted @ 2022-04-20 14:28 一个程序员的成长 阅读(551) 评论(8) 推荐(2) 编辑
摘要: equals常见面试题 在开始聊之前,我们先看几个常见的面试题,看看你能不能都回答上来。 1、equals和==有什么区别? 2、hashcode相等的两个对象一定==相等吗?equals相等吗? 3、两个对象用equals比较相等,那它们的hashcode相等吗? 如果我们不重写equals和ha 阅读全文
posted @ 2021-12-06 16:29 一个程序员的成长 阅读(1641) 评论(0) 推荐(2) 编辑
摘要: 点击阅读 阅读全文
posted @ 2021-11-11 14:22 一个程序员的成长 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 策略模式结构图 策略模式主要由以上三个身份组成,这里我们就不过多介绍策略模式的基础知识,默认大家已经对策略模式已经有了一个基础的认识。 业务需求 现有一个广告点击数据埋点上报的需求,上报的埋点数据根据点击的广告位置不同做区分进行上报,每个广告位置的数据进行分表存储。(eg:这里大家也不必深究分表存储 阅读全文
posted @ 2021-11-01 10:50 一个程序员的成长 阅读(568) 评论(2) 推荐(1) 编辑
摘要: 那么我们在开始介绍Java内存区域之前,我们先放一张内存区域的图,方便我们后面介绍的时候可以对照着看。 须知,本文是根据JDK8来介绍的。 程序计数器 首先它是线程私有的,它也称为代码的行号指示器,字节码解释器就是通过改变程序计数器的位置来确定下一行要执行的代码,它不存在OOM。 如果线程正在执行一 阅读全文
posted @ 2021-10-26 09:08 一个程序员的成长 阅读(205) 评论(7) 推荐(0) 编辑
摘要: 1、Random类及其局限性 public int nextInt(int bound) { if (bound <= 0) throw new IllegalArgumentException(BadBound); // 计算新的种子 int r = next(31); int m = bound 阅读全文
posted @ 2021-10-23 11:04 一个程序员的成长 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 记得刚来杭州面试的时候,有一家公司的技术总监问了我这样一个问题:你来说说有哪些线程安全的类?我心里一想,这我早都背好了,稀里哗啦说了一大堆。 他又接着问:那你再来说说什么是线程安全?——然后我就GG了。说真的,我们整天说线程安全,但是对于什么是线程安全我们真的了解吗?之前的我真的是了解甚微,那么我们 阅读全文
posted @ 2021-10-23 11:01 一个程序员的成长 阅读(429) 评论(0) 推荐(2) 编辑