包装类与常用类

包装类

基本数据类型与包装类型

定义:专门将简单数据类型的数据进行封装,形成的对应的类.

在这里插入图片描述

装箱拆箱

手动装箱

概念:由基本数据类型, 完成向对应的包装类型进行转换。

方式1: 可以通过每一个包装类的构造方法来完成。 在每一个包装类的构造方法中,都有一个与之对应的基本数据类型作为参数的重载方法。 此时, 直接将需要包装起来的基本数据类型, 写到构造方法的参数中即可完成装箱。

Byte n1 = new Byte((byte)1);
Short n2 = new Short((short)2);
Integer n3 = new Integer(3);
Long n4 = new Long(4L);
Float n5 = new Float(3.14f);
Double n6 = new Double(3.14);
Character n7 = new Character('a');
Boolean n8 = new Boolean(false);

方式2: 可以通过包装类的静态方法 valueOf() 完成装箱。 每一个包装类中,都有一个静态方法 valueOf , 这个方法的参数是包装类型对应的基本数据类型的参数。 直接将需要包装起来的基本数据类型的数据, 写到这个方法的参数中, 即可完成对这个基本数据类型数据的装箱。

Byte n1 = Byte.valueOf((byte)1);
Short n2 = Short.valueOf((short)2);
Integer n3 = Integer.valueOf(3);
Long n4 = Long.valueOf(4);
Float n5 = Float.valueOf(3.14f);
Double n6 = Double.valueOf(3.14);
Character n7 = Character.valueOf('a');
Boolean n8 = Boolean.valueOf(true);

手动拆箱

概念: 由包装类型, 完成向对应的基本数据类型进行转换。

方式: 使用每一个包装类对象的 xxxValue 可以实现。 这里的 xxx 就是需要转型的基本数据类型。 例如, 如果需要转型为int类型, 则直接调用 intValue 即可。

Byte i1 = Byte.valueOf((byte) 100);
byte n1 = i1.byteValue();

Short i2 = Short.valueOf((short) 100);
short n2 = i2.shortValue();

Integer i3 = Integer.valueOf(100);
int n3 = i3.intValue();

Long i4 = Long.valueOf(100);
long n4 = i4.longValue();

Float i5 = Float.valueOf(3.14f);
float n5 = i5.floatValue();

Double i6 = Double.valueOf(3.14);
double n6 = i6.doubleValue();

Character i7 = Character.valueOf('a');
char n7 = i7.charValue();

Boolean i8 = Boolean.valueOf(true);
boolean n8 = i8.booleanValue();

某些包装类对象, 除了可以拆箱成对应的基本数据类型的数据之外。 还可以将包装起来的数字转成其他的基本数据类型的数据。 例如, Integer,除了有 intValue 之外, 还有byteValue 等方法。 其实, 就是将包装类中包装起来的int数据, 强转成byte类型返回结果。 在使用的时候, 找自己需要的方法去转型即可。

自动装箱拆箱

概念: 所谓的自动装箱和自动拆箱, 指的是在进行装箱和拆箱的时候, 不用再使用上面的方法完成装箱和拆箱的操作。 在JDK1.5之后, 装箱和拆箱是可以自动完成的! 只需要一个赋值语句即可!

享元原则

概念: 是程序设计的一个基本原则。 当我们需要在程序中频繁的用到一些元数据的时候, 此时, 我们可以提前将这些元数据准备好, 当需要的时候, 直接拿过来使用即可。 使用完成之后, 也不进行销毁, 以便下次继续使用。

包装类中的享元: 将常用到的基本数据类型对应的包装类对象,预先存储起来。 当使用到这些基本数据类型对应的包装类对象的时候, 可以直接拿过来使用, 不用再实例化新的对象了。

字符串与基本数据类型转换

基本数据类型转型字符串类型

概念: 基本数据类型, 转成字符串, 希望得到的结果是这个数值转成字符串的样式。 其实, 就是直接给这个数值添加上双引号。

方式1: 可以利用字符串拼接运算符完成。 当加号两端有任意一方是字符串的时候, 此时都会自动的把另一方也转成字符串, 完成字符串的拼接。 所以, 当需要把一个基本数据类型的数据转成字符串的时候, 只需要在另一端拼接上一个空的字符串即可。

int a = 10;
String str = a + "";

【推荐使用】方式2: 使用字符串的静态方法 valueOf 完成。

String str = String.valueOf(10);

方式3: 借助包装类的实例方法 toString 方法。

String str = Integer.valueOf(10).toString(); 

方式4: 借助包装类的静态方法 toString 方法。

String str = Integer.toString(10); 

字符串类型转型基本数据类型

概念: 字符串类型转基本数据类型, 其实就是解析出这个字符串中的内容,转型成对应的基本数据类型的表示。

注意事项1: 基本数据类型转字符串肯定是没问题的, 但是由字符串类型转到基本数据类型的时候, 可能会出现问题。字符串中的内容, 不一定能够转成希望转换的基本数据类型。 如果转换失败, 会出现 NumberFormatException 异常。
注意事项2: 对于整数来说,字符串中如果出现了其他的非数字的字符, 都会导致转整数失败, 即便是小数点, 也不可以转。 这里并没有转成浮点数字, 再转整数的过程。

