记支付宝面试的几道题

本文记录了支付宝面试中关于HashMap与TreeMap的区别,以及线程同步控制的问题。详细讨论了冒泡排序和快速排序的算法实现及效率分析,指出在不同场景下选择排序算法的依据。
摘要由CSDN通过智能技术生成

前几天去了支付宝面试,虽然都算是答上来了,面试也过了,但是有几道题自觉答得不是很完整,故记录于此。


问:HashMap 和 TreeMap的区别,使用时怎么选择?

答:HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。

HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。

集合框架”提供两种常规的Map实现:HashMapTreeMap (TreeMap实现SortedMap接口)。在Map 中插入、删除和定位元素,HashMap 是最好的选择。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。使用HashMap要求添加的键类明确定义了hashCode()equals()的实现。  这个TreeMap没有调优选项,因为该树总处于平衡状态。


问:HashMap 和 HashTable的区别?

答:Hashtable 与 HashMap类似,但是主要有6点不同。

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

        2.HashTable不允许null值,key和value都不可以,HashMap允许null值,key和value都可以。HashMap允许key值只能由一个null值,因为hashmap如果key值相同,新的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.哈希值的使用不同,HashTable直接使用对象的hashCode。


GET POST区别 


SESSION, COOKIE区别 


HTTP 报文包含内容 


冒泡排序,快速排序的算法,以及效率。JDK用的是什么算法?


反射概念,怎么优化?


CGLIB


HashMap 和 HashTable的区别?


String, StringBuffer 和 StringBuilder?String为什么是不可变的?JDK各种底层实现?


Sping IOC?


Spring源码用了哪些设计模式?


对称加密、非对称加密,hash加密


SSL协议过程


线程有哪些状态?


JAVA内存模型


垃圾分带回收?怎么分代


线程同步,并发操作怎么控制 

问:线程有哪些状态?



问:说说冒泡排序,快速排序的算法,以及效率。JDK用的是什么算法?


冒泡排序

          2.1 引出

           前面的两篇博客里讲的插入排序是基于“逐个记录插入”,选择排序是基于“选择”,那么冒泡排序其实是基于“交换”。每次从第一个记录开始,一、二两个记录比较,大的往后放,二三两个记录比较...依次类推,这就是一趟冒泡排序。每一趟冒泡排序后,无序序列中值最大的记录冒到序列末尾,所以称之为冒泡排序。

          2.2 代码

  1. //冒泡排序  
  2. void bubbleSort(int *a,int n)  
  3. {  
  4.     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值