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


    简历原文

    抽查部分

    模拟问答

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

    首先,我们加上-Xms和-Xmx参数,并设置两个参数为一样大小,都为服务器内存GB总数一半再减1,这是基本调优的操作;

    然后对于JDK1.8,可以把并行垃圾收集器改为并发垃圾收集器。

    进阶调优则是用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来做鉴权。如果登入者有相应的角色关键字,则放行;否则拦截功能的调用。

    我们还用aop来做公共字段填充。数据库中有很多公共字段,比如新建人、新建时间、更新人、更新时间等。这些都可以用aop做填充,简化代码流程,使代码更优美。

    具体来说,实现流程如下:

    1.在annotation包下创建自定义注解,比如叫AutoFill

    2.用一个枚举类显示不同的填入状态,比如代表更新和新增的两种状态,并放入自定义注解中。

    3.在aspect包下自定义切面类

    4.完善切面类的自动填充逻辑,判断更新、新增两种状态,进行不同处理。

    5.在mapper中对应的方法上加自定义注解

  • 相关阅读:
    C选择结构程序设计
    阿里一面的那些Redis高频例题
    cdh3.6.2集成zeppelin0.10.1及简单使用
    水稻外源DNA导入机制 国稻种芯-章成君:基因融合又被证实
    java计算机毕业设计HTML5“牧经校园疫情防控网站”设计与实现源码+数据库+系统+lw文档
    【设计模式深度剖析】【5】【结构型】【桥接模式】| 以电视和遥控器为例加深理解
    Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4
    php代码执行完整流程介绍
    MetaMask-RPC API
    003 PythonTCP网络通信
  • 原文地址:https://blog.csdn.net/m0_46948660/article/details/133281125