JAVA校招笔试题(JAVA研发岗)

简介:

JAVA校招笔试题(JAVA研发岗)

一、单项选择题

1. A、B、C三个同学头上分别有三个数字a、b、c,他们看不到自己头上的数字,但可以看到其他两人的。比如B同学能看到a、c,但看不到b。已知1<=a,b,c<=9,并且各不相等。A、B、C三个人以此进行了如下发言:

A说:要么a不是b+c的约数,要么a=b+c

B说:我知道我头上数字了,c是a的倍数

C说:我也知道我头上数字了

那么a+b+c是_____。

A. 8

B. 9

C. 10

D. 11

E. 12

F. 7

 

3. 众所周知我们所处的宇宙的质能公式是E=mc2,其中c是真空中的光速,和我们的宇宙平行的另一个宇宙meta,研究显示他们使用的质能公式是E=(2+√3)m,当一个物体质量m很大的时候,对应的能量E非常大,数据也非常的长,但meta宇宙里面的智慧生物只愿意把E取整,然后记录对应的能量E的最后一位整数,比如m=0时,他们会记录1,m=1时,他们会记录3。m=2的时候,他们会记录3。现在请问当m=100时,他们会记录多少?

A. 1

B. 2

C. 3

D. 4

E. 5

F. 6

 

4. 下列关于进程间通信的说法中错误的是:

A. 可以通过网络进行进程间通信

B. 信号量也可以用作进程间通信

C. 在Linux中则只能用管道做进程通信

D. 通过return返回值也可以在进程间通信

E. 在进程间共享一块内存可以做通信

F. 进程间通信效率通常比网络通信效率高

 

6. 多项式P(x)=a+bx+cx^2+dx^3

对于任意x,计算p(x)中最少需要用到乘法操作的次数是多少?

A. 3

B. 4

C. 5

D. 6

E. 1

F. 2

 

 

7. 甲乙两个人对赌,甲估计自己赢的概率为1/3,乙估计自己赢的概率为2/5,实际上双方赢的概率各为1/2。甲乙二人都知道双方各自估计的赢的概率,但并不清楚实际上赢的概率。甲乙两人同时亮出筹码,如果某一方觉得对方筹码太少可以退出游戏,获胜的人会赢取双方所处的筹码。以下命题中正确的是:

A. 甲赢钱的期望大于0

B. 乙赢钱的期望大于0

C. 不管双方各自估计自己赢的概率是多少,甲乙二人赢钱的期望都等于0

D. 甲乙两人赢钱的期望都小于0

E. 甲乙两人赢钱的期望都大于0

F. 甲乙二人必然会至少有一人退出比赛

 

16. 同时掷4个骰子,数字加起来和为22的概率为x/1296,x的值为?

A. 7

B. 8

C. 9

D. 10

E. 11

F. 12

 

17. 一个机器人玩抛硬币游戏,一直不停的抛一枚不均匀的硬币,硬币有A、B两面,A面概率为2/3,B面概率为1/3,问第一次出现连续的两个A面的时候,机器人抛硬币的次数的期望是多少?

A. 9/4

B. 11/4

C. 15/4

D. 4

E. 5

F. 9/5

 

18. 在一个二分类学习案例中,正负样本分别为10万和100万,这些样本中有5000个特征完全相同的正样本和负样本对,小张同学将这些样本对从样本集中删除。以下说法正确的是:

A. 由于删除的样本对特征相同,分类相反,因此可以完全抵消,训练出的模型不变。

B. 由于负样本较多,因此删除后负样本被错分到正样本的比例升高。

C. 这个做法可以显著降低运算量,因此可取

D. 这样只去除样本对中的负样本,效果可能更好

E. 样本的变更对于分类结果的比例影响可以忽略不计。

F. 以上答案都不对。

 

19. 在Android客户端中编码中,以下哪个行为是必要的:

A. bitmap使用后立即调用recycle方法

B. 在页面activity类的finalize方法中注销广播的监听

C. 在activity的onDestory方法中将成员变量值置为null

D. 在使用aidl接口时自己控制多线程安全

E. 在内部类增加public修饰符

F. 页面布局xml文件名和对应的Activity类名需相同

 

20. 以下是求一个数组最大值的代码,它的运算最差时间复杂度和最差空间复杂度是____

 

int Max(int arr[], int length)

{

if(length == 1){

return arr[0];

}

int mid=length/2;

int left=Max(arr,mid);

int right=Max(arr+mid,length-mid);

return (left>right?left:right);

}

 

A. 时间复杂度:O(n),空间复杂度:O(1)

B. 时间复杂度:O(n),空间复杂度:O(log(n))

C. 时间复杂度:O(n*log(n)),空间复杂度:O(1)

 

二、问答题

1、www.abc.com是一个视频点播网站,Arbergo是一个基础存储系统,它为该视频网站提供了基础服务描述如下:

该系统存储了全部需要下载的文件,并提供JAVA接口用于视频文件下载

接口允许指定1到n个文件名下载多个文件

接口返回的文件内容支持分片,例如file.part1,file.part2

接口定义时需考虑到异常情况

接口支持按照指定文件区间下载,例如,下载file1的第101个字节到文件末尾,下载file2的第1个字节到第100个字节。

