- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
Java编程思想(学习笔记)
《Java 编程思想》学习笔记
1——面向对象和 JVM 基础
1.java 中的4 种访问制权限:
(1).public:最大访问控制权限,对所有的类都可见。
(2).protect:同一包可见,不在同一个包的所有子类也可见。
(3).default:包访问权限,即同一个包中的类可以可见。默认不显式指定访问
控制权限时就是 default 包访问控制权限。
(4).private:最严格俄访问控制权限,仅该类本身可见,对外一切类都不可以
访问 (反射机制可以访问)。
2.面向对象编程中两种对象组合方式——is-a 和 has-a:
(1).is-a 组合:一个类继承具有相似功能的另一个类,根据需要在所继承的类
基础上进行扩展。
优点:具有共同属性和方法的类可以将共享信息抽象到父类中,增强代码复用性,
同时也是多态的基础。
缺点:子类中扩展的部分对父类不可见,另外如果共性比较少的时候使用继承会
增加冗余代码。
(2).has-a 组合:has-a 组合是在一个类中引用另一个类作为其成员变量。
优点:可扩展性和灵活性高。在对象组合关系中应优先考虑 has-a 组合关系。
缺点:具有共性的类之间看不到派生关系。
3.多态:
在面向对象编程中,子类中拥有和父类相同方法签名的方法称为子类方法覆盖父
类方法,当调用子类方法的某个操作时,不必明确知道子类的具体类型,只需要
将子类类型看作是父类的引用调用其操作方法,在运行时,JVM 会根据引用对象
的具体子类类型而调用应该的方法,这就是多态。
多态的基础是 java 面向对象编程的晚绑定机制。编程中有如下两种绑定机制:
(1).早绑定:一般在非面向对象编程语言中使用,在程序编译时即计算出具体调
用方法体的内存地址。
(2).晚绑定:面向对象编程语言中经常使用,在程序编译时无法计算出具体调用
方法体的内存地址,只进行方法参数类型和返回值类型的校验,在运行时才能确
定具体要调用方法体的内存地址。
4.java 单继承的优点:
相比于 C++的多继承,java 只支持类的单继承,java 中的所有类的共同基类是
Object 类,Object 类 java 类树的唯一根节点,这种单继承有以下好处:
(1).单继承可以确保所有的对象拥有某种共同的特性,这样对于 JVM 虚拟机对所
有的类进行系统级的操作将提供方便,所有的 java 对象可以方便地在内存堆栈
中创建,传递参数也变的更加方便简单。
(2).java的单继承使得实现垃圾回收器功能更加容易,因为可以确保 JVM 知道
所有对象的类型信息。
5.选择容器对象两个原则:
(1).容器所能提供不同的类型的接口和外部行为是否能够满足需求。
(2).不同容器针对不同的操作效率不同。
6.类型转换:
Java 中有两种常见的类型转换:向上类型转换(upcast)和向下类型转换
(downcast):
(1).向上类型转换(upcast):
向上类型转换是将子类对象强制类型转换为父类类型,经典用法是面向对象的多
态特性。向上类型转换时,子类对象的特性将不可见,只有子类从父类继承的特
性仍然保持可见,向上类型转换时编译器会自动检查是否类型兼容,通常是安全
的。
(2).向下类型转换:
向下类型转换是将父类类型强制转换为子类类型,转换过后父类中不可见的子类
特性又恢复可见性,向下类型转换时,编译器无法自动检测是否类型兼容,往往
会产生类型转换错误的运行时异常,通常不安全。
7.java 中 5 个存放数据的地方:
(1).寄存器(Registers):位于CPU 内部,是速度最快的存储区,但是数量和容
量有限。在 java 中不能直接操作寄存器。
(2).栈 (Stack):栈位于通用随机访问存储器 (General random-access memory,
RAM,内存) 中,通过处理器的栈指针访问,栈指针从栈顶向栈底分配内存,从
栈底向栈顶释放内存。栈是仅次于寄存器的速度第二快的存储器,在 java 程序
中,一般的8 种 基本类型数据和对象的引用通常存放在栈内存中,不通过 new
关键字的字符串对象也是存放在栈的字符串池中。栈的优势是,存取速度比堆要
快,仅次于寄存器, 栈数据可以共享。但缺点是,存在栈中的数据大小与生存
期必须是确定的,缺乏灵活性。
(3).堆 (Heap):也是位于通用随机访问存储器 (General random-access memory,
RAM,内存) 中的共享内存池。Java 的堆是一个运行时数据区,类的对象从中分
配空间,凡是通过 new 关键字创建的对象
您可能关注的文档
- IPOS 设置案例.pdf
- iPhone_5S使用手册.pdf
- IPROT-3用户手册v1.00.pdf
- IPTV机顶盒技术规范.pdf
- IQC进料管制与供应商管理.pdf
- IPS_FFS面板原理介绍-V2.pdf
- IQT说明书.pdf
- iResearch-2015年艾瑞解读中国医疗健康产业互联网化六大趋势.pdf
- ISA-381G站用变接地变保护测控装置技术使用说明书(南网版)V3.21-130425.pdf
- ISchool随机抽题考试系统免费版用户手册.pdf
- 2025至2030中国移动治疗台行业发展研究与产业战略规划分析评估报告.docx
- 2025至2030链激酶行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030爆炸物探测扫描仪行业市场占有率及有效策略与实施路径评估报告.docx
- 2025至2030四川省智能制造行业细分市场及应用领域与趋势展望研究报告.docx
- 2026届高三二轮复习试题政治大单元突破练1生产资料所有制与分配制度含解析.docx
- 2026届高三二轮复习试题政治大单元突破练16哲学基本思想与辩证唯物论含解析.docx
- 2026届高三二轮复习试题政治大单元突破练2社会主义市场经济体制含解析.docx
- 浙江省衢州市五校联盟2025-2026学年高二上学期期中联考技术试题-高中信息技术含解析.docx
- 浙江省金丽衢十二校2026届高三上学期11月联考政治试题含解析.docx
- 2026届高三二轮复习试题政治大单元突破练7领导力量:中国共产党的领导含解析.docx
原创力文档


文档评论(0)