1:本试卷难度较大,大部分摘自华为,中兴,腾讯,百度,阿里巴巴等试题

2:知识点涵盖Java基础,面向对象,异常,多线程,输入输出流,集合,数据结构与算法

3:注意本试卷分满分为100分,60分为及格分数线

4:本试卷分为以下部分:选择题,简答题,改错与分析题,编程算法题

5:本试卷时间为100分钟,请抓紧时间做题

一:选择题,只有一个选项正确,每道题1.5分,共20道,总计30分

【 】1:下面的表达式错误的是

A: float f=(1.9 + 0.1)/(int)1.0

B: float f=1.0F

C: float f=(float)1.0F

D: float f=(int)(0.73+0.27);

【 】2:设x和y均为int型变量,则以下语句:x+=y,y=x-y;x-=y;的功能是

A:把x和y按从大到小排列

B:把x和y按从小到大排列

C:无确定结果

D:交换x和y中的值

【 】3:请写出下面程序运行的结果()

int x = 0;

int y = 1;

int a = x++ + ++x;

int b = y– – –y;

System.out.println(++a + b++);

A:3     B:4    C:5     D:6

【 】4:选择下列程序运行的结果

int total = 0;

for (int i = 0, j = 5; total < 10 || j > 3; ++i, –j) {

total += (i + j);

System.out.println(total );

}

A:结果为 5 ,因为一个i自加,一个j自减抵消等于没有自加

B:结果为 10,因为正常运算了

C:有语法错误,不能写多个变量

D:有语法错误,条件表达式不能写多个

【 】5:请问总共创建了多少个对象?

String aa,b,c;

aa=”bb”;

b=”dd”+aa;

c=”cc”+b+aa;

StringBuffer d = new StringBuffer(c);

A: 4           B: 5          C: 7            D: 8

【 】6:接口A中有2个方法,接口B中有2个方法,以下正确的是  (  )

A:若接口C继承A,B两个接口,则C一定继承了四个方法

B:若类C实现接口A,B,则C中必须至少实现A、B中各一个方法

C:若类C要继承接口A,B,则必须要定义接口D来继承接口A、B,由类C实现接口D,才能达到目的

D:若抽象的接口C继承了接口A,B;抽象的D类实现C接口,此时必须要实现累加接口中的所有方法

【 】7:关于类,抽象,接口,继承综合说法错误的是?

A:类与类之间有关联,继承,聚合的关系;

B:抽象类可以继承实例类,抽象类可以实现接口,抽象接口可以继承多个接口

C:抽象类是类和接口的并集与接口继承的补集

D:在应用开发中,功能类的继承是平行结构,实现功能的接口是树型结构

【 】8:请判断下面程序运行的结果:

public class ParamTest {

int num = 1;

public void change() {

num = 2;

}

public void change(int num) {

num = 3;

}

public void change(ParamTest pt) {

pt.num = 4;

}

public static void main(String[] args) {

ParamTest pt = new ParamTest();

int num = 5;

pt.change();

System.out.println(“1->:” + pt.num);

pt.change(num);

System.out.println(“2->:” + pt.num);

pt.change(pt);

System.out.println(“3->:” + pt.num);

}

A:                  B:              C:           D:

1->:1            1->:2            1->:2          1->:2

2->:5            2->:5            2->:2          2->:5

3->:4            2->:5            3->:4          3->:4

【 】9:下面方法不可以共存的是:()

已知:

class A {

public A() {

}

public void A() {

}

public void A(int x) {

}

}

class B extends A {

//填入一个方法

}

A:public void A(){}

B:public void A(int x, int y) {}

C:public int A(int x, char y) {

return x + y;

}

D:public String A(int x){

return “hello”+x;

}

【 】10:已知类Foo的定义如下:
public class Foo {
int value;
Foo(int value) {
this.value = value;
}
}
运行下面程序段:
Foo[] a1 = { new Foo(1), new Foo(2), new Foo(3) };
Foo[] a2 = new Foo[a1.length];
System.arraycopy(a1, 0, a2, 0, a1.length);
System.out.println((a1 == a2) + “,” + (a1[1] == a2[1]));
控制台输出的结果是( )。
A. false,false       B. false,true       C. true,true         D. true,false

【 】11:哪种说话阐明了垃圾收集和终结化机制锁承诺的行为?()
A 对象直到没有任何引用指向自己时才会立即被销毁
B 对一个对象调用的finalize()方法永远不会多于一次
C 适用于收集的对象会最终由垃圾收集器销毁
D 对象一但适用于垃圾收集,就再无法由存活线程访问了

【 】12:下面执行的结果是

static boolean loop(char c) {

System.out.print(c);

return true;

}

public static void main(String[] args) {

int i = 0;

for (loop(‘A’); loop(‘B’) && (i < 2); loop(‘C’)) {

i++;

loop(‘D’);

}

}

A. ABDCBDCB

B. ABCDABCD

C. Compilation fails[编译失败].

D. An exception is thrown at runtime[抛出一个运行例外].

【 】13:下面异常执行的结果是:

try {

int x = 0;

float y = 0;

float z = x / y;

System.out.println(“11″);

try {

int a[] = new int[3];

a[3] = x;

System.out.println(“22″);

return;

} catch (Exception e) {

System.out.println(“33″);

return;

} finally {

System.out.println(“44″);

System.exit(0);

return;

}

} catch (ArithmeticException e) {

System.out.println(“55″);

return;

} finally {

System.out.println(“66″);

return;

}

A:                B:             C:        D:

11                55              11          11

55                66              33          33

66                                44          44

66

【 】14:阅读下面程序段:
byte a[] = { ‘a’, 65, ‘#’, ‘B’ };

byte b[] = new byte[a.length];

System.arraycopy(a, 1, b, 1, 2);

BufferedOutputStream bos;

bos = new BufferedOutputStream(new FileOutputStream(“C:\\file.txt”));

bos.write(b, 1, 2);

bos.flush();

bos.close();

假设file.txt原先不存在,运行该程序段后,文件file.txt的内容为( )。

A. 65               B. 65#           C. A#             D. A

【 】15:假设以数组A[n]存放循环队列的元素,其头、尾指针分别为head和end。若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为

A:(end-head-1)%n      B:(end-head)%n
C:(head-end+1)%n   D:(end-head+n)%n

【 】16:对线性链表和线性表分析错误的是()

A:线性链表分为单链表、双向链表和循环链表

B:线性链表是一种物理存储单元上连续但非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接来实现的

C:线性表插入或删除的运算效率很低。在顺序存储的线性表中,插入或删除数据元素时需要移动大量的数据元素

D:线性表的顺序存储结构不便于对存储空间的动态分配

【 】17:以下属于java.util包中集合类具体实现类的是?
A:Map           B:Collection        C:TreeMap         D:SortedMap

【 】18:下面对集合不能正确创建实例化是()

A:List<HashMap<Number, String>> list = new LinkedList<HashMap<Number, String>>();

B:ArrayList<HashSet<String>> list = new ArrayList<HashSet<String>>();

C:TreeSet<Hashtable<String,Integer>>  tree=new TreeSet<Hashtable<String,Integer>>();

D:TreeSet<ArrayList<String,Integer>>  tree=new TreeSet<ArrayList<String,Integer>>();

【 】19:下面可以删除list中所有的“java”的代码是:
ArrayList list = new ArrayList();
list.add(“java”);
list.add(“aaa”);
list.add(“java”);
list.add(“java”);
list.add(“bbb”);

A:

for (int i = list.size() – 1; i >= 0; i–) {

if (“java”.equals(list.get(i))) {

list.remove(i);

}

}

B:

for (int i = 0; i < list.size(); i++) {

if (“java”.equals(list.get(i))) {

list.remove(i);

}

}

C:

Iterator i = list.iterator();

while (i.hasNext()) {

if ((i.next().toString()).equals(“java”)) {

i.removeAll();

}

}

D:

Iterator i = list.listIterator();

while (i.hasNext()) {

if (((String) i.next()).equals(“Java”))

i.remove();

}

}

【 】20:题示代码的功能为:将两个有序的ArrayList合并为一个有序的ArrayList。
对于两个存放Integer对象的ArrayList,
内容分别为:list1:{1,3,4,6,8} 和 list2:{2,5,9}
合并后的list3: {1,2,3,4,5,6,8,9}

……
List<Integer> list3 = new ArrayList<Integer>();
int size = list1.size() + list2.size();

for (int i = 0, j = 0, k = 0; k < size; k++) {
< 填入的代码 >
}
System.out.println(list3);
……

完成该功能应该填入的代码是( )。

A.
if (j >= list2.size() || i > list1.size():&& list1.get(i) < list2.get(j)) {
list3.add(list1.get(i++));
} else {
list3.add(list2.get(j++));
}
B.
if (j >= list2.size() || i < list1.size()&& list1.get(i) < list2.get(j)) {
list3.add(list1.get(i++));
} else {
list3.add(list2.get(j++));
}
C.
if (j >= list2.size() || i < list1.size()&& list1.get(i) > list2.get(j)) {
list3.add(list1.get(i++));
} else {
list3.add(list2.get(j++));
}
D.
if (j >= list2.size() || i < list1.size()|| list1.get(i) < list2.get(j)) {
list3.add(list1.get(i++));
} else {
list3.add(list2.get(j++));
}

二:简答题【本环节中每道题3分,共5道,总计15分】

1:String 和StringBuffer有什么差别?在什么情况下使用它们?【3分】

答:

2:new一个类对象和使用类名创建一个对象有什么区别?二者使用时应该注意什么?【3分】

答:

3:在异常当中 throw和throws 有什么区别和联系?【3分】

答:

4:LinkList和ArrayList的区别?

如果是在集合的开头插入一个对象,使用哪种效率高些,在集合的末尾插入一个对象,使用哪种效率高些,为什么?【3分】

5:
介绍JAVA开发中常用的Collection FrameWork(写出Java集合的框架结构,加上必要的名称注释)? 【3分】

答:

三:改错与分析题【本环节中每道题3分,共7道,总计21分】

<第一题>

  1. interface  A{
  2. int x = 0;
  3. }
  4. class B{
  5. int x =1;
  6. }
  7. class C extends B implements A {
  8. public void pX(){
  9. System.out.println(x);
  10. }
  11. public static void main(String[] args) {
  12. new C().pX();
  13. }
  14. }

请问哪一行有错?为什么?【3分】

< 第二题>

  1. abstract class Animal {
  2. public void saySomething() {
  3. System.out.println(“你想说什么就说吧!”);
  4. }
  5. }
  6. class Dog extends Animal {
  7. public void saySomething() {
  8. System.out.println(“我现在有了第二职业:捉耗”);
  9. }
  10. }
  11. public class Test {
  12. public static void main (String[] args) {
  13. Animal ani=new Dog();
  14. ani.saySomething();
  15. }
  16. }

请问哪一行有错?为什么?【3分】

<第三题>

public class Test {

private static void printArray(int[] arr)   {

for(int i=0;i< arr.length;i++)

System.out.print(arr[i]+”,”);

System.out.println(” “);

}

private static void changeValue(int value) {

value*=2;

}

private static void changeValue(int[] arr) {

for(int i=0;i<arr.length;i++)

arr[i]*=2;

}

public static void main (String[] args) {

int[] arr={1,2,3,4,5};

changeValue(arr[0]);

printArray(arr);

changeValue(arr);

printArray(arr);

}

}

请问结果是什么?并详细解释原因【3分】

<第四题>

public class A {

static {

System.out.println(“11″);

}

{

System.out.println(“22″);

}

public A() {

System.out.println(“33″);

}

public  void deal() {

System.out.println(“44″);

}

}

public class B extends A {

static {

System.out.println(“55″);

}

{

System.out.println(“66″);

}

public B() {

System.out.println(“77″);

}

public  void deal() {

System.out.println(“88″);

}

}

public class C {

public static void main(String[] args) {

A b=new B();

b.deal();

}

}

请问结果是什么?并详细分析原因【3分】

<第五题>

public class Test{

public static void so(String[] name){

String temp=name[0];

Name[0]=name[1];

Name[1]=temp;

}

public static void so(String name0,String name1){

String temp=name0;

Name0=name1;

Name1=temp;’

}

public static void main(String[] wewe){

String[] name = new String[]{“mike”,”Lily”};

String name0 = “mike”;

String name1=”Lily“;

So(name);

System.out.println(name[0]+”,”+name[1]);

So(name0,name1);

System.out.println(name0+”,”+name1);

}

请输出结果?并详细解释为什么?【3分】

<第六题>

public class Person {

static class User {

int id;

String name;

public User(int id, String name) {

this.id = id;

this.name = name;

}

public int getId() {

return this.id;

}

public String getName() {

return this.name;

}

class Student {

public void setid(int newId) {

id = newId;

}

public void setName(String newName) {

name = newName;

}

}

}

public void print(int id, String name) {

User user = new User(id, name);

System.out.println(user.getId() + “\t” + user.getName());

}

public static void main(String[] args) {

//…手写补充代码

}

}

要求:先对User进行创建实例化   学号为:1001 姓名为: 张三   之后进行修改 学号为: 1002 姓名为:李四  调用Person类的打印输出方法显示修改后的结果。【3分】

<第七题>

列举几个你常去的IT技术型的网站,类型不限,个数不限,写中文名亦可,并解释为什么值得你去?【3分】

答:

四:编程算法题,将代码下在每道题的下面[共5道题,第一,二题为5分,第三题为6分,第四题为8分,第五题为10分,总计34分]

1:请用递归算法写一个方法求出两个数字的最大公约数和最小公倍数【5分】

【安徽科大讯飞2012届武汉大学校园招聘试题】

2:请将一个链表反序【5分】

【华为2011届华中科技大学校园招聘试题】

3:现在有一个有趣的游戏:称为杀人游戏!游戏规则是:输入参加的总人数,在输入一个基数,然后每个人依次报数,

当前选手报的数能被基数整除的话,就判为死亡出局,剩下的再继续数数,当数到最后一个时候,再接着从1开始从头数数。。。

一直到活下的人小于基数为止,整个游戏结束,打印最后存活选手的编号;【6分】

例子:总数:6  基数 2

M M M M M M

1 2 3 4 5 6

M X M X M X

1 2 3 4 5 6

M  M  M

1   2   3

M  X  M

1       2

M      X

1

存活的人数是:1

存活的编号是:1

【微软,中兴的笔试题,要求不限制语言编写实现】

4:比较两个字符串,要求从字符串的最后一个元素开始逐个向前比较,如果两个字符串的长度不等,则只比较短长度字符串的元素。请编程实现下面给出的比较方法,并返回比较中发现的不相等元素的个数。【8分】

public int getDiffNum(int len1, String str1,int len2, String str2)

例如:len1=3  str1=”acd”   len2=5   str2=”zhacd”  函数返回为 0

len1=3  str1=”acd”   len2=6   str2=”zhacdv” 函数返回为 3

【华为2012届南京大学校园招聘试题】

5:任何一个自然数m的立方均可写成m个连续奇数之和。【10分】

例如:
1^3=1
2^3=3+5
3^3=7+9+11
4^3=13+15+17+19
请编程实现:输入一自然数n,求组成n^3的n个连续奇数,格式必须按照上面进行输出。

【浙江大学研究院2011年笔试题目】

题目很多,最近也一直在找工作,题目很多,抽时间找出一段比较充裕的时间来做做以上的免试题,对于自己的java水平会有一定的认识了。这样免试的时候心里也不会没底了。

原文:http://www.mianwww.com/html/2012/06/16596.html

android面试题目大全第三部分,java高级综合部分相关推荐

