`

2007年8月25日华为的几个面试题

阅读更多
1、下题的输出是什么:
/**
 * 问下题的输出结果是什么?
 * @author Administrator
 *
 */
class A1
{
    public A1()
    {
       System.out.print("A");
    }
}
class B1
{
    //如下写会出错
    //new A1();放于方法内部不会出错
    public B1()
    {
       new A1();
       System.out.print("B");
    }
}
public class TestPrint {
    public TestPrint()
    {
       System.out.print("Test");
    }
    public static void main(String[] arg)
    {
       new B1();
    }
}

/**
* 结果是"AB",我想有些人可能和我一样,认为结果是"ABTest",我也做错了,
* 我的思想也是一直被"如果没有其它的构造函数,默认的构造函数要被运行"
* 所占据。
*/
编程题(下面二题二选一):
1、怎么样实现自己的LinkedList
答案:继承LinkedList就可以实现了,我下面写了一个简单的:
/**
 * 继承链表,用以实现自己的链表
 * @author Administrator
 *
 */
import java.util.Collection;
import java.util.LinkedList;
public class DoMyLinkedList extends LinkedList {
    public DoMyLinkedList()
    {
       super();
    }
    public void addFirst1(Object o)
    {
       addFirst(o);
    }
    public void removeFirst1()
    {
       removeFirst();
    }
    public void add1(Object o)
    {     
       add(o);
    }
    public boolean addAll1(Collection c)
    {
       return addAll(c);
    }
    public boolean remove1(Object o)
    {
       return remove(o);
    }
    void print(LinkedList ll)
    {
       for(int i=0;i<ll.size();i++)
       {
           System.out.println(ll.get(i));        
       }
    }
    public static void main(String[] arg)
    {
       DoMyLinkedList ll=new DoMyLinkedList();
       ll.add1("a");
       ll.addFirst1("b");
       ll.print(ll);
       ll.remove1("a");
       ll.print(ll);
       ll.addFirst1("c");
       ll.print(ll);
    }
}


2、用任意一种算法实现整型数组的排序

请参看经典排序算法(Java版)
注:
3、List和Hashtable都是可以存储数据的,可为什么有时选择List,有时需要Hashtable,这两个有什么区别?
List是按位置取值,Hashtable是按键取值,更详细的示例说明,请参看:
(编程解决)List和Hashtable都是可以存储数据的,可为什么有时选择List,有时需要Hashtable,这两个有什么区别?

还有关于集合、数据方面的选择题,有些忘了,因为当时没记下来.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics