面试
文章平均质量分 91
麦田里的守望者_zhg
如果有人碰到别人在穿越麦田,我一定会抓住他...
展开
-
程序员面试系列,kafka常见面试题
在Kafka中,主题(Topic)和分区(Partition)是两个核心概念,它们是组织和管理消息的基本单位。主题(Topic): 主题是Kafka中消息的逻辑分类或者话题。可以将主题理解为一个具有相同特性或相似目的的消息类别。比如,一个电子商务应用可以有主题如"订单创建"、“支付完成”、"库存更新"等。生产者将消息发布到指定的主题,而消费者则可以订阅一个或多个主题来接收其中的消息。主题的创建和配置可以在Kafka中进行,而不需要对应用代码进行更改。原创 2023-07-23 17:53:00 · 652 阅读 · 0 评论 -
程序员面试系列,MySQL常见面试题?
常见MySQL面试题原创 2023-07-23 16:36:12 · 663 阅读 · 0 评论 -
程序员面试系列,k8s常见面试题
Kubernetes(通常简称为K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它最初由谷歌开发,并于2014年捐赠给了云原生计算基金会(CNCF)。Kubernetes 提供了一个强大的容器化应用程序管理系统,使开发人员和运维团队能够更轻松地构建、部署、扩展和管理容器化应用。自动化部署:Kubernetes 可以自动化地在集群中部署容器化的应用程序。开发人员只需要定义所需的应用程序配置和资源要求,Kubernetes 便会自动将应用程序部署到集群中的合适节点上。原创 2023-07-23 16:44:46 · 2658 阅读 · 0 评论 -
程序员面试系列,golang常见面试题
golang常见面试题原创 2023-07-23 16:47:05 · 1639 阅读 · 0 评论 -
程序员面试系列,docker常见面试题
Docker是一种开源的容器化平台,用于快速构建、部署和运行应用程序。它允许开发者将应用程序及其依赖项打包到一个独立的容器中,使得应用程序可以在任何环境中运行,保证了应用程序在不同环境中的一致性和可移植性。Docker使用容器技术实现了应用程序的隔离,每个Docker容器都有自己的文件系统、运行时环境和网络栈,相互之间互不干扰。这样可以确保应用程序在不同容器中运行时互不影响,提高了应用程序的稳定性和安全性。Docker容器与传统虚拟机相比更加轻量级,因为它们共享宿主机的操作系统内核。原创 2023-07-23 17:17:43 · 1865 阅读 · 0 评论 -
什么是内存泄漏?
原文1 内存泄漏的定义内存泄漏(Memory leak)是在计算机科学中,由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。内存泄漏通常情况下只能由获得程序源代码的程序员才能分析出来。2 内存泄漏导致的后果内存泄漏会因为减少可用内存的数量从而降低计算机的性能。最终,在最糟糕的情况下,过多的可用内存被分配掉导致全部或部分设备停止正常工作,或者应用程序崩原创 2022-01-11 11:04:37 · 10932 阅读 · 0 评论 -
使用int min = Integer.MAX_VALUE导致int类型越界 之 LeetCode刷题【16. 最接近的三数之和】
1 问题在刷LeetCode题目时,有用到最小值比较,所以我就定义了一个int类型的最大值,即Integer.MAX_VALUE,然后后续的程序运行,发现程序出错,不是语法问题,最后发现就是int类型数据越界。2 题目给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 t原创 2020-10-25 23:16:27 · 981 阅读 · 0 评论 -
java中==和equals的区别?
在java语言中,equals用来比较两个对象的值是否相等,==用来比较两个对象在内存中地址是否相等。由于equals是object类拥有的方法,所有java中所有类有具有该方法,可自行重写。String s1 = "string";String s2 = "string";String s3 = new String("string");String s4 = new String("string");System.out.println(s1==s2);//trueSystem.out.pr原创 2020-10-27 22:03:24 · 342 阅读 · 0 评论 -
Java中System.arraycopy的用法
1 用法介绍System.arraycopy在Java中是用来深拷贝数组的,由于数组是一种引用的数据类型,所以在Java中的赋值操作都是一种引用,即使用指针指向内存中的数组,其实内存就只有一份数组。* @param src the source array.* @param srcPos starting position in the source array.* @param dest the destination array.* @par原创 2020-10-15 16:13:50 · 985 阅读 · 0 评论 -
Java中的输入操作
1 输入操作通常,我们自己编写函数都不是手动从控制台输入数据,然而有时在刷牛客网的题目时,会出现要使用输入操作的情况,如果算法逻辑已经写出来了,由于输入输出的小错误导致真个算法不能通过的话,那么就很尴尬了。1.1 Scanner类Scanner类隶属于java.util.Scanner,所以使用时需要带入该包。具体用法:定义Scanner类:Scanner input = new Scanner(System.in);输入整数:int n = input.nextInt();//输入整数输入原创 2020-10-17 15:46:01 · 1557 阅读 · 0 评论 -
Java中的静态代码块与代码块详解
1 构造代码块构造代码块就是在类中用{}括起来的代码块,如下所示,普通代码块按照顺序从上到下依次执行。public class Test{ { //这是构造代码块 }}2 静态代码块静态代码块就是使用static修饰的用{}括起来的代码段,如下所示,静态代码块用于给静态变量进行赋值,且:静态代码块只在类加载时执行,而且静态代码块只能给静态变量赋值,不能给成员变量赋值。static{ //这里是静态代码块, //静态代码块中的代码会优先于}静态代码块只在类加载时执行pub原创 2020-10-17 17:01:54 · 884 阅读 · 0 评论 -
牛客网刷题闭坑 【printf打印】
printf函数执行的时候,会先把这三个数字压入栈里,然后再执行打印。压入栈的时候按照数据本身的长度来,首先把c和b压入,并且每一个都是8个字节(printf自动转化为double)。然后再压入a是4个字节。然后再执行打印。打印的时候按照用户指定的格式来出栈。首先打印a,a打印正常。然后又打印4个字节长度的b,在栈里面由于b长度是八个字节,并且b目前是64位的表示方式,数据的后面全是0.(float 变double),电脑是小端存储方式,0存储在距离a近的地方。打印b的时候,打印的4个字节都是0.然后再打.原创 2020-10-18 10:44:42 · 565 阅读 · 0 评论 -
java中Arrays的排序介绍
1 一维数组有一下几种排序方式:默认顺序排序int [] a = {4,5,3,1,7};Arrays.sort(a);倒序排序使用Collections.reverseOrder()对其进行倒序排序,但是必须将数据的类型改成`Integer类型,否则不能进行。Integer [] a = {4,5,3,1,7}; Arrays.sort(a, Collections.reverseOrder());实现Comparator接口中的Compare()方法单独实现该接口:clas原创 2020-11-04 16:28:15 · 1624 阅读 · 0 评论 -
面试题之 【TCP/IP协议中的三次握手和四次挥手】
三次握手和四次挥手都是由客户端发起。1 三次握手在TCP/IPTCP/IPTCP/IP协议中,由于需要建立安全且稳定的连接,所有需要进行多次确认。**第一次握手:**客户端需要与服务端建立连接,此时客户端会向服务端发送一个连接请求,即将请求头中的SYNSYNSYN字段设置为111,表示需要建立请求,并发送一个客户端的32位的序列号seq1seq1seq1(该序列号由主机随机生成),该序列号用于后续客户端向服务端发送数据时给数据包的一个序列号,服务器端可以通过判断当前序列是否在某一个区间内,如果不在原创 2020-11-07 21:12:56 · 480 阅读 · 0 评论 -
【C++】c++之函数形参和实参
c++之函数形参和实参c++之函数形参和实参讲解1、非地址型参数在c++中实现模块化编程时,我们形成会遇到对自定义的函数模块传入参数的操作,即形参。这里主要讲解一个非地址型的形参。不多说,先看代码: 1 #include <iostream> 2 3 using namespace std; 4 5 void changeNumber(int n...原创 2019-03-24 13:00:00 · 6090 阅读 · 0 评论 -
TCP/IP协议的拥塞控制
1 TCP拥塞控制 别看放在最后,因为是压轴的知识点,很重要!1.1 慢启动和拥塞避免(1)慢启动慢启动指先把拥塞窗口cwnd设置为一个最大报文段MSS的数值,发送方在每收到一个对新的报文段的确认后,把拥塞窗口增加至多一个MSS的数值,在每经过一个往返时间RTT,拥塞窗口wcnd就加倍。慢启动的“慢”并不是指cwnd的增长速度慢,而是指在TCP开始发送报文段时先设置cwnd=1,使得发送方在开始时只发送一个报文段(目的是探测一下网络的拥塞情况)(2)拥塞避免算法让拥塞窗口cwnd缓原创 2020-12-08 19:15:36 · 754 阅读 · 0 评论 -
TCP/IP协议的三次握手为什么是三次而不是两次?
简单来说,三次握手的目的是为了让双方验证各自的接收能力和发送能力。第一次握手,A 发送SYN到B,B接收到了后,能确认什么呢?显然,B能确认A的发送能力和B的接收能力;第二次握手,B发送SYNACK到A,A接收到后,能确认什么呢?A能确认B的发送能力和A自己的接收能力,此外,A收到了SYNACK,那么说明前面A发的SYN成功到达B的手中,所以也能确认A自己的发送能力和B的接收能力;至此,A已经确认了双方各自的发送能力和接收能力都是OK的,因此转为ESTABLISHED状态;第三次握手原创 2020-12-04 19:30:35 · 713 阅读 · 0 评论 -
Diffience between Stack and Heap Memery in java ?
referenceSr. No.KeyStackHeap Memory1BasicStack memory is used to store items which have a very short life like local variables, a reference variable of objectsHeap memory is allocated to store objects and JRE classes.2OrderingThe stack转载 2020-12-03 17:00:52 · 234 阅读 · 0 评论 -
c++中指针和引用的区别?
1 引用基础教程我们知道,参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。所谓内存拷贝,是指将一块内存上的数据复制到另一块内存上。对于像 char、bool、int、float 等基本类型的数据,它们占用的内存往往只有几个字节,对它们进行内存拷贝非常快速。而数组、结构体、对象是一系列数据的集合,数据的数量没有限制,可能很少,也可能成千上万,对它们进行频繁的内存拷贝可能会消耗很多时间,拖慢程序的执行效率。C/C++ 禁止在函数调用时直接传递数组的内容,而是强制传递数组指针,这点已在《C语言指针转载 2020-12-01 12:36:25 · 579 阅读 · 0 评论 -
c++中,为什么有了malloc/free,还要new/delete?
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放.原创 2020-12-01 12:11:51 · 804 阅读 · 0 评论 -
C++ class和struct到底有什么区别?
C++ 中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct 只能包含成员变量,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。C++中的 struct 和 class 基本是通用的,唯有几个细节不同:使用 class 时,类中的成员默认都是 private 属性的;而使用 struct 时,结构体中的成员默认都是 public 属性的。class 继承默认是 private 继承,而 struct 继承默认是 pu原创 2020-12-01 12:10:11 · 235 阅读 · 0 评论 -
java面试之【java内存模型JMM】
1.java内存模型reference pagejava虚拟机的内存空间总共分成5个部分:本地方法栈(Native Method Stacks)程序计数器(Program Counter Register)虚拟机栈(JVM Stacks)堆区(Heap)方法区(Method Area)1.1 Program Counter Register(1)定义程序计数器是一块较小的内存空间,可以把它看作当前线程正在执行的字节码的信号指示器。程序计数器里面记录的是当前线程正在执行的那一条字节码转载 2020-11-25 20:20:33 · 426 阅读 · 0 评论 -
java面试之java中的 sleep()、wait()和yield()的区别
1 区别在java中,sleep()和yield()方法是Thread类中的方法,而wait()是Object类中的方法。也就是说,在java中,所有的类都有wait()方法,而只有继承了Thread类的方法才有sleep()和yield()方法。2 其中sleep()和wait()的区别sleep()方法用于短暂暂停线程的运行,而wait()方法用于线程间的通信更主要的区别是:线程调用sleep()方法后,当前线程不会释放其持有的资源线程调用wait()方法后,当前线程会释放其持有的原创 2020-11-25 16:18:42 · 1164 阅读 · 2 评论 -
Mysql中的B树索引和B+树索引的区别?
在B树中,你可以将键和值存放在内部节点和叶子节点;但在B+树中,内部节点都是键,没有值,叶子节点同时存放键和值。B+树的叶子节点有一条链相连,而B树的叶子节点各自独立。1 使用B树的好处B树可以在内部节点同时存储键和值,因此,把频繁访问的数据放在靠近根节点的地方将会大大提高热点数据的查询效率。这种特性使得B树在特定数据重复多次查询的场景中更加高效。2 使用B+树的好处由于B+树的内部节点只存放键,不存放值,因此,一次读取,可以在内存页中获取更多的键,有利于更快地缩小查找范围。 B+树..转载 2020-11-23 11:54:32 · 5310 阅读 · 0 评论