(1)原子不可再分
(2)每列都与主键有关
(3)每列都与主键直接相关,而不是间接相关。
(1)实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步
(2)hashmap是无序的,就是不会记录插入的顺序
(3)继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口
equal、clone、getClass、notify、notifyAll、toString、wait、getClass
3.map的方法 4.String、Stringbuilder 与StringbufferString类是一个不可变的类,任何对String对象的改变都会引发新的String对象生成;
(1)StringBuffer是线程安全的,也就是说是同步的,StringBuild是线程不安全的,也就是不同步的
(2)Stringbuilder在单线程上的性能比StringBuffer更高
(1)(同步性)Vector是线程安全,也就是说是同步的,Arraylist是线程不安全,也就是说不同步的
(2)(增长性)当数据需要增长时,vector默认是增长为原来的一倍,Arraylist是原来的一半
(1)最根本的区别在于equal是一个方法,而是一个运算符
(2)当两端是基本数据类型的时候,是进行值的比较,当两端是引用数据类型时候,是比较两个对象在栈中的引用(地址)是否相同,在object类中的equals方法就是用来比较,如果没有重写equal方法,则equal方法和==是等价的
(3)通常重写equals方法,是比较两个对象的内容是否相等(堆中),==是比较地址(栈中)
(1)hashtable是基于陈旧的Dictionary类,hashmap是map接口实现的
(2)hashtable 是线程安全的,很多都是synchronized方法,hashmap不是线程安全的,但其在单线程上的性能比hashtable要高。
(3)hashmap可以让你将空值作为一个表的条目的key和value
(HashTable是较为远古的使用Hash算法的容器结构了,现在基本已被淘汰,单线程转为使用HashMap,多线程使用ConcurrentHashMap。)
8.线程安全多条线程并行执行的中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况
9.java锁分为两类
(1)第一类是synchronized同步关键字,这个关键字属于隐式的锁,是jvm层面实现,使用时看不见;
(2)第二类是在jdk5后增加的Lock接口以及对应的实现类,这属于显示的锁,就是我们能在代码层面看到锁这个对象,而这些个对象的方法实现,大都是直接依赖cpu指令的,无关jvm的实现



