前言
Byte、Short、Integer、Long 、Float、Double这几个类其实就是把基本数据类型包装到一个对象里面了,也称为包装类。至于包装类,推荐你看我这篇 Java包装类详解。
这几个类还提供了几个挺好用的方法,如:字符串转数字,进制之间的转换(10进制转2、8、16进制)。
一、Byte
- 解释:这里只用Byte举例,其他几个都差不多。都是继承抽象类Number的。
- 父类:java.lang.Number
- 实现接口:Serializable ,Comparable< Byte >
public final class Byte extends Number implements Comparable<Byte>
二、常用字段
Float和Double类表示的太大了,常量也多…感兴趣自己看一眼 JDK API
// Byte类
Byte b = new Byte("0");
byte maxValueByte = b.MAX_VALUE; // 返回:127 = 2^7 -1,解释:byte能表示的最大值
byte minValueByte = b.MIN_VALUE; // 返回:-128 = -2^7,解释:byte能表示的最小值
// Short类
Short s = new Short("0");
short maxValueShort = s.MAX_VALUE; // 返回:32767 = 2^15 -1,解释:short能表示的最大值
short minValueShort = s.MIN_VALUE; // 返回:-32768 = -2^15,解释:short能表示的最小值
// Integer类
Integer i = new Integer("0");
int maxValueInteger = i.MAX_VALUE; // 返回:2147483647 = 2^31 -1,解释:byte能表示的最大值
int minValueInteger = i.MIN_VALUE; // 返回:-2147483648 = -2^31,解释:byte能表示的最小值
// Long类
Long l = new Long("0");
long maxValueLong = l.MAX_VALUE; // 返回:9223372036854775807 = 2^63 -1,解释:byte能表示的最大值
long minValueLong = l.MIN_VALUE; // 返回:-9223372036854775808 = -2^63,解释:byte能表示的最小值
// Float和Double类表示的太大了....感兴趣自己看一眼 JDK API
三、常用方法
1.字符串转数字
- 格式:包装类.toString(基本类型)
- 理解:将传入的字符串,转成数字。如果字符串不能转,抛出异常NumberFormatException
Integer i = Integer.valueOf("123"); // 将传入的字符串转换成包装类Integer类型
Double d = Double.valueOf("123.1"); // 将传入的字符串转换成包装类Double类型
// 其他几个包装类也一样可以
2.十进制转n进制
- Integer和Long中的进制转换方法:toBinaryString(int i)、toHexString(int i)、toOctalString(int i)
- 理解:Integer和Long包装类中的这三个方法可以将int和long类型的数字分别转换为:2进制,8进制,16进制。进制转换。
// Integer
String b = Integer.toBinaryString(16); // 返回:10000,解释:将输入的16转换成2进制字符串
String o = Integer.toOctalString(16); // 返回:20,解释:将输入的16转换成8进制字符串
String h = Integer.toHexString(16); // 返回:10,解释:将输入的16转换成16进制字符串
System.out.println(b+" - "+o+" - "+h);
// Long
String b2 = Long.toBinaryString(16);
String o2 = Long.toOctalString(16);
String h2 = Long.toHexString(16);
System.out.println(b2+" - "+o2+" - "+h2);
- Integer和Long的10进制转n进制:toString(int i, int radix) ,前一个是10进制,而后面是n进制。
// n进制转十进制
String s1 = Integer.toString(15, 16);// 将15转成16进制
String s2 = Integer.toString(15, 17);// 将15转成17进制
System.out.println(s1); // f
System.out.println(s2); // f
3.n进制转十进制:
- valueOf(String s, int radix) 和parseInt(String s, int radix)一样。用parseInt(String s, int radix)速度甚至更快一点。
// 2进制转10进制
Integer i1 = Integer.valueOf("1000", 2);
System.out.println(i1);
// 8进制转10进制
Integer i2 = Integer.valueOf("77", 8);
System.out.println(i2);
// 16进制转10进制
Integer i3 = Integer.valueOf("FF", 16);
System.out.println(i3);
4.浮点数进制转换
- Float和Double包装类的十六进制转换:toHexString()
- 理解:浮点数转成十六进制
String h = Double.toHexString((double) 16.0); // 返回:0x1.0p4,解释: double参数的十六进制字符串表示形式。
System.out.println(h);
相关
更多常用类请查看:【Java SE 常用类】目录