摘要:
在java基础类型中,int类型占四个字节,而每个字节在内存中占8位(8byte),所以可以使用共4X8=32个位数来存储该类型,也就是四个八位的二进制数,所以有了以下说法 在计算机中,它的二级制表示为四个长度为8的二进制数,00000000 00000000 00000000 00000000,不
阅读全文
posted @ 2024-08-20 16:02
Duancf
阅读(664)
推荐(0)
摘要:
https://javabetter.cn/collection/PriorityQueue.html
阅读全文
posted @ 2024-08-19 19:45
Duancf
阅读(12)
推荐(0)
摘要:
Mysql redolog的刷盘时机 mysql正常关闭的时候 redolog buffer写入超过一半的时候 事务提交的时候 0每次提交事务,redolog留在buffer中不写入磁盘 1每次提交事务,redolog写入磁盘 2每次提交事务,redolog写入操作系统的文件缓存页面 后台线程每隔一
阅读全文
posted @ 2024-08-19 19:25
Duancf
阅读(80)
推荐(0)
摘要:
第一阶段:写入redolog文件,并把redolog的提交状态设置为prepare状态 第二阶段:写入binlog文件,完成之后,把redolog的提交状态设置为commit 为什么两阶段提交能保证一致性 如果第一阶段写redolog的时候崩溃,什么都没写入,这个事务就丢失了 如果第二阶段写入bin
阅读全文
posted @ 2024-08-19 19:02
Duancf
阅读(34)
推荐(0)
摘要:
Set集合有什么特点?如何实现key无重复的? set集合特点:Set集合中的元素是唯一的,不会出现重复的元素。 set实现原理:Set集合通过内部的数据结构(如哈希表、红黑树等)来实现key的无重复。当向Set集合中插入元素时,会先根据元素的hashCode值来确定元素的存储位置,然后再通过equ
阅读全文
posted @ 2024-08-17 22:59
Duancf
阅读(25)
推荐(0)
摘要:
延迟消息队列 redis数据结构,用什么结构实现延迟消息队列 延迟消息队列是一种消息队列系统,它允许消息的发布者在消息发送时指定消息的投递时间,使消息在未来的某个预定时间点被消费者接收。这种机制对于需要在稍后执行的任务或具有特定延迟需求的应用非常有用。 对于实现延迟消息队列,可以使用有序集合(Sor
阅读全文
posted @ 2024-08-17 22:59
Duancf
阅读(76)
推荐(0)
摘要:
缓存穿透 用户访问一些不存在的数据,redis没有,于是去mysql查询也没有,这样就发生了两次无效的查询。 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,缓存永远不会生效。这样,每次针对此 key 的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。比如用一个不存在的用户 id
阅读全文
posted @ 2024-08-17 22:59
Duancf
阅读(20)
推荐(0)
摘要:
为什么有了hashmap还要有treemap HASHMAP的特性和适用场景 HashMap是基于哈希表的Map接口实现。这使得它在插入和查询键值对时能够保持平均常数时间的性能。由于这个特性,它特别适用于需要快速存取键值对的场景。 HashMap的特性: 操作性能:HashMap提供了O(1)时间性
阅读全文
posted @ 2024-08-16 22:14
Duancf
阅读(245)
推荐(0)
摘要:
synchronized底层语义原理 Java 虚拟机中的同步(Synchronization)基于进入和退出管程(Monitor)对象实现。 在 Java 语言中,同步用的最多的地方可能是被 synchronized 修饰的同步方法。同步方法 并不是由 monitorenter 和 monitor
阅读全文
posted @ 2024-08-15 23:18
Duancf
阅读(130)
推荐(0)
摘要:
简单介绍一下 Spring?有啥缺点? Spring 是重量级企业开发框架 Enterprise JavaBean(EJB) 的替代品,Spring 为企业级 Java 开发提供了一种相对简单的方法,通过 依赖注入 和 面向切面编程 ,用简单的 Java 对象(Plain Old Java Obje
阅读全文
posted @ 2024-08-15 20:22
Duancf
阅读(82)
推荐(0)
posted @ 2024-08-15 16:08
Duancf
阅读(20)
推荐(0)
摘要:
Collection 和 Collections 有什么区别 Collection接口 是Java集合框架的核心接口,它提供了一组标准的方法来操作各种类型的集合元素。它被一些集合类实现,比如ArrayList、LinkedList和HashSet等。这些实现提供了集合的基本操作,例如添加、删除、清空
阅读全文
posted @ 2024-08-14 23:04
Duancf
阅读(24)
推荐(0)
posted @ 2024-08-14 22:46
Duancf
阅读(6)
推荐(0)
摘要:
在SQL中,是否需要将子查询设置为AS temp或其他别名,取决于子查询的具体用途和上下文。以下是一些常见的场景,帮助你判断何时需要使用别名,何时不需要: 1. 作为表的子查询(需要别名): 需要别名的情况:当子查询直接用于FROM子句中,作为一个虚拟表使用时,必须为子查询设置一个别名。这是因为SQ
阅读全文
posted @ 2024-08-13 00:21
Duancf
阅读(52)
推荐(0)
摘要:
如果扣减库存的操作在一台机器上 使用本地锁 JVM 锁 不和数据库交互,模拟库存扣减。并发测试 100 个线程,访问50次。 private void jvmLock() { lock.lock(); try { goods.setInventory(goods.getInventory()-1);
阅读全文
posted @ 2024-08-12 23:18
Duancf
阅读(22)
推荐(0)
摘要:
生命周期的概要流程 Bean 的生命周期概括起来就是 4 个阶段: 实例化(Instantiation) 属性赋值(Populate) 初始化(Initialization) 销毁(Destruction) 实例化:第 1 步,实例化一个 bean 对象; 属性赋值:第 2 步,为 bean 设置相
阅读全文
posted @ 2024-08-12 21:17
Duancf
阅读(275)
推荐(0)
posted @ 2024-08-12 20:54
Duancf
阅读(14)
推荐(0)
摘要:
在本文中,我们将深入研究 Spring 框架 DI背后的故事,包括 Spring Inversion of Control(控制反转)、 DI 和 ApplicationContext 接口。 基于这些基本概念,我们将研究如何使用基于 java 和基于 XML 的配置来 创建Spring 应用程序。
阅读全文
posted @ 2024-08-11 20:58
Duancf
阅读(57)
推荐(0)
摘要:
ThreadLocal缺点及解决方案 每个Thread上都有一个threadLocals属性,它是一个ThreadLocalMap,里面存放着一个Entry数组,key是ThreadLocal类型的弱引用,value是对值的引用。所有的操作都是基于这个ThreadLocalMap操作的。 但是它有一
阅读全文
posted @ 2024-08-09 20:55
Duancf
阅读(59)
推荐(0)
摘要:
小伙伴们,有没有遇到过程序突然崩溃,然后抛出一个OutOfMemoryError的异常?这就是我们俗称的OOM,也就是内存溢出。简单来说,就是你的Java应用想要的内存超过了JVM愿意给的极限,就会抛出这个错误。 那么为什么会出现OOM呢?一般都是由这些问题引起: 分配过少:JVM 初始化内存小,业
阅读全文
posted @ 2024-08-09 20:25
Duancf
阅读(230)
推荐(0)
摘要:
简单工厂 // 计算类的基类 @Setter @Getter public abstract class Operation { private double value1 = 0; private double value2 = 0; protected abstract double getRe
阅读全文
posted @ 2024-08-09 19:42
Duancf
阅读(12)
推荐(0)
摘要:
单例模式 懒汉式,线程不安全 public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance
阅读全文
posted @ 2024-08-09 17:15
Duancf
阅读(36)
推荐(0)
摘要:
抽象构件 public abstract class FastFood { public String desc; public int price; public abstract String getDesc(); public abstract int getPrice(); } 具体构件 米
阅读全文
posted @ 2024-08-09 16:57
Duancf
阅读(14)
推荐(0)
摘要:
大家都知道索引分聚集索引和非聚集索引,性别字段因为可重复肯定只能建立非聚集索引,然而因为非聚集索引叶子节点存储的是索引值和聚集索引值,需要回表。所以在性别这种辨别度较低的字段上建立索引,索引树可能只有两个节点,跟线性查找没有太大区别,并且因为回表的存在导致在聚集索引树和非聚集索引树来回切换反而导致查
阅读全文
posted @ 2024-08-07 19:26
Duancf
阅读(257)
推荐(0)
摘要:
在 Java 中,内存泄漏(Memory Leak)和内存溢出(Memory Overflow)是两种不同的内存管理问题。 内存泄漏(Memory Leak): 内存泄漏指的是程序在运行过程中,因为某些原因导致不再使用的对象仍然被保留在内存中,无法被垃圾回收器回收。这些对象会占用内存空间,导致系统的
阅读全文
posted @ 2024-08-07 18:33
Duancf
阅读(89)
推荐(0)
摘要:
Interface Interface 的设计初衷是面向抽象,提高扩展性。这也留有一点遗憾,Interface 修改的时候,实现它的类也必须跟着改。 为了解决接口的修改与现有的实现不兼容的问题。新 interface 的方法可以用 default 或 static 修饰,这样就可以有方法体,实现类也
阅读全文
posted @ 2024-08-07 16:19
Duancf
阅读(31)
推荐(0)
摘要:
为什么需要包装类 Java中的包装类是为了解决基本数据类型(如int、char、boolean等)和对象之间的转换问题而引入的。基本数据类型是Java语言中的基础类型,它们不是对象,不能直接参与面向对象编程的特性,如方法调用、继承和多态等。然而,在某些情况下,我们需要将基本数据类型作为对象来处理,这
阅读全文
posted @ 2024-08-07 15:02
Duancf
阅读(19)
推荐(0)
摘要:
redis中的大key和unlink操作 Redis中的BigKey通常指的是那些包含大量元素的复合数据类型,如一个列表包含数百万个元素,或一个字符串的大小超过512MB。这些BigKey会在执行操作时消耗大量的CPU和内存资源,影响Redis的响应时间。 BigKey的产生原因 不合理的数据设计
阅读全文
posted @ 2024-08-06 20:30
Duancf
阅读(148)
推荐(0)
摘要:
Java对象的序列化和反序列化 Java 对象的序列化和反序列化是一种将对象转换成字节流并存储在硬盘或网络中,以及从字节流中重新加载对象的操作。Java 的序列化和反序列化提供了一种方便的方式,使得可以将对象在不同的应用程序之间进行交互。 一、什么是 Java 序列化和反序列化? Java 对象的序
阅读全文
posted @ 2024-08-06 18:29
Duancf
阅读(73)
推荐(0)
摘要:
CHAR与VARCHAR CHAR(M)为固定长度字符串,在定义时指定字符串列长。 VARCHAR(M)是长度可变的字符串,M表示最大列长度,占用的空间为字符串的实际长度加1。 当检索到CHAR值时,尾部的空格将被删除。VARCHAR在值保存和检索时尾部的空格仍保留。 TEXT与BLOB 保存较大文
阅读全文
posted @ 2024-08-06 17:05
Duancf
阅读(12)
推荐(0)
摘要:
有备无患--主从同步 很多企业都没有使用 Redis 的集群,但是至少都做了主从。有了主从,当主节点(Master)挂掉的时候,运维让从节点(Slave)过来接管,服务就可以继续,否则主节点需要经过数据恢复和重启的过程,这就可能会拖延很长的时间,从而影响线上业务的持续服务。在了解 Redis 的主从
阅读全文
posted @ 2024-08-06 14:42
Duancf
阅读(82)
推荐(0)
摘要:
scope Spring 中 Bean 的作用域通常有下面几种: singleton : IoC 容器中只有唯一的 bean 实例。Spring 中的 bean 默认都是单例的,是对单例设计模式的应用。 prototype : 每次获取都会创建一个新的 bean 实例。也就是说,连续 getBean
阅读全文
posted @ 2024-08-05 11:19
Duancf
阅读(32)
推荐(0)
摘要:
死信队列是什么 死信,在官网中对应的单词为“Dead Letter”,可以看出翻译确实非常的简单粗暴。那么死信是个什么东西呢? “死信”是RabbitMQ中的一种消息机制,当你在消费消息时,如果队列里的消息出现以下情况: 消息被否定确认,使用 channel.basicNack 或 channel.
阅读全文
posted @ 2024-08-03 22:06
Duancf
阅读(44)
推荐(0)
摘要:
Mybatis 作用 数据库连接管理:MyBatis可以自动管理数据库连接,避免了手动创建和关闭数据库连接的繁琐过程。 SQL语句生成:MyBatis可以根据Java对象和数据库表结构自动生成SQL语句,避免手写SQL语句的麻烦和错误。 参数映射:MyBatis可以将Java对象中的属性值自动映射到
阅读全文
posted @ 2024-08-03 21:04
Duancf
阅读(25)
推荐(0)
摘要:
拉取与提交 git clone 从远程仓库克隆到本地 git fetch 拉取服务端的最新提交到本地,不会本地合并,也就是不改变master,head指针位置 git pull 拉取服务端的最新提交到本地,进行本地合并,改变master,head指针位置 pull = fetch + merge g
阅读全文
posted @ 2024-08-03 20:39
Duancf
阅读(24)
推荐(0)
摘要:
spring是如何解决循环依赖的? 循环依赖指的是两个类中的属性相互依赖对方:例如 A 类中有 B 属性,B 类中有 A属性,从而形成了一个依赖闭环。 循环依赖问题在Spring中主要有三种情况: 第一种:通过构造方法进行依赖注入时产生的循环依赖问题。 第二种:通过setter方法进行依赖注入且是在
阅读全文
posted @ 2024-08-03 20:38
Duancf
阅读(21)
推荐(0)
摘要:
SpringBoot自定义注解实现 在学习SpringBoot过程中,学习了一些SpringBoot特有的注解,大多是为了使用方便将多个注解进行了整合。既然学习到了注解,就来重新认识一下Spring的自定义注解实现过程,在之后学习新注解的实现原理时会更加游刃有余。 SpringBoot实现自定义注解
阅读全文
posted @ 2024-08-03 20:37
Duancf
阅读(203)
推荐(0)
摘要:
HTTP 与 HTTPS 有哪些区别? HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。(Transport Layer Security,TLS)
阅读全文
posted @ 2024-08-03 20:07
Duancf
阅读(63)
推荐(0)
摘要:
PWD pwd 显示工作路径 shutdown shutdown -h now 关闭系统 /halt 关闭系统 shutdown -r now 重启 / reboot 重启 防火墙 systemctl stop firewalld 关闭防火墙 IP地址 ip addr 查看ip地址 cd cd命令:
阅读全文
posted @ 2024-08-03 19:16
Duancf
阅读(45)
推荐(0)
摘要:
说一下你对 Spring 的理解 Spring框架核心特性包括: IoC容器:Spring通过控制反转实现了对象的创建和对象间的依赖关系管理。开发者只需要定义好Bean及其依赖关系,Spring容器负责创建和组装这些对象。 AOP:面向切面编程,允许开发者定义横切关注点,例如事务管理、安全控制等,独
阅读全文
posted @ 2024-08-02 19:22
Duancf
阅读(50)
推荐(0)