八股文(1)

1.什么叫做AOP?

Aop 面向切面编程,在不修改原有代码的情况下给方法统一加上而外的处理逻辑,和业务无关每个方法都要加,叫做横切逻辑

例如:接口限流,权限校验,同一异常处理,记录日志

2.为什么要使用包装类?

在java中有八个基本类型,但是他们不是类,而 List/Map/Set 都只能装对象,且泛型只支持包装类,需要表示null时就需要包装类

3.HashCode 和 equals

equals:用于判断两个对象的内容是否相等,默认比较地址,重写后比较内容。

hashCode:返回对象的哈希值,主要用于提高 HashMap、HashSet 的查找效率。

4.装箱/拆箱

装箱和拆箱是指,将基本数据类型和引用数据类型(包装类)互相转换的过程

5.封装继承多态(面向对象三大特性)

封装:将属性和行为(方法)结合起来,包装成类,隐藏对象内部的细节,只提供接口对外使用

继承:子类继承父类,获得父类的属性和方法

多态:对于父类的方法,子类可以进行方法重载或者重写

6.java 中只有值传递

对于基本数据类型,java是直接传递内容,对于引用数据类型,java 中传递的是对象的引用(指向该对象的指针)本质上操作的是同一个对象

7.什么叫做SpringMvc?

SpringMvc 是Spring框架提供的基于Mvc设计规范的,用来简化web开发,处理Http请求的Web框架

8.什么叫做泛型?

泛型是指,一个类,方法,变量,在定义时可以使用多种参数,在使用时再确定具体的参数类型

9.Object... values (可变参数)

Object... values 可以传一个或者多个参数,甚至是数组

Object\[\] values 只能传递数组

方法内部拿到的都是数组

10.redistemplate

(1)什么是RedisTemplate ?

RedisTemplate 是spring 封装好的 redis 工具类,是专门用来让 java 程序来操作 redis 数据库,使用redis存储的都是对象

java 复制代码
redisTemplate.opsForValue()   // 操作 String
redisTemplate.opsForList()    // 操作 List(你工具类里用的)
redisTemplate.opsForHash()    // 操作 Hash
redisTemplate.opsForSet()     // 操作 Set
redisTemplate.opsForZSet()    // 操作 ZSet

StringRedisTemplate 是RedisTemplate 的子类,专门用来存储字符串,在redis中显示不会出现乱码(key 和 value 都是String)

11.SpringBoot

SpringBoot 是一个用于简化Spring框架开发的脚手架,核心是起步依赖 和自动配置

什么叫做起步依赖?

只需导入

XML 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

就可以自动导入web开发所需的jar包,自动管理版本

什么叫做自动配置?

Springboot 自动配置好所需框架,无需手写xml配置文件

Spring启动类上有一个注解 @SpringBootApplication

它其实是三个注解合体

@EnableAutoConfiguration //这是自动配置的核心注解

@ComponentScan

@SpringBootConfiguration

这个注解的作用是让 SpringBoot 自动扫描以下文件

XML 复制代码
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

文件中写死了所有自动配置类,然后加载这些配置类,创建bean 放入容器

相关推荐
Wang's Blog17 小时前
Java 项目实战: 交友项目 - 黑名单:取消黑名单
java·windows·交友
Pin_Qing17 小时前
账单没超,请求先被拒了
大数据·开发语言·人工智能
2601_9628857217 小时前
如何用 Python 计算 VaR 和 CVaR(在险价值)?
开发语言·python
杨杨杨大侠17 小时前
DeepSeek Harness:连 Agent Loop 都能替换的插件架构
java·人工智能·agent
SL_staff17 小时前
私有化低代码运维三重雷区:JVS开源栈中的Kafka/ES/RabbitMQ治理实践
java·低代码·全栈
yuniko-n17 小时前
【算法】约瑟夫环问题
java·算法
郝亚军18 小时前
manifest 中 `sha256` 与 `signValue` 的作用
java·开发语言·数据结构
譕痕18 小时前
stripe 实例
java·开发语言·stripe·checksession
墨子夕18 小时前
设计模式——Java × Python 双语言精讲 · 23 个经典模式 + 现代演进(前言篇)
java·开发语言·设计模式
骇客野人18 小时前
Linux 全套实操方案(含目录详解、文件传输、日志、文件规范、环境变量、Java 应用部署运维)
java·linux·运维