常见面试题

1.stringbuffer和stringbuilder的区别,stringbuffer是通过什么实现线程安全的?

StringBufferStringBuilder 都是用于处理可变字符串的类,但它们的主要区别在于 线程安全性

StringBuffer 的线程安全是通过方法加锁(synchronized)来实现的。

具体来说,它的大多数方法(如 append()insert()delete() 等)都使用了 synchronized 关键字。

  1. 跨域问题解决

跨域问题(CORS) 是前后端分离架构中最常见的问题之一,主要是浏览器的同源策略导致前端无法直接请求不同源(域名、端口或协议不同)的后端接口。

方式一:使用 @CrossOrigin 注解

方式二:全局跨域配置(推荐企业项目)

创建一个配置类,注册全局 CORS 策略:

java 复制代码
@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**") // 所有路径
                .allowedOriginPatterns("*") // 允许所有源(或填写前端地址)
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .allowCredentials(true) // 允许携带 cookie
                .maxAge(3600); // 预检请求缓存时间(秒)
    }
}

方式三:Nginx 添加 CORS 跨域响应头。

相关推荐
m0_480502647 分钟前
Rust 入门 泛型和特征-特征对象 (十四)
开发语言·后端·rust
瓦特what?37 分钟前
关于C++的#include的超超超详细讲解
java·开发语言·数据结构·c++·算法·信息可视化·数据挖掘
祁同伟.1 小时前
【C++】动态内存管理
开发语言·c++
是乐谷1 小时前
阿里云杭州 AI 产品法务岗位信息分享(2025 年 8 月)
java·人工智能·阿里云·面试·职场和发展·机器人·云计算
一只鲲1 小时前
40 C++ STL模板库9-容器2-vector
开发语言·c++
励志不掉头发的内向程序员2 小时前
C++基础——内存管理
开发语言·c++
Java水解2 小时前
Java中的四种引用类型详解:强引用、软引用、弱引用和虚引用
java·后端
lifallen2 小时前
JCTools 无锁并发队列基础:ConcurrentCircularArrayQueue
java·开发语言·数据结构·算法
一叶飘零_sweeeet2 小时前
IDEA 插件 Trae AI 全攻略
java·人工智能·intellij-idea
千里镜宵烛2 小时前
深入理解 Linux 线程:从概念到虚拟地址空间的全面解析
开发语言·c++·操作系统·线程