游客bhmgxanbwhyfe_个人页

游客bhmgxanbwhyfe
个人头像照片
58
0
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2025年03月

  • 03.20 21:50:47
    发表了文章 2025-03-20 21:50:47

    加锁的方式有哪些 ?

    使用synchronized关键字 使用Lock锁 synchronized和Lock有什么区别 ? 首先synchronized是Java内置关键字,在JVM层面,Lock是个Java类; synchronized 可以给类、方法、代码块加锁;而 lock 只能给代码块加锁。 synchronized 不需要手动获取锁和释放锁,使用简单,发生异常会自动释放锁,不会造成死锁; 而 lock 需要自己加锁和释放锁,如果使用不当没有 unLock()去释放锁就会造成死锁。 通过 Lock 可以知道有没有成功获取锁,而 synchronized 却无法办到。
  • 03.20 21:50:27
    发表了文章 2025-03-20 21:50:27

    ConcurrentHashMap 底层具体实现

    ConcurrentHashMap 是一种线程安全的高效Map集合 底层数据结构: ● JDK1.7的 ConcurrentHashMap 底层采用 分段的数组+链表 实现, ● JDK1.8 采用的数据结构跟HashMap1.8的结构一样,数组+链表/红黑二叉树。 JDK1.7 首先将数据分为一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段 数据时,其他段的数据也能被其他线程访问。 在JDK1.7中,ConcurrentHashMap采用Segment + HashEntry的方式进行实现 一个 ConcurrentHashMap 里包含一个 Segment 数组。S
  • 03.20 21:49:57
    发表了文章 2025-03-20 21:49:57

    HashMap的put方法的具体流程?

    1. 判断键值对数组table[i]是否为空或为null,否则执行resize()进行扩容; 2. 根据键值key计算hash值得到插入的数组索引i,如果table[i]==null,直接新建节点添加,转向 ⑥,如果table[i]不为空,转向③; 3. 判断table[i]的首个元素是否和key一样,如果相同直接覆盖value,否则转向④,这里的相同指的 是hashCode以及equals; 4. 判断table[i] 是否为treeNode,即table[i] 是否是红黑树,如果是红黑树,则直接在树中插入键值 对,否则转向5; 5. 遍历table[i],判断链表长度是否大于8,大于8的
  • 03.20 21:49:34
    发表了文章 2025-03-20 21:49:34

    HashMap的实现原理?

    HashMap的数据结构: HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。 HashMap 基于 Hash 算法实现的 1. 当我们往HashMap中put元素时,利用key的hashCode重新hash计算出当前对象的元素在数 组中的下标 2. 存储时,如果出现hash值相同的key,此时有两种情况。 a. 如果key相同,则覆盖原始值; b. 如果key不同(出现冲突),则将当前的key-value放入链表中 3. 获取时,直接找到hash值对应的下标,在进一步判断key是否相同,从而找到对应值。 HashMap JDK1.8之前 JDK1.8之前
  • 03.20 21:49:12
    发表了文章 2025-03-20 21:49:12

    ArrayList 和 LinkedList 的区别是什么?

    1. 数据结构实现:ArrayList 是动态数组的数据结构实现,而 LinkedList 是双向链表的数据结构实 现。 2. 随机访问效率:ArrayList 比 LinkedList 在随机访问的时候效率要高,因为 LinkedList 是线性的数 据存储方式,所以需要移动指针从前往后依次查找。 3. 增加和删除效率:在非首尾的增加和删除操作,LinkedList 要比 ArrayList 效率要高,因为 ArrayList 增删操作要影响数组内的其他数据的下标。 4. 内存空间占用:LinkedList 比 ArrayList 更占内存,因为 LinkedList 的节点除了存储数
  • 03.20 21:48:19
    发表了文章 2025-03-20 21:48:19

    java常见的集合类有哪些

    Map接口和Collection接口是所有集合框架的父接口: 1. Collection接口的子接口包括:Set接口和List接口 2. Map接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及 Properties等 3. Set接口的实现类主要有:HashSet、TreeSet、LinkedHashSet等 4. List接口的实现类主要有:ArrayList、LinkedList、Stack以及Vector等
  • 03.20 21:47:30
    发表了文章 2025-03-20 21:47:30

    什么是反射机制?

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任 意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法 的功能称为java语言的反射机制。
  • 03.20 21:47:09
    发表了文章 2025-03-20 21:47:09

    == 和 equals 的区别是什么

    == : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象。(基本数 据类型 == 比较的是值,引用数据类型 == 比较的是内存地址) equals() : 它的作用也是判断两个对象是否相等。
  • 03.20 21:46:47
    发表了文章 2025-03-20 21:46:47

    什么是重载(Overload)和重写(Override) ?

    重载:发生在同一个类中,方法名相同参数列表不同(参数类型不同、个数不同、顺序不同),与 方法返回值和访问修饰符无关,即重载的方法不能根据返回类型进行区分 重写:发生在父子类中,方法名、参数列表必须相同,返回值小于等于父类,抛出的异常小于等于 父类,访问修饰符大于等于父类(里氏代换原则);如果父类方法访问修饰符为private则子类中 就能是重写。
  • 03.20 21:46:09
    发表了文章 2025-03-20 21:46:09

    Final 有什么用?

    被final修饰的类不可以被继承 被final修饰的方法不可以被重写 被final修饰的变量不可以被改变, 被final修饰不可变的是变量的引用,而不是引用指向的内容, 引用指向的内容是可以改变的
  • 发表了文章 2025-03-20

    事务的四大特性?

  • 发表了文章 2025-03-20

    什么是死信交换机 ? 如何为队列绑定死信交换机 ?

  • 发表了文章 2025-03-20

    MySQL索引有哪些类型?

  • 发表了文章 2025-03-20

    数据库的行级锁与表锁?

  • 发表了文章 2025-03-20

    为什么会选择使用RabbitMQ ? 有什么好处 ?

  • 发表了文章 2025-03-20

    Redis分布式锁如何实现 ?

  • 发表了文章 2025-03-20

    SpringBoot启动流程

  • 发表了文章 2025-03-20

    消息的重复消费问题如何解决

  • 发表了文章 2025-03-20

    InnoDB与MyISAM实现索引方式的区别?

  • 发表了文章 2025-03-20

    什么是微服务?微服务的优缺点是什么?

  • 发表了文章 2025-03-20

    Spring Boot的核心注解是哪个?他由哪几个注解组成的?

  • 发表了文章 2025-03-20

    为什么索引的数量不能太多?

  • 发表了文章 2025-03-20

    Redis分片集群中数据是怎么存储和读取的 ?

  • 发表了文章 2025-03-20

    负载均衡如何实现

  • 发表了文章 2025-03-20

    数据库索引采用B+树不采用B树的原因?

  • 发表了文章 2025-03-20

    什么是缓存雪崩 ? 怎么解决 ?

  • 发表了文章 2025-03-20

    SpringBoot自动装配的原理

  • 发表了文章 2025-03-20

    什么是缓存击穿 ? 怎么解决 ?

  • 发表了文章 2025-03-20

    什么是缓存穿透 ? 怎么解决 ?

  • 发表了文章 2025-03-20

    什么是左前缀原则

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息