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

來源:互聯網
上載者:User

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

 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=015     構造方法調用之後:16     a=1    b=117     靜態代碼塊被調用了:18     a=5;    b=019     構造方法被調用了,調用之前:20     a=5    b=021     構造方法調用之後:22     a=6    b=123     624     125  */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.b32     }33 34     private Book() {35         System.out.println("構造方法被調用了,調用之前:");36         System.out.print("a=" + a + "\tb=" + b);// 也可以用Book.a和Book.b37         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 }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.