选择题

1. 下述解决死锁的方法中,属于死锁预防策略的是?

A. 银行家算法    避免死锁  允许进程动态地申请资源,但在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。 B. 资源有序分配法  预防死锁  预防死锁是设法至少破坏产生死锁的必要条件之一,严格预防死锁出现。 C. 资源分配图化简法 检测死锁  允许死锁发生,定期检测。 D. 撤销进程法    解决死锁   【银行家算法】   1. 当进程首次申请资源时,测试其对资源的最大需求量,如果系统当前资源能满足该最大需求量,那么就按该进程的当前申请量分配资源,否则就推迟分配;   2. 当进程在执行过程继续申请资源时,先测试该次申请的资源量是否超过现存资源量,如果不超过就分配,否则拒绝并推迟分配。 2. 下列代码的输出结果是?

boolean result=false?false:true==false?true:false;
System.out.println(""+result+"");

【解析:】正确答案:false

三目运算符的执行顺序是自右向左。

3. 下列代码的输出结果是?

public class NULL {
    public static void print(){
    System.out.println(“MTDP”);
    }

    public static void main(String[] args) {
        try {
            ((NULL) null).print();
        } catch (NullPointerException e) {
            System.out.println("NullPointerException");
        }
    }
}

【解析:】正确答案:MTDP

null 是java的关键字,无需事先声明,可将其赋值给任何“引用类型”,也可以直接
转化成某种“引用类型”,但是 null 既不是对象也不是一种类型,他只是一种特殊的值。所以(NULL)null.print();是一种类名调用,而非对象调用,当把print()方法的static声明去掉后,该段代码将会输出“NullPointerException”。

4. 继承问题

  ①子类继承自父类的方法,控制符的访问级别必须大于或等于父类:public > protected > 无(默认)> private   ②重写的方法,不能抛出新的异常,不能抛出检查范围更大的异常,可以抛出范围更小、更少的异常,甚至可以不抛异常。

5. 进程和线程是操作系统中最基本的概念,下列有关描述错误的是?

A. 进程是程序的一次执行,而线程可以理解为程序中运行的一个片段 B. 由于线程没有独立的地址空间,因此同一个进程的一组线程可以访问该进程资源,这些线程之间的通信也很高效 C. 线程之间的通信简单(共享内存即可,但须注意互斥访问的问题),而不同进程之间的通信更为复杂,通常需要调用内核实现 D. 线程有独立的虚拟地址空间,但是拥有的资源相对进程来说,只有运行所必须的堆栈,寄存器等

【解析:】正确答案:B

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。 进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。 线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

6. 1024!的末尾有多少个0?

【解析:】末尾0的个数取决于乘法中因子2和5的个数。显然乘法中因子2的个数大于5的个数,所以我们只需统计因子5的个数。是5的倍数的数有: 1024 / 5 = 204个

是25的倍数的数有:1024 / 25 = 40个

是125的倍数的数有:1024 / 125 = 8个

是625的倍数的数有:1024 / 625 = 1个

所以1024! 中总共有204+40+8+1=253个因子5。

也就是说1024! 末尾有253个0。

7. 从 n 个数中找出最小的 k 个数(n>>k),最优平均时间复杂度是多少?

【解析:】正确答案:O(nlogk) 视 n 与 k 的大小关系而定: 1. 当k接近于N时:先直接排序,再取排序后数据的前k个数。排序算法用最快的堆排序,复杂度也会达到O(N*logN)。

2. 当k很小时:先排序前k个数,对于后面N-k个数,依次进行插入。时间复杂度为O(k*n)。

3. 当k和N都很大时:对前k个数,建立最大堆,对于后面N-k个数,依次和最大堆的最大数比较,如果小于最大数,则替换最大数,并重新建立最大堆。时间复杂度为O(N*logk)。

8. 一台主机安装了1GB的内存,操作系统为支持MMU的32位Linux发行版,现在运行了abc三个进程,以下哪些使用内存的方式是可以实现的?

【解析:】有虚拟内存,可以申请大于物理内存的内存空间,但是32位系统最多只能寻址4GB空间,只要abc三个进程申请的资源小于4G即可。 9. 红黑树 10. 有四个整数,用8位补码分别表示为r1=FEH, r2=F2H, r3=90H, r4=F8H。运算结构存入8位寄存器中,不会溢出的是?

【解析:】用补码表示时8位寄存器所能表示的整数范围为-128到+127。

X = xyH,X的十进制值即为:
(x*16+y)-256  正数不需要-256,补码最高位为1,为负数。 r 1 =(15×16+14)-256=-2;

r 2 =(15×16+2)-256=-14;

r 3 =(9×16+0)-256=-112;

r 4 =(15×16+8)-256=-8;

则r 1 ×r 2 =28,r 2 ×r 3 =1568,r 1 ×r 4 =16,r 2 ×r 4 =112,只有r 2 ×r 3 结果溢出。 11. TCP的有限状态机
《选择题》

12. 下面对于cookie的描述中正确的是?

A. 用于实现session跟踪技术
B. Cookie是由服务器保存在客户端的文本文件,大小限制在4kb左右
C. Cookie在服务端与客户端之间往返时通过HTTP Headers进行传输
D. HTTP请求中的Cookie是加密传递的

【解析:】正确答案:ABC 在HTTP请求中的cookie是明文传递的,所以安全性成问题。(除非用HTTPS) 13. 关于数据库索引,以下说法正确的是?

A. 针对某些字段建立索引,能够有效的减少相关数据库表的磁盘空间占用
B. 针对某些字段建立索引,能够有效的提升相关字段的读与写的效率
C. 常见数据库管理系统,通常使用hash表来存储索引
D. 数据库索引的存在,可能导致相关字段删除的效率降低

【解析:】正确答案:D

A:增加索引会增加磁盘占用
B:建立索引可以提升查询速度,即读速度;但在一定程度上降低写速度
C:数据库一般使用B*树作为索引
D:删除数据需要调整索引,所以会降低效率

14. 

 

    原文作者:zhengmengen
    原文地址: https://www.cnblogs.com/zhengmengen/p/7454599.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