没有合适的资源?快使用搜索试试~ 我知道了~
java开发实习生面试题3,其中主要是我对容器,框架的简单概念做的一些整理,希望可以帮到有需要的人。
资源推荐
资源详情
资源评论
1、HashMap 和 Hashtable 的区别和联系
2、string、stringBuilder 和 stringBuer 的区别
3、数组和链表的区别
4、Vector 和 ArrayList、LinkedList 区别
5、Java 容器
6、java 的集合类
7,java 的容器和集合的区别
8、状态码
9、封装、继承、多态
10、抽象类和接口的区别
11、设计模式
1、HashMap 和 Hashtable 的区别和联系
https://www.cnblogs.com/williamjie/p/9099141.html
HashTable 是线程安全的,很多方法都是 synchronized 方法,而 HashMap 不是线程安全
的,但其在单线程程序中的性能比 HashTable 要高
相同点:实现原理相同,功能相同,底层都是哈希表结构,查询速度快,在很多情况下可
以互用
不同点:1、Hashtable 是早期提供的接口,HashMap 是新版 JDK 提供的接口。
2、Hashtable 继承 Dictionary 类,而 HashMap 继承自 AbstractMap 类。都实现了 Map 接
口。
3、Hashtable 线程安全(Synchronize 同步的),HashMap 线程非安全。
4、Hashtable 不允许 null 值,HashMap 允许 null 值。
*如何保证线程安全的?每个修改容器中数据的操作都是同步的(synchronized),因此保
证了线程安全。
2、string、stringBuilder 和 stringBuer 的区别
三者在执行速度方面的比较:StringBuilder> StringBuffer > String
(为啥字符串是最低的工作效率呢?String 类型是不可改变的对象了,由于这种机制,每
当用 String 操作字符串时,实际上是在不断的创建新的对象,而原来的对象就会变为垃圾
被GC回收掉,可想而知这样执行效率会有多底。)
对于三者使用的总结:
1.如果要操作少量的数据用String
2.单线程操作字符串缓冲区下操作大量数据StringBuilder
3.多线程操作字符串缓冲区下操作大量数据StringBuer
3、数组和链表的区别
https://blog.csdn.net/weibo1230123/article/details/82011889
数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特
点。链表中各结点在内存中的存放位置是任意的。
链表与数组的主要区别
(1)数组的元素个数是固定的,而组成链表的结点个数可按需要增减;
(2)数组元素的存诸单元在数组定义时分配,链表结点的存储单元在程序执行时动态向
系统申请:
(3)数组中的元素顺序关系由元素在数组中的位置(即下标)确定,链表中的结点顺序关系由
结点所包含的指针来体现。
(4)对于不是固定长度的列表,用可能最大长度的数组来描述,会浪费许多内存空间。
(5)对于元素的插人、删除操作非常频繁的列表处理场合,用数组表示列表也是不适宜的。
若用链表实现,会使程序结构清晰,处理的方法也较为简便。
例如在一个列表中间要插人一个新元素,如用数组表示列表,为完成插人工作,插人处之
后的全部元素必须向后移动一个位置空出的位置用于存储新元素。
对于在一个列表中删除一个元素情况,为保持数组中元素相对位置连续递增,删除处之后
的元素都得向前移一个位置。如用链表实现列表.链表结点的插人或删除操作不再需要移动
结点,只需改变相关的结点中的后继结点指针的值即可,与结点的实际存储位置无关。
数组的特点
在内存中,数组是一块连续的区域。
数组需要预留空间,在使用前要先申请占内存的大小,可能会浪费内存空间。
插入数据和删除数据效率低,插入数据时,这个位置后面的数据在内存中都要向后
移。
随机读取效率很高。因为数组是连续的,知道每一个数据的内存地址,可以直接找
到给地址的数据。
并且不利于扩展,数组定义的空间不够时要重新定义数组。
链表的特点
在内存中可以存在任何地方,不要求连续。
每一个数据都保存了下一个数据的内存地址,通过这个地址找到下一个数据。第
一个人知道第二个人的座位号,第二个人知道第三个人的座位号
增加数据和删除数据很容易。再来个人可以随便坐,比如来了个人要做到第三个
位置,那他只需要把自己的位置告诉第二个人,然后问第二个人拿到原来第三个人
的位置就行了。其他人都不用动。
查找数据时效率低,因为不具有随机访问性,所以访问某个位置的数据都要从第一
个数据开始访问,然后根据第一个数据保存的下一个数据的地址找到第二个数据,
以此类推。要找到第三个人,必须从第一个人开始问起。
不指定大小,扩展方便。链表大小不用定义,数据随意增删。
各自的优缺点
数组的优点
随机访问性强
查找速度快
数组的缺点
插入和删除效率低
可能浪费内存
内存空间要求高,必须有足够的连续内
存空间。
数组大小固定,不能动态拓展
链表的优点
插入删除速度快
内存利用率高,不会浪费内存
大小没有固定,拓展很灵活。
链表的缺点
不能随机查找,必须从第一个开始遍历,
查找效率低
4、Vector 和 ArrayList、LinkedList 区别
https://www.cnblogs.com/lingshang/p/10897912.html
ArrayList 内部以数组形式存储数据。
ArrayList: 可以看作是能够自动增长容量的数组
ArrayList 的 toArray 方法返回一个数组
ArrayList 的 asList 方法返回一个列表
ArrayList 底层的实现是 Array, 数组扩容实现
剩余18页未读,继续阅读
资源评论
爱小码
- 粉丝: 21
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功