• Java基础知识及应用


    以下是作者将Java入门的基础知识进行了一定总结,适用于学习过,但需要复习和加固基础的人群查阅,其中要有不对或不全之处,欢迎补充

    目录

    一. 编程基础

    1.数据类型

    2.运算符

    3.循环结构语句

    4.数组

    二.面向对象

    1.基本思想

    2.封装

    3.继承

    4. 抽象类和接口

    5.多态

    3.2.6 Object类

    三.异常

    1.定义

    2.处理

    3.自定义异常

    四. API

    1.包装类

    2.常用类

    五.集合

    1.概述

    2.常用类

    3.集合遍历

    4. Map接口

    六.泛型

    一. 编程基础

    1.数据类型

    基本数据类型

    整数类型

    字节型byte

    8位

    短整型short

    16位

    整型int

    32位

    长整型long

    64位

    浮点数类型

    float

    32位

    double

    64位

    字符型

    char

    ‘ ’单引号

    布尔型

    boolean

    true或false

    引用数据类型

    类 class

    接口interface

    数组

    枚举enum

    注解annotation

    1.变量之间可以相互转型

    自动转型:byte

    强制转型:目标类型 变量=(目标类型)值

    2.变量只有在作用范围内才能被使用,一个{}则为一个作用域。

    2.运算符

    算术运算符

    运算符

    范例

    结果

    + 正号/加号

    +3

    3

    - 负号/减号

    b=4;-b;

    -4

    * 乘

    3*4

    12

    / 除

    5/5

    1

    % 取模(求余数)

    7%5

    2

    ++自增 前(先加)

    a=2;b=++a

    a=3,b=3

    ++自增 后(后加)

    a=2;b=a++

    a=3,b=2

    -- 自减 前(先减)

    a=2;b=--a

    a=1,b=1

    -- 自减 后(后减)

    a=2;b=a--

    a=1,b=2

    赋值运算符

    = 赋值

    a=3

    a=3

    += 加等于

    a+=b

    a=a+b

    -= 减等于

    a-=b

    a=a-b

    *= 乘等于

    a*=b

    a=a*b

    /= 除等于

    a/=b

    a=a/b

    %= 模等于

    a%=b

    a=a/b取整

    比较运算符 (返回均为布尔型)

    ==等于

    4==3

    false

    !=不等于

    4!=3

    true

    <小于

    4<3

    false

    >大于

    4>3

    true

    <=小于等于

    4<=3

    false

    >=大于等于

    4>=3

    true

    逻辑运算符

    & 与 一假为假

    true&false

    false

    | 或 全假才假

    true|false

    true

    1.运算符优先级:

    算术 > 乘除 > 加减 > 比较 > 逻辑 > 赋值

    3.循环结构语句

    循环结构

    语法

    备注

    if语句循环

    for(初始化表达式;循环条件;操作表达式){ 执行语句 }

    在循环次数已知的情况下,for循环语句

    if…else if…else

    if(判断语句){执行语句1 }else if(判断语句){执行语句2 }else{执行语句n }

    对于多个判断条件进行判断,进行多种不同的处理

    switch

    switch(表达式){ case 目标值1: 执行语句 break; default: 执行语句n break; }

    只针对于某个表表达式的值做出判断

    while语句循环 (先判断后执行)

    while(循环条件){ 执行语句 }

    while语句会反复进行循环条件判断,只要条件成立,{}内的执行语句就会执行

    do…while (先执行后判断)

    do{ 执行语句 } while(循环条件)

    循环体会无条件执行一次,再根据条件决定是否继续循环

    for循环语句

    for(初始化表达式;循环条件;操作表达式){ 执行语句 }

    一般在循环次数已知的情况下

    跳转语句

    break语句

    跳出循环语句执行后面的代码

    continue语句

    它的作用是终止本次循环,执行下一次循环

    4.数组

    1.数组基本元素:名称、元素、索引、数据类型

    数据类型[ ]数组名=new 数据类型[元素…]

    2.定义数组类型 (按数据类型进行分类)

    3.写明数组长度(数组的初始值为0,最小索引为0,最大索引为数组长度减一)

    4.new 为引用数据关键字

    5.有一个length属性,可获得数组长度

    二.面向对象

    1.基本思想

    封装性

    将对象的属性和行为看成一个整体

    继承性

    子类可以继承父类的所有方法和属性

    多态性

    三要素:继承、重写、父类引用指向子类对象

    1.类和对象

    创建:class 类名{}

    类名 对象名=new 类名()

    new:在堆内存中创建一个新对象

    对象的属性和方法的访问都是通(.)运算符来实现

    2.控制权限

    访问范围

    private私有

    default默认

    protected受保护的

    public 公共

    同类

    同包中的类

    不在同包中的子类

    全局范围

    2.封装

    定义

    实现

    关键字

    作用

    将类的细节包装隐藏起来,通过类提供的方法访问

    属性私有化,提供公有的读写方法

    private 获取属性 getxxx() 设置属性setxxx()

    防止本类代码和数据被外部类定义的代码随机访问

    1.构造方法

    定义

    实现

    关键字

    注意

    是类的特殊,在类实例化对象时自动调用

    属性私有化,提供公有的读写方法

    pubiic

    构造方法的名称必须和类名一致 2.名称前不能有任何返回值类型的声明 3.不能在构造方法中使用return返回值

    Overload:重载,不同方法之间作用,根据参数不同或数据类型不同选择不同方法,方法之间可以同名,所有同名不同参。

    2.this关键字

    调用本类中的属性

    调用成员方法

    调用构造方法

    3.static关键字

    应用

    输入

    输出

    注意

    静态属性 (公共属性)

    适用于属性如果在使用中被修改,则所有对象的属性都修改

    类名.属性进行访问

    类.属性=“”修改

    只能修饰成员变量,不能修饰局部变量

    静态方法

    适用于需要不创建对象,类名直接调用某个方法,一般用于工具类

    类名.方法进行访问

    类.方法=“”修改

    静态方法只能访问静态成员

    注:修饰类时,该类只能执行一次

    3.继承

    定义

    关键字

    注意

    在现有类(父类)的基础上构建一个新类称为子类,子类继承父类属性和方法

    extends

    1.子类只能访问父类中公共和受保护的方法。2.只能单继承,不允许多继承,可以多个类继承一个父类,并且多层继承也可以

    1.Override

    Override:重写,继承中子类重写方法要和父类方法同名、同参、同类型

    注:子类重写父类时,不能使用比父类方法更严格的访问权限

    2.关键字

    关键字

    作用

    注意

    super

    1.访问父类的非私有属性或调用非私有方法 2.调用父类指定构造方法

    调用的代码必须位于子类构造方法第一行,所以this和super不能同时使用

    final

    1.类不能有子类 2.方法不能被重写 3.变量变为常量

    声明变量时,变量名应全为大写

    4. 抽象类和接口

    1.抽象类

    定义

    抽象方法在定义时不需要实现方法体,包含抽象方法的类就是抽象类

    关键字

    abstract

    语法格式

    abstract 返回值类型 方法名称(参数列表)

    定义规则

    1.包含抽象方法的类必须是抽象类 2.声明抽象类和抽象方法时都要使用 abstract 关键字修饰 3.抽象方法只需要声明而不需要实现。 4.如果一个非抽象类继承了抽象类之后,那么该类必须重写抽象类中的全部抽象方法。

    注意

    1.抽象类中不一定有抽象方法,但抽象方法一定在抽象类中 2.抽象类不可以被实例化 3.抽象方法不能使用private关键字

    2.接口

    定义

    定义程序协议,接口可以对接不同的业务模块

    关键字

    声明:interface / 实现:implements

    语法格式

    (public)interface 接口名 [extender 接口1,接口2] 使用:修饰符 class 类名 implements 接口1,接口2{ }

    定义规则

    允许接口继承接口,并且一个接口可以同时继承多个接口

    5.多态

    定义

    形式

    不同类的对象在调用同一个方法时有多种不同行为

    1.方法的重载 2.方法的重写

    1.对象类型转换

    情况

    作用

    格式

    注意

    子类对象 父类对象

    父类对象可以调用子类重写发方法,不用更改父类代码

    父类类型 父类对象=子类实例

    父类对象 子类对象

    重新获得向上转型丢失的子类特性

    父类类型 父类对象=子类实例 子类类型 子类对象=(子)父类对象

    必须先向上转型,再向下转型

    2.instanceof关键字

    作用

    语法

    判断一个对象是否是某个类的实例

    对象 instanceof 类

    3.2.6 Object

    定义

    常用方法

    方法说明

    所有类的父类,通常被称为超类

    boolean equals()

    判断两个对象是否“相等”

    int hashCode()

    返回对象的哈希值

    String toString()

    返回对象的字符串表示形式

    三.异常

    1.定义

    Exception 普通错误

    RuntimeException 运行时异常

    ArithmeticException算术异常

    ClassCastException类处理异常

    Error 严重错误

    IOError/AWTError

    运行时异常

    描述

    ArithmeticException

    算术异常

    IndexOutOfBoundsException

    索引越界异常

    ClassCastException

    类型转换异常

    NullPointerException

    空指针异常

    NumberFormatException

    数字格式化异常

    2.处理

    关键字

    功能描述

    try

    放置可能引发异常的代码块

    catch

    后面对应异常类型和一个代码块,该代码块用于处理这种类型的异常

    finally

    无论程序是否异常都要执行,只能出现在try之后,不能单独出现

    throw

    用于抛出一个实际的异常。它可以单独作为语句来抛出一个具体的异常对象,可以自定义错误信息

    throws

    用在方法签名中,用于声明该方法可能抛出的异常,需要写在方法声明后面,throw后面还需要声明异常类型

    3.自定义异常

    自定义的异常类只需继承 Exception 类,在构造方法中使用 super()语句调用


     Exception 的构造方法即可。

    四. API

    1.包装类

    装箱:将基本数据类型转换/成包装类的过程

    拆箱:将包装类转换成基本数据类型的过程

    基本数据类型

    对应的包装类

    byte

    Byte

    char

    Character

    int

    Integer

    short

    Short

    long

    Long

    float

    Float

    double

    Double

    boolean

    Boolean

    2.常用类

    类型

    类名

    特点

    常用方法

    字符串类

    String类

    初始化字符串对象

    boolean equals(Obiect obj) 比较 obj 与当前字符串的内容是否相同

    StringBuffer类

    字符串内容和长度可变

    int length() 获取字符串缓冲区中字符串内容的长度

    StringBuilder类

    没有实现线程安全

    系统相关

    System类

    系统相关的属性和方法

    static Properties getProperties() 获取当前系统全部属性

    Runtime类

    获取Java虚拟机运行状态

    getRuntime() 用于获取 Runtime类的实例

    算术相关

    Math类

    进行科学计算PI—Π E--e

    random() 用于生成一个大于或等于 0.0 且小于 1.0 的随机数 [0,1)

    Random类

    指定范围的随机数

    Random() 利用系统时间创建一个对象

    数据特殊

    BigInteger类

    处理8个字节以上的整数

    BigDecimal类

    处理书=数字精度要求高的场景

    日期和时间

    Date类

    时间和日期

    Calendar类

    读取时间和日期的特定部分,抽象类,不可以被实例化

    Instant类

    精确时刻,精细到纳秒

    LocalDate类

    不带时区的日期

    LocalTime类

    不带时区的时间

    Duration类

    计算两个时间的间隔

    Period类

    计算两个日期的间隔

    日期和时间格式化

    DateForm类

    将日期时间进行格式化

    SimpleDataFormat类

    是DateForm类子类,可以创建实例对象

    数字格式化

    NumberFormat类

    格式化和解析任何区域数字

    正则表达式

    Pattern类

    创建正则表达式

    Marcher类

    验证Pattern类定义的与字符串是否匹配

    五.集合

    1.概述

    集合 可以存储任意类型的对象,并且存储的长度可变,这些类统称为集合

    Collection 单列集合

    List 存储一组有序、不唯一的对象

    ArrayList

    LinkedList

    Vector

    Set 存储一组无序、唯一的对象

    HashSet

    TreeSet

    Map 双列集合

    HashTable

    Properties

    HashMap

    LinkedHashMap

    TreeMap

    2.常用类

    ArrayList

    HashSet

    概念

    ArrayList 实现了 List 接口,是一个可变长度的有序集合,可以动态增加或减少元素

    它基于哈希表数据结构,元素被散列到哈希表中,使元素的查找和插入效率非常高。

    用法

    它内部使用数组来存储元素,允许重复元素,而且保持元素的插入顺序

    HashSet用于存储一组唯一的元素,不允许重复。 可用于快速查找、插入和删除元素。

    主要方法

    add(E element): 向列表末尾添加一个元素。 get(int index): 获取指定索引位置的元素。 set(int index, E element): 替换指定索引位置的元素。 remove(int index): 移除指定索引位置的元素。 size(): 返回列表的大小。 isEmpty(): 检查列表是否为空。 contains(Object o): 检查列表是否包含指定元素。

    add(E ): 向集合添加一个元素,如果已存在则不添加。 remove(object o): 从集合中移除指定元素。 contains(Object o): 检查集合中是否包含指定元素。 size(): 返回集合的大小。 isEmpty(): 检查集合是否为空。

    使用场景

    当需要一个动态数组,可以随时添加或删除元素时,使用 ArrayList。 适用于需要按顺序存储和访问元素的情况。

    当需要存储一组唯一的元素时,使用 HashSet。 适用于需要快速查找、插入和删除元素的情况。

    3.集合遍历

    使用

    Iterator接口

    foreach循环 (只能访问其中元素,不能对其元素修改)

    4. Map接口

    定义

    K

    V

    双列集合,每一个元素都包含一个键对象和一个值对象,键和值之间存在映射

    hashset 不可重复,重复将会覆盖

    Arraylist 可重复

    1.常用方法

    方法声明

    功能描述

    void put( Objcet key, Object value)

    将指定的值和键存人集合并进行映射美联

    Object get( Objeet key)

    返回指定的键映射的值;如果此映射不包含该键的狭射关系,则返回 null

    void clear()

    移除所有的键值对元素

    2.实现类

    HashMap

    概念

    Java 中的一个集合类,它实现了 Map 接口,用于存储键值对。 将键映射到值,允许快速查找、插入和删除元素。HashMap 不允许重复的键,但允许键对应的值重复。

    方法

    put(K key, V value): 将指定的键值对添加到映射中。如果键已存在,将替换对应的值。 get(Object key): 返回与指定键关联的值,如果键不存在,则返回 null。 remove(Object key): 从映射中移除指定键对应的键值对。 containsKey(Object key): 检查映射是否包含指定的键。 containsValue(Object value): 检查映射是否包含指定的值。 keySet(): 返回包含映射中所有键的集合。 values(): 返回包含映射中所有值的集合。 entrySet(): 返回包含映射中所有键值对的集合。 size(): 返回映射中键值对的数量。 isEmpty(): 检查映射是否为空。

    使用场景

    HashMap 适用于需要存储键值对的情况,当需要关联一个唯一键与一个值时,但不要求键的顺序时,特别是在需要快速查找和访问值的情况下。

    inkedHashMap

    集合中元素遍历顺序与存入顺序一致

    TreeMap

    对元素的键进行排序

    Propertise

    存储应用配置项

    3.常用工具类

    Collections

    提供大量排序、查找、修改的操作

    Arrays

    提供了针对集合和数组的操作

    Lambda

    取代匿名内部类

    六.泛型

    作用

    1.类型安全 2.消除强制类型转换 3.潜在的性能收益 4.更好的代码复用性

    优点

    1.提高类型的安全性。 2.消除强制类型转换。 3.提高代码复用性。 4.拥有更高的运行效率。

    使用

    修饰符 <代表泛型的变量> 返回值类型 方法名(参数){ }super (参数 1,参数 2,..) 泛型广泛应用于Java集合框架 可以创建泛型类和接口 泛型方法

    接口

    public<泛型类型>返回类型方法名(泛型类型变量名){}

    通配符

    E:元素 K,V:键值对 N:数字 T:类型dd

  • 相关阅读:
    Lab【1】:Blitz
    (续)SSM整合之spring笔记(AOP 基于注解的AOP之准备工作)(P100)
    【Python刷题篇】Python从0到入门4|字典复习、函数入门、综合实践
    『亚马逊云科技产品测评』活动征文|搭建图床chevereto
    闲话Python编程-字典dict
    编程老司机的笔记,带你系统学Python
    82-Java异常:概述、分类、认识、异常的默认处理流程
    [附源码]Python计算机毕业设计Djangospringboot作业管理系统
    【备忘录】Docker容器、镜像删除与资源清理命令
    zipfile教程
  • 原文地址:https://blog.csdn.net/fyr6103032003/article/details/136462089