当前位置:首页 » 编程语言 » java对象引用对象

java对象引用对象

发布时间: 2022-12-27 05:12:50

‘壹’ java中,"对象引用"和"对象"问题

a只是保存了引用,也就是对象的地址,真正的对象就是new出来的那个
所以a 可以指向new a 也可以指向new b, 运行时会根据地址获取真正的对象

‘贰’ java 对象引用

java的内存有堆和栈之说,对象放在栈里,而对象引用的变量或是自己定义的变量都放在一个堆里,也就是对象和变量不是在一起放着的,而是一一对应的关系。
举个例子:
nb1.i这个对象引用的变量i在1号"堆"里
nb2.i这个对象引用的变量i在2号"堆"里
nb1这个对象在1号栈里,
nb2这个对象在2号栈里.
这样是形成了1号栈引用1号堆里的数据;而2号栈引用的是2号堆里的数据。

最后nb1=nb2,就是两个对象同时指向nb2所引用的堆里的变量。
因为nb2.i本来等于=33,那么就会把nb1.i给回收掉,而nb1.i这时候就不是22了,而是33.
这两个对象都同时引用的是被改变有的变量.也就是33.所以现在对那个栈进行数据更改的话,那么其实都是对两个对象进行了更改。

图解:
本来是
1栈=========================>1堆
2栈=========================>2堆
最后是
1栈
===================》1堆(i=33)
2栈

‘叁’ Java中对象和对象引用的区别

对象在内存的一个屋子里存放(内存像很多屋子). 对象引用值,就是屋子的门牌号,通过这个门牌号可以找到这个屋子.(并不单纯是对象内存地址) 对象属性值,就...

‘肆’ java 中 什么是引用对象

Java中基础类型(如int、long、short、double、byte、char、float)是传值,其他类型或自定义类型都是传引用。

举个例:
public class A {
private int a;
public void setA(int a) {

this.a = a;

}

public static void main(String[] args) {
A obj = new A();
modifyA(obj);//这里obj就是引用对象,方法modifyA对obj的修改不会影响obj对象所在内存地址。
}

public void modifyA(A a) {
a.setA(10);
}
}

‘伍’ java中对象和对象的引用的区别

1.什么是对象?
在Java中有一句比较流行的话,叫做“万物皆对象”,这是Java语言设计之初的理念之一。要理解什么是对象,需要跟类一起结合起来理解。下面这段话引自《Java编程思想》中的一段原话:
“按照通俗的说法,每个对象都是某个类(class)的一个实例(instance),这里,‘类’就是‘类型’的同义词。”
从这一句话就可以理解到对象的本质,简而言之,它就是类的实例,比如所有的人统称为“人类”,这里的“人类”就是一个类(物种的一种类型),而具体到每个人,比如张三这个人,它就是对象,就是“人类”的实例。
2.何谓对象引用?
我们先看一段话:
“每种编程语言都有自己的数据处理方式。有些时候,程序员必须注意将要处理的数据是什么类型。你是直接操纵元素,还是用某种基于特殊语法的间接表示(例如C/C++里的指针)来操作对象。所有这些在 Java 里都得到了简化,一切都被视为对象。因此,我们可采用一种统一的语法。尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“引用”(reference)。”
这段话来自于《Java编程思想》,很显然,从这段话可以看出对象和对象引用不是一回事,是两个完全不同的概念。举个例子,我们通常会用下面这一行代码来创建一个对象:
Person person = new Person("张三");
有人会说,这里的person是一个对象,是Person类的一个实例。
也有人会说,这里的person并不是真正的对象,而是指向所创建的对象的引用。
到底哪种说法是对的?我们先不急着纠结哪种说法是对的,再看两行代码:
Person person;
person = new Person("张三");
这两行代码实现的功能和上面的一行代码是完全一样的。大家都知道,在Java中new是用来在堆上创建对象用的,如果person是一个对象的话,那么第二行为何还要通过new来创建对象呢?由此可见,person并不是所创建的对象,是什么?上面的一段话说的很清楚,“操纵的标识符实际是指向一个对象的引用”,也就是说person是一个引用,是指向一个可以指向Person类的对象的引用。真正创建对象的语句是右边的new Person("张三");
再看一个例子:
Person person;
person = new Person("张三");
person = new Person("李四");
这里让person先指向了“张三”这个对象,然后又指向了“李四”这个对象。也就是说,Person person,这句话只是声明了一个Person类的引用,它可以指向任何Person类的实例。这个道理就和下面这段代码一样:
int a;
a=2;
a=3;
这里先声明了一个int类型的变量a,先对a赋值为2,后面又赋值为3.也就是说int类型的变量a,可以让它的值为2,也可以为3,只要是合法的int类型的数值即可。
也就是说,一个引用可以指向多个对象,而一个对象可不可以被多个引用所指呢?答案当然是可以的。
比如:
Person person1 = new Person("张三");
Person person2 = person1;
person1和person2都指向了“张三”这个对象。

