ArrayList和Vector的区别?HashMap和HashTable的区别?StringBuilder、StringBuffer和String的区别?
ArrayList和Vector的区别?从两个方面
1.同步性:ArrayList是线程不安全的,是非同步的;Vector是线程安全的,是同步的。(Java中线程的同步也就满足了安全性)
2.数值增长:ArrayList每次增长为原来的50%;Vector每次增长为原来的100%;
(从内部实现机制来讲,ArrayList和Vector都是使用数组(Array)来控制集合中的对象,当向集合中添加对象时,如果内部数组长度不够用时,长度会自动增长。ArrayList会增长为原来的1.5倍,Vector增长为原来的2倍)
HashMap和HashTable的区别?从三个方面
1.同步性:HashMap是线程不安全的,是非同步的;HashTable是线程安全的,是同步的;
2.值:HashMap可以存空值,而HashTable不能
3.HashMap是实现了1.2版本之后的一个新接口Map,HashTable则是实现了比较老的一个类Dictionary
StringBuilder、StringBuffer和String的区别?
当我们要完成字符串拼接时,从效率上讲StringBuilder >StringBuffer > String
String是不可变对象,StringBuilder和StringBuffer都是可变对象,这也是为什么String+的时候效率会变得非常低的直接原因,另外在创建String时,在底层会new StringBuilder 然后再toString();
StringBuilder是线程不安全的、StringBuffer是线程安全的
ArrayList、Vector、linkedList存储性能和特性?
ArrayList和Vector内部都是用了数组实现存储,在插入数据的时候牵扯到元素的移动和内存的操作,因此在插入的时候效率比较低。而在查找方面效率还是比较高。
Vector使用了同步代码块实现了线程安全,因此在效率上比不过ArrayList。
LinkedList使用双向链表实现存储,在查找是需要向前向后进行遍历,所以查找效率比较低,但是在插入时只需要纪录本项的前后项即可,所以插入效率很高。
水平有限,如果有错误,希望博友们帮忙指出!
ArrayList和Vector的区别?HashMap和HashTable的区别?StringBuilder、StringBuffer和String的区别?的更多相关文章
- HashMap、Hashtable、LinkedHashMap、TreeMap、ConcurrentHashMap的区别
Map是Java最常用的集合类之一.它有很多实现类,我总结了几种常用的Map实现类,如下图所示.本篇文章重点总结几个Map实现类的特点和区别: 特点总结: 实现类 HashMap LinkedHash ...
- HashMap、Hashtable、HashSet三种hash集合的区别
转载:http://www.cnblogs.com/lzrabbit/p/3721067.html#h1 HashMap和Hashtable的区别 两者最主要的区别在于Hashtable是线程安全,而 ...
- StringBuffer和String的区别
面试题:String为什么不可变 StringBuffer和StringBuilder的区别 String 和StringBuffer的区别: (一):String 类中的byte数组使用final修 ...
- 面试题·HashMap和Hashtable的区别(转载再整理)
原文链接: Javarevisited 翻译: ImportNew.com- 唐小娟 译文链接: http://www.importnew.com/7010.html HashMap和Hashtabl ...
- HashMap和Hashtable的区别(转载)
转载声明:转载自原文http://www.importnew.com/7010.html HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是 ...
- HashMap与HashTable的区别?
HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题.HashMap的工作原理.ArrayList与Vect ...
- HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象.当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算h ...
- (转)HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象.当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算h ...
- HashMap底层实现原理以及HashMap与HashTable区别以及HashMap与HashSet区别
①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象.当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算h ...
随机推荐
- Controller方法返回值
1. 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加model数据.指定view. //入门程序 第一 包类 + 类包 + 方法名 @Re ...
- delphi 窗体透明详解TransparentColorValue,窗体透明控件不透明
关于窗体透明的做法 来自:http://blog.csdn.net/shuaihj/article/details/8610343 关于窗体透明的做法 1.在Delphi中,设置窗体的AlphaBle ...
- 这一次,我连 web.xml 都不要了,纯 Java 搭建 SSM 环境!
在 Spring Boot 项目中,正常来说是不存在 XML 配置,这是因为 Spring Boot 不推荐使用 XML ,注意,并非不支持,Spring Boot 推荐开发者使用 Java 配置来搭 ...
- org.apache.commons.io.Charsets
requiredCharsets:由Java平台支持字符集对象标准名称,构造一个sorted map. public void test() { Map<String, Charset> ...
- SecureCRT使用Ctrl+D快速关闭Tab
- SecureCRT导出服务器列表或配置文件
说明:SecureCRT没有Xshell那么简单有直接导出的功能,但是可以通过技巧的方式来操作. 1.打开SecureCRT,点击菜单栏的[Opitions]->[Global Opitions ...
- go语言学习之路六:接口详解
Go语言没有类和继承的概念,但是接口的存在使得它可以实现很多面向对象的特性.接口定义了一些方法,但是这些方法不包含实现的代码.也就是说这些代码没有被实现(抽象的方法).同时接口里面也不包含变量. 看一 ...
- mysql之创建数据库,创建数据表
写在前面 项目中用到mysql数据库,之前也没用过mysql,今天就学下mysql的常用的语法,发现跟sql server的语法极其相似.用起来还是蛮简单的. 一个例子 1.创建一个名为School的 ...
- Dcokerfile 参考
Dcokerfile 包含了所有用来组装image的命令.通过docker build来自动创建image. 用法 需要指定本地路径作为上下文目录,路径是本地系统的目录.而docker build ...
- iOS网络交互数据格式解析之json
作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式.从ios5开 始,apple提供了对json的原生支持,但为了兼容以前的ios版本,我们仍然需要使用第三方库来解析常用 ...