Java面试题目(基础部分)
Java面试题目(基础部分)
在水一方发盐人 发表于2年前
Java面试题目(基础部分)
  • 发表于 2年前
  • 阅读 18
  • 收藏 1
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

1、List 与 Set 

    1)set 是不保证集合中元素的顺序的 ,List的特征是其元素有序存储

    2)set它不允许出现重复元素 且允许包含值为null的元素,但最多只能有一个null元素

    3)Set 和List 都继承了Conllection

2、ArrayList 的最大长度是多少?多线程操作(添加、删除)的情况下怎么避免ConcurrentException

     1、ArrayList是基于数组实现的,最大长度不会超过数组的长度,那数组的最大长度是多少呢?这个问题还真没想过,定义一个试试就知道了,最大长度是byte[] arr3 = new byte[2147483647];再大一点就报编译不通过。所以最大值是int的最大值是 (int 4个字节) 2的31次方减去1 。也就是Integer.MAX_VALUE的值 。这个问题我没答上来,如果你能答对话,他肯定会问下一个问题,如果业务中可能存在超过这个长度的数据怎么办,回答是 LinkedArrayList (基于于双向链表)

2、使用CopyOnWriteArrayList 替代,或 线程同步 ,或自定义一个方法(类似cocos2dx引擎的demo游戏里的清除子弹的方式,先遍历list1把要删除的数据添加到list2中,再便利list2 并删除list中的重叠的数据)

3、HashMap是怎么实现的 ,看过它的源码吗(,我擦,直没看过,也不知道)

     不知道的有必要查一下,最好看看源码吧

4、mysql 什么样的列上应该加索引 ,索引原理是什么,基于什么数据结构实现

    基于B+树  (基础不好的应该学习一下了B+树,红黑树等)我回答错了哈哈

5、消息队列适合用哪种数据结构存储

     

6、多线程问题,并发修改 int i=0  (i++)的问题,几种方式实现线程同步 

          我回答了三种:

          1、asynchronized 加在块或方法上 ; 2、Lock.lock() 与 Lock.unlock 3、使用AtomicInteger

          面试过程中,面试官好像一直试图引导我另一种实现方式,不过我没想出来。难道是想让我回答

          使用volatile关键字修饰?但是他失望了呵呵、

7、

 

标签: 面试题目
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 37
码字总数 8322
×
在水一方发盐人
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: