CVTE2015校园招聘 Android 开发笔试题目

2017-11-25 13:54 作者 : 围观 : TAG标签:

  1. Java中abstract的用法 qzm4

  abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。

求职信息

  2. Java反射式如何实现的,有什么缺点?

面试问题

  JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;也就是具有动态获取的信息以及动态调用对象的方法的功能。反射主要解决动态编程,即使用反射时,所有的对象生成是动态的,因此调用的方法也是动态的.反射可以简化开发,但是代码的可读性很低。 qzm4

  3. Android ANR异常及解决方法 礼仪

  ANRs (“Application Not Responding”),意思是”应用没有响应“。在如下情况下,Android会报出ANR错误:

面试问题

  – 主线程 (“事件处理线程” / “UI线程”) 在5秒内没有响应输入事件

面试网

  – BroadcastReceiver 没有在10秒内完成返回 qzm4

  通常情况下,下面这些做法会导致ANR

面试问题

  1)在主线程内进行网络操作

求职面试

  2)在主线程内进行一些缓慢的磁盘操作(例如执行没有优化过的SQL查询)

礼仪

  应用应该在5秒或者10秒内响应,否则用户会觉得“这个应用很垃圾”“烂”“慢”…等等 礼仪

  解决方法: 求职信息

  1)运行在主线程里的任何方法都尽可能少做事情。特别是,Activity应该在它的关键生命周期方法(如onCreate()和onResume())里尽可能少的去做创建操作。有时候需要做一些和网络相互交互的耗时操作就采用asyntask异步任务的方式(它的底层其实Handler+mesage有所区别的是它是线程池)等,在主线程中更新UI。(可以采用重新开启子线程的方式,然后使用Handler+Message的方式做一些操作,比如更新主线程中的ui等) 礼仪

  2)应用程序应该避免在BroadcastReceiver里做耗时的操作或计算。但不再是在子线程里做这些任务(因为 BroadcastReceiver的生命周期短),替代的是,如果响应Intent广播需要执行一个耗时的动作的话,应用程序应该启动一个 Service。(此处需要注意的是可以在广播接受者中启动Service,但是却不可以在Service中启动broadcasereciver,关于原因后续会有介绍,此处不是本文重点)

面试问题

  3)避免在Intent Receiver里启动一个Activity,因为它会创建一个新的画面,并从当前用户正在运行的程序上抢夺焦点。如果你的应用程序在响应Intent广 播时需要向用户展示什么,你应该使用Notification Manager来实现。 礼仪

  4. IP、TCP、UDP分别在OSI的那一层?及其作用。 礼仪

  IP在网络层:为计算机网络相互连接进行通信而设计的协议,为位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。

求职面试

  TCP、UDP:提供了节点间的数据传送服务DP在传输层。 礼仪

  5. 下面程序的输出是什么? 求职面试

  public class FinallyTest1 { 礼仪

  static char label;

面试问题

  public static void main(String[] args) { 礼仪

  System.out.println(test1());

求职面试

  System.out.println(label); 求职面试

  }

求职信息

  public static char test1() { 面试问题

  try { 面试问题

  System.out.println('A'); 礼仪

  return label = 'A';

面试问题

  }

礼仪

  finally {

面试问题

  System.out.println('B'); 面试问题

  label = 'B';

面试问题

  } 面试问题

  } 面试网

  }

求职面试

  输出:

礼仪

  A 面试问题

  B 求职信息

  A 求职面试

  B 求职信息

  6. 下面的空改填什么代码? 面试网

  public static void main(String[] args) throws IOException {

qzm4

  FileReader inputStream = null; qzm4

  FileWriter outputStream = null; 面试问题

  try { qzm4

  inputStream = new FileReader("xanadu.txt");

qzm4

  outputStream = new FileWriter("characteroutput.txt");

求职面试

  int c;

礼仪

  while ((c = inputStream.read()) != -1) { 面试问题

  outputStream.write(c);

面试问题

  } 求职面试

  } finally {

面试问题

  //在这里填代码

求职信息

  } qzm4

  } 求职信息

  答案:

面试问题

  if (inputStream != null) { 求职信息

  inputStream.close();

礼仪

  } 面试问题

  if (outputStream != null) { 面试问题

  outputStream.close(); 求职信息

  }

求职面试

  7. 有M个台阶,一个人从地面开始,每次可以上一个或两个,问上到第M个有多少种方法。 面试问题

  思路:

面试问题

  走第一台阶只有1种方法;

面试网

  走第二台阶有2种方法,(一步或两步..); 求职面试

  走第三台阶的时候就是分两步了:可以从第一台阶直接到第三台阶,也可以是从第二台阶到第三台阶,所以有1+2=3种方法; 面试网

  走第四台阶也是分两步:可以从第二台阶直接到第四台阶,也可以是从第三台阶到第四台阶,所以有3+2=5种方法; 面试网

  ………… 礼仪

  以此类推,走1-9台阶需要的步数就是:1,2,3,5,8,13,21,34,55(斐波那契数列:每项等于前两项和)。 面试问题

  8.给一个数M,则有自然数1~N前面加上符号运算得到M,求出最小的N并输出,例如:M=12,-1+2+3+4+5+6-7=12 输出7; qzm4

  思路: 求职面试

  下面几行代码能找到一个最小的n,这个n使得1~n全部取+号时候正好大于等于M.注意得到的这个n是最小的 面试问题

  n = (int)(( sqrt(8 * M) - 1 ) / 2); // <<== n(n+1)/2 >= M

求职信息

  if( n * (n+1)/2 < M ) 礼仪

  n ++; 求职面试

  然后计算和M之间的差,如果差为0显然全部取正号已经满足要求,如果不是0又分为奇数和偶数来区别对待.如果是偶数T,那么显然把T/2前面的符号从+改为-就可以了.这个T/2一定是小于n的,也就是说在1~n之间能够找到的。如果是奇数Y,那么显然n还不对,那么可以继续尝试后面的n直到这个差为偶数为止.。

求职信息

  9. 写一个UML表示类、属性、方法。

qzm4

  这个要熟悉UML的类图啦 面试网

声明:CVTE2015校园招聘 Android 开发笔试题目来源于互联网,其版权均归原作者及其网站所有,本站虽力求保存原有的版权信息,但由于诸多原因,可能导致无法确定其真实来源,如果您对本站文章、图片资源的归属存有异议,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意!

相关文章