后端Java日常实习生面试(七牛云2023年11月14日)

面试岗位为:Java 后端开发实习生

面试时长:60分钟

面试时间:2023年11月14日

  1. 首先做一下简单的自我介绍吧
  2. 面试官说先来说一下 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;}
}
  1. 之后开始让我介绍项目了,让我挑一个项目进行介绍,我就介绍了 API 网关项目,这次把 processon 上的流程图给共享了,对着流程图给面试官介绍,介绍完之后,面试官开始提问
  • API 网关和 Nginx 之间是什么样的关系呢?(是一对多的关系,通过 Nginx 做负载均衡,将请求路由到网关的多个模块)

  • Nginx 使用了什么负载均衡算法呢?(使用的最少连接数算法)

  • Nginx 中的负载均衡算法的原理你了解吗?(不了解,这个没有看过)

  • 具体讲一下算法怎样实现的吧?(不了解怎么实现的,我就只说了说我对这个最少连接数算法的理解,通过监听每个应用的连接数量,来将新的请求路由到连接数量最少的应用上去)

  • 我看你是使用 Redis 的 PUB/SUB 了,那为什么要使用 PUB/SUB 呢?(我也不知道为啥使用,我~~)

  • 鉴权怎么鉴权了呢?(使用 jwt token 进行鉴权,讲一下流程,这里建议如果你在项目中使用到哪个小的组件,一定要去了解他的原理是怎样的)

  • 了解其他的 API 网关鉴权策略吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/184517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue diff 算法探秘:如何实现快速渲染

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

Spring第三课,Lombok工具包下载,对应图书管理系统列表和登录界面的后端代码,分层思想

目录 一、Lombok工具包下载 二、前后端互联的图书管理系统 规范 三、分层思想 三层架构: 1.表现层 2.业务逻辑层 3.数据层 一、Lombok工具包下载 这个工具包是为了做什么呢? 他是为了不去反复的设置setting and getting 而去产生的工具包 ⚠️工具…

为计算机设计一个完美的思维模型,帮找bug和漏洞,一起来做渗透测试吧 最赚钱的10种思维模型

芒格 如果我不能淘汰自己一年前的思维模型,这一年我就白过了。(终身学习,不断迭代自己。) 思维模型是什么,有哪些? 思维模型是用来简化和理解复杂现实世界的概念框架。它们是一种思考和解决问题的工具&a…

QT学习_16_制作软件安装包

1、准备软件exe及其运行环境 参考:Qt学习_12_一键生成安装包_江湖上都叫我秋博的博客-CSDN博客 这篇博客记录了,如何用window的脚本,一键生成一个可以免安装的软件压缩包,解压缩后,点击exe文件就可以直接运行。 这一…

国内如何访问github

1 购买一台美国硅谷的服务器 https://account.aliyun.com/login/login.htm?oauth_callbackhttps%3A%2F%2Fecs-buy.aliyun.com%2Fecs%3Fspm%3D5176.8789780.J_4267641240.2.721e45b559Ww1z%26accounttraceid%3Def6b6cc734bc49f896017a234071bfd9bctf 记得配置公网的ip&#xf…

AtCoder Beginner Contest 330 A~F

A.Counting Passes(暴力) 题意&#xff1a; 给定 n n n个学生的分数&#xff0c;以及及格分 x x x &#xff0c;问多少人及格了。 分析&#xff1a; 暴力枚举&#xff0c;依次判断每个学生的分数即可。 代码&#xff1a; #include <bits/stdc.h> using namespace s…

QT之QMediaPlayer的用法

QT之QMediaPlayer的用法 成员函数例程 成员函数 1)setMedia(const QMediaContent &media, QIODevice *stream nullptr) 设置要播放的媒体内容&#xff0c;其中参数media指定了媒体内容&#xff0c;stream参数指定了用于读取媒体的输入设备&#xff08;如文件流&#xff0…

超融合数据中心如何搭建?有哪些优势?

导语 随着全社会数字经济的发展&#xff0c;企业的数字化转型正加速推进。这其中&#xff0c;占据所有企业数量 99.8% 的中小企业&#xff0c;像是社会的毛细血管广泛遍布在各个领域&#xff0c;相对大企业对市场更敏感、决策更灵活。这些因素本应有利于数字化转型&#xff0c…

