
面试
文章平均质量分 55
软件编程在线接单(需要可私)
DETECTIVE CONAN
展开
-
四非保研之旅
保研、西安电子科技大学、苏州大学、重庆大学、夏0营、夏令营、预推免、保研焦虑、保研经历、保研分享、四非保研、保送原创 2024-02-20 23:38:50 · 1879 阅读 · 19 评论 -
Mysql之面试连环问:Mysql主从是如何复制的?Mysql复制模式有哪几种?他们分别有哪些区别?
Mysql主从是如何复制的:Master将数据改变记录到⼆进制⽇志(binary log)中,也就是配置⽂件log-bin指定的⽂件,这些记录叫做⼆进制⽇志事件(binarylog events).Slave通过I/O线程读取Master中的binary log events并写⼊到它的中继⽇志(relay log),Slave重做中继⽇志中的事件,把中继⽇志中的事件信息⼀条⼀条的在本地执⾏⼀次,完成数据在本地的存储,从⽽实现将改变反映到它⾃⼰的数据(数据重放),如图:其中需要注意的是:dump过原创 2022-01-27 17:22:22 · 1456 阅读 · 1 评论 -
innodb和myIsam的区别在哪⾥?
1.InnoDB⽀持事务,MyISAM不⽀持2.innoDB将多条SQL语⾔放在begin和commit之间,组成⼀个事务,具备事务的ACID3.InnoDB⽀持外键,⽽MyISAM不⽀持。对⼀个包含外键的4.InnoDB表转为MYISAM会失败5.InnoDB是聚集索引,数据⽂件是和索引绑在⼀起的,必须要有主键,通过主键索引效率很⾼。⽽MyISAM是⾮聚集索引,数据⽂件是分离的,索引保存的是数据⽂件的指针。主键索引和辅助索引是独⽴的6.InnoDB不保存表的具体⾏数,执⾏select count原创 2022-01-26 14:53:18 · 915 阅读 · 0 评论 -
唯⼀索引与普通索引的区别?
查询上的区别对唯⼀索引,由于索引定义了唯⼀性,查找到第⼀个满⾜条件的记录后,就会停⽌检索对普通索引,查找到满⾜条件的第⼀个记录’ab‘后,需查找下个记录,直到碰到第⼀个不满⾜k=’ab‘条件的记录结论:mysql采⽤page⻚(⼀⻚16K)为数据单位从磁盘load出数据,除⾮刚好值为’ab‘的记录在⼀⻚的最后⼀条数据,否则执⾏性能区别微乎其微change buffer的定义⼀种特殊的数据结构,该结构在 次要索引 中记录对 页 的更改作用:提⾼更改索引操作性能,涉及更改缓冲区的⼀组功能统称为“更改缓原创 2022-01-26 14:51:19 · 334 阅读 · 0 评论 -
Mysql千万级别数据如何 做分页?
后端开发中为了防止⼀次性加载太多数据导致内存、磁盘IO都开销过⼤,经常需要分⻚展示,这个时候就需要⽤到MySQL的LIMIT关键字。但你以为LIMIT分⻚就万事大吉了么,LIMIT在数据量⼤的时候极可能造成深度分页问题。例如,上图,我们在查user表时,mysql会先根据条件去磁盘检索得到符合条件的所有数据,然后在到内存中去做相应的排序和分页,最后得到一页数据返回,如果当我们数据达到千万级别时,仅用limit,当查询的条件多且大时,将会造成灾难性的后果,此时,我们如何解决呢?例如,我们通过explain原创 2022-01-25 23:30:46 · 3361 阅读 · 0 评论 -
谈谈你对SQL优化的理解
高级面试题之谈谈你对MYSQL优化的理解:SQL优化可分为两个部分,⼀个是设计阶段,另⼀个是查询阶段设计阶段运⽤到的优化设计阶段的优化:1.使⽤适当的数据库列类型和⼤⼩2.尽量从设计上采⽤单表查询解决业务问题3.在适当字段加⼊索引,能⽤唯⼀索引⽤唯⼀索引查询阶段涉及的优化1.尽可能不⽤select *:让优化器⽆法完成索引覆盖扫描这类优化,⽽且还2会增加额外的I/O、内存和CPU的消耗2.慎⽤join操作:单张表查询可以减少锁的竞争,更容易应对业务的发展,⽅便对数据库进⾏拆分3.慎⽤子查询原创 2022-01-25 23:10:21 · 381 阅读 · 0 评论 -
如何评价服务器当前的性能?
蚂蚁金服⾯试题之服务器性能指标使用top命令可查看当前服务器相应性能指标例如我当前服务器的:其中:load average为什么会有三个数字呢?它们的意思分别是1分钟、5分钟、15分钟内系统的平均负荷。当CPU完全空闲的时候,平均负荷为0,值越低系统负荷越低值跟CPU核数相关,⽐如8核CPU,最⾼负载为8.0可用grep -c ‘model name’ /proc/cpuinfo"命令,直接返回CPU的总核⼼数mem展示了当前内存的状态total是总的内存⼤⼩userd是已使⽤的fr原创 2022-01-25 15:53:57 · 844 阅读 · 0 评论 -
为什么有了Http还要⽤dubbo?
蚂蚁⾦服Dubbo相关⾯试题dubbo的定义(定位):直接上官方自己的定位rpc相对于http的优势1.通⽤定义的http1.1协议的tcp报⽂包含⽆⽤信息(例如Content-Type,Content-Length并不需要),而RPC调用则相对于http来说较为轻量级了2.RPC封装了“服务发现”,“负载均衡”,“熔断降级”⼀类⾯向服务的⾼级特性,这些是http做不到的(RPC特⾊)3.RPC调⽤还拥有传输安全的优势,防⽌了Http调⽤的数据包篡改和流量劫持(个⼈经验)...原创 2022-01-23 15:59:58 · 1224 阅读 · 0 评论 -
CMS收集器
CMS收集器是什么?CMS (Concurrent Mark Sweep)收集器是-种以获取最短回收停顿时间为⽬标的收集器。⽬前很⼤⼀部分的Java应⽤集中在互联⽹站或者B/S系统的服务端上,这类应⽤尤其重 视服务的响应速度,希望系统停顿时间最短,以给⽤户带来较好的体验。CMS 收集器是基于“标记-清除”算法实现的步骤流程:初始标记(CMS initial mark) -----标记⼀下 GC Roots 能直接关联到的对象,速度很快并发标记(CMS concurrent mark ------原创 2022-01-18 16:37:08 · 683 阅读 · 0 评论 -
大厂高频面试题之你不得不懂的GC垃圾回收
为什么要垃圾回收?Java语⾔中⼀个显著的特点就是引⼊了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃⽽解。由于有个垃圾回收机制,Java中的对象不再有“作⽤域”的概念,只有对象的引⽤才有“作⽤域”。垃圾回收可以有效的防⽌内存泄露,有效的使⽤空闲的内存要回收就要判断该内存是否可以回收,因此首先要了解的是我们的判断对象是否存活的方法。对象是否存活判断方法:1.引用计数法:堆中每个对象实例都有⼀个引⽤计数。当⼀个对象被创建时,且将该对象实例分配给⼀个变量,该变量计数设置为1。当任何其它变量被赋原创 2022-01-18 13:47:37 · 127 阅读 · 0 评论 -
大厂高频面试题之Java内存区域分布
JVM运⾏时数据区分布:运行时数据区:⽅法区、虚拟机栈、本地⽅法栈、堆、程序计数器线程共享数据区:⽅法区、堆线程隔离数据区:虚拟机栈、本地⽅法栈、堆、程序计数器接下来详细说说各运行时数据区JVM内存模型之程序计算器是什么?程序计数器是⼀块较⼩的内存空间,它可以看作是当前线程所执⾏的字节码的⾏号指示器线程是⼀个独⽴的执⾏单元,是由CPU控制执⾏的字节码解释器⼯作时就是通过改变这个计数器的值来选取下⼀条需要执⾏的字节码指令,分⽀、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成原创 2022-01-17 22:12:42 · 392 阅读 · 0 评论 -
分布式事务(三种解决方案,各个方案优缺点等)
什么是分布式事务指事务的参与者、⽀持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是⼀次⼤的操作由不同的⼩操作组成,这些⼩的操作分布在不同的服务器上,且属于不同的应⽤分布式事务需要保证这些⼩操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据⼀致性产生的原因业务发展,数据库的拆分-分库分表SOA和微服务架构的使⽤多个微服务之间调⽤异常,⽹络异常、请求超时、数据库异常、程序宕机等首先介绍一下分布式事务下数据最终⼀致性-原创 2021-11-15 00:46:27 · 2081 阅读 · 0 评论 -
大厂面试题,高并发库存扣减超卖问题解决,多种sql 适合场景
⾼并发库存扣减超卖问题,很多⼈加了乐观锁版本号去解决,那下⾯三种有什么区别,分别适合哪些场景使用1)update product set stock=stock-1 where id =1 and stock>02)update product set stock=stock-1 where stock=#{原先查询的库存} and id = 1 and stock>03)update product set stock=stock-1,versioin =version+1 where原创 2021-11-06 15:39:57 · 1175 阅读 · 1 评论 -
ThreadLocal介绍与常见核心面试题
什么是ThreadLocal全称thread local variable(线程局部变量)功⽤⾮常简单,使⽤场合主要解决多线程中数据因并发产⽣不⼀致问题。ThreadLocal为每⼀个线程都提供了变量的副本,使得每个线程在某时间访问到的并不是同⼀个对象,这样就隔离了多个线程对数据的数据共享,这样的结果是耗费了内存,但⼤⼤减少了线程同步所带来性能消耗,也减少了线程并发控制的复杂度。总结起来就是:同个线程共享数据注意:ThreadLocal不能使⽤原⼦类型,只能使⽤Object类型核心应⽤场景Thr原创 2021-10-31 10:49:45 · 337 阅读 · 0 评论