笔记-Java基础(1)-<面向对象的特性><局部变量和成员变量>

1. 面向对象和面向过程的区别#

面向对象 面向过程
特性 封装、继承、多态 功能模块化,代码流程化
优点 易于维护、复用和拓展;低耦合 性能高
  • 面向对象:认为世界由对象组成,对象与对象之间通过方法进行交互。以对像为中心,按功能划分问题。
    优点:①结构清晰;②重用性高,易拓展、易维护
    缺点:①性能较低(因为类的调用需要实例化,开销较大)

  • 面向过程:以事件(过程)为中心,将事件分解为一系列步骤,按顺序调用函数实现步骤。
    优点:①编程流程化,任务明确;②效率性能高
    缺点:①不适于处理复杂问题;②代码重用性低、拓展能力差,不便于维护

2. 面向对象的三大特性#

  • 封装:把数据和操作数据的方法封装起来,对数据的访问只能通过已定义的接口。现实世界被描述成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

  • 继承:子类可以继承父类的方法和实例变量,并根据自身的需要进行新增或修改。这体现了现实世界中一般与特殊的关系。

  • 多态:多态是同一个行为具有多个不同表现形式(如George在学校是学校,在家里是儿子)。就是同一个接口,使用不同的实例而执行不同操作。具体体现在父类引用变量可以指向子类对象,如Parent p = new Child();
    多态分为编译时多态(方法重载)和运行时多态(方法重写/覆盖)。
    多态存在的条件:继承、重写、父类的引用指向子类对象

3.JDK、JRE、JVM的关系#

JDK(Java Development Kit),Java开发工具包
JRE(Java Runtime Environment),Java运行时环境
JVM(Java Virtual Machine),Java虚拟机

Java开发工具包 包括 Java运行时环境,Java运行时环境 包括 Java虚拟机。

本节补充#

创建子类的原理:
  • 子类被创建时,首先会在内存(堆)中创建一个父类对象
  • 然后在父类对象外部放上子类独有的属性(变量)
  • 父类对象和子类独有的属性合起来就形成了一个子类对象
类的局部变量和成员变量在堆栈中的存储细节

类的变量

局部变量

基本类型:变量名和变量的值存储在栈中

引用类型:变量名在栈中,变量指向的对象在堆中

成员变量:存储在堆中

  • 补充:方法存储在JVM的方法区中
JVM运行时数据区

包括 JVM栈、本地方法栈、堆、方法区、程序计数器

posted @   George-Hu99  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示
主题色彩