创建和销毁对象 1. 考虑用静态工厂方法代替构造器 2. 遇到多个构造器参数时要考虑用构建器 3. 用私有构造器或者枚举类型强化Singleton属性 4. 通过私有构造器强化不可实例化能力 5. 避免创建不必要的对象 6. 消除过期的对象引用 7. 避免使用终结方法finalizer 对于所有对象 ...
分类:
编程语言 时间:
2018-07-23 11:03:44
阅读次数:
160
第一章、多态 一、概述 1、概念 是面向对象的三大特性之一 多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口)变量赋值。 2、意义: 2.1) 行为的多态:(一个引用向下造型多个对象) 同一个行为:同一类型的引用,指向不 ...
分类:
其他好文 时间:
2018-07-21 18:02:53
阅读次数:
168
列表与元组、字典 1.列表list:["ele1","ele2","ele3","ele0"] 列表是一组任意类型的值,按照一定顺序组合而成的;通过偏移存取;可变长度、异构以及任意嵌套;可变的序列;对象引用的数组 2.元组tuple:("alex","韩顺平","金云龙") 只读的列表,两个方法in ...
分类:
编程语言 时间:
2018-07-21 11:47:04
阅读次数:
177
返回主目录 final域,编译器和处理器要遵守两个重排序 1.在构造函数对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。 2.初次读一个包含final域的对象引用,与随后初次读这个final域,两个操作之间不能重排序。 ...
分类:
编程语言 时间:
2018-07-20 11:23:36
阅读次数:
164
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 栈区: 每个线程包含一个栈区,栈中只保存方法中(不包括对象的成员变量)的基础数据类型和自定义对象的引用(不是对象),对象都存放在堆区中 每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。 栈分 ...
分类:
编程语言 时间:
2018-07-18 20:31:10
阅读次数:
153
不可变对象(字符串、元组) 1. 首先在内存中创建对象1,并记录对象的引用计数为1次。 查看变量a引用的对象的内存地址 2. 内存中已存在对象1,变量b引用对象1,则对象1的引用计数为2次。 变量b和变量a引用的是同一个对象,内存地址相同。 3. 在内存中创建对象2,变量a不再引用原有对象1(引用次 ...
分类:
编程语言 时间:
2018-07-17 19:54:18
阅读次数:
183
1、JVM内存模型 a、栈: 包括虚拟机栈和本地方法栈。 虚拟机栈为线程私有,生命周期与线程相同。java方法执行时会创建一个栈帧,里面保存着对象引用、基本类型数据等 本地方法栈和虚拟机栈类似,虚拟机为java方法服务,为本地方法栈为Native方法服务。 b、方法区: 方法区其中一种实现为永久代( ...
分类:
其他好文 时间:
2018-07-14 14:46:04
阅读次数:
161
简介: 所谓的依赖注入,其实是当一个bean实例引用到了另外一个bean实例时spring容器帮助我们创建依赖bean实例并注入(传递)到另一个bean中,比如你使用Spring容器创建的对象A里面需要引用对象B或者集合之类的,Spring容器会在创建A的实现类和B的实现类后,把B的实现类注入A实例 ...
分类:
编程语言 时间:
2018-07-12 22:49:09
阅读次数:
240
this关键字的概述 this关键字代表是对象的引用。也就是this在指向一个对象,所指向的对象就是调用该函数的对象引用。this关键字作用 1. 如果存在同名成员变量与局部变量时,在方法内部默认是访问局部变量的数据,可以通过this关键字指定访问成员变量的数据。 2. 在一个构造函数中可以调用另外一个构造函数初始化对象。例: 使用java类
分类:
其他好文 时间:
2018-07-12 10:29:00
阅读次数:
200
模式简介 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 通常情况下,应用程序由许多类组成,随着类数量不断增加,系统变得难以维护,主要体现在类之间的交互变得更加复杂,难以理解,修改其中一个类可能会影响到其他的类,导致整个 ...
分类:
其他好文 时间:
2018-07-10 21:33:05
阅读次数:
133