- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java编程思想重点整理笔记
目录
1. Java中的多态性理解(注意与C++区分) 1
2. is-a关系和is-like-a关系 4
3. 运行时类型信息(RTTI + 反射) 4
4. 代理模式与Java中的动态代理 11
5. 即时编译器技术 — JIT 14
6. 访问控制权限 15
7. 组合和继承之间的选择 16
8. final关键字 16
9. 策略设计模式与适配器模式的区别 17
10. 内部类 17
11. String类型 — 不可变 18
12. 序列化控制 22
?
1. Java中的多态性理解(注意与C++区分)
Java中除了static方法和final方法(private方法本质上属于final方法,因为不能被子类访问)之外,其它所有的方法都是动态绑定,这意味着通常情况下,我们不必判定是否应该进行动态绑定—它会自动发生。
final方法会使编译器生成更有效的代码,这也是为什么说声明为final方法能在一定程度上提高性能(效果不明显)。
如果某个方法是静态的,它的行为就不具有多态性:
class StaticSuper {
public static String staticGet() {
return Base staticGet();
}
public String dynamicGet() {
return Base dynamicGet();
}
}
class StaticSub extends StaticSuper {
public static String staticGet() {
return Derived staticGet();
}
public String dynamicGet() {
return Derived dynamicGet();
}
}
public class StaticPolymorphism {
public static void main(String[] args) {
StaticSuper sup = new StaticSub();
System.out.println(sup.staticGet());
System.out.println(sup.dynamicGet());
}
}
输出:
Base staticGet()Derived dynamicGet()
构造函数并不具有多态性,它们实际上是static方法,只不过该static声明是隐式的。因此,构造函数不能够被override。
在父类构造函数内部调用具有多态行为的函数将导致无法预测的结果,因为此时子类对象还没初始化,此时调用子类方法不会得到我们想要的结果。
class Glyph {
void draw() {
System.out.println(Glyph.draw());
}
Glyph() {
System.out.println(Glyph() before draw());
draw();
System.out.println(Glyph() after draw());
}
}
class RoundGlyph extends Glyph {
private int radius = 1;
RoundGlyph(int r) {
radius = r;
System.out.println(RoundGlyph.RoundGlyph(). radius = + radius);
}
void draw() {
System.out.println(RoundGlyph.draw(). radius = + radius);
}
}
public class PolyConstructors {
public static void main(String[] args) {
new RoundGlyph(5);
}
}
输出:
Glyph() before draw()RoundGlyph.draw(). radius = 0Glyph() after draw()RoundGlyph.RoundGlyph(). radius = 5
为什么会这样输出?这就要明确掌握Java中构造函数的调用顺序:
您可能关注的文档
- GMP标准.doc
- GMP检查缺整改报告如何撰写.doc
- GIS在电力系统中的应用.doc
- GIS空间数据可视化表达练习.doc
- haccp辅料包材危害分析工作单.doc
- hao四年级下教材《足球正脚背踢球》.doc
- HandKeyCR使用手册(全).doc
- HBsAg操作规程.doc
- HACCP综合题库.doc
- Hash在信息学竞赛中的一类应用.doc
- 复习学案:中国古代传统文化——主流思想文化的演变以及中国古代民族关系.docx
- 抗洪抢险、地震、森林火灾等灾害救援知识试卷.doc
- Z20+名校联盟(浙江省名校新高考研究联盟)2026届高三第一次联考含答案(11科试卷).pdf
- 广西柳州市2026届高三上学期摸底考试语文试题(含答案).docx
- 贵州省毕节市织金县2024-2025学年七年级下学期期末语文试题(含答案).docx
- 安全救援及自然环境相关知识考试试卷.doc
- 五级数学下册课时:分数概念生成与理解.pdf
- 精品解析:江西省部分高中(上进联考)2025届高三下学期4月联考检测数学试题 (解析版).docx
- 649 古诗词课件: 相思.pptx
- 精品解析:江西省新八校2024-2025学年高三下学期第二次联考数学试题(解析版).docx
最近下载
- 电业安全工作规程热力和机械部分但g义b261641—2010.doc VIP
- (高清版)B 26164.1-2010 电业安全工作规程 第1部分:热力和机械.pdf VIP
- 水利工程监理资料目录.xls VIP
- 国企混改项目商业计划书.docx VIP
- CityGML全部实体类型总结(中英文对照).docx VIP
- JT_T 1432.1 2022 公路工程土工合成材料 第1部分:土工格栅.pdf VIP
- 2020年全国普通高等学校体育单招真题英语试卷(原卷+解析).docx VIP
- 2025年全国普通高等学校体育单招真题英语试卷完整版 .pdf VIP
- 2025年全国普通高等学校体育单招真题英语试卷(原卷) .pdf VIP
- 2025年全国普通高等学校体育单招真题英语试卷及答案 完整版2025.pdf VIP
文档评论(0)