面试打底稿① 专业技能的第一部分

简历原文

抽查部分

模拟问答

1.你们项目是如何进行JVM调优的?

首先,我们加上-Xms和-Xmx参数,并设置两个参数为一样大小,这是基本调优的操作;

进阶调优则是用jstat -gc、jstat -gcutil查看情况调优。

2.HashMap的底层原理是什么?

对于底层数据结构,采用的是哈希表。

哈希表在jdk1.8之前,哈希表是数组+链表;jdk1.8及之后,哈希表是数组+链表+红黑树。

存取原理:

首先根据键,计算哈希值。

根据哈希值,计算下标,存入数组。

数组中,如果该下标下链表为空,则直接存入;

如果链表不为空,则产生了哈希冲突,进一步判断哈希值是否相等。相等,则重复了,替代掉;

如果不相等,则存入链表后面。

取时,首先计算被取元素的哈希值,然后计算其在数组中的下标,在下标中的链表中找到相同哈希值的元素,即可取出。

在jdk1.8之前,解决哈希冲突时采用的是拉链法,即直接使用链表。

1.8之后,解决哈希冲突,用红黑树。如果链表长度大于8,则扩容为红黑树;如果长度小于了6,则又退化为链表。

3.(底线问题)Java的数据类型有哪些?

基本数据类型——四类八种

  1. 整数型 byte short int long

  2. 浮点型 float double

  3. 字符型 char

  4. 布尔型 boolean

引用数据类型

  1. String字符串

  2. 类(对象)

  3. 接口类型

  4. 数组类型

  5. 枚举类型

4.说一下你用过的Spring Boot核心注解

1.@ConditionalOnProperty

存在指定配置时,才加载类

2.@ComponentScan

开启扫描,扫描包下的@Component组件。

3.@SpringBootApplication

启动类的注解,包含3个注解,是自动配置的核心。

5.有没有自定义starter

有。是这样做的:

在自定义的项目中首先整理好pom文件,导入好spring的依赖以及其他依赖;

然后定义好自己的Configuration类和Properties类,以及可能的Utils类;

最后在resources目录下,新建文件META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports,里面写入自动配置类,就是之前的Configuration类的全名称,包括包名路径和类名,自动配置类就做好了。

6.讲一下你们AOP的应用场景

我们用aop来做鉴权。

猜你喜欢

转载自blog.csdn.net/m0_46948660/article/details/133281125