随笔分类 - 面试
摘要:需求背景 XX需求,批量输入域名的时候,需要对域名字符串进行分隔,并去重,同时分隔后统一使用换行符进行保存,便于下一次批量展示 ##输入 www.baidu.com fdas.com google.com www.baidu.com; gool.com ##预期结果 www.baidu.com fd
阅读全文
摘要:#引言 ##概念 缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频 运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中 率,而不用
阅读全文
摘要:#引言 唯一ID可以标识数据的唯一性,在分布式系统中生成唯一ID的方案有很多,常见的方式大概有以下三种: 依赖数据库,使用如MySQL自增列或Oracle序列等。 UUID随机数 snowflake雪花算法(本文将要讨论) 数据库和UUID方案的不足之处 1.采用数据库自增序列 读写分离时,只有主节
阅读全文
摘要:#引言 InnoDB一棵3层B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。 在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他
阅读全文
摘要:#引言 联合索引又叫复合索引。两个或更多个列上的索引被称作复合索引。 对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c)。 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行
阅读全文
摘要:#引言 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps
阅读全文
摘要:#引言 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL
阅读全文
摘要:#引言 在Java中,volatile通过内存屏障的方式禁止指令重排序,保证操作的顺序执行,今天就带大家看一下内部的具体实现 #JVM级别规范 JVM虚拟机规范中:通过不同的内存屏障来保证写或读操作的顺序执行 ##LoadLoad屏障 对于这样的语句Load1; LoadLoad; Load2 它的
阅读全文
摘要:#引言 题目:编写一个算法来判断一个数n是不是快乐数 来源:网友分享的面试算法题 #题目描述 【快乐数定义】 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为1,也可能是 无限循环,但始终变不到1。 如果可以变为1,那么这个数就是快乐数。 如果n是快乐数
阅读全文
摘要:#引言 经典多线程编程面试题 使用两个线程交替输出A1B2C3......Z26 #实现方案1 public static void method2() throws InterruptedException { Object object = new Object(); AtomicInteger
阅读全文
摘要:#引言 LRU是开发过程中设计缓存的常用算法,在此基础上,如何设计一个高效的缓存呢?本文就带大家分析并手撸一个LRUCache。 ##LRU算法 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问
阅读全文
摘要:#引言 原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。通常所说的原子操作包括对非long和double型的primitive进行赋值,以及返回这两者之外的primitive。之所以要把它们排除在外是因
阅读全文
摘要:#引言 ##JVM调优 程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpu load过高、请求延迟、tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高,每次垃圾收集清理掉的垃圾数据越来越少)、内存溢出导致系统崩溃,因此需要对JVM进行调优,使得
阅读全文
摘要:#引言 JVM为了更有效率的对堆空间进行垃圾回收,把堆空间进行了分代,分为年轻代、老年代和永久代(在1.8版本以后,永久代已经被彻底移除了,被元空间取而代之)。 当一个对象出生时,会首先选择在eden区为对象分配空间,当eden区被占满分配不下时,会触发一次Minor GC,MinorGC运行时,会
阅读全文
摘要:#引言 最长公共子串 #描述 有两个字符串,通过遍历找出最长的公共连续子串。 #示例 输入两个字符串 abnacty eabtnacm 输出最长公共连续子串 nac #分析 将两个字符串分别以行和列的形式组成一个二维矩阵; 比较二维矩阵中每个点对应的行和列的字符是否相等,相等的话,值设为1,不相等则
阅读全文
摘要:#引言 题目:停在原地的方案数 来源力扣:https://leetcode-cn.com/problems/number-of-ways-to-stay-in-the-same-place-after-some-steps/ #题目描述 有一个长度为 arrLen 的数组,开始有一个指针在索引 0
阅读全文
摘要:#引言 垃圾回收(GC,Garbage Collection) 在笔者上一篇文章中(JVM内存模型),介绍了JVM内存模型以及JVM运行时的数据区,堆是JVM内存区域里面最大的一块区域,用于存放实例数据,因此这一块区域是垃圾回收的重点区域,而堆为了提高垃圾回收效率,又被分为了年轻代和老年代,年轻代又
阅读全文
摘要:#引言 硬币凑整问题 题目来源:力扣 https://leetcode-cn.com/circle/discuss/vMYOmI/ #题目描述 已知一个无序数组 array,元素均为正整数。给定一个目标值 target,输出数组中是否存在若干元素的组合,相加为目标值。 #测试样例与说明 对于以下无序
阅读全文
摘要:#引言 作家作品打分 题目源自:力扣上的分享 https://leetcode-cn.com/circle/discuss/pUA0mL/ #题目描述 某某作家有n本小说,评委会要对该作家的写作进行打分。需要从中挑选两本小说进行计分,计分规则如下: 每本小说有5个方面的评价指标 两本小说进行合并计分
阅读全文
摘要:#引言 将两个已经排好序的数组进行合并,使得合并后的数组也是有序 示例: int a[] = {1, 3, 5, 11, 20}; int b[] = {1, 2, 3, 4, 7, 8, 11, 25, 30}; 排好序的结果 1 1 2 3 3 4 5 7 8 11 11 20 25 30 #代
阅读全文

浙公网安备 33010602011771号