Java
本页面用于对java学习过程中遇到的新知识与困惑进行记录
Java集合框架
- Collection(存放单列数据)
- List接口 存放数据允许重复
- ArrayList 底层基于数组数据结构实现
- LinkedList 底层基于链表数据结构实现
- Set接口 存放数据不允许重复(去重)
- HashSet 底层基于Map集合实现
- List接口 存放数据允许重复
- Map(存放多列数据)
- HashMap
- JDK1.7基于数组+链表实现
- JDK1.8基于数组+链表+红黑树实现
- HashTable
- HashMap
Java注解
Java.Annotation
- 注解的作用
- 与注释类似,不是程序本身但可以对程序做出解释
- 可以被其他程序读取
- 注解还具有检查代码规范性的作用,方便找到bug
- 注解的格式
- @ + 注解名 + 参数值(可选)
- 注解使用场合
- 可以附加在class, package, method, field 上面等于给他们添加了额外的辅助属性,让我们可以通过反射机制对这些元数据进行访问
内置注解
- @Override
- @Deprecated
用于警示代码是不推荐使用的或者可能存在更好的方式 - @SuppressWarnings(String str)
用于镇压warning警告, str为镇压的警告范围
元注解
- @Target
用于描述注解的使用范围 - @Retention
表示需要在什么级别保存该注解信息,用于描述注解的生命周期- RUNTIME > class > SOURCE
- @Documented
说明该注解将被包含在javadoc中 - @Inherited
说明子类可以继承父类中的该注解
Java基础
接口
- 接口就是抽象方法的集合
- 类要通过继承接口来继承接口内的抽象方法
- 接口中的方法是隐性抽象的,默认为public abstract,其他修饰符会导致报错
- 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量,只能是public
- 抽象方法无方法体,只有声明
- 接口支持多继承
- 抽象类和接口的区别
- 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
- 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
- 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
- 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
- jdk1.8后接口里可以有方法体和静态方法了
- JDK 1.8 以后,接口允许包含具体实现的方法,该方法称为"默认方法",默认方法使用 default 关键字修饰。
- JDK 1.9 以后,允许将方法定义为 private,使得某些复用的代码不会把方法暴露出去。
集合框架
List
- ArrayList
- 动态数组
- LinkedList
- 双向链表
- Vector
- 向量
set
- HashSet
- 基于HashMap实现的无重复元素的集合
- 无序
- 线程不安全
- TreeSet
Map
- HashMap
- 散列表,储存键值对映射
- 不支持线程同步
- 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口
- 无序
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Viola's blog!