Java面試集合(四)

來源:互聯網
上載者:User

標籤:賦值運算   沒有   強制類型轉換   開發工具   ima   聲明   搜尋   構造方法   格式   

1. jdk,jre,jvm之間的關係

JVMJava虛擬機器,是Java跨平台的重要保障,JVM實現Java跨平台的前提,可以針對不同的作業系統,有不同的JVM

可以說Java語言是跨平台的,但JVM不是。

JREJava運行時環境,包含JVM+核心類庫。

JDKJava開發套件,包含開發工具+JRE

2. Java的分類 - JAVASE、JAVAEE、JAVAME

JavaSE為標準版,JavaEE為企業版,JavaME為微型版

3. Java中關鍵的保留字

Java中有兩個關鍵字目前沒有用,為gotoconst,在Java中,所有的關鍵字為小寫。

4. 標識符

標識符規則:可以使用字母,數字,_ ,以及貨幣符號 $,在Java中可以使用中文命名,但建議不用使用,不能使用關鍵字,也不能以數組開頭,注意區分大小寫,要見名知意

5. 駝峰命名法
  1. 類名和介面名,如果有多個單片語成,那麼每個單詞的首字母要進行大寫,如HelloWorld
  2. 變數名和方法名,如果有多個單片語成,那麼第一個單詞的首字母要小寫,其餘的單詞開頭的首字母要大寫,如helloWorld
  3. 常量名,無論有多少個單片語成,所有字母都是大寫,強調一點的是每個單詞之間要以 _ 隔開,如HELLO_WORLD
  4. 包名,無論有多少個單片語成,所有的字母都是小寫,強調一點的是每個單詞之間用以 . 隔開,如 cn.dashucoding.com
6. 註解

Java中的註解是用來解釋說明代碼的作用,有何用途,作為一名合格的程式員,必須懂得給代碼添加註解。

單行注釋

// 注釋文字

多行注釋

/*注釋文字*/

文檔注釋

/**注釋文字*/

文檔注釋中的文字是可以提取出來形成文檔的

7. 字面量

字面量:指的是在電腦中不可變的值

1.整數常量(所有的整數)
2.小數常量(所有的小數)
3.字元常量(將一個字母、數字、符號,用 ‘’ 標識起來)
4.字串常量(將一個或者多個字元用 “” 標識起來)
5.布爾常量(true和false)
6.空常量(null)

8. 進位

二進位:以0b/0B作為開頭 (0~1,滿2進1)
八進位:以0作為開頭(0~7,滿8進1)
十進位:沒有特殊標識(0~9,滿10進1)
十六進位:以0X/0x作為開頭(0~9,a~f,滿16進1)

進位間的轉化

十進位轉二進位:不斷除以2,然後取餘數
二進位轉十進位:從最低位依次乘以2的位次次冪,然後求和

同理:
十進位轉其他進位:除以對應的進位數,然後取餘數
其他進位轉十進位:從最低位依次開始,按位次乘以進位的位次次冪,然後求和

二進位轉八進位,也是從低位開始,每三位二進位為一組,產生一個八位元字,最高位不足三位,就補0,湊齊三位即可。
口訣:三變一

八進位轉二進位,每一位八位元都會產生三位位元字,不足三位就補0即可。
口訣:一變三

同理
二進位轉十六位進位:口訣為四變一
十六位進位轉二進位:口訣為一變四

9. 變數

格式:

資料類型 變數名 = 資料;int i = 2;// 變數的聲明int i;// 變數的賦值i = 2;// 儲存bit為最小單位,8位為1位元組(byte,簡寫為B)

資料類型

資料類型:基礎資料型別 (Elementary Data Type)引用資料類型

基礎資料型別 (Elementary Data Type)

byte-1 short-2 int-4 long-8
float-4 double-8 char-2 boolean
long---l float---f

引用資料類型

引用資料類型:數組,類,介面

10. 資料類型的轉換

資料類型的轉換:

  1. 自動類型轉換 / 隱式轉換
  2. 強制類型轉換 / 顯式轉換

自動類型轉換:小的類型可以自動轉為大的類型

char可以轉換為intlong可以轉換為float,其他往前轉換,可能產生精度損失

// short char // ok 可行 字面量如果在範圍內允許轉化short a = ‘b’;char c = 97;// not 不可行 可能超過範圍,所以不允許轉化char c = ‘a’;short b = c;

強制類型轉換:大類型強制轉化為小類型,會可能會導致資料丟失精度

// 強制類型轉換double d = 3.14int i = (int)d;
11. 運算子
+ - * / % ++ --

++ / -- 自增/自減

int j = i++;  // j = i ; i++int j = ++i;  // ++i ; j = ++i

賦值運算子

= += -= *= /= %= &= |= ^= <<= >>= >>>=

關係運算子

> < >= <= == !=

邏輯運算子

& 與Or 或Not 非^ 亦或&& 短路與|| 短路或短路 表示如果前面的運算式正確,後面的就不再運行&&:前邊的運算式結果為false,後面的就不再運行||:前面為true,後面就不再運行

位元運算

& | ^ << 左移 >> 右移 >>> 無符號右移 ~ 取反

&,將1看作true,將0看作false,0&任何數為0,1&奇數為1,1&偶數為0。

| ,有1為1。

三元運算子

格式:

邏輯值?運算式1:運算式2

運算子的優先順序

() ~ ++ -- ! * / % + - << >> >>> 關係 邏輯 & | ^ 三元 賦值

一元運算 > 二元運算 > 三元運算 > 賦值

12. 流程式控制制

if,if-else, if-else if

分支結構

if(邏輯值){代碼塊;}
if(邏輯值){代碼塊;} else {代碼塊;}
switch(邏輯值){case 值:代碼塊;break;case 值:代碼塊;break;...}

switch支援byte/short/char/int/String

while(邏輯值){代碼塊;}
do{代碼塊;} while(邏輯值);

while, do-while

for(定義迴圈變數; 控制條件; 改變迴圈變數){    代碼塊;}
13. break和continue

break:表示終止當前的一層迴圈結構
continue:表示跳過當前一次迴圈繼續下一個迴圈

14. 數組

格式:

資料類型[] 數組名 = new 資料類型[長度];
資料類型[] 數組名 = new 資料類型[]{元素1, 元素2, 元素3...};
int[] arr = new int[]{2,3,4,5,6};
int[] arr = {2,5,7,8,9};

數組的應用

  • 數組名[下標]
  • 數組名.length
  • 遍曆數組
  • 擷取數組中最值
  • 數組的排序
  • 反轉數組
  • 數組元素的尋找
for(int i = 0; i < arr.length; i++){System.out.println(arr[i]);}
for(int i : arr){System.out.println(i);}
// 冒泡排序for(int i = 1; i < arr.length; i++){for(int j = 1; j <= arr.length - i; j++){         if(arr[j - 1] > arr[j]){            int temp = arr[j - 1];            arr[j - 1] = arr[j];            arr[j] = temp;        }    }}
// 選擇排序for(int i = 1; i < arr.length ; i++){     for(int j = i; j < arr.length; j++){         if(arr[i - 1] > arr[j]){            int temp = arr[i - 1];            arr[i - 1] = arr[j];            arr[j] = temp;        }    }}

數組:Arrays.sort, Arrays.toString, System.arraycopy , Arrays.copyOf

15. 記憶體

Java記憶體:
棧記憶體、堆記憶體、方法區、本地方法棧、PC計數器(寄存器)

棧記憶體用來儲存的是變數
堆記憶體用來儲存的是對象

16. 方法

格式:

修飾符  傳回值類型 方法名(參數列表){方法體;return 傳回值;}

方法的重載

方法名相同但參數列表不同

方法的傳值

方法的傳值,基本類型傳實際值,參考型別傳地址

17. 快速鍵
Ctrl + x 剪下Alt + / 快捷提示鍵Ctrl + Shift + o 導包Ctrl + Shift + f    調整格式Ctrl + F 搜尋Ctrl + D 刪除一行
18. 成員變數和局部變數
  • 成員變數在類中,局部變數在方法中
  • 成員變數作用在整個類中,局部變數只能在它的方法中,或者語句中
  • 成員變數儲存在堆記憶體中,並自動賦予預設值;
  • 局部變數儲存在棧記憶體中,不自動賦予預設值

構造方法,與類名同名,沒有傳回值,構造方法可以重載
this關鍵字,代表本類中的對象的引用
可以用this調用本來中的對應形式的構造方法
物件導向的特徵為封裝,繼承,多態

結語
  • 下面我將繼續對JavaAndroid中的其他知識 深入講解 ,有興趣可以繼續關注
  • 小禮物走一走 or 點贊

Java面試集合(四)

聯繫我們

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