static关键字

static关键字:

1.static修饰的变量叫做“静态变量”.

2.static修饰的方法叫做“静态方法”.

3.static还可以定义静态语句块.

以下例子演示:static定义静态语句块

static定义的静态语句块在类加载阶段执行,并且只执行一次,并且是自上而下的顺序执行。(main方法执行之前,static就已经执行。从上而下的执行,先执行static 后执行main)

public class StaticTest01{

//静态语句块

static{

System.out.println("1");

}

static{

System.out.println("2");

}

static{

System.out.println("3");

//入口

public static void main(String[] args){

System.out.println("main execute!  1");

System.out.println("main execute!  2");

}

}

第二节

一般情况下工具类中的方法大部分都是静态方法。

静态方法不用创建对象也能直接访问该方法。

*/

public class StaticTest03{

//成员方法

//成员方法必须使用“引用.”调用

public void m1(){

}

//静态方法

//可以使用“类名.”方式调用.也可以用“引用.”,即使用的是“引用.”,底层还是用的“类名.”  ,静态方法中不能直接访问非静态数据.  //静态方法中不能使用this、非静态数据包括非静态方法和成员变量!

public static void m2(){

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

}

//入口

public static void main(String[] args){

StaticTest03 st = new StaticTest03();

st.m1();

m2();

//静态的方法按照正规的方式访问:“类名.”  //静态的方法也能用“引用.”访问  st.m2(); //编译阶段检查出st是StaticTest03类型,编译通过,运行的时候,仍然使用 "StaticTest03."的方式访问。//该方法执行不需要对象。//空的引用去访问成员的时候会出现空指针异常。//m2方法不是“成员”而是静态的。//所以即使引用是空的,也不会报空指针异常。(其实也就是说,m2 方法执行底层是 不需要这个对象的。)(重要)

StaticTest03 s = null;

s.m2();

}

}

第三节

变量分类:

1.局部变量

2.成员变量(实例变量,非静态变量)

3.静态变量(方法区)

什么时候变量声明成静态变量?(所有的java对象都有这个属性,并且这个属性对应的值都是一样的。没必要让每个对象都保留一份,我们声明成静态变量,在方法区块只有一个,所有的对象公用一个,目的在节省内存)静态变量在类加载时初始化,而且只执行一次。

如果这个属性所有的对象都有,并且这个属性的值是相同的,则该属性声明成

静态的属性。

成员变量:成员变量在创建对象的时候初始化,并且存储在堆中的每一个对象中。

静态变量:在类加载阶段赋值,并且只赋值一次。

//静态变量,被存储在方法区.

//所有的java对象共享这一份。没必要在堆中创建去浪费空间。

//所以静态变量是类级别的,使用“类名.”的方式访问.

第四节 单例模式

单例模式是23种设计模式中最简单的一种设计模式。

为了解决什么问题?为了保证JVM(虚拟机)中某一个类型的java对象永远只有一个。为了节省内存的开销。(这就是优点)(我们知道对象创建完成户,会放到堆中,如果堆中的实例过多,将会存在特别多的垃圾,这样会导致一些问题,比如内存溢出 ,使用单例模式,只会创建一个实例,显著减少了对象实例的个数,同时也提高了性能,因为不会频繁的创建对象,这只是它的一个好处。)

//==两边如果是基本数据类型,可以比较这两个基本数据类型是否相等。

//==两边如果是引用数据类型,则比较的是内存地址。

实现单例模式

什么是设计模式:设计模式是可以重复利用的解决方案。

单例模式要领:

1.构造方法私有化

2.对外提供一个公开的静态的获取当前类型对象的方法.

3.提供一个当前类型的静态变量。

单例模式分为两种:

饿汉式单例:在类加载阶段就创建了对象。

懒汉式单例:用到对象的时候才会创建对象。

public class Singleton{ //懒汉式单例

//静态变量

private static Singleton s;

//将构造方法私有化

private Singleton(){}

//对外提供一个公开获取Singleton对象的方法.

public static Singleton getInstance(){

if(s==null){

s = new Singleton();

}

return s;

}

}

/*

饿汉式单例模式

*/

public class Customer{

//类加载时只执行一次。

private static Customer c = new Customer();

//构造方法私有化

private Customer(){}

//提供公开的方法

public static Customer getInstance(){

return c;

}

}+

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容