  1. Android面试题目大全完结部分,Android笔试题目集锦

    大家好,我是小武,听说好多IT同行们再出去找工作的时候,都会遇到各种各样的奇葩面试题或是笔试题,其实,我们想要一面而就并找到一份自己满意的的工作最好的方法就是扩展自己的知识领域,和面试官交流自如,技术 ...

  2. JAVA工程师面试题目大全_绝对值得看

    JAVA工程师面试题目大全 一.单选题 1.下列哪种说法是正确的( D) A)实例方法可直接调用超类的实例方法 B)实例方法可直接调用超类的类方法 C)实例方法可直接调用其他类的实例方法 D)实例方法 ...

  3. 应该是史上最全最新Java和Android面试题目(自己总结和收集的)

    Android面试题目 Java 基础 int占用几个字节 讲一下常见编码方式? UTF-8编码下中文占几个字节 int和Interger的区别 int.char.long各占多少字节数 string ...

  4. 一个BAT大厂面试者整理的Android面试题目!

    身边好多朋友都裸辞了,出去旅游了一圈之后,回来才发现,工作并没有想象中那么好找.朋友小A一心只想进大厂面试Android,于是面试了阿里巴巴.美团.滴滴等,最后在某个大厂经历了5轮面试后拿到了offe ...

  5. 某通信公司的Android面试题目

    某通信公司的Android面试题目 今天的面试感觉做的不是很好,有些知识点明显没有掌握好,现在抽空把面试题目抄下来,同时努力掌握好对应的知识点. stack和heap有什么区别? heap是堆,sta ...

  6. 最新BAT大厂面试者整理的Android面试题目模板,分享PDF高清版

    前言 从毕业到现在面试也就那么几家公司,单前几次都比较顺利,在面到第三家时都给到了我offer!前面两次找工作,没考虑到以后需要什么,自己的对未来的规划是什么,只要有份工作,工资符合自己的要求就行!所 ...

  7. 2022最新Android面试题目解答,Android MVP模式详解

    开头 Android开发,假如开始没有任何的开发经验的话, 千万不要着急,不要想着在短时间内就把一个语言学习好, 因为你之前没有任何的学习经验, 在这个过程中需要有耐心地学习完JAVA的基础知识, 然 ...

  8. Android面试题目(1-2-3--7)

    网上收集的Android 题目一 1.Activity生命周期说下,出现异常主要在那个阶段处理? 2.数据存储有哪几种方式?说过你用过哪些,做了哪些相关的项目?Sqlite用过说下? 3.Adapte ...

  9. android面试题目

    最近才开的博客,希望大家多多关注,andorid开发也做了3年有余了,也面试多家企业,借此机会分享一下,我们中遇到过的问题以及解决方案吧,希望能够对正在找工作的andoird程序员有一定的帮助.学完& ...

