編程規範不是語法, 是業內約定俗成的規則,程序員的潛規則。
Java的編程規範如下:(詳細版本請參見阿里巴巴java手冊)
1 每個部分之間用空行隔開。
2 要有空格和縮進。
3 所有類名要首字母大寫,其它單詞首字母也大寫。
4 變量名和方法名首字母小寫,其它單詞首字母大寫。
5 包名全小寫,不同單詞用點或者下劃線隔開。
6 常量所有字母都大寫,不同單詞之間用下劃線隔開。XXX_YYY_ZZZ
7 最好望文知意,儘量不要使用中文。
變量就是用於存取數據的,可以進行各種運算。變量本質就是一塊內存。
程序必須的硬件是cpu和內存,CPU用於運算,內存用於儲存數據。
無盤工作站:只包含CPU和內存。
硬盤和內存的區別:
內存是cpu可以直接訪問的存儲,因此速度快;但關機後會消失,不能永久保存。(此處不考慮RAM和ROM的問題)
硬盤cpu不能直接訪問,需要加載到內存中才能使用,因此速度慢;但關機後可以保存。
數據在內存中以 變量 的形式存儲;在硬盤中以 文件 的形式存儲。
Java是強類型語言,變量在使用前必須聲明。
Java變量使用前必須聲明和初始化,聲明就是變量第一次出現時,帶類型定義。聲明只做一次,以後直接使用即可。初始化就是第一次給變量賦值。
變量名必須先是標識符,標識符命名的一些規則:
1 必須是字母、數字、下劃線、$等,不能是隨意的字符。
2 數字不能是第一個字符。
3 不能是Java關鍵字,比如:public static class ….
4 不可以使用關鍵字和保留字,但能包含關鍵字和保留字。
5 可以是漢字,但是不推薦使用。
6 Java中嚴格區分大小寫,長度無限制。
7 標識符不能包含空格。
標識符可以給類/變量/屬性/方法/包 起名字。
JAVA中所有關鍵字均是小寫,小寫的不一定都是關鍵字。
保留關鍵字:const goto
Java的虛擬機是用C++寫的。
extends 繼承 ; final用來定義常量 ;
try catch finally 的組合用於處理異常 ;
implements 實現接口 和extends組合用於實現繼承;
instance of 判斷變量類型(多態的內容);interface 接口;
native 本地(調用系統);new 創建對象;
private protected public 代表訪問權限;
return 方法返回值; strictfp 精確浮點運算;
enum 枚舉 ; transiend I/O的內容
Java中變量按照數據類型分爲基本數據類型和引用數據類型。
基本類型有8種。
整型:byte(8 bit) short int(默認類型) long
浮點型:float double (默認類型)
字符型:char('')
布爾類型: boolean(只能取值爲true 或false,不能取null)
補充:按照在類中存在的位置的不同:成員變量 vs 局部變量
引用數據類型是更廣泛的,包括所有的:類、接口、數組、枚舉和標註。
內存/硬盤的存儲單位:
計算機最基本的存儲單位,一個二進制位(bit)。
計算機的底層只能存1和0,代表有電和沒電。
計算機由很多個二進制位組成。
存儲最常用的單位是 字節(byte),8個bit等於1個byte。
文件/內存的大小經常使用 kb / mb / gb / tb ,1k = 1024。也就是2的10次方。
基本類型包括:
整型4種 byte(1字節) / short(2) / int(4) / long(8)
浮點2種 float(4) / double(8)
布爾 boolean(1)
字符 char(2)
byte 的表述範圍: -128 到 127 (負的2的7次方到正的2的7次方減1)
int 的表述範圍: -2的31次方到2的31次方減1(正負21億多)
整型默認是int,浮點默認是double。
整型可以用二進制、八進制、十六進制和十進制。其中,十六進制的10用A表示,15用F表示。以0開始的是八進制,以0x開始的是十六進制。
10 -> 10
010 -> 8
0x10 -> 16
二進制和十進制的進制轉換:
二進制中,第一位叫符號位,0代表非負數,1代表負數,不參與運算。
正數的二進制轉十進制 (以八位二進制爲例)
權重:符號 64 32 16 8 4 2 1
0 1 1 1 0 1 0 1 -> 64+32+16+4+1 = 117
練習: 0101 1011 -> 64+16+8+2+1 = 91
正數的十進制轉二進制
除2取餘數,反向輸出。
91 餘1
45 餘1
22 餘0
11 餘1
5 餘1
2 餘0
1 餘1
0 0101 1011
57轉二進制0011 1001
負數的十進制轉二進制 需要先把正數的轉換完成,再按位取反後加1(補碼)。
十進制轉二進制:
-95
95 -> 95-64 = 31-16 = 15-8 =7 -4 =3 -2 = 1
0 1 0 1 1 1 1 1 -> 0101 1111
1010 0000+1 = 1010 0001
-108 -> 0110 1100 -> 1001 0100
二進制轉十進制:
先減1,再按位取反可以得到對應的正數。
按位取反後加1(補碼)。
1010 0001 -1 = 1010 0000 -> 0101 1111 -> -95
0101 1110 +1 = 0101 1111 -> -95
1100 0011 -> 0011 1101 -> -61
設計一套砝碼,要求能稱1-100的所有重量,最少幾個砝碼。(砝碼只在天平一邊)
二進制表示1-100 所以 64 32 16 8 4 2 1 就可以。
long類型範圍比int大,long類型的常數後面加L/l。
浮點類型:(小數)
float和double都是浮點,但Java的浮點都不準,只是一個算法近似值。
float叫單精度浮點,double叫雙精度浮點。
0.1+0.2 不等於0.3 但是: 0.1+0.2+0.2 等於0.5 。
系統默認浮點是double,float必須加 f/F。0.3 是double , 0.3f是float。
如果計算比long大的整數或者精確(按多少位)運算,使用BigDecimal類。
字符類型:
字符類型的變量具備兩種身份:字符和整數。對外是字符,但存的是整數,就是字符的編碼。常見的編碼:'A':65 'a':97 '0':48。
'0' 0 "0"不一樣,分別是字符0,數字0和字符串0。
字符的表示方式:'a' '\uXXXX' 97 。
\ 是轉義字符,常見的用法: '\n'換行 '\t'跳一個製表位 '\\'代表一個\
基本類型的類型轉換:
1、 自動轉換髮生在小的表述範圍到大的表述範圍,即容量小的數據類型自動轉換爲容量大的數據類型。
布爾類型不參與類型轉換。
byte-> short / char -> int -> long -> float -> double
常數可以自動類型轉換。
注意:byte short char之間做運算,結果爲int型!
2 、大的向小的轉換時,需要強制類型轉換,就是(目標類型)
作業:
1 輸入圓的半徑,輸出圓的周長(2*PI*r)和麪積(PI*r*r)。
2 輸入4位整數,反向輸出。比如:輸入1234,輸出4321。 1230 -> 321。
public class Reverse{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個四位整數");
int num = sc.nextInt(); //1 讀入
int a = num%10; //個位數
int b = num/10%10;//十位數
int c = num/100%10;//百位數
int d = num/1000;//千位數 2 取位數
int res = a*1000+b*100+c*10+d;//3 拼裝
System.out.println(res);
}
}