面向对象10

面向对象10

1、内存管理:由jvm管理
  • 堆:

    • 存储的是new出来的对象和实例变量(数组即其元素)

    • 垃圾,即没有任何引用指向的对象

      垃圾回收器(GC)jvm自带的机制会不定时到内存中清理垃圾,回收过程不可见,通过调用System.gc()方法提醒GC回收(并不是手动回收,调用方法也未必马上回收)

    • 实例变量的生命周期:

      创建对象时生成于堆中,在对象被GC回收时一同被回收

    • 内存泄漏:本应被回收的对象没有被回收,持续的泄漏会导致内存持续被占用,严重的会导致系统崩溃

      不再使用的对象应将其引用设null

  • 栈:

    • 存储正在调用的方法的局部变量(方法参数)

    • 调用方法时,会在栈中为方法分配对应的栈帧,

    • 栈帧中存储局部变量(包括方法的参数),

      方法调用结束时,栈帧被自动清除,局部变量一并被清除

    • 局部变量的生命周期:方法被调用时创建,并存储在栈帧中,方法被调用结束时,和栈帧一起被清除

  • 方法区:

    • 存储.class字节码文件(包括静态变量、所有方法)
    • 方法只有一份,对象调用方法时,通过this来区分不同的对象
2、面向对象三大特征
  • 封装

    • 类的封装:封装共同的属性和行为,,作为整体操作
    • 业务逻辑的封装:将不同的功能封装在一个个方法中,需要时调用
    • 访问控制修饰符:数据(属性)私有化,封装具体的访问权限,保护数据安全
  • 继承

    • 作用:代码复用

    • 超类:所有子类共有的方法和属性

      接口:部分类共有的方法和属性

      派生类:特有的行为和属性

    • 单一继承、多接口实现,具有传递性

  • 多态

    • 所有对象都是多态的,通过向上造型来体现

      所有抽象的方法都是多态的,通过方法的重写来实现

    • 向上造型、强制类型转换(向下造型)、instanceof判断

补充:
  1. 成员变量是有默认值的(在调用成员变量时,需要new对象,赋默认值),局部变量没有默认值。故一个不需要在声明时初始化,另一个需要。
  2. 面向对象:即是一种以对象为单位来思考、解决问题的编程思想
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值