Java 的基本数据类型使用起来很方便,但是没有对应的方法进行操作
Java 是面向对象的,实现对基本数据类型的封装,这些类在 java.lang 包中
一、基本数据类型的数值范围
System.out.println(Byte.MIN_VALUE + " " + Byte.MAX_VALUE);
System.out.println(Short.MIN_VALUE + " " + Short.MAX_VALUE);
System.out.println(Integer.MIN_VALUE + " " + Integer.MAX_VALUE);
System.out.println(Long.MIN_VALUE + " " + Long.MAX_VALUE);
System.out.println(Float.MIN_VALUE + " " + Float.MAX_VALUE);
System.out.println(Double.MIN_VALUE + " " + Double.MAX_VALUE);
System.out.println(Character.MIN_VALUE + " " + Character.MAX_VALUE);
// System.out.println(Boolean.MIN_VALUE + " " + Boolean.MAX_VALUE);
// 标红报错 基本数据类型本质上分为两大类:数值型、布尔型 布尔型没有最大最小值
二、字符串、基本数据类型的转换
1、字符串 --> 基本数据类型
// 将字符串参数解析为 int 值
public static int parseInt(String s)
throws NumberFormatException
// 将字符串参数解析为 double 值
public static double parseDouble(String s)
throws NumberFormatException
// 将字符串参数解析为 boolean 值
public static boolean parseBoolean(String s)
2、基本数据类型 --> 字符串
// 返回参数的字符串表示形式
public static String toString(int i)
public static String toString(double d)
public static String toString(boolean b)
// 返回参数的字符串表示形式
public static String valueOf(int i)
public static String valueOf(double d)
public static String valueOf(boolean b)
方法一、拼接空字符串,+""
,最简单,工作中常用
方法二、封装类的 toString 静态方法;方法三、String类的 valueOf 静态方法
// 字符串 --> 基本数据类型
int i = Integer.parseInt("123");
System.out.println(i);
// 基本数据类型 --> 字符串
String s1 = 100 + ""; // 拼接空字符串
String s2 = Integer.toString(100); // 封装类的 toString 静态方法
String s3 = String.valueOf(100); // String类的 valueOf 静态方法
方法摘要
一、封装类的构造方法
基本涉及两种情况:数值做参数、数值字符串做参数
Float类,Character类、Boolean类比较特殊,单独记忆
(1)Float类:Float(float value)、Float(String s)、Float(double value)
(2)Character类:Character(char value)
(3)Boolean类:Boolean(boolean value)、Boolean(String s)
Boolean b1 = new Boolean("TruE"); // true
Boolean b2 = new Boolean("Hello"); // false
// 忽略大小写时等于“true”,则分配true值,反之分配false值
二、封装类的valueOf方法
1、Character类: valueOf(char c)
2、Float类、Double类、Boolean类: valueOf(boolean b)、 valueOf(String s)
3、Byte类、Short类、Integer类、Long类:valueOf(int i)、valueOf(String s)、valueOf(String s, int radix)
Boolean h = Boolean.valueOf("Hello"); // false
// 忽略大小写时等于“true”,则分配true值,反之分配false值
Integer i1 = Integer.valueOf(0012); // 10 数字零开头表示八进制
Integer i2 = Integer.valueOf("-00128"); // -128
Integer i3 = Integer.valueOf("10000000", 2); // 128 radix解释s时使用的基数 二进制
三、封装类的xxxValue方法,实例方法
1、Character类、Boolean类: charValue()、 booleanValue()
2、Byte类、Short类、Integer类、Long类、Float类、Double类:从 byteValue() 到 doubleValue() 6个方法
Integer i = Integer.valueOf(10);
int num1 = i.intValue(); // 10
double num2 = i.doubleValue(); // 10.0
四、封装类的parseXXX方法,解析字符串
1、Character类:没有parseCharacter(String s)方法
2、Float类、Double类、Boolean类: parseBoolean(String s)
3、Byte类、Short类、Integer类、Long类: parseInt(String s)、parseInt(String s, int radix)
int num = Integer.parseInt("1a", 16); // 26
boolean b = Boolean.parseBoolean("TRUe"); // true
// 忽略大小写时等于“true”,则分配true值,反之分配false值
五、封装类的toString方法
1、Integer类:toString(int i)、toString(int i, int radix)
2、Byte类、Short类、Long类、Float类、Double类、Character类、Boolean类:toString(boolean b)
String str1 = Integer.toString(12); // 12
String str2 = Integer.toString(12, 2); // 1100 十进制数12转换为二进制字符串
String str3 = Boolean.toString(true); // true
装箱拆箱
一、手动装箱&拆箱
- 装箱:基本类型 --> 封装类型 valueOf方法
- 拆箱:封装类型 --> 基本类型 xxxValue方法
Integer i = Integer.valueOf(666); // 666 装箱
int num = i.intValue(); // 666 拆箱
二、自动装箱&拆箱
JDK 5 新特性,如下代码体现自动装箱、自动拆箱
程序允许把一个基本数据类型添加到类似链表等数据结构中,系统会自动完成基本类型到相应对象的转换
当从一个数据结构中获取对象时,如果该对象是基本数据的封装对象,那么系统自动完成对象到基本类型的转换
Integer i = 1; // 自动装箱
i = i + 1; // 先自动拆箱再自动装箱,包装类本身不直接支持数学运算
Object o = 1; // 自动装箱 int --> Integer,Object的子类
int j= (int) o; // 自动拆箱 Integer --> int
List<Integer> list = new ArrayList<>(); // 集合元素类型只能是引用类型
list.add(1); // 自动装箱
int i = list.get(0); // 自动拆箱