最新文章

  1. NC:你觉得你吃的是草,其实你还是吃的土(遗传发育所朱峰)
  2. 《神经架构搜索NAS》最新进展综述,25页pdf
  3. 【Linux 内核】进程管理 - 进程优先级 ② ( prio 调度优先级 | static_prio 静态优先级 | normal_prio 正常优先级 | rt_priority 实时优先级 )
  4. Py之twisted:Python库之twisted简介、安装、使用方法等详细攻略
  5. 小米与格力的10亿豪赌!
  6. Android Studio 选项菜单和动画结合_Android 应用与iOS 应用之间的设计差异对比!
  7. centos系统linux复制命令行,linux系统CentOS7中find命令使用
  8. Python 之 模块和包
  9. Nginx+Tomcat+SSL 识别 https还是http
  10. 中国移动通信研究院笔试题2
  11. 服务器操作系统套什么定额,数据库服务器套什么定额
  12. VUE使用echarts实现中国地图航线动态展示
  13. 计算机网络连接叹号,网络连接不上,教您网络连接不上显示感叹号
  14. Flutter开发日常练习-小猫咪杂货店(新增欢迎页,广告页和侧滑页面)
  15. 深信服科技公司2008校园招聘笔试题
  16. 一次 WebResource.axd 异常处理经历
  17. Android手机目前常见的分辨率
  18. LocalDateTime 的用法
  19. sublime text (ST)一篇通(安装、配置、扩展、使用)
  20. CAP与ACID原则

热门文章

  1. 初学JavaScript:原型继承/盗用构造函数继承/组合继承/寄生式继承/原型式继承/寄生组合式继承
  2. mysql一直copying to tmp table_Mysql慢查询之Copying to tmp table
  3. 数据库系统例题(中级软件评测师)--(一)
  4. 锤子科技确认卖身,官网微博均变更所属公司
  5. 启用Docker对ipv6的支持
  6. mysql 获取更新id,如何获取MySQL中最后更新的行的ID?
  7. unexpected error: start:null (global id space) type:null end:null (global id space) is missing START
  8. 运用“大数据”与“人工智能”技术引领多模态大学英语写作能力评价体系的研究(非原创)
  9. 11.jQuery选择器和事件
  10. 计划任务+批处理 定时自动关机