Java中的对象和引用类型,以及引用类型变量

来源:百度知道 编辑:UC知道 时间:2024/05/22 23:46:15
在网上查了很多概念,还是有一点不明白:Java中的数据类型有两种,分别是基本(原始)数据类型和引用数据类型,这样理解对吗?如果对,那么类,或者说类的实例(对象),算引用类型吗(我知道指向对象的内存地址的变量叫引用类型变量,那对象叫什么,算是什么类型,我就是想知道确切的“叫法”)?还有一个问题,为基本数据类型变量赋值后,这个值存放在内存的栈中,那么要通过这个基本数据类型变量的名字找到栈中这个地址,然后得到它的值,这就是说系统还要为这个基本数据类型变量的名字开辟存储空间,好存储它的值的地址,这样理解对吗?那这个空间又在哪?

问得很多,又罗嗦,恳请各位大人教教我,谢谢了!!
谢谢1、2楼兄弟的提醒,多动手是王道,3楼的兄弟,您的意思我懂~~呵呵,4楼的兄弟,我看到有书上写,对于基本类型的例子,如int a = 1;int b;b=a此时是直接把a的值也就是地址赋给b(而不是“1”),和你说的不一样啊,就是说基本类型存储在栈中,但是存的还是地址值,这个地址指向java的常量池,究竟哪个是对的??请大家不吝赐教啊,谢谢谢谢~~!!

对于对象类型的数据,引用就相当如对象指针,保存的那个对象的地址,使用的时候根据地址找对象。

对于普通类型的数据,这个引用就是直接存放那个数据了。使用就不用像对象那样去找了。

对象引用是中介,普通数据引用真正的客户。

int a = 1;int b;b=a此时是直接把a的值也就是地址赋给b(而不是“1”)。。 b =a ,是传值不是地址,对象是传地址。怎么证明这点很简单,你改变a的值,如果b变了就是传地址,否则就是值了。

Java中的数据类型:原始类型、引用类型
引用类型类似C语言中的指针,不过在这里叫做地址指向。
引用类型为相同的对象开辟的是同一个地址块,所以才叫引用,当一个值发生变化时其它引用的对象的值也就同时发生变化。原始刚好与其相反,它是为每个对象开辟一块内存地址,所以各不干扰。

基本数据类型包括:byte,short,int,long,float,double,char
引用数据类型:class,interface,array
看样子你是对它们的概念不是很理解,举实例帮你区别一下
对于基本类型举个例子:如int a = 1;int b;b=a此时是直接把a的值也就是1赋给b。(int b时系统在栈中开辟空间,b=a时把1写入)
而对于引用数据类型:class person{};person a = new person();person b = a;此时是将b的地址赋给a(系统为b在栈中开辟一空间存储a的地址,而a和b内的数据都是放在由它们在栈中的地址指向堆中的空间中的)
喔~说了这么多你明白了吗?哈

这些东西 下手写几个简单的小程序慢慢理解一下 你这样搞 很难明白的

猫科动物是类
猫是对象,老虎是对象,豹是对象
明白吗?