- 1
- 0
- 约 5页
- 2016-11-28 发布于河南
- 举报
JAVA笔试考前准备(一)
1、静态工厂方法讲解一
创建类的实例的最常见的方式是用new语句调用类的构造方法。在这种情况下,程序可以创建类的任意多个实例,每执行一条new语句,都会导致Java虚拟机的堆区中产生一个新的对象。假如类需要进一步封装创建自身实例的细节,并且控制自身实例的数目,那么可以提供静态工厂方法。
例如Class实例是Java虚拟机在加载一个类时自动创建的,程序无法用new语句创建java.lang.Class类的实例,因为Class类没有提供public类型的构造方法。为了使程序能获得代表某个类的Class实例,在Class类中提供了静态工厂方法forName(String name),它的使用方式如下:
Class c=Class.forName(Sample); //返回代表Sample类的实例
静态工厂方法与用new语句调用的构造方法相比,有以下区别。
构造方法的名字必须与类名相同。这一特性的优点是符合Java语言的规范,缺点是类的所有重载的构造方法的名字都相同,不能从名字上区分每个重载方法,容易引起混淆。静态工厂方法的方法名可以是任意的,这一特性的优点是可以提高程序代码的可读性,在方法名中能体现与实例有关的信息。例如Gender类有两个静态工厂方法:getFemale()和getMale()。
每次执行new语句时,都会创建一个新的对象。而静态工厂方法每次被调用的时候,是否会创建一个新的对象完全取决于方法的实现。
new语句只能创建当前类的实例,而静态工厂方法可以返回当前类的子类的实例,这一特性可以在创建松耦合的系统接口时发挥作用。
静态工厂方法最主要的特点是:每次被调用的时候,不一定要创建一个新的对象。利用这一特点,静态工厂方法可用来创建以下类的实例。
单例类:只有惟一的实例的类。
枚举类:实例的数量有限的类。
具有实例缓存的类:能把已经创建的实例暂且存放在缓存中的类。
具有实例缓存的不可变类:不可变类的实例一旦创建,其属性值就不会被改变
常用的精简指令集 RISC 微处理器包括 DECAlpha 、 ARC 、 ARM 、 AVR 、 MIPS 、 PA-RISC 、 PowerArchitecture( 包括 PowerPC) 和 SPARC 等。 复杂指令 CISC如X86。
3、排序算法
4、临界区
什么是临界区??答:每个进程中访问临界资源的那段程序称为临界区(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。?进程进入临界区的调度原则是:?①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。②任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
?Interger j?与数值类型?int I?进行比较时比较的是?value?,而不是地址因此?i==j?返回?true?,而?j.equals(i)同样比较的是?value?,因此返回的是?true
初始化过程是这样的:?1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;?
2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;?
3.其次,初始化父类的普通成员变量和代码块,在执行父类的构造方法;
4.最后,初始化子类的普通成员变量和代码块,在执行子类的构造方法;?
第一范式(?1NF?):?字段具有?原子性?,?不可再分?。所有关系型数据库系统都满足第一范式)数据库表中的字段都是单一属性的,不可再分。例如,姓名字段,其中的姓和名必须作为一个整体,无法区分哪部分是姓,哪部分是名,如果要区分出姓和名,必须设计成两个独立的字段。
第二范式(?2NF?):?第二范式(?2NF?)是在?第一范式(?1NF?)的基础上?建立起来的,即满足第二范式(?2NF?)必须先满足第一范式(?1NF?)。要求?数据库表中的每个实例或行必须可以被惟一地区分?。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为?主关键字或主键?。
?????第二范式(?2NF?)要求?实体的属性完全依赖于主关键字?。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各
原创力文档

文档评论(0)