![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
GaleZhang
这个作者很懒,什么都没留下…
展开
-
个人整理的面试题汇总(七)——Spring相关
IOCIOC(Inversion Of Control)控制反转。两种实现方式:DL(依赖查找),DI(依赖注入)。Spring就是实现的DI。IOC的想法是通过一个第三方的IOC容器实现各个相互依赖对象之间的解耦。通过引入IOC容器,可以使复杂系统中的各个对象不再相互依赖,使每个开发者可以只关注于实现自己的类,与别人的工作没有任何关系。比如在没有IOC容器这个“粘合剂”时,当类A代码的某个阶段,需要用到类B时,需要主动的创建对象B,或者调用已经创建好的B对象,也就是对象A依赖于对象B。而有了IOC容原创 2020-10-22 15:45:27 · 1278 阅读 · 0 评论 -
个人整理的面试题汇总(六)——分布式系统
分布式系统分布式事务指事务的每个操作步骤都位于不同的节点上,需要保证事务的 AICD 特性。产生原因数据库分库分表;SOA 架构,比如一个电商网站将订单业务和库存业务分离出来放到不同的节点上。应用场景下单:减少库存同时更新订单状态。库存和订单不在不同一个数据库,因此涉及分布式事务。支付:买家账户扣款同时卖家账户入账。买家和卖家账户信息不在同一个数据库,因此涉及分布式事务。解决方案3.1 两阶段提交协议两阶段提交协议可以很好得解决分布式事务问题,它可以使用 XA 来实现,XA 它包含两个原创 2020-10-21 13:32:42 · 1167 阅读 · 2 评论 -
个人整理的面试题汇总(五)——网络
四层网络协议:OSI模型分层,每层对应的协议和功能TCP和UDPTCP与UDP区别总结:1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付,Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。3、UDP具有较好的实时性,工作效率比TCP高,适原创 2020-10-20 14:29:18 · 575 阅读 · 0 评论 -
个人整理的面试题汇总(四)——数据库
MySql事务你用支付宝去去超市买东西,100块钱转给超市,其实这是两步:第一步,在支付宝数据库中你的账户减去100;第二步,在超市的支付宝账户上加上100元,交易完成;但是如果第一步完成了,还没执行第二步的时候,停电了会发生什么呢?会发生,你的账户减少了100块,超市的账户金额没变,这不就出现问题了,不得打架了吗?为了解决这个数据一致性问题,数据库事务应运而生。数据库事务是指一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属原创 2020-10-19 12:01:33 · 13697 阅读 · 0 评论 -
个人整理的面试题汇总(三)——操作系统
文件描述符0 ,1,2叫文件描述符;Linux中,每打开一个文件都有一个小的整数与之对应,就是文件描述符!0 是标准输入的 (stdin)1 是标准输出的 (stdout)2 是标准报错输出的 (stderr)'<'是输入重定向符‘>’是输出重定向符软链接和硬链接的区别对于一个文件来说,有唯一的索引接点(inode)与之对应,而对于一个索引接点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件。Linux下是一切皆文件的,文件夹、新加的硬盘原创 2020-10-15 09:57:14 · 804 阅读 · 0 评论 -
个人整理的面试题汇总(二)——多线程
线程运行的几种状态Synchronized和locksynchronized和lock的用法区别synchronized:在需要同步的对象中加入此控制,synchronized可以加在方法上,也可以加在特定代码块中,括号中表示需要锁的对象。lock:需要显示指定起始位置和终止位置。一般使用ReentrantLock类做为锁,多个线程中必须要使用一个ReentrantLock类做为对象才能保证锁的生效。且在加锁和解锁处需要通过lock()和unlock()显示指出。所以一般会在finally块中写.原创 2020-10-14 10:24:29 · 241 阅读 · 0 评论 -
个人整理的面试题汇总(一)——Java基础知识
Java和C的区别Java与C++都是面向对象语言,都使用了面向对象思想(例如封装、继承、多态等)由于面向对象有许多非常好的特性(继承、组合等),因此二者都有很好的可重用性需要注意的是,二者并非完全一样,下面主要介绍它们的不同点:1)Java为解释性语言,其运行过程为:程序源代码经过Java编译器编译成字节码,然后由JVM解释执行。而C/C++为编译型语言,源代码经过编译和链接后生成可执行的二进制代码。因此,Java的执行速度比C/C++慢,但是Java能够跨平台执行,而C/C++不能。2)Java原创 2020-10-13 17:07:38 · 188 阅读 · 0 评论