1. 容器类:Java 的"Vector"在哪里?
在 Java 中,我们几乎不使用 Vector(它是线程安全的,但性能较差),我们用 集合框架 (Collections Framework)。
| C++ 容器 | Java 对应类 | 常用操作 |
|---|---|---|
std::vector |
ArrayList<T> |
list.add(e), list.get(index), list.size() |
std::map |
HashMap<K, V> |
map.put(key, value), map.get(key) |
std::set |
HashSet<T> |
set.add(e), set.contains(e) |
std::list |
LinkedList<T> |
链表实现,适合频繁插入删除 |
小贴士 :Java 集合只能存对象。如果你想存整数,要写 ArrayList<Integer> 而不是 int。
2. 如何处理前端传来的文件?
在 Spring Boot 中,文件被抽象为一个类:MultipartFile。
-
接收方式:在 Controller 的参数里直接写。
-
常用 API:
-
file.getOriginalFilename():获取原文件名。 -
file.getSize():获取大小。 -
file.transferTo(destFile):最核心,直接把文件保存到服务器磁盘。
-
3. 如何生成唯一 ID (UUID)?
Java 内置了工具类,一行代码搞定,不需要引入第三方库。
-
类名 :
java.util.UUID -
写法:
Java
String id = UUID.randomUUID().toString(); // 生成类似:550e8400-e29b-41d4-a716-446655440000 -
场景:给上传的图片重命名(防止文件名重复),或者生成临时的订单号。
4. 如何配置拦截器 (Interceptor)?
拦截器是 Spring MVC 的功能,用来在请求到达 Controller 之前做检查(比如检查 JWT)。
-
定义拦截器 :写一个类实现
HandlerInterceptor接口。 -
核心方法 :
preHandle。在这里写你的校验逻辑,返回true放行,返回false拦截。 -
注册拦截器 :写一个配置类实现
WebMvcConfigurer接口,在addInterceptors方法里添加刚才定义的拦截器。
5. 如何配置跨域请求 (CORS)?
跨域是浏览器的安全限制。后端只需要告诉浏览器:"我允许这个前端域名访问"。
-
简单方法 :在 Controller 类上加一个注解
@CrossOrigin。 -
全局配置 :同样是在
WebMvcConfigurer配置类里,重写addCorsMappings方法。Java
registry.addMapping("/**") // 所有接口 .allowedOrigins("http://localhost:5173") // 允许前端地址 .allowCredentials(true); // 允许携带 Cookie