zoukankan      html  css  js  c++  java
  • 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使用双向链表实现存储,在查找是需要向前向后进行遍历,所以查找效率比较低,但是在插入时只需要纪录本项的前后项即可,所以插入效率很高。

     

    水平有限,如果有错误,希望博友们帮忙指出!

  • 相关阅读:
    HLS协议实现
    hdu 1710 Binary Tree Traversals
    geoserver + postgis+postgresql+agslib.swc
    hdu 1241
    数值分析之牛顿法多项式求根
    逆波兰表达式 java
    【SQL】查询语句中in和exists的区别
    jsp连接MySQL操作GIS地图数据,实现添加point的功能
    mahout学习-1
    文件归档
  • 原文地址:https://www.cnblogs.com/zyh1994/p/5971419.html
Copyright © 2011-2022 走看看