ZKX's LAB

引用数据类型参数 基本数据类型和引用数据类型的区别

2020-07-26知识7

怎样区分java中的基本数据类型和引用类型,怎样区分java中的基本数据类型和引用类型?在C#的数据类型中,什么属于值类型,什么属于引用类型 值类型:整数,浮点数,高精度浮点数,布尔,字符,结构,枚举 引用类型:对象(Object),字符串,类,接口,委托,数组 除了值类型和引用类型,还有一种数据类型是空类型。基本数据类型和引用数据类型的区别 一、从概念上说:基本数据类型:变量名指向具体的数值引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值二、从内存构建方面来说:基本数据类型:变量在声明之后java就会立刻分配给他内存空间引用数据类型:它以特殊的方式(类似C指针)指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址。三、从使用方面来说:基本数据类型:使用时需要赋具体值,判断时使用“=”号引用数据类型:使用时可以赋null,判断时使用equals方法基本数据类型和引用数据类型作为方法参数,在传递时有什么不同之处 基本数据类来型按值传递,相当于复制了一份过去,引自用数据按地址传递,两个地方根据地址使用同百一份数据,如被更改,则原有数据也会更改,例度如数组,在传递数组时,如果接收到数组问之后,对其修改,那么原来的数组也会同时修改,答因为它们指向同一个地址!什么叫引用数据类型? 引用类型是被引用的类型,对象不一定是引用类型。比如Objectobj=newObject();obj这个对象就不是引用类型,因为obj就是创建的对象的名,又如WeakRefrenceobj2=newWeakRefrence(obj)这个弱引用obj2就是引用类型java中的引用数据数据类型是怎样的? java中有两种数据类型:基本类型和引用类型。基本类型有8个:整数类型 byte、short、int、long浮点数类型 float、double字符型 char布尔类型 boolean引用类型包括三种:类 Class接口 Interface数组 Array基本类型是通过诸如 int a=5;long b=6L;的形式来定义的,称为自动变量,自动变量存放的是字面值,不是类的实例,它存放在内存的堆栈中,数据大小和生存期必须是确定的,存取速度比较快,在堆栈中的字面值可以共享,也就是说我们定义一个int a=5;然后又定义了一个int b=5;这时a与b在内存中指向的是同一个字面常量。引用类型一般是通过new关键字来创建,比如Integer num=new Integer(3);它存放在内存的堆中,可以在运行时动态的分配内存大小,生存期也不必事先告诉编译器,当引用类型变量不被使用时,Java内部的垃圾回收器GC会自动回收走。引用变量中存放的不是变量的内容,而是存放变量内容的地址。在参数传递时,基本类型都是传值,也就是传递的都是原变量的值得拷贝,改变这个值不会改变原变量,而引用类型传递的是地址,也就是参数与原变量指向的是同一个地址,所以如果改变参数的值,原变量的值也会改变。这点要注意。在java中,8种基本类型在java。

#引用类型#变量#内存类型

随机阅读

qrcode
访问手机版