java關鍵字
關鍵字概述
被Java語言賦予特定含義的單詞
關鍵字特點
組成關鍵字的字母全部小寫
關鍵字注意事項
goto和const作爲保留字存在,目前並不使用
類似Notepad++這樣的高級記事本,針對關鍵字有特殊的顏色標記,非常直觀
java 之 標識符
標識符概述
就是給類,接口,方法,變量等起名字時使用的字符序列
組成規則
英文大小寫字母
數字字符
$和_
注意事項
不能以數字開頭
不能是Java中的關鍵字
區分大小寫
java標識符(常見命名規則)
包(其實就是文件夾,用於解決相同類名問題)
單級和多級分別舉例
類或者接口
一個單詞和和多個單詞(全部小寫)
方法和變量
一個單詞和和多個單詞分別舉例(第二個單詞字母開始大寫)
常量
一個單詞和和多個單詞分別舉例(全部大寫,第二個單詞以_分割)
註釋
註釋概述
用於解釋說明程序的文字
Java中註釋分類格式
單行註釋
格式: //註釋文字
多行註釋
格式: /* 註釋文字 */
文檔註釋
格式:/** 註釋文字 */
註釋是一個程序員必須要具有的良好編程習慣。
初學者編寫程序可以養成習慣:先寫註釋再寫代碼。
將自己的思想通過註釋先整理出來,在用代碼去體現。
因爲代碼僅僅是思想的一種體現形式而已。
常量
常量概述
在程序執行的過程中其值不可以發生改變
Java中常量分類
字面值常量
自定義常量
字符串常量 用雙引號括起來的內容
整數常量 所有整數
12,23
小數常量 所有小數
12.34,56.78
字符常量 用單引號括起來的內容
‘a’,’A’,’0’
布爾常量 較爲特有,只有true和false
空常量 null
Java針對整數常量提供了4種表現形式
二進制
八進制
十進制
十六進制
進制概述
進制:就是進位制,是人們規定的一種進位方法。 對於任何一種進制--X進制,就表示某一位置上的數運算時是逢X進一位。二進制就是逢二進一,八進制是逢八進一,十進制是逢十進一,十六進制是逢十六進一。
不同進制的數據組成
二進制
由0,1組成。以0b開頭
八進制
由0,1,…7組成。以0開頭
十進制
由0,1,…9組成。整數默認是十進制的
十六進制
由0,1,…9,a,b,c,d,e,f(大小寫均可)。以0x開頭
進制轉換
其他進制到十進制
通過十進制推出結論
把0b100,0100,0x100轉換成十進制
十進制到其他進制
通過十進制推出結論
把52分別表示成二進制,八進制,十六進制
十進制和二進制的快速轉換
8421碼
100轉成二進制
101101轉成十進制
二進制和八進制,十六進制如何轉換
以十進制作爲橋樑
二進制到八進制 3位組合
100110
二進制到十六進制 4位組合
100110
有符號數據表示法
在計算機內,有符號數有3種表示法:原碼、反碼和補碼。所有數據的運算都是採用補碼進行的。
原碼
就是二進制定點表示法,即最高位爲符號位,“0”表示正,“1”表示負,其餘位表示數值的大小。
反碼
正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
補碼
正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
變量
變量概述
在程序執行的過程中,在某個範圍內其值可以發生改變的量
理解:如同數學中的未知數
變量定義格式
數據類型 變量名 = 初始化值;
注意:格式是固定的,記住格式,以不變應萬變
數據類型
Java語言是強類型語言,對於每一種數據都定義了明確的具體數據類型,在內存總分配了不同大小的內存空間
使用變量注意事項:
作用域
變量定義在哪一級大括號中,哪個大括號的範圍就是這個變量的作用域。相同的作用域中不能定義兩個同名變量。
初始化值
沒有初始化值不能直接使用
在一行上建議只定義一個變量
可以定義多個,但是不建議
+是一個運算符, 我們應該能夠看懂,做數據的加法。
boolean類型不能轉換爲其他的數據類型
默認轉換
byte,short,char—int—long—float—double
byte,short,char相互之間補轉換,他們參與運算首先轉換爲int類型
強制轉換
目標類型 變量名=(目標類型)(被轉換的數據);
運算符
算術運算符
賦值運算符
比較運算符
邏輯運算符
位運算符
三目運算符
算術運算符
+,-,*,/都是比較簡單的操作,簡單演示即可
+的幾種作用:
加法
正數
字符串連接符
除法的時候要注意一個問題:
整數相除,只能得到整數
要想得到小數,可以*1.0
/和%的區別
++和--的應用
單獨使用效果相同
參與運算使用,在操作數的前後效果不同
賦值運算符
符號:
= , +=, -=, *=, /=, %=
=爲基本的賦值運算符,其他的爲擴展的賦值運算符
邏輯運算符
邏輯運算符用於連接布爾型表達式,在Java中不可以寫成3<x<6,應該寫成x>3 & x<6 。
“&”和“&&”的區別:
單&時,左邊無論真假,右邊都進行運算;
雙&時,如果左邊爲真,右邊參與運算,如果左邊爲假,那麼右邊不參與運算。
“|”和“||”的區別同理,雙或時,左邊爲真,右邊不參與運算。
異或( ^ )與或( | )的不同之處是:當左右都爲true時,結果爲false。
三目運算符
格式
(關係表達式)?表達式1:表達式2;
如果條件爲true,運算後的結果是表達式1;
如果條件爲false,運算後的結果是表達式2;
示例:
獲取兩個數中大數。
int x=3,y=4,z;
z = (x>y)?x:y;//z變量存儲的就是兩個數的大數。
鍵盤錄入數據
鍵盤錄入數據概述
我們目前在寫程序的時候,數據值都是固定的,但是實際開發中,數據值肯定是變化的,所以,我準備把數據改進爲鍵盤錄入,提高程序的靈活性。
如何實現鍵盤錄入數據呢?(目前先記住使用)
導包(位置放到class定義的上面)
import java.util.Scanner;
創建對象
Scanner sc = new Scanner(System.in);
接收數據
int x = sc.nextInt();
流程控制語句
在一個程序執行的過程中,各條語句的執行順序對程序的結果是有直接影響的。也就是說程序的流程對運行結果有直接的影響。所以,我們必須清楚每條語句的執行流程。而且,很多時候我們要通過控制語句的執行順序來實現我們要完成的功能。
流程控制語句分類
順序結構
選擇結構
循環結構
順序結構
順序結構概述
是程序中最簡單最基本的流程控制,沒有特定的語法結構,按照代碼的先後順序,依次執行,程序中大多數的代碼都是這樣執行的。
總的來說:寫在前面的先執行,寫在後面的後執行
選擇結構
選擇結構
也被稱爲分支結構。
選擇結構有特定的語法規則,代碼要執行具體的邏輯運算進行判斷,邏輯運算的結果有兩個,所以產生選擇,按照不同的選擇執行不同的代碼。
Java語言提供了兩種選擇結構語句
if語句
switch語句
選擇結構(if語句)
if語句有三種格式
if語句第一種格式:
if(關係表達式) {
語句體
}
執行流程
首先判斷關係表達式看其結果是true還是false
如果是true就執行語句體
如果是false就不執行語句體
選擇結構(switch語句)
格式解釋
switch表示這是switch語句
表達式的取值:byte,short,int,char
JDK5以後可以是枚舉
JDK7以後可以是String
case後面跟的是要和表達式進行比較的值
語句體部分可以是一條或多條語句
break表示中斷,結束的意思,可以結束switch語句
default語句表示所有情況都不匹配的時候,就執行該處的內容,和if語句的else相似。
執行流程
首先計算出表達式的值
其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。
最後,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然後程序結束掉。
注意事項
case後面只能是常量,不能是變量,而且,多個case後面的值不能出現相同的
default可以省略嗎?
可以省略。一般不建議。除非判斷的值是固定的。(單選題)
break可以省略嗎?
可以省略,一般不建議。否則結果可能不是你想要的
default的位置一定要在最後嗎?
可以出現在switch語句任意位置。
switch語句的結束條件
遇到break
執行到程序的末尾
switch語句格式:
switch(表達式) {
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;
…
default:
語句體n+1;
break;
}
循環結構
循環語句可以在滿足循環條件的情況下,反覆執行某一段代碼,這段被重複執行的代碼被稱爲循環體語句,當反覆執行這個循環體時,需要在合適的時候把循環判斷條件修改爲false,從而結束循環,否則循環將一直執行下去,形成死循環。
循環語句的組成
初始化語句:
一條或者多條語句,這些語句完成一些初始化操作。
判斷條件語句:
這是一個boolean 表達式,這個表達式能決定是否執行循環體。
循環體語句:
這個部分是循環體語句,也就是我們要多次做的事情。
控制條件語句:
這個部分在一次循環體結束後,下一次循環判斷條件執行前執行。通過用於控制循環條件中的變量,使得循環在合適的時候結束。
循環結構(for循環語句)
for循環語句格式:
for(初始化語句;判斷條件語句;控制條件語句) {
循環體語句;
}
執行流程
A:執行初始化語句
B:執行判斷條件語句,看其結果是true還是false
如果是false,循環結束。
如果是true,繼續執行。
C:執行循環體語句
D:執行控制條件語句
E:回到B繼續
注意事項
判斷條件語句的結果是一個boolean類型
循環體語句如果是一條語句,大括號可以省略;如果是多條語句,大括號不能省略。建議永遠不要省略。
一般來說:有左大括號就沒有分號,有分號就沒有左大括號
循環結構(while循環語句)
while循環語句格式:
基本格式
while(判斷條件語句) {
循環體語句;
}
擴展格式
初始化語句;
while(判斷條件語句) {
循環體語句;
控制條件語句;
}
循環結構(for循環和while循環的區別)
for循環語句和while循環語句可以等價轉換,但還是有些小區別的
使用區別:控制條件語句所控制的那個變量,在for循環結束後,就不能再被訪問到了,而while循環結束還可以繼續使用,如果你想繼續使用,就用while,否則推薦使用for。原因是for循環結束,該變量就從內存中消失,能夠提高內存的使用效率。
場景區別:
for循環適合針對一個範圍判斷進行操作
while循環適合判斷次數不明確操作
循環結構(do…while循環語句)
do…while循環語句格式:
基本格式
do {
循環體語句;
}while((判斷條件語句);
擴展格式
初始化語句;
do {
循環體語句;
控制條件語句;
} while((判斷條件語句);
循環結構(區別及注意事項)
三種循環語句其實都可以完成一樣的功能,也就是說可以等價轉換,但還是有小區別的:
do…while循環至少會執行一次循環體。
for循環和while循環只有在條件成立的時候纔會去執行循環體
注意事項:
寫程序優先考慮for循環,再考慮while循環,最後考慮do…while循環。
如下代碼是死循環
while(true){}
for(;;){}
跳轉控制語句(break)
break的使用場景:
在選擇結構switch語句中
在循環語句中
離開使用場景的存在是沒有意義的
break的作用:
跳出單層循環
跳出多層循環
帶標籤的跳出
格式:標籤名: 循環語句
標籤名要符合Java的命名規則
跳轉控制語句(continue)
continue的使用場景:
在循環語句中
離開使用場景的存在是沒有意義的
continue的作用:
單層循環對比break,然後總結兩個的區別
break 退出當前循環
continue 退出本次循環
跳轉控制語句(return)
return關鍵字不是爲了跳轉出循環體,更常用的功能是結束一個方法,也就是退出一個方法。跳轉到上層調用的方法。
(工作需要……順便整理……歡迎大家補充提意見)