JAVA里Double包装类不是不可变类吗?比如Double d=3.2后面我再写d=2.3也能改
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA里Double包装类不是不可变类吗?比如Double d=3.2后面我再写d=2.3也能改相关的知识,希望对你有一定的参考价值。
你这是进行了重新赋值了,重新赋值,但是没有修改原来d指向的内存空间的值public static void main(String[] args)
Double d = 3.2;
Double old = d;
d = 2.3;
System.out.println(old == d); // 这是不相等的
参考技术A 变量都是可以改变的,,,,,常量不可以
~ 参考技术B Double d = 3.2; 内存地址 d1
Double old = d; 内存地址 d1,
d = 2.3; 内存地址 d2
最终得到的结果 old 和 d 是两个地址
Java中的包装类
包装类
一、什么是包装类
在JAVA中,八大基础数据类型(int,float,double...
)是不具备对象的特征的,比如基本数据类型就不能调用方法,功能简单,为了让基本数据类型也具备对象的特征,就有了JAVA包装类,包装类就是:将基本数据类型包装成对象,使其具有了对象的属性和方法。 这样就可以使用方法和属性了
二、包装类的主要作用
- 将本类型与其他类型进行转换
- 将字符串与本类型及包装类型相互转换
三、如何使用包装类
基本类型 | 对应的包装类 | 对应的转换函数 |
---|---|---|
byte | Byte | byteValue |
short | Short | shortValue |
int | Integer | intValue |
long | Long | longValue |
float | Float | floatValue |
double | Double | doubleValue |
char | Character | charValue |
boolean | Boolean | booleanValue |
- 装箱和拆箱
//装箱:将基本类型转换为包装类,分为手动装箱和自动装箱
int i=10;
Integer x=new Integer(i); //手动装箱
Integer x=i; //自动装箱
//拆箱:将包装类转换为基本类型,分为手动拆箱和自动拆箱
Integer i=new Integer(8);
int x=i.intValue(); //手动拆卸
int x=i; //自动拆箱
四、包装类与字符串之间的转换
- 将包装类转换为字符串
//使用包装类的toString()方法
//使用String类的valueOf()方法
//使用一个空字符串加上基本类型
int c=10;
String str1=Integer.toString(c); //方法1
String str2=String.valueOf(c); //方法2
String str3=c + ""; //方法3
- 将字符串转换为基本类型
//调用包装类的parseXXX()方法
//调用包装类的valueOf()方法转换为基本数据类型的包装类
String str="24";
int d=Integer.parseInt(str); //方法1
int e=Integer.valueOf(str); //方法2
以上是关于JAVA里Double包装类不是不可变类吗?比如Double d=3.2后面我再写d=2.3也能改的主要内容,如果未能解决你的问题,请参考以下文章
java中怎样把double基本数据类型包装在Double类
java里double类和double的区分 是否在于一个是大写一个是小写?