保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

面试OPPOJava后端被问麻了

  最近有粉丝私信说被oppo的后端面试问麻了,所以今天给大家推荐一篇整理了16道oppo面试真题答案的文章。希望对大家有帮助哈,一起学习,一起进步。聊聊你印象最深刻的项目,或者做了什么优化。项目提到分布式锁,你们是怎么使用分布式锁的?常见的分布式事务解决方案你们的接口幂等是如何保证的?你们的MySQL架构是怎样的?常见的索引结构有?哈希表结构属于哪种场景?给你ab,ac,abc字段,你是如何加索引的?数据库隔离级别是否了解?你们的数据库默认隔离级别是?为什么选它?RR隔离级别实现原理,它是如何解决不可重复读的?你们项目使用了RocketMQ对吧?那你知道如何保证消息不丢失吗?事务消息是否了解?场景题:比如下单清空购物车,你是如何设计的?如何快速判断一个数是奇数还是偶数,除开对2取其余呢。Spring声明式事务原理?哪些场景事务会失效?你们是微服务架构吗?如果你来设计一个类似淘宝的系统,你怎么划分微服务?你们是怎么分库分表的?分布式ID如何生成?所有异常的共同祖先是?运行时异常有哪几个?推荐文章:牛客网付费的Java最新面试宝典(附答案解析)被我搞到手了
  推荐文章:披荆斩棘成功上岸美团、字节、华为,分享Java面经及答案1。聊聊你印象最深刻的项目,或者做了什么优化。
  大家平时做的项目,如果很多知识点跟面试八股文相关的话,就可以相对条理清晰地写到简历去。比如缓存数据库相关的,查询为空,你设置了一个1到缓存,代表数据库没记录。下次判断1,就不查库了,以解决缓存穿透的问题。又比如你设置缓存过期时间比较分散,解决缓存击穿问题,都可以条理清晰写到简历去,这样面试官很可能会问你相关的问题,这时候就对答如流啦。
  还有平时你做的项目,有一些比较好的设计,都可以说一下哈,比如你是如何保证数据一致性的,怎么优化接口性能的。如果是讲优化接口这一块的话,其实就是缓存、分批、并发调用、异步等那几个关键知识点。如果是代码优化细节,你可以挑个简单的来讲,比如复杂的if逻辑条件,可以调整顺序,让程序更高效,这样会让面试官眼前一亮哦。2。你项目提到分布式锁,你们是怎么使用分布式锁的?
  一般你讲述你做的项目时,面试官会根据你项目涉及的一些面试点,然后抽他感兴趣的一两个来问。所以大家对哪些知识点熟悉,讲述项目时,就说你用该知识点,解决了什么问题。3。常见分布式事务解决方案
  分布式事务:就是的分布式式的参与者、支持事务的服务器、资源务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单来说,分布式事务指的就是分布式系统中的事务,它的存在就是为了保证不同数据库节点的数据一致性。
  聊到分布式事务,大家记得这两个理论哈:CAP理论和BASE理论
  分布式事务的几种解决方案:2PC(二阶段提交)方案、3PCTCC(Try、Confirm、Cancel)本地消息表最大努力通知seata
  2PC(二阶段提交)方案
  2PC,即两阶段提交,它将分布式事务的提交拆分为2个阶段:prepare和commitrollback,即准备阶段和提交执行阶段。在prepare准备阶段需要等待所有参与子事务的反馈,因此可能造成数据库资源锁定时间过长,不适合并发高以及子事务生命周长较长的业务场景。并且协调者宕机的话,所有的参与者都收不到提交或回滚指令。
  3PC
  两阶段提交分别是:CanCommit,PreCommit和doCommit,这里不再详述。3PC利用超时机制解决了2PC同步阻塞问题,避免资源被永久锁定,进一步加强了整个事务过程的可靠性。但是3PC同样无法应对类似的宕机问题,只不过出现很多数据源中数据不一致问题的概率更小。
  TCC
  TCC采用了补偿机制,其核心思想是:针对每个操作,都要注册一个与其对应的确认和补偿(撤销)操作。它分为三个阶段:TryConfirmCanceltry阶段:尝试去执行,完成所有业务的一致性检查,预留必须的业务资源。Confirm阶段:该阶段对业务进行确认提交,不做任何检查,因为try阶段已经检查过了,默认Confirm阶段是不会出错的。Cancel阶段:若业务执行失败,则进入该阶段,它会释放try阶段占用的所有业务资源,并回滚Confirm阶段执行的所有操作。
  TCC方案让应用可以自定义数据库操作的粒度,降低了锁冲突,可以提升性能。但是应用侵入性强,try、confirm、cancel三个阶段都需要业务逻辑实现。
  本地消息表
  ebay最初提出本地消息表这个方案,来解决分布式事务问题。业界目前使用这种方案是比较多的,它的核心思想就是将分布式事务拆分成本地事务进行处理。可以看一下基本的实现流程图:
  最大努力通知
  最大努力通知方案的目标,就是发起通知方通过一定的机制,最大努力将业务处理结果通知到接收方。
  seata
  Saga模式是Seata提供的长期事务解决方案。核心思想是将长事务拆分为多个本地短事务,由Saga事务协调器协调,如果正常结束那就正常完成,如果某个步骤失败,则根据相反顺序一次调用补偿操作。
  Saga的并发度高,但是一致性弱,对于转账,可能发生用户已扣款,最后转账又失败的情况。4。你们的接口幂等是如何保证的?
  如果你调用下游接口超时了,是不是考虑重试?如果重试,下游接口就需要支持幂等啦。
  实现幂等一般有这8种方案:selectinsert主键唯一的索引冲突直接insert主键唯一的索引冲突状态机密等抽取防重表token令牌悲观锁(如selectforupdate,很少用)乐观说分布式锁
  大家平时是用哪个方案解决幂等的,最后结合工作实际讲讲哈。5。你们的mySQL架构是怎样的?
  大家可以结合自己公司的MySQL架构聊聊。
  数据的库高可用方案双机主备一主一从一主多从MariaDB同步多主机数据库中间件5。1双机主备
  面试OPPOJava后端被问麻了优点:一个机器故障了可以自动切换,操作比较简单。缺点:只有一个库在工作,读写压力大,未能实现读写分离,并发也有一定限制5。2一主一从
  面试OPPOJava后端被问麻了优点:从库支持读,分担了主库的压力,提升了并发度。一个机器故障了可以自动切换,操作比较简单。缺点:一台从库,并发支持还是不够,并且一共两台机器,还是存在同时故障的机率,不够高可用。5。3一主多从
  面试OPPOJava后端被问麻了优点:多个从库支持读,分担了主库的压力,明显提升了读的并发度。缺点:只有一台主机写,因此写的并发度不高5。4MariaDB同步多主机集群
  面试OPPOJava后端被问麻了有代理层实现负载均衡,多个数据库可以同时进行读写操作;各个数据库之间可以通过GaleraReplication方法进行数据同步,每个库理论上数据是完全一致的。优点:读写的并发度都明显提升,可以任意节点读写,可以自动剔除故障节点,具有较高的可靠性。缺点:数据量不支持特别大。要避免大事务卡死,如果集群节点一个变慢,其他节点也会跟着变慢。5。5数据库中间件
  面试OPPOJava后端被问麻了mycat分片存储,每个分片配置一主多从的集群。优点:解决高并发高数据量的高可用方案缺点:维护成本比较大。6。常见的索引结构有?哈希表结构属于哪种场景?
  哈希表、有序数组和搜索树。哈希表这种结构适用于只有等值查询的场景有序数组适合范围查询,用二分法快速得到,时间复杂度为O(log(N))。查询还好,如果是插入,就得挪动后面所有的记录,成本太高。因此它一般只适用静态存储引擎,比如保存2018年某个城市的所有人口信息。B树适合范围查询,我们一般建的索引结构都是B树。7。给你ab,ac,abc字段,你是如何加索引的?
  这主要考察联合索引的最左前缀原则知识点。这个最左前缀可以是联合索引的最左N个字段。比如组合索引(a,b,c)可以相当于建了(a),(a,b),(a,b,c)三个索引,大大提高了索引复用能力。最左前缀也可以是字符串索引的最左M个字符。
  因此给你ab,ac,abc字段,你可以直接加abc联合索引和ac联合索引即可。8。数据库隔离级别是否了解?你们的数据库默认隔离级别是?为什么选它?
  四大数据库隔离级别,分别是读未提交,读已提交,可重复读,串行化(Serializable)。读未提交:事务即使未提交,却可以被别的事务读取到的,这级别的事务隔离有脏读、重复读、幻读的问题。读已提交:当前事务只能读取到其他事务提交的数据,这种事务的隔离级别解决了脏读问题,但还是会存在不可重复读、幻读问题;可重复读:限制了读取数据的时候,不可以进行修改,所以解决了不可重复读的问题,但是读取范围数据的时候,是可以插入数据,所以还会存在幻读问题。串行化:事务最高的隔离级别,在该级别下,所有事务都是进行串行化顺序执行的。可以避免脏读、不可重复读与幻读所有并发问题。但是这种事务隔离级别下,事务执行很耗性能。
  MySQL选择RepeatableRead(可重复读)作为默认隔离级别,我们的数据库隔离级别选的是读已提交。8。1为什么MySQL的默认隔离离别是RR?
  binlog的格式也有三种:statement,row,mixed。设置为statement格式,binlog记录的是SQL的原文。又因为MySQL在主从复制的过程是通过binlog进行数据同步,如果设置为读已提交(RC)隔离级别,当出现事务乱序的时候,就会导致备库在SQL回放之后,结果和主库内容不一致。
  比如一个表t,表中有两条记录:CREATETABLEt(aint(11)DEFAULTNULL,bint(11)DEFAULTNULL,PRIMARYKEYa(a),KEYb(b))ENGINEInnoDBDEFAULTCHARSETlatin1;insertintot1values(10,666),(20,233);
  两个事务并发写操作,如下:
  面试OPPOJava后端被问麻了
  在读已提交(RC)隔离级别下,两个事务执行完后,数据库的两条记录就变成了(30,666)、(20,666)。这两个事务执行完后,binlog也就有两条记录,因为事务binlog用的是statement格式,事务2先提交,因此updatetsetb666whereb233优先记录,而updatetseta30whereb666记录在后面。
  当binlog同步到从库后,执行updatetsetb666whereb233和updatetseta30whereb666记录,数据库的记录就变成(30,666)、(30,666),这时候主从数据不一致啦。
  因此MySQL的默认隔离离别选择了RR而不是RC。RR隔离级别下,更新数据的时候不仅对更新的行加行级锁,还会加间隙锁(gaplock)。事务2要执行时,因为事务1增加了间隙锁,就会导致事务2执行被卡住,只有等事务1提交或者回滚后才能继续执行。
  并且,MySQL还禁止在使用statement格式的binlog的情况下,使用READCOMMITTED作为事务隔离级别。我们的数据库隔离级别最后选的是读已提交(RC)。
  那为什么MySQL官方默认隔离级别是RR,而有些大厂选择了RC作为默认的隔离级别呢?提升并发
  RC在加锁的过程中,不需要添加GapLock和NextKeyLock的,只对要修改的记录添加行级锁就行了。因此RC的支持的并发度比RR高得多,减少死锁
  正是因为RR隔离级别增加了GapLock和NextKeyLock锁,因此它相对于RC,更容易产生死锁。9。RR隔离级别实现原理,它是如何解决不可重复读的?9。1什么是不可重复读
  先回忆下什么是不可重复读。假设现在有两个事务A和B:事务A先查询Jay的余额,查到结果是100这时候事务B对Jay的账户余额进行扣减,扣去10后,提交事务事务A再去查询Jay的账户余额发现变成了90
  面试OPPOJava后端被问麻了
  事务A被事务B干扰到了!在事务A范围内,两个相同的查询,读取同一条记录,却返回了不同的数据,这就是不可重复读。9。2undolog版本链ReadView可见性规则
  RR隔离级别实现原理,就是MVCC多版本并发控制,而MVCC是是通过ReadViewUndoLog实现的,UndoLog保存了历史快照,ReadView可见性规则帮助判断当前版本的数据是否可见。
  UndoLog版本链长这样:
  面试OPPOJava后端被问麻了
  Readview的几个重要属性mids:当前系统中那些活跃(未提交)的读写事务ID,它数据结构为一个List。minlimitid:表示在生成ReadView时,当前系统中活跃的读写事务中最小的事务id,即mids中的最小值。maxlimitid:表示生成ReadView时,系统中应该分配给下一个事务的id值。creatortrxid:创建当前ReadView的事务ID
  Readview可见性规则如下:如果数据事务IDtrxidminlimitid,表明生成该版本的事务在生成ReadView前,已经提交(因为事务ID是递增的),所以该版本可以被当前事务访问。如果trxidmaxlimitid,表明生成该版本的事务在生成ReadView后才生成,所以该版本不可以被当前事务访问。如果minlimitidtrxidmaxlimitid,需要分3种情况讨论3。1如果mids包含trxid,则代表ReadView生成时刻,这个事务还未提交,但是如果数据的trxid等于creatortrxid的话,表明数据是自己生成的,因此是可见的。
  3。2如果mids包含trxid,并且trxid不等于creatortrxid,则ReadView生成时,事务未提交,并且不是自己生产的,所以当前事务也是看不见的;
  3。3如果mids不包含trxid,则说明你这个事务在ReadView生成之前就已经提交了,修改的结果,当前事务是能看见的。9。3RR如何解决不可重复读
  查询一条记录,基于MVCC,是怎样的流程获取事务自己的版本号,即事务ID获取ReadView查询得到的数据,然后ReadView中的事务版本号进行比较。如果不符合ReadView的可见性规则,即就需要Undolog中历史快照;最后返回符合规则的数据
  假设存在事务A和B,SQL执行流程如下
  面试OPPOJava后端被问麻了
  在可重复读(RR)隔离级别下,一个事务里只会获取一次ReadView,都是副本共用的,从而保证每次查询的数据都是一样的。
  假设当前有一张coreuser表,插入一条初始化数据,如下:
  面试OPPOJava后端被问麻了
  基于MVCC,我们来看看执行流程A开启事务,首先得到一个事务ID为100B开启事务,得到事务ID为101事务A生成一个ReadView,readview对应的值如下
  变量值mids100,101maxlimitid102minlimitid100creatortrxid100
  然后回到版本链:开始从版本链中挑选可见的记录:
  面试OPPOJava后端被问麻了
  由图可以看出,最新版本的列name的内容是孙权,该版本的trxid值为100。开始执行readview可见性规则校验:minlimitid(100)trxid(100)102;creatortrxidtrxid100;
  由此可得,trxid100的这个记录,当前事务是可见的。所以查到是name为孙权的记录。事务B进行修改操作,把名字改为曹操。把原数据拷贝到undolog,然后对数据进行修改,标记事务ID和上一个数据版本在undolog的地址。
  面试OPPOJava后端被问麻了事务B提交事务事务A再次执行查询操作,因为是RR(可重复读)隔离级别,因此会复用老的ReadView副本,ReadView对应的值如下
  变量值mids100,101maxlimitid102minlimitid100creatortrxid100
  然后再次回到版本链:从版本链中挑选可见的记录:
  面试OPPOJava后端被问麻了
  从图可得,最新版本的列name的内容是曹操,该版本的trxid值为101。开始执行readview可见性规则校验:minlimitid(100)trxid(101)maxlimitid(102);因为mids{100,101}包含trxid(101),并且creatortrxid(100)不等于trxid(101)
  所以,trxid101这个记录,对于当前事务是不可见的。这时候呢,版本链rollpointer跳到下一个版本,trxid100这个记录,再次校验是否可见:minlimitid(100)trxid(100)maxlimitid(102);因为mids{100,101}包含trxid(100),并且creatortrxid(100)等于trxid(100)
  所以,trxid100这个记录,对于当前事务是可见的,所以两次查询结果,都是name孙权的那个记录。即在可重复读(RR)隔离级别下,复用老的ReadView副本,解决了不可重复读的问题。10。你们项目使用了RocketMQ对吧?那你知道如何保证消息不丢失吗?
  一个消息从生产者产生,到被消费者消费,主要经过这3个过程:
  面试OPPOJava后端被问麻了生产者产生消息消息发送到存储端,保存下来消息推送到消费者,消费者消费完,ack应答。
  因此如何保证MQ不丢失消息,可以从这三个阶段阐述:生产者保证不丢消息存储端不丢消息消费者不丢消息10。1生产者保证不丢消息
  生产端如何保证不丢消息呢?确保生产的消息能顺利到达存储端。
  如果是RocketMQ消息中间件的话,Producer生产者提供了三种发送消息的方式,分别是:同步发送异步发送单向发送
  生产者要想发消息时保证消息不丢失,可以:采用同步方式发送,send消息方法返回成功状态,即消息正常到达了存储端Broker。如果send消息异常或者返回非成功状态,可以发起重试。可以使用事务消息,RocketMQ的事务消息机制就是为了保证零丢失来设计的10。2存储端不丢消息
  如何保证存储端的消息不丢失呢?确保消息持久化到磁盘,那就是刷盘机制嘛。
  刷盘机制分同步刷盘和异步刷盘:同步刷盘:生产者消息发过来时,只有持久化到磁盘,RocketMQ的存储端Broker才返回一个成功的ACK响应。它保证消息不丢失,但是影响了性能。异步刷盘:只要消息写入PageCache缓存,就返回一个成功的ACK响应。这样提高了MQ的性能,但是如果这时候机器断电了,就会丢失消息。
  除了同步刷盘机制,还有一个维度需要考虑。Broker一般是集群部署的,有主节点和从节点。消息到Broker存储端,只有主节点和从节点都写入成功,才反馈成功的ack给生产者。这就是同步复制,它保证了消息不丢失,但是降低了系统的吞吐量。与之对应即是异步复制,只要消息写入主节点成功,就返回成功的ack,它速度快,但是会有性能问题。10。3消费阶段不丢消息
  消费者执行完业务逻辑,再反馈会Broker说消费成功,这样才可以保证消费阶段不丢消息。11。事务消息是否了解?场景题:比如下单清空购物车,你是如何设计的?
  事务消息主要用来解决消息生产者和消息消费者的数据一致性问题。我们先来回忆一下:一条普通的消息队列消息,从产生到被消费,经历的流程:
  面试OPPOJava后端被问麻了生产者产生消息,发送到MQ服务器MQ收到消息后,将消息持久化到存储系统。MQ服务器返回ACk到生产者。MQ服务器把消息push给消费者消费者消费完消息,响应ACKMQ服务器收到ACK,认为消息消费成功,即在存储中删除消息。
  消息队列的事务消息流程是怎样的呢?
  面试OPPOJava后端被问麻了生产者产生消息,发送一条半事务消息到MQ服务器MQ收到消息后,将消息持久化到存储系统,这条消息的状态是待发送状态。MQ服务器返回ACK确认到生产者,此时MQ不会触发消息推送事件生产者执行本地事务如果本地事务执行成功,即commit执行结果到MQ服务器;如果执行失败,发送rollback。如果是正常的commit,MQ服务器更新消息状态为可发送;如果是rollback,即删除消息。如果消息状态更新为可发送,则MQ服务器会push消息给消费者。消费者消费完就回ACK。如果MQ服务器长时间没有收到生产者的commit或者rollback,它会反查生产者,然后根据查询到的结果执行最终状态。
  我们举个下订单清空购物车的例子吧。订单系统创建完订单后,然后发消息给下游系统购物车系统,清空购物车。生产者(订单系统)产生消息,发送一条半事务消息到MQ服务器MQ收到消息后,将消息持久化到存储系统,这条消息的状态是待发送状态。MQ服务器返回ACK确认到生产者,此时MQ不会触发消息推送事件生产者执行本地事务(订单创建成功,提交事务消息)如果本地事务执行成功,即commit执行结果到MQ服务器;如果执行失败,发送rollback。如果是commit正常提交,MQ服务器更新消息状态为可发送;如果是rollback,即删除消息。如果消息状态更新为可发送,则MQ服务器会push消息给消费者(购物车系统)。消费者消费完(即拿到订单消息,清空购物车成功)就应答ACK。如果MQ服务器长时间没有收到生产者的commit或者rollback,它会反查生产者,然后根据查询到的结果(回滚操作或者重新发送消息)执行最终状态。
  有些伙伴可能有疑惑,如果消费者消费失败怎么办呢?那数据是不是不一致啦?所以就需要消费者消费成功,执行业务逻辑成功,再反馈ack嘛。如果消费者消费失败,那就自动重试嘛,接口支持幂等即可。12。如何快速判断一个数是奇数还是偶数,除开对2取余呢。
  判断一个数是奇数还是偶数,我们最容易想到的就是对2取余。if(x2)奇数else偶数
  还有一种方法,就是与1相与(1),具体实现如下:if(x1)奇数else偶数13。Spring声明式事务原理?哪些场景事务会失效?13。1声明式事务原理
  spring声明式事务,即Transactional,它可以帮助我们把事务开启、提交或者回滚的操作,通过Aop的方式进行管理。
  面试OPPOJava后端被问麻了
  在spring的bean的初始化过程中,就需要对实例化的bean进行代理,并且生成代理对象。生成代理对象的代理逻辑中,进行方法调用时,需要先获取切面逻辑,Transactional注解的切面逻辑类似于Around,在spring中是实现一种类似代理逻辑。
  面试OPPOJava后端被问麻了13。2spring声明式事务哪些场景会失效方法的访问权限必须是public,其他private等权限,事务失效方法被定义成了final的,这样会导致事务失效。在同一个类中的方法直接内部调用,会导致事务失效。一个方法如果没交给spring管理,就不会生成spring事务。多线程调用,两个方法不在同一个线程中,获取到的数据库连接不一样的。表的存储引擎不支持事务如果自己try。。。catch误吞了异常,事务失效。错误的传播14。你们是微服务架构嘛?如果你来设计一个类似淘宝的系统,你怎么划分微服务?
  可以按业务领域、功能、重要程度进行划分。可以按业务领域,把用户、社区、商品信息、消息等模块等划分。单一功能职责,按功能拆分,比如订单、支付、物流、权限。按重要程度划分,区分核心和非核心功能,比如支付、订单就是核心功能。15。你们是怎么分库分表的?分布式ID如何生成?
  如果是我们公司的话,使用了水平分库的方式,就是一个用户注册时,就划分了属于哪个数据库,然后具体的表结构是一样的。
  业界还有垂直分库,就是按照不同的系统中的不同业务进行拆分,比如拆分成用户库、订单库、积分库、商品库,把它们部署在不同的数据库服务器。
  分表的话也有水平分表和垂直分表,垂直分表就是将一些不常用的、数据较大或者长度较长的列拆分到另外一张表,水平分表就是可以按照某种规则(如hash取模、range),把数据切分到多张表去。一张订单表,按时间range拆分如下:
  面试OPPOJava后端被问麻了
  range划分利于数据迁移,但是存在数据热点问题。hash取模划分,不会存在明显的热点问题,但是不利于扩容。可以rangehash取模结合使用。
  分布式ID可以使用雪花算法生成
  雪花算法是一种生成分布式全局唯一ID的算法,生成的ID称为SnowflakeIDs。这种算法由Twitter创建,并用于推文的ID。
  一个SnowflakeID有64位。第1位:Java中long的最高位是符号位代表正负,正数是0,负数是1,一般生成ID都为正数,所以默认为0。接下来前41位是时间戳,表示了自选定的时期以来的毫秒数。接下来的10位代表计算机ID,防止冲突。其余12位代表每台机器上生成ID的序列号,这允许在同一毫秒内创建多个SnowflakeID。
  面试OPPOJava后端被问麻了16。所有异常的共同的祖先是?运行时异常有哪几个?
  面试OPPOJava后端被问麻了
  Java异常的顶层父类是Throwable,它生了两个儿子,大儿子叫Error,二儿子叫Exception。Error:是程序法处理的错误,一般表示系统错误,例如虚拟机相关的错误OutOfMemoryErrorException:程序本身可以处理的异常。它可以分为RuntimeException(运行时异常)和CheckedException(可检查的异常)。
  什么是RuntimeException(运行时异常)?
  运行时异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。
  常见的RuntimeException异常:NullPointerException:空指针异常ArithmeticException:出现异常的运算条件时,抛出此异常IndexOutOfBoundsException:数组索引越界异常ClassNotFoundException:找不到类异常IllegalArgumentException(非法参数异常)
  什么是CheckedException(可检查的异常)?
  从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等。
  常见的CheckedException异常:IOException:(操作输入流和输出流时可能出现的异常)SQLException

