1. 程式人生 > >單例模式之 物件的建立

單例模式之 物件的建立

上一篇說了類的載入 下面說下物件的建立,類載入以後會做以下事情

 類載入檢查:
  檢查這個指令的引數是否能在常量池中定位到一個類的符號引用,並且檢查這個符號引用代表的類是否已被載入、解析和初始化過。  如果沒有,那必須先執行相應的類的載入過程。

具體 參考 http://www.jianshu.com/p/ac162726d7de 文章很棒

看完以後對類的載入和物件的分配打個比方

JVM 你們把他想象成一個 公司(一個加工廠類似富士康)

類 一個做產品的公司(類似 蘋果和小米這些公司)

屬性 類似 配置 方法類似 自己獨有的作業系統(IOS android)

類 有自己的產品 沒有自己的工程 就找到了JVM 

JVM 看到類以後 進行載入(接單)

載入完以後 解析(解析分為 在公司裡面找曾經是否有類似的產品,有就使用 沒有就在造)

初始化  jvm 接單以後 做出了模型 現在開始生產 (初始化就是生成的過程)

在生產的時候 想象工程裡面只有一條生產線(執行緒),有一個管理員(指標),指標指揮這個生產線上做什麼,剛開始業務量比較小的時候只生成小米,發現一天生成線就夠用,後來小米活了,增加了 米1 米2 米3 米4 等產品 JVM 還接了 蘋果 魅族等業務, 指標的活就重,在一條生成線上不停的指揮,終於有一天累的指揮錯了 把小米的配置安裝到了蘋果手機上,蘋果手機虧損很多錢,就JVM 商量,承包一條生成線,JVM 給蘋果公司買了一條生成線,並且上了一把鎖 (synchroized)確保這條線上只生成蘋果手機,這樣就安全了

相關推薦

模式 物件建立

上一篇說了類的載入 下面說下物件的建立,類載入以後會做以下事情  類載入檢查:  檢查這個指令的引數是否能在常量池中定位到一個類的符號引用,並且檢查這個符號引用代表的類是否已被載入、解析和初始化過。

php模式實現物件只被建立一次

這是我在php面試題中遇到的一道試題,單例模式按字面來看就是某一個類只有一個例項,這樣做的好處還是很大的,比如說資料庫的連線,我們只需要例項化一次,不需要每次都去new了,這樣極大的降低了資源的耗費。 單例類至少擁有以下三種公共元素:     必須擁有一個建構函式,並

模式新的想法

dsi 配置 trac 單例對象 ack bool 感覺 曾經 Circul 前幾天被問到了單例模式對構造函數有什麽要求嗎?答曰:沒什麽要求吧? 回來查了下詳細的資料才發現,原來單例模式的實現private 的一個構造函數,目的是不讓這個單例的類可以new一個對象出來。

模式懶漢式

sta pre code sin -m 安全 rac content file ?? //單例模式之懶漢式 class Singleton{ private static Singleton instance = null; private Single

Java基礎 模式懶漢式

懶漢 私有 珍惜 src pac auth 如果 x64 version 禮悟: 好好學習多思考,尊師重道存感恩。葉見尋根三返一,活水清源藏於零。 虛懷若谷良心主,皓月當空自在王。願給最苦行無悔,誠勸且行且珍惜。 os :

多線程模式立即加載(餓漢模式)

run tel ext 相同 turn nbsp 加載 一個 nis package com.wz.thread.immediately;/** * 立即加載/餓漢模式 單例設計模式 * @author Administrator * */public class MyOb

php模式“三私一公”

外部 特點 概念 失去 spa get ins 應用 而且 單例模式的概念 單例模式是指整個應用中某個類只有一個對象實例的設計模式。具體來說,作為對象的創建方式,單例模式確保某一個類只有一個實例,而且自行實例化並向整個系統全局的提供這個實例。它不會創建實例副本,而是會向單

模式餓漢式

