Java—常用类
1.内部类🍈
内部类
概念:在类的内部定义一个完整的类
特点:
编译后可独立生成字节码文件
内部类可直接访问外部类的私有成员,而不破坏封装
可为外部类提供必要的内部功能组件
成员内部类
在类的内部定义,与实例变量,实例方法同级别的类
外部类的一个实例部分,创建内部类对象时,必须依赖外部对象类
当外部类,内部类存在重名时,会优先访问内部类属性
成员内部类不能定义静态成员的,但是可以包含静态常量
静态内部类
不依赖外部类对象,可直接创建或通过类名访问,可声明静态成员
只有内部类才能使用static修饰类,只能直接访问外部类的静态成员
局部内部类
定义在外部类方法中,作用范围和创建对象范围仅限于当前方法
匿名内部类
没有名字的局部内部类
必须继承一个父类或者实现一个接口
2.Object类🍉
超类,基类,所有的直接或间接父类,位于继承树的最顶端
任何类,如没有书写extends显示继承某个类,都市默认直接继承Object类
Object类中所定义的方法,是所有对象都具备的
Object类型可以存储任何对象
getClass()
public final Class<?> getClass(){}
返回引用中存储的实际对象类型
应用:常用于判断两个引用中实际存储对象类型是否一致
hashCode()
public int hashCode(){}
返回该对象的哈希码值
哈希码值根据对象的地址或者字符串或数字使用hash算法计算出来的int类型的数值
一般情况下相同的类型返回的哈希码相同
toString()
public String toString(){}
返回该对象的字符串16进制表示
可以根据程序的需求覆盖该方法,如展示对象各个属性值
equals()
public boolean equals(Object obj){}
默认实现为(this == obj),比较两个对象地址是否相同
可以进行覆盖,比较两个对象内容是否相同
equals()方法覆盖步骤:
比较两个引用是否指向同一个对象
判断obj是否为null
判断两个引用指向的实际对象类型是否一致
强制类型转换
一次比较各个属性值是否相同
finalize()
当对象被判定为垃圾对象时,由JVM自动调用此方法,用以标记垃圾对象,进入回收队列
手动回收机制:使用System.gc(),通知JVM立即执行垃圾回收
Java9之后被弃用
3.包装类🍊
基本数据类型所对应的引用数据类型
Object可统一所有数据
int的包装类型是Integer
装箱/拆箱
8种基本类型的包装类
栈—>堆:装箱,即基本类型转引用类型
堆—>栈:拆箱,即引用类型转基本类型
1.5之后已弃用,采用自动装箱和拆箱
4.String类🍋
字符串是常量,创建之后不可改变
字符串字面值存储在字符池之中,可以共享
length()
返回字符串长度
charAt(int index)方法
返回某个位置的字符
contains(String str)方法
判断是否包含某个字串
toCharArray()
将字符转成数组
indexOf()
查找str首次出现的下标,存在,则返回该下标,不存在,则返回-1
lastIndexOf()
查找字符串在当前字符串中最后一次出现的下标索引
trim()
去掉字符串前后的空格
toUpperCase()/toLowerCase()
将小写转成大写
endWith(String str)
判断字符串是否以指定结尾
replace(char oldchar,char newchar)
将旧字符替换成新字符
split(String str)
根据str做拆分
equals()
字符串比较
compareTo()
unicode码位置距离比较
StringBuffer和StringBuiler的使用
这两个类相对于String效率更高,更节省内存
这两个类的区别:
StringBuffer,1.0提供,运行效率慢,线程安全
StringBuiler,5.0提供,运行效率快,线程不安全
这两个类的常用方法:
append(str)追加的方法,追加字符串
intsert(0,str)指定插入的方法,在下标处插入字符
replace(0,4,str)替换的方法,指定位置替换
delete(0,4)删除的方法,指定位置的删除
5.Date类🍌
Date表示特定的瞬间,精确到毫秒,Date类中的大部分方法都已经被Calendar类中的方法所取代
6.System类🍍
主要用于获取系统的属性数据和其他操作,构造方法私有的
常用的方法:
arraycopy()
复制数组
currentTimeMillis()
获取当前系统时间,返回的是毫秒数
gc()
建议jvm赶快启动垃圾回收器回收垃圾
exit(int status)
退出jvm,如果参数表示0表示正常退出jvm,非0表示异常退出
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步