API之包装类、System类
java中提倡一切皆对象思想,但基本数据类型不能称为对象,因此java为每种基本数据分别设计了对应类,称之为包装类。
-
基本数据类型的包装类
byte short int long double float char boolean
对应
Byte Short Integer Long Double Float Character Boolean
每个包装类的属性、构造、方法等具体见JDK帮助文档
装箱和拆箱
基本数据类型转换为包装类的过程称为装箱,eg:把int包装成Integer类的对象;int m = 500; Integer obj = m; // 自动装箱
包装类转换为基本数据类型的过程称为拆箱,eg:把Integer类的对象重新简化为int;int n = obj; // 自动拆箱
手动实例化一个包装类称为手动拆箱装箱。在java1.5版本前,必须手动拆箱装箱,之后可以自动拆箱装箱;
包装类的应用
-
实现int和Integer的相互转换
可以通过Integer类的构造方法将int装箱,通过Integer类的intValue方法将Integer拆箱。
public class Demo { public static void main(String[] args) {
int m = 500;
Integer obj = new Integer(m); // 手动装箱
int n = obj.intValue(); // 手动拆箱
System.out.println("n = " + n); //n = 500
Integer obj1 = new Integer(500);
System.out.println("obj等价于obj1的返回结果为" + obj.equals(obj1));//true
}
} -
将字符串转换为数值类型
两种方法:1、 Integer 类(String 转 int 型)int parseInt(String s);
2、 Float 类(String 转 float 型)float parseFloat(String s) ;
字符串中的数据必须由数字组成,否则转换时会出现程序错误;
-
将整数转换为字符串
Integer类中有一个静态的toString()方法,可以将整数转换为字符串;int m = 500; String s = Integer.toString(m);
Integer类详解
-
Integer类的构造方法
Integer类的构造方法有两个:
Integer(int value):构造一个分配的Integer对象,表示指定的int值;
Integer(String s):构造一个分配的Integer对象,表示String参数指示的int值;
-
Integer类的常用方法
-
Integer类的常量
Integer类包含4个常量
-
MAX_VALUE:值为2^31-1,表示int类型能够表示的最大值;
-
MIN_VALUE:值为-2^31,表示int类型能够表示的最小值;
-
SIZE:用来以二进制补码形式表示int值的比特位数;
-
TYPE:表示基本类型int的class实例;
-
Number类
Number类是一个抽象类。Number属于java.lang包,所有包装类(Double、Float、Byte、Short、Integer以及Long)都是抽象类Number的子类。
抽象类不能直接实例化,而是实例化其具体的子类;
System类
System类位于java.lang包,代表当前java程序的运行平台,系统级的很多属性和控制方法都放置在该类的内部。由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。
System类提供了一些类变量和类方法,允许直接通过System类来调用。
System类的成员变量
System类有3个静态成员变量,分别是PrintStream out、InputStream in和PrintStream err。
-
PrintStream out
标准输出流。此流已打开并准备接收输出数据。通常,此流对应于显示器输出;
System.out.println(data);
println方法是属于流类PrintStream的方法,而不是System的方法 -
InputStream in
标准输入流。此流已打开并准备提供输入数据。通常此流对应于键盘输入;
-
PrintStream err
标准的错误输出流。语法与System.out类似,不需要提供参数就可胡输出错误信息。也可用来输出用户指定的其他信息,包括变量的值。
System类的成员方法
-
arrycopy()方法
该方法的作用是数组复制,从指定的位置开始,到目标数组的指定位置结束
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
//src表示原数组,srcPos表示从原数组的起始位置;length表示复制的元素个数
//dest表示目标数组,destPos表示目标数组的起始位置;
//目标数组的原元素会被覆盖 -
currenTimeMillis()方法
返回当前计算机时间,格式为当前计算机与GMT时间(格林尼治时间)1970-1-1-0-0-0所差的毫秒数。一般用它来测试程序的执行时间。
-
exit()方法
终止当前正在运行的Java虚拟机;System.exit();0表示正常退出,非0表示异常退出
-
gc()方法
请求系统进行垃圾回收,完成内存中的垃圾清除。至于系统是否立刻回收,取决于系统中垃圾回收算法的实现以及系统执行时的情况。
-
getProperty()方法
获得系统中属性名为key的属性对应的值
eg:输出java的安装环境
System.out.println(System.getProperty("java.version"));
属性名 | 属性说明 |
---|---|
java.version | Java 运行时环境版本 |
java.home | Java 安装目录 |
os.name | 操作系统的名称 |
os.version | 操作系统的版本 |
user.name | 用户的账户名称 |
user.home | 用户的主目录 |
user.dir | 用户的当前工作目录 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)