1.以下哪些方法或场景不会导致 java 线程阻塞?( ) 1.工作方案 求职必备刷题官网:https://github.com/bennyrhys/interview一、单选题
A. 调用wait() 方法
B. 系统IO 阻塞
C. 调用notify()方法
D. 调用sleep(1000) 方法
2.假设现在有一个数组长度为 80,使用选择排序为其排序,再已经排序了 40 次的情况下,那么现在有多
少项被保证处于最后的位置(永远不再移动)( )
A. 20
B. 39
C. 40
D. 41
E. 60
3.一个数组求其最长递增子序列(LIS),例如数组{3, 1, 4, 2, 3, 9, 4, 6}的LIS是{1, 2, 3, 4, 6},长度为 5,假
设数组长度为 N,求数组的 LIS的长度,那么最好的解法情况下,时间复杂度和空间复杂度都是多少?( )
A. 时间: O(N^2), 空间:O(N)
B. 时间: O(NlogN), 空间:O(N)
C. 时间: O(N), 空间:O(N)
D.时间: O(N), 空间:O(NlogN)
E. 时间: O(NlogN), 空间:O(NlogN)
4.以下哪个排序算法中,元素的比较次数元素与元素的初始排列无关( )
A. 希尔排序
B. 快速排序
C. 归并排序
D. 直接插入排序
E. 选择排序
5.下面关于归并排序的说法错误的有( )
A. 将k 个已经排序的数组归并成一个大的排序的结果数组。这些数组可能数量比较大,以至于不能直接
装载到内存中,可以选择最小堆 k 路归并排序来优化算
B. 归并排序是稳定的排序
C. 在实际中,归并排序比快速排序要快,因为它的比较次数少,所以大部分排序算法底层是归并排序
D. 对于长度为 N 的数组,使用归并排序,时间复杂度最差也是 O(NlogN)
6.用二分法查找长度为 129 的排好序的线性表,最多需要比较多少次才能查找到所需要的元素。( )
A. 7
B. 8
C. 9
D. 128
E. 65
7.下面关于内存管理方式错误的有?()
A. 页式管理把内存空间按页的大小划分成片或者页面,然后把页式虚拟地址与内存地址建立一一对应的
页表
B. 页式管理采用请求调页或预调页技术来实现内外存存储器的统一管理
C. 段页式管理是段式管理与页式管理方案结合而成的,具有它们两者的优点,所以使执行速度提升了。
D. 段式管理优点是可以分别编写和编译,可以针对不同类型的段采取不同的保护,可以按段为单位来进
行共享,包括通过动态链接进行代码共享
8.( )完成域名到 IP 地址的映射,( )实现MAC 到 IP 地址的映射
A. DNS,ARP
B. DNS,RARP
C. ICMP,ARP
D. ICMP,RARP
E. FTP,ARP
9.以下关于TCP协议说法正确的有?()
A. TCP协议有拥塞控制功能,但是不能进行流量控制
B. TCP在视频流传输方面取代了 UDP 的功能
C. TCP建立连接需要3 次握手,3 次握手也可能对其造成被 flood 攻击的可能
D. TCP是HTTP,FTP,TFTP的底层实现协议
10.以下不属于线程共享的内容是?()
A. 代码段(code segment)
B. 进程用户ID 与进程组 ID
C. 进程打开的文件描述符
D. 数据段(data section)
E. 栈空间
11.下面关于HashMap 和Hashtable 说法错误的有?()
A. HashMap 不能保证元素的顺序,HashMap 能够将键设为 null
B. Hashtable 不能将键和值设为 null,否则运行时会报空指针异常错误
C. HashMap 线程不安全,Hashtable 线程安全
D. HashMap 使用键/值得形式保存数据,但是允许一次只插入键或者值
12.下面关于线程的方法叙述错误的是?()
A. run()方法用来执行线程体中具体的内容
B. sleep()方法用来使线程进入睡眠状态
C. start()方法用来启动线程对象,使其进入就绪状态
D. suspend()方法用来使线程挂起,要通过 start()方法使其重新启动
13.下面关于java static 的描述错误的有?()
A. static 表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,但是不能来修饰代码块
B. static int arr[] = new int[5];arr 里面的数字全部都会初始化为 0
C. 对于静态变量在内存中只有一个拷贝,JVM只为静态分配一次内存,在加载类的过程中完成静态变量
的内存分配,可以通过对象来访问
D. static 对象可以在它的任何对象创建之前访问,无需引用任何对象
14.下面哪些是合法的 java 数组声明?( )
(a) int a();
(b) float b[];
© double[] c;
(d) counter d[];
A. a 和b
B. a 和c 和d
C. b 和c
D. c 和d
15.下面 java 代码的输出为?()
1.import java. util .HashMap;
2.import java.util. Iterator;
3.public class Main {
4.public static void main(String[] args) {
5.HashMap map = new HashMap< Integer, Integer>();
6.map. put(1, “wangyi”);
7.changeHashMap (map);
8.for (Iterator it = map. keySet(). iterator(); it.hasNext()😉 {
9.object key = it.next();
10.System. out. print1n(key + “=” + map.get(key));
11. }
12.}
13.static void changeHashMap(HashMap map) {
14.map = new HashMap<Integer, String>();
15.map.put(1, “163”);
16. }
17.}
A. 1=wangyi
B. 1=1 63
C. 1=
D. 编译出错
16.在当前目录下查找深度为 2 级目录,并且创建时间是 7 天前的文件,然后删除,正确的是:( )
A. find -maxdepth +2 -mtime +7 -type file -exec rm
B. find -maxdepth 2 -mtime +7 -type f | xargs rm
C. find -maxdepth +2 -mtime -7 -type file -exec rm
D. find -maxdepth 2 -mtime 7 -type f | xargs rm
17.下面关于进程说法正确的是:( )
A. 同步进程必定是阻塞的,异步进程必定是非阻塞的
B. 同步进程必定是非阻塞的,异步进程必定是阻塞的
C. 进程同步异步,和阻塞非阻塞没有直接关系
D. 进程同步异步,和阻塞非阻塞有着必然关系
18.已知shell 脚本num.sh 如下:
#!/bin/bash
n=0
function foo1(){
((n++))
echo $n
}
function foo2(){
((n–))
echo $n
}
echo $n
foo1
foo2
那么运行sh num.sh 结果正确的是:( )
A. 0 1 0
B. 0 0 0
C. 0 1 -1
D. 1 0 0
19.有一个记录工人和部门的表 relation(dep_id, worker_id),字段表示部门id 和工人 id,希望计算得到每
个部门的工人个数信息,下面的 sql 语句正确的是有一个记录工人和部门的表 relation(dep_id,
worker_id),字段表示部门 id 和工人id,希望计算得到每个部门的工人个数信息,下面的sql 语句正确的是 ( )
A. select dep_id,sum(work_id) from relation
B. select dep_id,count(work_id) from relation
C. select dep_id,sum(work_id) from relation group by dep_id
D. select dep_id,count(work_id) from relation group by dep_id
20.下面哪个注解是在spring 中用作事务控制?( )
A. @Transaction
B. @Transactional
C. @Service
D. @Autowired二.编程题
牛牛手中有s 份工作需要完成,牛牛准备将工作分给三位员工。考虑到三位员工还有其他工作需要做,牛牛
规定他们每人必须要参与的工作数量分别是 a,b,c。 牛牛需要制定详细的工作方案,需要满足每份工作至
少有一个人做,同一份工作可以由两个或者三个人共同参与。牛牛一下意识到可能的工作方案很多,牛牛
需要你帮他计算一下一共有多少种不同的工作方案(对于两种方案,如果某份工作分配的人或者人数不一
样就考虑为不一样的工作方案)。
对于输入样例,s = 3, a = 3, b = 1, c = 1 a 要参与所有三份工作,b 和c 各自有三种选择,所以不同的工作方案
是3 * 3 * 1= 9 如果s = 3, a = 1, b = 1, c = 1 相当于对三个员工做全排列,所以不同的工作方案是 3 * 2 * 1 = 6
输入描述:
输入包括一行,一行包括4 个正整数s,a,b,c(1 ≤ s ≤ 50, 1 ≤ a, b, c ≤ s),分别表示需要完成的工
作份数,每个员工必须要参与的工作数量。
输出描述:
输出一个正整数,表示不同的方案种数,答案可能很大,输出答案对 1000000007 取模。
输入例子 1:
3 3 1 1
输出例子1:
9
2.数轴
牛牛非常喜欢和朋友们一起玩。 牛牛有n 个朋友当前在一根数轴上,每个朋友当前在整数x[i]坐标位置。
牛牛向他们发出一个移动的信号,每个朋友就向左或者向右移动 s 距离(每个朋友的选择是独立的,都可以选
择向左或者向右)。 为了在一起玩耍方便,牛牛希望移动之后最左边的朋友和最右边的朋友距离最近,牛牛
想知道最近距离为多少。
例如牛牛有三个朋友分别所在数轴坐标为-7, 4, 7, s = 5 那么第一个朋友-7 向右移动 s,变为-2 第二个朋友4
向左移动s,变为-1 第三个朋友 7 向左移动s,变为2。 现在最左和最右的朋友距离是 4,没有比这个更优的方
案了。
输入描述:
输入包括两行,第一行两个正整数 n 和s(2 ≤ n ≤ 50, 0 ≤ s ≤ 10^8),表示朋友的个数和移动的距离。
第二行包括n 个正整数x[i](-10^8 ≤ x[i] ≤ 10^8),表示初始时每个朋友所在的坐标位置。
输出描述:
输出一个正整数,表示移动之后最左边的朋友和最右边的朋友最小距离为多少。
输入例子 1:
3 5 4 -7 7
输出例子 1:
4
3.骰子游戏
小易参加了一个骰子游戏,这个游戏需要同时投掷 n 个骰子,每个骰子都是一个印有数字 1~6 的均匀正方
体。
小易同时投掷出这 n 个骰子,如果这n 个骰子向上面的数字之和大于等于 x,小易就会获得游戏奖励。
小易想让你帮他算算他获得奖励的概率有多大。
输入描述:
输入包括两个正整数n 和x(1 ≤ n < 25, 1 ≤ x < 150),分别表示骰子的个数和可以获得奖励的最小数字
和。
输出描述:
输出小易可以获得奖励的概率。
如果概率为1,输出1,如果概率为 0,输出 0,其他以最简分数(x/y)的形式输出。
输入例子 1:
3 9
输出例子 1:
20/27
【更多互联网公司笔试面试真题请关注“让我遇见相似的灵魂”公众号】
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算