Java 核心 API_02

本贴最后更新于 876 天前,其中的信息可能已经时异事殊

1. Objcet 类

  • 概述

java.lang.Object 类是 Java 语言中的根类,是所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化时,最终找到的父类就是 Object。

如果一个类没有特别指定父类,那么默认继承 Object 类。

  • toString 方法

toString 方法返回该对象的字符串表示,字符串内容就是对象的类型 +@+ 内存地址值,在开发中经常需要重写。

  • equals 方法

equals 方法判断两个对象是否相同。相同有默认和自定义两种方式。

  • 默认地址比较

如果没有重写 equals 方法,Object 类中默认进行 == 运算符进行比较,只要不是同一个对象,结果必然为 false。

  • 对象内容比较

如果希望对象的内容进行比较,则可以重写 equals 方法

  • Objects 类

在 JDK7 中添加了一个 Objects 工具类,它提供了一些方法来操作对象,他由一些静态的使用方法组成,用于计算对象的 hashcode、返回对象的字符串表示形式、比较两个对象。

在比较两个对象是,Object 的 equals 方法容易抛出空指针异常,而 Objects 类中优化了该问题。

2.String、StringBuilder、StringBuffer

  • 三个类的区别

String 类创建字符串后将被视为常量,不可修改,字符串的拼接也只是创建了新的字符串而已。效率低,但是代码复用性高。

StringBuilder 类创建字符串效率高,但是线程不安全。

StringBuffer 类创建字符串效率比 StringBuilder 第一点,但是线程安全。

3. System

java.lang.System 是 Java 中的系统类,主要用于获取系统的属性数据,没有构造方法。类中提供了大量的静态方法,可以获取系统的相关信息或系统级操作。

  • currentTimeMillis

获取当前时间的毫秒值,有了毫秒值可以将其转换为 Date 对象、Calendar 对象等进行日期运算。

  • arraycopy

将数组中指定的数据拷贝到另一个数组中,拷贝的动作是系统级的,性能很高。

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

bd6bf23d521686a95f1c5ecc7cb87625.png

  • exit

exit 用于退出 Jvm,需要注意的是:0 或者非 0 的数据都可以退出 Jvm,对于用户而言没有任何区别,对于 windows 是有作用的,因为如果传非 0 对于 windows 而言是异常终止的,如果是正版的操作系统,对于异常退出的软件,需要把这些异常退出的软件信息做成报告发送给微软,微软就可以针对这些问题对系统做出一些修改。

  • gc

在 Java 程序运行时,如果一个对象没有被引用,或者被指向了 null,那么这个对象就被标记为“垃圾”,jvm 会根据某种算法来定时清除这些对象来释放内存;System.gc()方法就是告诉 jvm 的垃圾回收期该清理垃圾了,但 gc 方法只是建议 jvm 清理垃圾,jvm 不一定以立即去清理垃圾。

finalize()是 Object 类的一个方法,如果一个对象被垃圾回收器回收时,会先调用对象的该方法。

4. 包装类

  • 装箱与拆箱

装箱 :从基本类型装换为对应的包装类对象

拆箱 :从包装类对象转换为对应的基本类型

//装箱
Integer i = new Integer(1)  //使用构造函数
Integer i1 = Integer.valueOf(1) //使用方法
//拆箱
int num = i.intValue();

从 JDK5 开始,基本类型的装箱与拆箱可以自动完成,自动装箱(拆箱)就是把装箱(拆箱)代码封装起来,自动执行。

  • 基本类型与字符串之间的转换
  • 基本类型转 String

基本类型与空白字符串相连即可

  • String 转对应的基本类型

除 Character 类以外,其他所有的包装类都具有 parseXXX 静态方法可以将字符串参数转为对应的基本类型。

如果字符串参数的内容无法正确转为对应的基本类型,则抛出异常 java.lang.NumberFormatException

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3167 引用 • 8207 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • whoms
    作者

    还行吧