当前位置:网站首页 > Java基础 > 正文

java基础代码学习



目录
  • 面向对象
    • 类的定义和对象的创建
      • 类的属性和方法
    • 类的封装
      • 构造方法
        • 构造方法的定义和重载
      • 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
    • 双列集合 Map
      • HashMap
        • LinkedHashMap
      • TreeMap
      • HashTable
        • Properties

集合与泛型

对象从集合中取出时,编译类型变成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.Reader
      • 字符输出流java.io.Writer

java基础代码学习

字节流

文件的输出

对文件对象的读取

 

文件的输入

对文件对象的写入

 

文件的复制

 

字节流缓冲区

 

字节缓冲流

 

字符流

字符流的读操作

 

字符流的写操作

 

字符流的缓冲流

 

转换流

字节流转换为字符流,或者字符流转为字节流

File类

多线程

线程的创建

通过继承Thread类

 

实现Runnable接口

 

Runnable相对于Thread类:

  • 适合多个程序代码相同的线程处理同一资源的情况
  • 可以避免由于java的单继承特性特来的局限

线程的状态和转换

线程生命周期

  • 开始:线程对象创建完毕
  • 结束:run方法正常执行完毕,或者出现未捕获的异常或者错误

线程周期的五种状态

  1. 新建状态

    线程对象创建以后,线程处于新建状态。处于新建状态的线程仅仅在java虚拟机分配了内存空间,不能运行

  2. 就绪状态

    线程调用了start方法后,进入就绪状态。处于就绪状态的线程位于可运行池中,具备运行的条件,等待系统调度运行

  3. 运行状态

    就绪状态获取CPU的执行权,并开始执行run方法时,线程处于运行状态。当系统分配的CPU时间到达时,转为就绪状态

  4. 阻塞状态

    被人为挂起执行耗时的输入输出操作时,线程让出CPU,进入阻塞状态。阻塞原因解除后,进入就绪状态。

  5. 死亡状态

    线程调用stop方法或者run方法执行结束后,线程处于死亡状态。

多线程同步

线程安全

同步代码块

同步方法

java注解

注解是代码的元数据,跟class,interface一样,也是一种类型。其作用:

  • 编译检查

注解的定义形式

 

元注解概念作用

元注解,是注解类型的注解。如果把注解理解为标签 ,那元注解就是标签的标签,是一种特殊的标签,来给其他普通标签解释说明。

元注解种类:

  1. @Retention 保留期

    取值:

    RetentionPolicy.SOURCE 注解只在源码阶段保留,在编译器编译源码成字节码之后,该注解被丢弃

    RetentionPolicy.CLASS 注解只被保留在字节码中,不会被加载到JVM中

    RetentionPolicy.RUNTIME 注解可以保留在程序运行时,会被加载到JVM中。程序运行时,可以获取到注解内容。

  2. @Target 注解的目标

    取值:

    ElementType.ANNOTATION_TYPE 给一个注解类型注解

    ElementType.CONSTRUCTOT 给构造方法注解

    ElementType.FIELD 给属性注解

    ElementType.LOCAL_VARIABLE 给局部变量注解

    ElementType.METHOD 给方法注解

    ElementType.PACKAGE 给一个包注解

    ElementType.PARAMETER 给一个方法内的参数注解

    ElementType.TYPE 给一个类型注解,比如类,接口,枚举

  3. @Documented 注解包含到javadoc
  4. @Inherited 注解的普通注解能被子类继承
  5. @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对象
     
      
  • 然后获取注解的属性值(调用属性方法)

注解应用实例—用来替换配置文件

自定义注解

 

对一个类使用自定义注解

 

创建注解解析器

 

测试注解

  • 上一篇: java 编程基础
  • 下一篇: java 线程基础知识
  • 版权声明


    相关文章:

  • java 编程基础2025-03-31 11:26:02
  • java面试基础部分2025-03-31 11:26:02
  • java基础1332025-03-31 11:26:02
  • java编程基础课后题2025-03-31 11:26:02
  • java基础核心串讲2025-03-31 11:26:02
  • java 线程基础知识2025-03-31 11:26:02
  • java代码基础2025-03-31 11:26:02
  • java sql基础2025-03-31 11:26:02
  • java 基础数据类型2025-03-31 11:26:02
  • java基础入门中心2025-03-31 11:26:02