1.将一组无序的数据重新排列成有序序列,其方法有()
a.拓扑排序
b.快速排序
c.堆排序
d.基数排序
答案是bcd
a中有向无环图通过拓扑排序算法遍历图中所有顶点,它并不是排序数据的算法。
2.某服务请求经负载均衡设备分配到集群A、B、C、D进行处理响应的概率分别是10%、20%、30%和40%。已知测试集群所得的稳定性指标分别是90%、95%、99%和99.9%。现在该服务器请求处理失败,且已排除稳定性以外的问题,那么最有可能在处理该服务请求的集群是__。
答案是ab
对于选择题来说,很快的计算:选中该集群,并且处理失败了的概率为:10%*10%、20%*5%、30%*1%、40%*0.1%。A与B的概率最高。
下面是正式的解法
令L代表服务器请求处理失败,A,B,C,D分别代表对应的集群处理响应。
则有P(A)=10%,P(B)=20%,P(C)=30%,P(D)=40%
P(L|A)=10%,P(L|B)=5%,P(L|C)=1%,P(L|D)=0.1%
题目要求P(X|L),X可取A,B,C,D,求其中的最大值。
根据贝叶斯概率公式
P(A|L)P(L)=P(L|A)P(A)=0.01
P(B|L)P(L)=P(L|B)P(B)=0.01
P(C|L)P(L)=P(L|C)P(C)=0.003
P(D|L)P(L)=P(L|D)P(D)=0.0004
其中,P(L)虽然未知,但不用计算,即可比较大小,得P(A|L)=P(B|L)>P(C|L)>P(D|L)
所以选A,B
3.下列说法正确的有( )
a.环境变量可在编译source code时指定
b.在编译程序时,所能指定的环境变量不包括class path
c.javac一次可同时编译数个Java源文件
d.javac.exe能指定编译结果要置于哪个目录(directory)
答案acd
javac有classpath参数,编译程序时候需要指定class path,要不编译器如何才能找到需要编译的程序,b错
在Java中,环境变量可在编译source code时指定
a选项-d即可设置系统属性
c选项一次编译多个java文件用javac *.java. 即可编译当前目录下的所有java文件
d选项-s指定存放生成的源文件的位置
javac -help
用法: javac
4.在Java中,下列说法错误的有( )
a.数组是一种对象
b.数组属于一种原生类
c.int number = []{31,23,33,43,35,63};
d.数组的大小可以任意改变
答案bcd
数组是对象,int float char这些基本类型不是对象。关于如何判断基本类型和对象,参考下面的:
行为:
基本类型只是一个值,没有任何行为
对象类型有自己的行为
内存分配:
基本类型在栈内分配
对象在堆内分配
对象引用保存在栈内
引用与值:
基本类型是值类型,仅表示一个值,保存在栈内
引用类型分两部分,对象引用保存在栈内,对象保存在堆内,
访问变量,是使用的引用找对象
java中的数据类型分类:
基本数据类型(或叫做原生类、内置类型)8种:
整数:byte,short,int,long(默认是int类型)
浮点类型: float,double(默认是double类型)
字符类型:char
布尔类型:boolean
引用数据类型3种:数组,类,接口
其中,基本数据类型之间除了boolean,其他数据类型之间可以任意的相互转换(强制转化或默认转换),这个与c++中有点区别。
数组长度一旦定义,不可改变
5.下列说法错误的有( )
a.能被java.exe成功运行的java class文件必须有main()方法
b.J2SDK就是Java API
c.Appletviewer.exe可利用jar选项运行.jar文件
d.能被Appletviewer成功运行的java class文件必须有main()方法
答案bcd
B :J2Sdk是Sun公司开发的编程工具。
java api是应用程序接口
C:JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件 。为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件)。打开方式java -jar
AppletViewer是与html有关的
D:appletviewer 提供了一个Java运行环境,在其中可测试小应用程序Applet。appletviewer 读取包含小应用程序的HTML文件并在一个窗口中运行它们。能被Appletviewer成功运行的java class文件没有main()方法
6.卡方分布的方差为2倍的自由度为?
答案是2n
卡方分布:若 n 个相互独立的随机变量ξ ₁ 、ξ ₂ 、……、ξ n ,均服从标准正态分布(也称独立同分布于标准正态分布),则这 n 个服从标准正态分布的随机变量的平方和构成一新的随机变量,其分布规律称为卡方分布( chi-square distribution )。
分布的均值为自由度 n ,记为 E(x^2) = n 。
分布的方差为 2 倍的自由度 (2n) ,记为 D(x^2) = 2n 。
7.如何减少换页错误?
a.进程倾向于占用CPU
b.访问局部性(locality of reference)满足进程要求
c.进程倾向于占用I/O
d.使用基于最短剩余时间(shortest remaining time)的调度机制
换页错误又称缺页错误,当一个程序试图访问没有映射到物理内存的地方时,就会出现缺页错误, 这时操作系统就要去虚拟内存中加载这块内存页。
减少换页错误的方法,即降低缺页中断率:
1、内存页框数。增加作业分得的内存块数。
2、页面大小。页面划分越大,中断率越低。
3、替换算法的优劣影响缺页中断次数
4、程序局部性。程序局部性好可减少缺页中断(为什么?)。
那么B是对的,而对于D,最短剩余时间调度是CPU调度就绪进程的方式,与页面置换算法无关,不要搞混淆了。
局部性原理是一个经典的原理,分为时间局部性和空间局部性,意思是应用一旦访问了一个空间的数据,则这个空间中的相邻区域的内容也很可能被访问,一旦访问了某一段代码,则其周围的代码也很可能被访问。局部性原理的运用就是根据这个,把可能访问的数据和代码都加在到内存中,以后访问就不用加载了(因为主要的消耗在IO端)。这也是迪杰斯特拉提出的goto语句有害的依据,应为goto语句能打破局部性原理,造成计算机的延迟加剧。
8.给出以下定义,下列哪些操作是合法的?
const char *p1 = “hello”;
char *const p2 = “world”;
a.p1++;
b.p1[2] = ‘w’;
c.p2[2] = ‘l’;
d.p2++;
值得注意的是:"hello""world"存放在字符串常量区,它是不能更改的,所以b编译报错;c程序执行会崩溃;p2指向不能改变,d错
9.以下集合对象中哪几个是线程安全的?( )
a.ArrayList
b.Vector
c.Hashtable
d.Stack
答案bcd
10.冯诺依曼 计算机
由CPU处理器、
运算器、
存储器( RAM, ROM等 )
输入设备、
输出设备五部分组成
11.有1000亿条记录,每条记录由url,ip,时间组成,设计一个系统能够快速查询以下内容
1.给定url和时间段(精确到分钟)统计url的访问次数
2.给定ip和时间段(精确到分钟)统计ip的访问次数
答:首先,1000亿条记录全部放到内存肯定不够,那就是分成小文件了,然后整合;
公共的时间段,因为精确到分钟,我们把这每一分钟建成一个小文件,每个小文件肯定会有许多重复的ip,url;
现在统计每个小的文件中url的访问量和ip的访问次数,方法就是建立索引;
(建立索引的目的是为了减少查询次数,但是随着索引级数增多也会造成花更多的时间在建立索引上);
建立url的索引,假如是www.nowcoder.com/question,可以分别给www.nowcoder.com和question建立索引,那么来了一条url,先看一级索引是不是匹配,匹配再看二级索引,相同的话就是我们要的url目标;
ip的索引也是一样,ip分成4段建立索引;
所以这里影响效率的就是在索引建立这块,索引建立好那就是查询的事了的,就会变得非常快。
假定给定了某个时间段,找出url的访问量,那么先找到给定的时间段,对应着刚开始分割的小的文件(每一个分钟)中搜索,通过索引找到相同的url之后,开始统计,直到搜索完所有的给定时间段内的所有的小的文件;
求ip的访问次数也是一样,按照给定的时间段,找到对应的小的文件,通过索引找到相同的ip后统计,直到搜索完了给定时间段内的所有的小的文件。
12.
实现一个简化的搜索提示系统。给定一个包含了用户query的日志文件,对于输入的任意一个字符串s,输出以s为前缀的在日志中出现频率最高的前10条query。
由于是分布式系统,假设至少有26台机器,每个机器存储以26个字母开头的query日志文件(如机器1存的是a字母开头的,机器2存的是以b字母开头的……)
每个机器上维护着一张哈希表,对于每条query, 在哈希表表中存放其地址(哈希地址为链式的),并对其进行排序,按频率由高到低进行排序。
当用户进行搜索时,可以很快定位到某台机器,并根据哈希表,返回出现频率最高的前10条query。
提示:
1、可以预处理日志
2、假设query不超过10亿条,每个query不超过50字节。
3、考虑在大查询量的情况下如何实现分布式服务
https://www.nowcoder.com/test/question/done?tid=7691582&qid=1890#summary
13.https://www.nowcoder.com/questionTerminal/27fd7594a4a84560bae5d831264c006a