之前在牛客网做过很多题,得到了许多帮助,现在我也来分享一下我做过的试题~~


一、选择题(20

1、以下没有用栈来实现的应用场景是:A

A 进程调度

B 函数调用

C 表达式求值

D 树的节点的深度优先遍历

 

2、不定项选择,如下算法的时间复杂度D


A O(n^3)

B O(n)

C O(n!)

D O(n^2)

 

3、如果需要对10w个英文单词进行前缀匹配检索,下面哪种数据结构最合适:(B)

A B+

B Trie

C AVL

D 哈希表

 

 

 

4、给定8个同样形状的硬币和一个天平,其中有一个硬币比其他硬币都重,找到该硬币需要的最少次数:A

A 2

B 1

C 4

D 3

 

5、函数Fn=F(n-1)+n+1(n>1)的递归终止条件是B

A  F(0)=1

B  F(1)=1

C  F(0)=0

D  F(1)=0

 

6、给定一个数组2 3 5 6 1 7 8 4 9,建立初始堆(最小堆)后,数组序列是多少C

A 123657849

B 125437689

C 125437869

D 125637849

 

7、CPU利用率与并发进程的关系是D

A 进程数多,提高并发进程数,可提高CPU利用率

B 并发进程的内存访问会增加了访存的局部性特征

C 并发进程导致内存访问减小

D 局部性特征的下降会导致缺页率上升和CPU利用率下降

 

8、有个500*400的稀疏矩阵,有20个非零元素,上每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是C

A 134

B 120

C 126

D 124

 

9、一个字符串由7A7B组成,且满足所有的前缀字符串中的A的个数大于等于B的个数,问这样的字符串有多少个B

A 431

B 429

C 430

D 428

 

10、在关键词随机分布的情况下,二叉查找树的查找长度与哪些查找相当:B

A 插值查找

B 二分查找

C 菲波那契查找

D 顺序查找

 

11、java集合中迭代器中iteratorfail-fast(快速失败)机制,抛出的是什么异常B

A ClassCastException异常

B ConcurrentModificationException异常

C NullPoinException异常

D SecturityException异常

 

12、关于java类加载,正确的是C

A 在生成某个类的.class文件时,该类被加载到JVM

B NoClassFeffoundError表示在编译时这个类是不能够被找到的

C 类加载器的体系并不是“继承”体系,而是一个“委派”体系

D 某个类可能由于被不同的类调用而被加载多次

 

13、java程序进行调优,会关注以下两个目标:响应能力和吞吐量,关于这两项目目标描述错误的是A

A 更重视吞吐量的系统,比重视响应能力的系统更加不能接受较长的停顿时间

B 吞吐量关注在一个待定时间段内应用系统的最大工作量

C 提高响应能力期望程序或系统对请求的响应时间尽可能短

D 对响应能力要求很高的系统,较大的停顿时间是不可接受的

 

14、下列关于Oracle Hostpot java虚拟机的说法正确的是D

A java虚拟机只有在堆空间不足的情况下,才会触发垃圾回收,

B 在同一个java虚拟机之中,一个class文件只能被加载一次

C 如果一个类显示的overrideobject类的finalize方法,那么这个finallize方法最多只能被java虚拟机调用一次

D 对于分代的垃圾回收算法,在进行新生代(young generation)垃圾回收的时候,只需要扫描新生代的内存区域,在进行老年代垃圾回收的时候,只需要扫描老年代的内存区域

 

15、可通过编译的语句有哪些BD

A short x[1][1]=new short[][]

B long []x[]=new long[1][1]

C byte x[][]=new byte[][]

D int x[][]=new int[1][1]

 

16、不定项选择

输出结果为:A

A Initiallzing

Building

Wangzai plays ball

B Initializing

Wangzai plays ball

C Building

Wangzai plays ball

D Building

  Initializing

  Wangzai plays ball

 

17、java数据结构中列表(List)和集(Set)下面说法错误的是ABC

A ListSet都可以包含重复元素的有序结合

B List中最多只能有一个空元素

C ListSet都是有序集合

D Set中最多只能有一个空元素

 

18、关于java锁说法正确的是BC

A SynchronizedLock都是可重入锁

B Synchronized通过对象监视器由JVM实现

C 使用Lock的获取锁方法后,最好使用finally代码块释放锁

D Synchronized只能作用于方法,不可以在代码块上使用

 

19、JVM内存配置参数如下

-Xmx2048m -Xms2048m -Xmn1024m -XX:MaxPermSize=256m-XXSurvivorRatio=2

,其最小内存值和Survivor区总大小分别是B

A2028m,256m

B2048m,512m

C1024m,256m

D1024m,512m

 

20、以下哪种方式会导致对应线程让出CPU:(CD)

A 提高其他线程的调度优先级

B 增加子线程并调度执行子线程

C 抛出RuntimeException

D 调用sleep函数

 

二、问答题(1

1、请阐述java8java语法上的主要改进

 

三、选择填空(11

1、下面哪些是Android 7.0新特性:AD

A 通知增强功能

B 支持快速充电的切换

C 原生的应用权限管理

D 多窗口支持

 

2、一个应用程序中Context对象的个数等于:B

A Activity的个数

B Activity+Service的个数

C 1

D Service的个数

 

3、1中,进入后,点击back键退出,打印log的顺序为A

A print onPause

 print onStop

 print onDestroy

 

B print onPause

print onDestroy

C print onPause

print onStop

D print onStop

  print onDestroy

 

4、AsyncTask的以下函数哪些是在UI线程调用BC

A doinBackground()

B onPreExecute()

C onPostExecute()

D publishProgress()

 

5、采用Fragment设计的App比单纯用Activity设计的App更加流畅,下列说法正确的是AD

A Activity消耗的内存远大于Fragment

B Activity的生命周期管理都需要跨进程通信,相对耗时

C Fragment的生命周期相比Activity更加完备

D Fragment从栈中恢复是View级操作,而Activity从栈中恢复是Window级操作

 

6、关于线程间通信描述正确的有ABD

A Handler:你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue取出)所送来的消息

B Looper:一个线程可以产生一个Looper对象,由它来管理比线程里的Message Queue

C Looper:一个线程可以产生多个Looper对象,由它来管理比线程里的Message Queue

D 线程:UI thread 通常就是main thread,而Android启动程序时会替它建立一个Message Queue

 

7、关于Android中的几种动画描述不正确有:BD

A  Property Animaition:属性动画只对Android 3.0API 11)以上版本的Android系统才有效,这种动画可以设置给任何Object,包括那些还没有渲染到屏幕上的对象

B TewwenAnimation(补间动画):属性动画不再仅仅是一种视觉效果了,而是一种不断的对值进行操作的机制,并将值赋到指定对象的指定属性上,可以是任意对象的任意属性

C FrameAnimation(逐帧动画):将多张图片组合起来进行播放,类似于早期电影的工作原理,很多Apploading是采用这种方式

D PropertyAnimation(属性动画):是对某个View进行一系列的动画的操作,包括浅入淡出,缩放,评议,旋转四种模式。

 

8、下面关于ActivityViewWindow三者之间的关系,说法正确的是有ABCD

A “ViewRoot”是一个view或者说ViewGroup,最初始的根视图。

B View的事件监听,是由WIindowManagerService来接受消息,并且回调Activity函数

C “ViewRoot”通过addView方法来一个个的添加View

D Activity构造的时候会初始化一个Window,准确的说是PhoneWindow

 

 

9、对于Android