Java包装类和基本类型(java包装类和基本类型的区别)
概述
场景
通过文本框获得用户输入的数字数据,因为文本框里面是书写文本数据的,所以后台得到的都是字符串。如果想要对字符串中的数字进行运算,必须将字符串转换成数字
怎么解决上述出现的问题?
Java为每一种基本类型提供了类,这些类称为基本数据类型包装类
每种包装类都提供相关的方法操作基本类型数据
包装类常见操作有
将字符串转换为对应的基本数据类型
将基本数据类型转换为字符串类型
八种基本数据类对应的包装类如下表
基本类型: boolean包装类: Boolean
基本类型: byte包装类: Byte
基本类型: char包装类: Character
基本类型: short包装类: Short
基本类型: int包装类: Integer
基本类型: long包装类: Long
基本类型: float包装类: Float
基本类型: double包装类: Double
Integer包装类概述
构造方法
Integer(int value);将一个整数value转换成整型包装类对象。
Integer(String s);将一个字符串数值转换成整型包装类对象。
成员方法
int intValue();将构造方法中的字符串转换成基本类型。
static int parseInt();把字符串转换为int值。
static String toString(int i);将整数i转换成字符串
静态成员变量
Integer.MAX_VALUE:整数最大值
Integer.MIN_VALUE:整数最小值
示例
public class IntegerDemo {
public static void main(String[] args){
// 价格字符串
String price = "200";
// 将字符串转换为整型数据
int num = Integer.parseInt(price);
System.out.println(num+1);
// 创建整型包装类对象
Integer in = new Integer(price);
int num01 = in.intValue();
System.out.println("num01 = " + num01);
// 将字符串转换为整型数据
int num02 = Integer.valueOf(price);
// 折扣字符串
String zkStr = "6.9";
// 将字符串转换小数
double d = Double.parseDouble(zkStr);
System.out.println(num * d);
boolean f = Boolean.parseBoolean("false");
System.out.println(f);
// 获得整数的最大值和最小值
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
}
}
自动装箱与自动拆箱
自动装箱和自动拆箱是JDK1.5的新特性
自动装箱和自动拆箱是Java编译器在编译期间根据语法结构来决定是否需要装箱和拆箱
自动装箱概念
Java自动将基本数据类型转换为对应的包装类类型的过程则称为自动装箱
比如:int ===> Integer double ==> Double
自动拆箱概念
Java自动将包装类类型转换为对应的基本数据类型的过程则称为自动拆箱
示例
import java.util.ArrayList;
public class IntegerDemo02 {
public static void main(String[] args){
// 定义一个基本数据类型整型变量
int a = 50;
// 定义一个包装类Integer对象
// 在JDK1.5之前
Integer b = Integer.valueOf(a);
// 在JDK1.5之后
Integer c = a; // 涉及自动装箱,等价于:Integer c = Integer.valueOf(a);
// 定义一个基本数据类型整型变量
// 在JDK1.5之前
int d = c.intValue();
// 在JDK1.5之后
int e = c; // 涉及自动拆箱,等价于:int e = c.intValue();
double dd = 8.80;
Double d1 = dd; // Double.valueOf(dd);
// 创建集合对象
ArrayList<Integer> list = new ArrayList<>();
// 在JDK1.5之前的做法
list.add(Integer.valueOf(1));
list.add(Integer.valueOf(2));
// 在JDK1.5之后的做法
list.add(3); // 自动装箱 list.add(Integer.valueOf(3));
int n = list.get(0); // 自动拆箱
}
}