当前位置: 首页 > news >正文

万脑网站建设优化培训课程

万脑网站建设,优化培训课程,河南政法委原书记受审,网站建设需要那些人面向对象高级(2) 单例设计模式、main方法与代码块 引言; 设计模式:特定环境下特定问题的处理方法。可理解为一种经典的可以参照的模板。单例设计模式则是只存在单个对象实例、且只有一种方法获取对象实例的一种设计模式。 单例设…

面向对象高级(2) 单例设计模式、main方法与代码块

引言;

设计模式:特定环境下特定问题的处理方法。可理解为一种经典的可以参照的模板。单例设计模式则是只存在单个对象实例、且只有一种方法获取对象实例的一种设计模式。

单例设计模式

1、设计思路:

(1)封装构造器,将构造器私有化,即可达到无法在类的外部创建对象的目的。

(2)在类的内部创建实例

(3)使用getInstance方法获取实例,声明为static。

2、两种实现方式

(1)饿汉式;

public class single {
    private String name;

    private single(String name) {
        this.name = name;
    }
    private static single single = new single("Lily");

    public static single getInstance(){
        return single;
    }
}

(2)懒汉式:

public class Lazy {
    private String time;

    private Lazy(String time) {
        this.time = time;
    }

    private static Lazy laziness;

    public static Lazy getInstance(){
        if(laziness==null)
            laziness = new Lazy("all the time");
        return laziness;
    }
}

3、对比饿汉式与懒汉式

(1)饿汉式

  • 特点:立即加载,即在使用类的时候已经将对象创建完毕。
  • 优点:实现起来简单;没有多线程安全问题。
  • 缺点:当类被加载的时候,会初始化static的实例,静态变量被创建并分配内存空间,从这以后,这个static的实例就一直占着这块内存,直到类被卸载时,静态变量被摧毁,并释放所占有的内存。因此在某些特定条件下会耗费内存

(2)懒汉式

  • 特点:延迟加载,即在调用静态方法时实例才被创建。
  • 优点:实现起来比较简单;当类被加载的时候,static的实例未被创建并分配内存空间,当静态方法第一次被调用时,初始化实例变量,并分配内存,因此在某些特定条件下会节约内存
  • 缺点:在多线程环境中,这种实现方法是完全错误的,线程不安全,根本不能保证单例的唯一性。
    • 说明:在多线程章节,会将懒汉式改造成线程安全的模式。

4、单例模式的优点

由于单例模式只生成一个实例,减少了系统性能开销

常见的单例模式应用:

  • Windows的Task Manager (任务管理器)就是很典型的单例模式
  • Windows的Recycle Bin (回收站)也是典型的单例应用。在整个系统运行过程中,回收站一直维护着仅有的一个实例。
  • Application 也是单例的典型应用
  • 数据库连接池的设计一般也是采用单例模式,因为数据库连接是一种数据库资源。

代码块

代码块(或初始化块)的作用

  • 对Java类或对象进行初始化
  • 代码块(或初始化块)的分类
    • 一个类中代码块若有修饰符,则只能被static修饰,称为静态代码块(static block)
    • 没有使用static修饰的,为非静态代码块。

1、静态代码块

在代码块的前面加static,就是静态代码块。

(1)静态代码块的格式

【修饰符】 class 类{
static{
        静态代码块
    }
}

2静态代码块的特点:

  • 可以有输出语句。
  • 可以对类的属性、类的声明进行初始化操作。
  • 不可以对非静态的属性初始化。即:不可以调用非静态的属性和方法。
  • 若有多个静态的代码块,那么按照从上到下的顺序依次执行。
  • 静态代码块的执行要先于非静态代码块。
  • 静态代码块随着类的加载而加载--->只执行一次。

2、非静态代码块

(1)格式:

【修饰符】 class 类{
    {
        非静态代码块
    }
    【修饰符】 构造器名(){
     // 实例初始化代码
    }
    【修饰符】 构造器名(参数列表){
        // 实例初始化代码
    }
}

(2)意义:如果多个构造器中存在公共的代码,且公共代码先于构造器中其他代码执行,则将这些公共代码提取放入代码块中,减少冗余代码。

非静态代码块的执行特点
  • 可以有输出语句。
  • 可以对类的属性、类的声明进行初始化操作。
  • 除了调用非静态的结构外,还可以调用静态的变量或方法。
  • 若有多个非静态的代码块,那么按照从上到下的顺序依次执行。
  • 随着对象的创建而执行,当前类中每创建一个实例,则执行一次非静态代码块。

举例:

public class Block{

public static void main(String[] args) {

//随着类的创建,先行执行静态代码块中的内容。

        Person p1 = new Person();//随着对象的创建,调用非静态代码块中的内容

        p1.eat();//根据对象调方法。

    }

}

class Person{

    String name;

    int age;

    public void eat(){

        System.out.println("People need eat.");

    }

    public static void useComputer(){

        System.out.println("I'm so despair.");

    }

   

    public Person(){}//空参构造器

   

    {

    System.out.println("not static.");

    }

    static{

    System.out.println("static.");

    useComputer();

    }//静态代码块调用静态结构。

}

http://www.hrbkazy.com/news/36747.html

相关文章:

  • 网站建设主要流程图seo优化教学视频
  • 动易网站系统怎么样公司员工培训方案
  • 怎样做网站管理搜索引擎营销优化
  • 用腾讯云服务器做网站快速学电脑培训班
  • 怎么查网站权重搜索大全引擎
  • wordpress网页教程百度云百度seo效果怎么样
  • 大学生创业服务网站建设方案友情链接获取的途径有哪些
  • 做兼职网站的项目初衷seo营销策略
  • vb可以做网站吗网络推广有几种方法
  • 企业网站建设知乎网店运营具体做什么
  • 在哪个网站做推广好经典营销案例分析
  • wordpress 优秀主题seo诊断分析
  • 网站建设的增值税税率佛山网站建设
  • 网站所属权在线域名查询网站
  • 自己做鲜花网站怎么样最新天气预报最新消息
  • 广告行业包括网站建设吗关键词排名优化怎么做
  • dedecms医院网站网页搜索关键词
  • 网站出售商品建设2023年火爆的新闻
  • 长春网站制作长春万网变现流量推广app
  • 免费推广的方式有哪些快速优化seo软件
  • 佛山全市住宅限购seo怎么弄
  • phpcms 网站栏目百度一下你就知道下
  • 禅城网站建设公司百度关键词seo外包
  • 广告公司网站建设营销型网站建设题库
  • 绍兴做网站的网络销售怎么干
  • 佛山房地产网站建设seo怎么弄
  • 做阀门的英文网站怎么写怎么联系百度客服
  • 网站做成软件免费百度管理员联系方式
  • 晚上做设计挣钱的网站什么软件可以免费引流
  • 网站模板红黑百中搜优化软件靠谱吗