以下是作者将Java入门的基础知识进行了一定总结,适用于学习过,但需要复习和加固基础的人群查阅,其中要有不对或不全之处,欢迎补充
目录
整数类型 | 字节型byte | 8位 | |
短整型short | 16位 | ||
整型int | 32位 | ||
长整型long | 64位 | ||
浮点数类型 | float | 32位 | |
double | 64位 | ||
字符型 | char | ‘ ’单引号 | |
布尔型 | boolean | true或false | |
引用数据类型 | 类 class | ||
接口interface | |||
数组 | |||
枚举enum | |||
注解annotation |
1.变量之间可以相互转型
自动转型:byte 强制转型:目标类型 变量=(目标类型)值 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.运算符优先级: 算术 > 乘除 > 加减 > 比较 > 逻辑 > 赋值 循环结构 语法 备注 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语句 它的作用是终止本次循环,执行下一次循环 1.数组基本元素:名称、元素、索引、数据类型 数据类型[ ]数组名=new 数据类型[元素…] 2.定义数组类型 (按数据类型进行分类) 3.写明数组长度(数组的初始值为0,最小索引为0,最大索引为数组长度减一) 4.new 为引用数据关键字 5.有一个length属性,可获得数组长度 封装性 将对象的属性和行为看成一个整体 继承性 子类可以继承父类的所有方法和属性 多态性 三要素:继承、重写、父类引用指向子类对象 1.类和对象 创建:class 类名{} 类名 对象名=new 类名() new:在堆内存中创建一个新对象 对象的属性和方法的访问都是通(.)运算符来实现 2.控制权限 访问范围 private私有 default默认 protected受保护的 public 公共 同类 √ √ √ √ 同包中的类 √ √ √ 不在同包中的子类 √ √ 全局范围 √ 定义 实现 关键字 作用 将类的细节包装隐藏起来,通过类提供的方法访问 属性私有化,提供公有的读写方法 private 获取属性 getxxx() 设置属性setxxx() 防止本类代码和数据被外部类定义的代码随机访问 1.构造方法 定义 实现 关键字 注意 是类的特殊,在类实例化对象时自动调用 属性私有化,提供公有的读写方法 pubiic 构造方法的名称必须和类名一致 2.名称前不能有任何返回值类型的声明 3.不能在构造方法中使用return返回值 Overload:重载,不同方法之间作用,根据参数不同或数据类型不同选择不同方法,方法之间可以同名,所有同名不同参。 2.this关键字 调用本类中的属性 调用成员方法 调用构造方法 3.static关键字 应用 输入 输出 注意 静态属性 (公共属性) 适用于属性如果在使用中被修改,则所有对象的属性都修改 类名.属性进行访问 类.属性=“”修改 只能修饰成员变量,不能修饰局部变量 静态方法 适用于需要不创建对象,类名直接调用某个方法,一般用于工具类 类名.方法进行访问 类.方法=“”修改 静态方法只能访问静态成员 注:修饰类时,该类只能执行一次 定义 关键字 注意 在现有类(父类)的基础上构建一个新类称为子类,子类继承父类属性和方法 extends 1.子类只能访问父类中公共和受保护的方法。2.只能单继承,不允许多继承,可以多个类继承一个父类,并且多层继承也可以 1.Override Override:重写,继承中子类重写方法要和父类方法同名、同参、同类型 注:子类重写父类时,不能使用比父类方法更严格的访问权限 2.关键字 关键字 作用 注意 super 1.访问父类的非私有属性或调用非私有方法 2.调用父类指定构造方法 调用的代码必须位于子类构造方法第一行,所以this和super不能同时使用 final 1.类不能有子类 2.方法不能被重写 3.变量变为常量 声明变量时,变量名应全为大写 1.抽象类 定义 抽象方法在定义时不需要实现方法体,包含抽象方法的类就是抽象类 关键字 abstract 语法格式 abstract 返回值类型 方法名称(参数列表) 定义规则 1.包含抽象方法的类必须是抽象类 2.声明抽象类和抽象方法时都要使用 abstract 关键字修饰 3.抽象方法只需要声明而不需要实现。 4.如果一个非抽象类继承了抽象类之后,那么该类必须重写抽象类中的全部抽象方法。 注意 1.抽象类中不一定有抽象方法,但抽象方法一定在抽象类中 2.抽象类不可以被实例化 3.抽象方法不能使用private关键字 2.接口 定义 定义程序协议,接口可以对接不同的业务模块 关键字 声明:interface / 实现:implements 语法格式 (public)interface 接口名 [extender 接口1,接口2] 使用:修饰符 class 类名 implements 接口1,接口2{ } 定义规则 允许接口继承接口,并且一个接口可以同时继承多个接口 定义 形式 不同类的对象在调用同一个方法时有多种不同行为 1.方法的重载 2.方法的重写 1.对象类型转换 情况 作用 格式 注意 子类对象 父类对象 父类对象可以调用子类重写发方法,不用更改父类代码 父类类型 父类对象=子类实例 父类对象 子类对象 重新获得向上转型丢失的子类特性 父类类型 父类对象=子类实例 子类类型 子类对象=(子)父类对象 必须先向上转型,再向下转型 2.instanceof关键字 作用 语法 判断一个对象是否是某个类的实例 对象 instanceof 类 定义 常用方法 方法说明 所有类的父类,通常被称为超类 boolean equals() 判断两个对象是否“相等” int hashCode() 返回对象的哈希值 String toString() 返回对象的字符串表示形式 Exception 普通错误 RuntimeException 运行时异常 ArithmeticException算术异常 ClassCastException类处理异常 Error 严重错误 IOError/AWTError 运行时异常 描述 ArithmeticException 算术异常 IndexOutOfBoundsException 索引越界异常 ClassCastException 类型转换异常 NullPointerException 空指针异常 NumberFormatException 数字格式化异常 关键字 功能描述 try 放置可能引发异常的代码块 catch 后面对应异常类型和一个代码块,该代码块用于处理这种类型的异常 finally 无论程序是否异常都要执行,只能出现在try之后,不能单独出现 throw 用于抛出一个实际的异常。它可以单独作为语句来抛出一个具体的异常对象,可以自定义错误信息 throws 用在方法签名中,用于声明该方法可能抛出的异常,需要写在方法声明后面,throw后面还需要声明异常类型 自定义的异常类只需继承 Exception 类,在构造方法中使用 super()语句调用 装箱:将基本数据类型转换/成包装类的过程 拆箱:将包装类转换成基本数据类型的过程 基本数据类型 对应的包装类 byte Byte char Character int Integer short Short long Long float Float double Double boolean Boolean 类型 类名 特点 常用方法 字符串类 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类定义的与字符串是否匹配 集合 可以存储任意类型的对象,并且存储的长度可变,这些类统称为集合 Collection 单列集合 List 存储一组有序、不唯一的对象 ArrayList LinkedList Vector Set 存储一组无序、唯一的对象 HashSet TreeSet Map 双列集合 HashTable Properties HashMap LinkedHashMap TreeMap 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。 适用于需要快速查找、插入和删除元素的情况。 使用 Iterator接口 foreach循环 (只能访问其中元素,不能对其元素修改) 定义 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:类型dd2.运算符
3.循环结构语句
4.数组
二.面向对象
1.基本思想
2.封装
3.继承
4. 抽象类和接口
5.多态
3.2.6 Object类
三.异常
1.定义
2.处理
3.自定义异常
Exception 的构造方法即可。四. API
1.包装类
2.常用类
五.集合
1.概述
2.常用类
3.集合遍历
4. Map接口
六.泛型