常量,變量和運算符

常量,變量和運算符

1. 計算機中的數據存儲

1.1 計算機中數據存儲單位
計算機中最小存儲單元是 字節 byte bit
	一個字節對應8個bit位,也就是8個二進制位
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024PB = 1EB

2017年 阿里巴巴 雲棲大會 馬雲爸爸 得數據者得天下
用戶畫像
1.2 進制關係
十進制 十二進制 二十四進制 六十進制 七進制

開發中可能會使用到進制
	十進制
	二進制
	八進制
	十六進制
進制 基數範圍 進制規則
十進制 0 ~ 9 逢十進一
二進制 0,1 逢二進一
八進制 0 ~ 7 逢八進一
十六進制 0 ~ 9 A ~ F 逢十六進一
Java中支持最大進制是多少?
	最大支持36 十個數字 + 26個字母 0 ~ 9 A ~ Z

十進制 
	118(10)
	十進制轉換爲二進制 使用計算器 
	118(10) = 0111 0110(2)
二進制
	1011 1110(2) == 190 也是使用計算器

八進制
	展示方式
	要求八進制數是以0開頭
	0777 0666 
	0898 ×
	【注意】有一些無良的地方是沒有這個0的
	真正會使用八進制的地方 Linux 操作命令給予文件權限【後面學習】
	[瞭解]八進制數一位對應二進制三位
	
十六進制
	展示方式
	要求十六進制數是以0x或者0X開頭
	0x1234 0xabcd 0xABCD
	[瞭解]十六進制數一位對應二進制四位
	[瞭解]十六進制Java開發最常見的地方是【對象空間首地址】
1.3 原碼,反碼和補碼[瞭解]
原碼,反碼和補碼的使用是爲了提高計算機的運算邏輯速度,降低計算機的邏輯複雜度。

使用正整數和負整數來演示原碼,反碼和補碼

正整數:
	正整數的原碼,反碼和補碼一致
	118(10) = 0111 0110(2)

負整數
	-118
	原碼:
		對應正整數的原碼,最高位表示符號位改爲1
		0111 0110(2) ==> 1111 0110(2)
	反碼:
		負整數的原碼按位取反,但是符號號不變
		1111 0110(2) ==> 1000 1001(2)
	補碼:
		反碼 + 1
		1000 1001(2) + 1 ==> 1000 1010(2)
	
	0111 0110(2)
	1000 1010(2)
    0000 0000	==> 0

2. 常量【僞重點】

2.1 生活中的常量
一個小時60分鐘
一分鐘60秒
一年12個月
一週7天
四季

北國風光,千里冰封,萬里雪飄... 
你 我 他 文字
A B C D

在生活中常量的概念很多,例如 文字,文本,固定數值...
開發來源於生活,最終反饋於生活
2.2 開發中使用的常量
整數
	正整數 1 2 3 4 5
	負整數 -1 -2 -3 -4 -5
	
小數(浮點數)
	3.1415926
	0.618
	11.11
	
真假關係(布爾類型)
	T True
	F False
	boolean 舶來品

字符
	'A' 'B' '1' '2' '你'
	'AB' ×
	[要求]
		英文【單引號】包含的【單個元素】
		
字符串
	"這是一個字符串!!!"
	"先帝創業未半,而中道崩殂"
	[要求]
		英文【雙引號】包含的所有內容,都是字符串常量
2.3 字符常量
2.3.1 字符集
GB2312 老國標 支持中文簡體字和一部分少數民族文字。
GBK 新國標 支持中文簡體字和所有少數民族文字。
UTF-8 萬國碼,支持所有文字,也是開發中使用最多的編碼集。
BIG5 中文繁體字編碼,主要用於中國臺灣,中國香港,中國澳門,新加坡
ASCII 美國什麼什麼什麼標準協會制定的編碼
	1. 英文字母中大寫字母在前,小寫字母在後
	2. 英文字母大小寫並非連續存在,中間有6個標點符號
	3. 數字字符是從0 ~ 9
	4. 編碼 0 ~ 31 或者說前32個字符是不可見字符

【強制要求】
	在開發中使用到字符,並且使用字符本身,不允許使用任何一個編碼值!!!
	【數據類型一致化要求】

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-gNZ8Yexz-1581865112131)(.\img\標準十進制ASCII碼錶.jpg)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-6WGoLhPe-1581865112133)(.\img\八進制ASCII碼錶.jpg)]

2.3.2 轉義字符
在Java中存在一些字符是帶有特定含義的
	'' "" 都是帶有特定含義

將帶有特定含義的字符轉換爲無意義字符
	\'
	\"
將無特定含義的字符轉換爲帶有含義的字符
	\n 換行
	\t 製表符 Tab
2.3.3 來自2015年一個mdzz的面試官的面試題
請問:
	"\40"什麼意思?
	" "
	這是一個空格
	
	\是轉義字符
	\之後的數字是一個沒有良心的八進制數
	\40是對應ASCII碼八進制碼錶的sp
	man手冊
	man ascii

