《2022年引用数据类型和基本数据类型知识 .pdf》由会员分享,可在线阅读,更多相关《2022年引用数据类型和基本数据类型知识 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、引用数据类型和基本数据类型的一些区别首先先举几个引用数据类型的例子:String StringBuffer 类(包括自己定义的一些类和包中有的类)integer 等下面的是基本数据类型Int double char Boolean 等表面上可以看出两个区别(单从类的角度来看):1.引用数据类型必须要实例化之后才可以使用,(String 和integer 除外)注:String 是一个很特殊的引用数据类型Inteter 是在在使用的过程中会自动的装箱和拆箱例如:StringBuffer sb=new StringBuffer();2.引用数据类型或多或少的会有一些属性和方法例如:类里面包含的就是
2、属性和方法,比如StringBuffer 里面就有append()方法还有 charAt()方法深入点看:3.引用数据类型是指针的指向,基本数据类型则在内存中直接得到1.下面一个列子是一个值传递的过程例如:下面是一个类的方法publicvoid changeNumber(int a,int b)int temp=a;a=b;b=temp;System.out.println(交换后的两数 a=+a+b=+b);在main 方法中 publicstaticvoid main(String args)/实例化的一个过程Exam9 ex=new Exam9();int a=10;int b=5;Sy
3、stem.out.println(交换前的两数 a=+a+b=+b);/调用交换的方法ex.changeNumber(a,b);System.out.println(方法调用后的两数 a=+a+b=+b);名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 4 页 -运行的结果是:交换前的两数 a=10 b=5 交换后的两数 a=5 b=10 方法调用后的两数 a=10 b=5 这个是许多人都会犯的错误,包括我也犯了这个错误就是:方法调用后的两数 a=5 b=10 解释:a变量和 b变量在内存中的值已经有了,并且值是固定的基本数据类型的传递是一个值传递的过程2.下面的一个例子是一个引
4、用类型的传递里面有一个user 类:里面有一个属性:String name=“tom”;publicvoid changeName(User user,String name)user.name=name;User user=new User();System.out.println(更改前的用户姓名:+user.name);/调用更改名字的方法ex.changeName(user,jack);System.out.println(更改后的用户姓名:+user.name);结果是:更改前的用户姓名:tom 更改后的用户姓名:jack这个是个引用的数据类型,名师资料总结-精品资料欢迎下载-名师精
5、心整理-第 2 页,共 4 页 -引用数据类型就是一个指针的一个指向。4.这个例子也是一个引用数据类型的例子publicvoid change(StringBuffer bufferA,StringBuffer bufferB,StringBuffer bufferC)bufferA=new StringBuffer(AA);bufferB.append(B);bufferC=bufferA;bufferC.append(C);System.out.println(方法中:);System.out.println(bufferA);System.out.println(bufferB);Sys
6、tem.out.println(bufferC);/*paramargs*/publicstaticvoid main(String args)StringBuffer bufferA=new StringBuffer(A);StringBuffer bufferB=new StringBuffer(B);StringBuffer bufferC=new StringBuffer(C);Exam10 ex=new Exam10();名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 4 页 -ex.change(bufferA,bufferB,bufferC);System.out.
7、println(方法外 );System.out.println(bufferA);System.out.println(bufferB);System.out.println(bufferC);运行的结果:方法中的值大家都会的:方法中:AAC BB AAC 方法外A BB C关键是方法外面的System.out.println(bufferA);这个比较难理解:因为在方法体内部,有实例化了一个A对象,所以在方法里面的bufferA 指向的是方法里面的A 对象。和外面的没有联系。所以外面的还是指向原来的A对象,所以结果是A。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 4 页 -