常用API - 包装类、System类
包装类
概述
Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率。
然而很多情况,会创建对象使用,因为对象可以做更多的功能。
如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类。如下:
| 基本类型 | 对应的包装类 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
装箱与拆箱
基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“:
装箱:基本类型 --> 对应的包装类对象。
拆箱:包装类对象 --> 对应的基本类型。
用Integer与 int为例:(看懂代码即可)
基本数值---->包装对象
Integer i = new Integer(4);//使用构造函数函数
Integer iii = Integer.valueOf(4);//使用包装类中的valueOf方法
包装对象---->基本数值
int num = i.intValue();
自动装箱与自动拆箱
由于我们经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,
基本类型与包装类的装箱、拆箱动作可以自动完成。例如:
package com;
/**
* 自动装箱和拆箱:基本类型的数据和包装类之间可以自动的互相转换
*
*/
public class IntegerTest {
public static void main(String[] args) {
// 自动装箱,直接把int类型的整数赋值给包装类
Integer i = 1; //相当于 Integer i = new Integer(1);
// 自动拆箱:i是包装类,无法直接参与运算,可以自动转为基本类型再进行计算
// i = i + 2 相当于 i = i.intValue() + 2
// 计算出结果后又自动装箱
i = i +2;
System.out.println(i);
}
}
基本类型与字符串之间的转换
基本类型转换为String
基本类型转换String总共有三种方式,查看课后资料可以得知,这里只讲最简单的一种方式:
直接拼接空串,遇到串之后的数据都当成字符串拼接,之前的数据正常运算。比如
"" + 1 + 2 + 3 // 得到123
1 + 2 + "" + 3 // 得 33
1 + 2 + 3 + "" // 得 6
调用String的valueOf方法
int num = 123;
String str = String.valueOf(num);
System.out.println(str);
转换成封装类调用toString方法
Integer num = 6;
String str = num.toString();
System.out.println(str);
基本类型直接与””相连接即可;如:34 + ""
String转换成对应的基本类型
除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型:
public static byte parseByte(String s):将字符串参数转换为对应的byte基本类型。public static short parseShort(String s):将字符串参数转换为对应的short基本类型。public static int parseInt(String s):将字符串参数转换为对应的int基本类型。public static long parseLong(String s):将字符串参数转换为对应的long基本类型。public static float parseFloat(String s):将字符串参数转换为对应的float基本类型。public static double parseDouble(String s):将字符串参数转换为对应的double基本类型。public static boolean parseBoolean(String s):将字符串参数转换为对应的boolean基本类型。
代码使用(仅以Integer类的静态方法parseXxx为例)如:
public class IntegerParse {
public static void main(String[] args) {
int num = Integer.parseInt("100");
}
}
注意:如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出
java.lang.NumberFormatException异常。
System类
java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。它不能被实例化。
在 System 类中,有标准输入、标准输出和错误输出流;
对外部定义的属性和环境变量的访问;加载文件和库的方法;
还有快速复制数组的一部分的实用方法。
字段摘要
| 字段摘要 | 描述 |
|---|---|
| static PrintStream err | “标准”错误输出流。 |
| static InputStream in | “标准”输入流。 |
| static PrintStream out | “标准”输出流。 |
方法摘要
| 方法 | 描述 |
|---|---|
| static long currentTimeMillis() | 返回以毫秒为单位的当前时间。 |
| static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) |
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。 |
| static String clearProperty(String key) | 移除指定键指示的系统属性。 |
| static Console console() | 返回与当前 Java 虚拟机关联的唯一 Console 对象(如果有)。 |
| static void exit(int status) | 终止当前正在运行的 Java 虚拟机。 |
| static void gc() | 运行垃圾回收器。 |
| static Map<String,String> getenv() | 返回一个不能修改的当前系统环境的字符串映射视图。 |
| static String getenv(String name) | 获取指定的环境变量值。 |
| static Properties getProperties() | 确定当前的系统属性。 |
| static String getProperty(String key) | 获取指定键指示的系统属性。 |
| static String getProperty(String key, String def) | 获取用指定键描述的系统属性。 |
| static SecurityManager getSecurityManager() | 获取系统安全接口。 |
| static int identityHashCode(Object x) | 返回给定对象的哈希码,该代码与默认的方法 hashCode() 返回的代码一样,无论给定对象的类是否重写 hashCode()。 |
| static Channel inheritedChannel() | 返回从创建此 Java 虚拟机的实体中继承的信道。 |
| static void load(String filename) | 从作为动态库的本地文件系统中以指定的文件名加载代码文件。 |
| static void loadLibrary(String libname) | 加载由 libname 参数指定的系统库。 |
| static String mapLibraryName(String libname) | 将一个库名称映射到特定于平台的、表示本机库的字符串中。 |
| static long nanoTime() | 返回最准确的可用系统计时器的当前值,以毫微秒为单位。 |
| static void runFinalization() | 运行处于挂起终止状态的所有对象的终止方法。 |
| static void setErr(PrintStream err) | 重新分配“标准”错误输出流。 |
| static void setIn(InputStream in) | 重新分配“标准”输入流。 |
| static void setOut(PrintStream out) | 重新分配“标准”输出流。 |
| static void setProperties(Properties props) | 将系统属性设置为 Properties 参数。 |
| static String setProperty(String key, String value) | 设置指定键指示的系统属性。 |
| static void setSecurityManager(SecurityManager s) | 设置系统安全性。 |
在System类的API文档中,常用的方法有:
public static long currentTimeMillis():返回以毫秒为单位的当前时间。public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)将数组中指定的数据拷贝到另一个数组中。
currentTimeMillis方法
实际上,currentTimeMillis方法就是 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值
package com;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SystemTest {
public static void main(String[] args) {
//获取当前时间毫秒值
long ms = System.currentTimeMillis();
System.out.println("当前时间戳:" + ms);
Date date = new Date(ms);
System.out.println("默认日期格式:" + date);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("指定日期格式:" + simpleDateFormat.format(date));
}
}
练习
验证for循环打印数字1-9999所需要使用的时间(毫秒)
public class SystemTest1 {
public static void main(String[] args) {
long start = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println("共耗时毫秒:" + (end - start));
}
}
arraycopy方法
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)将数组中指定的数据拷贝到另一个数组中。
数组的拷贝动作是系统级的,性能很高。System.arraycopy方法具有5个参数,含义分别为:
| 参数名称 | 参数类型 | 参数含义 |
|---|---|---|
| src | Object | 源数组 |
| srcPos | int | 源数组索引起始位置 |
| dest | Object | 目标数组 |
| destPos | int | 目标数组索引起始位置 |
| length | int | 复制元素个数 |
练习
将src数组中前3个元素,复制到dest数组的前3个位置上
复制元素前:src数组元素[1,2,3,4,5],dest数组元素[6,7,8,9,10]
复制元素后:src数组元素[1,2,3,4,5],dest数组元素[1,2,3,9,10]
import java.util.Arrays;
/**
* 将src数组中前3个元素,复制到dest数组的前3个位置上
* 复制元素前:src数组元素[1,2,3,4,5],dest数组元素[6,7,8,9,10]
* 复制元素后:src数组元素[1,2,3,4,5],dest数组元素[1,2,3,9,10]
*/
public class SystemPractise {
public static void main(String[] args) {
int[] src = {1, 2, 3, 4, 5};
int[] dest = {5, 6, 7, 8, 9};
System.out.println("复制之前:");
System.out.println(Arrays.toString(src));
System.out.println(Arrays.toString(dest));
System.arraycopy(src,0,dest,0,3);
System.out.println("复制之后:");
System.out.println(Arrays.toString(src));
System.out.println(Arrays.toString(dest));
}
}
常用API - 包装类、System类的更多相关文章
- Java的常用API之System类简介
Syetem类 java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有: public static long c ...
- java常用API之System类
System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作.System类不能手动创建对象,因为构造方法被private修饰,阻止外界创建对象.System类中的都是static方法,类 ...
- 01 语言基础+高级:1-5 常用API第二部分_day01.【Object类、常用API: Date类、System类、StringBuilder类】
day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 java.lang.O ...
- 日期类&&包装类&&System类&&Math类&&Arrays数组类&&大数据类
day 07 日期类 Date 构造函数 Date():返还当前日期. Date(long date):返还指定日期 date:时间戳--->距离1970年1月1日 零时的毫秒数 常用方法 日期 ...
- Java—包装类/System类/Math类/Arrays类/大数据运算/Collection接口/Iterator迭代器
基本类型包装类 8种基本类型对应的包装类如: 将字符串转成基本类型: 将基本数值转成字符串有3种方式: 基本类型直接与””相连接即可:34+" " 调用String的valueOf ...
- [Day17]常用API(System、Math、Arrays、BigInteger、BigDecimal)
1.基本类型包装类 1.1 8种基本类型对应的包装类 字节型 byte Byte 短整型 short Short 整型 int Integer 长整型 long Long 字符型 char Chara ...
- 常用API - 时间日期类
Date类 概述 java.util.Date类 表示特定的瞬间,精确到毫秒. 继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期 ...
- Java常用API及Math类
一.API的概述 API——Application Programing Interface:应用程序编程接口,是java提供的一些预定义的函数: 目的:基于API实现程序的快速编写,只需了解其作用, ...
- Java常用API、Math类介绍
一.API的概述 API——Application Programing Interface:应用程序编程接口,是java提供的一些预定义的函数: 目的:基于API实现程序的快速编写,只需了解其作用, ...
随机推荐
- 借Adobe XD之力,自动生成Flutter代码
概述 今天,我们来聊聊一个专门为"懒人程序员"准备的工具--Adobe XD.使用它可以快速将原型设计图转换为可执行的Flutter代码, 而由于Flutter自身跨平台的特性,因 ...
- Tomcat的8080端口被占用无法启动Tomcat怎么办?
一招解决Tomcat的8080端口被占用 打开tomcat的bin目录在,找到startup.bat,用记事本编辑startup.bat,在第一行加入 set JAVA_HOME=C:\Program ...
- 02-Python基础1
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- kernel list 实践
list.h /******* 链表实现,来自内核 **************************************************/ /** * container_of - c ...
- 小孩学习编程的绝佳游戏——CodeMonkey
CodeMonkey于2014年1月在以色列成立.它的愿景是建立一个全球性的学习平台,让孩子们通过游戏的方式学习.发现.创造和分享,同时在此过程中获得编程这一项21世纪必备的技能. 通常提到CodeM ...
- Unit2-窝窝牌电梯
全文共2329字,推荐阅读时间10~15分钟. 文章共分四个部分: 作业分析 评测相关 重构策略 课程体验感受 作业分析 Unit2要求我们模拟现实生活中的电梯调度情景,迭代路径是单电梯->多电 ...
- String 类中常用方法
序号 方法定义 类型 描述 1 public String(char[] value) 构造 直接将一个字符数组变为一个字符串 2 public String(char[] value,int off ...
- 其他函数-web_get_int_property
用于记录http响应的信息.这个函数在调试脚本的常用,但是在实际压力测试中请将这些注释 使用这个函数可以获取到的信息有: 1.HTTP_INFO_RETURN_CODE:返回HTTP响应码 2.HTT ...
- 1.WebPack概念
一.什么是WebPack 官方解释:本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构 ...
- opencv C++构造并访问单通道和多通道Mat。
一:构造并访问单通道. int main(){ cv::Mat m=(cv::Mat_<int>(3,2)<<1,2,3,4,5,6); for(int i=0;i<m. ...