`
xiaoxuan_blog
  • 浏览: 29607 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java基础之this关键字,静态代码块,单例设计模式

阅读更多

This关键字

 

this:就代表本累的对象

this代表它所在函数所属对象的引用。

简单说: 哪个对象在调用this所在的函数,this就代表哪个对象。

 

this的应用: 当定义类中功能时, 该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。

但凡本类功能内部使用了本类的对象,都用this表示。

----------------------------------------------------------------------------------------------------------------------

生成api帮助文档:

jacadoc -d 文件夹名 -author -version  java文件名   

----------------------------------------------------------------------------------------------------------------------

静态代码块

 

格式:

static

{

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

}

静态代码块的特点: 随着类的加载而执行,只执行一次,并优先于主函数。

用于给类惊醒初始化的。(一般用于初始化对象。)

----------------------------------------------------------------------------------------------------------------------

对象调用成员过程

 

对象的初始化过程

Person p=new Person("zhangsan",20);

该句话都做了什么事情?

1.因为new用到了Person.class,所以会先找到Person.class文件并加载到内存中。

2.执行该类中的static代码块,如果有的话,给Person.class类进行初始化。

3.在堆内存中开辟空间,分配内存地址。

4.在堆内存中建立对象的特有属性,并进行默认初始化。

5.对属性进行显示初始化。

6.对对象进行构造代码块初始化。

7.对对象进行对应的构造函数初始化。

8.将内存地址付给栈内存中的p变量。

----------------------------------------------------------------------------------------------------------------------

单例设计模式

 

设计模式:解决某一类问题最行之有效的方法。

java23种设计模式:

单例设计模式:解决一个类在内存只存在一个对象。

 

想要保证对象唯一:

1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象。

2.还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象。

3.为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。

 

这三部怎么用代码提现呢?(以下代码方式为:饿汉式)

1.将构造函数私有化。private Single(){};

2.在类中创建一个本类对象。private static Single s = new Single(); 

3.提供一个方法可以获取到该对象。public static Single getInstance(){ return s; }

 

 

 

对于事物该怎么描述,还怎么描述 

当需要将该事物的对象保证在内存中唯一时,就将以上的三步加上即可。

先初始化对象的为饿汉式,调用才初始化对象的为懒汉式。

Synchronized(懒汉式加到static后边,可以只进一个对象,但效率低,可双重判断,但代码量增加了)

记录原则:定义单例,建议使用饿汉式。

 

<!--EndFragment-->

0
0
分享到:
评论

相关推荐

    27_多线程_第2天(线程安全、线程同步、等待唤醒机制、单例设计模式)_讲义.doc

    【线程安全】 线程安全是指在多线程环境下,一个方法或代码块的执行...同时,单例设计模式在Java开发中也非常常见,尤其是在需要全局唯一实例的场景下。通过合理的线程管理,可以提升系统的并发性能,提高软件质量。

    Java基础知识总结大全

    例如,`java.lang.Runtime`类就是使用单例设计模式来实现的。其实现步骤如下: - 将构造函数设为私有,阻止外部创建新实例。 - 在类内部创建一个私有的静态实例。 - 提供一个公共的静态方法来返回该实例。 通过...

    java面向对象精华总结.pdf

    单例设计模式是解决一个类在存只存在一个对象的问题,可以通过私有化构造函数、在类中创建一个本类对象、提供一个方法可以获取到该对象来解决。 本文总结了 Java 面向对象编程的重要知识点,包括面向对象的思想、类...

    java单例模式开发的7种写法

    - 类似于第三种方式,但将实例化操作放在静态代码块中。 - **区别:** 实例化过程发生在类加载过程中,与第三种方式相似,但更加明确地指出了实例化的时机。 - **适用场景:** 同第三种方式。 #### 第五种:静态...

    浅谈Java中static关键字的作用

    static 关键字的一个重要用途就是实现单例设计模式。单例模式的特点是该类只能有一个实例,为了实现这一功能,必须隐藏类的构造函数,即把构造函数声明为 private,并提供一个创建对象的方法,由于构造对象被声明为 ...

    java基础之面向对象编程

    - **单例设计模式**:保证一个类只有一个实例,并提供一个全局访问点。 9. **Java Object类**: 所有Java类都默认继承自`Object`类,因此具备`Object`类的一些基本方法,如`equals()`, `hashCode()`, `toString()...

    java基础知识学习-个人笔记

    12. **单例设计模式** - 确保一个类只有一个实例,提供全局访问点。常见的实现方式有饿汉式和懒汉式。 13. **枚举类(Enum)** - 用于表示一组固定数量的值,枚举类的实例是固定的,不能被继承。 - 枚举类默认...

    Java基础英语词汇大全

    24. **设计模式(Design Pattern)**:解决软件设计中常见问题的经验总结,如单例模式、工厂模式。 以上词汇和概念构成了Java基础学习的重要部分。通过深入理解和实践,Java开发者能够编写出高效、可维护的代码,...

    JAVA学习笔记

    static关键字用于定义类级别的变量和方法,这包括静态代码块、静态变量和静态方法。它们的特点是属于类而非类的实例,并在类第一次被加载时初始化。 final关键字用于声明类、变量和方法,分别表示类不可被继承、...

    java快速学习笔记(已有基础)

    11. **单例设计模式**: - 单例模式确保一个类只有一个实例,并提供全局访问点。饿汉式单例在类加载时就创建实例,而懒汉式单例则在首次使用时创建。 以上就是从给定的笔记中提炼出的一些关键Java知识点,涵盖了...

    java多线程设计模式

    ### Java多线程设计模式详解 #### 一、Java多线程基础 Java语言自诞生以来,便内置了对多线程的支持。多线程可以让应用程序在同一时间处理多个任务,提高程序的执行效率和响应速度。Java中创建线程有两种基本方式...

    java中静态与非静态的区别

    4. **设计模式**: - 如果一个类只包含静态成员和静态方法,那么建议将其标记为`static`。同时,此类通常还会提供一个私有的构造函数来防止外部创建其实例。这种方式有时会被用来模拟单例模式的行为。 #### 二、...

    Java中static、this、super、final用途用法及实例.docx

    - **定义**: 使用`static`关键字修饰的代码块。 - **作用**: 类加载时执行一次,用于初始化静态变量等。 - **示例**: ```java class Value { static int c = 0; static { c = 15; } Value() { c = 15; } ...

    个人笔记--JAVA基础

    this关键字的使用** - 指向当前对象的引用。 - **3.1.11. static关键字的使用** - 用于定义静态变量或方法,不依赖于对象实例存在。 - **3.1.12. final关键字的使用** - 用于定义不可修改的变量或方法。 - **...

    Java中static、this、super、final用途,用法及实例

    在实际编程中,`final`在设计模式中也扮演着重要角色,例如在单例模式中,`final`常用来确保类只有一个实例。此外,`final`还可以用于方法参数,表示参数在方法内部不能被修改。 理解这些关键字的用法对于编写清晰...

    java秋招笔试面试知识点总结

    以上是对Java基础知识点的总结,内容覆盖了内存区域划分、对象和数组存储、构造方法与代码块、this关键字、单例模式、继承与接口、多态、final关键字、抽象类和接口、instanceof关键字、Object类方法以及内部类等。...

    传智播客_Java培训_毕向东_Java基础[03-面向对象]

    #### 3.7 单例设计模式 单例模式是一种常用的软件设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这在需要控制资源访问的地方非常有用,例如数据库连接或日志管理器。 实现单例模式的一般步骤如下: ...

    补上一篇面向对象知识总结的思维导图

    最后,代码块包括普通代码块、构造代码块和静态代码块,它们在特定时刻执行,如构造代码块在创建对象时运行,静态代码块在类加载时运行。 总的来说,面向对象的这些概念构成了JAVA编程的核心,理解并熟练运用它们...

    java基础知识笔记总结

    ### Java基础知识笔记总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是通过特定的计算机语言来编写指令,让计算机能够执行一系列任务的过程。 2. **Java语言概述,历史、特点** - Java是由Sun ...

Global site tag (gtag.js) - Google Analytics