复习
内部类
作用 : 补全外部类功能
概念 : 在类中定义的类,称为内部类,对应的外边的类称为外部类
分类
1.成员内部类
定义位置 : 类中,方法外
语法 :
访问权限修饰符 class 类名{}组成 : 除静态成员外都可定义
创建对象 :
情况1 : 在外部类中创建该内部类对象
内部类类名 对象名 = new 内部类类名(实参列表);注意 : 不能在静态方法或静态代码块中使用,因为前面需要使用this进行调用
情况2 : 在其他类中,不是外部类
外部类类名.内部类类名 对象名 = 外部类对象.new 内部类类名(实参列表); 数据类型就是外部类中的内部类,起个名 后边是,用外部类调的 "内部类创建对象"
2.静态成员内部类
定义位置 : 类中,方法外
语法 :
访问权限修饰符 static class 类名{}组成 : 都可以
创建对象 :
外部类类名.内部类类名 对象名 = new 外部类类名.内部类类名(实参列表);
3.局部内部类
定义位置 : 类中,方法中
语法 :
class 类名{}组成 : 除静态成员外都可以
创建对象 :
内部类类名 对象名 = new 内部类类名(实参列表);使用范围 :
当前方法中,而且必须在类定义后创建对象
4.匿名内部类
定义位置 : 值或实参的位置
语法 :
父类名或接口名 对象名 = new 父类名或接口名(){};注意 :
1.一个类只创建一个对象时可以使用匿名内部类
2.不能定义静态成员,抽象方法,因为没有构造函数,又因为没有类名所以没有构造函数
3.一个匿名内部类也会生成一个class文件,但使用后系统会删
匿名对象
就是没有对象名的对象
包装类
8个基本数据类型对应的引用数据类型就是包装类
byte Byte short Short int Integer float Float double Double boolean Boolean char Character提供的方法
static final xxx MAX_VALUE: 最大值 static final xxx MIN_VALUE: 最小值 static xxx parseXXX(字符串); 作用:将字符串转换为对应的数据类型
自动装箱
概念 : 将基本数据类型转换为对应的引用数据类型的对象
自动拆箱
概念 : 将引用数据类型的对象转换为对应的基本数据类型
字符缓冲区
区间 : -128~127
暂时不能用言语表达,举个例子
//都知道基本数据类型==,就是判断值是否相同 //引用数据类型就是判断内存地址 //Integer是int的包装类 Integer i1 = 129; //引用数据类型后面应该是new...这样的对象,而这里就是包装类的作用,自动装箱 //这个位置129和 newInteger(129) 的作用是一样的 Integer i2 = 129; i1 == i2; //此时结果是false,不在区间就会创建对象,就会开辟新的内存空间 Integer i3 = 127; Integer i4 = 127; i3 == i4; //结果是true,在区间,这个些数在数组中,用的内存地址一样
System
概念 : 就是系统
提供的方法 :
1,复制数组一段内容 static void arrayCopy(老数组,复制数据的开始位置,新数组,黏贴数据的开始位置,长度) 2,获取当前系统时间,单位毫秒 static long currentTimeMillis() 3,结束当前程序 static void exit(终止状态码) 4,手动调用GC static void gc();
方法不止这些,主要是学会用api文档自学
使用javaAPI文档
这个是java1.8的中文API,里面包含了该版本的所以类及使用方法
双击打开
可以看到中间栏,有所有的包和类
随便点开一个类,在右边栏会有该类的所有信息,直接子类,所有方法,构造函数等
也可在左边索引里直接搜索
这个方法是可以点开,可以看到它的参数意义和使用介绍
今日
Object
概念 : 所有类的父类
该类提供的属性与方法,是所有类的对象都可以使用的
提供的方法
public Boolean equals(Object obj)
作用 : 判断调用该方法的对象与传入的对象的内层地址是否相同
实参列表是Object,意思是可以写任何数据类型(包括对象)
如果子类重写该方法,使用子类对象调用该方法,执行的是重写后的方法
如果子类要比较子类的对象属性值是否相同,需重写equals方法
重写步骤 :
1.判断俩地址是否相同(相同就是同一个,没必要比较,直接返回true)
2.因为形参是Object,所以传进来的是啥就不一定了,判断传进来的是不是和调用该方法对象得类相同
3.将传入的对象转换为该类对象
4.使用调用该方法的对象的属性值与传入的对象属性进行比较
public String toString()
作用 : 获取对象的包名.类名拼接@字符串,再拼接对象的内层地址的十六进制
注意 : object提供的toString方法返回的是对象的包名.类@对象的内存地址的十六进制,可以理解为是对象的信息
但我们观察对象时,想看到的是对象的属性值,所以我们可以在子类中重写toString方法,重写后对象在调用 toString方法,执行的是重写后的方法
public int hashCode()
作用 : 获取对象的哈希码值,近似可以理解为对象的内存地址
finalize()
作用 : 系统回收该类对的内存时,才会调用
getClass() 反射时讲 notify() 线程间通讯讲 notifyAll() 线程间通讯讲 wait() 线程间通讯讲 wait(int m) 线程间通讯讲 wait(int m,int n) 线程间通讯讲
Math
作用 : 数学运算与随机数
提供的方法
static double random()
获取0~1的随机数
static int abs(int a) 作用:获取其指定数据的绝对值
static double floor(double a) 作用:向下取整
static int max(int a, int b) 作用:获取两数之间的最大值
static int min(int a, int b) 作用:获取两数之间的最小值
static double pow(double a, double b) 作用:计算a的b次幂的结果
字符串相关类
不可变字符串 : String
提供的方法
增
删
改
public String replace(String old,String newStr) 作用:替换 1参:要被替换的字符串 2参:替换后的字符串
查
public int length() 作用:获取字符串长度 char charAt(int index) 作用:获取字符串中指定位置的字符 public char[] toCharArray() 作用:将字符串转换为字符数组 public boolean equals(Object anObject) 作用:比较字符串内容是否相同 public boolean equalsIgnoreCase(String anotherString) 作用:忽略大小写比较字符串内容是否相同 public String trim() 作用:忽略前后空白 boolean endsWith(String suffix) 作用:判断字符串是否以指定的字符串结束 boolean startsWith(String prefix) 作用:判断字符串以什么开始 public String toUpperCase() 作用:将字符串中的小写字母转换为大写字母 public String toLowerCase() 作用:将字符串中的大写字母转换为大写字母 boolean contains(String s) 作用:判断s是否在调用该方法的字符串中存在 public int lastIndexOf(String str) 作用:获取指定的子字符串在字符串中最后一次出现的位置 public int indexOf(String str) 作用:获取指定的子字符串在字符串中第一次出现的位置 public String substring(int beginIndex) 作用:截取指定位置的字符串,从开始位置到字符串末尾 1参:开始位置 public String substring(int beginIndex, int endIndex) 作用:截取指定位置的字符串 1参:开始位置 2参:结束位置 public String[] split(String regex) 作用:切割 1参:按什么字符串切割
构造函数
public String(char value[]) 将传入的字符数组转换为字符串 public String(char value[], int offset, int count)
可变字符串
StringBuffer
特点 :
JDK1.0出现
线程是安全的
StringBuilder
特点 :
JDK1.5出现
线程不安全
提供的方法
1,StringBuilder append(Object obj) 作用:给字符串尾部拼接字符串 2,StringBuilder insert(int offset, String str) 作用:插入 1参:插入开始的位置 2参:插入的数据 3,StringBuilder delete(int start, int end) 作用:删除指定区间的数据 1参:开始位置,包含 2参:结束位置,不包含 4,StringBuilder deleteCharAt(int index) 作用:删除指定位置的字符 1参:指定的位置 5,StringBuilder replace(int start, int end, String str) 作用:替换 1参:要替换的数据的开始位置,包含 2参:要替换的数据的结束位置,不包含 3参:替换后的字符串 6,toString(): 作用:将可变字符串转换为不可变字符串
精准时间
对应的类 : BigDecimal
构造函数
BigDecimal(Object obj); //虽然实参是Object,什么都可以传, //但只有穿字符串是精准的, 传进去的可以是123+"",可以加个空字符串拼接下
提供的方法
BigDecimal subtract(BigDecimal subtrahend) 作用:减法,使用调用该方法的对象的值减去传入的对象的值,返回计算的结果 BigDecimal add(BigDecimal augend) 作用:加法 BigDecimal multiply(BigDecimal multiplicand) 作用:乘法 BigDecimal divide(BigDecimal divisor) 作用:除法 XXX xxxValue(); 作用:获取BigDecimal的值
时间相关类
Date
概念 : 日期 (包括年月日,时分秒)
创建 :
public Date(); //获取当前系统时间 public Date(long date): //获取距离1970年1月1日 00:00:00的时间(格林威治时间),参数单位毫秒
提供的方法
public long getTime():
获取当前对象距离1970年1月1日 00:00:00的时间差,单位毫秒
public boolean after(Date when):
当前时间是否在指定时间之后 public boolean before(Date when):
当时时间是否在指定时间之前
Calendar
概念 : 日历
创建 :
static Calendar getInstance()
方法
get set add getTime
SimpleDateFormat
概念 : 时间日期格式化
特殊字符
y : 年 M : 月 d : 日 h : 十二小时值 H : 二十四小时值 m : 分钟 s : 秒 S : 毫秒
编写 : 2023/04/13 17:16:00 yyyy/MM/dd HH:mm:ss
方法
format: 将时间对象转换为指定格式的字符串 parse: 将指定格式的字符串转换为时间