@@@2013年9月11日 还在北京昌平区@@@
好几天没有往博客上贴我的面试备战笔记了,今天开始分享一下备战阿里巴巴校招的笔经,当然重点是java方向的题目~。
插一段2014年阿里巴巴校招的消息:
招聘详情
招聘人数:1000人
招聘岗位:
研发工程师、测试开发工程师、系统工程师、安全工程师、算法工程师、数据分析师、前端工程师、交互设计师、视觉设计师、用户体验分析师、产品经理、运营专员
网申地址:http://campus.alibaba.com/
网申时间:2013年9月1日——9月30日
招聘流程:网申-笔试-面试-面试-发出聘用意向书。
阿里巴巴集团校园招聘将在北京、杭州、香港等20个城市举行招聘,每个城市将在5天的时间内,进行宣讲、笔试、面试,并且发放聘用意向书。
各个城市的具体笔试、面试时间如下。请同学们在网申时,根据自己的所在地和时间安排,注意选择希望进行笔试、面试的城市。
北京 网申:9月1日-9月20日 笔试:9月14日、9月22日 面试:9月16日-10月12日
合肥、哈尔滨、西安、天津、大连、沈阳 网申:9月1日-9月12日 笔试、面试:9月14日-18日
杭州、武汉、成都、上海、南京、广州 网申:9月1日-9月20日 笔试、面试:9月22-26日
无锡 网申:9月1日-9月20日 笔试、面试:9月26-28日
长沙、厦门、重庆、长春、济南 网申:9月1日-9月30日 笔试、面试:10月8日-12日
获取阿里巴巴集团2014校园招聘的最新资讯,敬请关注:
阿里巴巴集团校园招聘网站:http://campus.alibaba.com/
新浪微博:阿里巴巴集团校园招聘 http://e.weibo.com/campusali
=========================可爱的分割线===========================
废话不多说了,直接上题吧 ♀->本人声明:这些题目有些是阿里巴巴历年的原题,有些则是额外添加的必备知识点。
1、在try的括号里面有return一个值,那是否还执行finally里的代码。是在return前执行还是return后执行。
答:不管try语句快抛出异常与否,还是try块中有return语句,finally语句块都会执行。并且在return之前执行。
例子:
package net.mldream;
public class Test7Finally {
public static String test(){
try{
String str = "这是return值" ;
System.out.println("return之前") ;
return str ;
}catch(Exception e) {
}finally {
System.out.println("这是finally中") ;
}
return "111" ;
}
public static void main(String[] args) {
System.out.println(test()) ;
}
}
上述代码输出结果:return之前
这是finally中
这是return值
2、javascript题:实现点击页面上的一个链接,然后隐藏这个链接的功能。
答:这道题目就是考简单的js中对元素节点的操作,以及css的style样式的属性记忆。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>点击a标签实现隐藏自身</title>
<script type="text/javascript">
function hidd() {
var aObj = document.getElementById("a1");
aObj.style.display="none" ;
}
</script>
</head>
<body>
<a href="javascript:hidd();" id="a1">点击隐藏我自己</a>
</body>
</html>
采用document.getElementById() //通过id获取元素节点,再设置其style中的display为none,即可隐藏!
3、简述ArrayLists和LinkedList的区别?
答:
ArrayList ,顾名思义,指的是数组式的对象列表,采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦
LinkedList 则是链表式的对象列表,采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引。但是缺点就是查找非常麻烦,从第一个索引开始。
总结:根据他们各自的特点,很容易知道怎样使用他们。当你需要频繁的进行查找操作的时候,则选用易于查找的ArrayList,如果你需要频繁进行的是插入或是删除操作的话,推荐使用LinkedList。
4、Hashtable和HashMap的不同点。
答:Hashtable和HashMap类有三个重要的不同之处。
第一、因为历史原因,Hashtable是基于陈旧的Dictionary类的,而HashMap则是java1.2引进的Map接口的一个实现类。
第二、也许两者最重要的不同就是Hashtable是同步的,而HashMap不是。这就意味着,虽然你可以不用采取任何特殊的行为就可以在一个多线程的环境中使用Hashtable,但是你必须同样的为一个HashMap提供外同步。(提示一下同步的方法:一个方便的方法就是利用Collections类的静态的synchronizedMap()方法,它创建一个线程安全的Map对象,并把它作为一个封装的对象来返回。这个对象的方法可以让你同步访问潜在的HashMap。)
第三、只有HashMap可以让你将空值作为一个表的条目的key或value。HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。这就是说,如果在表中没有发现搜索键,或者如果发现了搜索键,但它是一个空的值,那么get()将返回null。如果有必要,用containKey()方法来区别这两种情况。
总结:一些资料建议,当需要同步时,用Hashtable,反之用HashMap。但是,因为在需要时,HashMap可以被同步,HashMap的功能比Hashtable的功能更多,而且它不是基于一个陈旧的类的,所以有人认为,在各种情况下,HashMap都优先于Hashtable。
温馨提示:写到这里,弱弱的说一句,这些集合类、真的是非常关键的知识点。什么同步非同步的区别,安全非安全的区别,可以为空不可以为空等等的差别,都是他们的关键因素!!! 希望读者们自己多多掌握这方面的细节,面试不就是挑基础,挑细节吗? 呵呵~~