java基础

2018-08-10  本文已影响0人  装完逼立马跑

基本数据类型所占字节:

boolean 这个试编译环境而定;byte 1个字节;short 2个字节;char 2个字节;int 4个字节;long 8个字节;float 4个字节;double 8个字节。

类初始化顺序:

父类静态变量-->父类静态初始块-->子类静态变量-->子类静态初始块-->
父类初始块-->父类构造器-->子类初始块-->子类构造器;
当直接调用静态方法时的顺序是:父类静态变量-->父类静态初始块-->子类静态变量-->子类静态块-->被调用的静态方法;

List集合:

arraylist和linkedlist:它们都是有序非线程安全的集合;arraylist是基于数组实现的,而linkedlist是基于双向链表实现的,因为数据结构的不同,ArrayList在寻找地址的时候比linkedlist快,在数据插入时,arraylist会进行一次数据copy,而linkedlist只是修改一下前后节点的地址,ArrayList的扩容也是一个既耗时有耗空间的操作。
线程安全的list:通过Collections.synchronizedList()来实现;Vector(和ArrayList实现基本相同,只是在方法上加了同步关键字);CopyOnWriteArrayList;

Map集合:

hashmap,linkedHashmap,conturrenthashmap,treemap,hashtable
hashmap是基于数组+链表实现的,在插入元素时,会先计算key的hash值计算出存放的数组位置,然后再对key进行判重,如果重复则覆盖,不重复就放在该数组下标的链表中

上一篇下一篇

猜你喜欢

热点阅读