‘陆’ 什么是对象引用JAVA

你这方面的问题太多了,加295663995.
对象引用也就是说
指向对象那堆空间的首地址的指针。
Person
p
=
new
Person();
new
Person();创建了一个Person对象,这个对象赋值给了p
p获取的不是Person对象,而是Person对象的首地址。
p就是
new
Person();对象的引用。

‘柒’ java引用对象

1.我猜你是想问==和equals的区别,==判断对象是否是同一个引用,也就是说说他们在内存中是否为同一地址。在代码中两个对象都是通过new实例化的,他们在内存中当然不会在同一个地方。equals在没重写之前的作用和==是相同的。在object类的equals方法中写的比较明白:

2.Departemnt dm = (Department)obj;的含义是将Object类型的实例obj强转成Department的实例,并且赋值给dm;

3.建议,将equals方法和==的概念彻底搞明白之后,你说的这些就都不是问题了。

祝你学习愉快

‘捌’ Java中对象和对象引用的区别

对象是堆内存的一块区域,它负责存储具体的数据;
对象引用是栈内存的一块区域,它存的是对象的地址;
Java中我们无法直接操作堆内存里的对象,都是通过栈内存的对象引用来操作的。

‘玖’ java中,类的对象,对象的实例,对象的引用,三者如何进行区分,有何区别呢

没有“对象的实例”这种叫法,正确的叫法是“类的实例”。


没有学过java,给你说说我的理解吧!


在java和C++这类语言中,对象(对象和实例是同义词)实际上就是内存中的存储数据一块固定存储空间,并且对象还有一系列的操作这块存储空间的方法。


对象的引用相当于对象的名字,名字与对象本身的区别就好比你的名字和你本人的区别。java里使用对象只能通过引用的方式,基本数据类型的变量和CC++的变量规则一样。


如:

UserTypeut=newUserType();//ut是引用,实际的对象在内存里。
ut=newUserType();/*现在ut是另一个对象的引用,先前的对象被垃圾回收了(因为先前的对象不能被再次使用了)。*/
UserTypeut2;//定义了一个引用ut2,他不引用任何对象,不能使用。。。。
ut2=newUserType();//然ut2成为一个对象的引用。
UserTypeut3=newUserType();
UserTypeut4=newUserType();
ut3=ut4;//现在ut3引用ut4的对象,这里不是赋值。。。
inta=5;
intb=4;
a=b;//这里是赋值。ab依然引用不同的对象


类型转换就是把一种类型的对象当做另一种类型的对象来使用。一些类型转换会自动发生,另一些需要强制类型转换,强制一般都会出问题,自动的也需要注意。


以上纯属个人理解,楼主慎读之。。。。

‘拾’ 在Java中要引用对象的属性和方法,需要怎么实现

属性:第一种就是自己定义一个public的公共属性,然后调用就行了(不安全),第二种就是创建一个private的私有的属性,生成公共的set和get方法(封装),然后调用;
方法:同类中方法为静态方法可以直接调用,不为静态方法需要new和不同类中要new出对象,然后调用其方法;
左上角有我头像,有很多朋友在一起相互交流学习。

热点内容
碧蓝航线pc挂机脚本 发布:2024-05-19 02:30:03 浏览:588
脚本fir 发布:2024-05-19 02:28:57 浏览:260
阿里云独享服务器 发布:2024-05-19 02:23:54 浏览:253
织梦源码ga 发布:2024-05-19 02:23:20 浏览:571
java文件名后缀 发布:2024-05-19 02:14:39 浏览:956
快手点榜脚本 发布:2024-05-19 02:08:44 浏览:163
pythonforinkeys 发布:2024-05-19 01:55:44 浏览:793
电脑如何局域网共享文件夹 发布:2024-05-19 01:25:01 浏览:69
手机存储越大性能越好吗 发布:2024-05-19 01:14:28 浏览:177
我的世界hyp服务器怎么玩 发布:2024-05-19 00:51:25 浏览:801