java初学者关于new对象的问题

问题描述

java初学者关于new对象的问题

Echo e1=new Echo();

Echo e2=new Echo();

 Echo e1=new Echo();
 Echo e2=e1;

有什么不同

解决方案

第一种,e1和e2是两个不同的对象,第二种,e1和e2是同一个对象。
通俗点讲,第一种中,对e1操作基本不会对e2有影响,同理对e2操作基本也不会对e1有影响;第二种中,对e1操作和e2操作效果是一样的,他们都是同一个东西。

解决方案二:

第一种方式,两个对象存储地址不同
第二种方式,两个对象存储地址相同

解决方案三:

上面的是两个对象,下面的是一个对象,两个变量引用,多看看基础的,堆和栈

解决方案四:

e1与e2是Echo对象的两个实例,它们的值存储在不同的栈空间。e1的变化不会影响e2,反之也是。

解决方案五:

e2是e1的另一个引用,类似于指针的指针****

时间: 2024-09-11 13:00:26

java初学者关于new对象的问题的相关文章

对象-java初学者关于引用数据类型 强制转换的问题

问题描述 java初学者关于引用数据类型 强制转换的问题 class TestDemo7{ public static void main(String[] args) { Animal a=new Dog("旺财",2); System.out.println("名字:"+a.getName()); System.out.println("年龄:"+a.getAge()); a.eat(); Dog dog=(Dog) a;// 强转为Dog类

Java初学者入门需掌握的30个基本概念

初学|概念 基本概念 1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大限度上提高复用率. 2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance). 3.封装:就是把数据和行为

java初学者求教:关于线程安全问题

问题描述 java初学者求教:关于线程安全问题 List list = new ArrayList(); list = Collections.synchronizedList(list); 这时list是线程安全的,那么当我用增强for循环遍历list, 并且使用list的remove方法时,是不是就不安全了? 另外,如果list集合中存放的是一些带有图片的对象,比如dog public void paintTest(Graphisc g){ for(dog d:list){ g.drawIm

java代码-java初学者提问 在类中 用static成员变量实例化自身类 程序的执行顺序过程是怎样的?

问题描述 java初学者提问 在类中 用static成员变量实例化自身类 程序的执行顺序过程是怎样的? class Demo03 { public static void main(String[] args) { A.show(); } } class A { //构造方法 A(){ System.out.println("构造方法执行"); System.out.println(b); System.out.println(c); } static A a=new A(); sta

java 传参 编程-【Java初学者求助】,谢谢main方法里面传参的问题

问题描述 [Java初学者求助],谢谢main方法里面传参的问题 刚开始接触Java时间不久,谢谢各位帮忙.我想要得到的结果是:输入身高和体重,然后算出来exp是否合理,谢谢,package forth; import java.io.*; public class Person { float weight; float height; String check(){ float exp = weight/(height*height); if(exp<18) return ""

JAVA初学者如何学习

问题描述 java初学者要如何学习JAVA,本人是一点JAVA基础都没有,学习的流程是怎么样的,先要学习什么课程? 解决方案 解决方案二:找本Java基础的书,死肯上面的内容,在电脑上抄里面的程序,然后编译运行,查看结果,小小的修改程序中的内容,再编译,运行,查看结果,对比.最笨的方法,有可能就是最锋利的剑解决方案三:先学面上的,在整底层-解决方案四:<SCJP考试指南>推荐LZ看一下,基本可以速成-解决方案五:尚学堂视频 看看,电驴上有的,嘿嘿,祝楼主成功解决方案六:JavaLearning

疑惑:java初学者

问题描述 java中的main为什么要用static修饰呢还有main为什么在类定义里面呢? 解决方案 解决方案二:java的语法规则,必须从main(String[]args)开始定义为static,因为刚进入main方法时,没有任何实例初始化,static修饰的变量和方法在类加载的时候便加载了所以static修饰main方法,可以在不new实例的情况下自己执行解决方案三:引用1楼magi1201的回复: java的语法规则,必须从main(String[]args)开始定义为static,因

java笔记九:对象序列化与反序列化

在java程序运行过程中,有许多的对象同时存在,但是程序结束运行或者JVM停止运行时这些对象都会消失.如何将这些对象保存起来以便下一次 再将这些对象读入内存呢?或者如何将某些对象通过网络传到另一端的java程序?实施对象的这种操作叫做对象的序列化(或者叫做持久化),重新读入内存叫 做反序列化. 基本数据类型的包装类和所有容器类都可以被序列化.用户自定义的类默认是不可以被序列化的.如果想要自己定义的类可以序列化就必须让这个类实现java.io.Serializable接口. 下面看一个Demo:

Java利用序列化实现对象深度clone的方法_java

本文实例讲述了Java利用序列化实现对象深度clone的方法.分享给大家供大家参考.具体实现方法如下: ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(byteOut); out.writeObject(obj); ByteArrayInputStream byteIn = new ByteArrayInputStream(by