Double类是基本数据类型double的包装类,该类包含一个double类型的成员变量,该类在Java.lang包下。
Double对象的创建
创建Double对象非常简单,可以通过Double类型和字符串类型来创建Double对象。创建代码如下:
Double number1 = new Double(20.6);
Double number2 = new Double("35.19");
Double number3 = Double.valueOf(310.2);
Double number4 = Double.valueOf(80.92);
Double number5 = Double.valueOf("80.5");上面代码创建了5个Double对象,分别是number1、number2、number3、number4、number5。
number1使用new运算符实例化Double对象,传入的参数是小数。
number2使用new运算符实例化Double对象,传入的参数是数字字符串。
number3和number4使用Double类的静态方法valueOf()实例化Double对象,传入的参数是小数。valueOf()方法在实例化Double对象时,会对传入的数值大小进行判断,当数值范围在-128至127之间时,它会直接返回在在内存池中Double对象的引用。只有数值范围不在-128至127之间时。它才会在堆中分配内存,创建一个新的Double对象,并返回对象的引用。
Number5使用Double类的静态方法valueOf()实例化Double对象,传入的是参数是数字字符串。
返回基本数值数据类型
实例化的Double对象可以返回基本数据类型表示的数值,返回的基本数据类型包括int、double、long、byte等类型。
Double number1 = new Double(20.86); int intNum = number1.intValue(); double doubleNum = number1.doubleValue(); long longNum = number1.longValue(); byte byteNum = number1.byteValue();
Double对象提供了intValue()方法返回int类型的数值;doubleValue()方法返回double类型的数值;byteValue()方法返回byte类型的数值; longValue()方法返回long类型的数值。
Double对象和String对象的转换
在实际编程中,经常需要在数值和字符串之间进行类型转换。Double对象提供了toString()方法,返回表示该Double数值的String对象。
Double number1 = new Double(20); String strNumber = number1.toString();
number1调用toString()方法返回表示该Double数值的String对象。
Double对象同时提供了parseInt()方法,将字符串对象转换为double类型,parseDouble()方法是Double类的静态方法,可以直接通过类名调用。
double dValue = Double.parseLong("230");上面的代码调用Double类的parseDouble()方法,将字符串转换为double类型。
判断两个Double对象是否相等
Double类重写了Object类的equals()方法,可以判断当前Double对象表示的数值与指定的Double对象表示的数值是否相等。
Double number1 = new Double(20);
Double number2 = new Double("35");
boolean bEaual = number1.equals(number2);number1调用equals()方法判断与number2的表示的数值是否相等。
判断Double类型取值范围
Double类提供了四个常量来表示double类型取值范围、double值的二进制位数、Class实例类型。
MAX_VALUE
double类型可取的最大值,约1.8E308。
MIN_VALUE
double类型可取的最小值,即4.9E-324。
SIZE
double值的二进制位数。
TYPE
Class实例类型,该值为double。
案例1:用不同方式创建Double对象、字符串和Double类型的转换、获取double的值、判断两个Double对象的值是否相等、输出double取值范围的最大值和最小值。
在PBaseUnit15项目unit包下,创建Java类DoubleSample。代码如下:
/**
* @Title: DoubleSample.java
* @Package unit
* @Description: Java基础知识课程案例
* @author 编程训练营
* @date
* @version V1.0
*/
package unit;
/**
* @ClassName: DoubleSample
* @Description: 基本数据类型包装类(Double类)案例1
* @author 编程训练营
* @date
*
*/
public class DoubleSample {
/**
* @Title: main
* @Description: Java程序入口main方法
* @param @param args 参数
*
* @return void 返回类型 @throws
*/
public static void main(String[] args) {
// 使用new运算符创建,传入参数为小数
Double number1 = new Double(20.15);
// 使用new运算符创建,传入参数为数字型字符串
Double number2 = new Double("35.6");
// 使用valueOf方法创建,传入参数为小数
Double number3 = Double.valueOf(19.9);
// 使用valueOf方法创建,传入参数为数字型字符串
Double number4 = Double.valueOf("22.3");
// Double对象转换为字符串
System.out.println("number1的值为:" + number1.toString());
System.out.println("number2的值为:" + number2.toString());
System.out.println("number3的值为:" + number3.toString());
System.out.println("number4的值为:" + number4.toString());
// 字符串转换为Double类型
double dValue = Double.parseDouble("230.69");
System.out.println("dValue的值为:" + dValue);
// 比较两个Double的值是否相等
boolean bEaual = number1.equals(number2);
if (bEaual) {
System.out.println("number1等于number2");
} else {
System.out.println("number1不等于number2");
}
// 输出Double取值范围
System.out.println("double类型可取的最大值为:" + Double.MAX_VALUE);
System.out.println("double类型可取的最小值为:" + Double.MIN_VALUE);
}
}程序执行结构如下图所示:
