第六节 静态的(static)和单例模式

main函数

主函数是一个特殊的函数,作为程序的入口,可以被jvm(虚拟器)调用

主函数的定义

public 表示该函数的访问权限是最大的。
static 代表主函数随着类的加载就已经存在了。
void 主函数没有具体的返回值。
main 不是关键字,但是是一个特殊的单词,但是可以被jvm识别。
参数(String[] args) 参数的类型是一个数组,该数组的元素是String  args 参数名,所以可以改,args 全称arguments。
主函数是固定格式的,为了使jvm识别。
jvm在调用主函数,传入的是new String[0].我们也可以传入给定的值。

静态代码块

格式:
static{

静态代码块中执行的语句
}

特点

随着类的加载而执行,只执行一次。一般用于给类的初始化

练习:
静态代码块,构造代码块,构造方法执行顺序?

单例设计模式

先初始化对象称之为饿汉式子。
解决一个类在内存中只存在一个对象。
class Single(){
    private Single(){

    }
    Single ss = new Single();
    public Single getSingle(){

        return ss;
    }

}

class Demo(){
     public static void main(String[] args) {
     //new Single();
     //new Single();
     /* 想要保证对象的唯一:
       1、为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象。
       2、为了让其他程序可以访问到该类程序,只好在本类中自定义一个对象。
       3、为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。*/

     }

}

实现:

  1、构造函数私有化;
  2、在类中创建一个本类对象;
  3、提供一个方法可以获取到该对象;

实现方式二:

对象是方法被调用时,才初始化,也叫做对象的延时加载,称为:懒汉式
 class Single{
private static Single s = null;
private Single(){

}
public static Single getSingle(){
    if(s == null){
        synchronized(Single.class){
        if(s == null){
        s = new Single();
        }
        }
    }
return s;
}

}

 
时间: 2024-08-15 18:12:36

第六节 静态的(static)和单例模式的相关文章

第三百八十六节,Django+Xadmin打造上线标准的在线教育平台—HTML母版继承

第三百八十六节,Django+Xadmin打造上线标准的在线教育平台-HTML母版继承 母板-子板-母板继承 母板继承就是访问的页面继承一个母板,将访问页面的内容引入到母板里指定的地方,组合成一个新页面返回给浏览器 一般母板里都是写的一个网页里不变的地方,也就是通用的地方,被继承页(访问页)都是每个页面不同的地方,也就是将页面不同的地方引入到母板组合成一个新页面返回浏览器 母板里一般都是网页的.头部.底部.头部底部css.头部底部js 被继承页(访问页)里一般都是新内容,新内容的css和js 母

[ExtJS学习笔记]第六节 Extjs的类系统Class System命名规则及定义和调试

本文地址: http://blog.csdn.net/sushengmiyan/article/details/38479079 本文作者:sushengmiyan -------------------------------------------------------------资源链接----------------------------------------------------------------------- 翻译来源  Sencha Cmd官方网站:    http:

Spring Boot干货系列:(六)静态资源和拦截器处理

Spring Boot干货系列:(六)静态资源和拦截器处理 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类WebMvcConfigurerAdapter. 正文 前面章节我们也有简单介绍过SpringBoot中对静态资源的默认支持,今天详细的来介绍下默认的支持,以及自定义扩展如何实现. 默认资源映射 Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration

C++ Primer 学习笔记_24_类与数据抽象(10)--static 与单例模式、auto_ptr与单例模式、const成员函数、const 对象、mutable修饰符

C++ Primer 学习笔记_24_类与数据抽象(10)--static 与单例模式.auto_ptr与单例模式.const成员函数.const 对象.mutable修饰符 前言 [例]写出面向对象的五个基本原则? 解答:单一职责原则,开放封闭原则,依赖倒置原则,接口隔离原则和里氏替换原则 里氏替换原则:子类型必须能够替换他们的基类型. 设计模式分为三种类型:创建型模式.结构型模式和行为型模式 一.static 与单例模式 1.单例模式 单例模式的意图:保证一个类仅有一个实例,并提供一个访问它

第三百一十六节,Django框架,中间件

第三百一十六节,Django框架,中间件 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项目的settings模块中,有一个 MIDDLEWARE变量,其中每一个元素就是一个中间件(也就是一个中间件模块的一个类),如下. settings模块中 #中间件 MIDDLEWARE = [ 'django.middleware.security.Securit

第六节课:元组和集合

第六节课:元组合集合 首先,看一下英文对应词汇“迭代”->"iteration"->(computer science) a single execution of a set of instructions that are to be repeated; "the solution took hundreds of iterations" “递归”->“recurse"->To execute a procedure recur

第一百二十六节,JavaScript,XPath操作xml节点

第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准DOM去查找XML中的节点方式,大大降低了查找难度,方便开发者使用.但是,DOM3级以前的标准并没有就XPath做出规范:直到DOM3在首次推荐到标准规范行列.大部分浏览器实现了这个标准,IE则以自己的方式实现了XPath. 一.IE中的XPath 在IE8及之前的浏览器,XPath是采用内置基于A

centos mysql 优化 第十六节课

centos mysql  优化  第十六节课 f

NHibernate.3.0.Cookbook第一章第六节Handling versioning and concurrency的翻译

NHibernate.3.0.Cookbook第一章第六节Handling versioning and concurrency的翻译 第一章第二节Mapping a class with XML第一章第三节Creating class hierarchy mappings第一章第四节Mapping a one-to-many relationship第一章第五节Setting up a base entity class Handling versioning and concurrency