受检异常 非受检异常_1、受检异常和非受检异常的区别

# 1、受检异常和非受检异常的区别

非受检异常(unchecked exception):Error、RuntimeException

受检异常(checked exception):编译时异常IOException/SqlException

1、异常是主逻辑的补充逻辑,修改一个补充逻辑,就会导致主逻辑的修改,影响代码的规范和原则。

2、实现类的变更,它最终会影响调用者,破坏了一些封装性。

3、降低代码可读性。

# 3、从一道面试题了解Integer的实现

# 4、 动态代理原理分析

JDK动态代理是通过接口的方法名,在动态生成代理类里面去调用业务实现类的同名方法,去实现拦截。

CGlib动态代理是通过继承具体需要被代理的业务类,去动态生成业务类的子类,去重写业务方法,实现代理。

# 5、设计模式的优雅落地

软件设计六大原则:单一职责原则:优点:类的复杂度降低、可读性好、可维护性强、变更引起的风险降低

缺点:增加类或接口的维护成本

里氏替换原则:子类可以扩展父类的功能,但不能改变父类原有的功能。

依赖倒置原则:通过抽象,使各个类或者模块实现彼此独立,互不影响,实现模块之间的松耦合。如:面向接口编程。

接口隔离原则:尽量保证接口的纯洁性、单一性。

开闭原则:对扩展开放,对修改关闭。

迪米特法则:尽量将被依赖的类的实现逻辑封装进类的内部 ,不对外暴露。

# 策略模式

​落地支付网关

# 适配器模式

​利用接口定义好规则,适配器实现接口,按接口规则接入各SDK,适配多套SDK,

# 工厂模式

# 6、从底层设计分析List和Set的区别

​list有序且允许重复

​set无序且不允许重复

​HashSet/TreeSet 是对HashMap/TreeMapd的一个包装

​ArrayList可变长度的动态数组(Object[] 默认长度10,扩容一次,长度变成原来的1.5倍。删除一个元素时,会让右边的元素全部左移一位)

# 7、从原理层面分析ClassLoader加载机制

​我们都知道,我们写的程序是一个Java文件,然后最终会编译成一个class文件,通过若干个class文件,组织成一个完整的Java程序。当程序在运行的时候,调用一个main方法,作为一个入口,来执行程序的相关功能。

程序启动时,并不是一次性加载所有的class文件到内存中,而是根据程序的需要,通过类加载机制,去动态加载。

# 9、如何将一个Java对象序列化到文件中

# 10、乐观锁和悲观锁的原理及应用

锁:是一个同步机制,它是保证在多线程并行执行的时候,对共享资源访问的安全性。

乐观锁(CAS、数据库的version字段):每次获取或者修改共享资源数据时,认为是安全的,不会有锁的冲突。不会主动对共享资源加锁。但是在更新时,会判断是不是有其他线程对之前的数据做过变更。

悲观锁(synchronized锁):

# 11、BIO、NIO和AIO面试

Blocking IO同步阻塞IO

JDK1.4之前,Java.io,java.net都有对应的IO

IO:文件流,网络流

同步:是否要亲自去监听操作,不断进行关注:是否已经完成对应操作

阻塞:IO操作如果没有完成,在单线程的环境下,其他客户端是不能够连接上进行IO操作的。

JDK1.4之后,推出一个新的IO

NIO New IONon-Blocking IO 同步非阻塞的IO

非阻塞:不关心IO操作是否完成,直接返回

阻塞:在当线程的环境之后,如果IO操作没有完成,那么当线程就会等待,没有办法进行其他操作

AIO

​异步的理解:用户触发了IO操作之后,就不关心,委托给操作系统进行完成,当操作系统完成这个IO操作之后,再告诉自己就OK。

# 12、Spring中对象注入的几种方式及区别

set注入:

构造注入:

静态工厂注入

# 13、Mysql数据库的隔离级别及其区别

事务具备ACID(原子性、一致性、隔离性、持续性)

事务并发问题:1.脏读、不可重复读( 修改)、幻读(新增或删除)

# 14、MySql有哪些存储引擎,区别?InnodbMyisam存储文件.frm表定义文件

.lbd数据文件.frm表定义文件

.myd数据文件

.myi索引文件

锁表锁、行锁表锁

事务ACID不支持

CRUD读、写读多

count扫表有专门存储的地方

索引结构B+TreeB+Tree

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值