基础面试题(1)

1.hashmap 和 hashtable的区别

  •    HashMap不是线程安全的

        hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。

  • HashTable是线程安全的一个Collection。

      HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
      HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
      HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
      Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
      最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
      Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。


2.ArrayList和Vector的区别,ArrayList和LinkedList的区别

    Vector和ArrayList Vector和ArrayList在使用上非常相似,都可用来表示一组数量可变的对象应用的集合,并且可以随机地访问其中的元素,都用数组实现。
    Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此, ArrayList的性能比Vector好。
    当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。

 

    ArrayList是实现了基于动态数组的数据结构,LinkedList基于双向链表的数据结构。
    对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
    对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据


3.Linux下如何查看系统负载(cpuinfo,top,ps)

    cat /proc/cpuinfo

    top

    ps


4.输出系统时间到tmp.log

    (cal > tmp.log)


5.在linux系统下,给你一个日志文件,总共有四列,第四列有20种不同的值,统计这些值的出现的次数
6.什么是cookie,cookie和session的区别(cookie是保存在客户端的一些用户输入,session是保存在服务端的用户输入)
7.Http中Get和Post的区别(Get用于查一些信息类似于sql中的select,post用于修改服务端的一些内容类似于update)
8.js、ajax、dom、xpath的关系(ajax不是新技术,是一些技术的整合,前段采用js,dom可以使得html像xml一样按照节点访问,xpath用于查找xml节点)
9.linux下如何查看内存(free查看总的使用情况,ps或者top类似于进程管理器查看具体的使用情况) 硬盘使用情况(df)

posted @ 2012-10-23 09:44  三块钱的其其  阅读(213)  评论(0编辑  收藏  举报