常见面试题

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 跨域响应头。

相关推荐
满怀冰雪8 小时前
第04篇-双指针算法-从有序数组到回文判断的高频解法
java·算法
matlabgoodboy8 小时前
计算机java程序代写python代码编写c/c++代做qt设计php开发matlab
java·c语言·python
leo__5208 小时前
MATLAB实现牧羊人算法
开发语言·算法·matlab
视觉小萌新8 小时前
C++利用libmicrohttpd制作交互网页端——C1
java·c++·交互
Gauss松鼠会8 小时前
【GaussDB】GaussDB SMP特性调优详解
java·服务器·前端·数据库·sql·算法·gaussdb
格发许可优化管理系统9 小时前
Mentor许可证使用规定全解析
java·大数据·c语言·开发语言·c++
JAVA面经实录9179 小时前
Redis 知识体系(完整版)
java·redis·nosql数据库·nosql
武子康9 小时前
Java-21 深入浅出 MyBatis 手写ORM框架2 手写Resources、MappedStatment、XMLBuilder等
java·后端
FL16238631299 小时前
C# OpenCvSharp 基于霍夫变换直线检测的文本图像倾斜校正文本图像倾斜校
开发语言·c#
Full Stack Developme9 小时前
Java DFA算法
java·python·算法