加载中...
加载中...
2021年实习生笔试题(Java开发工程师)

2021年实习生笔试题(Java开发工程师) 原创

2021实习生笔试题(Java开发工程师


一、选择题(40)(请把答案填在框内

1

2

3

4

5

6

7

8

9

10

总分

B

A

B

A

D

D

C

A

D

B

 

 

1. 初始序列1 6 2 5 8 4 3采用堆(大顶堆)排序,所对应的二叉树的先序遍历序列为()

A.8 4 5 1 6 2 3

B.8 6 5 1 4 2 3

C. 4 5 1 8 6 2 3

D.6 5 1 8 4 2 3 

 

2.哪个不属于Unix系统进程间的通信方式?(A

 A文件映射     B.共享内存       C.消息队列       D.信号量

 

3. HTTP协议返回状态码为403时表示(B

找不到该页面

禁止访问

内部服务器访问

服务器繁忙

 

4.根据下面代码判断对应输出(A

public class Parent {
    static {
        System.out.println("父静态块");
    }

    public Parent() {
        System.out.println("父构造函数");
    }

 

public class Son extends Parent {
    {
        System.out.println("子块");
    }

    static {
        System.out.println("子静态块");
    }

    public Son() {
        System.out.println("子构造函数");
    }

    public static void main(String[] args) {

new Son();

    }

}

 

A.父静态块 B.父静态块        C.父静态块        D.父静态块

子静态块  父构造函数   父构造函数   子块

父构造函数     子静态块   子块   子静态块

子块  子块       子静态块   父构造函数

子构造函数  子构造函数   子构造函数   子构造函数

 

54 5 7 2 5 6依次进入栈,不可能的出栈顺序是(D

A. 4 7 5 2 5 6

B. 7 5 4 2 6 5

C. 5 7 2 4 6 5

D. 7 2 4 5 6 5

 

6.下面一段代码执行的结果是(D

public class Calculate {

    private static int fib(int x) {
        return (x > 0) ? x * fib(x - 2) : 1;
    }

    public static void main(String[] args) {
        System.out.println(fib(5));
    }
}

A.-60

B.60

C.-15

D.15

 

7.String a=”suishouji”  String b=new String(“suishouji”)两个对象分别存储在JVM中的哪个位置(C).

A.栈、堆

B.堆、堆

C.常量池、堆

D.常量池、常量池

 

看法:

String a=”suishouji”

1、在编译期,JVM会去常量池来查找是否存在suishouji,如果不存在,就在常量池中开辟一个空间来存储suishouji;如果存在,就不用新开辟空间。然后在栈内存中开辟一个名字为a的空间,来存储suishouji在常量池中的地址值指向

 

String b=new String(“suishouji”)

2在编译阶段JVM先去常量池中查找是否存在suishouji,如果过不存在,则在常量池中开辟一个空间存储suishouji

在运行时期,通过String类的构造器在堆内存new了一个空间,然后将String池中的suishouji复制一份存放到该堆空间中,在栈中开辟名字为b的空间,存放堆中new出来的这个String对象的地址值。

 

所以本题答案是:C.常量池、堆

 

 

 

 

8. 在排序方法中,属于稳定性排序算法的是(A

A、直接插入排序  B选择排序    C快速排序   D希尔排序

 

9.小明在linux环境开发过程中,自己服务需要调用一个远程服务,突然发现远程服务不能访问,小明可以使用下面那个命令判断是不是对方服务可能宕掉(D)。

A.nslookup  B.netstat  C.ps   D.telnet

 

解答

nslookup作用

nslookup用于查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题

 

   netstat命令用于显示与IPTCPUDPICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCPUDP监听,进程内存管理的相关报告。

 

 

ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,

就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。

 

TELNET协议可以工作在任何主机或任何终端之间。它提供使用TCP/IP在远程计算机上登录并进行命令行的方法。是一种认为是终端仿真的技术,提供了一种通过网络在远程主机上操作的方便的方式。

 

 

10.如果2A*3+3B=105成立,则采用的是(B)进制表示的。

A16   B.15   C.13   D.12


二、编码题

1. 小明星期天去爬山,从山底到山顶有n个阶梯。小明每次可以跨一个阶梯也可以跨两个阶梯。请给出小明到达山顶总共方法的java代码实现。(15分)

package com.algorithm.demo;

/**
 * @Desc -累行客
 *
 * 1.小明星期天去爬山,从山底到山顶有n个阶梯。
 小明每次可以跨一个阶梯也可以跨两个阶梯。
 请给出小明到达山顶总共方法的java代码实现。(15分)
 *
 * @Author luolei
 * @Web http://www.leixingke.com/
 * @Date 2020/11/04 15:39
 */
public class Step1 {

    /**
     * @Desc: 递归实现。
     @Date: 2020/11/4 15:41
     * @param n
     * @return: int
    */
    private static int step(int n) {
        if (n == 1return 1;
        if (n == 2return 2;
        return step(n - 1) + step(n - 2);
    }

    public static void main(String[] args) {
        System.out.println(step(10));
    }
}

 

 

2. 请用java代码实现一个字符串的大小写反转。将大写字符转换成小写字符,小写字符转换成大写字符,特殊字符以及空格不做处理(不能借助外部库以及jdk提供的大小写转换函数)(15)

例如:I love CHINA! ->i LOVE china!

package com.algorithm.demo;

/**
 * @Desc -累行客
 *
 * 2.请用java代码实现一个字符串的大小写反转。将大写字符转换成小写字符,小写字符转换成大写字符,特殊字符以及空格不做处理。(不能借助外部库以及jdk提供的大小写转换函数)(15)
 * 例如:I love CHINA! ->i LOVE china!
 *
 * @Author luolei
 * @Web http://www.leixingke.com/
 * @Date 2020/11/04 15:45
 */
public class Test2 {

    public static void main(String[] args) {
        String str = "I love CHINA!";
        // 字符串转成 char 数组
        char[] ch = str.toCharArray();
        StringBuffer buffer = new StringBuffer();
        for (int i = 0; i < ch.length; i++) {
            if (ch[i] >= 'A' && ch[i] <= 'Z') {
                buffer.append((char)(ch[i]+32));
            } else if (ch[i] >= 'a' && ch[i] <= 'z') {
                buffer.append((char)(ch[i]-32));
            }else{
                buffer.append(ch[i]);
            }
        }
        System.out.println(buffer.toString());
    }
}

 

 

 


三、数据库

下面是某班级学生考试成绩表学生信息表,所有学生科目成绩均已录入,缺考计0

 

表名:grade_info(成绩表)

准考证号(stu_no)

科目 (sub_type)

 成绩 (grade)

2006001

语文

79

2006001

数学

88

2006002

物理

72

2006001

化学

66

2006001

物理

47

2006002

数学

59

2006002

英语

80

2006002

语文

75

2006001

英语

98

2006002

化学

80

……

……

……

 

表名stu_info(学生信息表)

学生姓名(stu_name)

准考证号(stu_no)

小明

2006001

小红

2006002

……

……

1) 找出所有全部成绩合格(分数大于等于60分)的学生姓名(15)

 

Select

b.stu_name as 学生姓名

From

grade_info a

Left join stu_info b

On a.stu_no = b.stu_no

Where a.grade>=60

Group by a.stu_no

Having count( a.grade)=5;  #总共5门学科?

 

 

 

 

2) 找出总成绩最高的前三名同学姓名,以及总分数(15)

Select

b.stu_name as 学生姓名’,

sum(a.gradeas总分数

From

grade_info a

Left join stu_info b

On a.stu_no = b.stu_no

Group by a.stu_no

Order by sum(a.grade) desc

limit 3;

 

 

没有更多推荐了 [去首页]
image
文章
357
原创
284
转载
73
翻译
0
访问量
199063
喜欢
47
粉丝
6
码龄
5年
资源
0

文章目录

加载中...
0
0