- 博客(7)
- 收藏
- 关注
原创 Redis 字符串剖析
1.前言关于redis字符串的sds定义sds为c语言内一个结构体,而这个结构体的内部有三个值,分别是int len 代表buf数组中已使用的字节长度int free记录buf数组中未使用字节的数量char buf[]用于保存字符2.关于sds与c语言字符串的区别在哪里?(1)常数复杂度可取字符串长度这个好理解,在c语言字符串中长度是需要O(n)复杂度取得,而在redis当中此长度仅仅为O (1)复杂度,因为可以在len中直接取得嘛(2)杜绝缓冲区溢出c语言中,strcat可以将某字符串修
2021-07-30 23:59:37
62
原创 阿里二面(支付宝部门)
话说这次面试在一面过后的第二天晚上,我在吃晚饭(大概9:00多)我目测凉了全程37分钟自我介绍,接着问项目。我介绍了一下自己的分布式项目,redis如何实现分布式锁,并发量大概有多少,防止缓存穿透和缓存雪崩怎么做但redis实现分布式锁这里的回答,我翻车了面试官说:哈哈哈,这不能算高并发贴一下本人的项目架构图然而接下来一个问题把我问倒了,面试官说:“你的假如100个人去争抢一把锁,那么同时串行到redis中,那么怎么优化这个项目呢?”于是扯来扯去。。。扯了15分钟没给出面试官想要的答案
2021-03-04 22:43:56
265
3
原创 阿里(支付宝部门一面面经,人生第一场面试)
一开场自我介绍介绍项目mysql:两个引擎排查sql语句执行慢的错误,如何检查是否使用索引数据库如何分库分表,如何处理id键值,怎么查找对应的数据库mysql中binlog的概念(没答上来)redis:常见数据结构zset的实现用了什么数据结构缓存穿透和缓存雪崩redis为什么快Spring:bean的初始化流程,介绍Spring的基本组件介绍ioc会和aop的原理用Spring的好处在哪里你读过Spring源码的部分?哪部分对你编程最受启发jvm:介绍基本内存模型垃圾收
2021-03-01 10:37:12
612
4
原创 Java中Vector和ArrayList的区别?
Java中Vector和ArrayList的区别?Vector是线程安全的(所有方法都是同步的)ArrayList是线程不安全的所以,在执行效率上ArrayList更高,Vector更低一点,视乎是否多线程选择使用吧!
2021-02-06 13:52:28
49
原创 java面试系列(1)
关于JVM和JDK和JRE的关系运行大体流程如下:(1)java程序写好了,交给jdk,jdk把java代码转化成一个个.class文件,这一步可以理解为.java文件通过jdk转化为.class文件(2) .class文件整好了,但是我们的机器只能读懂01这样的机器语言,那怎么?接下来就是.class文件通过jvm转化为机器可执行的二进制机器语言如果实在不想看以上一大段话可以直接看总结:(1)jdk用于产生.class文件(2)jvm用于将.class转化为机器语言...
2020-12-02 00:53:07
139
原创 HashMap中数组使用的长度是2的幂次方?
HashMap面试系列(2)Q:为什么是hashmap的长度是2的n次方????这个问题首先要从系列1的Hash码出发由于在JVM内存中HashCode是32b的,因此HashMap中计算出的Hash也是32b,由此可以推断整个Hash的表示范围是正负2^31所以但一个Hash数组要满足这个条件要用约40亿个存储空间,不现实。根据《数据结构》的理论,每个元素的下标采取了%( 取模)的方式进行计算下标,当数组下标相同时,采取拉链法(1.7:链表,1.8:红黑树,一种左右基本平衡的二叉树)进行扩充。
2020-11-28 00:13:02
110
1
原创 HashMap中的Hash码怎么计算,为什么要这样做?
HashMap面试系列(1)Q:HashMap中的Hash码如何计算?为什么要这么做?注意:HashCode()是对象的Hash码,和HashMap中的Hash码不是同一个东西1.8版本如下 static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); }关于位运算&:两个1是
2020-11-27 23:14:34
1023
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人