雪浪云实习一面面经
问的比较基础
1.抽象类和接口的区别?
1.定义与实现:抽象是一个类,可以有普通方法和抽象方法,抽象方法必须被子类实现。而接口是一组抽象方法的集合,所有方法都是抽象方法,没有具体实现。子类只能集成一个抽象类,但可以实现多个接口。
2.构造函数和变量:抽象类可以有构造函数和变量,而接口没有构造函数,只能定义常量
3.访问控制:抽象类方法可以是public、protected和default控制,而接口中方法默认是public
4.默认实现:抽象类可以有普通方法的默认实现,而接口中所有方法都没有默认实现
5.继承与实现:子类继承抽象类时必须实现其中的抽象方法,否则该子类也必须是抽象类;子类实现接口时必须实现其中所有方法(这个可以不答)
2.final关键字的作用?
1.修饰类:该类不能被继承,保护类的完整性
2.修饰方法:方法不能被重写,维护核心逻辑代码
3.修饰变量:一个变量被声明final时,该变量表示一个常量,必须在构造函数中进行初始化。
3.Java集合是数据结构的实现
Collection包含很多接口和类 如List、Set、Queue、Map等
1.添加元素
.add (Object o):插入元素
.addAll(~): 插入该集合里的所有元素
2.删除
.remove(Object o):删除
3.检查元素是否存在
.contains(Object o)
isEmpty()
4.获取元素数量
.size()
5.遍历元素:
使用迭代器
使用增强for循环(for-each loop)
6.获取元素:
get(int Index) 返回列表中指定位置上的元素,如List ArrayList
toArray(): 返回包含此集合中所有元素的数组
7.集合比较
.equals(Object o)比较集合和指定对象是否相等
.hashCode() 返回集合的哈希码值
8.排序
.Collections.sort() 对列表按照其自然顺序排列
9.查找
indexOf(Object o):查找首次出现该元素的位置
4.redis有哪几种数据类型
1.String、Hash、List、Set、Sorted Set
5.redis中如何添加元素
1.字符串使用 set 命令,如 SET mykey"myvalue"将键mykey的值设置为myvalue
2.哈希表 使用HSET命令来设置哈希表的字段和值。例如,HSET myhash field1 "value1"将哈希表myhash的field1字段的值设置为value1
3.列表 使用LPUSH或RPUSH,来在左侧或者右侧插入元素
4.集合使用SADD来向集合添加元素
(补充 List和set的区别) List是有序数据结构,可以重复存储元素。Set是无序数据结构,不允许存储重复元素
6.介绍下springboot启动注解
在Spring Boot中,@SpringBootApplication注解是一个复合注解,它包括了其他三个重要的注解:@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan。当你创建一个Spring Boot项目时,通常会有一个带有@SpringBootApplication注解的类,这个类通常被称为主类(Start类)或启动类。
除了@SpringBootApplication注解外,还有一些其他的注解和配置类在Spring Boot应用中可能会用到,但与“Start类”这一概念直接相关的主要是@SpringBootApplication。
下面简单介绍一下这些注解和配置类:
- :这是一个复合注解,它包括了、和。它通常被放在主类上,用于启动Spring Boot应用。
- :这个注解表明该类是一个Spring Boot的配置类,通常与一起使用,用于定义bean。
- :这个注解告诉Spring Boot根据你的类路径、属性设置、各种条件等来自动配置项目。
- :这个注解用于让Spring扫描当前包及其子包下的组件、配置和服务等,并将其加入到应用上下文中。
- :这是一个泛化的概念,用于表示一个组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
- :用于标注数据访问组件,即DAO组件。
- :用于标注业务层组件。
- 或 :用于标注控制层组件(如struts中的action)。是和的合体,表示该类中的所有方法都返回JSON数据。
7.SpringBoot的自动配置原理?
8.springcloud不同模块怎么保证事务的一致? 不会
9.有哪些索引?答的是聚集索引和非聚集索引,还有复合索引
10.怎么判断索引是否失效
还有好几个问题不记得了