單例模型和靜態載入綜合運用(優酷面試題)

来源:http://www.cnblogs.com/le-ping/archive/2017/08/24/7422630.html
-Advertisement-
Play Games

一:原題 二:原題講解 ...


一:原題

 1 /*
 2  * 運行結果
 3  * 2
 4  * 1
 5  */
 6 public class BookTest {
 7     static BookTest book = new BookTest();
 8     static int a;
 9     static int b = 0;
10 
11     private BookTest() {
12         a++;
13         b++;
14     }
15 
16     public static void main(String[] args) {
17         BookTest book = new BookTest();
18         System.out.println(book.a);
19         System.out.println(book.b);
20     }
21 
22 }

 

二:原題講解

 1 package com.heima.test;
 2 
 3 /*
 4  *程式執行時,jvm先載入Book類,然後載入new Book(),再載入靜態變數a和靜態變數b;但是
 5  *此時並沒有給a和b賦值(使用的是與其數據類型相對應的預設值,也即是兩個靜態變數a=0,b=0
 6  *載入進記憶體),所以new Book()調用它的私有構造方法里輸出a=1,b=1;然後給靜態變數賦初值,
 7  *也就是我們所給的值a不變,b又變成0(現在a=1,b=0);然後在主方法里又new Book()對象,再
 8  *次調用構造方法,也就是a變成了2,b變成了1.
 9  */
10 
11 /*
12  * 最後執行結果:
13       構造方法被調用了,調用之前:
14     a=0    b=0
15     構造方法調用之後:
16     a=1    b=1
17     靜態代碼塊被調用了:
18     a=5;    b=0
19     構造方法被調用了,調用之前:
20     a=5    b=0
21     構造方法調用之後:
22     a=6    b=1
23     6
24     1
25  */
26 public class Book {
27     static Book book = new Book();
28     static int a = 5;
29     static int b = 0;
30     static {
31         System.out.println("靜態代碼塊被調用了:\na=" + a + ";\tb=" + b);// 也可以用Book.a和Book.b
32     }
33 
34     private Book() {
35         System.out.println("構造方法被調用了,調用之前:");
36         System.out.print("a=" + a + "\tb=" + b);// 也可以用Book.a和Book.b
37         a++;
38         b++;
39         System.out.println("\n構造方法調用之後:\na=" + a + "\tb=" + b);
40     }
41 
42     public static void main(String[] args) {
43         Book book = new Book();
44         System.out.println("a最後等於:" + book.a);
45         System.out.println("b最後等於:" + book.b);
46     }
47 
48 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、控制台輸出 在控制台輸出: 1 console.writeline(); 2 console.readkey(); 加上後面一句是為了保證彈窗不會一閃而過。 二、註釋 1.單行註釋: 1 //int a=90; 快捷鍵:Ctrl+K+c 2.多行註釋 2 /* int a=12; float b ...
  • 本系類將會講解asp.net core MVC中的內置全局過濾器的使用,將分為以下章節 asp.net core MVC 過濾器之ExceptionFilter過濾器(一) asp.net core MVC 過濾器之ActionFilter過濾器(二) asp.net core MVC 過濾器之Re ...
  • 由於System.Data.OracleClient.dll從.NET Framework4.0之後已被棄用,所以我們無法在.NET Framework高版本中使用。一番搜索之後,發現好多文章提到.NET連接Oracle需要安裝客戶端,安裝驅動,各種配置...感覺無比麻煩。 Oracle Entit ...
  • 一、 需求描述: mapreduce筆試題: 找出有共同好友的users usr:friend,friend,friend... A:B,C,D,F,E,O B:A,C,E,K C:F,A,D,I D:A,E,F,L E:B,C,D,M,L F:A,B,C,D,E,O,M G:A,C,D,E,F H ...
  • Razor Page介紹前言 上周期待已久的Asp.Net Core 2.0提前發佈了,一下子Net圈熱鬧了起來,2.0帶來了很多新的特性和新的功能,其中Razor Page引起我的關註,作為web程式員來說,Asp.Net下的任何web框架都會去特別關註,因為每次一個新的框架出來,意味著一次革命。... ...
  • 緩存資料庫介紹 NoSQL(Not Only SQL),即"不僅僅是SQL",泛指非關係型的資料庫。隨著互聯網web2.0網站的興起,傳統的關係資料庫在應對web2.0網站,特別是超大規模和高併發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以剋服的問題,而非關係型的資料庫則由於... ...
  • 學習Swift,從這裡開始! http://special.csdncms.csdn.net/the-swift-programming-language-in-chinese/index.shtml “輪子”工具類 SwiftyJSON:GitHub上最為開發者認可的JSON解析類 Dollar. ...
  • 狀態機 有限狀態機(Finite State Machine 或 Finite State Automata)是軟體領域中一種重要的工具。 狀態機允許一個對象在其內部狀態改變時改變它的行為。對象內部狀態決定行為方式,對象狀態改變行為方式改變,這裡強調內部狀態。 Command 模式是將命令請求封裝成 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...