java基础知识2

对象实例与对象引用

new创建对象实例,对象实例存放在堆内存中;对象引用指向对象实例,其存放在栈内存中。

一个对象应用可指向0或1个对象实例,一个对象实例可被多个对象引用指向它。

其中"=="比较的是对象引用是否相等,即指向的内存地址是否相等;"equal"比较的是值是否相等。

构造方法

特点:

1、方法名与类名一致;

2、无返回值;

3、生成类的对象时自动执行,无需调用,且其可被重载,但不能被重写。

多态

多态是指一个对象具有多种状态,具体表现为父类的引用指向子类的实例。

特点:

1、对象类型与引用类型之间具有继承或调用关系;

2、引用类型(父类)变量在调用方法时,在运行期间才能确定具体是调用的哪一个类(子类)的方法;

3、父类不能调用子类有但父类没有的方法,父类只能调用父类中声明了且被子类覆盖的方法(或未覆盖的方法);

4、若子类重写了父类的方法,真正执行的是子类覆盖的方法;若子类没有覆盖父类的方法,执行的是父类的方法。

举例:

类B继承了类A,则使用语句A a = new B()实现多态,此时新建的对象a即可调用A的方法,也可调用B的方法,若B重写了A的方法,则调用对应方法时应执行B的方法。

编译类型取决于等号左边变量的类型,运行类型执行的是等号右侧变量的类型。

接口与抽象类的异同

相同点:

1、两者都可包含抽象方法;

2、两者都不能被实例化;

3、两者都可以有默认实现的方法。

不同点:

1、接口主要用于对类的行为进行约束,当一个类实现接口时就需要有对应接口中的方法。抽象类主要用于代码复用,强调的是所属关系;

2、一个类只能继承一个类,但是可以实现多个接口;

3、接口中的成员变量只能是public static final类型的,不能被修改且必须有初始值;抽象类的成员变量默认default,可在子类中被重新定义,也可被重新赋值。

拷贝

浅拷贝

浅拷贝在堆上创建一个新的对象,如果原对象内部的属性是引用类型,则会直接复制内部对象的引用地址,即拷贝对象和原对象共用同一个内部对象。

大致原理图如下:

其中person1和person1Copy均为Person类型变量。

深拷贝

完全复制整个对象,包括这个对象所包含的内部对象,大致原理图如下:

引用拷贝

引用拷贝指两个不同的引用指向同一个对象,原理图如下:

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值