方式1: 使用包装类的静态方法 valueOf 方法

Integer num = Integer.valueOf("123"); 

方式2: 使用包装类的静态方法 parseXXX 方法。 这里的XXX就是要转换的基本数据类型。

int number = Integer.parseInt("123");

实现进制间的转换

  • 把十进制转成其它进制

    • Integer.toHexString() 转十六进制
    • Integer.toOctalString() 转八进制
    • Integer.toBinaryString() 转二进制
  • 把其它进制转十进制

//第一个参数:数据-以字符串形式存储
//第二个参数:进制-转之前的进制
Integer.parseInt(数据,进制)
int i2 = Integer.parseInt("10100011",2);
System.out.println(i2);

常用类

常用类 Math

是一个数学类, 这个类中封装了很多用来做数学计算的方法。 当我们需要使用到数学计算的时候, 要能够想到这个类。 这个类中有很多封装好的数学公式, 而且, 都是静态方法, 方便调用。

属性描述
PI圆周率π3.14159265358979323846
E自然对数e2.7182818284590452354

常用方法

在这里插入图片描述

常用类Random

是一个专门负责产生随机数的类。 在Java中, Random类在 java.util 包中。 在使用之前,需要先导包。

其实, 随机数的产生, 是有一个固定的随机数算法的。 代入一个随机数种子, 能够生成一个随机数列。 但是由于算法是固定的, 因此会有一个“BUG”: 如果随机数的种子相同, 则生成的随机数列也完全相同。

常用方法

在这里插入图片描述

常用类BigInteger、BigDecimal

这两个类,都是用来表示数字的类。 BigInteger表示整型数字, BigDecimal表示浮点型数字。 这两个类, 可以用来描述非常、非常、非常大的数字。 例如整数, long是最大的表示范围, 但是即便是long型, 也有它表示不了的情况。 BigInteger就是可以表示任意大小的数字。

BigInteger: 表示整型数字, 不限范围。
BigDecimal: 表示浮点型数字,不限范围, 不限小数点后面的位数。

常用方法

在这里插入图片描述

常用类Date

是一个用来描述时间、日期的类。 在 java.util 包中!!!

注意:

  • 比较Date和Data类

Date:日期类
Data:数据类,装的是二进制的数据

  • 比较java.util.date和java.sql.date包

java.util.date 对应的是java的日期类型,包括年月日 时分秒
java.sql.date 对应的是数据库的日期类型 ,只包括 年月日

如果需要数据类型转换,从java.sql.date转成java.util.date是自动类型转换,反之是强制类型转换

常用方法

在这里插入图片描述

常用类SimpleDateFormat*

是一个用来格式化时间的类。 使用这个类, 一般有两种操作:

  • 将一个 Date 对象, 转成指定格式的时间字符串。
  • 将一个指定格式的时间字符串, 转成 Date 对象。

常用时间格式

在这里插入图片描述

常用方法

在这里插入图片描述

parse 方法
会抛出一个编译时的异常。 在使用的时候, 目前, 直接使用一键修复(alt + Enter), 用try-catch 包围即可。

将一个字符串, 按照指定的格式进行解析。 如果字符串中的时间格式, 和对象实例化的时候给定的格式不同, 此时会出现异常。

常用类Calendar

是一个用来描述时间、日期的类。 比Date的功能更加完善。 在Date类中, 有很方法都已经被废弃了。 用Caleendar类中的某些方法来替代。

常用方法

方法参数描述
getInstance获取用来描述当前时间的Calendar子类对象, 并向
上转型为了Calendar类型。 Calendar类是一个抽象
类, 无法实例化对象。
getint通过指定的字段,获取字段对应的值。 字段的信
息, 通过Calendar类中定义的一些静态常量来获
取。 例如: Calendar.YEAR、Calendar.MONTH、
Calendar.DAY_OF_MONTH…
setint,int通过指定的字段,设置字段对应的值。 字段的信
息, 通过Calendar类中定义的一些静态常量来获
取。 例如: Calendar.YEAR、Calendar.MONTH、
Calendar.DAY_OF_MONTH…
setnt, int, int
int, int, int,
int, int int,
int, int, int,
int, int
同时设置年月日信息 同时设置年月日时分信息 同时
设置年月日时分秒信息
getTime获取指定时间对应的Date对象
setTimeDate通过一个Date对象,设置时间
getTimeInMillis获取当前时间戳
setTimeInMillislong通过时间戳设置时间
equalsCalendar判断两个日期是否相同
beforeCalendar判断一个日期是否在另外一个日期之前
afterCalendar判断一个日期是否在另外一个日期之后
addint, int对指定的字段进行加法, 增加指定的时间偏移量

System

System 类包含一些有用的类字段和方法。它不能被实例化。
在 System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环
境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。

常用字段

字段详情
err“标准”错误输出流。
in“标准”输入流。
out“标准”输出流。

常用方法

在这里插入图片描述

Runtime

运行时类,每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。应用程序不能创建自己的Runtime 类实例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值