小鹿的周先生
这个作者很懒,什么都没留下…
展开
-
Redis 实现全局唯一ID
如何使用Redis 实现分布式全局的唯一ID?原创 2023-12-17 16:07:08 · 2100 阅读 · 0 评论 -
Spring Boot 在启动之前还做了哪些准备工作?
Spring Boot作为一个开发框架,提供了简化和加速Spring应用程序开发的能力。在Spring Boot启动过程中,创建容器上下文是一个关键的步骤,它承载了应用程序的各种组件和功能。然而,在创建容器上下文之前,Spring Boot还会进行一系列的准备工作,以确保应用程序能够在正确的配置和环境下运行。本文将总结Spring Boot 启动之前所做的准备工作,以便于更好地理解Spring Boot的启动过程和内部机制。原创 2023-12-06 20:06:26 · 1389 阅读 · 0 评论 -
说说你所了解的Java代理,有遇到过Spring Aop失效场景吗
3)定义代理类ImageProxy,代理类也实现Image接口,代替目标类RealImage实现display()功能,此外代理类ImageProxy还提供了额外的方法如loadFromDisk(),表示从磁盘中读取图片。2)调用与被调用的方法在同一个类中,如类中方法A调同一个类中的方法B,方法B中使用了AOP注解。:CGlib代理的本质是通过代理类(目标类的子类)调用目标类的方法,由于final 修饰的、static 修饰的 、private 修饰方法子类无法重写因此会出现AOP失效的现象。原创 2023-12-03 19:48:58 · 1188 阅读 · 0 评论 -
如何查看JDK动态代理自动生成的类
JDK提供了一种强大且灵活的机制,可以在运行时生成代理类。这种动态生成的代理类可以在不修改原始类的情况下,对其方法进行拦截和增强。然而,对于初学者来说,了解生成的代理类的内部结构和工作原理可能会很有帮助。本文将介绍如何查看JDK动态代理生成的代理类。我们将探索一些常见的工具和技术,帮助您深入了解动态代理的运行机制。通过查看生成的代理类,您将能够更好地理解代理模式的实现细节,并在需要时进行调试和排查问题。原创 2023-12-03 19:01:10 · 725 阅读 · 0 评论 -
SpringBoot 是如何启动一个内置的Tomcat
为什么说Spring Boot框架内置Tomcat 容器,Spring Boot框架又是怎么样去启动Tomcat的?原创 2023-12-02 23:01:32 · 710 阅读 · 0 评论 -
你了解Redis 的二进制安全吗
最近面试的时候被问到Redis 的二进制安全相关八股文面试题。Redis二进制安全内容比较多,以下是简单的总结大致的过程,需要深入学习的建议跳过原创 2023-11-27 22:17:27 · 947 阅读 · 0 评论 -
初学Flink 学后总结
最近开始学习Flink,一边学习一边记录,以下是基于【尚硅谷】Flink1.13实战教程总结的笔记,方便后面温习原创 2023-11-27 22:10:30 · 1279 阅读 · 0 评论 -
Redis IO多路复用之select、poll和epoll
Redis性能好除了它是基于内存的数据库外,还因为Redis是基于IO多路复用机制。以下总结一下曾经遇到过的一个面试题:你了解IO多路复用机制吗?实现IO多路复用机制的方式有哪些?有什么区别?原创 2023-11-26 09:55:32 · 884 阅读 · 0 评论 -
你了解spring-boot-starter-parent这个干嘛用的吗?
我们在SpringBoot 项目里面会引入spring-boot-starter-parent, 那为什么要引入 spring-boot-starter-parent?原创 2020-05-03 17:59:17 · 21570 阅读 · 9 评论 -
MySQL 有多个普通索引时会取哪一个索引?
在面试中,经常被问到索引优化,MySQL的最左前缀等等相关的知识点,但是被问到MySQL优化器选择索引的原理时相信有一部分小伙伴会不知所措,基于以上问题通过简单的demo演示及记录原创 2023-11-24 23:33:23 · 1181 阅读 · 0 评论 -
设计模式-单例模式
缺点:在类加载时完成实例化,导致类加载的原因可能有很多中,有可能还没开始使用的时候就被实例化,会造成资源浪费。缺点:在类加载时完成实例化,导致类加载的原因可能有很多中,有可能还没开始使用的时候就被实例化,会造成资源浪费。2.当在调用getInstance()时才会调用静态内部类,而且在装载时线程是安全的;优点:写法简单,就是在类加载时就执行静态代码块,避免了线程安全问题。优点:写法简单,就是在类加载的时候完成实例化,避免了线程安全问题。方式二:饿汉式(静态代码块)方式一:饿汉式(静态常量)原创 2023-11-25 00:20:19 · 858 阅读 · 0 评论 -
ClickHouse 原理解析之基础知识总结
本文参考ClickHouse 原理解析与应用实战一书,读后总结原创 2023-11-12 12:40:50 · 602 阅读 · 0 评论 -
JUC并发工具-CAS机制
CAS(Compare and Swap)是一种多线程同步的原子操作,用于解决并发环境下的数据竞争和线程安全问题。像我们平时使用到的JUC并发包下的AtomicInteger、AtomicLong、AtomicLong、AtomicBoolean等等底层都是基于CAS实现的,另外ReentrantLock、ConcurrentHashMap这些底层也是采用CAS机制实现。原创 2023-11-18 12:04:25 · 264 阅读 · 0 评论 -
01-Java 中的锁
锁是多线程编程中的一种机制,用于控制对共享资源的访问。它可以防止多个线程同时修改或读取共享资源,从而保证线程安全。原创 2023-11-04 17:51:39 · 58 阅读 · 0 评论 -
计算机网络基础知识-网络协议
首先udp协议是非连接的,发送数据就是把简单的数据包封装一下,然后从网卡发出去就可以了,数据包之间并没有状态上的联系,正因为udp这种简单的处理方式,导致他的性能损耗非常少,对于cpu,内存资源的占用也远小于tcp,但是对于网络传输过程中产生的丢包,udp并不能保证,所以udp在传输稳定性上要弱于tcp。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。服务端将 CA 签名的证书发送给浏览器,浏览器通过内嵌的 CA 机构的公钥对证书解密,得到服务端的公钥,这一过程采用非对称加密的方式。原创 2023-11-12 13:01:23 · 828 阅读 · 0 评论 -
Java基础之接口和抽象类的区别?
Java 中的接口和抽象类是接口(Interface)和抽象类(Abstract Class)都是Java中用于实现多态性的机制,下文将揭晓接口和抽象类的本质区别原创 2023-11-04 17:14:52 · 42 阅读 · 0 评论 -
JUC工具类_CyclicBarrier与CountDownLatch
CyclicBarrier(循环屏障)是Java中的一个同步辅助类,它允许一组线程相互等待,直到达到某个公共屏障点。它的工作方式是,在所有参与线程都到达屏障之前,它们会一直等待。一旦最后一个线程到达屏障,所有被屏障等待的线程将被释放,可以继续执行后续的任务。CountDownLatch是Java中的一个同步辅助类,它允许一个或多个线程等待其他线程完成操作后再继续执行。原创 2023-11-18 01:42:15 · 347 阅读 · 0 评论 -
08.说说你所了解网络协议
一文快速了解网络协议,Java面试必问知识点整理原创 2023-11-05 00:29:46 · 57 阅读 · 0 评论 -
07-ThreadLocal有哪些使用场景?【Java面试题总结】
ThreadLocal是线程本地变量,可以存储共享变量副本,每一个独立线程都有与共享变量一模一样的副本。ThreadLocal在当前线程下共享变量是全局共享的,各个线程之间是相互独立的。执行结果如下,每个线程都有自己独立的共享变量副本,并且在当前线程下任务一个地方值都是一样的(一个线程下,可能存在多个方法,多个方法即当前线程下共享变量全局共享)原创 2023-09-03 14:56:09 · 713 阅读 · 0 评论 -
06-限流策略有哪些,滑动窗口算法和令牌桶区别,使用场景?【Java面试题总结】
常见的限流算法有固定窗口、滑动窗口、漏桶、令牌桶等。原创 2023-09-03 14:54:05 · 1046 阅读 · 0 评论 -
05-Mysql夺命三连问:什么是索引下推?什么是索引覆盖?什么是回表?【Java面试总结】
在InnoDB中,一张表可以有多个非聚簇索引,非聚簇索引本身不存储数据,而是存储索引键值、和行指针。在InnoDB的引擎中,所有数据是存储在聚簇索引中的,索引键值和行指针的数据结构存储在非聚簇索引中,当我们基于非聚簇索引查询数据,如果返回的列不能满足需求,就需要从聚簇索引中再进行一次查找。是mysql5.6 提出的一个查询优化方案,主要的目的是减少数据或查询中不必要的读取和计算,它的原理是将查询条件尽可能的推送到索引层面进行过滤,减少从磁盘读取的数据量和后续的计算开销。原创 2023-09-03 14:51:17 · 929 阅读 · 0 评论 -
04-过滤器和拦截器有什么区别?【Java面试题总结】
注意,@WebFilter这个注解是Servlet3.0的规范,并不是Spring boot提供的。除了这个注解以外,我们还需在配置类中加另外一个注解:@ServletComponetScan,指定扫描的包,放在启动类上面。在Servlet 中,我们需要在web.xml中配置过滤器,在SpringBoot中没有web.xml的概念,我们通过其他方式配置,如下。提供了一系列方法来配置过滤器的属性,包括过滤器实例、URL匹配模式、过滤器执行顺序、Dispatcher类型等。和方式一的配置是一样的。原创 2023-09-03 14:49:03 · 457 阅读 · 0 评论 -
03-使用一个不可变对象作为key,红黑树怎么比较大小?
答:Java 中的红黑树是通过左旋、右旋的方式来维护树的平衡性,而左旋、右旋又依赖于节点大小的比较。对于使用不可变对象作为key实际上是可以的,因为比较key的大小本身不依赖于key是否可变性,而是依赖于key实现的比较大小的方法。红黑树通过键的比较结果来维护树的有序性。在插入和查找操作中,红黑树根据键的比较结果来确定节点的位置,以保持树的有序性。(1)红黑树的插入和查找操作是如何利用键的比较结果来维护树的有序性的?作为红黑树中的key有如下几个条件。使用红黑树实现排序的案例。原创 2023-09-03 14:44:22 · 230 阅读 · 0 评论 -
02-请解释一下Java的内存模型和happens-before规则?【Java面试题总结】
概念:Java内存模型,简称JMM,是一种定义了多线程程序中内存访问行为的规范。它定义了线程如何与主内存和工作内存进行交互,以及如何保证多线程程序的正确性和可见性。Java内存模型为并发编程提供了一致性和可靠性的保证特点:Java内存模型中的happens-before规则程序顺序规则(Program Order Rule):按照程序的顺序执行;锁定规则(Lock Rule):对于同一把锁来说,解锁(unlock)操作必然发生在后续的同一个锁的加锁(lock)之前,也就是要先解锁才能再加锁;volatile原创 2023-09-03 14:41:29 · 419 阅读 · 0 评论 -
01-为什么阿里巴巴强制要求使用包装类型定义属性?【Java面试题总结】
基于Mic老师Java面试教程进行总结和补充原创 2023-09-03 14:38:51 · 286 阅读 · 0 评论