關於int和integer

 

你們能夠看一下下面這個java程序的運行結果java

int k = 1;
		int l = 1;
		System.out.println(k == l);
		
		int a = 128;
		int b = 128;
		System.out.println(a == b);
		
		Integer i = 1;
		Integer j = 1;
		System.out.println(i == j);
		
		Integer m = 128;
		Integer n = 128;
		System.out.println(m == n);

運行結果爲緩存

true
true
true
false

爲何或形成這種狀況呢,這就要從integer i =1的原理提及了,它至關於執行了integer i = Integer.valueOf(1);而在java的文檔中咱們能夠看到以下解釋
在這裏插入圖片描述「此方法將始終緩存」-128到127(含)範圍的值」,這句話的意思是在第一次integer i = 1時,1這個數字就被存到了緩存中,再次執行integer j = 1時,就會直接從緩存中取。因此i == j 是true。而m是128,將再也不進行緩存,m == n就是false。學習

我是一個正在偷偷努力學習java的大胖子,有任何問題你們均可以發在個人我的公衆號上邊,我也會盡可能幫你們解決,固然,我也只是一個正在學習java的人,並不能保證「每一個」問題都能回答上來,可是咱們能夠一塊兒交流。
還有個人我的公衆號會不定時更新個人java學習之路,你們若是也在學習java能夠在公衆號上邊與我交流哦。

code

相關文章
相關標籤/搜索