- 面向对象
- 类的定义和对象的创建
- 类的属性和方法
- 类的封装
- 构造方法
- 构造方法的定义和重载
- this关键字
- static关键字
- 静态变量
- 静态方法
- 静态代码块
- 构造方法
- 类的继承
- 重写父类方法
- super关键字使用父类方法
- final关键字拒绝重写父类方法
- 类的多态
- 多态中的类型转换
- 匿名内部类
- 抽象类和接口
- 异常及异常类
- try...catch...finally
- throws
- 类的定义和对象的创建
- 集合类
- 集合与泛型
- Collection-List-ArrayList
- Collectioin-Set-HashSet
- Map-HashMap
- Map-Properties
- 输入输出
- 字节流
- 文件的输出
- 文件的输入
- 文件的复制
- 字节流缓冲区
- 字节缓冲流
- 字符流
- 字符流的读操作
- 字符流的写操作
- 字符流的缓冲流
- 转换流
- File类
- 字节流
- 多线程
- 线程的创建
- 通过继承Thread类
- 实现Runnable接口
- 线程的状态和转换
- 多线程同步
- 线程安全
- 同步代码块
- 同步方法
- 线程的创建
- java注解
- 注解的定义形式
- 元注解概念作用
- 注解的属性
- java内置注解
- 注解的提取
- 注解应用实例—用来替换配置文件
- 自定义注解
- 对一个类使用自定义注解
- 创建注解解析器
- 测试注解
面向对象
类的定义和对象的创建
类的属性和方法
类的封装
类的属性设置为私有
构造方法
构造方法的定义和重载
this关键字
static关键字
静态变量以及静态方法,一般通过类调用,而非对象
静态变量
静态方法
静态代码块
当类被加载时,静态代码会被执行, 由于类只会被加载一次,因此静态代码块只会执行一次
类的继承
重写父类方法
super关键字使用父类方法
final关键字拒绝重写父类方法
类的多态
java多态是通过父类类型的变量,引导子类类型的对象,根据子类对象特征的不同,得到不同的结果。
多态中的类型转换
多态中,将子类的对象当作父类类型使用,此种情况叫做向上转型,向上转型不需要显示转换,但是此时不能通过父类变量调用子类中的特有方法。
以下代码【错误】:
匿名内部类
抽象类和接口
异常及异常类
在程序运行过程中,内存,磁盘,网络等发生异常导致的程序异常,比如内存溢出,内存不足,磁盘空间不足,读写失败,网络中断等
java提供的异常机制,来处理发生异常时,使程序针对性处理
错误表示系统内部错误或者资源耗尽等仅靠程序本身不能恢复执行的问题
异常表示程序本身能够正常处理的问题
try...catch...finally
throws
集合类
保存确定个数的元素使用数组,保存不确定个数的元素使用集合类(容器类)
- 集合类
- 单列集合 Collection
- 元素有序可重复 List
- ArrayList
- LinkedList
- Vector
- 元素无序不重复 Set
- HashSet
- LinkedHashSet
- TreeSet
- HashSet
- 元素有序可重复 List
- 双列集合 Map
- HashMap
- LinkedHashMap
- TreeMap
- HashTable
- Properties
- HashMap
- 单列集合 Collection
集合与泛型
对象从集合中取出时,编译类型变成Object类型,一般需要显示的强制类型转换
泛型限制传入范围,取出的对象也不用强制类型转换
Collection-List-ArrayList
Iterator接口遍历元素
for...each循环
Collectioin-Set-HashSet
Map-HashMap
HashMap的存取:
调用HashMap集合类的方法keySet(),获取到Map中所有键的Set集合,然后通过Set集合类的Iterator迭代Set集合的每个元素(键),最后调用HashMap的get()方法,获取值
另外一种方式:
获取集合中的所有映射关系,从映射关系取出键值对
Map-Properties
输入输出
- IO输入输出
- 字节流
- 字节输入流 java.io.InputStream
- ByteArrayInputStream
- FileInputStream
- BufferedInpubStream
- DataInputStream
- FilterInputStream
- ObjectInputStream
- 字节输出流java.io.OutputStream
- ByteArrayOutputStream
- FileOutputStream
- FilterOutputStream
- BufferedOutputStream
- PrintStream
- DataInputStream
- ObjectInputStream
- 字节输入流 java.io.InputStream
- 字符流
- 字符输入流java.io.Reader
- 字符输出流java.io.Writer
- 字节流
java基础代码学习
字节流
文件的输出
对文件对象的读取
文件的输入
对文件对象的写入
文件的复制
字节流缓冲区
字节缓冲流
字符流
字符流的读操作
字符流的写操作
字符流的缓冲流
转换流
字节流转换为字符流,或者字符流转为字节流
File类
多线程
线程的创建
通过继承Thread类
实现Runnable接口
Runnable相对于Thread类:
- 适合多个程序代码相同的线程处理同一资源的情况
- 可以避免由于java的单继承特性特来的局限
线程的状态和转换
线程生命周期
- 开始:线程对象创建完毕
- 结束:run方法正常执行完毕,或者出现未捕获的异常或者错误
线程周期的五种状态
- 新建状态
线程对象创建以后,线程处于新建状态。处于新建状态的线程仅仅在java虚拟机分配了内存空间,不能运行
- 就绪状态
线程调用了start方法后,进入就绪状态。处于就绪状态的线程位于可运行池中,具备运行的条件,等待系统调度运行
- 运行状态
就绪状态获取CPU的执行权,并开始执行run方法时,线程处于运行状态。当系统分配的CPU时间到达时,转为就绪状态
- 阻塞状态
被人为挂起执行耗时的输入输出操作时,线程让出CPU,进入阻塞状态。阻塞原因解除后,进入就绪状态。
- 死亡状态
线程调用stop方法或者run方法执行结束后,线程处于死亡状态。
多线程同步
线程安全
同步代码块
同步方法
java注解
注解是代码的元数据,跟class,interface一样,也是一种类型。其作用:
- 编译检查
注解的定义形式
元注解概念作用
元注解,是注解类型的注解。如果把注解理解为标签 ,那元注解就是标签的标签,是一种特殊的标签,来给其他普通标签解释说明。
元注解种类:
- @Retention 保留期
取值:
RetentionPolicy.SOURCE 注解只在源码阶段保留,在编译器编译源码成字节码之后,该注解被丢弃
RetentionPolicy.CLASS 注解只被保留在字节码中,不会被加载到JVM中
RetentionPolicy.RUNTIME 注解可以保留在程序运行时,会被加载到JVM中。程序运行时,可以获取到注解内容。
- @Target 注解的目标
取值:
ElementType.ANNOTATION_TYPE 给一个注解类型注解
ElementType.CONSTRUCTOT 给构造方法注解
ElementType.FIELD 给属性注解
ElementType.LOCAL_VARIABLE 给局部变量注解
ElementType.METHOD 给方法注解
ElementType.PACKAGE 给一个包注解
ElementType.PARAMETER 给一个方法内的参数注解
ElementType.TYPE 给一个类型注解,比如类,接口,枚举
- @Documented 注解包含到javadoc
- @Inherited 注解的普通注解能被子类继承
- @Repeatable 多重标签
解释:被Repeatable标注的普通注解,可用来多次注解同一个目标。如:
这段代码中,自定义注解Liwanliang用来多次注解类Others。而自定义注解Liwanliang是一个被元注解Repeatable注解的普通注解。元注解Repeatable传入了一个参数类——LiwanLiangs.class,它是一个容器注解。这个LiwanLiangs是一个用来存放其他注解的普通注解,按照注解的定义,LiwanLiangs必须有个一value属性,这个value属性是被Repeatable标注过的LiwanLiang注解的数组,即LiwanLiang[]
注解的属性
注解的属性,也叫做成员变量(注解也是类型)。
属性以“无参数方法”的形式类定义,属性的名字就是方法的名字,属性的返回值就是方法的返回值。属性的返回值,只能是8中基本数据类型,类,接口,注解,以及它们的数组。
属性的赋值:在注解括号内,以value=key的形式,多个属性用逗号隔开。属性可以有默认值,在属性方法括号后,使用default关键字指定。有默认值时,注解参数中可以省略书写。
java内置注解
这些注释是面向编辑器或者编译器的
@Deprecated
用来标记过时的元素,如过时的类,方法,变量等
@Override
提示子类重写父类中被@override修饰的方法
@SuppressWarnings
压制警告
@SafeVarargs
参数安全类型注解。提示开发者不要用参数做一些不安全的操作,它的存在会组织编译器产生unchecked这样的警告。
@FunctionlInterface
函数式接口注解。
注解的提取
注解需要通过java的反射机制来获取。
基本步骤:
- 首先通过Class对象的isAnnotationPresent()方法判断它是否应用了某个注解
- 然后通过getAnnotation()方法获取Annotation对象
- 然后获取注解的属性值(调用属性方法)
注解应用实例—用来替换配置文件
自定义注解
对一个类使用自定义注解
创建注解解析器
测试注解
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/4352.html