2023春招java面试题及答案总结
- 1.以下Dubbo服务负载均衡策略中,哪一个策略的功能是相同参数的请求总是发到同一个提供者()
- 2.如下代码:请问编译运行的结果是什么?
- 3.给出如下代码:请问编译运行的结果是什么?
- 4.代码片段:对于Person类,请问哪个选项中的hashCode()方法是最合适的?
- 5.Diors可以在C:/users/diors目录下执行以下命令来启动他的个人通讯录程序:
- 6.代码片段:请补充以上的代码,使这个类能够正确地被序列化和反序列化。
- 7.下列哪一行代码可以加到下面代码中的第4行而不产生错误?()
- 8.假设文本文件中有多处连续的空白行,下边哪个命令可以压缩相邻的空白行
- 9.以下哪些命令不能实现打印文件file中第7行文本的功能
- 10.分别以下列序列构造二叉排序树,层次遍历序列与用其它三个结果不同的是()
- 11.二叉树T1,点集为{A, B, C, D, E}, 边集为{A-B, A-C, C-D, C-E}。二叉树T2,点集为{A, B, C, D, E}, 边集为{A-D, B-E, C-E, D-E}。下列()既是T1的BFS序,又是T2的DFS序.
- 12.一个序列{a, b, 1, _}按序入栈,按出栈顺序构成一个字符串,其中有()个可以作为C语言的标识符。
- 13.public static final int n=1,经过jvm类的加载过程准备阶段初始化后,n的结果是?
- 14.给定段表如表a所示,给出的逻辑地址为段号和段内位移,分别求逻辑地址[1,10]所对应的物理地址()
- 15.设有4个同时到达的作业A1,A2,A3和A4,各作业所需要的执行时间分别是S1,S2,S3和S4,且S1<S2<S3<S4,若系统采用单道方式运行且采用短作业优先调度算法,则平均周转时间是()。
- 16.一个含有n(n>1)个元素的完全二叉树(根节点索引为0),其倒数第一个非叶节点的索引位置(按照层序遍历的结果)是()
- 17.假设有一个箱子,箱子里面有10个乒乓球,其中有4个是黄球,6个是白球,从中任取两个球,已知两个球中有一个球为黄球,那么另一个球也是黄球的概率为()。
- 18.对于选择重传协议(SR),若发送窗口最大尺寸为16,问序号位数为()。
- 19.一个箱子中有5个红球,3个黑球和2个黄球,无放回的抽取,则在取到黑球之前,取到红球的概率为()。
- 20.汉明码是一种具有一位纠错能力的编码,常用于数据传输中的差错检测,若按配奇原则配置汉明码,则1100101的汉明码为()。
- 21.在学校数据库表中,存在这关系SCRO(SO,CO,GRADE),主码是(SO,CO),则根据实体完整性规则,下列说法正确的是()
- 22.现有两张用户信息表user_info、user_info_old,以下哪种语法不能实现向表中批量插入数据?
- 23.现有两条平行的直线l1和l2,两条直线上分别有m和n个互不重合的点,那么这些所有的点中能构成多少个不同的三角形?
- 24.某国国王小明对4这个数字非常地忌讳,于是他下令全国所有的书籍,主要页码里还有4这个数字,那么这一页都要撕掉。该国有一本著名的传世经典,共有10000000页,请帮忙算一下这本传世经典在法令颁布后还能剩下多少页?
- 25.小明到某国参加一个叫做《章鱼游戏》的真人秀节目。其中第一个挑战是要求快速算出1000!(阶乘)的末尾有多少个0,如果不能在10分钟之内算出来,那么就会被残忍淘汰,你可以帮小明算一下吗?
🏠个人主页:@编程ID
🧑个人简介:大家好,我是编程ID,一个想要与大家共同进步的程序员儿
🧑如果各位在准备面试,找工作,刷算法,刷选择题,可以使用我找工作前用的刷题神器哦![面试刷题神器🎁]
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,望能帮到各位想要找工作或者提高自己的小伙伴儿们,如果有什么需要改进的地方,还请大佬不吝赐教🤞🤞
往期文章>>>
Java最全面试题【五分钟看完】
Java后端精选面试题分享
Java经典面试题 带答案(五)
Java经典面试题 带答案(四)
Java经典面试题 带答案(三)
…
1.以下Dubbo服务负载均衡策略中,哪一个策略的功能是相同参数的请求总是发到同一个提供者()
A、Random LoadBalance
B、RoundRobin LoadBalance
C、LeastActive LoadBalance
D、ConsistentHash LoadBalance
正确答案:D
解析:考察Dubbo服务负载均衡策略的知识;D选项是一致性hash,相同参数的请求总是发到同一个提供者,当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。
单选题
2.如下代码:请问编译运行的结果是什么?
public class Short {
public static void main(String args[]) {
StringBuffer s = new StringBuffer("Hello");
if ((s.length() > 5) && (s.append("there").equals("False")));
System.out.println("value is " + s);
}
}
A、value is Hello
B、value is thereHello
C、value is Hellothere
D、编译失败
正确答案:A
单选题
3.给出如下代码:请问编译运行的结果是什么?
class Sudo {
private int pid;
public Sudo(int pid) { this.pid = pid; }
public void setPid(int pid) { this.pid = pid; }
public int getPid() { return pid; }
}
public class Root {
static Sudo chmod(Sudo sudo) {
sudo = new Sudo(1);
return sudo;
}
public static void main(String[] args) {
Sudo sudo = new Sudo(0);
System.out.print(sudo.getPid());
Sudo sudo2 = chmod(sudo);
System.out.print(sudo.getPid());
System.out.print(sudo2.getPid());
sudo = chmod(sudo2);
System.out.print(sudo.getPid());
System.out.print(sudo2.getPid());
}
}
A、00001
B、00011
C、00111
D、01111
正确答案:C
单选题
4.代码片段:对于Person类,请问哪个选项中的hashCode()方法是最合适的?
public class Person {
private String name, comment;
private int age;
public Person(String n, int a, String c) {
name = n; age = a; comment = c;
}
public boolean equals(Object o) {
if (!(o instanceof Person)) return false;
Person p = (Person) o;
return age == p.age && name.equals(p.name);
}
}
A、return super.hashCode();
B、return name.hashCode() + age * 7;
C、return name.hashCode() + comment.hashCode() / 2;
D、return name.hashCode() + comment.hashCode() / 2 - age * 3;
正确答案:B
单选题
5.Diors可以在C:/users/diors目录下执行以下命令来启动他的个人通讯录程序:
java -classpath C:/test apps.Contact
但是,他自己不确定Contact这个类的class文件放在哪了。
他系统的CLASSPATH设置如下:
A、/documents/lib;C:/users/diors/classes;C:/program files/java/lib
请问Contact.class文件可能存在以下哪个路径里?
B、C:/test/Contact.class
C、C:/users/diors/Contact.class
D、C:/test/apps/Contact.class
E、C:/documents/lib/apps/Contact.class
F、C:/users/diors/apps/Contact.class
G、在一个jar文件中:C:/program files/java/lib/Games.jar
H、在一个jar文件中:C:/users/diors/downloads/Games.jar
正确答案:C
单选题
6.代码片段:请补充以上的代码,使这个类能够正确地被序列化和反序列化。
import java.io.*;
public class Foo implements Serializable {
public int x, y;
public Foo(int x, int y) { this.x = x; this.y = y; }
private void writeObject(ObjectOutputStream s) throws IOException {
s.writeInt(x); s.writeInt(y);
}
private void readObject(ObjectInputStream s)
throws IOException, ClassNoFoundException {
//在这里补充代码
}
}
A、s.defaultReadObject();
B、this = s.defaultReadObject();
C、y = s.default(); x = s.readInt();
D、x = s.readInt(); y = s.readInt();
正确答案:D
单选题
7.下列哪一行代码可以加到下面代码中的第4行而不产生错误?()
public abstract class AbClass {
public int var = 1;
public void fun() { }
}
A、var=var+5;
B、public void fun2();
C、public abstract void fun3() {}
D、public abstract void fun4(int var2);
正确答案:D
解析: 本题的类是一个抽象类,对于抽象类要注意抽象类不能被实例化; 对于A,抽象类中定义的变量初始化之后就不能重新操作赋值或者操作该变量;
对于B,抽象类中的普通方法一定要实现,B中只是单纯定义了一个方法,并未实现; 对于C,抽象类中的抽象方法是不能实现的; 综上D满足要求。
单选题
8.假设文本文件中有多处连续的空白行,下边哪个命令可以压缩相邻的空白行
A、cat -b file
B、cat -n file
C、cat -s file
D、cat -T file
正确答案:C
解析:cat -s可以压缩多余空白行
-T 是将制表符显示为^I
-n 显示行号
-b 显示行号,但是空白行不显示行号
单选题
9.以下哪些命令不能实现打印文件file中第7行文本的功能
A、head -7 file |tail -1
B、sed -n 7p file
C、awk ‘7 == NR’ file
D、cat s 7 file
正确答案:D
解析:cat -s是压缩空行
单选题
10.分别以下列序列构造二叉排序树,层次遍历序列与用其它三个结果不同的是()
A、(100,80,90,140,50,120,160)
B、(100,140,160,120,80,50,90)
C、(100,80,50,90,140,160,120)
D、(100,50,90,80,120,140,160)
正确答案:D
解析:除了D,其他三个层次遍历都是100,80,140,50,90,120,160。
单选题
11.二叉树T1,点集为{A, B, C, D, E}, 边集为{A-B, A-C, C-D, C-E}。二叉树T2,点集为{A, B, C, D, E}, 边集为{A-D, B-E, C-E, D-E}。下列()既是T1的BFS序,又是T2的DFS序.
①ABCDE ②ABCED ③ACBDE ④ACBED
A、①②
B②③
C、①②③
D、②④
正确答案:D
解析:
T1的BFS有四个:ABCDE,ABCED,ACBDE,ACBED。T2的DFS序有四个:ABCED,ACBED,BCEAD,CBEAD。因此,ABCED和ACBED既是T1的BFS序,又是T2的DFS序。
单选题
12.一个序列{a, b, 1, _}按序入栈,按出栈顺序构成一个字符串,其中有()个可以作为C语言的标识符。
A、11
B、12
C、13
D、14
正确答案:A
解析:4个元素按序入栈,出栈顺序共有14种,其中只有1_ba, 1b_a, 1ba_不能用做C语言标识符,因此可以用的有11种:ab1_,
ab_1, a1b_, a_1b, a1_b, ba1_, ba_1, b1_a, b1a_, b_1a, 1_ba, 1b_a,
1ba_, _1ab。
单选题
13.public static final int n=1,经过jvm类的加载过程准备阶段初始化后,n的结果是?
A、0
B、null
C、1
D、-1
正确答案:C
解析:
准备阶段是为类变量分配内存并设置类变量初始值的阶段,这些变量所使用的内存都将在方法区中进行分配。这时候进行内存分配的仅包括类变量(被static修饰的变量),而不包括实例变量,实例变量将会在对象实例化时随着对象一起分配在堆中。其次,这里所说的初始值有两类:被final修饰和不被final修饰。不被final修饰,如public
static int m =1,在此阶段会被初始化为0;被final修饰如本题所示,会在准备阶段初始化为指定的值。
单选题
14.给定段表如表a所示,给出的逻辑地址为段号和段内位移,分别求逻辑地址[1,10]所对应的物理地址()
A、220
B、11
C、30
D、2360
正确答案:D
解析:[1, 10]表示段号为1,段内位移为10,由于段首址为2350,所以[1, 10]所对应的物理地址是2350 + 10 =
2360,答案选D
单选题
15.设有4个同时到达的作业A1,A2,A3和A4,各作业所需要的执行时间分别是S1,S2,S3和S4,且S1<S2<S3<S4,若系统采用单道方式运行且采用短作业优先调度算法,则平均周转时间是()。
A、S1+S2+S3+S4
B、(S1+2S2+3S3+4S4)/4
C、(S1+S2+S3+S4)/4
D、(4S1+3S2+2S3+S4)/4
正确答案:D
解析:
系统采用短作业优先调度算法,作业的执行顺序为A1,A2,A3,A4,A1的周转时间为S1,A2的周转时间为S1+S2,A3的周转时间为S1+S2+S3,A4的周转时间为S1+S2+S3+S4,则平均周转时间为(4S1+3S2+2S3+S4)/4,所以答案选D
单选题
16.一个含有n(n>1)个元素的完全二叉树(根节点索引为0),其倒数第一个非叶节点的索引位置(按照层序遍历的结果)是()
A、n/2
B、n0.5
C、n-1
D、n/2-1
正确答案:D
解析: 知识点:完全二叉树的性质及相关数学推导 解析:求倒数第一个非叶节点,即求层序遍历结果中最后一个有子节点的节点,
对于一个完全二叉树,在填满的情况下(非叶子节点都有两个子节点),每一层的元素个数是上一层的二倍,根节点数量是1,所以最后一层的节点数量,一定是之前所有层节点总数+1,所以,我们能找到最后一层的第一个节点的索引,即节点总数/2(根节点索引为0),这也就是第一个叶子节点,所以第一个非叶节点的索引就是第一个叶子结点的索引-1。对于未填满的完全二叉树同理,因为完全二叉树的定义,除去最后一层所有层均填满,当我们从上往下,从左往右填充二叉树的过程中,第一个叶子节点,一定是序列长度的二分之一,所以第一个非叶子节点的索引就是n/2-1。
单选题
17.假设有一个箱子,箱子里面有10个乒乓球,其中有4个是黄球,6个是白球,从中任取两个球,已知两个球中有一个球为黄球,那么另一个球也是黄球的概率为()。
A、1/2
B、2/3
C、1/5
D、2/5
正确答案:C
解析:
所以选C
单选题
18.对于选择重传协议(SR),若发送窗口最大尺寸为16,问序号位数为()。
A、2
B、3
C、4
D、5
正确答案:D
解析:
WTmax = WRmax = 2(n-1)
故选D
单选题
19.一个箱子中有5个红球,3个黑球和2个黄球,无放回的抽取,则在取到黑球之前,取到红球的概率为()。
A、1/2
B、5/8
C、4/5
D、2/3
正确答案:B
解析:
设事件Ak:第k次取得是红球,Bk :第k次取的是黄球;
则题目所要求的情况为
所以概率为5/10 + (2/10)*(5/9) + (2/10)*(1/9)*(5/8) = 5/8选B
查看2条题目讨论
单选题
20.汉明码是一种具有一位纠错能力的编码,常用于数据传输中的差错检测,若按配奇原则配置汉明码,则1100101的汉明码为()。
A、1110 1001 100
B、1110 1001 101
C、1110 1001 001
D、1110 0001 101
正确答案:B
解析:
数据位数为7,则需要添加4位检测位,安排如下:
二进制序号 1 2 3 4 5 6 7 8 9 10 11
汉明码 C1 C2 1 C4 1 0 0 C8 1 0 1
按配奇原则配置,则
C1 = 1
C2 = 1
C4 = 0
C8 = 1
故选B。
单选题
21.在学校数据库表中,存在这关系SCRO(SO,CO,GRADE),主码是(SO,CO),则根据实体完整性规则,下列说法正确的是()
A、只有SO不能为空值
B、只有CO不能为空值
C、SO与CO不能为空
D、只有GRADE不能为空值
正确答案:C
解析:CO、SO为学生的课程号编码与学生学号编码,为主码,则都不可以为空,故此题答案选C
单选题
22.现有两张用户信息表user_info、user_info_old,以下哪种语法不能实现向表中批量插入数据?
A、REPLACE INTO user_info VALUES (1, ‘牛客1号’), (2, ‘牛客2号’)
B、INSERT INTO user_info SELECT * FROM user_info_old WHERE nick_name LIKE ‘牛客%’
C、SELECT * INTO user_info FROM user_info_old WHERE nick_name LIKE ‘牛客%’
D、LOAD DATA CONCURRENT LOCAL INFILE ‘file_name’
正确答案:C
解析: A:REPLACE/INSERT INTO … VALUES (…)… 可以实现多条新记录的批量插入; B:INSERT
INTO A SELECT … FROM B 可以实现从另一张表B查询出数据并插入到A 表中; C:SELECT … INTO A
FROM B 可以实现从另一张表B查询出数据并创建一张新表A然后插入到A 表中,由于题目中的A表已存在,因此该法不可行; D:LOAD
DATA … INFILE可以从文件载入数据批量插入到表中
单选题
23.现有两条平行的直线l1和l2,两条直线上分别有m和n个互不重合的点,那么这些所有的点中能构成多少个不同的三角形?
A、0.5mn(m+n-2)
B、0.5(m+n)(m+n-1)
C、(m+n)mn(m+n-1)
D、0.5*m(m+1)n(n+1)
正确答案:A
解析:答案A:三角形的个数为
单选题
24.某国国王小明对4这个数字非常地忌讳,于是他下令全国所有的书籍,主要页码里还有4这个数字,那么这一页都要撕掉。该国有一本著名的传世经典,共有10000000页,请帮忙算一下这本传世经典在法令颁布后还能剩下多少页?
A、45682968
B、47822968
C、54291249
D、54281024
正确答案:B
解析:答案B:p位数不出现1的个数容易算得为
单选题
25.小明到某国参加一个叫做《章鱼游戏》的真人秀节目。其中第一个挑战是要求快速算出1000!(阶乘)的末尾有多少个0,如果不能在10分钟之内算出来,那么就会被残忍淘汰,你可以帮小明算一下吗?
A、244
B、249
C、252
D、245
正确答案:B
解析:答案B:实际上就是看5在1000!中的个数,即