百度社会招聘Android方向笔试题及答案解析
1.java 基础题,下面的代码输出结果是什么?
public static void main(String[] args) { String str = new String('abc'); char[] ch = {’a’,’b’,’c’}; change(str,ch); System.out.print(str+' '); System.out.print(ch);} public static void change(String str,char[] ch){str = 'gbc';ch[0] = ’g’; }}
答案:这道题考察的东西很多,看似简单,实则考察了java的基础知识,对内存的理解,对面向对象的理解,对==,equals,hashcode等的理解。总体来说不难,但是这个原理理解却不是那么容易的。结果是:abc,gbc
2.HashMap,Hashset,ArrayList以及LinkedList集合的区别,以及各自的用法
参考这篇文章:http://josh-persistence.iteye.com/blog/1975956
3.Activity的启动模式有哪几种
参考这篇文章:http://www.cnblogs.com/plokmju/p/android_ActivityLauncherMode.html
4.介绍Handler机制
参考这篇文章:http://blog.csdn.net/stonecao/article/details/6417364
5.线程考核,解析sleep、wait、join、yield方法,以及notify和notifyAll是如何控制线程同步的
参考这篇文章:http://blog.csdn.net/xh16319/article/details/8032877
6.android 存储方式以及各自用法
参考这篇文章:http://blog.csdn.net/zhangtengyuan23/article/details/10701597
7.ListView中BaseAdapter的使用和优化;在ListView中的item放置一个按钮,如何使用按钮对不同的item响应不同的事件
参考这篇文章:http://www.cnblogs.com/loulijun/archive/2011/12/28/2305016.html
8.编程题:生成一个1-100的随机数组,但数组中的数字不能重复,即位置是随机的,但数组元素不能重复
第一种:用Math.random,使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机
public static void main(String[] args) { StringBuffer resRand = new StringBuffer(''); int maxnum = 0; while (true) {String num = (int) (Math.random() * 100) + '';if (maxnum < 10) { if (resRand.toString().contains(num)) {continue; } resRand.append(num + ','); maxnum++;} else { break;} } System.out.println(resRand.substring(0, resRand.length() - 1));}
第二种:用Java.util.random,在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long
public static void main(String[] args) { Random ran = new Random(); Set<Integer> set = new HashSet<Integer>(); while (set.size() == 10 ? false : true) {int num = ran.nextInt(100) + 1;set.add(num); } Iterator<Integer> it = set.iterator(); int count = 0; while (it.hasNext()) {System.out.println('第 ' + ++count + ' 个随机数 = ' + it.next()); }}
相关文章: