用友Java一面面经

  1. 自我介绍:面试一开始,面试官让我做了一个简短的自我介绍,主要介绍了我的教育背景和相关项目经验。
  2. 研究生期间的研究内容:接着,面试官询问了我在研究生期间的研究方向和具体内容。
  3. 算法问题:面试官给出了一个花坛问题,具体是输入flowers=1,0,1,0,1,0和n=2,要求判断能否在不相邻的情况下插入n朵花。
  4. 项目经验:这一部分持续了大约30分钟,面试官详细询问了我在项目中遇到的几个问题:

  • ThreadLocal多线程下数据混淆的问题:问我ThreadLocal在哪里赋值,在哪里销毁,我回答是在拦截器中。
  • OOM问题:是否遇到过OOM问题,如何解决和分析。
  • Maven依赖管理:如何管理微服务中的父子依赖,父依赖在子依赖中是否需要全部加载。

  1. 基础知识:最后的10分钟,面试官考察了一些基础知识:

  • JVM内存模型
  • 线程池原理
  • MySQL索引:包括联合索引ABC,使用BAC能否走索引,面试官纠正说能走,因为MySQL能进行优化;索引如何优化;索引失效的场景。

总结:在算法题部分,由于时间紧张,我没能完全写完代码,有点遗憾。项目问题回答得还算中规中矩,面试官在我回答不对的地方也进行了引导。

全部评论

相关推荐

1、接口除了public 和 abstract ?还可以用什么?可以用static修饰接口方法嘛?从 Java 8 开始,接口可以包含默认方法(default)和静态方法(static)。protected :在接口中不能使用 protected 修饰符。原因: 接口的目的是提供公共 API,而 protected 只能被同一包中的类或子类访问,这与接口的设计理念相悖。因此,接口中的方法和字段只能是 public 或默认(包私有)。private:从 Java 9 开始,你可以在接口中使用 private 修饰符。用途: private 方法可以用于接口内部的辅助方法,主要是为了减少代码重复和提高代码的封装性。这些 private 方法不能被实现类访问。2、public class Go {    public static void main(String[] args) {        Integer i = 0;        test(i);        System.out.println(i);    }    public static void test(Integer i){        i++;    }}输出0,因为i是不可变类型,而不是因为缓存机制。原理和String一样3、springboot环境中,在初始化阶段,static修饰的常量通过配置文件进行赋值应该怎么做?使用 @PostConstruct 和静态代码块虽然静态变量不能直接被 Spring 注入,但可以通过一个静态方法在类被加载时执行初始化逻辑@Configurationpublic class MyConstants {    public static String MY_CONSTANT;    @Value("${my.constant}")    private String myConstant;    @PostConstruct    public void init() {        MY_CONSTANT = myConstant; // 在初始化阶段赋值给静态变量    }}4、布隆过滤器的路由转发怎么做?API 网关 or 服务发现机制(如 Consul、Eureka 或 Zookeeper)来动态发现存在的服务使用 API 网关作为所有请求的入口,网关可以根据请求类型路由到不同的服务。
查看3道真题和解析
点赞 评论 收藏
分享
4 7 评论
分享
牛客网
牛客企业服务