一些java的基礎知識

來源:互聯網
上載者:User

前言

(原標題好像有些問題,我想說的是本文不是什麼實際項目中一定會應用的知識,知識基礎概念問題,)關於java的基礎知識,只是在大二初學時看得多些,今天看了看張孝祥老師的視頻,突然發現自己根本不瞭解Java很多東西,有些是忘了,而有些以前根本不知道,拿來分享一下,這些你曾注意嗎?(牛人就不要往下看了)

 

1.“&”和“&&”的區別分析

“&”和“&&”的區別在於,如果使用前者串連,那麼無論任何情況,“&”兩邊的運算式都會參與計算。如果使用後者串連,當“&&”的左邊為false,則將不會計算其右邊的運算式。“|”和“||”的區別與“&”和“&&”的區別一樣。 

public class TestAnd 
{
public static void main(String[] args)
{
int x=0;
int y=3;
if(x!=0 && y==y/x)
System.out.println("y = "+y);
}
}

 
上面例子中,由於while語句的判斷條件中的第一個布林運算式是不成立的,程式就不會判斷第二個布林運算式的值,這就是“短路”。如果兩個運算式之間用“&”來串連,如果正好碰到上面所示的特殊情況,程式運行時就會出錯

2.浮點數在記憶體中的表示

這個在電腦原理和作業系統中看見的比較多,很基礎的,例如分析0x50000000所對應的浮點數

 

2.“>>”和“>>>”是啥玩意

前者是位移運算的右移,這個不難,那後面的又是什麼,區別在哪裡?

任何資訊在電腦中都是以二進位的形式儲存的,&,|,^除了可以作為邏輯運算子,也可以做為位算符,它們對兩個運算元中的每一個二進位位都進行運算。
只有參加運算的兩位都為1,&運算的結果才為1,否則就為0。
只有參加運算的兩位都為0,|運算的結果才為0,否則就為1。

 

 

 

只有參加運算的兩位不同,^運算的結果才為1,否則就為0。

我們可以對資料按二進位位進行移位操作,java的移位元運算符有三種:
<<  左移
>>  右移
>>> 無符號右移

public class ShiftTest 
{
  public static void main(String [] args)
  {
int x=0x80000000;
int y=0x80000000;
    x=x>>1;
    y=y>>>1;
    System.out.println(“0x80000000>>1 = ” + Integer.toHexString(x));
    System.out.println(“0x80000000>>>1 = ” + Integer.toHexString(y));
  }
}

運行結果如下:
0x80000000>>1 = c0000000
0x80000000>>>1 = 40000000

十六進位與二進的對比
    0x80000000 =1000,0000, 0000, 0000, 0000, 0000, 0000, 0000
    0xc0000000 =1100,0000, 0000, 0000, 0000, 0000, 0000, 0000
    0x40000000 =0100,0000, 0000, 0000, 0000, 0000, 0000, 0000

3.Java中多維陣列是不不是規則矩陣形式?

解釋:java 中並沒有真正的多維陣列,只有數組的數組, Java中多維陣列不一定是規則矩陣形式。比如下面兩個數組:

 

下面還有兩個思考題,不難但是你能否毫不猶豫的說出答案?

思考題1:

某個培訓中心要為新到的學員安排房間,假設共有x個學員,每個房間可以住6人,讓你用一個公式來計算他們要住的房間數?
答案:(x+5)/6。這種演算法還可用在查看留言板的分頁顯示上: 其中x是總共的留言數,6是每頁顯示的留言數,結果就是總共有多少頁。

思考題2:

假設你要讓x的值在0至9之間迴圈變化,請寫出相應的程式碼。
答案:

int x=0; 
while(true)
{
  x = (x+1)%10;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.