java系统API函数

toString方法
public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }
        getClass().getName():获取包名和类名
        @:原样输出
        hashCode():获取系统给的随机十进制数字
        Integer.toHexString():十进制转十六进制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gqwxASDL-1601213394964)(C:\Users\87076\AppData\Roaming\Typora\typora-user-images\image-20200926145739110.png)]

对于类的实例对象,直接使用 对象名.toString 方法打印出的值并非是系统提供的toString方法。

Deciphering variable information while debugging Java

这个数字是ObjectID,隶属于JDWP(Java Debug Wire Protocol, Java调试线协议)。
JDWP被用来在`debugger`和他所调试的目标JVM之间通信。

JDWP是可选实现的,也就是说一些JDK的实现版本没有JDWP。

ObjectID 最多8字节,具体由VM指定。ObjectID可以唯一标识目标VM中的对象。 一个特定对象将通过JDWP命令中的一个objectID来标识,整个生命周期中不变,除非已经明确处理完了一个ObjectID,否则不会重复使用ObjectID来标识不同的对象,无论引用的对象是否已被垃圾回收。

objectID为0表示`null`对象。

**注意,对象ID的存在不会阻止对象的垃圾回收。** 任何使用其对象ID访问垃圾收集对象的尝试都将导致INVALID_OBJECT错误代码。 可以使用DisableCollection命令禁用垃圾收集,但通常不需要这样做。

转自: https://blog.csdn.net/baichoufei90/article/details/84102509
equals方法

基本数据类型比较的是值

引用数据类型比较的是地址

类的equals方法的重写:
public boolean equals(obiect o)
1.判断比较的对象是否是自己  if(this == o)
2.判断对象是否为NULL if(o==null)
3.判断比较的对象的类型是否与自己类型相同 if(getClass() != o.getClass()) 
									 or
								   if(o instanceof ?)   避免对象不是同一类型的情况
4.将对象向下转型
5.将类的成员变量分别做对比,可使用Objects包下的equals方法
idea自动生成的equals代码:
import java.util.Objects;

public class Preson {
    Integer a;
    String b;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Preson)) return false;
        Preson preson = (Preson) o;
        return Objects.equals(a, preson.a) &&
                Objects.equals(b, preson.b);
    }

    @Override
    public int hashCode() {
        return Objects.hash(a, b);
    }
}

Objects.equals源代码:
public static boolean equals(Object a, Object b) {
        return (a == b) || (a != null && a.equals(b));
    }
Date类
构造方法
1.无参构造 获取当前时间 例: Fri Aug 24 12:0:0 CST 2020
2.带参构造
	2.1  Date(long edata)毫秒值,起点(时间原点):1970.1.1 8:0:0,(英国为0时,与东八区时间差8小时)显示值为相对于前者时间的偏移值,偏移值为long data
成员方法
getTime() 获取到当前时间的毫秒数
date格式化
java.text.DateFormat它是日期/时间格式化子类的抽象类
1.格式化时间 日期 --> 文本
2.解析 文本 --> 日期
方法:
	String format(Date date):根据指定的模式,把Date日期,格式化为文本
	Date parse(String source):把符合的字符串转换为Date日期
DateFormat是抽象类,无法创建实例,需要用其子类SimpleDateFormat
	使用构造方法:SimpleDateFormat(String pattern),pattern格式可查看api文档
格式化方法:
1.创建实例化对象,指定格式
	SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
2.将日期按照约定的格式转换为文本
	sdf.format(Date date);
3.将指定类型的文本转化为时间
	sdf.parse(String s);

api文档

Calendar类
作用:
1.获取日历字段
2.修改日历字段
3.对日历计算进行加减 
使用方法
该方法是抽象类,无法直接创建对象,但它提供了getInstance方法,返回其子类对象。
成员方法
get(int field) 返回给定日历字段的值 例如:输入1,获取年份,输入2,获取月份
set(int field,int value) 设置给定日历字段的值
add(int field,int amount) 根据日历规则,修改日历的值
getTime() 返回一个clendar时间值的date对象
System类

系统相关的方法,工具类,全是静态方法

1.currentTimeMillis()

作用:返回当前的毫秒值,可以做时间和日期的计算

2.arraycopy(Object src,int srcPos,Obiect dest,int destPos,int length)

src:源数组
srcPos:源数组起始位置
dest:目的数组
destPos:目的数组起始位置
length:复制的数量
作用:复制数组

StringBuffer类

由于String的底层代码为final,一旦创建即不可修改,对字符串相加,在系统中会出现很多字符串,会浪费大量内存。

StringBuffer类的底层代码没有被final修饰,所以至可修改,实际上相当于对一个可自动变长数组的操作。

构造方法
1.StringBuffer()  空参构造
	只是简单的申请一个数组,无内容
2.StringBuffer(Obiect) 创建一个字符串
	数组中存储的为该字符串
成员方法
1.int length()
	返回字符的个数
2.int capacity()
	返回StringBuffer的容量
3.append(Obiect)
	追加字符串:
	StringBuffer b1;
	StringBuffer b2 =b1.append("aaa");
	此处b2=b1,因为append返回的为this。
4.	toString()
	StringBuffer转String。
	---tring转StringBuffer,直接使用StringBuffer的构造方法---
5.reverse()
	将内容反转  abc-->cba

包装类

将基础数据类型装起来,为基础数据类型提供方法。

基础数据类型包装数据类型
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter
  • 装箱

将基础数据类型转换为包装数据类型

方法:

1.使用构造方法(已过时)

2.使用valueof();

两者都有String类型的方法选项,可使用字符串和本包装类型的基础数据类型作为参数。

  • 拆箱

将包装数据类型的值取出

int intValue(); 返回int值,别的类操作相似。

  • 自动装箱

Integer i=10;

  • 自动拆箱

Integer i=Integer.valueof(10);

i是包装类,无法直接进行计算,自动拆箱可是它进行计算

i=i+10;

基础数据类型与字符串的相互转换
  • String ->包装类
  1. 包装类的构造方法(很少用)
  2. 包装类中的parseXXX(“xxx”)方法
  • 包装类 ->String
  1. 基础数据类型+ “”
  2. 包装类中的toString
  3. String类中的valueOf()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
API(应用程序编程接口)文档包含对应于导航栏中的项目的页面,如下所述。 概述 概述 页面是此 API 文档的首页,提供了所有软件包的列表及其摘要。此页面也可能包含这些软件包的总体描述。 软件包 每个软件包都有一个页面,其中包含它的类和接口的列表及其摘要。此页面可以包含四个类别: •接口(斜体) •类 •枚举 •异常 •错误 •注释类型 类/接口 每个类、接口、嵌套类和嵌套接口都有各自的页面。其中每个页面都由三部分(类/接口描述、摘要表,以及详细的成员描述)组成: •类继承图 •直接子类 •所有已知子接口 •所有已知实现类 •类/接口声明 •类/接口描述 •嵌套类摘要 •字段摘要 •构造方法摘要 •方法摘要 •字段详细信息 •构造方法详细信息 •方法详细信息 每个摘要条目都包含该项目的详细描述的第一句。摘要条目按字母顺序排列,而详细描述则按其在源代码中出现的顺序排列。这样保持了程序员所建立的逻辑分组。 注释类型 每个注释类型都有各自的页面,其中包含以下部分: •注释类型声明 •注释类型描述 •必需元素摘要 •可选元素摘要 •元素详细信息 枚举 每个枚举都有各自的页面,其中包含以下部分: •枚举声明 •枚举描述 •枚举常量摘要 •枚举常量详细信息 使用 每个已文档化的软件包、类和接口都有各自的“使用”页面。此页面介绍了使用给定类或软件包的任何部分的软件包、类、方法、构造方法和字段。对于给定的类或接口 A,其“使用”页面包含 A 的子类、声明为 A 的字段、返回 A 的方法,以及带有类型为 A 的参数的方法和构造方法。访问此页面的方法是:首先转至软件包、类或接口,然后单击导航栏中的“使用”链接。 树(类分层结构) 对于所有软件包,有一个 类分层结构 页面,以及每个软件包的分层结构。每个分层结构页面都包含类的列表和接口的列表。从 java.lang.Object 开始,按继承结构对类进行排列。接口不从 java.lang.Object 继承。•查看“概述”页面时,单击“树”将显示所有软件包的分层结构。 •查看特定软件包、类或接口页面时,单击“树”将仅显示该软件包的分层结构。 已过时的 API 已过时的 API 页面列出了所有已过时的 API。一般由于进行了改进并且通常提供了替代的 API,所以建议不要使用已过时的 API。在将来的实施过程中,可能会删除已过时的 API。 索引 索引 包含按字母顺序排列的所有类、接口、构造方法、方法和字段的列表。 上一个/下一个 这些链接使您可以转至下一个或上一个类、接口、软件包或相关页面。 框架/无框架 这些链接用于显示和隐藏 HTML 框架。所有页面均具有有框架和无框架两种显示方式。 序列化表格 每个可序列化或可外部化的类都有其序列化字段和方法的描述。此信息对重新实现者有用,而对使用 API 的开发者则没有什么用处。尽管导航栏中没有链接,但您可以通过下列方式获取此信息:转至任何序列化类,然后单击类描述的“另请参见”部分中的“序列化表格”。 常量字段值 常量字段值页面列出了静态最终字段及其值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值