【Java 经常使用类】java.lang包(3)Byte、Short、Integer、Long 、Float、Double类的经常使用方法(包装类)




前言

  Byte、Short、Integer、Long 、Float、Double这几个类其实就是把基本数据类型包装到一个对象里面了,也称为包装类。至于包装类,推荐你看我这篇 Java包装类详解java

  这几个类还提供了几个挺好用的方法,如:字符串转数字,进制之间的转换(10进制转二、八、16进制)。

web

1、大纲

  • 解释:这里只用Byte举例,其余几个都差很少。都是继承抽象类Number的。
    在这里插入图片描述
  • 父类:java.lang.Number
  • 实现接口:SerializableComparable< Byte >
public final class Byte extends Number implements Comparable<Byte>

2、经常使用字段

Float和Double类表示的太大了,常量也多…感兴趣本身看一眼 JDK APIsvg

// 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

3、经常使用方法

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 经常使用类】大纲spa