print bsp ati turn 線程安全問題 spa clas pub col class HungryMan { //設計模式之餓漢式,因為是static修飾的,所以是類成員, //在類被加載時就初始化對象了,不存在線程安全問題 stati

模式懶漢(延遲初始化)多執行緒再解析

單例模式之懶漢單例(延遲初始化)多執行緒再解析 1、多執行緒下的懶漢單例: public class Lazysingleton { private static Lazysingleton m_instance = null; // 私有預設構造方法

模式

單例模式分為兩種一種是繼承mono的一種是不繼承mono的 不繼承mono的 常用於資料的管理 不繼承mono: using System.Collections; using System.Collections.Generic; using UnityEngine; namesp

模式最終總結

1 單例模式的動機  為了節約系統資源,有時需要確保系統中某個類只有唯一一個例項,當這個唯一例項建立成功之後,我們無法再建立一個同類型的其他物件,所有的操作都只能基於這個唯一例項。為了確保物件的唯一性,我們可以通過單例模式來實現,這就是單例模式的動機所在。   2 單例模式

模式JAVA實現--如何實現真正的安全模式

單例模式 什麼是單例模式 單例模式屬於管理例項的創造型型別模式。單例模式保證在你的應用種最多隻有一個指定類的例項。 單例模式應用場景 專案配置類 讀取專案的配置資訊的類可以做成單例的,因為只需要讀取一次,且配置資訊欄位一般比較多節省資源。通過這個單例的類,

模式兩種建立方式

在建立單例模式的時候,如果單純的只考慮單例而不思考那樣做的話會產生什麼問題這樣是不嚴謹的,比如會發生執行緒安全問題,看了一些文章其中一篇寫得非常詳細有關單例模式的問題和效能比較,這篇文章http://blog.sina.com.cn/s/blog_62c7c3030100zw

模式內部靜態類

利用內部靜態類實現單例模式public class Singleton { private Singleton(){ } public static Singleton getInstance() { return Nested.instance; }

模式靜態內部類實現

這些天在看一本書,關於java多執行緒的,系統的掌握了多執行緒的一些知識,就簡單的把一些學習重要的知識記錄下來。 DCL可以解決多執行緒單例模式的非執行緒安全問題,當然也可以用其他方式,這裡就說另一種用內部類實現的。 如下程式碼: package test; public

【C++】模式C++實現

單例模式的概念 只允許一個產生一個物件的類單例模式的實現方法 1.單例類保證全域性只有唯一一個自行建立的例項物件 2.單例類提供獲取這個唯一例項的介面單例模式的優缺點 優點 (1)阻止其他度物件例項化

模式懶漢式餓漢式的原理和例項

在java面試題當中,我們經常會遇到單例模式的懶漢式和餓漢式的java筆試題,甚至面試官會問你在開發中,是否用上了這兩種開發模式,用在了哪些例子當中。想了解我們在開發中是否用上了這個,需要我們對這種兩種開發模式的原理有所瞭解。 懶漢式就是當用戶需要用到這個例項的時候,才會加

模式執行緒安全解析

面試的時候,常常會被問到這樣一個問題:請您寫出一個單例模式(Singleton Pattern)吧。     單例的目的是為了保證執行時Singleton類只有唯一的一個例項,最常用的地方比如拿到資料庫的連線,Spring的中建立BeanFactory這些開銷比較大的操作,

模式使用enum列舉資料型別實現

列舉enum和靜態程式碼塊的特性相似,在使用列舉類時,構造方法會被自動呼叫, 也可以應用這個特性實現單例模式。 package test; public class MyObject {

二、模式模式

單例模式建立方式有以下幾種方式: 餓漢模式 懶漢模式 註冊式模式 列舉式模式 序列化模式   1.餓漢模式 在類載入時初始化,也是利用類載入執行緒安全的特性確保了單例例項化的執行緒安全。 package com.kancy.pattern.single;