我的爸爸妈妈是我的第一任老师作文导语:不管是我的妈妈还是我的爸爸,他们都是我的好父母,好家长,和我最崇拜的偶像!下面是小编给大家带来我的爸爸妈妈是我的第一任老师作文,欢迎阅读,希望对你有所帮助!在家里妈……养老金7月底前调整发放到位,这6类人能多涨钱!希望有你随着5月底人社部公布了2022年的养老金调整方案,今年退休人员的养老金调整正式拉开了大幕。总体上,今年的养老金调整水平和之前预估的一样有所下降,只有4的水平,达到了这18……生命忠告作文700字生命是什么?生命是渺小的,就像大海里的一滴滴水,小得让人不屑一顾;生命又像沙漠中的一粒粒黄沙,小得让人视而不见。可生命又是伟大的,像一颗颗璀灿的夜明灯、像一枚枚闪亮的珍珠……爸爸生病了五年级作文500字上个星期五下午,爸爸突然肚子痛。我和妈妈不知道是怎么一回事,就陪爸爸去医院检查。医生看了一会儿,又问了爸爸一些问题就说:先吊几瓶盐水看看,如果不见好转的话,那就要住院检查……北京汽车魔方新一代动力BUFF,都在这台发动机北京汽车魔其象征智慧、灵活、进化搭载华为智能座舱,车机如手机般好用上车后,先把手机放支架上,已经成了很多人的习惯,但北京汽车魔方的出现,将让手机支架彻底没有用武之地……92号汽油首破10元,国内油价迎9连涨,新能源崛起势在必行这几天一个重磅消息走红全网,国内油价迎来了9连涨,92号汽油首次突破了10元大关,让很多燃油车车主苦不堪言,日常用车的成本大大提升,因而为新能源崛起埋下了伏笔,那么国内油价为什……说到做到不容易作文400字大家应该都跟别人保证过一定要说到做到吧?请问,说到做到容易吗?其实,想必大家都亲身体验过吧,我也体验过,说到做到基本上都是看似简单,做起来难的事情。三年级上学期,我是班上……新能源领域中这种材料太关键了!如何制备?就在今晚1900有机物在隔绝空气的条件下加热分解聚合成炭的过程称为炭化,依照有机物的来源形态分为:气相炭化、液相炭化和固相炭化。气相炭化在约1000的化学气相沉积时,在石墨基体上可制备热……幸福团圆夜学生作文幸福生活,在每个人心中定义都不一样。在我心中,幸福生活可以是坐在沙发上静静地享受好茶;也可以是早晨一起床就可以品尝到母亲做的爱心早餐;还可以是一家人坐在一起吃热腾腾的团圆饭。……校园的桂花作文300字一走进校园,我便闻到浓浓的桂花香。下面小编为您推荐校园的桂花作文300字,欢迎借鉴。校园的桂花作文300字(一)清晨,我背着书包去上学,刚走进校园,一股清香扑鼻而来……2022年为何不推荐买128GB手机?听完懂行人的分析,不再导读:2022年为何不推荐买128GB手机?听完懂行人的分析,不再纠结了!随着手机快速发展,现如今整个智能手机区域进入了饱和期间,然而因疫情及其它因素影响下,目前全球智能……麒麟990华为5G4200mAh,降至1576元,大家想要的说起华为手机,很多网友都感到特别遗憾,原本有机会在今年超越三星,成为全球手机出货量第一,然而因为被断货,遭到前所未有的打击,导致手机业务举步维艰,出货量从全球第二、中国第一,掉……
CBA三消息胡明轩有新身份,NBL曝周琦新决定,姚明双喜临门众所周知,目前CBA的各大球队好消息不断,而且让不少球迷都非常关注的。接下来和大家分享一下,CBA发生的三个非常值得关注的消息。首先第1个消息,和大家分享一下胡明轩最近曝……雅典奥运会,如果王励勤半决赛战胜王皓,柳承敏还能不能夺冠?时至今日,很多球迷在提到雅典奥运会的时候,依然会对那场男单决赛耿耿于怀!当时打进男单决赛的是中国年轻小将王皓,和王皓隔网相对的是比王皓大一岁的韩国年轻选手柳承敏。经……最新!中石油人事变动,多位高层辞职哈喽大家好我是经燕化工小燕子〔灵光一闪〕燕子了解到,中国石油6月9日晚间发布公告称吕波先生因工作变动原因,已向公司提出辞呈,辞任其公司股东代表监事职务,该等辞任即日生效。……梦华录为什么那么好看《梦华录》好看吗?这个答案无疑是肯定的。有刘亦菲20年如一日的盛世美颜,陈晓俊朗的古装扮相,梦华录这波已经赢麻了《梦华录》还没开播前,刘亦菲披着麻袋的图先火了……全新CarPlay发布,苹果汽车这回真有雏形了?众所周知,iPhone在全球手机市场中的占有率一直高居不下,尤其在iPhone12系列全面支持5G后,苹果手机在市场上的份额再度提升。据2022年一季度统计数据显示,在国内,由……苹果只花了3分钟介绍的CarPlay,能否颠覆新势力们?界面样式更丰富了、车内所有屏幕都能被映射显示了、能获取车辆信息并进行控制了,这就是苹果在WWDC22苹果开发者大会上讲述关于全新CarPlay的主要变化。留给介绍CarP……骁龙8Gen2也提前了!已有两款新机敲定年底发如果你非常关注手机行业的发展,就会发现今年下半年的旗舰芯片骁龙8来的比往年都早一些,那么顺应的,新的旗舰机发的也会提前,据最新的爆料信息显示,在今年年底的时候,将会至少有两款搭……新零售电商支付平台的搭建编辑导语:随着电商行业的发展,每个电商企业都会自建业务系统,其中支付是必不可少的一个环节,本文将讲述如何构建一个新零售电商的支付平台。以及支付平台的业务边界以及各业务模块的交互……股价翻倍债券翻两倍小康股份,汽车股的反弹龙头?2022年即将过半,端午节后第一个交易日A股以新能源汽车为代表的赛道股终于回了一口老血。今天开盘,在小长假关于汽车下乡、减免购置税等利好消息的刺激下,汽车股首当其冲高开,……他,险因骨癌截肢,20岁荣膺欧洲金童,却在做驸马后自毁前程曾经年少爱追梦,一心只想往前飞,行遍千山和万水,付出的爱收不回,那年夏天,我们被24秒的灵光乍现所深深折服,圣西罗的方向,永远留有他标志性的灿烂笑容,因为足球的传承,才让我们铭……女排排名中国队第2晋级日本队狂轰五个30两队大概率决赛相遇2022年第14届U18女排亚锦赛小组赛B组,中国女排国少队对阵哈萨克斯坦队,最终,中国队30轻松击败对手。本场之前,日本队30击败了菲律宾队,小组赛5场全胜,拿到了小组……巴阿明争暗斗又一年!梅西夺两冠,内马尔两度嘲讽,50人大打出在阿根廷赢得欧美杯之后,内马尔公开出言讥讽,再一次展示了巴西、阿根廷这对南美宿敌之间的恩怨情仇,而这也是两支球队一年前明争暗斗的缩影。阿根廷夺冠,内马尔落泪在长达2……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网