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的本质:代表所在方法调用者的内存地址

相关推荐
墨雨晨曦8811 小时前
2026/08/16 AI学习笔记
笔记·学习
Devin~Y11 小时前
从内容社区到AI智能客服:Spring Boot + Spring Cloud + Spring AI 全栈实战面试拆解
java·spring boot·redis·elasticsearch·spring cloud·kafka·mybatis
未秃头的程序猿11 小时前
从写CRUD到做AI Agent:我花了6个月转型,这是我的完整路线图
java·后端·ai编程
Java内核笔记11 小时前
万字长文剖析 Spring Boot 4.1.0 启动流程源码:从 main 到就绪
java·后端
2602_9599609211 小时前
电商大厂Java面试:从Spring Boot、JPA、微服务到Redis、Kafka、Spring Security与监控,谢飞机的爆笑三轮问答
java·jvm·spring boot·redis·面试题
码农进化录11 小时前
Java 程序员的 AI 进化论 | Spring Boot 搭企业智能客服,从设计到上线
java·spring boot·openai
旺仔学长 哈哈11 小时前
别只做车辆 CRUD:Spring Boot 共享汽车管理系统从预约到还车的完整实现---源码53766
java·spring boot·在线预约·共享汽车
CarIise11 小时前
C语言基础课程笔记:硬件原理、数据类型、结构体与格式化输入输出详解
c语言·开发语言·笔记
weixin_BYSJ198711 小时前
springboot技能与工具共享小程序---附源码29657
java·javascript·spring boot·python·小程序·django·php
茶本无香11 小时前
通用报表自动化框架:Java调用Shell传参执行PostgreSQL SQL模板
java·sql·postgresql·shell