寫代碼中請不要給你的小夥伴挖坑!!!

3. 變量【僞重點】

3.1 生活中的變量
體重,天氣,溫度,年齡,身高
銀行卡餘額 
頭髮

在過程中不斷髮生改變的量
3.2 代碼中的變量
3.2.1 八大基本數據類型【重點】
整型 佔用內存空間大小 數據範圍
byte 1字節(8bit) -128 ~ 127
short 2字節(16bit) -32768 ~ 32767
int 4字節(32bit) -2^31 ~ 2^31 - 1
long 8字節(64bit) -2^63 ~ 2^63 - 1
浮點型 佔用內存空間大小 數據範圍
float 4字節(32bit) ±3.4×10^38
double 8字節(64bit) 10^308
字符型 佔用內存空間大小 數據範圍
char 2字節(16bit) 能夠保存中文
布爾類型 佔用內存空間大小 數據範圍
boolean 視情況而定 true false
3.2.2 Java中定義變量的格式【重點】
格式:
	數據類型 變量名 = 初始化數據;

數據類型:
	表示當前變量對應的具體數據類型是哪一個,也就確定了當前變量能夠保存的哪一種數據類型。

變量名:
	操作當前變量使用的名字【命名規範】

=:
	賦值號。作用是把賦值號左側的數據賦值給右側的變量

初始化數據:
	對應當前變量的初始化數據。
3.2.3 變量使用出現的問題
1. 【數據類型一致化問題】
Demo3.java:15: 錯誤: 不兼容的類型: 從double轉換到float可能會有損失
                float floatNumber = 0.618;
                                    ^
1 個錯誤
在Java代碼運行過程中,會把所有的小數看作是一個double類型。
	a. 保證數據的精度問題
	b. 系統不在乎內存的浪費
這裏需要告知Java編譯器,0.618是一個float類型,在0.618之後加上一個大寫F
改爲:
	float floatNumber = 0.618F;

2. 【數據類型一致化問題】
在Java代碼中給予long類型變量賦值常量,需要在給予的常量之後加上一個大寫L,告知編譯器這常量是一個long類型
	long longNumber = 10L;
	
3. 【字符常量使用強制要求使用字符本身,不允許使用對應編碼】

4. 【Java中變量沒有被賦值不能參與其他非賦值操作運算】
	爲了避免遇到野值問題

5. 【Java中變量未定義不能使用】

【命名規範 重點】

標識符:
	Java開發使用到的程序員自定義名字,變量名,方法名和數據類型名

標識符命名規範
	AJCG 

標識符命名規範:
	1. 標識符要求能夠使用的字符範圍是英文字母(A ~ Z a ~ z),數字(0 ~ 9)和下劃線 _
	2. 標識符要求使用英文字母開頭
	3. 標識符嚴格區分大小寫,Java中的強制要求
	4. 標識符沒有嚴格的長度限制,但是會考慮實際的使用情況來約束標識符長度。
	5. 標識符要求【見名知意,動賓結構】
		img1.jpg img2.jpg img3.jpg img4.jpg img5.jpg ×
		banner.jpg logo.jpg
		
		int a,b,c,d,e,f,g; ×
		int age; 
		String name; 
		int ageOfStudent;
		
		int XueShengDeNianLing ×
		tsgly ×
		
		payTime
		payBeiZhu ×

		getStudentName getStudentAge getMathScore
		setStudentName setStudentAge setMathScore
		
	6. 標識符需要符合駝峯命名法或者下劃線命名法
		駝峯命名法【常見】
			a. 小駝峯命名法
				要求標識符首字母小寫,之後的每一個單詞首字母大寫
				iPhone iTouch iMax macOS 
				ageOfStudent getStudentName
				適用於:
					方法名和變量名
			b. 大駝峯命名法
				要求標識符每一個單詞的首字節都是大寫
				String Person FileUpLoad LoginFilter
				適用於:
					類名或者說接口名
					class FirstJava
					class Demo1 class Demo2
		下劃線命名法: [後面在講]
			DEFAULT_CAPACITY 帶有名字的常量 默認容量
			
	7. 已經被Java佔用的關鍵字和保留字不能用於自定義標識符使用
	
下個月12月4號開始,代碼不按照規範來,俯臥撐安排一下~~

4. 運算符

4.1 算術運算符
+ - × ÷ ()
先乘除,後加減
有括號先處理括號內的內容
除數不能爲0
從左至右運算

+ - * / % = ()
10 ÷ 4 = 2 …… 2

在操作符兩邊,各空一格,提高閱讀性

偷懶專用
	+= -= *= /= %=
4.2 關係運算符
> < >= <= != ==
對外結果都是一個boolean類型
關係運算符一般用於條件判斷,數據過濾...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章