一般大家都知道ArrayList和LinkedList的大致区别:
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
Vector和ArrayList几乎是完全相同的,唯一的区别在于Vector是同步类(synchronized).因此,开销就比ArrayList要大.正常情况下,大多数的Java程序员使用ArrayList而不是Vector,因为同步完全可以由程序员自己来控制。
HashTable和HashMap区别
第一,继承的父类不同。
Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类。但二者都实现了Map接口。
- public class Hashtable<K,V>
- extends Dictionary<K,V>
- implements Map<K,V>, Cloneable, Serializable
- public class HashMap<K,V>
- extends AbstractMap<K,V>
- implements Map<K,V>, Cloneable, Serializable
第二,线程安全性不同。
Hashtable 中的方法是Synchronize的,而HashMap中的方法在缺省情况下是非Synchronize的。在多线程并发的环境下,可以直接使用Hashtable,不需要自己为它的方法实现同步,但使用HashMap时就必须要自己增加同步处理。
第三,是否提供contains方法
HashMap把Hashtable的contains方法去掉了,改成containsValue和containsKey,因为contains方法容易让人引起误解。
Hashtable则保留了contains,containsValue和containsKey三个方法,其中contains和containsValue功能相同。
第四,key和value是否允许null值。
其中key和value都是对象,并且不能包含重复key,但可以包含重复的value。
Hashtable中,key和value都不允许出现null值。
HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,可能是 HashMap中没有该键,也可能使该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键, 而应该用containsKey()方法来判断。
第五,两个遍历方式的内部实现上不同。
Hashtable、HashMap都使用了 Iterator。而由于历史原因,Hashtable还使用了Enumeration的方式 。
第六,hash值不同。
哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。
第七,内部实现使用的数组初始化和扩容方式不同。
Hashtable和HashMap它们两个内部实现方式的数组的初始大小和扩容的方式。HashTable中hash数组默认大小是11,增加的方式是 old*2+1。
HashMap中hash数组的默认大小是16,而且一定是2的指数。
spring4.0
mybatis3.4
redis序列化
mysql版本 5.6
mongodb版本3.2
1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
相关推荐
根据给定的文件信息,这里将对Java知识点进行汇总,尤其关注Java Web架构及原理方面的知识。 首先,从【标题】:“java知识点汇总” 和【描述】:“内容较杂,有java初中高级知识点,也有Java web架构及原理”来看...
### 学习Android所需Java知识点概述 为了更好地掌握Android开发技术,深入了解并熟练掌握Java语言是必不可少的基础之一。本文将根据“学习android需要的Java知识点列表”中的内容,详细阐述学习Android开发过程中...
这份"java知识点总结思维导图(xmind)"是为帮助学习者系统性地理解和掌握Java核心技术而精心整理的资料。思维导图作为一种有效的学习工具,能够帮助我们更好地组织和记忆信息,提高学习效率。 首先,让我们从基础...
java知识点总结 一、Java 概述 Java 语言的发展始于 1991 年,由 Sun 公司的 James Gosling 等人开始开发,最初命名为 Oak,旨在用于控制嵌入在有线电视交换盒、PDA 等的微处理器。1994 年更名为 Java。Java 语言...
java知识点积累
学习Android所需的Java知识点列表
91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识...
Java知识点总结2019,其中包括了基础、面向对象、api部分、集合类、多线程、GUI、Jdbc、网络编程、io流。
java知识点思维导图.xmind
离线模式下的Java知识点下载,可在线进行代码编写,直观地看出代码运行结果
学习android需要的java知识点列表,提供给想学习android的朋友
关于java语言设计理念 抽象类与接口的区别是什么 java为什么不支持多继承 java里的枚举实现机制是什么 java中的内部类 关于类Collections,Arrays,Objects java里的方法重载 关于java里的main方法
Java知识点总结思维导图Xmind格式的资源是一个非常有价值的工具,尤其对于正在学习或复习Java编程语言的人来说。这个压缩包包含8个独立的Xmind文件,每个文件都专注于Java的不同领域,提供了清晰、结构化的知识框架...
Java基础知识点总结 详细分析 图解
文档梳理了Java基本语法知识——环境搭建、数据类型、运算符、控制流、数组、Arrays类、字符串、类和对象、对象的生成与销毁、Java包&方法调用&访问控制、封装和继承、多态、继承链、抽象类和接口等等。
文档中详细讲述java基础知道,对刚入门或入门不久的职场人非常有帮助。
Java知识点.xmind
这份Java知识点资料旨在为初学者和有一定经验的开发者提供全面的Java编程语言基础。Java是一门强大而灵活的面向对象编程语言,广泛应用于企业级应用、移动应用和嵌入式系统等多个领域。以下是这份资料包含的主要知识...
java知识点总结 包括: 1.jvm、基础知识、多线程 2.spring、springMVC、springBoot 3.sql优化、mybatis 4.SpringCloud、restful api、docker等