【1】快手面试题整理

[1]. 说说int和Integer的区别

int是Java中的基本数据类型,用于存储整数值。它直接在栈内存中存储数值,默认值是0,并且不能为null,本身不带方法。

Integer是int的包装类,属于引用类型。它在堆内存中存储一个对象,该对象包含一个int值。Integer可以为null,并且提供了很多方法,例如parseInt、compareTo和toString等。

[2]. 如何保证Kafka只消费一次?

Kafka默认提供‘至少一次’的语义,这意味着消息可能会被重复消费。

在分布式系统中,实现精确的‘只消费一次’比较困难。要解决这个问题,通常会结合以下方案:

首先是幂等消费,确保消息被多次消费与只消费一次的效果是一样的,例如可以通过数据库的唯一索引或者状态检查实现。

其次是手动提交偏移量,关闭自动提交,在成功处理消息后才提交偏移量,通常和幂等性一起使用。

最后,Kafka本身也提供了事务功能,可以在Producer和Consumer端保证消息操作的原子性。

[3]. JVM内存如何分配?什么时候新生代GC,什么时候老年代GC?

JVM的内存主要分为方法区虚拟机栈本地方法栈程序计数器。其中,堆是对象实例的主要存储区域,它被划分为新生代和老年代。

新生代又细分为Eden区和From Survivor和To Survivor两个Survivor区。
当使用new创建对象时,JVM会首先尝试在Eden区分配内存。当Eden区满时,会触发新生代GC,也叫Minor GC。Minor GC会把Eden区和From Survivor区中存活的对象复制到To Survivor区,同时存活对象的年龄会加1。之后清空Eden区和From Survivor区,然后From Survivor和To Survivor的角色会互换。

老年代空间不足、或者新生代GC后存活的对象需要晋升到老年代但老年代空间不足,或者方法区空间不足时,会触发老年代GC(也叫Major GC或者Full GC)。

[4]. 手撕:合并两个有序数组。

public class MergeSortedArray {public static void merge(int[] nums1, int m, int[] nums2, int n) {int i = m - 1; // 指向 nums1 的末尾int j = n - 1; // 指向 nums2 的末尾int k = m + n - 1; // 指向 nums1 合并后的末尾while (i >= 0 && j >= 0) {if (nums1[i] > nums2[j]) {nums1[k] = nums1[i];i--;} else {nums1[k] = nums2[j];j--;}k--;}// 如果 nums2 还有剩余元素,则直接复制到 nums1 前面while (j >= 0) {nums1[k] = nums2[j];j--;k--;}}}

[5]. 手撕:二叉树后序遍历(非递归)

import java.util.ArrayList;
import java.util.List;
import java.util.Stack;public class PostorderTraversal {static class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int val) {this.val = val;this.left = null;this.right = null;}}public static List<Integer> postorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();if (root == null) {return result;}Stack<TreeNode> stack = new Stack<>();TreeNode prev = null; // 记录上次访问的节点TreeNode current = root;while (current != null || !stack.isEmpty()) {// 1. 遍历左子树while (current != null) {stack.push(current);current = current.left;}// 2. 访问右子树current = stack.peek(); // 取栈顶元素if (current.right == null || current.right == prev) {// 2.1 没有右子树或者右子树已经访问过,访问当前节点result.add(current.val);stack.pop();prev = current;current = null; // 避免重复访问左子树} else {// 2.2 右子树还没有访问过current = current.right;}}return result;}}

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

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

相关文章

Vue指令v-on

目录 一、Vue中的v-on指令是什么&#xff1f;二、v-on指令的简写三、v-on指令的使用 一、Vue中的v-on指令是什么&#xff1f; v-on指令的作用是&#xff1a;为元素绑定事件。 二、v-on指令的简写 “v-on&#xff1a;“指令可以简写为”” 三、v-on指令的使用 1、v-on指令绑…

javaEE-8.JVM(八股文系列)

目录 一.简介 二.JVM中的内存划分 JVM的内存划分图: 堆区:​编辑 栈区:​编辑 程序计数器&#xff1a;​编辑 元数据区&#xff1a;​编辑 经典笔试题&#xff1a; 三,JVM的类加载机制 1.加载: 2.验证: 3.准备: 4.解析: 5.初始化: 双亲委派模型 概念: JVM的类加…

物业管理系统源码提升社区智能化管理效率与用户体验

内容概要 物业管理系统源码是一种针对社区管理需求而设计的软件解决方案&#xff0c;通过先进的智能化技术&#xff0c;使物业管理变得更加高效和人性化。随着城市化进程的加快&#xff0c;社区的管理复杂性不断增加&#xff0c;而这一系统的推出恰好为物业公司提供了极大的便…

读算法简史:从美索不达米亚到人工智能时代05天气预报

1. 天气预报 1.1. 自古以来&#xff0c;生命就与变幻莫测的天气息息相关 1.1.1. 在很多情况下&#xff0c;只要能提前一天得知天气情况&#xff0c;人类就可以避免灭顶之灾 1.1.2. 公元前2000年&#xff0c;准确预测天气是众神的特权 1.2. 大约在公元前650年&#xff0c;巴…

整形的存储形式和浮点型在计算机中的存储形式

在计算机科学的底层世界里&#xff0c;数据存储是基石般的存在。不同数据类型&#xff0c;如整形与浮点型&#xff0c;其存储方式犹如独特的密码&#xff0c;隐藏着计算机高效运行的秘密。理解它们&#xff0c;是深入掌握编程与计算机原理的关键。 一、整形的存储形式 原码、反…

Python网络自动化运维---批量登录设备

文章目录 目录 文章目录 前言 实验准备 一.批量登录 IP 连续的设备 1.1.1 实验代码 1.1.2 代码分段分解 1.1.3 实验结果验证 二.批量登录 IP 不连续的设备 2.2.1 实验代码 2.2.2 代码分段分解 2.2.3 实验结果验证 前言 在生产环境中&#xff0c;我们通常需要登录多个设备…

selenium记录Spiderbuf例题C03

防止自己遗忘&#xff0c;故作此为记录。 鸢尾花数据集(Iris Dataset) 这道题牵扯到JS动态加载。 步骤&#xff1a; &#xff08;1&#xff09;进入例题&#xff0c;需要找到按钮规律。 flip_xpath: str r"//li/a[onclickgetIrisData({});]" &#xff08;2&…

【C++篇】位图与布隆过滤器

目录 一&#xff0c;位图 1.1&#xff0c;位图的概念 1.2&#xff0c;位图的设计与实现 1.5&#xff0c;位图的应用举例 1.4&#xff0c;位图常用应用场景 二&#xff0c;布隆过滤器 2.1&#xff0c;定义&#xff1a; 2.2&#xff0c;布隆过滤器的实现 2.3&#xff0c; 应…

基于SpringBoot的新闻资讯系统的设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

Spring Boot 2 快速教程:WebFlux处理流程(五)

WebFlux请求处理流程 下面是spring mvc的请求处理流程 具体步骤&#xff1a; 第一步&#xff1a;发起请求到前端控制器(DispatcherServlet) 第二步&#xff1a;前端控制器请求HandlerMapping查找 Handler &#xff08;可以根据xml配置、注解进行查找&#xff09; 匹配条件包括…

C基础寒假练习(2)

一、输出3-100以内的完美数&#xff0c;(完美数&#xff1a;因子和(因子不包含自身)数本身 #include <stdio.h>// 函数声明 int isPerfectNumber(int num);int main() {printf("3-100以内的完美数有:\n");for (int i 3; i < 100; i){if (isPerfectNumber…

react-bn-面试

1.主要内容 工作台待办 实现思路&#xff1a; 1&#xff0c;待办list由后端返回&#xff0c;固定需要的字段有id(查详细)、type(本条待办的类型)&#xff0c;还可能需要时间&#xff0c;状态等 2&#xff0c;一个集中处理待办中转路由页&#xff0c;所有待办都跳转到这个页面…

GRN前沿:利用DigNet从scRNA-seq数据中生成基于扩散的基因调控网络

1.论文原名&#xff1a;Diffusion-based generation of gene regulatory network from scRNA-seq data with DigNet 2.出版时间&#xff1a;2024.12.18 3.doi: 10.1101/gr.279551.124 摘要&#xff1a; 基因调控网络&#xff08;GRN&#xff09;在细胞内基因的身份和功能之间…

AnswerRocket:通过 AI 辅助简化分析

AnswerRocket是一家专注于人工智能驱动数据分析和商业智能的领先企业&#xff0c;其核心产品是一款增强型分析平台&#xff0c;旨在通过自然语言处理&#xff08;NLP&#xff09;、机器学习&#xff08;ML&#xff09;和生成式AI技术&#xff0c;简化复杂数据的分析过程&#x…

小程序设计和开发:如何研究同类型小程序的优点和不足。

一、确定研究目标和范围 明确研究目的 在开始研究同类型小程序之前&#xff0c;首先需要明确研究的目的。是为了改进自己的小程序设计和开发&#xff0c;还是为了了解市场趋势和用户需求&#xff1f;不同的研究目的会影响研究的方法和重点。例如&#xff0c;如果研究目的是为了…

我的AI工具箱Tauri版-ZoomImageSDXL全图超清放大TILE+SDXL

本教程基于自研的AI工具箱Tauri版进行ComfyUI工作流ZoomImageSDXL全图超清放大TILESDXL。 ZoomImageSDXL全图超清放大TILESDXL 借助ControlNet的Tile技术与SDXL大模型&#xff0c;该工具能够在放大图像的同时&#xff0c;精准还原细节和纹理&#xff0c;确保输出效果既清晰锐利…

Java设计模式:行为型模式→状态模式

Java 状态模式详解 1. 定义 状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许对象在内部状态改变时改变其行为。状态模式通过将状态需要的行为封装在不同的状态类中&#xff0c;实现对象行为的动态改变。该模式的核心思想是分离不同状态…

蓝桥与力扣刷题(234 回文链表)

题目&#xff1a;给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true示例 2&#xff1a; 输入&…

【面经】字节南京一面部分题目记录

南京字节一面题&#xff0c;可能因为项目不太匹配&#xff0c;全程八股比较多&#xff0c;也有两道手撕代码题&#xff0c;强度还是有的。为了方便大家学习&#xff0c;大部分答案由GPT整理&#xff0c;有些题给出了我认为回答比较好的博客链接。 文章目录 一、python2 和 pyth…

【C语言篇】“三子棋”

一、游戏介绍 三子棋&#xff0c;英文名为 Tic - Tac - Toe&#xff0c;是一款简单而经典的棋类游戏。游戏在一个 33 的棋盘上进行&#xff0c;两名玩家轮流在棋盘的空位上放置自己的棋子&#xff08;通常用 * 和 # 表示&#xff09;&#xff0c;率先在横、竖或斜方向上连成三个…