- 博客(15)
- 收藏
- 关注
原创 Redis面试题
1. Redis优点使用内存进行存储效率高使用单线程避免线程切换底层有丰富的数据结构支持持久化2. Redis数据结构及其应用场景String 比如说可以用于点赞数List 比如说可以用户好友列表hash比如说可以用于存放商品的详细信息Set比如说可以用于共同关注的好友zSet比如说可以用于排行榜3. Redis的过期删除策略有哪些惰性删除:是在使用到key的时候判断是否过期了定期删除: 每隔一段时间随机判断key是否过期了如果过期了就删除了4. Redis的淘汰机制
2024-09-09 18:06:05
211
1
原创 MySQL面试题
有innodb和myisaminnodb支持行锁和事务以及表锁myisam只支持表锁不支持行锁和事务innodb是聚簇索引myisam是非聚簇索引聚簇索引他索引和数据都在一个文件,非聚簇索引的索引和数据不在一个文件中聚簇索引的叶子节点存储的是行数据,非聚簇索引的叶子节点存储的是行数据的索引有B+树索引和Hash索引b+树索引支持顺序索引和随机索引他的叶子节点存储的是索引和数据,并且叶子节点相互连接的。hash索引是基于hash表来实现的,他会对索引列通过哈希算法得到hash值。
2024-09-07 16:05:23
684
原创 并发面试题
在new Thread()时线程就进入到新建状态,在执行start()就进入到就绪状态等待分配时间片,分配到时间片后就进入到运行状态,当线程在等待获取锁的时候进入阻塞状态,执行wait()/sleep()方法就进入到等待状态但run()执行完了就进入到死亡状态。如果当前线程数大于核心线程数,则判断任务队列是否满了如果没满直接加入到任务队列如果满了就会判断当前线程数是否小于最大线程数如果小于最大线程数就直接创建线程如果大于最大线程数就会执行拒绝策略。这个信号量就是用来入队和出队的线程队列就是用来排队的。
2024-08-29 23:23:25
379
原创 Spring的面试题
然后再就是使用Bean,最后就是销毁bean。在Spring中通过三级缓存来解决循环依赖,假如a和b发生循环依赖,a实例化后就会放到缓存中,当a注入b的bean,b进行实例化需要注入A的bean这时就会从缓存中获取A实例化后的bean,当b的bean创建完成后,a从缓存中获取b的bean完成属性注入和初始化。在单例bean中是非线程安全的单例bean每个线程共享同一个bean,可以将bean中定义成一个不可变的成员变量,或者将单例bean转为原型bean或者使用ThreaLocal来将变量存储起来。
2024-08-27 23:21:50
629
原创 集合常见的面试题
首先会确定数组是否为空,若为空就进行初始化大小为16的数组若不为空通过key计算hash值根据hash值计算数组下标,然后判断该数组下标是否有值,如果有值判断key是否相等相等的话进行覆盖,不相等的话判断当前节点是否为红黑树,如果为红黑树转为红黑树节点直接插入,如果为链表遍历链表判断key是否有相等的有的话就直接覆盖没有则在链表尾部插入当链表长度大于8并且数组长度大于64就会转为红黑树。HashMap在1.7是通过数组+链表来实现的,在1.8的时候使用数组+链表+红黑树来实现的。
2024-08-26 12:29:50
332
原创 Java基础面试题
反射就是在运行过程中可以获取到类的属性和方法,反射就是将类中的属性方法封装成对象20. 有哪些方式可以获取class对象1.通过类名.class()21.Collection 和 Collections 有什么区别?Collection是最基本的集合接口下面有两个接口list和set。list他是有序可重复,set是无序不可重复的Collections:是集合的一个工具类22.JDK8有哪些新特性1.Lambda表达式2. Stream流3. 接口的默认的方法4.引入Optional。
2024-08-25 21:36:22
513
1
转载 最新版 IDEA 2022.3.2 初始化配置
高效操作Mybatis插件,它 是一款基于 IDEA 的快速开发插件,在我们使用mybatis以及mybatis-plus开发时简化繁琐的重复操作,提高开发速率,功能包括:xml跳转、代码生成、JPA提示和生成语句。阿里巴巴代码规范检查插件,它会按照阿里Java开发手册上规范帮我们检查代码,然后对代码做不同颜色展示,鼠标放上去,会看到提示内容,帮助我们写出更规范的代码。中英文翻译工具,比较吃电脑资源,直接在idea中使用外部翻译软件,一般我用有道字典,但还需要获取有道翻译应用id和应用密钥。
2023-03-10 17:41:24
1327
原创 javas数组
1.数组反转2.获取最大数3.排序数组分为一维数组,二维数组和多维数组一维数组数组的初始化数组的初始化分为动态初始化和静态初始化动态初始化声明并开辟数组 数据类型[] 数组名=new 数据类型[数组长度]数组长度:代表你可以向数组存储多少个数据数组的下标是从零开始到数组长度-1,当超出数组的索引长度则会产生java.lang.ArrayIndexOutOfBoundsException异常信息数组名.length:获取数组长度
2022-01-04 09:59:39
366
原创 四、Java循环结构
流程控制语句:是可以控制执行流程的语句。流程控制语句分为:顺序结构 选择结构 循环结构顺序结构 顺序结构是java中最基本的结构,一般是一句一句的执行的,它也是最简单的算法结构选择结构...
2021-12-21 21:02:37
484
原创 java运算符
java的运算符分为:算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 其它运算符一、算数运算符运算符 含义 例子 + 求和 A=10,b=10 A+B=20 - 相减 A-B=0 * 相乘 A*B=100 / 相除 A/B=1 % 求模(求余数) A%B=0 ++ 自加一 B++或++B等于11 -- 自减一 B--或--B等于9
2021-12-18 21:29:52
373
原创 三、变量类型与修饰符
前言: 一个变量是“在java程序执行时持有值的一个容器”,一个变量会被分配一个数据类型,变量是一个内存位置的名字。java中共有三种类型的变量:局部,实例和静态。变量类型类变量(静态变量):独立于方法之外的变量,用static修饰 实例变量:独立于方法之外的变量,没有static修饰 局部变量:类的方法中的变量 例如: public class Name{static int a=0;//这就是个类变量int a2=100;//这就是...
2021-12-12 20:10:55
842
原创 二、基本数据类型
java语言支持的数据类型分为两种:基本数据类型和引用数据类型。Java基本数据类型基本数据类型共有八种包括 boolean(布尔型)、float(单精度浮点型)、char(字符型)、byte(字节型)、short(短整型)、int(整型)、long(长整型)、double(双精度浮点型)。java基本数据类型图 java的基本数据类型类型名称 关键字 占...
2021-12-10 20:35:22
1699
原创 java程序设计基础
一、java的标识符和关键字1.标识符2.关键字一、java的标识符和关键字1.标识符 标识符是为方法、变量或其它用户定义的名称。 定义如下: 1.标识符只能由数字、字母、下划线(_)和美元符号($)组成以及Unicode 字符集(Unicode:就是为每个字符规定一个用来表示该字符的数字,仅此而已)中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。 2.标识符不...
2021-12-08 21:41:26
231
java期末课程设计(GUI实现)通讯录
2022-12-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人