`

java知识点

    博客分类:
  • Java
阅读更多

 

一般大家都知道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接口。

 

[java] view plain copy
  1. public class Hashtable<K,V>  
  2. extends Dictionary<K,V>  
  3. implements Map<K,V>, Cloneable, Serializable  
  4.   
  5. public class HashMap<K,V>  
  6. extends AbstractMap<K,V>  
  7. 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知识点进行汇总,尤其关注Java Web架构及原理方面的知识。 首先,从【标题】:“java知识点汇总” 和【描述】:“内容较杂,有java初中高级知识点,也有Java web架构及原理”来看...

    学习android需要的Java知识点列表.pdf

    ### 学习Android所需Java知识点概述 为了更好地掌握Android开发技术,深入了解并熟练掌握Java语言是必不可少的基础之一。本文将根据“学习android需要的Java知识点列表”中的内容,详细阐述学习Android开发过程中...

    java知识点总结思维导图(xmind)

    这份"java知识点总结思维导图(xmind)"是为帮助学习者系统性地理解和掌握Java核心技术而精心整理的资料。思维导图作为一种有效的学习工具,能够帮助我们更好地组织和记忆信息,提高学习效率。 首先,让我们从基础...

    java知识点总结

    java知识点总结 一、Java 概述 Java 语言的发展始于 1991 年,由 Sun 公司的 James Gosling 等人开始开发,最初命名为 Oak,旨在用于控制嵌入在有线电视交换盒、PDA 等的微处理器。1994 年更名为 Java。Java 语言...

    java知识点积累

    java知识点积累

    学习Android所需的Java知识点列表

    学习Android所需的Java知识点列表

    91.java知识点补充.zip

    91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识点补充.zip91.java知识...

    Java知识点总结2019

    Java知识点总结2019,其中包括了基础、面向对象、api部分、集合类、多线程、GUI、Jdbc、网络编程、io流。

    java知识点思维导图.xmind

    java知识点思维导图.xmind

    离线Java知识点大全

    离线模式下的Java知识点下载,可在线进行代码编写,直观地看出代码运行结果

    学习android需要的java知识点列表.txt

    学习android需要的java知识点列表,提供给想学习android的朋友

    JAVA知识点总结.pdf

    关于java语言设计理念 抽象类与接口的区别是什么 java为什么不支持多继承 java里的枚举实现机制是什么 java中的内部类 关于类Collections,Arrays,Objects java里的方法重载 关于java里的main方法

    java知识点总结思维导图xmind格式

    Java知识点总结思维导图Xmind格式的资源是一个非常有价值的工具,尤其对于正在学习或复习Java编程语言的人来说。这个压缩包包含8个独立的Xmind文件,每个文件都专注于Java的不同领域,提供了清晰、结构化的知识框架...

    Java知识点总结 最全面 最新版

    Java基础知识点总结 详细分析 图解

    java知识点梳理

    文档梳理了Java基本语法知识——环境搭建、数据类型、运算符、控制流、数组、Arrays类、字符串、类和对象、对象的生成与销毁、Java包&方法调用&访问控制、封装和继承、多态、继承链、抽象类和接口等等。

    java知识点详解

    文档中详细讲述java基础知道,对刚入门或入门不久的职场人非常有帮助。

    Java知识点.xmind

    Java知识点.xmind

    java知识点资料-txt

    这份Java知识点资料旨在为初学者和有一定经验的开发者提供全面的Java编程语言基础。Java是一门强大而灵活的面向对象编程语言,广泛应用于企业级应用、移动应用和嵌入式系统等多个领域。以下是这份资料包含的主要知识...

    JAVA知识点总结.zip

    java知识点总结 包括: 1.jvm、基础知识、多线程 2.spring、springMVC、springBoot 3.sql优化、mybatis 4.SpringCloud、restful api、docker等

Global site tag (gtag.js) - Google Analytics