目次
php单例模式
php
1. [代码]单例
package com.factory; /* * 第一种方式创建单例 */ class OneSingleton{ private static int number =0; //私有属性 private static OneSingleton instance = new OneSingleton(); //OneSingleton的唯一实例 private OneSingleton(){} public static OneSingleton getInstance(){ return instance; } public synchronized int getNumber(){ //synchronized关键字表示方法是线程同步 return number; //任一时刻最多只能有一个线程进入该方法 } public synchronized int nextNumber(){ return number++; } } /* * 第二种创建单例方法 */ class TwoSingleton{ private static int number =0; private static TwoSingleton instance = null; private TwoSingleton(){} public static synchronized TwoSingleton getInstance(){ if(instance == null){ instance = new TwoSingleton(); } return instance; } public synchronized int getNumber(){ return number; } public synchronized int nextNumber(){ return number++; } } /** * @function 单例模式 * @author JarCode * 技术要点: * 单例模式有两种实现方式: * >>一种是将类的 构造方法私有化,用一个私有的类变量instance保存类的实例, *在加载类时,创建类的实例,改方法直接返回instance. * >>另一种是将类的 构造方法私有化,用一个私有的类变量instance保存类的实例, *在加载类时,将null赋给instance,再提供一个公有的静态方法getInstance * ,用于获取类的唯一实例,该方法首先判断instance是否为null, *如果为null,则创建实例对象,否则返回instance。 * * 两种方式的区别: * >>前者被加载时,类的唯一实例被创建,后者在第一次调用getInstance()方法时,类的唯一实例被创建,但需要在getInstance()方法中使用synchronized * 关键字,保证某一时刻只有一个线程调用此方法。 * */ public class TestSingleton { public static void main(String[] args) { OneSingleton one1 = OneSingleton.getInstance(); OneSingleton one2 = OneSingleton.getInstance(); System.out.println("用onsingleton实现单例模式"); System.out.println("调用nextnumber()方法之前:"); System.out.println("one1.number="+one1.getNumber()); System.out.println("one2.number="+one2.getNumber()); one1.nextNumber(); System.out.println("调用nextnumber()方法后:"); System.out.println("one1.number"+one1.getNumber()); System.out.println("one2.number"+one2.getNumber()); TwoSingleton two1 = TwoSingleton.getInstance(); TwoSingleton two2 = TwoSingleton.getInstance(); System.out.println("用twosingleton实现单例模式"); System.out.println("抵用nextnumber方法之前:"); System.out.println("two1.number="+two1.getNumber()); System.out.println("two2.number="+two2.getNumber()); two1.nextNumber(); System.out.println("调用nextnumber方法后:"); System.out.println("two1.number="+two1.getNumber()); System.out.println("two2.number="+two2.getNumber()); } }
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
2週間前
By 尊渡假赌尊渡假赌尊渡假赌
レポ:チームメイトを復活させる方法
4週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.ファイルの保存場所:それはどこにあり、それを保護する方法は?
3週間前
By DDD

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7316
9


Java チュートリアル
1625
14


CakePHP チュートリアル
1349
46


Laravel チュートリアル
1261
25


PHP チュートリアル
1208
29



PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
