java面试题1

答案不一定正确

1,用最少的内存,对手机号进行排序

如果前缀一样用int数组对后面的数字直接Arrays.sort()

原地排序,使用Arrays.sort()

基数排序(从个位数开始排序,一直到最高位):

2.@Qualifier注解的作用

解决多个bean的注入冲突,指定注入bean的名字(配合@Autowried)

public interface Service {
    void performService();
}

// 现在有两个服务都是基于用一个接口

@Service("serviceA")
public class ServiceA implements Service {
    @Override
    public void performService() {
        System.out.println("Service A");
    }
}

@Service("serviceB")
public class ServiceB implements Service {
    @Override
    public void performService() {
        System.out.println("Service B");
    }
}

在注入时需要用@Qualifier(name)来指定注入的bean

@Component
public class Client {

    private final Service service;

    @Autowired
    public Client(@Qualifier("serviceB") Service service) {
        this.service = service;
    }

    public void doWork() {
        service.performService();
    }
}

和@Primary的区别
优先注入: 当存在多个 Bean 实现了相同的接口或类时,可以使用 @Primary 注解来标记一个默认的 Bean。这样,当进行自动注入时,如果没有使用 @Qualifier 注解,Spring 会优先选择标记了 @Primary 的 Bean

@Service("serviceA")
@Primary
public class ServiceA implements Service {
    @Override
    public void performService() {
        System.out.println("Service A");
    }
}
这样子会默认注入serviceA

3.为什么会出现内存泄露,怎么排查的

内存泄露(oom):程序申请内存时没有可用内存供其使用

为什么会出现:

1.循环引用:程序中存在死循环或者产生重复的对象

2.静态集合:使用静态集合类存储对象没有在合适的时机进行清楚

3.内存泄露的第三方库:第三方库可能存在bug

4.长生命周期的对象持有短生命周期的引用,短生命周期的对象无法被回收

怎么排查:

1.使用jvm工具:如 jstatjmapVisualVM

2.生成堆转储文件: 当怀疑存在内存泄露时,可以通过 jmap 命令生成堆转储文件(heap dump)

4.websocket使用的协议

TCP

5.Spring的四个核心特性

图片来源:Spring面试题 | 小林coding (xiaolincoding.com)

6.什么是Spring

Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求

7.Redis的默认过期时间

默认是永不过期(不确定是不是这个意思)

8.Mybatisplus怎么做连表查询

1.使用xml配置sql语句

2.在mapper使用注解编写sql语句

9.easyexcel导出的步骤(不确定)

1.创建实体类,对应导出的字段

2.创建excel写入类

// 创建 ExcelWriterBuilder

ExcelWriterBuilder writerBuilder = EasyExcel.write(fileName, User.class);

// 配置写入 Excel 的工作表

ExcelWriter excelWriter = writerBuilder.build();

// 写入数据到 Excel excelWriter.write(data, EasyExcel.writerSheet("Sheet1").build());

// 关闭 ExcelWriter

excelWriter.finish();

3.调用导出方法

10.索引的工作流程(不确定是不是这个题目,不明白)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值