- 博客(13)
- 收藏
- 关注
原创 高频问题(上)
Docker,我们上个项目就是通过docker部署的,编写dockerfile,在dockerfile中可以指定需要使用的基础镜像、安装依赖项等,然后执行docker build 命令,根据 Dockerfile 构建一个包含应用程序和其依赖项的镜像,然后执行 docker run 命令,根据镜像创建并运行容器。AOF机制并不记录get命令。n和not in在不同场景可能会造成索引失效,当in和not in后面的数据量小的时候,索引是生效的,当数据量比较大的时候相当于全表扫描,索引失效,查询慢。
2024-06-03 12:03:19
474
原创 常见的算法题
然后通过递归, 通过栈的特性, 这里就是让它可以从最后一个节点开始把自己的子节点的子节点改成自己。// 将当前元素与已排序序列的元素进行比较,如果当前元素较小,则将已排序序列的元素向后移动。// 从第i-1个台阶跳1个台阶或者从第i-2个台阶跳2个台阶到达第i个台阶。// 引用类型,默认null。dp[1] = 1;// 第1个台阶也只有1种跳法。// 第0个台阶只有1种跳法。// dp[i] 表示跳到第 i 个台阶的方法数。// 将当前元素插入到正确的位置。// 链表创建后, 打印链表。
2024-05-30 11:25:44
502
1
原创 concurrentHashMap的原理
使用segment分段锁实现concurrentHashMap,每个segment的下面都有一个hashtable,这样比单个hashtable并发量要高,使用segment。去除segment分段锁的概念,改用cas+sync的方式实现concurrentHashMap,当多个线程锁定一个数组的下标的时候,让多个线程进行cas。自旋抢锁,当抢到锁之后 直接进行写的操作,写的操作不能并发 需要结合sync完成数据的写入。锁的方式最大支持16个并发,但是需要经过两次hash hash时间太长。
2024-05-28 11:14:08
254
1
原创 关于单例模式会被问到的面试题
特点 : 两私,一公开;私有的构造器,私有的属性,公开的方法单例:优点 : 在项目加载时已经创建好了,效率高缺点 : 线程不安全多例的缺点:每一次调用都会创建一个对象,效率低,内存浪费。
2024-05-28 11:12:09
531
原创 关于一些数据结构会被问到的面试题
判断当前链表的长度,如果链表的长度达到了默认的阈值8,那么就会判断数组的长度,如果链表长度达到8,但是数组的长度小于64的话,会进行扩容(resize()),如果数组大于等于64的就会将单链表转成红黑树。如果取出的node不为空,那就说明hash冲突了,然后就会判断,如果我们新写入的key的哈希值与原来的hash值相等,并且我们key与原来的node的key相等(== 、equals都判断了),那就说明key是同一个,hashmap就做覆盖操作。
2024-05-25 09:13:55
485
原创 关于mysql会被问到的面试题
意向锁 : 当任务对某一行加了行级锁,那么mysql会自动为这张表加一个意向锁,这时如果有新的任务想锁整张表,是锁不了的,因为有行级锁,但是又不能一行一行判断,那样效率太低,所以只能判断意向锁、索引树只存储当前的索引字段以及他对应的主键,当我们想要根据非聚簇索引查询 的话,根据条件从索引树查询该字段以及对应的主键,然后再根据主键查找聚簇索引就 能找到整条数据。如果我们要查询的数据,刚好在这个索引树上都有,不需要进行回表查询,直接展示,就叫覆盖索引,根据索引就直接找到想要的数据了。
2024-05-24 16:32:13
358
原创 项目中竞猜模块的流程
首先判断竞猜状态是结束还是流盘,如果是结束就把竞猜记录入库然后查寻redis,查出胜利方和失败方的全部人的id,以及下注金额,然后进行一个入库,我们是通过向胜利方,算出他们每个人下注的占比进行瓜分失败方的总奖池,然后他们下注的金额会原路返回.通过把用户id和赢得的金额进行封装存入list,最后远程调用用户服务进行用户的金额添加.如果是流盘就把用户下注的金额进行原路返还(平局和流盘是一样的).结算代码没有优化,使用redis的时候注意存入数据的类型要和取出来的一致。下面是创建竞猜的代码案例。
2024-05-23 10:36:26
700
原创 【关于代码优化的面试题】
1.重用对象:比如在进行字符串拼接等操作时,应使用 StringBuilder 或 StringBuffer 代替 String,以减少资源消耗和提高效率。2.及时关闭流:无论是数据库连接还是 I/O 操作,都需要在使用完毕后及时关闭,以释放资源。忽略关闭流可能导致内存泄漏或内存溢出。3.使用池:利用数据库连接池和线程池来避免频繁创建、销毁资源,从而减少系统开销。4.避免循环内不必要的资源创建:避免在循环内持续创建对象引用,尤其是避免在循环中频繁调用数据库增删改操作,可以考虑使用批量操作。
2024-05-23 09:46:00
320
1
原创 项目中福袋模块的流程案例(仅供参考)
这里写到如果参与人数达不到中奖人数,会把福袋金额分成参与人数的份数去分配。流程涉及到主播发放福袋,用户参与福袋,以及福袋的开奖,案例涉及到redis。在使用redis的时候,记得存进去的数据类型要和取出来的数据类型保持一致.以下是流程的service层代码案例。
2024-05-22 18:02:13
757
1
原创 关于jvm会被问到的面试题
是OutOfMemoryError的缩写,意思是内存溢出错误。当我们的一个Java程序试图申请内存空间时,但是可用内存已经耗尽,无法再分配给程序足够的空间使用时,就会抛出OOM错误。
2024-05-22 16:54:56
1678
1
原创 【shiro+jwt整合的单点登录】
这些东西都是死的,照着抄就完事了,咱们不啰嗦,直接上代码提示:以下是本篇文章正文内容,下面案例可供参考//用户登录//校验和数据库 中的用户名密码是否一致//校验和数据库 中的用户名密码是否一致单点登录可以搭配着昨天的网关一起使用,昨天的网关代码也有对token的拦截,判断以及解析。
2024-05-21 10:27:57
537
4
原创 【微服务项目如何搭建gateway网关】
我们要结合着项目的场景去搭建相应数量的网关(一个网关就是微服务项目中的一个子项目),就拿电商项目举例,电商项目涉及到用户,商家,还有后台管理人员,用户量比较大,自己单独配一个网关,然后商家和后台管理可以共用一个网关,话不多说,我们直接开搞。提示:以下是本篇文章正文内容,下面案例可供参考这个类主要就是校验前端传来的token是否正确或者为不为空在这里插入代码片提示:这里对文章进行总结:搭建网关没什么难度,需要注意的就是yaml配置那一块别出错,比如单词的位置或者冒号和后面的输出内容中间需要有个空格。
2024-05-20 11:15:27
418
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人