常量,變量和運算符
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類型
關係運算符一般用於條件判斷,數據過濾...