测试复盘1

1. IPV4中,数据包传播方式包括以下的:广播、单播、组播。

    IPV4不支持任播(anycast),IPV6支持。

  • 单播(unicast):     点到点一对一通信。将数据包发送到某一主机
  • 广播(broadcast): 将数据包发送到局域网内所有主机
  • 组播(multicast):  又叫多播,传播范围介于单播和广播之间。将数据包发送到加入同一组的主机

 

2. 以下关于数据库中索引的描述正确的是()

  A. 只要允许,任何时候都应该添加索引以加快查询速度

  B. 无论记录多少,使用索引都能给查询带来性能提升

  C. 每次update/ insert/ delete操作都会导致索引被重新更新

  D. 索引可以避免全表扫描

解析:

对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。对于那些只有很少数据值的列也不应该增加索引。当减少索引时,会提高修改性能,降低检索性能。因此,当修改操作远远多于检索操作时,不应该创建索引。故AB错误。

如果update更新的列是是非主键和非包含时,索引不会不更新,故C错误。

使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据。说明索引可以避免全表扫描,但不是一定避免全表扫描,故D正确。

答案:D                   参考答案:CD 

 

3. 事务的四个特性:ACID(数据库事务正确执行的四个基本要素的缩写):

  • 原子性(Atomicity): 原子性是指事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生。
  • 一致性(Consistency):一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
  • 隔离性(Isolation):隔离性是指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被企图进行修改的事务看到 。
  • 持久性(Durability):持久性是指在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。 即使出现了任何事故比如断电等,事务一旦提交,则持久化保存在数据库中。

 

4. 软件工程是一种自顶向下分阶段实现的软件工程开发的方法。

 

5. Linux操作系统中有如下的文件结构:

  $HOME/aaa

  $HOME/aaa/bb/a.txt

  $HOME/aaa/my.c

  请问如果要删除aaa文件夹,要执行的操作是:()

    A. rm -rf $HOME/aaa

    B. rmdir -f $HOME/aaa

    C. rmdir $HOME/aaa

    D. rm $HOME/aaa

解析:linux下rm和rmdir的区别和使用:

   一、rmdir:删除一个空的目录

    rmdir 1 2:一次删除了空目录1、2(一次删除两个目录,用空格分开)

 

 

    1. -v选项:提示

       rmdir -v dirname  结果: 操作成功后都会有提示信息。

    2.-p选项:级联删除

      ①目录1122/1

      rmdir -p -v 1122/1  结果:先删除1122/1,再删除1122。

      ②目录1122/1  1122/2

 

         rmdir -p -v 1122/1  结果:删除1122/1,再删除1122时错误,因为此时1122不是空文件夹。

   二、rm:删除文件或者目录(不能直接删目录)

    -r 表示递归,即删除文件夹及其子文件和子文件夹。

    -f 表示force即暴力,无视提示信息

    1. -f选项:不管目录下的文件存在不存在,都不给予提示

 

      目录1122/1/a,1122/1为目录,a为文件

      ① rm -f 1122/1  结果:提示1122/1为目录,不能删除

      ② rm 1122/1/a  结果:成功,但是没有任何提示

 

      ③ rm -f 1122/1/a  结果:成功,但是没有任何提示

      ④ rm 1122/1/b  结果:提示无法删除1122/1/b:没有那个文件或目录

      ⑤ rm -f 1122/1/b 结果:1122/1/b不存在,但是没有任何提示

     2. -rf 组合删除:删除该目录以及该目录下的所有文件

      目录1122/1/a  1122/2

      rm -rf -v 1122 结果:先删1122/1/a再删1122/1,再删1122/2最后删1122

答案:A

 

6. 执行如下程序代码后,sum的值是()

char chr = 127;
int sum = 200;
chr += 1;
sum += chr;

A. 72  B. 99  C. 328  D. 327

解析:C语言中char类型可以看作是一个1个字节(8个位)的低精度整型。以整数角度来看,它能表示的整数范围是:-128~127,当chr += 1之后,此时chr的值变成128,但是这时候发生了溢出。chr的值为-128,所以sum+=chr为:200-128=72。

Java语言中,char类型占两个字节,答案为328。

 

 

