常用类

一、内部类--在一个类的内部再定义一个完整的类

内部类也会生成class文件
特点:
编译之后可生成独立的字节码文件
内部类可以直接访问外部私有成员,而不破坏封装
可以为外部类提供必要的内部功能组件
分类:
1.成员内部类--在类的内部定义,与实例变量、实例方法同级别
创建内部类对象时,必须创建外部类对象
当外部类和内部类存在重名的属性时,会优先访问内部类属性
成员内部类不能定义静态成员;可以包含静态常量

2.静态内部类--不依赖外部对象,可直接创建或通过类名访问, 可声明静态成员;只有内部类才可以用static修饰
添加static--级别和外部类相同

3.局部内部类--定义在外部类的方法中,作用范围和创建对象仅限于当前方法
前面不能加任何访问修饰符
变量必须修饰为final
限制类的适用范围

4.匿名内部类--没有类名的局部内部类
必须继承一个父类或者实现一个接口
定义类、实现类、创建对象的语法合并,只能创建一个该类的对象。
优点:减少代码量 缺点:可读性差

二、Object类:超类(基类),所有类的直接或间接父类,位于继承树的最顶层

所有类,若没有extends某个类,都默认直接继承Object类,否则为间接继承
Object类中所定义的方法,是所有对象都具备的方法。
Object类型可以存储任何对象:作为参数--可接受任何对象;作为返回值--可返回任何对象。

1.getClass()
返回引用中存储的实际对象类型:通常用于判断两个引用中实际存储对象类型是否一致

2.hadCode()
返回该对象的哈希码值
哈希值根据对象的地址或字符串或数字使用hash算法计算出来的int类型的数值。
一般情况下相同对象返回相同哈希码。

3.toString()
返回该对象的字符串表示(表现形式)。
可根据程序需求覆盖该方法,如:展示对象各个属性值。


4.equals()
默认实现为(this == obj),比较两个对象地址是否相同。
可进行覆盖,比较两个对象的内容是否相同:步骤如下:


5.finalize()
当对象被判定为垃圾对象时,由JVM自动调用此方法,用以标记垃圾对象,进入回收队列。
垃圾对象:没有有效引用指向此对象时,为垃圾对象。
垃圾回收:由GC销毁垃圾对象,释放数据存储空间。
自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象。
手动回收机制:使用System.gc();通知JVM执行垃圾回收。

finalize()方法从java9开始被弃用

三、包装类

基本数据类型所对应的引用数据类型。
Object类可统一所有数据,包装类的默认值是null

类型转换:基本类型和包装类之间的转换
装箱:把基本类型转换为引用类型
拆箱:把引用类型转换为基本类型

parse 类型()方法:实现基本类型和字符串之间的转换

注意:需要保证类型兼容,否则抛出NumberFormatException异常
整数缓冲区:

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

四、String类

字符串是常量,创建之后不可改变。字面值存储在字符串池中,可以共享。
字符串赋值方式:
1.String s = ”hello“----直接赋值
2.String s = new String("hello")------通过new赋值 //产生两个对象

常用方法:



案例:


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

和String的区别:1.效率更高 2。更节省内存

五、BigDecimal类

很多实际应用中需要精确运算,而double是近似值存储,不再符合要求,需要借助BigDecimal
位置:math包中,精确计算浮点数

scal:精确到小数点后几位

六、时间类型

Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法都已经被Calendar类中的方法所取代
Date:

Calendar:
提供了获取或设置各种日历字段的方法
构造方法:protected Calendar():无法直接创建对象


SimpleDateFormat类

七、System类

系统类,主要用于获取系统的属性数据和其他操作,构造方法私有的

posted on 2025-04-05 10:18  sharline  阅读(11)  评论(0)    收藏  举报