百度社會招聘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()); }}
相關文章:
