2021-05-12 JAVA基础知识

JVM主要的三块内存:栈内存,堆内存,方法区。

方法区放代码片段  classloader将字节码文件装载到JVM中。

栈:在方法被调用时,方法需要的内存空间在栈中分配。栈存储局部变量。

堆:实例变量,在类中定义的,开辟在堆内存。存储对象以及对象的实例变量。

访问实例变量  引用.实例变量名。System.out.println(s1.no)

保存对象内存地址的变量叫引用。对象和引用区别。引用是 :但凡是变量,该变量保存了内存地址,指向堆内存当中的对象。对象是new创建的,在堆内存中存储。

抽象类无法创建出对象, 类在现实世界中是不存在的。抽象类是类和类之间有共同特征,将这些有共同特征的类再进一步抽象形成了抽象类。类本身不存在的,所以抽象类无法创建对象。类和类之间具有共同特征叫抽象。类到对象叫实例化,对象到类是抽象。抽象类的子类可以是抽象类。

抽象类属于引用数据类型,不属于基本数据类型。抽象方法,没有实现的方法,没有方法体的方法。

方法重写:重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

(1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。
(2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写(Overriding)。
(3)方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。
方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。

继承:子类继承父类代码,可以得到复用。重要作用为继承有方法的多态和覆盖机制。

superclass父类 subclass子类  JAVA只支持单继承,不支持多继承。

特点:没有方法体,以分号结尾。抽象类中不一定有抽象方法。

abstract class Account{}

public abstract void doSome();没有实现的方法,只是抽象的行为。

接口:interface A    

接口只允许出现常量和抽象方法。接口不能有方法体。接口是一种引用数据类型,支持多继承。元素都是public修饰,接口中抽象方法中public abstract 可以省略】

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值