2013年3月25日(面试)
(1)你所知道的集合类有哪些?描述一下这些集合类的作用?
答:集合类有 List,Set,Map集合。
1.List集合是有序,且元素可重复。常用类有LinkedList,ArrayList,Vector和Stack。
2.Set集合是无序,且元素不可重复。
3.Map集合提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。常用类有Hashtable,HashMap,WeakHashMap。
(2)有一个将大量短字符拼接成一个长字符串的功能,请描述你将如何实现。
答:使用StringBuffer来实现
StringBuffer str=new StringBuffer();
str.append("段字符串").append("段字符串").....;
(3)公司开发了一个特定功能的api包,由于客户有新需求,要求在保持接口名称不变的情况下实现对参数列表的扩充,请问该怎么实现客户需求?
后来客户要求保持接口和参数列表不变的情况下,改变接口提供的功能,请问该如何实现客户的需求?(提示,使用Java的什么机制可以方便达到客户要求?)
答:用接口继承接口来实现参数列表扩充(extends),用一个类来继承实现了接口方法的类,并覆盖该类的方法。
package TestFor0324; public interface InterfaceTest { public void run(int i, int j); } interface test1 extends InterfaceTest{ public void run(int i,int j,int k); }
(4)定义一个Javascript对象字面量,并向对象中添加属性a=1,b=2;
var test={
a:1,
b:2;
};
(5)给出如下javascript代码
var j=1;
var obj={j:2};
function test(){
alert(this.j);
}
test();//line7
test.call(obj);//line8
line 7输出:1
line 8输出:2
(6)输出如下结果:
* *
** *
*** *
**** *
******
package TestFor0325; public class DemoFor水仙花数 { public static void main(String[] args) { // TODO Auto-generated method stub for(int i=1;i<6;i++){ for(int j=1;j<=i;j++){ System.out.print("*"); } for(int k=1;k<6-i;k++){ System.out.print(" "); } System.out.println("*"); } } }
(7)一类数字,他们顺着看和倒着看是一样的如“121,12321....”,这样的数字就称回文数字,编写一个Javascript程序,判断某个数字是不是回文数字。
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<meta http-equiv='content-Type' content='text/html;charset=utf-8'>
</HEAD>
<script>
function check(obj){
var value=obj.value;
if(isNaN(value)){
alert('请输入数字');
return ;
}
for(var i=0;i<value.length/2;i++){
if(value.charAt(i)-value.charAt(value.length-1-i)!=0){
alert('不是回文数');
return ;
}
}
alert('是回文数');
}
</script>
<BODY>
<input type='text' onblur='check(this)' />
</BODY>
</HTML>
(8)有一个水龙头,能无限出水,还有两个空瓶。分别储藏500ml水和600ml水,想想通过什么方法能得到300ml水?
(9)谈谈“沉默是金”这句话与软件开发工作的关系!
答:略。。