拿来吧你!六十题初级开发刷真题答案(13-18)

Posted XiaoLin__Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拿来吧你!六十题初级开发刷真题答案(13-18)相关的知识,希望对你有一定的参考价值。

🍕前言

失踪人口终于更新了答案,我保证会更新完毕的!想直接看题目的小伙伴可以来这个传送门:应粉丝要求,请假一周,面了9家深圳非外包初级开发,只为刷一刷真题(文末有福利)

🍟答案汇总

🌈Spring的常用注解有哪些

🌊思路

二话不说,就是为了考验你是否有真实开发经验,拿下!我们只需说一些常用的注解和他们的意义即可

🎉答案

  1. @SpringBootApplication:这个注解是Spring Boot最核心的注解,用在 Spring Boot的主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。实际上这个注解是@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解的组合。由于这些注解一般都是一起使用,所以Spring Boot提供了这个统一的注解。

  2. @Component:泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类,把普通pojo实例化到spring容器中。

  3. @Autowired:在Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。

  4. @Bean:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。SpringIOC 容器管理一个或者多个bean,这些bean都需要在@Configuration注解下进行创建,在一个方法上使用@Bean注解就表明这个方法需要交给Spring进行管理。

  5. @Value :@Value的作用是通过注解将常量、配置文件中的值、其他bean的属性值注入到变量中,作为变量的初始值。

🌈mysql的事务你说一下对他的理解,他有几种隔离级别

🌊思路

这道题有点难,讲真一句,被问到的时候我愣了一下,有点难,但是仔细回过神想想,我们首先要拆分面试官的问题,事务、隔离级别,其实就不难!我们首先讲一下啥是事务,然后说一下事务的特性,最后再说隔离级别,满分!

答案

事务就是数据库中的事务是指对数据库执行一批操作,这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功的情况。他有ACID四个特性。
因为事务的并发问题会导致的问题:脏读、幻读、不可重复读。他有四种隔离级别:

  1. 读未提交(READ UMCOMMITTED): 对方的事务还没有提交,我们当前事务可以读取到对方未提交的数据。这种隔离级别是最低的,读为未提交存在脏读现象,表示堵到了脏数据。
  2. 读已提交(READ COMMITTED):对方事务提交之后的数据我们才可以读到,这种隔离级别解决了脏读现象,但是却出现了不可重复读现象。这个级别是oracle的默认隔离级别。
  3. 可重复读(REPEATABLE READ) MySQL默认:我们无法看到已提交的事务了,这种隔离级别虽然解决了不可重复读的问题,但是却带来了幻读的问题。比方说一个线程删除了数据库中的所有数据,但是我们依然读取的是原来的数据,读到的是数据库的备份。
  4. 串行化(SERIALIZABLE):将一个事务与其他事务完全地隔离。两个事务不可以并发,线程之间需要排队,也叫作序列化。虽然很安全,但是性能很低且客户的体验不好。

🌈Spring的AOP用过吗,一般用它来做做啥,你怎么实现的。

🌊思路

Spring的AOP可以说是一个很重要的东西,面试官对于他的考察也无可厚非。其实AOP我们常做的就是做一些像日志打印、SQL拦截输出。

🎉答案

我们以打印日志为例:

  1. 前期准备,设计日志表和日志类,编写日志Dao和Service以及实现
  2. 自定义注解,注解中加入几个属性,属性可以标识操作的类型(方法是做什么的)
  3. 编写切面,切点表达式使用上面的注解直接定位到使用注解的方法,
  4. 编写通知,通过定位到方法,获取上面的注解以及注解的属性,然后从session中直接获取或者从数据库获取当前登录用户的信息,最后根据业务处理一些日志信息之后调用日志Service存储日志。

🌈不可重复读和幻读的区别

🌊思路

不多说,送分题,八股文理解背住满分

🎉答案

  • 不可重复读:是同一条记录(一条数据)的内容被其他事物修改了,关注的是update、delete操作一条数据的操作.
  • 幻读:是查询某个范围(多条数据)的数据行变多或变少了,在于insert、delete的操作。

🌈你们项目为什么用MyBatis-Plus,不用MyBatis

🌊思路

其实这道题我听上去觉得好简单,MyBatis-Plus简单啊为啥!送分题

🎉答案

因为在一些基础的CRUD功能中,我们无需写太多重复的代码,直接使用MyBatis的加强版即可。

🌈抽象和继承的区别(你不会连这个都不知道把)

🌊思路

问这个问题的是一家做底层的公司,是Linux内核优化和改造的,他问的问题很有深度和广度,很值得学习!

🎉答案

  1. 中所有的方法隐含的都是抽象的,但是抽象类中可以同时包含抽象方法和普通方法以及静态常量
  2. 类可以实现很多个接口,但是只能继承一个抽象类
  3. 类如果要实现一个接口,那么他必须要实现接口声明的所有方法,但是类可以不实现抽象类中的所有方法,但是这个类必须是抽象类
  4. 接口中不存在构造方法,因为接口的成员变量都是static final变量,是在编译的时候就完成了初始化操作了,无需通过构造方法来进行初始化操作,而抽象类必须有构造方法
  5. A类继承了B抽象类表示它“是什么”!A类实现了C接口表示它“有什么功能”!

以上是关于拿来吧你!六十题初级开发刷真题答案(13-18)的主要内容,如果未能解决你的问题,请参考以下文章

来了来了他来了!六十题初级开发刷真题答案(1-6)

《每日一题》之第六十题考查知识点:指派问题动态规划问题(题源自上海海事大学09年真题第五大题)(图一为昨天题目答案)

leetcode 简单 第六十题 反转链表

刷完这套阿里面试真题,大厂 offer 拿来吧你

第六十题(在O时间内删除链表结点)

IP地址公开课PPT+课堂任务小程序+手写教案,拿来吧你!