@lbj
码龄4年
关注
提问 私信
  • 博客:18,496
    18,496
    总访问量
  • 16
    原创
  • 2,264,704
    排名
  • 192
    粉丝
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2021-03-27
博客简介:

weixin_56619519的博客

查看详细资料
  • 原力等级
    当前等级
    1
    当前总分
    75
    当月
    0
个人成就
  • 获得226次点赞
  • 内容获得2次评论
  • 获得195次收藏
创作历程
  • 10篇
    2024年
  • 1篇
    2023年
  • 2篇
    2022年
  • 3篇
    2021年
成就勋章
TA的专栏
  • 笔记
    3篇
兴趣领域 设置
  • Java
    java
创作活动更多

新星杯·14天创作挑战营·第9期

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你们参加为期14天的创作挑战赛! 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见 https://bbs.csdn.net/topics/619626357 2、文章质量分查询:https://www.csdn.net/qc

475人参与 去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

面试必问:redis底层数据结构

前言redis是通过对象来表示存储的数据的,redis 也是键值对存储的方式,那么每存储一条数据,redis至少会生成2个对象,一个是redisObject,用来描述具体数据的类型的,比如用的是那种数据类型,底层用了哪种数据结构,还有一个对象就是具体存储的数据。这个存储对象数据就是通过redisObject这个对象的指针来指引的。Redis为什么要使用2个对象?两个对象的好处。
原创
发布博客 2024.04.08 ·
672 阅读 ·
17 点赞 ·
0 评论 ·
13 收藏

zset 面试常问

面试官常问开头,你能说下redis数据结构吗 >>然后向下👇引起zset >>这样的话就有利于快速寻找列表收尾节点,但是对于其他寻找正常的元素。比如元素1、元素2等等 效率也没有很高效,只能一个个遍历。跳表在链表基础上增加多级索引,通过多级索引位置的跳转,实现了快速查找元素。如:针对一张普通的链表查找元素27该怎么查找呢?只能从链表的头部往后依次遍历如图:下面这张图利用快表快速和找到 -> 70整个查找过程就是在多级索引之间跳来跳去,最后定位到了这个元素,所以又称为跳表如图:注:当数据量特别大的时候,跳表
原创
发布博客 2024.03.30 ·
531 阅读 ·
5 点赞 ·
1 评论 ·
10 收藏

RabbitMQ消息队列面试必问

(1)解耦:将系统按照不同的业务功能拆分出来,消息生产者只管把消息发布到 MQ 中而不用管谁来取,消息消费者只管从 MQ 中取消息而不管是谁发布的。消息生产者和消费者都不知道对方的存在;(2)异步:主流程只需要完成业务的核心功能;对于业务非核心功能,将消息放入到消息队列之中进行异步处理,减少请求的等待,提高系统的总体性能;(3)削峰/限流:将所有请求都写到消息队列中,消费服务器按照自身能够处理的请求数从队列中拿到请求,防止请求并发过高将系统搞崩溃;
原创
发布博客 2024.03.18 ·
1082 阅读 ·
17 点赞 ·
0 评论 ·
19 收藏

Java 多线程面试必问

回答:当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的。【摘自深入理解Jvm虚拟机】实现线程安全的方式有三大种方法,分别是互斥同步、非阻塞同步和无同步方案。互斥同步:同步是指多个线程并发访问共享数据时,保证共享数据在同一时刻只被一条(或一些,当使用信号量的时候)线程使用。
原创
发布博客 2024.03.18 ·
1908 阅读 ·
59 点赞 ·
0 评论 ·
41 收藏

Java 虚拟机面试必问

回答:Java的运行时区主要包含堆、方法区、虚拟机栈、程序计数器和本地方法栈,其中堆和方法区是所有线程所共有的。而且虚拟机栈、程序计数器和本地方法栈是线程所私有的。图片:堆:存放对象实例方法区:用来存储已经被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等数据。虚拟机栈:(生命周期与线程相同)Java中每个方法执行的时候,Java虚拟机都会同步创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。
原创
发布博客 2024.03.18 ·
925 阅读 ·
19 点赞 ·
0 评论 ·
17 收藏

Java 集合面试必问

