點擊左上方上方的軒軒吖,右上角選擇“設為星標”
每天早上九點,我們不見不散
公眾號後臺回覆“程序員簡歷模板”,即可獲取精美簡歷模板
往期文章
兩個小時擺脫java小白
兩個小時擺脫Java小白--環境搭建
兩個小時擺脫Java小白--手撕HelloWorld
兩個小時擺脫Java小白--javadoc與跨平臺原理
兩個小時擺脫Java小白--開發工具配置與反編譯
摘要
前幾期文章我們學習了,java的發展史,java的環境搭建以及javadoc跨平臺原理,配置了Notepad++,介紹了反編譯,熟悉了HelloWorld程序!
我們從這一期開始就進入java編程基礎了!
你們要扶好坐好!
馬上開車!
1、變量與標識符
數學名詞:
變數或變量,是指沒有固定的值,可以改變的數。變量以非數字的符號來表達,一般用拉丁字母。變量是常數的相反。變量的用處在於能一般化描述指令的方式。
這個描述有點抽象,咱們舉個生活中的例子,在生活中有哪些東西是變化的呢!速度,年齡,軒軒吖的飯量,你們的薪資,努力工作,肯定會變得!那麼這些東西,一般化描述的東西就是變量!
計算機解釋:
變量就是系統為程序分配的一塊內存單元,用來存儲各種類型的數據。根據所存儲的數據類型的不同,有各種不同類型的變量。變量名代表這塊內存中的數據 。
變量分類:
按所屬的數據類型劃分: 基本數據類型變量 引用數據類型變量 (自定義的數據類型)
按被聲明的位置劃分局部變量:方法或語句塊內部定義的變量 成員變量:方法外部、類的內部定義的變量(全局變量)
標識符
Java對包、類、方法、參數和變量等要素命名時使用的字符序列稱為標識符。
Java標識符命名規則: 由字母、數字、下劃線(_)和美元符號($)組成。不能以數字開頭。區分大小 。長度無限制。不能是Java中的關鍵字和保留關鍵字。
標識符命名習慣:駝峰命名法、見名知意。以單詞或單詞組合來命名
合法標識符:password、xuanxuanya、user_name、_userName、$abc_123
非法標識符:2UserName(不能以數字開頭 )、user#Name(#號不能當標識符)、Hello 軒軒(軒軒是沒問題的但是我們不建議用中文來命名,有問題的是空格)、class(這個class是java中的關鍵字 對於關鍵字 這個坑 我是深受其害 記得 我的數據庫訂單表 名字叫做order 坑大發了)
2、八種基本數據類型
字節(Byte)是:計算機文件大小的基本計算單位。最小的是位 但是計算機中 1位也是按一個字節存儲的
1個字節(Byte) = 8個位(Bit)
Bit意為“位”或“比特”,是計算機運算的基礎;二進制中的一位,是二進制最小信息單位.二進位可以用來表示一個簡單的正/負的判斷,有兩種狀態的開關(如電燈開關) .簡單換算結果:
1個字節(Byte) = 8個位(Bit)
2個字節(Byte) = 16個位(Bit)
4個字節(Byte) = 32個位(Bit)
8個字節(Byte) = 64個位(Bit)
單位換算:
1byte = 8bit
1KB = 1024byte
1MB = 1024KB
1GB = 1024MB
1TB=1024G
1PB=1024TB
所以1024對於程序員來說 意義還是很大的!
在內存計算過程中, 字節少的數據運算速度更快; 在硬盤存儲中, 字節少的數據類型也可充分存入更多的數據。
這個怎麼理解呢!相對而言的,比如你存一個表格裡邊存了一個G的數據,和你存一個電影1個G,這個表格的數據就比1個G的電影要多!
所以字節少的類型可以充分存入更多的數據!
下面這個表格是八種基本類型:
數據類型
關鍵字
佔用字節
取值範圍
默認值
布爾型
boolean
不定值
true,false
false
字節型
byte
1
-128~127
0
短整型
short
2
-32768~32767
0
整型
int
4
-2147483648~2147483647
0
長整型
long
8
-9223372036854775808~9223372036854775807
0
字符型
char
2
0~65535
‘\u0000’
單精度浮點型
float
4
1.4E-45~3.4028235E38
0.0F
雙精度浮點型
double
8
4.9E-324~1.7976931348623157E308
0.0D
取值範圍呢記住簡單的就行了,佔用字節數,和關鍵字,默認值都得記住,考試要考!
這裡解釋一下,為什麼boolean類型為什麼佔用一個字節呢!
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html(官方文檔瞭解一下)
他是什麼意思呢?
布爾類型:布爾數據類型只有兩個可能的值:真和假。使用此數據類型為跟蹤真/假條件的簡單標記。這種數據類型就表示這一點信息,但是它的“大小”並不是精確定義的。
可以看出,boolean類型沒有給出精確的定義,《Java虛擬機規範》給出了4個字節,和boolean數組1個字節的定義,具體還要看虛擬機實現是否按照規範來,所以1個字節、4個字節都是有可能的。這其實是運算效率和存儲空間之間的博弈,兩者都非常的重要。
short類型呢,在開發中是很少使用的,short的出現呢是為了兼容以前老的機器進行運算的.
char 可以用ascll碼值來表示一個字符,對應關係如下:
3、基本數據類型的聲明
(1)聲明變量 類型 變量名; int number;
(2)聲明的同時給變量賦值 類型 變量名 = 值; number=10;
(3)給已聲明過的變量賦值 變量名 = 值; number=20;
4、進制與轉換
十進制:人們計算通常用的是十進制,可能是因為 我們有十個手指頭吧!手動滑稽!
二進制:計算機中的數據都以二進制數字保存。二進制:逢二進一。即只有0、1兩個值。如:十進制的10在計算機內保存為二進制的1010
位(Bit):表示一個二進制數碼0或1,是計算機存儲處理信息的最基本的單位。字節(Byte):一個字節由8個位組成。它表示作為一個完整處理單位的8個二進制數碼。
八進制:基數為八。Java中八進制數據要以0開頭。如:0123 八進制轉換成二進制:只需將每個八進制數字替換為相對應的三個二進制位即可。現在的計算機系統很少用八進制的了。
二進制
八進制
000
0
001
1
010
2
011
3
100
4
101
5
110
6
111
7
十六進制:二進制表示法太冗長,所以在程序中一般喜歡用十六進制 十六進制:基數為十六,逢十六進一。它用abcdef表示從0-9之上的值 Java中十六進制數據要以0x或0X開頭。如:0x23D 十六進制轉換成二進制只需將每個十六進制數字替換為相對應的四個二進制位即可
二進制
十六進制
二進制
十六進制
0000
0
1001
9
0001
1
1010
A
0010
2
1011
B
0011
3
1100
C
0100
4
1101
D
0101
5
1110
E
0110
6
1111
F
0111
7
1000
8
補碼:事實上,計算機內的二進制數值是以補碼形式表示的。補碼:一個正數的補碼和其原碼的形式是相同的。負數的補碼是:將該數的絕對值的二進制形式,按位取反再加1。 由此可知,二進制補碼數值的最高位(最左位)是符號位:該位為0,表示數值為正數;該位為1,表示數值為負數。主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補碼錶示的數相加時, 如果最高位(符號位)有進位, 則進位被捨棄。
二進制數轉換成十進制數 :按權相加:把二進制數首先寫成加權係數展開式,然後按十進制加法規則求和。
例:原碼1011.01 = 1×2^3+0×2^2+1×2^1+1×2^0+0×2^-1+1×2^-2 = 8+0+2+1+0+0.25 =11.25
十進制轉換成二進制 整數部分:"除2取餘,逆序排列"法 小數部分:"乘2取整,順序排列"法
5、基本數據類型轉換
自動類型轉換:容量小的類型自動轉換成容量大的數據類型
byte,short,int,它們三者在計算時會轉換成int類型 如果把int值轉換為float值,或者long轉換為double值,不需要強制轉換,但可能丟失精度
面試題
因為
byte,short,int,它們三者在計算時會轉換成int類型,所以這樣寫會報錯的!這樣加一個強制轉換符就可以了,手動滑稽!但是這樣會丟失精度!
容量大的轉換為容量小的,會丟失精度,但是 為什麼int轉float 或double 也會丟失精度呢?
這是因為float和double 在存儲的時候,存儲的是近似值,int long 啥的是精確值,因為是精確值轉近似值所以會有精度丟失!
廢話不多說 直接上代碼
這個的輸出結果是科學計數法,2.01978912 10的8次方 201978912 貌似變大了,,手動滑稽!所以表示貨幣值不能用float或者double
強制類型轉換:
容量大的類型轉換成容量小的數據類型時,要加上強制轉換符。long n = 100L; int i = (int)n; 有可能造成精度降低或數據溢出,使用時要小心。boolean 類型不能轉換成任何其它數據類型。
System.out.println("點個在看吧");
學到東西了就關注我哦!安排!