Java学习笔记 -- 面向对象原理篇

1 面向对象的内存管理

1.1 内存组成及分配

栈内存:方法被调用进栈执行,执行完毕出栈(方法)

堆内存:所有线程共享,存储对象、数组、字符串常量池(new关键字)

方法区:字节码信息

1.2 内存分配流程

1.2.1 创建对象的七步

1.2.2 对象执行流程

注:栈内存的方法和堆内存的常量池执行完毕后都会清空

1.2.3 总结

1.3 练习

1.3.1 内存分配小练习

关键点:调用change方法,把stu对象的内存地址给了方法,方法会根据地址找到对象,对数据进行修改,其他变量再次访问会是修改后的结果2.

1.3.2 练习总结

2 this关键字真正的原理

2.1 this关键字详解

this:区别局部变量和成员变量

内存:所在方法调用者的地址值

2.2 练习

输出结果:10 18 10 19

例如:当s2.study调用时,study方法进栈执行,对象s2调用获取到了s2的内存地址,方法执行,先输出局部变量age(就近原则),然后执行this.age,this会获取成员变量,通过对象s2内存地址获得成员变量age的数据打印,方法执行完毕出栈。

总结

this的本质:代表所在方法调用者的内存地址

相关推荐
带刺的坐椅6 小时前
多 Agent 协作实战:任务编排与子代理系统
java·ai·llm·agent·solon·harness
木木子227 小时前
# 星座配对深度解析:Select 长列表选择器、矩阵评分算法与数据驱动建议
java·算法·华为·矩阵·harmonyos
摇滚侠7 小时前
云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 51-60
java·云原生·kubernetes
折哥的程序人生 · 物流技术专研7 小时前
第4篇:模板方法 vs 策略模式,面试怎么选?
java·设计模式·策略模式·行为型模式·模版方法模式·扩充系列·继承v组合
吠品7 小时前
Mac定时关机、开机自动化:用shutdown和pmset就够了
android·java·开发语言
小园子的小菜7 小时前
Java设计模式精讲:创建型+结构型模式(含生产级案例+相似模式对比)
学习·设计模式
_muffinman7 小时前
梁山派学习笔记1
笔记·学习
hdsoft_huge7 小时前
JDK系列19:JVM全维度调优实战,内存、元空间、线程栈、GC参数压测调优完整方案
java·开发语言·jvm
曹牧7 小时前
Eclipse:SVN 回复
java·svn·eclipse
闲猫15 小时前
Spring AI 对接Deepseek ChatModel 聊天对话
java·前端·spring