您的位置:首页 > 其它

拼多多 2018一面 面经

2017-11-27 17:09 357 查看
1、Hashtable线程安全是对每个方法都加入了Synchronize方法。hashtable的加入元素顺序也是无序的。TreeMap是有序的。解决冲突方法拉链法(链地址法)
hashtable耗时的原因:hashtable大量使用了%,而非位运算,同步方面大量方法使用synchronized。
2、缓存记录时间:put(key, Utils.newStringWithDateInfo(saveTime,
value));
newStringWithDateInfo(saveTime,value)是ACache的内部工具类,用来拼接time为header,value为content的字符串。
3、自己实现一个内存中的最少使用算法:修改对象的某个字段,添加一个记录访问次数的字段,并对对象按次数排序。
4、数据库与使用SharePreference文件存储内容,哪种方式更好?
SQLite数据库支持百万级的数据存储量,适合存放字符文本类数据。但是频繁并发在数据库进行存取是一个问题。
文件形式:轻量化的xml文件格式进行本地存储的方式,直接进行put和get操作即可以,但并不适合存储复杂的数据。
对于选择可以按照以下几种原则:数据读写效率,包括考虑数据的体积大小,数据类型,数据来源。例如图片缓存,应该存储于本地比较好,也可以存储于数据库。数据的时效性。数据的可维护性,经常需要更改的可以使用数据库。数据的安全性,contentProvider共享,没有安全性。本地数据库有加密规则,所以比较安全。
5、断点续传:实现
6、两台不同的电脑的hash方法结果是否一样?我想是一样的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: