java小总结

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)。

  1. 定义拦截器 :写一个类实现 HandlerInterceptor 接口。

  2. 核心方法preHandle。在这里写你的校验逻辑,返回 true 放行,返回 false 拦截。

  3. 注册拦截器 :写一个配置类实现 WebMvcConfigurer 接口,在 addInterceptors 方法里添加刚才定义的拦截器。


5. 如何配置跨域请求 (CORS)?

跨域是浏览器的安全限制。后端只需要告诉浏览器:"我允许这个前端域名访问"。

  • 简单方法 :在 Controller 类上加一个注解 @CrossOrigin

  • 全局配置 :同样是在 WebMvcConfigurer 配置类里,重写 addCorsMappings 方法。

    Java

    复制代码
    registry.addMapping("/**") // 所有接口
            .allowedOrigins("http://localhost:5173") // 允许前端地址
            .allowCredentials(true); // 允许携带 Cookie
相关推荐
虹科网络安全8 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje9 小时前
Java语法进阶
java·开发语言·jvm
rKWP8gKv79 小时前
Java微服务性能监控:Prometheus与Grafana集成方案
java·微服务·prometheus
老前端的功夫9 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_435287929 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
小江的记录本9 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
yaoxin52112310 小时前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python
极客先躯12 小时前
高级java每日一道面试题-2025年11月24日-容器与虚拟化题[Dockerj]-runc 的作用是什么?
java·oci 的命令行工具·最小可用·无守护进程·完全标准·创建容器的核心流程·runc 核心职责思维导图
用户606487671889612 小时前
AI 抢不走的技能:用 Claude API 构建自动化工作流实战
java
我命由我1234512 小时前
Kotlin 开发 - lateinit 关键字
android·java·开发语言·kotlin·android studio·android-studio·android runtime