河北建设机械协会网站,开发区网站建设工作职责,wordpress getvar,龙岗做网站的公司面试岗位为#xff1a;Java 后端开发实习生
面试时长#xff1a;60分钟
面试时间#xff1a;2023年11月14日
首先做一下简单的自我介绍吧面试官说先来说一下 Java 基础吧 多态了解吗#xff1f;#xff08;了解#xff0c;一个行为有不同的表现形式#xff09; 知道…面试岗位为Java 后端开发实习生
面试时长60分钟
面试时间2023年11月14日
首先做一下简单的自我介绍吧面试官说先来说一下 Java 基础吧 多态了解吗了解一个行为有不同的表现形式 知道编译时多态和运行时多态吗其实当时并不知道就给面试官说没了解过但是根据名字可以大概知道这两个东西是什么编译时多态就是在编译器就已经确定好了实现类的类型运行时多态是在运行时才可以确定实现类是哪个需要执行哪一个具体的行为 类加载机制了解吗类加载机制就是 Java 如何将 class 文件给加载到内存中Java 使用了双亲委派模型来加载 class 文件会通过将加载任务不断委托给父类加载器来执行 于是面试官发了一个代码问了一下我代码的输出是什么
我回答说输出是 1 2 4 25这里是说错了但是面试官一点一点在引导着我说你感觉还有什么问题吗我想了想虽然直到面试官在提示我但是还是看不出来哪里有问题面试官又进一步提示说如果你的答案中有一个是没有输出的那你觉得是哪一个呢之后我又重新分析了一下并且把分析的过程讲给了面试官之后说应该不会输出 4因为在加载到 Father 类时就已经拿到了 factor 静态变量此时就已经不需要去加载 Son 类了因此正确输出是 1 2 25
class Grandpa {static {System.out.println(1);}
}
class Father extends Grandpa {static {System.out.println(2);}public static int factor 25;public Father() {System.out.println(3);}
}class Son extends Father{static {System.out.println(4);}public Son() {System.out.println(5);}}
public class Main {public static void main(String[] args) {System.out.println(Son.factor);}
}Spring 是 Java 中常用的框架那么Spring 中用到了哪些设计模式呢在获取 bean 的时候使用到了单例模式其他的不清楚了你给我写一个单例模式的实现吧这里的单例模式其实问了很长时间因为单例模式我只记得双端检锁了这里让实现一个单例模式我只想起来了下边这一种实现方式单例模式问了很长时间是因为我一开始写错了将变量定义为成员变量在静态变量中访问成员变量了还好面试官问我你看看代码是不是有点问题我再看了看才发现有问题于是将成员变量改成静态变量但是没有添加 private 修饰符面试官又进一步问你这样静态变量的作用域是什么呢会不会被其他类修改呢于是又将 private 修饰符给添加上了这才写好下边这个单例模式/(ㄒoㄒ)/~~单例模式没复习到是真不应该呀 ku ~~
public class SingletonObj {private static Object instance;public static Object getInstance() {if(instance null) {instance new Object();}return intance;}
}之后开始让我介绍项目了让我挑一个项目进行介绍我就介绍了 API 网关项目这次把 processon 上的流程图给共享了对着流程图给面试官介绍介绍完之后面试官开始提问 API 网关和 Nginx 之间是什么样的关系呢是一对多的关系通过 Nginx 做负载均衡将请求路由到网关的多个模块 Nginx 使用了什么负载均衡算法呢使用的最少连接数算法 Nginx 中的负载均衡算法的原理你了解吗不了解这个没有看过 具体讲一下算法怎样实现的吧不了解怎么实现的我就只说了说我对这个最少连接数算法的理解通过监听每个应用的连接数量来将新的请求路由到连接数量最少的应用上去 我看你是使用 Redis 的 PUB/SUB 了那为什么要使用 PUB/SUB 呢我也不知道为啥使用我~~ 鉴权怎么鉴权了呢使用 jwt token 进行鉴权讲一下流程这里建议如果你在项目中使用到哪个小的组件一定要去了解他的原理是怎样的 了解其他的 API 网关鉴权策略吗