百科全书-疑惑解答

1.前端技术栈是如何一步步演变到现在vue/react等框架 答&#xff1a; 前端技术栈的演变经历了多个阶段&#xff0c;从最初的静态页面到动态交互的Web应用&#xff0c;再到现代的前端框架如Vue和React。以下是这个演变过程的一些关键节点&#xff1a; 静态页面阶段&#xff1…

Python Subprocess模块

Python的subprocess模块是一个强大的工具&#xff0c;它允许你在Python中执行外部命令&#xff0c;并与其进行交互 1. subprocess模块的基本用法 import subprocess result subprocess.run(["ls", "-l"], capture_outputTrue, textTrue) print(result.st…

Hadoop入门学习笔记

视频课程地址&#xff1a;https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接&#xff1a;https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 这里写目录标题 一、VMware准备Linux虚拟机1.1. VMware安装Linux虚拟机1.1.1. 修改虚拟机子网IP和网关1.1.2. 安装…

【智能家居】一、工厂模式实现继电器灯控制

一、用户手册对应的I/O 二、工厂模式实现继电器灯控制 三、代码段 controlDevice.h&#xff08;设备类&#xff09;main.c&#xff08;主函数&#xff09;bathroomLight.c&#xff08;浴室灯&#xff09;bedroomLight.c&#xff08;卧室灯&#xff09;bedroomLight.c&#xff…

python基础练习题库实验7

文章目录 题目1代码实验结果题目2代码实验结果题目3代码实验结果题目总结题目1 编写代码创建一个名为Staff的类和方法__init__,以按顺序初始化以下实例属性: -staff_number -first_name -last_name -email 代码 class Staff:def __init__(self, staff_number, first_name,…

【网络安全】下载并安装 kali 的虚拟机 版本

kali虚拟机版本的下载地址&#xff1a;Get Kali | Kali Linux 下载完成后&#xff0c;解压&#xff0c;双击.vmx打开&#xff0c;即可完成kali在虚拟机中的安装和配置。 默认账户和密码都为kali

Python爬取某电商平台商品数据及评论!

目录 前言 主要内容 1. 爬取商品列表数据 2. 爬取单个商品页面的数据 3. 爬取评论数据 4. 使用代理ip 总结 前言 随着互联网的发展&#xff0c;电商平台的出现让我们的消费更加便利&#xff0c;消费者可以在家里轻松地购买到各种商品。但有时候我们需要大量的商品数据进…

Vue3中的<script setup>和<script>的区别

相同点 在一个 Vue3 单文件组件 (SFC)中&#xff0c;<script setup> 和 <script> 它们各自最多只能存在一个。 不同点 <script setup> 这个脚本块将被预处理为组件的 setup() 函数&#xff0c;这意味着它将为每一个(也可以说每一次)组件实例都执行。 <…

数据库系统原理——备考计划2:数据库系统的概述

前言&#xff1a; 基于课本、上课ppt、复习总结ppt进行一个知识点的罗列&#xff0c;方便后期高效地复习 目录 前言&#xff1a; 一、基本概念 1.数据&#xff1a; &#xff08;1&#xff09;概念&#xff1a; &#xff08;2&#xff09;数据的种类&#xff1a; &#xff08;3&…

YOLOv5算法进阶改进(6)— 更换主干网络之ResNet18

前言:Hello大家好,我是小哥谈。ResNet18是ResNet系列中最简单的一个模型,由18个卷积层和全连接层组成,其中包含了多个残差块。该模型在ImageNet数据集上取得了很好的表现,成为了深度学习领域的经典模型之一。ResNet18的优点是可以解决深度神经网络中梯度消失的问题,使得性…

解决终Linux端中文乱码问题及设置UTF-8编码

简介 当在终端中复制粘贴中文文本时出现乱码问题&#xff0c;可能是因为终端未正确设置 UTF-8 编码。本文将介绍如何通过设置语言环境和字符类型环境&#xff0c;以及选择正确的语言包&#xff0c;来解决这一问题。 步骤&#xff1a; 1. 检查当前终端设置 在终端中运行以下…

深入理解网络阻塞 I/O:BIO

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…