单例模式(java环境)

程序中只需要创建某个类的一个实例,用到单例模式。

应用场景:Runtime类、数据库连接池、日志管理(例如:log4j)

实现原理:一个类,内部定义了该类的静态变量,并且定义了获取该静态变量的静态方法;构造函数的访问权限定义为 private;

饿汉式单例模式:(类加载时被创建)

 1 public class Singleton {
 2   private static Singleton instance = new Singleton();
 3   private Singleton(){   // 访问权限 私有 是为了 防止类外通过构造函数获取该类的实例
 4   ...
 5   }
 6   public static Singleton getInstance (){
 7       return instance;
 8   }
 9
10 }

懒汉式单例模式:(需要获取时才进行创建)

 1   public class Singleton {
 2     private static Singleton instance = null;
 3     private Singleton(){   // 访问权限 私有 是为了 防止类外通过构造函数获取该类的实例
 4      ...
 5     }
 6     public static Singleton getInstance (){ 7        if(instance == null){ 8          instance = new Singleton(); 9        }
 10       return instance;
11    }
 12
 13 }

懒汉式单例模式在单线程下没什么问题,但是在多线程下会创建 多个实例。与单例模式的初衷相悖,所以有了 双检索机制的 懒汉式单例模式。

双检索机制的懒汉式单例模式:

 1 public class Singleton {
 2     private static Singleton instance = null;
 3     private Singleton(){
 4        ...;
 5     }
 6     public static Singleton getInstance(){
 7         if( instance == null ){
 8            synchronized ( Singleton.class) { // 增加同步机制
 9                if( instance == null ) {
10                    instance = new Singleton();
11                }
12            }
13         }
14     }
15 }

 

时间: 2024-10-06 16:26:32

单例模式(java环境)的相关文章

sublime配置java环境

今天突然不想用eclipse编写java了,觉得sublime挺好用,就想用sublime配置java环境,以下是过程以及出现的问题. 一.配置Java环境 1.打开我的电脑–属性–高级–环境变量 2.新建两个环境变量: JAVA_HOME=D:\Program Files\Java\jdk1.7.0_51 CLASSPATH= .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 3.编辑Path环境变量,增加如下路径: %JAVA_HOME%

Ubuntu 下如何设置 Java 环境变量

1.下载 jdk,当前的版本是 jdk-8u45.选择适合自己系统的版本进行下载,下载好之后放在 Download 目录下 2.然后使用 Ctrl + Alt + t 打开终端进入 Download 目录下,使用 tar -xf jdk-8u45-linux-x64.tar.gz 命令进行解压,接着再使用命令 sudo cp -r jdk1.8.0_45/ /usr/lib/,输入密码,即可将其拷贝到 /usr/lib 目录下.此时使用 ls /usr/lib/jdk1.8.0_45 命令便可查

在ubuntu中配置java环境变量遇到的一些问题

最近因为重装了系统,所以需要重新配置java环境变量,本来打算在/etc/environment中配置的,但是配置好以后重启发现登录不进图形界面了,ctrl+alt+F2~6都可以进入命令行,但是在命令行中尝试用sudo su切换到root用户又会失败,查了一些资料后发现是因为environment中不要用export来配环境变量,这样会导致登录失败的问题,而且因为配java路径的时候我们在原来的PATH前面添加了一些路径,导致后面的/bin和/usr/bin等目录都找不到了,因此也就无法找到s

JAVA环境配置及jvm优化注解

1, 设置java环境变量,如下: # vim /etc/profile.d/development.sh export JAVA_HOME=/data/jdk1.7.0_25 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH # source /etc/profile.d/

Java环境搭建与配置

JDK下载与安装 俗话说,工欲善其事,必先利其器.首先开发Java,先需要下载JDK安装包,官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,点击后下载: 根据自己的电脑配置或者需要,最好后续的所有软件位数都选择一样,否则会有一些问题 点击下载后,进行安装,安装如非特别需要,一直默认安装即可(点击 下一步) Java环境变量配置 安装完成后,右击 我的电脑,点击 属性,选择 高级系统设置:   ==

java环境下的base64解码程序设计

最近遇到一个ctf题,要求求解一个字符串经过几次base64解码可以恢复成正常的字符串.原题的字符串如下: Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVUbGhoTVVwVVZtcEJlRll5U2tWVWJHaG9UVlZ3VlZacVFtRlRNbEpJVm10a1dHSkdjRTlaVjNSR1pVWmFkR05GU214U2JHdzFWVEowVjFaWFNraGhSemxWVmpO

hadoop2.7.2修改配置文件,配置linux java环境变量

1.修改core-site.xml,加上 <property> <name>fs.defaultFS</name> <value>hdfs://backup02:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/zhongml/hadoop-2.7.2/tmp</val

java环境搭建系列:JDK环境变量详细配置

学习java语言,编写java程序,运行java程序,都离不开Java环境的支持,最重要的就是安装JDK,JDK给我提供了java程序的开发环境和运行环境.为了让java程序放在电脑的任意位置都可以执行,jdk的配置环境变量就可以解决这个问题.JDK一般都需要配置三个环境变量JAVA_HOME,HOME和CLASSPATH.下面我就来说说关于这三个环境变量的配置. ☆ 准备工作 ①,保证自己自己电脑安装合适的jdk(jdk和电脑系统的位数一致) ②,知道怎么打开dos(注:window徽标键+R

红帽6.5下Java环境的搭建

红帽6.5下Java环境的搭建 一.安装包 安装包的选择根据自己的需求以及其他软件环境需要的,比如某些软件版本还不到支持jdk1.7的程度,还有linx和windows下的安装包格式不一样,这些都是要考虑到的 这次是使用jdk1.7. 二.将安装包解压缩到某个目录下,并做一个软链接 1.将压缩包解压缩到/usr/local/目录下,注意后面的参数-C 2.在该目录下我们可以将长的jdk等做个软链接,其好处就是,在你做之后的操作时,可以不需要写大串的字符,比如环境变量的配置 3.下一步该配置jav

2016.8.26 Windows系统上 搭建 Java环境

---恢复内容开始--- 1. 建一个目录 将不同版本的Java环境分类 2. 下载安装程序 因为项目中用的都是1.7  所以并未用1.8版本 x86 指代的32位系统, x64指代64位系统,现在一般都是x64 3. 安装过程中说明 指定安装JDK目录, JRE目录(一般使用默认). 如从未在机器上装java 一般会装 一次jdk 和一次jre JDK: Java Developer's Kit JRE: Java Runtime Environment 为什么会要有两套JRE? 首先 , J