没有合适的资源?快使用搜索试试~ 我知道了~
首页Java编程思维笔记:对象导论与内存管理
Java编程思维笔记:对象导论与内存管理
需积分: 10 2 下载量 116 浏览量
更新于2024-07-15
收藏 1.79MB DOCX 举报
"《Thinking in Java》(第4版)读书笔记文档详细记录了Java编程语言的一些核心概念和知识点。首先,章节探讨了面向对象编程的基础,指出类是描述具有相同特征和行为对象的模板,public和private关键字分别控制类成员的可见性,public允许外部访问,private仅限于类内和构造函数,而protected允许子类访问。Java的包访问权限规则也在此部分提及。 在对象的生命周期管理方面,强调了对象生成(通过new关键字在堆上分配内存)和销毁的重要性,以及栈和堆的区别。栈内存快速但有限,主要用于存储局部变量和方法调用,而堆内存是对象的永久存储区,提供更大的灵活性但速度较慢。字符串常量池作为特殊的例子被提到,使用时需要确保对象的初始化以避免运行时错误。 此外,文档强调了引用的概念,即引用实际是对象的指针,我们可以通过引用操作对象,但可以没有实际的对象关联。创建对象的责任在于程序员,包括确定存储位置,如寄存器、栈或堆(尤其是堆内存分配的动态特性)。静态存储则用于存储程序运行时始终存在的数据,使用static关键字标识。 整体而言,这份笔记深入浅出地解释了Java中关于对象、内存管理和数据存储的关键概念,对于理解Java编程的内在机制具有重要价值。"
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/12819399/bg8.jpg)
,>$0D'初始化块
A
;;构造器
D0+'8'K/?
,>$0D'构造器
A
D0+'$/>MN?
8'K/
A
A
运行以上代码,我们会得到如下的输出结果:
静态变量
静态初始化块
!变量
#初始化块
%构造器
%对于有继承关系的类
class Parent {
%// 静态变量
%public static String p_StaticField = "父类--静态变量";
%// 变量
%public String p_Field = "父类--变量";
%protected int i = 9;
%protected int j = 0;
%// 静态初始化块
%static {
%%System.out.println(p_StaticField);
%%System.out.println("父类--静态初始化块");
%}
%// 初始化块
%{
%%System.out.println(p_Field);
%%System.out.println("父类--初始化块");
%}
// 构造器
%public Parent() {
%%System.out.println("父类--构造器");
%%System.out.println("i=" + i + ", j=" + j);
%%j = 20;
%}
}
public class SubClass extends Parent {
%// 静态变量
%public static String s_StaticField = "子类--静态变量";
%// 变量
%public String s_Field = "子类--变量";
%// 静态初始化块
%static {
%%System.out.println(s_StaticField);
![](https://csdnimg.cn/release/download_crawler_static/12819399/bg9.jpg)
%%System.out.println("子类--静态初始化块");
%}
%// 初始化块
%{
%%System.out.println(s_Field);
%%System.out.println("子类--初始化块");
%}
// 构造器
%public SubClass() {
%%System.out.println("子类--构造器");
%%System.out.println("i=" + i + ",j=" + j);
%}
// 程序入口
%public static void main(String[] args) {
%%System.out.println("子类 main 方法");
%%new SubClass();
%}
}
运行一下上面的代码,结果马上呈现在我们的眼前:
父类--静态变量
父类--静态初始化块
子类--静态变量
子类--静态初始化块
子类 main 方法
父类--变量
父类--初始化块
父类--构造器
i=9, j=0
子类--变量
子类--初始化块
子类--构造器
i=9,j=20
现在,结果已经不言自明了。子类的静态变量和静态初始化块的初始化是在父类的变量、初始化
块和构造器初始化之前就完成了。
静态变量、静态初始化块,变量、初始化块初始化了顺序取决于它们在类中出现的先后顺序。
执行过程分析
%(1)访问 SubClass.main(),(这是一个 static 方法),于是装载器就会为你寻找已经编译的 SubClass
类的代码(也就是 SubClass.class 文件)。在装载的过程中,装载器注意到它有一个基类(也就
是 extends 所要表示的意思),于是它再装载基类。不管你创不创建基类对象,这个过程总会发生。
如果基类还有基类,那么第二个基类也会被装载,依此类推。
(2)执行根基类的 static 初始化,然后是下一个派生类的 static 初始化,依此类推。这个顺序非常重
要,因为派生类的“static 初始化”有可能要依赖基类成员的正确初始化。
(3)当所有必要的类都已经装载结束,开始执行 main()方法体,并用 new SubClass()创建对象。
(4)类 SubClass 存在父类,则调用父类的构造函数,你可以使用 super 来指定调用哪个构造函数
(也就是 Beetle()构造函数所做的第一件事)。
剩余40页未读,继续阅读
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
gonghaiyu
- 粉丝: 913
- 资源: 3
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 贵州煤矿矿井水分类与处理策略:悬浮物、酸性与非酸性
- 醛固酮增多症肾上腺静脉采样对比:ACTH后LR-CAV的最优评估
- 开源云连接传感器监控平台:农业土壤湿度远程监测
- 母婴用品企业年度生产计划线性规划优化模型:实证与应用
- 井下智能变电站:Rogowski线圈电流检测系统的研发与性能验证
- 霍州矿区煤巷稳定性分析及支护策略
- ARM嵌入式系统远程软件更新方案:基于TFTP协议
- 煤炭选煤中汞分布规律与洗选脱汞效果
- 提升码垛机器人性能:拉格朗日动力学模型与滑模模糊控制的应用
- 增强现实技术提升学前手写教学:设计与开发案例
- 不规则工作面沉陷三角剖分算法提升与应用
- 卡尔曼滤波在瞬变电磁干扰压制中的应用研究
- 煤矿安全能力研究:理论与系统构建
- LonWorks总线技术在斜巷运输车辆定位与跑车防护中的应用
- 神东煤炭集团高效煤粉锅炉系统:节能环保新实践
- Ti/SnO2+Sb2Ox/PbO2电极分形维数与电催化性能研究
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)