知名公司java面试题.pdf
1.(集合框架)下面都属于线程安全的类是(BD )。线程同步就是线程安全的A.ArrayList//不同步B.Vector//同步,其余功能与ArrayList一样C.HashMap//不同步D.HashtableA.//同步,其余功能和Hashtable一样2.(集合框架)ArrayList的初始化内容如下: ArrayList list = new ArrayList(); list.add("java"); list.add("aaa"); list.add("java"); list.add("java"); list.add("bbb"); 下面可以删除list中所有的“java”的代码是:(A)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.list.remove("java");//只能删除第一个D.list.removeAll("java");//括号中的参数是集合的类型3.下面的代码用于输出字符数组ch中每个字符出现的次数,应该填入的代码是(D) public static void main(String[] args) { char[] ch = { 'a', 'c', 'a', 'b', 'c', 'b' }; HashMap map = new HashMap(); for (int i = 0; i < ch.length; i++) { < 填入代码 > } System.out.println(map); }//map中没有contains方法,这个方法只有List和Set中有A.if(map.contains(ch[i])) { map.put(ch[i], map.get(ch[i]) + 1); } else { map.put(ch[i], 1); }B.if(map.contains(ch[i])) { map.put(ch[i], (Integer) map.get(ch[i]) + 1); } else { map.put(ch[i], 1); }C.if(map.containsKey(ch[i])) { map.put(ch[i], (int) map.get(ch[i]) + 1); } else { map.put(ch[i], 1); }D.if(map.containsKey(ch[i])) { map.put(ch[i], (Integer) map.get(ch[i]) + 1); } else { map.put(ch[i], 1);}4.(集合框架) 题示代码的功能为:对于一个存放Integer对象的ArrayList,内容为:{1,2,3 },对其进行循环遍历:Listlist=new ArrayList();list.add(1);list.add(2);list.add(3);for(inti=0;i<《插入代码1》;i++){ Integer obj=(Integer)《插入代码2》; System.out.println(obj);}那么《插入代码1》和《插入代码2》处的代码分别为(C)A.list.getObject(i) list.length()B.list.length() list.getObject(i) //集合没有length,只要数组才有,集合是size()C.list.size() list.get(i)D.list.get(i) list.size()5.题示代码的功能为:对于一个存放Person对象的ArrayList进行循环遍历,并取到每个Person对象的idCard和userName。publicclass Person{ private Long idCard; pirvate String userName; //一下是getter和setter方法 ……}List<Person>list=new ArrayList<Person>();Personp1=new Person();p1.setIdCard(newLong(1001));p1.setUserName(“terry”);Personp2=new Person();p2.setIdCard(newLong(1002));p2.setUserName(“tom”);list.add(p1);list.add(p2);for(《插入代码》){ System.out.println(person.getIdCard()+”:”+person.getUserName()); } 那么《插入代码》处的代码为(D)A.List list:personB.List list:Person //遍历list中的PersonC.Person person:ListD.Person person:list//在list中遍历person6.已知类Foo的定义如下: public class Foo { int value; Foo(int value) { this.value = value; } public boolean equals(Object obj) { if (obj instanceof Foo) { Foo foo = (Foo) obj; return value == foo.value; } else { return false; } } 运行下面程序段: ArrayList list = new ArrayList(); HashSet set = new HashSet(); list.add(new Foo(1)); set.add(new Foo(1)); System.out.println(《插入代码》); 如果控制台输出的结果是true,false,那么《插入代码》处应填入的代码是(C)A.list.contains(new Foo(1)) + ","+ set.contains(new Foo(1))B.set.contains(new Foo(1)) + ","+ list.contains(new Foo(1))C.new Foo(1).equals (new Foo(1)) + ","+ list.contains(new Foo(1))D.new Foo(1).equals (new Foo(1)) + ","+ set.contains(new Foo(1))//没有重写hashCode()方法7.(集合框架)题目代码的功能是:采用Iterator进行循环遍历到集合中的每一个元素,并将其移除,《插入代码》处应填入的代码是(A)ArrayListlist = new ArrayList();list.add("java");list.add("php");list.add(".net");《插入代码》A.Iterator it=list.iterator(); while(it.hasNext()){ it.next(); it.remove(); }B.Iterator it=list.iterator(); while(it.hasNext()){ it.remove(); }C.Iterator it=list.iterator(); while(it. hasNext()){ Object obj=it.next(); list.remove(obj); }D.Iterator it=list.iterator(); while(it.hasNext()){ list.remove(); }8.题示代码的功能为:循环遍历输出Map当中的每一个元素Map<String,Integer>map=new HashMap<String,Integer>();map.put(“jessica”,100);map.put(“tom”,200);map.put(“den”,300);Set《插入代码1》 set =《插入代码2》;(D)for(《插入代码3》 per : set) { System.out.println(per.getKey() +":" + per.getValue());}A. <Entry>map.keySet()EntryB. <Entry>map.entrySet()EntryC. <Map.Entry<String, Integer>>map.keySet()Map.Entry<String,Integer>D. <Map.Entry<String, Integer>>map.entrySet()Map.Entry<String,Integer>9.请看一下代码:(A)Map<String,Double>map=new HashMap<String,Double>();map.put(“tom”,123.6);map.put(“jim”,234.5);map.put(“terry”,45.3);《插入代码》《插入代码》处要实现的功能是把key为“jim”的value值在原有数字的基础上添加100A.map.put(“jim”,map.get(“jim”)+100);B.map.set(“jim”,map.get(“jim”)+100);C.map.put(“jim”,234.5);D.map.set(“jim”,234.5);10.下列代码的运行结果是(“_”表示空白):(B)publicclass Base{ private void test() { String aStr = "_One_"; String bStr = aStr;//改变时候创建了新的对象,所以以前的没变化 bStr =aStr.trim(); System.out.println("[" + aStr +"," + bStr + "]"); } static public void main(String[] a) { new Base().test(); } }A.[One,_One_]B.[_One_,One]C.[One,One]D.[_One_,_One_]本文来自:安卓航班网整理www.apkway.com