7. 下面可用于字符串复制的函数有:

A. strcpy  B. sprintf  C. strcmp  D. strstr  E. memcpy

解析:strcpy:将一个字符串复制给另一个字符串;

   sprintf:将结果写入字符串缓冲区。

   strcmp:字符串比较函数

   strstr:求子串的函数

   memcpy:内存拷贝函数

答案:ABE

 

8. linux操作系统中,修改用户密码的命令是passwd。

 

9. 

 

 

解析:Linux系统下使用chmod命令修改文档及文件夹权限:参考博客:https://blog.csdn.net/gingerredjade/article/details/8147120

  1. 此命令有两种使用方法,一种是chmod后加数字,后接文件名:

    chmod abc file

  其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

  r=4,w=2,x=1

  若要rwx属性则4+2+1=7;

  若要rw-属性则4+2=6;

  若要r-x属性则4+1=5。

  2另一种是chmod后边加字母,后接文件名

  综上所述,当想用chmod命令来改变权限时,文件的用户身份主要有如下几类:

   u:拥有文件的用户(所有者);

   g:所有者所在的组群;

   o:其他人(不是所有者或所有者的组群);

   a:每个人或全部(u、g、和o)。

  用户所具有的文件访问权限类型如下:

   r:读取权;

   w:写入权;

   x:执行权。

  文件权限配置行为有如下几类:

   +:添加权限;

   -:删除权限;

   =:使它成为惟一权限。

答案:C

 

10.

 

 

答案:全选

 

11. 下列关于Java集合类的相关描述正确的是()

A. Collection是最基本的集合接口,JDK中提供的集合类如List、Map等都是继承自Collection的子接口

B. ArrayList和LinkedList都实现了List接口,且他们都是线程同步的

C. Set是一种不包含重复的元素的Collection

D. HashMap可以通过hashcode对其内容进行快速查找

解析:Map不是继承自Collection的子接口,故A错;ArrayList和LinkedList不是线程同步的,故B错。

答案:CD

 

12. 单例模式中,两个基本要点是:构造函数私有唯一实例

 

13. Linux文件权限一共10位长度,例如“drwxr-xr-x”,分为四部分,第三部分的xr表示的内容是()。

A. 文件所有者有读权限

B. 文件所有者有执行权限

C. 文件所有者所在组的有读权限

D. 文件所有者所在组的执行权限

解析:Linux文件权限:

 文件权限十位(九位rwx):

 

第一位字母(表示文件类型) 文件类型
d 目录(文件夹)
l 链接
- 文件
b 表示里面可以供存储周边设备
c 表示里面为一次性读取装置

 

9位rwx从左到右 rwx   读、写、执行 rwx rwx
所有者 root(文件所有者) group(文件所有者所在组) user(其他人)

参考博客:https://blog.csdn.net/learningning/article/details/78856869https://blog.csdn.net/asd8705/article/details/51893134

答案:CD 

 

 

14. 下面选项中,哪些是interface中合法方法定义?()

A. Public void main(String [] args);

B. private int getSum();

C.boolean setFlag(Boolean [] test);

D. public float get(int x);

解析:接口中的常量和方法必须是public的访问权限,故B错误,D正确。A中无static,只是方法名称和参数名称取的比较特殊的方法,故A正确。C没有显示标明访问修饰符,接口中的方法默认是public的,故C正确。

答案:ACD

 

15. 下述程序的输出结果为()。

public class foo {]

    public static void main(String sgf[]) {
        StringBuffer a=new StringBuffer(“A”);
        StringBuffer b=new StringBuffer(“B”);
        operate(a,b);
        System.out.println(a+”.”+b);
    }

    static void operate(StringBuffer x,StringBuffer y) {
        x.append(y);
        y=x;
    }
}    

A. 输出“B”  B.输出“A,A”  C.输出“AB,B”  D. 输出“AB,AB”

解析:Stringbuffer 有append()方法 

    Stringbuffer其实是动态字符串数组 

    append()是往动态字符串数组添加,跟“xxxx”+“yyyy”相当那个‘+’号 

  本题中,operate方法效果为:在x所指向的动态字符串数组“A”后添加y动态字符串数组中的值“B”,值变为“AB”,再将y指向x数组。此时,a所表示的动态字符串数组为“AB”,而b所表示的动态字符串数组无变化,仍为“B”。

