笔试选择题汇总(随缘更新)

AOP面向切面编程?

简言之、这种在运行时,编译时,类和方法加载时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。

就是python的装饰器,,,,

 

 

例1  假设系统中有m个同类的互斥资源,当n个进程共享这m个互斥资源时,每个进程的最大需求数是w。在下列情况中,系统可能会产生死锁的是______。

A.m=4,n=3,w=2

B.m=4,n=2,w=3

C.m=5,n=2,w=3

D.m=5,n=3,w=2

答案是B。

笔试选择题汇总(随缘更新)_第1张图片

就是个估算问题,给每个进程分配资源。如A, 先给3个进程分给1个资源,总资源还剩一个,这种情况不会死锁。

对于B, 先给2个进程每个分配1个资源, 还剩两个, 再分配一次, 系统没资源了,但是进程需求是3, 进程会发生抢占现象。

 

或者用公式:
m >= n(w-1)+1 才不会出现死锁, 翻译下就是,资源总数 >= 进程数 * (每个进程需求资源数-1) +1

 

例2 m个进程共享n个互斥资源,则每个进程最多申请__个资源时, 系统才不会死锁?

根据m >= n(w-1)+1 求出w,   w<= (m+n-1) / m

 

关注Java3y公众号的概率是5%,收藏Java3y的文章概率是20%,收藏Java3y的文章后会关注Java3y的公众号的概率是20%,已知某开发者看到Java3y公众号之后关注了。那么该开发者收藏过Java3y的文章概率是多少?

通俗解析:

  • 1、关注概率=5%。
  • 2、关注有两种情况,收藏关注,不收藏关注 。
  • 3、收藏关注概率=0.2*0.2=0.04,那么不收藏关注的概论是0.01
  • 4、在已知用户购买的情况下:收藏的概率是0.04/(0.01+0.04)=80%

公式解析:

  • 设A为关注,B为收藏。 已知P(A)=5%, P(B)=20%, P(A|B) = 20%。,所以P(B|A)=P(AB)/P(A) = P(A|B)P(B)/P(A) = 80%.

 

 

假设基准值为数组首元素的快速排序,要使得数组满足非降序排列,下列数据分布导致快排算法效率最低的是____。

  • 2-6-3-7-5-1-4
  • 6-2-3-5-4-1-7
  • 7-5-3-2-4-1-6
  • 1-5-7-2-4-6-3
  • 1-2-3-4-5-6-7
  • 4-1-3-7-5-6-2

解析:基本有序的情况下:快排最慢。所以选择的是1-2-3-4-5-6-7

 

关与线程和进程,描述正确的是(多选):

  • A:同一个进程的线程之间共享内存,包括堆和栈
  • B:线程在资源消耗上通常要比进程轻量
  • C:进程的隔离性要好于线程
  • D:进程间有途径共享大量内存中的数据

解析:选择BCD

  • A选项:栈数据是线程自有的
  • B选项:引出线程就是因为(管理/切换/创建/销毁进程)进程消耗资源太多了
  • C选项:进程之间的资源是独立的,子进程使用copy_on_write技术复制父进程的资源;而同一个进程中的线程共享资源,每个线程拥有自己的栈和相应的寄存器;
  • D选项:用于进程间通讯(IPC)的四种不同技术:
    • 一、 消息传递(管道,FIFO,posix和system v消息队列)
    • 二、 同步(互斥锁,条件变量,读写锁,文件和记录锁,Posix和System V信号灯)
    • 三、共享内存区(匿名共享内存区,有名Posix共享内存区,有名System V共享内存区)
    • 四、 过程调用(Solaris门,Sun RPC)

 

var x= 1;

var y = 0;

function add(n){

        n = n+1;

}

y = add(x);

  • A. 1
  • B. 2
  • C. 3
  • D. undefined

解析:选择D

  • 没有明确的return,返回的是undefined

 

下列哪些是JSON格式结构(多选)

  • A. {id:'1',name:'do1'}
  • B. ['java','javascript']
  • C. {'java','javascript'}
  • D. [id:'1',name:'do1']

解析:选择AB

类似pyhon的字典和列表, 不过这个字典的键没有引号。

  • JSON建构于两种结构:
    • “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
    • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

 

 

下列对正则表达式描述正确的是:

  • A. \D匹配一个数字字符
  • B. \s匹配任何不可见字符,包括空格,制表符,换页符等等
  • C. \t匹配一个换页符
  • D. \n匹配回车换行符

解析:选择B

  • \D匹配一个非数字字符
  • \s匹配任何不可见字符,包括空格、制表符、换页符等等
  • \t匹配一个制表符。
  • \n匹配一个换行符。
    • \r匹配一个回车符

 

 

 

Linux解压的命令(多选)

  • A. tar zxvf filename.tar
  • B. gzip -d filename.gz
  • C. gzip filename
  • D. tar czxf filename.tar

解析:选择AB

  • 考察Linux的解压命令

 

 

有一亿条记录,每条记录有id,ip,时间组成。设计一个系统能够快速查询以下内容:给定ip和时间段(精确到分钟)统计ip的访问次数,请写出创建SQL的语句

答:首先,1000亿条记录全部放到内存肯定不够,那就是分成小文件了,然后整合;
公共的时间段,因为精确到分钟,我们把这每一分钟建成一个小文件,每个小文件肯定会有许多重复的ip,url;
现在统计每个小的文件中url的访问量和ip的访问次数,方法就是建立索引;
(建立索引的目的是为了减少查询次数,但是随着索引级数增多也会造成花更多的时间在建立索引上);
建立url的索引,假如是www.nowcoder.com/question,可以分别给www.nowcoder.com和question建立索引,那么来了一条url,先看一级索引是不是匹配,匹配再看二级索引,相同的话就是我们要的url目标;
ip的索引也是一样,ip分成4段建立索引;
所以这里影响效率的就是在索引建立这块,索引建立好那就是查询的事了的,就会变得非常快。
假定给定了某个时间段,找出url的访问量,那么先找到给定的时间段,对应着刚开始分割的小的文件(每一个分钟)中搜索,通过索引找到相同的url之后,开始统计,直到搜索完所有的给定时间段内的所有的小的文件;
求ip的访问次数也是一样,按照给定的时间段,找到对应的小的文件,通过索引找到相同的ip后统计,直到搜索完了给定时间段内的所有的小的文件。

 

 

 

你可能感兴趣的:(面劫)