java的四个基本特性
抽象,封装 ,多态性 ,继承性
java的基本类型
byte,short,char,int,long,boolean,float,double
集合类型主要有3种
List(有序、可重复)
ArrayList默认大小10
与Array相比,ArrayList的大小是动态变化的。
Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。
Vector和ArrayList都是基于数组实现的,但是Vector有同步是线程安全的,但是效率低下,ArrayList不同步,效率高
LinkedList基于链表实现,存储快,查询慢
Set(无序、不能重复)
HashSet:内部是由哈希表(实际上是一个 HashMap 实例)支持的。它不保证 set 元素的迭代顺序
TreeSet:TreeSet 使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序。
Map(键值对、键唯一、值不唯一)
HashMap默认大小是16
Hashtable:内部存储的键值对是无序的是按照哈希算法进行排序,与 HashMap 最大的区别就是线程安全。键或者值不能为 null,为 null 就会抛出空指针异常。ConcurrentHashMap可以替代hashTable
TreeMap:基于红黑树 (red-black tree) 数据结构实现,按 key 排序,默认的排序方式是升序。
LinkedHashMap:有序的 Map 集合实现类,相当于一个栈,先 put 进去的最后出来,先进后
集合中泛型优点
java的泛型是停留在编译层的,也就是说JVM在对待泛型数据的时候,依然会把它们看成是Object类型,
只不过在使用这些元素的时候,JVM会自动帮助我们进行相应的类型转换。
集合使用泛型之后,可以达到元素类型明确的目的,避免了手动类型转换的过程,同时,也让我们更加明确容器保存的是什么类型的数据。
jdk1.8新特性
函数式编程
表达式
设计模式
单例模式,一般通过static实现内存中对象唯一
工厂模式,将对象生成放入一个方法中实现
代理模式
适配器(Adapter)
观察者(Observer)
模板方法(Template Method).....