Rsun04551
也许当我老了,也一样Code;不为别的,只为了爱好。
展开
-
MySQL面试题
分布式事务是指跨多个独立的系统或服务的事务操作。在分布式系统中,不同的服务可能运行在不同的节点或机器上,每个服务都有自己的数据存储和事务管理机制。当需要跨多个服务进行一系列操作,并要求这些操作要么全部成功,要么全部回滚时,就需要使用分布式事务来保证数据的一致性和完整性。在传统的单体应用中,通常使用本地事务来管理数据库操作。本地事务可以使用数据库提供的事务机制(如ACID属性)来保证数据的一致性。然而,在分布式环境中,由于数据分布在不同的系统和节点上,单个本地事务机制无法满足跨多个服务的事务管理需求。原创 2023-07-06 23:20:20 · 15 阅读 · 0 评论 -
MySQL相关面试题
指跨多个独立的系统或服务的事务操作在传统的单体应用中,通常使用本地事务来管理数据库操作原子性(Atomicity):要求一个分布式事务的所有操作要么全部成功,要么全部回滚,保证数据的一致性。一致性(Consistency):分布式事务的执行结果必须符合预期的业务规则和约束,不会破坏数据的一致性。隔离性(Isolation):不同的分布式事务应该相互隔离,互不影响。每个分布式事务应该感知到其他事务的存在,以避免数据冲突和并发问题。原创 2023-08-11 11:42:12 · 679 阅读 · 0 评论 -
Redis相关面试题
2、先删除Redis缓存数据,再更新MySQL,再次查询的时候再将数据添加到缓存中,这种方案能解决方案1的问题,但是在高并发下性能较低,而且仍然会出现数据不一致的问题,比如线程1删除了Redis缓存数据,正在更新MySQL,此时另外一个再查询,那么就会把MySQL中老数据又查到Redis中。强一致性表示,一个分布式系统中各个结点之间能及时的同步数据,在数据同步过程中,是不能对外提供服务的,不然就会造成数据不一致,所以强一致性和可用性是不能同时满足的。2、秒杀时使用redis中的decr命令对商品数量减一。原创 2023-08-11 11:20:47 · 768 阅读 · 0 评论 -
RabbitMQ相关面试题
1、消息去重机制:在发送消息时,为每条消息生成唯一的消息标识符,并将该标识符保存到一个持久化的存储系统中(如数据库、缓存等)。6、broker要等待消费者真正确认消费到了消息时才删除掉消息,这里通常就是消费端ack机制,消费者接收到一条消息后,如6.果确认没问题了,就可以给broker发送一个ack,broker接收到ack后才会删除消息。4、消费者接收消息阶段:当消息被MQ服务器传递给消费者时,如果消费者发生故障或处理消息的过程中出现错误,消息可能会被丢失。这种情况下,消息无法被正确路由去传递到消费者。原创 2023-08-11 11:18:41 · 1587 阅读 · 0 评论 -
SpringBoot相关面试题
RPC,表示远程过程调用,对于Java这种面试对象语言,也可以理解为远程方法调用,RPC调用和HTTP调用是有区别的,RPC表示的是一种调用程方法的方式,可以使用HTTP协议、或直接基于TCP协议来实现RPC,在Java中,我们可以通过直接使用某个服务接口的代理对象来执行方法,而底层则通过构造HTTP请求来调用远端的方法,所以,有一种说法是RPC协议是HTTP协议之上的一种协议,也是可以理解的。为了更好地理解整个系统的性能和运行情况,以及及时发现潜在的问题和瓶颈,需要对请求的调用链路进行监控和分析。原创 2023-08-11 11:17:49 · 638 阅读 · 0 评论 -
源码分析基础
当子父类中出现了同名成员变量时,在子类中若要访问父类中的成员变量,必须使用关键字super来完成,若要访问父类中的成员变量,必须使用关键字this来完成。Java体系在设计时定义了一个所有对象的父类Object,自定义类super调用的就是该类。3、抽象类必须由子类重写所有抽象方法才能实例化该子类。2、抽象类不可以被实例化,不能被final修饰。只要是构造方法默认第一行都是super()作用:this用来调用成员变量。4、抽象类不一定非要有抽象方法。1、方法只有声明,没有实现体。3、super关键字。原创 2022-11-12 21:47:04 · 439 阅读 · 0 评论 -
注解@Slf4j的使用
声明:如果不想每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class); 可以用注解@Slf4j;1.使用idea首先需要安装Lombok插件;2.在pom文件加入lombok的依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId>原创 2022-02-11 15:41:29 · 140 阅读 · 0 评论 -
Spring相关面试(看这篇就够了)
1、SSM的工作原理是什么?1、客户端(浏览器)发出http请求给web服务器,服务器对请求进行解析,如果匹配到DispatcherServlet的请求映射路径,然后将请求转交给DispatcherServlet;2、DispatcherServlet根据请求信息(包括URL、Http方法、请求报文头和请求参数Cookie等)调用HandlerMapping,解析请求对应的Handler;3、解析到对应的Handler后,开始由HandlerAdapter适配器处理。4、HandlerAdapter原创 2021-04-20 22:23:27 · 738 阅读 · 0 评论 -
MySQL面试(看这一篇就够了)
其数据文件本身就是索引文件,相比MyISAM,索引文件和数据文件是分离的,其表数据文件本身就是按照BTree组织的一个索引结构,树的叶子节点data域保存了完整的数据记录。Mysql索引使用的数据结构主要有Hash索引和BTree索引,对于哈希索引来说,底层的数据结构就是哈希表,因此在绝大多数需求为单条记录查询的时候,可以选择哈希索引,查询性能最快,其余大部分场景,建议选择BTree索引,Mysql的BTree索引使用的是B树中的B+树,但对于主要的两种存储引擎的实现方式是不同的。原创 2020-07-24 11:30:29 · 962 阅读 · 0 评论 -
Java多线程面试(看这一篇就够了)
当多个线程对同一全局变量或静态变量进行写操作时,可能会发生数据冲突问题,这就是多线程安全问题。进行读时不会发生安全问题,常见案例如:多平台对火车票售卖问题如何解决:使用线程同步或使用锁点我点我点我守护线程一般用来执行后台任务,用户线程一般用于执行用户级任务通常使用isDaemon方法来区分Java中的两种线程,如果返回true,则说明该线程是守护线程,否则是用户线程多线程死锁的产生以及如何避免死锁示例:简单创建多线程return 1;});});} }原创 2021-04-20 21:16:33 · 1800 阅读 · 10 评论 -
Java集合面试(看这一篇就够了)
集合中存放的数据都是引用数据类型,基本类型需要自动装箱,公有的方法有增删改查方法ArrayList继承AbstractList抽象类,实现List接口,而List接口又继承于Collection接口集合共分为两大分支:Collection和MapCollection接口下有List-列、Set-集、Queue-队子接口集合侧重于效率而非安全。原创 2020-02-14 22:20:19 · 1226 阅读 · 1 评论 -
Java面试题大全(2021年持续整理)
发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~本套Java面试题大全基于JDK 1.8整理,全的不能再全,哈哈~1、Java中有几种基本数据类型?所占用的字节分别为多少?8种字节呈对称:1248 4821 一个字节占8个比特位byte(1)、short(2)、int(4)、long(8)float(4)、double...原创 2020-02-28 09:54:57 · 14810 阅读 · 6 评论 -
浅谈Java内部类(超详细代码示例)
浅谈Java内部类(超详细代码示例)原创 2020-08-11 22:42:10 · 178 阅读 · 0 评论 -
Java中this与super关键字详解
this关键字this关键字,this指向对象本身,一个类可以通过this来获得一个代表它自身的对象变 量。this使用在如下三种情况中:调用实例变量。调用实例方法。调用其他构造方法。使用this变量的示例代码:public class Person {<span class="token comment">// 名字 </span><span class="token keyword">private</span> String nam.原创 2020-08-11 22:10:30 · 216 阅读 · 0 评论 -
Java中方法的重载与重写
画龙点睛:方法重载:同名不同参,返回值无关\color{#FF0000}{方法重载:同名不同参,返回值无关}方法重载:同名不同参,返回值无关方法重写/覆盖:同名同参\color{#FF0000}{方法重写/覆盖:同名同参}方法重写/覆盖:同名同参方法的重写Overriding和重载Overloading是Java多态性的不同表现。重载(overload)方法的重载是针对一个类中的方法。在一个类中,可以存在多个名字相同的方法,这些方法的形参列表(参数类型和参数个数)互不相同,返回值类型可同可不同,调原创 2020-08-11 22:01:55 · 192 阅读 · 0 评论 -
数据量在什么情况下需要分库分表
为了保证数据库的查询效率,当数据达成一定量时建议进行分表操作1、oracle当oracle单表的数据量大于2000万行时,建议进行水平分拆2、mysql当mysql单表的数据量大于1000万行时,建议进行水平分拆单表容量到了1000W以上基本上稍微复杂一点的SQL都需要仔细优化,这时候的SQL耗时主要集中在磁盘IO上,数据命令缓存的概率降低,总之不好搞,如果是正常的互联网项目,提前分库分表,在前期能做的先做了,后面会省很多时间处理数据迁移的事情数据操作比较频繁,比如订单表,可能涉及到的插入和更新原创 2020-07-24 17:51:00 · 3431 阅读 · 0 评论 -
圆通快递面试问题
1、Java中线程池包含了那些参数?各参数的作用是什么?(ThreadPoolExecutor)比如去火车站买票, 有10个售票窗口, 但只有5个窗口对外开放. 那么对外开放的5个窗口称为核心线程数, 而最大线程数是10个窗口.如果5个窗口都被占用, 那么后来的人就必须在后面排队, 但后来售票厅的人会越来越多, 已经人满为患, 就类似于线程队列已满.这时候火车站站长下令, 把剩下的5个窗口也打开, 也就是目前已经有10个窗口同时运行. 后来又来了一批人,10个窗口也处理不过来了,而且售票厅人已经满了原创 2020-06-09 23:29:47 · 1206 阅读 · 0 评论 -
2、JavaEE面试题
一.基础知识:1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet);ArrayList,LinkedList,Vector都属于ListList:元素是有序可重复的,因为每个元素都有自己的角标(索引)|-- ArrayList:底层的数据结构是数组结构,特点是:查询很快,增 删 稍微慢点,线程不同步|-- LinkedList:底层使用的是链表数据结构,特点是:增 删很快,查询慢。|–Vector:底层是数组数原创 2020-07-20 16:51:18 · 662 阅读 · 0 评论 -
Spring面试题及答案
当一个bean仅被用作另一个bean的属性时,它能被声明为一个内部bean,为了定义inner bean,在Spring 的 基于XML的 配置元数据中,可以在 或 元素内使用 元素,内部bean通常是匿名的,它们的Scope一般是prototype。依赖注入,是IOC的一个方面,是个通常的概念,它有多种解释。通过使用JDBC抽象和DAO模块,保证数据库代码的简洁,并能避免数据库资源错误关闭导致的问题,它在各种不同的数据库的错误信息之上,提供了一个统一的异常访问层。比如,以XML文件中 的形式定义。原创 2020-07-20 16:53:58 · 348 阅读 · 0 评论 -
1、新人面试必须要去学习的
1、大叫好,不叫不紧张,千万注意不要紧张解决办法:当然紧张是一个人的心态必须经过的一个过程,为什么会紧张是因为自己的信心不足,自己心里有多少的逼数怕是没人比自己更了解,所以才会紧张。你可以通过多面试几次来缓解紧张的情绪,同时要做到充实自己,因为只有充实了才会踏实。2、切记请勿答非所问,这个太重要了,如果面试官问你的问题,你没有回答在点子上,多注意对方的神色,如果对方在认真听,那么肯定是你的回答在对方心中得到了肯定,如果对方已经露出稍微的不耐烦,证明你已经越走越远了,这个时候停止吧,因为你后面说的再多都不原创 2020-07-20 16:48:12 · 321 阅读 · 0 评论