该系统实现了基于SATA硬盘和SSD硬盘的混合存储。混合存储的特点是SATA硬盘的存储空间更大,但访问速度更慢,SSD硬盘存储空间较小,但访问速度更快。文件在两种磁盘类型中可以迁移。

 

问题1:请用java语言完成该系统中描述的对外提供的接口定义,并用注释说明该接口各个参数的含义以及取值范围。

问题2:针对Arbergo系统在#6中描述的混合存储特点,请用文字描述该系统的设计思路。设计思路可以包括但不限于文件在磁盘中的分布,文件在不同磁盘类型中的迁移规则,访问规则。

 

 

2、Maven的一个核心特征是依赖管理。他通过读取依赖项目文件(pom.xml中)来发现所有需要依赖的库。pom.xml中maven依赖定义类似:

<dependency>

<groupid>org.springframework</groupid>

<artifactid>spring-core</artifactid>

<version>3.1.2.RELEASE</version>

</dependency>

<dependency>

<groupid>commons-collections</groupid>

<artifactid>commons-collections</artifactid>

<version>3.2.1</version>

</dependency>

其中每个artifactid又有自己的pom.xml,里面也有类似的依赖定义。

 

比如有一个java库A,依赖于其他库B,我们的项目引用A的时候,很可能也需要把B引入进来,maven就提供了这样的功能,可以管理各种间接的依赖。举个例子:一个项目依赖了A,B两个库,A又依赖了C,D,其中D又依赖了F;B依赖了E,他们的依赖树大概是这样的:

项目___|____A

|   |_____C

|   |_____D

|    |_____F

|_____B

|_____E

maven在打包过程中会把依赖A,B,C,D,E,F都引入进来

 

但这个依赖很可能会有一些冲突的情况:

 

case1:我们在项目中分别引入了2个依赖A和B:A又依赖的C,C又依赖了D,B也依赖了D,但是这个时候C依赖的D和B依赖的D的版本是不同的:

项目----A---C----D

项目----B---D

也就是说,当前项目引入了2次D依赖,那么这时,Maven将采用第一原则:路径最近原则

 

case2:我们在项目中分别引入了2个依赖A和B,而A和B又都引入了C。但是,此时A依赖的C和B依赖的C版本是不一致的,那么这个时候Maven如何处理呢?

这时,第一原则已经不起作用了,在Maven2.0.9之后的版本中,制定了第二原则:第一声明者优先

 

请尝试用java代码描述maven的依赖关系建立过程,注意只能使用基本类型和数值(如用到map,list,set等需要自行实现)。

 

 

 

3、hotspot是sun.jdk默认虚拟机,堆内存结构主要分为新生代、老年代,新生代包含Eden空间、From Survivor空间、To Survivor空间、用JAVA程序模拟实现hotspot虚拟机的堆内存结构并且实现两个方法:

方法1:模拟实现创建一个新对象后堆内存分配过程

方法2:模拟实现垃圾回收过程(垃圾回收按分代回收算法,实现新生代和老年代的垃圾回收过程)

最后写一个主函数,通过调用方法1,从而出发方法2.

原文地址http://www.bieryun.com/1709.html

相关文章
|
7月前
|
IDE Java 测试技术
如何提升java的研发效能
如何提升java的研发效能
|
7月前
|
Kubernetes Java Go
记录人生第一次面试,景行锐创Java校招开发
记录人生第一次面试,景行锐创Java校招开发
|
7月前
|
存储 安全 Java
冒死潜入某个外包公司获得的珍贵Java基础笔试题(附答案)
冒死潜入某个外包公司获得的珍贵Java基础笔试题(附答案)
172 0
|
存储 NoSQL Java
蚂蚁金服Java研发岗二面:redis 常见数据结构以及使用场景分析
redis简单来说 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以存写速度非常快,因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。所以在面试中我们经常可以看到redis的身影,今天给大家带来一道redis的面试真题以及解析,后面会给大家分享今年来redis常考试的一些真题。
185 0
|
4月前
|
存储 Java 编译器
刷完一千道java笔试题的常见题目分析
这篇文章是关于刷完一千道Java笔试题后的常见题目分析,涵盖了Java基础知识点,如标识符命名规则、抽象类与接口的区别、String类的equals方法、try-catch-finally块的执行逻辑、类与实例方法的区别、this与super关键字的用法、面向对象的基本概念、重写与重载的原则等,并建议结合JVM内存结构图加深理解。
刷完一千道java笔试题的常见题目分析
|
7月前
|
设计模式 算法 Java
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
|
7月前
|
SQL Java 数据库连接
Java笔试题
Java笔试题
|
7月前
|
存储 前端开发 Java
[java后端研发]——文件上传与下载(2种方式)
[java后端研发]——文件上传与下载(2种方式)
296 3
|
7月前
|
SQL Java 关系型数据库
疫情之后,幸获内推,4面京东拿下offer(Java后台研发岗)
在2019年时,就早早生了跳槽的念头,心想着拿完年终奖就要开始“跑路”,但万万没想到过完春节之后竟被疫情耽搁了这么久,导致很多互联网公司的招聘都往后一拖再拖。幸运的是,刚复工之后,就收到了朋友的消息,有京东内推的机会,问我要不要试一试,虽然说之前的目标是BAT,但根据自己目前情况来说,可能拿个京东也算是不错了,于是着手准备起来。