天天看點

關鍵字 資料類型 辨別符 常量 進制 資料的表示方法 變量 類型轉換

Java中的關鍵字:被Java 附于特定含義的單詞
定義類:class
權限修飾符:
		public:公共的  公開的
		面向對象:封裝---private:私有的,無法直接通路的
		protected:受保護的(權限修飾符)
		
資料類型:
	基本資料類型
		byte
		short
		int
		long 
		float
		double 
		char
		bolean
	引用資料類型:類,接口,數組,等
		
           
定義類  class
class KeyWorld{
	public static  void  main (String[] args ){
	System.out.println("key world");
	
	}
	權限修飾符   靜态修飾符   方法
	
}

           
辨別符:給類 接口 變量 方法 等等起名字的字元序列 !起名字的時候,做到 "見名知意"
起名規則:
	1)可以是英文字母
	2)可以是數字字元(但是數字不能開頭)
	3)可以有_和$符号
	Java中嚴格區分大小寫
給包(package)起名字(字母全部是小寫!)
	單級包
		com   HelloWorld.java
	多級包(一般:公司域名反寫)
		cn.bd.www    (dian ---分包:子目錄)
			cn 檔案夾
				bd子檔案夾
					www  子檔案夾
給類或者後面接口起名字的規則:駝峰命名法:
		如果是一個單詞:首字母大寫 其餘小寫 class Hello
		多個單詞 每個單詞首字母都大寫 class 	HelloWord
給變量起名采用小駝峰命名法:
		如果是一個單詞:全部小寫
		如果是多個單詞:第一個單詞全部小寫,其餘每個單詞的首字母都大寫,其餘字母小寫
給常量命名
		一個單詞全部大寫
		多個單詞 每個單詞全部大寫 每個單詞之間用_(下劃線)連接配接   MSG_PUBLLIC

注意事項:
        1)數字不能開頭
        2)Java中嚴格區分大小寫
        3)關鍵字不能當作辨別符
        4)起名字要做到見名知意
        5)不能出現特殊的其他符号


           

常量

常量:在程式的執行過程中 其值不發生改變的量
常量分為兩大類:
	字面值常量
		字元串常量:使用雙引号括起來的内容就是字元穿常量
		字元常量:使用單引号括起來的單個内容
		整數常量
		小數常量
		布爾常量
		空常量
	自定義常量:面向對象(繼承的時候引入關鍵字final)
	
	System.out.println("我愛高圓圓")
	System.out.prinln('A')
字元常量:如果不參與運算,就是表示一個字元
但是如果參與預算,它去尋找ASCII碼表的值
'a'------97
'A'-------65
'0'-------48
空常量-----引用類型:預設值--->null
String:特殊的引用類型(java提供的"字元串類")
小數常量
整數常量
           

進制

進制:資料進位的一種方式
		x進制:逢x進一
進制的由來:
		早期:電信号 使用1, 0 來表示 這個開關

計算機的一些資料:有很多符号表示  使用 1 0 這兩個電信号無法滿足要求
組織規定:使用8個這樣的電信号來描述一個計算機符号
8bit:8個比特位表示這樣的一個資料
一個位元組:由8個bit 組成的

進制越大表示形式越短!

進制 ---屬于常量的範疇
二進制:由0,1 組成 以0b開頭 逢2進1
八進制:you 0 1 2 3 -----7組成 以0開頭,逢8進一 
十進制:(整數預設)
十六進制:由0 1 2 3 -----9 a b c de f組成
以0x開頭,逢16 進一

           
進制之間的轉換

任意進制轉成十進制
	位權展開法:系數*基數的全次幂相加    12345=1*10^4+2*10^3+3*10^2+4*10^1+5*10^0
	系數:1 2 3 4 5
	基數:10
	權次幂:4 3 2 1 0 
八進制0100=1*8^2+0*8^1+0*8^0=64
系數: 1 0 0
基數: 8
權次幂:2 1 0


十進制到任意進制的轉換
規則: 使用目前十進制資料的基數,一直除到商為零,餘數反轉.

 52十進制----變成八進制  064	
 52十進制----變成十六進制 0x34
 52十進制----變成二進制 0b110100


           

8421碼

​ 1 1 1 1 1 1 1 1

128 64 32 16 8 4 2 1

8421碼:快速轉換法(二進制--十進制)
每一個二進制資料的數值都是1  都對應一個整數
十進制7轉化成二進制就是0b111
十進制10轉化成二進制就是0b1010
十進制11轉換成二進制就是0b1011

需求 :x進制---->y進制
舉例:二進制---->八進制


           
有符号位的資料表示法:
原碼 反碼 補碼
計算機底層對資料進行計算:通過補碼進行計算的!(一個資料:最高符号位(表示資料的正負)+數值位)
正整數
		正整數的原碼;計算出的二進制資料   0000 0111
         正整數的最高符号位為0
         正數的原碼 反碼 和補碼都是一樣的 
  
  負整數 
       負數的最高符号位是1
       負數的反碼:是在原碼的基礎上 符号位不變,數值位按位取反
       負數的補碼是:在反碼的基礎上 符号位不變 數值位末尾加1
       
        
           

變量

變量:在程式的執行過程中,其值不斷變化的量
變量定義的三要素:
		1)資料類型
		2)變量名稱
		3)初始化值
		格式:
		資料類型 變量名稱  =初始化值
		
		資料類型的分類:
			兩大類
				基本資料類型:四類八種
					整數類型:預設int 
						位元組類型 byte(-128~127)考點!
						短整型 short
						長整形long(定義是需要在末尾加上L)
					浮點類型 預設(double)
					float類型 (在定義float類型時需要在變量值的末尾加上f)
					字元類型 char
					布爾類型boolean
					
					引用資料類型:類 接口 數組 
					

定義變量的注意事項:
1)定義變量的時候不能重複定義(Java是一個強類型的語言,結構嚴謹)
2)在一個{}内:作用域  中有效   超過作用于域 則無法使用
3)一般情況下:為了保證格式更好看些,一行隻定義一個變量
4)在定義變量的時候 必須初始化


Java中隐式類型提升(隐式轉換)
byte short char 三者之間不轉換,一旦參與運算則預設轉換成int類型(考點)
!!!隻要參與運算必定會轉換資料類型,極易出錯
	面試題:
		byte b, b1=3, b2=4;
		1)b=b1+b2;
		2)b=3+4;
	問:以上兩個當中哪個會編譯失敗?
	答案:1
	
	面試題:
		byte b=130;
		問:有問題嗎
		結果是多少?
		答案:有問題 byte取值範圍-127~128    byte b=byte(130)
		結果是-126
		計算機底層使用補碼計算
		補碼 -->反碼--.原碼-->推出結果
		130的補碼是00000000000 00000000 00000000 10000010   ----截取:強制 
		截取之後得到補碼是 10000010(最高位是1 表示是負數)---補碼的末位減一,最高位符号位不變則其得到反碼是10000001----->(最高位符号位不變按位取反則)得到原碼是11111110---->轉換成十進制(使用8421碼  即除過最高位1得到一個7位數0000010=64+32+16+8+4+2+0=126)   ----加上最高位符号位-負号則得到結果-126
		
		
		

(轉換優先級先是int類型 其次是long類型 再者就是double)
	基本資料類型資料類型一緻則直接運算
	如果資料類型不一緻則要進行轉換
	
	
Java中:顯示類型轉換(強制類型轉換)
将大的類型----->小的類型
強制類型轉換:一般不會使用,會損失精度   不僅适用于基本資料類型 也适用于引用資料類型