ZKX's LAB

java string是引用类型吗 怎样理解java中引用类型String

2020-10-02知识6

java里String类型可以直接赋值,保存的是值还是引用的地址? 首先告诉你,java里的String类型保存的就是引用地址,就像你下面说的,如果用String a=\"你好\"这种方式赋值的话,a里会保存一个地址,双引号字符串是常量字符串,在java文件编译的时候就放在虚拟机的常量池中,“你好”的真正位置也是在常量池中,另外还有一种方式:String a=new String(\"你好\"),如果这样写就和第一种不一样了,这个对象是在程序运行时创建,不是创建在常量池而是和其他java对象一样在java堆上创建,因此它的地址和第一种的不用。第二个问题,String和int直接赋值的区别。首先,最大的区别,一个是对象,一个是数值,对象可以为null,数值却必须有值,哪怕你没赋值,系统也会自动赋值为0。int b=3是直接在内存空间分配了一块空间b内容是3,b的内容是可变的,可以变为5,6…而String对象是不可变的,“你好”实际是在堆中存在的,把引用给了a,如果String a=\"bbb\"则是把另一个新的对象\"bbb\"的地址引用给了a,之前的对象“你好”是没有改变的。第三个问题,为什么引用类型赋值不能像基本数据类型呢?因为引用类型远比基本数据类型复杂啊,基本数据类型只有数值、字符、布尔三种数据类型,可以很简单得表示出来,像2、'a'、true这样,赋值也自然容易,。

Java中String是引用类型,是属于类吗? 是的,String是类。String str=new String(\"str1\");str=\"str2;自动装箱与拆箱,java1.5之后就支持了

java string是引用类型吗 String是引用数据类型,因为它是类类型,而类类型都是引用数据类型。引用数据类型就三种,类似C/C++的指针,它以特殊的方式指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址,想具体知道看看数据结构就好了。1.Java的八大基本数据类型为:整型byte字节型1字节 8bit 最大存储数据量是255,存放的数据范围是-128~127之间short短整型2字节 16bit最大数据存储量是65536,数据范围是-32768~32767之间int整型4字节 32bit最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1long长整型8字节 64bit最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1浮点型float单精度4字节 32bit数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或Fdouble双精度8字节 64bit数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加字符类型char字符型用单引号布尔类型boolean布尔型true/false(只有真假两种结果)数据值域的知识说明:1.一个bit是计算机考研存储的最小的数据单位。即1位,只可能是0或1.2.一个byte由八个bit组成,即八位,可以表示256个整数值,又由于byte在Java中有。

#string#赋值#引用类型

随机阅读

qrcode
访问手机版