java基础知识整理
基本数据类型:
整型:byte(-128~127),short(-32768~32767),int(约20亿),long
浮点类型:float(3.4e+38~1.4e-45),double(1.7e+308~4.9e-324)注:e+38表示乘以10的38次方,e-45表示乘以10的-45次方
字符型:char,String
布尔型:boolean
集合框架:这个框架就是一个类库的集合,这些类库里的不同集合类包含了各自不同的数据结构,可以根据实际需要选择。
Iterable:迭代器接口
Collection:类集接口
List:列表接口
Set:数据集接口
Queue:队列
Map:键值对组合映射表(不能实现迭代,因为不是继承自Iterable接口)
集合框架的层次结构图:
List:有序且可重复的collection,可对List容器中的数据进行精确控制,也可以根据元素的整数索引访问,并搜索.
ArrayList:一个动态数组,可以动态添加元素或对象,该数组的容量会自动增加,每次增加后的数组容量为原数组的容量的1.5倍。
LinkedList:一个双端链表,可以从两端插入和移除元素,该数据结构是每个元素是通过pre和next值连接起来的一系列Node对象。
二者优劣比较:
使用链表结构对数据进行插入,删除和修改的效率比数组高,因为数组删除元素后需要对后续的每个元素操作一次位置,而链表的修改不对其他元素产生影响;
若是只需要查找和引用则是数组数据结构的效率更高,因为可以直接使用数组下标查询和引用,但是插入和删除效率较低,因为伴随着移位操作。
Map:(映射)一个存储键/值对的对象,给定一个键可以得到它的值(键和值都可以是对象,键必须是唯一的,值可以重复)
hashMap:基于哈希表的Map接口的实现,并允许使用null键和null值
存储方式:由ƒ(key)得到一个哈希值,作为哈希数组的下标值,存入对应下标的位置。由于哈希算法不具备结果的顺序,导致映射关系存入的顺序不一定是他们被迭代出的顺序。
对于一组不同的<K,V>值,由ƒ(key)计算所得的存储位置可能相同,若是两组<K,V>值中,K相同,V不同,则后存入的数据存入对应的哈希值对应的位置,先存入的数据以链表的形式链接在后存入数据的后面,(若<K,V>都相同,则直接覆盖)所以hashMap真实的数据结构是数组链表结构。
为了保证哈希值的作用,有着hashCode的常规协定来保证哈希表的性能和正确性。
若是需要<K,V>数据当K相同则直接覆盖原来的V值,则可以通过重写数据的hashCode()和equals()方法来实现。
类:
高级特性:
异常机制:
反射机制:
I/O流:
多线程:
泛型和object类:
GUI:
网络编程:
xml: