「java对象赋值有什么用」java使用什么方法赋值和取值
今天给各位分享java对象赋值有什么用的知识,其中也会对java使用什么方法赋值和取值进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java中请问将一个对象赋值给另一个同类对象,这两个对象是否指向同一堆内存?
- 2、在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象
- 3、c#或java里子类对象赋值给父类有什么用,举几个例子啊。
- 4、java对象赋值
- 5、在java中声明一个对象时,这种格式中的字符串赋值给了谁?有什么用?
Java中请问将一个对象赋值给另一个同类对象,这两个对象是否指向同一堆内存?
是的。
对象是引用类型的,所以如果把一个对象赋值给另一个变量,它实际上只是把内存地址赋值了。也就是说,如果对象都是同一地址,那么改变该地址的值,另外一个同地址的对象也会改变。
首先可以使用构造器的参数区别开两个对象,如果要直接赋值而不互相影响,那么可以使用clone(浅复制、深复制包含内部引用等)方法如Person newPerson=(Person)oldPerson.clone();这样新旧对象是2个对象而不是共用一个地址的2个对象。
堆和栈
内存管理在Java语言中是JVM自动操作的,当JVM发现某些对象不再需要的时候,就会对该对象占用的内存进行重分配(释放)操作,而且使得分配出来的内存能够提供给所需要的对象。
在一些编程语言里面,内存管理是一个程序的职责,但是书写过C++的程序员很清楚,如果该程序需要自己来书写很有可能引起很严重的错误或者说不可预料的程序行为,最终大部分开发时间都花在了调试这种程序以及修复相关错误上。
以上内容参考:百度百科-java内存模型
在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象
C++是这样,但是JAVA是没有生成新对象的,除非用关键字new,如果是已经存在的对象也不像C++那样拷贝一份,而是直接指向该对象,对象自始至终只有一个
c#或java里子类对象赋值给父类有什么用,举几个例子啊。
里氏替换原则:
定义一:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。
定义二:所有引用基类的地方必须能透明地使用其子类的对象。
大概的要求是:
1、父类对象指向子类实例,向上转型和向下转型是里氏替换的一种应用。
2、子类必须完全实现父类的方法,父类对象出现的地方都可以用子类对象进行替换。
这是里氏替换的主要内涵,下面对这两种体现分别进行代码举例。
定义一个抽象类Person:
public abstract class Person{
public abstract String getDetails();
}
用Student类来继承Person
public class Student extends Person{
private String stuName;
private int age;
private double score;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String stuName, int age, double score) {
super();
this.stuName = stuName;
this.age = age;
this.score = score;
}
@Override
public String getDetails() {
// TODO Auto-generated method stub
return this.stuName + this.age + this.score;
}
}
在Test类里面可以用:
Person person = new Student();//这是向上转型。
也可以定义:
Student student = new Student(“stu”,19,99);
可以将student对象用在所有应该使用Person类型的地方。
Private ListPerson person = new ArrayListPerson();
Person.add(student);
java对象赋值
java中对象使用等号赋值其实还是同一个对象,当你使用new后才会生成一个新对象。
如过对象已经存在内存中,那么使用等号赋值,也只是使指针指向存在的对象的地址值。
在java中声明一个对象时,这种格式中的字符串赋值给了谁?有什么用?
关于这个问题,
个人觉得不必要去深究,
Java不是C,
通常是不需要对底层(如内存,寄存器)进行严格控制的,
当然用比较死板的自然语言解释如下:
1.
创建字符串(字符序列)常量对象
"java"
,
并存放在常量区
----
"
java";
2.
申明字符串对象引用,
并取名为
"str1"
----
String
str1;
3.
将引用指向常量对象在内存中的起始地址
str1
=
"
java";
java对象赋值有什么用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java使用什么方法赋值和取值、java对象赋值有什么用的信息别忘了在本站进行查找喔。
发布于:2022-11-29,除非注明,否则均为
原创文章,转载请注明出处。