摘要: 关键技术 静态内部类是使用static修饰的内部类,在静态内部类中,可以使用外部类定义的静态属性,但是不能使用非静态的属性,这是静态内部类与飞静态内部类的重要区别。 阅读全文
posted @ 2019-04-08 19:13 Joy丨windy 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 关键技术 当只需要创建类的一个对象时,可以使用匿名内部类。 阅读全文
posted @ 2019-04-08 19:10 Joy丨windy 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 关键技术 Java中可以将类定义在方法的内部,称为局部内部类。这种类不能使用public,private修饰,他的作用于被限定在生命这个类的方法中。局部内部类和其他内部类相比的一个优点,就是局部内部类可以访问方法的参数。 注意:被局部内部类使用的方法参数必须是final的。 心得 由于局部内部类对外 阅读全文
posted @ 2019-04-08 19:07 Joy丨windy 阅读(623) 评论(0) 推荐(0) 编辑
摘要: 关键技术 在类中除了可以定义属性、方法、块外,还可以定义类,这种类称为内部类。 内部类可以使用在外部类中定义的属性和方法,即使它们都是私有的。编译器在编译内部类时,将内部类命名为Outer$Inner的形式,虚拟机并不知道有内部类。 提示:只有内部类可以设置成私有的,其他类只有共有和包可见两种形式。 阅读全文
posted @ 2019-04-08 18:59 Joy丨windy 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 实例说明 对于刚从工厂生产出来的商品,有些功能并不能完全满足用户的需要。因此,用户通常会对其进行一定的改装工作。本实例以为普通车辆增加GPS定位功能为例。 关键技术 适配器模式可以在符合OCP原则(开闭原则)的基础上,为类增加新的功能。该模式设及的主要角色介绍: 阅读全文
posted @ 2019-04-08 18:52 Joy丨windy 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 实例说明 在使用图片处理软件处理处理图片后,需要选择一种格式进行保存,然而各种格式在底层实现的算法并不相同,这刚好适合策略模式。本实例将演示如何使用策略模式与简单工厂模式组合进行开发。 关键技术 在自定义接口时,可以在接口中定义常量如JDBC数据库信息;也可以增加方法,这是借口最常见的用法。此外,还 阅读全文
posted @ 2019-04-08 18:44 Joy丨windy 阅读(773) 评论(0) 推荐(0) 编辑
摘要: 实例说明 在保存对象时,会将对象的状态也一并保存,然而有些状态是不应该被保存的,如表示密码的属性。此时可以使用transient关键字来修饰不想保存的属性。 关键技术 transient关键字用来防止序列化属性。如果一个引用类型被transient修饰,则其反序列化的结果是null。如果一个基本数据 阅读全文
posted @ 2019-04-08 17:57 Joy丨windy 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 实例说明 对于深克隆而言,如果类有很多引用类型的属性,那么重写clone()方法依次复制各个属性是非常麻烦的。 关键技术 序列化可以将任意对象写入到流中。根据流的类型不同,可以将对象写入到文件中,也可以将对象写入到字节数组中。克隆对象时一般不需要先进行保存,因此将使用字节数组。在写入完成后,再将其读 阅读全文
posted @ 2019-04-08 17:46 Joy丨windy 阅读(349) 评论(0) 推荐(0) 编辑
摘要: Java对象的“假”克隆 实例说明 在实际编程中,会遇到需要进行克隆技术的情况。例如要获得一个非常复杂的对象,与其使用new创建对象在对该对象进行赋值,不如直接克隆现有对象。 本实例将演示一种常见的错误克隆方法。 关键技术 Java中,对于今本数据类型可以使用“=”号进行克隆,此时两个变量除了相等以 阅读全文
posted @ 2019-04-08 17:27 Joy丨windy 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 实例说明 Java中的对象是保存在堆中的,为了提高查找的速度而使用了散列查找。散列查找的基本思想是定义一个键来映射对象所在的内存中地址。 关键技术 重写hashCode()方法。Object类在实现该方法时,返回值是对像的存储地址。这与equals()方法的实现相关。因此当重写了equals()方法 阅读全文
posted @ 2019-04-08 16:23 Joy丨windy 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 实例说明 在定义类时,属性可以是基本类型也可以是引用类型。当重写equals()方法时一会要用“==”来比较基本类型,一会要用equals()比较引用类型,这样代码看着有些混乱。为此推荐使用Commons的Lang组件来重写该方法。 关键技术 EqualsBuilder类是重写equals()方法的 阅读全文
posted @ 2019-04-08 16:12 Joy丨windy 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 实例说明 ASCII是American Standard Code Information Interchange的缩写,是基于拉丁字母的一套电脑编码系统,主要用于显示英文字符,是目前世界上最通用的单字节编码。基本的ASCII编码包括了128个字符。 关键技术 Character类是char类型的包 阅读全文
posted @ 2019-04-08 15:22 Joy丨windy 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 实例说明 由于计算机的特殊结构,其内部使用二进制数据。为了节约空间,有定义了八进制和十六进制格式来表示二进制数据。一个八进制数可以表示3位二进制数,一个十六进制数可以表示4位二进制数。而对于普通人而言,使用十进制更容易阅读。 关键技术 Integer类设计的初衷是为了在基本数据类型和引用数据类型之间 阅读全文
posted @ 2019-04-08 14:56 Joy丨windy 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 实例说明 在编写Java程序时,出于设计等方面原因,会需要子类不能够重写父类中定义的方法。为了实现这个需求,可以为父类的方法加“锁”,即使用final关键字。 关键技术 final可以用来修饰类、属性和方法。修饰类时表示该类不可以被继承。修饰属性时表示该属性初始化之后不能被修改,通常与static组 阅读全文
posted @ 2019-04-08 13:59 Joy丨windy 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 实例说明 在中国历史上有一个很特殊的职业,通常其从业者有且仅有一人,那就是皇帝。本实例使用单例模式确保皇帝的唯一性。 关键技术 既然要保证类有且仅有一个实例,就需要其他类不能实例化该类。 因此需要将构造方法设置成私有的,即使用private关键词修饰。同时在类中提供一个静态方法,该方法的返回值是该类 阅读全文
posted @ 2019-04-08 11:59 Joy丨windy 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 实例说明 Java程序的各种功能是通过对象调用相关方法完成的,因此必须先获得对象。使用构造方法来获得对象是一种非常常用的方式。另一种方式是使用反射,构造方法也支持重载。 关键技术 构造方法声明时必须遵守以下规定: 此外,在构造方法中,还可以使用this来调用其他构造方法,使用supper调用超类的构 阅读全文
posted @ 2019-04-08 11:45 Joy丨windy 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 实例说明 对于C语言来说,是不能 定义同名方法的。 本实例将演示重载在Java中的应用。 关键技术 在Java中,可以通过重载(overloading)来减少方法名称的个数。当对象调用方法时,可以根据方法参数的不同来确定执行哪个方法。方法的参数不同包括参数类型不同、参数个数的不同和参数顺序的不同。需 阅读全文
posted @ 2019-04-08 11:36 Joy丨windy 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 实例说明 字符串中可以包含数字、字母汉字或者其他字符。使用Character类的isDigit()方法可以判断字符串中的某个字符是否为数字,使用Character类的isLetter()方法可以判断字符串中的某个字符是否为字母。本实例将介绍一种方法来判断字符串中的某个字符是否为汉字,通过次方法计算汉 阅读全文
posted @ 2019-04-08 10:03 Joy丨windy 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 关键技术 StringBuffer类的reverse()方法反转字符串。 领悟 字符串是一组不可变的字符数组。 阅读全文
posted @ 2019-04-08 09:48 Joy丨windy 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 实例说明 在了解本实例前,首先需要理解一个概念——字符串 是一个不可改变的对象,也就是说,字符串在创建以后,就不会被改变,当使用字符串对象的,replace()、splid()等方法操作字符串时,实际上是产生了一个新的字符串对象,原有的字符串如果没有被引用,就是被垃圾回收器回收。 如果频繁的使用字符 阅读全文
posted @ 2019-04-08 09:44 Joy丨windy 阅读(883) 评论(0) 推荐(0) 编辑