栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

牛客刷题笔记:【2020】奇安信秋招Java方向试卷3

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

牛客刷题笔记:【2020】奇安信秋招Java方向试卷3

牛客刷题笔记

【2020】奇安信秋招Java方向试卷3

1. 对一个文件的访问,常由( )共同限制。2. 下列关于TCP和UDP的描述正确的是( )。3. 在什么情况下,新插入链表的节点既是首节点也是尾节点4. 一个有向无环图是否存在拓扑排序?5. 以下关于哈希表的描述哪个是正确的?6. 存在一个数字组成的序列[a1,a2,...,aN],若要统计所有数字出现的次数,用以下哪种数据结构比较适合?7. 存在若干个字符串,若要查找具有相同前缀的字符串,以下哪种数据结构比较适合8. 以下哪个算法是用于求解两个正整数的最大公约数的算法?9. 下面说法正确的是?10. 在一个空目录下执行umask 333; touch hello;命令后,hello文件的权限为?11. 在DNS系统测试时,假设named进程号是53,如何通知进程重读配置文件12. 视图可用于13. 要添加索引的一个理由是15. 关于NAT说法不正确的是?16. 下列哪些不是IPv6过渡技术17. 下面不属于OSI七层模型的是?18. 下列说法错误的是19. String s = new String("xyz");创建了几个StringObject20. 在下列4条语句的前提下:(待完善)21. 下面哪一个命令可以关机,而不重启?22. 下列属于Linux开机启动过程的是?23. 下列关于inode说法正确的是?24. 关于bash中以下符号的说明哪些是正确的25. 关于 DELETe和 TRUNCATE TABLE的说法正确的是27. 以下哪些是TCP协议运行时阶段28. 以下关于超文本传输安全协议说法中正确的说法有29. 下列有关守护线程描述正确的有30. Java接口的修饰符包括

【2020】奇安信秋招Java方向试卷3

测试数据

测试分数正确题数排名
31分14/3228%
1. 对一个文件的访问,常由( )共同限制。

知识范围

  • Linux

    答案
    用户访问权限和文件属性。

    解析
    参考链接:Linux 权限相关总结(用户&权限管理&权限设置方法)

      用户访问权限

  • 创建用户
    #创建新用户
    adduser 用户名
    #修改指定用户名密码,需要输入两次密码
    passwd 用户名
    

  • 切换用户
    #切换到指定用户名的用户下,但不获取环境变量
    su 用户名
    #切换到指定用户名的用户下,并获取环境变量
    su - 用户名
    #切换到指定用户名的用户下,执行完指定指令后返回原用户
    su -c 指令 用户名
    
      文件属性

  • 文件信息1
    文件类型文件权限
    d文件夹,-文件- 无权限
    r(read) 读/浏览权限
    w(write) 写/删除、增加、移动权限
    x(execute) 执行/进入权限

  • 设置权限
    # 设置文件/目录权限
    # 权限范围:u:user,g:group,o:others,a:all
    # 权限操作:+:添加权限,-:去除权限,=:赋予权限
    chmod [权限范围][权限操作][权限] 用户名
    
    # 改变文件/目录所有者/所属组
    # 参数:-R 递归处理,-v 显示指令执行过程
    chown [参数] 用户名 文件名/目录
    chgrp [参数] 用户组名 文件名/目录
    
    # 判断文件类型
    # 参数:-b:列表不显示文件名,-c:显示指令执行过程,-z:尝试解读压缩文件内容
    file [参数] 文件/目录
    
    2. 下列关于TCP和UDP的描述正确的是( )。

    知识范围

  • 网络基础

    答案
    TCP是面向连接的,UDP是面向无连接的。

    解析
    参考链接:Javase复习系列——网络编程

      TCP三次握手和四次挥手

  • 三次握手
    客户端:我可以和你握手吗?
    服务器:好的
    客户端:好的
    成功建立连接!
  • 四次挥手
    客户端:我可以和你分手吗?
    服务器:等我有个心理准备
    服务器:我准备好了,拜拜
    客户端:好的,拜拜
    成功释放连接!
      TCP面向连接,UDP无连接2
      面向连接:需要双方建立连接后,再传输数据。
      无连接:不需要建立连接,将数据打包发送。
    3. 在什么情况下,新插入链表的节点既是首节点也是尾节点

    知识范围

  • 编程基础

    答案
    链表为空时。

    4. 一个有向无环图是否存在拓扑排序?

    知识范围

  • 编程基础

    答案
    有向无环图一定存在拓扑序列。

    5. 以下关于哈希表的描述哪个是正确的?

    知识范围

  • 编程基础

    答案
    哈希表查询的时间复杂度是O(1)。

    解析

    哈希表不适于做优先级队列
    优先级队列具有最高级先出的特点,因此需要元素按照优先级排序,但哈希表是无序的,因此哈希表不适于做优先级队列。

      哈希表查找的思想
      ①初始时,Addr = Hash(key)。
      ②检测Addr位置是否有记录,若无记录则查找失败;若有记录,则进行对比,若对比成功,则查找成功;否则,进入下一步。
      ③使用冲突解决方案更新Addr,回到第一步。

      哈希查找性能
      ASL = ∑ 比较次数×元素个数
      查询时间复杂度是O(1)

    6. 存在一个数字组成的序列[a1,a2,…,aN],若要统计所有数字出现的次数,用以下哪种数据结构比较适合?

    知识范围

  • 编程基础

    答案
    哈希表。

    解析
    数组、双链表和单链表要做统计就只能做遍历,单选题直接排除;哈希表要做统计,则在构建好哈希表后,则根据哈希函数冲突解决方案进行统计即可。

    7. 存在若干个字符串,若要查找具有相同前缀的字符串,以下哪种数据结构比较适合

    知识范围

  • 编程基础

    答案
    Trie树。

    解析
    参考链接(以下内容摘取自《程序员小灰》小程序):
    漫画:什么是红黑树?(整合版)

    红黑树主要应用于由于树的深度过大而造成磁盘IO读写过于频繁;哈希表主要应用于迅速查找;栈实现前缀,则实现原理就是遍历;Trie树主要应用于统计、排序和保存大量的字符串。

      红黑树

  • 红黑树定义
    一种自平衡二叉查找树

    特性

    具有二叉查找树的特性。结点是红色或黑色。根结点是黑色。每个叶子结点都是黑色的空结点(NIL结点)。每个红色结点的两个子结点都是黑色。从任一结点到其每个叶子的所有路径都包含相同数目的黑色结点。

    若在删除和插入结点时,红黑树的规则被打破,则需要调整树形。

    8. 以下哪个算法是用于求解两个正整数的最大公约数的算法?

    知识范围

  • 编程基础

    答案
    辗转相除法。

    解析

      Dijkstra算法

    作用
    单源最短路径算法,求从某一点出发到其他各点的最短路径。

    算法描述
    ①每次从上一个加入集合的顶点vi出发,写出从v0出发经过vi到其他未确定顶点的路径长度。
    ②找出最小的路径长度,将末尾结点加入集合,重复步骤①②,直到所有的顶点确定完。

    3. 辗转相除法

    作用
    求两个数的最大公约数。

    算法描述
    ①设a>b,计算c = a % b。
    ②令b = 余数c,再循环执行第一步,直到余数为。

      Floyd算法

    作用
    多源最短路径算法,从各个顶点出发到其他顶点的最短路径。

    算法描述
    A:
    ①按照对角线画出十字,十字部分照抄
    ②无穷的行列 or 对角线的值不变
    ③未填空的部分画十字,与本来的式子交叉的值求和,若值比原来小,则更新
    Path:
    ①根据A来判断,若值不变,则下标不变;若值改变,则每个矩阵依次+1

    9. 下面说法正确的是?

    A. epoll ET模式必须配合non-blocking IO使用
    B. epoll LT模式必须配合non-blocking IO使用
    C. epoll ET可以配合blocking IO使用

    知识范围

  • Linux

    答案
    A. epoll ET模式必须配合non-blocking IO使用。

    解析
    参考链接:epoll的两种模式:LT和ET模式

      epoll的两种模式:LT和ET模式

    LT模式(默认模式)
    epoll_wait函数检测到事件,通知应用程序处理,应用程序可以不处理该事件。支持block与non-block。ET模式
    epoll_wait函数检测到事件,通知应用程序处理,应用程序需要马上处理事件。支持non-block。 10. 在一个空目录下执行umask 333; touch hello;命令后,hello文件的权限为?

    知识范围

  • Linux

    答案
    r–r--r–。

    解析

    # umask过滤权限,333表示-wx-wx-wx
    # umask 333结果为r--r--r--
    umask 333
    
    # 创建一个空文件hello
    touch hello
    
    11. 在DNS系统测试时,假设named进程号是53,如何通知进程重读配置文件

    知识范围

  • Linux

    答案
    kill -HUP 53。

    解析
    参考链接:每天一个linux命令(42):kill命令

    # kill命令格式
    # HUP:重新加载进程,INT:中断进程
    kill 参数 进程号
    
    12. 视图可用于

    知识范围

  • 编程基础

    答案
    限制对表中特定行或列中的数据的访问。

    解析
    参考链接:关于数据库的视图,你了解多少
    视图即查询所得的结果集,是动态生成的。

    13. 要添加索引的一个理由是

    知识范围

  • 编程基础

    答案
    提高 SELECT 语句的性能。

    解析
    参考链接:什么是数据库索引

    15. 关于NAT说法不正确的是?

    可实现地址转换
    可实现端口转换
    IPv6根本不需要NAT
    可同时实现地址和端口转换

    知识范围

  • 网络基础

    答案
    IPv6根本不需要NAT。

    解析
    参考链接:

  • 网络地址转换NAT

      NAT是什么?
      NAT位于专用网和因特网的连接处,用于完成专用网与因特网之间的地址转换,也可以完成IPv4与IPv6之间的地址转换。
      *NAT技术的出现是为了解决IP资源不够的问题。

      NAT工作原理
      NAT利用NAT转换表实现地址转换:

    WAN端LAN端
    IP地址:端口号IP地址:端口号

    假设网络架构为A——NAT——B,使用A访问B。

    A发送数据报(源IP,目的IP,端口号)给NAT路由。NAT路由查询NAT转换表LAN端,将数据报的(源IP,端口号)使用WAN端替换。最后发送的数据报为(WAN源IP,目的IP,WAN端口号)。
    假设网络架构B——NAT——C,使用B访问C。B发送数据报(源IP,目的IP,端口号)给网络系统。数据报到达NAT路由,NAT查询NAT转换表WAN端,将数据报的(源IP,端口号)使用LAN端替换。最后发送的数据报为(LAN源IP,目的IP,LAN端口号)。 16. 下列哪些不是IPv6过渡技术

    知识范围

  • 网络基础

    答案
    应用识别技术。

    解析

  • 隧道技术简介
  • IPv6过渡技术之双栈技术

      隧道技术
      再同层之间建立一条虚拟链路以传递数据。

      地址翻译技术
      即NAT。

      双栈技术
      其节点同时支持IPv4和IPv6协议栈,IPv6与IPv6通信使用IPv6协议栈,IPv6与IPv4通信利用IPv4 over IPv6隧道使用IPv4协议栈,所以双栈技术实现了分别与IPv4或IPv6节点间的信息互通。

    17. 下面不属于OSI七层模型的是?

    知识范围

  • 网络基础

    答案
    聚合层。

    解析
    应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
    *口诀:无数网传会表演(从下至上)

    18. 下列说法错误的是

    A. final修饰的类不可以被继承
    B. final修饰的变量不可以被改变
    C. final修饰的方法不可以重载
    D. final修饰的方法可以被继承

    知识范围

  • Java

    答案
    C. final修饰的方法不可以重载。

    解析
    参考链接:
    JAVA中final关键字的作用

      final修饰范围
      引用、方法、类。

      final修饰引用
      引用 = 基本数据类型——常量;
      引用 = 对象or数组——本身可改,引用不可改;
      引用 = 类的成员变量——必须立刻赋值;

      final修饰方法
      不可重写,但可以被继承、重载。

      final修饰类
      无法继承(断子绝孙类)。

    19. String s = new String(“xyz”);创建了几个StringObject

    知识范围

  • Java

    答案
    两个或一个都有可能。

    解析
    参考链接:Java中 String str = new String(“hello”);的底层实现

    若在常量池中没有“xyz”,则A ⟶ longrightarrow ⟶“xyz”,再B ⟶ longrightarrow ⟶A。若在常量池中存在“xyz”,则直接B ⟶ longrightarrow ⟶A。 20. 在下列4条语句的前提下:

    Integer i01 = -128;
    int i02 = -128;
    Integer i03 =Integer.valueOf(-128);
    Integer i04 = new Integer(-128);
    以下输出结果为false的是:

    知识范围

  • Java

    答案
    System.out.println(i03 == i04);

    解析
    参考链接:java面试题之int和Integer的区别

    //Integer与int比较时,对Integer进行了拆箱,实际上是比较了值
    System.out.println(i01 == i02); //true
    //由于在在valueOf函数中,对-128~127范围内的数保存与缓存中,因此引用是一样的
    System.out.println(i01 == i03); //true
    //Integer与int比较时,对Integer进行了拆箱,实际上是比较了值
    System.out.println(i02 == i04); //true
    //由于new Integer会重新分配内存空间,因此引用并不相同
    System.out.println(i03 == i04); //false
    
    (待完善)21. 下面哪一个命令可以关机,而不重启?

    知识范围

  • Linux

    答案
    halt、netstat

    解析

      halt
    # 关闭系统
    halt
    # 关闭系统并关闭电源
    halt -p
    # 关闭系统,但不留下记录
    halt -d
    
      netstat
    # 用于查看网络状态
    
      reboot
    # 重启计算机
    reboot
    
      shutdown
    # 立即关机
    shutdown -h now
    # 10分钟后关机
    shutdown -h 10
    # 重启计算机
    shutdown -r now
    
    22. 下列属于Linux开机启动过程的是?

    知识范围

  • Linux

    答案

      运行第一个进程init(进程号永远为1)读取MBR的引导文件(grub,lilo)引导linux内核进入相应的运行级别
    23. 下列关于inode说法正确的是?

    知识范围

  • Linux

    答案
    每一个文件都有对应的inode,里面包含了与该文件有关的一些信息
    特殊文件(比如乱码文件名)可以通过inode的方式删除

    解析
    参考链接:Linux inode 详解

      inode定义
      inode存储文件元信息的区域(包含元信息,但不包含文件名);block存储文件内容的区域。一个文件必须占用一个inode,但至少占用一个block。

      inode号码(打开文件流程)
      (1)找到文件名对应的inode号码;
      (2)通过inode号码,获取inode信息;
      (3)根据inode信息,找到文件数据所在的block,并读出数据。

      inode大小
      每个inode的大小,一般是128字节256字节

      特有现象

    (1)文件名包含特殊字符,直接删除inode,能够起到删除文件的作用;

    find ./* -inum 节点号 -delete
    

    (2)移动文件或重命名文件,只是改变文件名,不影响inode号码;
    (3)打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。

    24. 关于bash中以下符号的说明哪些是正确的

    知识范围

  • Linux

    答案
    A. $0代表脚本的名称
    B. $@代表所有位置参数
    C. $# 代表位置参数的数量

    25. 关于 DELETE和 TRUNCATE TABLE的说法正确的是

    知识范围

  • 编程基础

    答案
    前者可以删除指定条目的记录,后者不能
    删除整张表的数据, truncate比delete更高效

    解析
    参考链接:删除数据(DELETE、TRUNCATE TABLE)

      delete
    # 删除表中记录行
    # 删除表中数据后,不会释放空间,且删除操作可以撤销
    DELETE FROM 表名 [WHERe 判断条件];
    
      truncate table
    # 删除表中所有数据
    # 操作执行更快,会释放空间,操作不可撤销
    TRUNCATE TABLE 表名;
    
    27. 以下哪些是TCP协议运行时阶段

    知识范围

  • 网络基础

    答案
    连接创建、数据传送、连接终止

    28. 以下关于超文本传输安全协议说法中正确的说法有

    知识范围

  • 网络基础

    答案
    非对称加密和对称加密都使用了。

    29. 下列有关守护线程描述正确的有

    知识范围

  • Java

    答案
    任何一个非守护线程没有结束,守护线程就全部工作
    当最后一个非守护线程结束时,守护线程随着JVM一同结束工作
    GC是守护线程
    守护线程产生的新线程也是守护线程

    30. Java接口的修饰符包括

    知识范围

  • Java

    答案
    public、final

    解析
    public、abstract、static、final


    1. 详细介绍可以查看参考链接。 ↩︎

    2. TCP和UDP的详细区别请看参考链接。 ↩︎

  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/712414.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号