摘要: 数据类型的局限 之前我们一直在说,程序主要就是数据以及对数据的操作,而为了方便操作数据,高级语言引入了数据类型的概念,Java定义了八种基本数据类型,而类相当于是自定义数据类型,通过类的组合和继承可以表示和操作各种事物或者说对象。 但,这种只是将对象看做属于某种数据类型,并按该类型进行操作,在一些情 阅读全文
posted @ 2020-02-29 23:45 Ivy_Xu 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 继承是把双刃剑 通过前面几节,我们应该对继承有了一个比较好的理解,但之前我们说继承其实是把双刃剑,为什么这么说呢?一方面是因为继承是非常强大的,另一方面是因为继承的破坏力也是很强的。 继承的强大是比较容易理解的,具体体现在: 子类可以复用父类代码,不写任何代码即可具备父类的属性和功能,而只需要增加特 阅读全文
posted @ 2020-02-29 23:34 Ivy_Xu 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 第15节我们介绍了继承和多态的基本概念,而上节我们进一步介绍了继承的一些细节,本节我们通过一个例子,来介绍继承实现的基本原理。需要说明的是,本节主要从概念上来介绍原理,实际实现细节可能与此不同。 例子 这是基类代码: public class Base { public static int s; 阅读全文
posted @ 2020-02-29 23:21 Ivy_Xu 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 上节,我们探讨了动态代理,在前几节中,我们多次提到了类加载器ClassLoader,本节就来详细讨论Java中的类加载机制与ClassLoader。 类加载器ClassLoader就是加载其他类的类,它负责将字节码文件加载到内存,创建Class对象。与之前介绍的反射、注解、和动态代理一样,在大部分的 阅读全文
posted @ 2020-02-29 22:59 Ivy_Xu 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 前面两节,我们介绍了反射和注解,利用它们,可以编写通用灵活的程序,本节,我们来探讨Java中另外一个动态特性 - 动态代理。 动态代理是一种强大的功能,它可以在运行时动态创建一个类,实现一个或多个接口,可以在不修改原有类的基础上动态为通过该类获取的对象添加方法、修改行为,这么描述比较抽象,下文会具体 阅读全文
posted @ 2020-02-29 18:43 Ivy_Xu 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 上节我们介绍了继承和多态的基本概念,基本概念是比较简单的,子类继承父类,自动拥有父类的属性和行为,并可扩展属性和行为,同时,可重写父类的方法以修改行为。 但继承和多态概念还有一些相关的细节,本节就来探讨这些细节,具体包括: 构造方法 重名与静态绑定 重载和重写 父子类型转换 继承访问权限 (prot 阅读全文
posted @ 2020-02-29 18:27 Ivy_Xu 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 继承 上节我们谈到,将现实中的概念映射为程序中的概念,我们谈了类以及类之间的组合,现实中的概念间还有一种非常重要的关系,就是分类,分类有个根,然后向下不断细化,形成一个层次分类体系。这种例子是非常多的: 在自然世界中,生物有动物和植物,动物有不同的科目,食肉动物、食草动物、杂食动物等,食肉动物有狼、 阅读全文
posted @ 2020-02-29 16:50 Ivy_Xu 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 正所谓,道生一,一生二,二生三,三生万物,如果将二进制表示和运算看做一,将基本数据类型看做二,基本数据类型形成的类看做三,那么,类的组合以及下节介绍的继承则使得三生万物。 上节我们通过类Point介绍了类的一些基本概念和语法,类Point中只有基本数据类型,但类中的成员变量的类型也可以是别的类,通过 阅读全文
posted @ 2020-02-29 16:39 Ivy_Xu 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 类 上节我们介绍了函数调用的基本原理,本节和接下来几节,我们探索类的世界。 程序主要就是数据以及对数据的操作,为方便理解和操作,高级语言使用数据类型这个概念,不同的数据类型有不同的特征和操作,Java定义了八种基本数据类型,其中,四种整形byte/short/int/long,两种浮点类型float 阅读全文
posted @ 2020-02-29 16:24 Ivy_Xu 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 栈 上节我们介绍了函数的基本概念,在最后我们提到了一个系统异常java.lang.StackOverflowError,栈溢出错误,要理解这个错误,我们需要理解函数调用的实现机制。本节就从概念模型的角度谈谈它的基本原理。 我们之前谈过程序执行的基本原理:CPU有一个指令指示器,指向下一条要执行的指令 阅读全文
posted @ 2020-02-29 15:56 Ivy_Xu 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 函数 前面几节我们介绍了数据的基本类型、基本操作和流程控制,使用这些已经可以写不少程序了。 但是如果需要经常做某一个操作,则类似的代码需要重复写很多遍,比如在一个数组中查找某个数,第一次查找一个数,第二次可能查找另一个数,每查一个数,类似的代码都需要重写一遍,很罗嗦。另外,有一些复杂的操作,可能分为 阅读全文
posted @ 2020-02-29 15:42 Ivy_Xu 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 循环 上节我们介绍了流程控制中的条件执行,根据具体条件不同执行不同操作。本节我们介绍流程控制中的循环,所谓循环就是多次重复执行某些类似的操作,这个操作一般不是完全一样的操作,而是类似的操作。都有哪些操作呢?这个例子太多了。 展示照片,我们查看手机上的照片,背后的程序需要将照片一张张展示给我们。 播放 阅读全文
posted @ 2020-02-29 15:23 Ivy_Xu 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 条件执行 前面几节我们介绍了如何定义数据和进行基本运算,为了对数据有透彻的理解,我们介绍了各种类型数据的二进制表示。 现在,让我们回顾程序本身,只进行基本操作是不够的,为了进行有现实意义的操作,我们需要对操作的过程进行流程控制。流程控制中最基本的就是条件执行,也就 是说,某些操作只能在某些条件满足的 阅读全文
posted @ 2020-02-29 15:15 Ivy_Xu 阅读(341) 评论(0) 推荐(0) 编辑