Java常用类

Java常用类

内部类

概念:在一个类的内部再定义一个完整的类。

//内部类
public class Outer {
    class Inner{
        
    }
}

特点:

  1. 编译后可生成独立的字节码文件。
  2. 内部类可直接访问外部类的私有成员,而不破坏封装。
  3. 可为外部类提供必要的内部功能组件。

成员内部类

  • 在类的内部定义,于实例变量、实例方法同级别的类。
  • 外部类的一个实力部分,创建内部类对象时,必须依赖外部类对象。

静态内部类

  • 不依赖外部类对象,可以直接创建或通过类名访问,可声明静态成员。

局部内部类

  • 定义在外部类的方法中,作用范围和创建对象范围仅限于当前方法。
  • 局部内部类访问外部类当前方法中的局部变量时,因无法保障变量的生命周期与自身相同,变量必须修饰为final常量。

匿名内部类

  • 没有名字的局部内部类(一切特征都与局部内部类相同)。
  • 必须继承一个父类或者实现一个接口。
  • 定义类、实现类、创建对象的语法合并,只能创建一个该类的对象。

优点:减少代码量。缺点:可读性较差。

Object 类

  • 超类、基类,所有类的直接或者间接父类。

getClass方法

  • 返回当前对象的实际类型。
  • 返回值类型为class类型。

hashCode()方法

  • 返回类型为int类型,返回该对象的哈希码值。
  • 哈希值根据对象的地址或字符串或数字使用hash算法计算出来的int类型的数值。

toString()方法

  • 返回类型为 String 类型。
  • 表现形式为字符串。

equals()方法

  • 比较两个对象的地址是否相同。

  • 可进行覆盖,比较两个对象的内容是否相同。

    覆盖方法:

    • 判断两个对象是否是同一个引用
    • 判断obj是否为null
    • 判断是否是同一个类型
    • 是同一种则进行强制类型转换
    • 比较属性
  • 返回布尔值类型

finalize()方法

  • 当对象被判定为垃圾对象时,由JVM自动调用该方法,用以标记,进入回收队列。
  • 垃圾对象:没有有效引用指向此对象时为垃圾对象。
  • 垃圾回收:由GC销毁垃圾对象,释放空间。

包装类

  • 基本数据类型所对应的引用数据类型
  • 默认值为null
  • 基本类型所对应的包装类类型:
    • 除int类型对应Integer、char类型对应Character外,其余基本类型都是首字母大写。

类型转换与装箱、拆箱

  • 装箱:基本类型转换为引用类型。
  • 拆箱:引用类型转换为基本类型。
  • jdk 1.5后提供自动装箱、拆箱。
  • 基本类型转字符串
    • 使用+号。
    • 使用Integer中的toString()方法。
  • 字符串转为基本类型
    • 使用Integer中的parseXXX()方法(XXX代表基本数据类型)。
    • 布尔类型的字符串转为基本类型时,除了字符串是“true”会转成true,其他全部为false。

注意:类型要兼容,否则抛出NumberFormatException异常。

整数缓冲区

  • Java预先创建了256个常用的整数包装类型对象。
  • 在实际应用当中,对已创建的对象进行复用。

String 类

  • 字符串是常量,创建之后不可以改变。
  • 字符串字面值存储在字符串池中,可以共享。
  • 给字符串赋值时,并没有修改数据,而是重新创建的。

常用方法

  • length():返回字符串长度。
  • charAt(int index):根据下标获取字符。
  • contains(String str):判断当前字符串是否包含str。
  • toCharArray():将字符串转为数组。
  • indexOf(String str):查找str首次出现的下标。
  • lastIndexOf(String str):查找最后一次出现的下标。
  • trim():去掉字符串前后的空格。
  • toUpperCase():将小写转为大写 、toLowerCase()将大写转为小写。
  • endwith(String str):判断是否str结尾,startwith(String str):判断是否以str开头。
  • replace(str1,str2):将str1替换为str2。
  • split():拆分字符串。
  • 比较:equals()比较相等、compareTo ()比较大小。

可变字符串

  • StringBuffer:可变长字符串,运行效率慢,线程安全。
  • StringBuilder:可变长字符串,运行效率快,线程不安全。

和String 的区别:

  1. 比String效率高。
  2. 比String节省内存。

用法:

  1. append(str):追加内容。
  2. toString():输出内容。
  3. insert(index,str):添加,在某个位置添加某个类型的数据。
  4. replace(start,end,str):替换,指定位置替换。
  5. delete(start,end):删除

BigDecimal类

浮点类型需要精度高的运算时使用此类。

创建方式:BigDecimal bd = new BigDecimal(“1.0”);

类之间不能用运算符进行计算,应该调用方法:运算后返回值类型为BigDecimal。

  • 加法(+)–>add()
  • 减法(-)–>subtract()
  • 乘法(*)–>multiply()
  • 除法(/)–>divide()

Calendar 类

提供了获取或设置各种日历字段的方法。

构造方法:protected Calendar(),由于修饰符是protected,所以无法直接创建对象。

使用其getInstance()方法创建对象。

格式为:Calendar calendar = Calendar.getInstance();

  • 获取当前时间:get(Calendar.XXX),返回值类型为int

XXX替换为如年YEAR、月MONTH(返回0-11,0为1月,11为12月)、日 DAY_OF_MONTH、小时HOUR_OF_DAY(24)、分钟MINUTE、秒SECOND

  • 修改时间set(当前时间,修该的时间)
  • 输出calendar.getTime().toLocaleString();

SimpleDateFormat 类

  • 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
  • 进行格式化(日期 ->文本)、解析(文本 ->日期)
  • 常用模式字母
    • y 年
    • M 月
    • d 天
    • H 小时(0-23)
    • m 分钟
    • s 秒
    • S 毫秒
  • 实例化SimpleDateFormat sdf = new SimpleDateFormat(“yyyy年MM月dd日HH:mm:ss”);
  • 方法:
    • 格式化:format(data);
    • 解析:parse(str); 会抛出异常

System类

系统类,主要获取系统的属性数据和其他操作,构造方法私有的。方法是静态的,不需要实例化对象。

  • arraycopy(str1,i,str2,j,length):实现数组复制,i开始位置,j开始位置
  • currentTimeMillis():获取当前系统时间,返回的是毫秒
  • gc():通知JVM回收垃圾对象
  • exit():退出JVM(0表示正常退出,非0表示异常退出)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值