网站的计数器,一般也是单例模式实现,否则难以同步。
应用程序的日志应用,一般都使用单例模式实验,这一般是由于共享的日志文件一直处于打开状态,因为只能有一个实例去操作,否则内容不好追加
数据库链接地的设计一般也是采用单例模式,因为数据库链接是一种数据库资源
项目中,读取配置文件的类,一般也只有一个对象。没有必要每次使用配置文件数据,都生成一个对象去读取
Application 也是单例的典型应用
Windows的TaskManger(任务管理器)就是很典型的单例模式
Windows的Recycle Bin(回收站)也是典型的单例应用。在整个系统运行过程中,回收站一直维护者仅有的一个实例
main( )方法的使用说明:
1.main( )方法作为程序的入口
2.main( )方法也是一个普通的静态方法
3.main( )方法可以作为我们与控制台交互的方式.(之前:使用Scanner)
类的成员之四:代码块(或初始化块)
1.代码块的作用:用来初始化类、对象
2.代码块如果有修饰的话,只能使用static
3.分类:静态代码块 VS 非静态代码块
4.静态代码块
》内部可以有输出语句
》随着类的加载而执行,而且只执行一次
》作用:初始化类的信息
》如果一个类中定义了多个静态代码块,按照声明的先后顺序执行
》静态代码块的执行要优先于非静态代码块的执行
》静态代码块内只能调用静态的属性、静态的方法,不能调用非晶态的结构
5.非静态代码块
》内部可以有输出语句
》随着对象的创建而执行
》每创建一个对象,就执行一次非静态代码块
》作用:可以在创建对象时,对对象的属性等进行优化
》如果一个类中定义多个非静态代码块,则按照声明的先后顺序执行
》非静态代码块内可以调用静态的属性、静态的方法,或非静态的属性、非静态的方法
对属性可以赋值的位置:
①默认初始化
②显示初始化/⑤在代码块中赋值
③构造器中初始化
④有了对象以后,可以通过"对象.属性"或"对象.方法"的方式,进行赋值
执行顺序:① - ②/⑤ - ③ - ④
final:最终的
1.final可以用来修饰的结构:类、方法、变量
2.final用来修饰一个类:此类不能被其他类所维护
比如:String类、System类、StringBuffer类
3.final用来修饰方法:表明此方法不可以被重写
比如:Object类中getClass();
4.final用来修饰变量:此时的“变量”就称为是一个常量
4.1final修饰属性:可以考虑防护值得位置有:显示初始化、代码块中初始化、构造器中初始化
4.2 final修饰局部变量:
尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值以后,就只能在方法体内使用此形参,但不能进行重新赋值。
static final 用来修饰属性:全局常量
抽象的
1.abstract:抽象的
2.abstract:可以用来修饰的结构:类、方法
3.abstract修饰类:抽象类
》此类不能实例化
》抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程)
》开发中,都会提供抽象类的子类,让子类对象的实例化,完成相关的操作
4.abstract修饰方法:抽象方法
》抽象方法只有方法的声明,没有 方法体
》包含抽象方法的类,一定是一个抽象类