日期:2014-05-20  浏览次数:20629 次

最新的阿里云面试题(java无线)
面试题分2部分 10题选择 7题简答 60分钟 个人觉得在这个时间做好很困难
选择题大多考的java的基础题就不多说了,看后面的简答吧
  1.某国家的家庭都喜欢生男孩,而且一个家庭直到生有男孩为止,否则继续生小孩,
该国当前的男女均衡,问若干年后该国家的男女比例的趋势?

  2.有一个Hashmap<String,String> a 对一个给定的value = 12,遍历该Hashmap,找到该key,
并打印出对应的key,value?
  (比较简单,不多说)
   
  3.创建3个线程,1个启动线程(main),一个线程负责向List中添加数据,1个线程负责取出数据
用代码描述出来?
  (简单的生产者和消费者问题,网上很多)

  4.有这样的一个2叉树 ,结构如
  class BinaryNode{
  int data;
  BinaryNode mLeft;
  BinaryNode mRight;

  }
  给定一个整数和一棵2叉树,从根节点开始遍历,直到叶节点止,要求打印出所经过的所有节点的data
  值累加等于该整数,如给出22,输出 10 12;10 5 7 ;
  函数名为 void printBinaryTree(BinaryNode root,int num)
  (不知是否描述清楚,当时没做,期待大家的答案)

  5.对于一个已经排好序的数组a,给定一个数X,判断该数组中是否存在2个数的和等于X
  要求时间复杂度为0(n);
  我的答案 (数组按升序)
  int i = 0; int j = a.length;
  int temp ;
  while(i != j){
  temp = a[i] + q[j];
  if(temp == X){
  System.out.println("存在这样2个数 :"+num[i]+num[j]);
  break;
  }else if(temp > X){
  j--;
  }else if(temp <X){
  i++;
  }
  if(temp != X){

  System.out.println("不存在这样2个数");

  }
  }


  6.一栋楼房的底层有101根电线,一直延伸到顶层;但是不直到顶层的线头跟底层的线头是否是一根电线。现在有一些灯泡和若干短线,只上下楼一次,怎样能够把这些线分清楚;


  7.有一个电子书阅读器,如下功能:
  1)能网上下载电子书
  2)打开各种格式的文本(txt,doc,pdf)
  3)。。。。(不记得了)
  让你设计这个阅读器,怎样保证他的可扩展性和复用性,用UML图和一些描述;
   
  ps:60分钟做这些感觉很困难,做的很差,不过还是收到一面,开始面试官问了一些数据结构,java相关的还好回答,
结果面试官看到我们是一个专业的(信息与计算科学),顿时悲剧了,先是一个话概括一下微积分。。。,微积分的可积条件...., 黎曼微积分,顿时hold不住了 ,在学校都是快考试的时候突击一下你懂的 这些早忘记了 然后,没然后了




------解决方案--------------------
1 相同(前提是不打胎)
------解决方案--------------------
高数我也hold不住...悲哀啊.
------解决方案--------------------
6题怎么算分清楚 是要一个一个都标号么 .感觉这题还挺有扩展性的不全是代码啊
------解决方案--------------------
6.一栋楼房的底层有101根电线,一直延伸到顶层;但是不直到顶层的线头跟底层的线头是否是一根电线。现在有一些灯泡和若干短线,只上下楼一次,怎样能够把这些线分清楚;

把楼顶的线头用短线全部连接起来,下楼后,任意两个线头接电池和灯泡,如果亮,就说明这两个线是连到楼顶的,找到第一对连接到楼顶的线估计比较费时,然后,用其中一根和其他的线头用同样的方法测试是否灯亮,亮的,说明测试的线连到楼顶,不亮,说明没有连到楼顶,后面这步就很快了........