回答:数组下标的计算方法是(n-1)& hash,取余(%)操作中如果除数是2的幂次则等价于与其除数减一的与(&)操作(也就是说 hash%length==hash&(length-1)的前提是 length 是2的 n 次方;并且采用二进制位操作 &,相对于%能够提高运算效率,这就解释了 HashMap 的长度为什么是2的幂次方。追问:HashMap的put方法说一下。回答:通过阅读源码,可以从jdk1.7和1.8两个方面来回答1.根据key通过哈希算法与与运算得出数组下标。
原创
发布博客 2024.03.18 ·
1055 阅读 ·
26 点赞 ·
0 评论 ·
22 收藏

深入理解HashMap

这就是它的原因所在。如果此位置上已经存在链表,那么遍历链表,如果链表上某个节点的 key 与当前key 进行 equals 比较后结果为 true,则把原来节点上的value 返回,将当前新的 value替换掉原来的value,如果遍历完链表,没有找到key 与当前 key equals为 true的,就把刚才封装的新的 Entry中next 指向当前链表的始节点,也就是说当前节点现在在链表的第一个位置,简单来说即,先来的往后退。这个时候你必须要想到,如果两个人名字一样可咋办,查到的到底是谁的信息呢?
原创
发布博客 2024.03.18 ·
953 阅读 ·
19 点赞 ·
0 评论 ·
17 收藏

Java 序列化和反序列化

super();如上代码:long serialVersionUID类型的常量。成员变量age被标记为transient。serialVersionUID 是一个常数,用于唯一标识可序列化类的版本。从输入流构造对象时,JVM 在反序列化过程中检查此常数。如果正在读取的对象的 serialVersionUID 与类中指定的序列号不同,则 JVM 抛出InvalidClassException。
原创
发布博客 2024.03.18 ·
959 阅读 ·
21 点赞 ·
0 评论 ·
19 收藏

什么是 NIO? NIO 和 BIO、AIO 之间的区别是什么?

1 BIO,NIO,AIO都有什么区别,NIO的原理是什么?BIOBIO:传统的网络通讯模型,就是BIO,同步阻塞IO, 其实就是服务端创建一个ServerSocket, 然后就是客户端用一个Socket去连接服务端的那个ServerSocket, ServerSocket接收到了一个的连接请求就创建一个Socket和一个线程去跟那个Socket进行通讯。
原创
发布博客 2024.03.18 ·
1420 阅读 ·
27 点赞 ·
0 评论 ·
25 收藏

zookeeper实现分布式锁

这种方法虽然能达到目的,但是会有一个问题,如下图所示,假设有非常多的节点需要等待获得锁,那么等待的方式自然是使用watcher机制来监听/lock节点的删除事件,一旦发现该节点被删除说明之前获得锁的节点已经释放了锁,那么此时剩下的B、C、D节点会同时收到删除事件从而去竞争锁,这个过程会产生惊群效应。多个应用程序去抢占锁资源时,只需要在指定节点上创建一个 /Lock 节点,由于Zookeeper中节点的唯一性特性,使得只会有一个用户成功创建 /Lock 节点,剩下没有创建成功的用户表示竞争锁失败。
原创
发布博客 2024.03.18 ·
411 阅读 ·
7 点赞 ·
0 评论 ·
9 收藏

JVM 面试必问 经典试题

虚拟机把描述类的数据加载到内存里面,并对数据进行校验、解析和初始化,最终变成可以被虚拟机直接使用的class对象;类加载器是指:通过一个类的全限定性类名获取该类的二进制字节流叫做类加载器;类加载器分为以下四种:启动类加载器:用来加载java核心类库,无法被java程序直接引用;扩展类加载器:用来加载java的扩展库,java的虚拟机实现会提供一个扩展库目录,该类加载器在扩展库目录里面查找并加载java类;系统类加载器:它根据java的类路径来加载类,一般来说,java应用的类都是通过它来加载的;
原创
发布博客 2023.05.06 ·
312 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Http1.0相对于Http1.1优化

HTTP1.0最早在网页中使用是在1996年,那个时候只是使用一些较为简单的网页上和网络请求上,而HTTP1.1则在1999年才开始广泛应用于现在的各大浏览器网络请求中,同时HTTP1.1也是当前使用最为广泛的HTTP协议。主要区别主要体现在:长连接 : 在HTTP/1.0中,默认使用的是短连接,也就是说每次请求都要重新建立一次连接。HTTP 是基于TCP/IP协议的,每一次建立或者断开连接都需要三次握手四次挥手的开销,如果每次请求都要这样的话,开销会比较大。因此最好能维持一个长连接,可以用个长连.
原创
发布博客 2022.05.18 ·
198 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

解决websocket不能与服务器建立连接问题

我直接把域名去掉 就可以建立连接
原创
发布博客 2022.05.18 ·
2095 阅读 ·
4 点赞 ·
1 评论 ·
1 收藏

解决 程序包 com.sun.rowset不存在的问题

解决 程序包 com.sun.rowset不存在的问题如图:我解决的原因就是:因为java版本我装的16.1的所以太高 有些类过时了 只需要将java版本降到8 jdk1.8既可以
原创
发布博客 2021.07.13 ·
1046 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

解决Failed to bind properties under ‘spring.cloud.stream.binders’ to java.util.Map<java.lang.String, o

解决Failed to bind properties under ‘spring.cloud.stream.binders’ to java.util.Map<java.lang.String, org.springframework.cloud.stream.config.BinderProperties>:Reason: No converter found capable of converting from type [java.lang.String] to type [java.
原创
发布博客 2021.07.11 ·
736 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

解决Cannot resolve org.springframework.cloud:spring-cloud-gateway-core:2.2.1.RELEASE问题

解决Cannot resolve org.springframework.cloud:spring-cloud-gateway-core:2.2.1.RELEASE问题这是因为网络的原因 导包没有成功导入 只需要根据爆红的地址找到对应的maven 删除对面的包
原创
发布博客 2021.07.11 ·
4193 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏
加载更多