答案:C

PS:Java中对于+和append拼接字符串效率的误解

 

16. 方法通常存储在进程中的哪一区()

A. 堆区  B. 栈区  C. 全局区  D. 方法区

解析:java内存模型:

1,程序计数器:标记当前线程执行的字节码,用于线程切换能恢复到正确位置,是线程私有的。

2,虚拟机栈(有的也叫java栈):存储基本数据类型和对象引用、存储局部变量表、操作数栈、动态链接和方法出口等,也是线程私有的。

3,本地方法栈:为本地方法服务的栈。

4,堆(heap):主要用来存储对象的实例,也是垃圾回收的主要对象,是线程公共的。

5,方法区:用于存储被虚拟机加载的类的信息、常量、静态变量等数据。

博客:史上最详细JVM,Java内存区域讲解

答案:D

 

17. 有时为了避免某些未识别的异常抛给更高的上层应用,在某些接口实现中我们通常需要捕获编译运行期所有的异常,catch下述哪个类的实例才能达到目的:()

A. Error  B. Exception  C. RuntimeException  D. Throwable

解析:error是系统出错,catch是无法处理的,难以修复的,RuntimeException不需要程序员进行捕获处理,error和exception都是throwable的子类,我们只需要对exception的实例进行捕获即可 

参考博客:https://blog.csdn.net/shujuelin/article/details/82835506

答案:B

 

18. 

void foo(void) { 
    unsigned int a = 10; 
    int b = -20; 
    (a+b > 10) puts("> 10") : puts("<= 10")
}

输出的是什么

A. > 10  B. <= 10

解析:如果整型变量间进行数据运算,只要有一个变量是无符号的,结果就按无符号数据计算。

答案:A

 

19. 以下运行结果:

for(var i = 0; i < 10; i++) {
    setTimeout(function() {
        console.log(i);
    }, 1000);
}

 

A. 0--9  B.10个10  C.10个9  D.无限循环

解析:setTimeout是异步的,setTimeout中的闭包函数是每1s执行一次,由于for循环的执行速度远小于1s,所以当开始执行闭包函数的时候for循环已经结束了(i=10),之后闭包函数执行十次(因为循环了10次),所以打印了10个10。

答案:B

 

 

20. Java中,有继承关系时,变量隐藏的原则?

子类中变量名与继承自父类的变量名相同时,则继承自父类的变量将被隐藏。 4、Java中,有继承关系时,方法重写原则? 

重写后的方法不能比被重写的方法有更严格的访问权限(可以相同) 

改写后的方法不能比重写的方法产生更多的例外(异常) 5、Java中,super关键字的作用? 调用构造方法: 

Super()必须是子类构造函数第一个执行的语句,如果super()没有被用到,每个超类的默认的或无参数的构造函数将被执行。

调用被隐藏变量及方法: 

 

可通过super关键字调用被隐藏的父类中的变量及方法。

 

21.  Java中,是否支持多继承?

不支持多继承,允许多层继承

 

22. 重载方法是如何进行匹配的?

在方法调用进行匹配的时候,首先选择直接匹配的方法;如果没有则将参数进行提升转换后再匹配方法,总是匹配最接近的方法 

对于基本数据类型而言,就是按照基本数据类型间的自动转换关系,将传递的参数进行自动转换,并寻找最匹配的一个方法 

 

对于对象应用类型而言,则按照继承树向上转型的方式,将传递的参数进行自动转换, 并寻找最匹配的一个方法 

 

23. 一个引用类型的变量可以指向哪些对象?

一个引用类型的变量可以指向由其本类所构造出来的对象,还可以指向由其子类及子孙类所构造出来的对象。

 

24. 什么时候为类中的实例变量分配内存空间?

在使用类创建实例对象时会为其分配空间。(通过new关键字和构造函数为其实例化的时候)

 

 

 

1此命令有两种使用方法,一种是chmod后加数字,后接文件名
chmodabcfile
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。

 

posted @ 2019-09-10 11:52  19呀  阅读(1198)  评论(2编辑  收藏  举报