关闭

2015年java面试题

标签: java面试题java面试题天津2015java面试题
211人阅读 评论(0) 收藏 举报
分类:

本人是天津师范大学研究生一年级学生,为了增进自己的Java编程水平和思想,四处寻求最好的实习和工作机会。以下就是本人的面试经历:

1.hashtable和hashmap区别

实话说拿到这个题目的时候我也就蒙了,基本上也没怎么使用过hashtable。后面通过查找一些比较靠谱的网站得出答案,可供参考。

(1)HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。

(2)HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。

(3)HashTable有一个contains(Object value),功能和containsValue(Object value)功能一样。

(4)HashTable使用Enumeration,HashMap使用Iterator。 以上只是表面的不同,它们的实现也有很大的不同。(5)HashTable中hash数组默认大小是11,增加的方式是old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。

(6)哈希值的使用不同。


2.对hashmap进行遍历

a.对key和value都遍历

HashMap<String,String> hm = new HashMap<>();

for(Entry entry:hm.entrySet()){

entry.getKey(); entry.getValue();

}

b.对key遍历

HashMap<String,String> hm = new HashMap<>();

for(String key:hm.keySet()){...}

c.对value遍历

HashMap<String,String> hm = new HashMap<>();

for(String value:hm.values()){ ...}


3.实现多线程的三种方式

(1)继承Thread

(2)实现Runnable接口

(3)使用ExecutorService、Callable、Future实现有返回值的多线程结果


4.StringBuffer和StringBuilder区别

StringBuffer线程安全,效率较低

StringBuilder线程不安全,效率较高


5.StringBuffer中insert方法和append方法区别。例如append(x等同于)什么

StringBuffer中insert方法有两个参数,可以任意位置进行添加,而append方法只能添加到尾部。


还有两道考算法逻辑的题目(我也没能答出来,要是有答出来的可以留言给我)

第一题:有十二个硬币,其中有一个是伪币(除了重量不一样以为其他都相同),用天平称三次找出伪币。

第二题:有一名老师,他有三个聪明的学生。有一天,老师将三名学生的额头上贴了三个纸条,纸条上面写上了正整数。三名同学只能看见其他两名同学额头纸条上的数字,却看不见自己额头上的数字。但是,这三个数字中其中有某两个数字的和等于第三个数字。老师问第一个同学,你知道你额头纸条上的数字吗?第一个同学回答不知道。继而,问第二个同学也,你知道你额头纸条上的数字吗?第二个同学回答不知道。最后,老师问第三个同学,第三个同学回答是144。你知道其他两名学生额头上的数字吗?

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13426次
    • 积分:312
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:6篇
    • 译文:0篇
    • 评论:3条
    最新评论