天天看點

二、java分支、運算符、循環

八、javaSE:

1、java基礎文法

進制轉換

二進制 十進制 十六進制 八進制

源碼、反碼、補碼:在計算機中所有的資料(字元、圖檔、音頻、視訊等)都是以二進制補碼形式進行存儲的

根據源碼計算補碼:

源碼和補碼都是以0開頭數字表示正數,1表示負數

負數的補碼是他的源碼符号為不變,其他為取反再加一(反碼加一)

正數的補碼和源碼相同

4位2進制補碼最多可以表示24個數,範圍-23~2^3-1

在計算機中1個0或者1個1被稱為1位,機關1bit

變量     	
	什麼是變量:變量是java語言中一種代詞,主要用于指代記憶體中的一塊存儲空間,在這塊存儲空間中可以存儲一個資料
                    對變量的操作就是對變量中存儲的值操作。 
	    變量的基本使用:
					1、java是強類型的程式設計語言,定義變量時候必須要指定明确的類型
					2、格式:變量類型   變量名稱=變量值;
					3、使用變量時可以直接操作變量值,不需要帶引号,和字元串可以使用+拼接
					4、=指派符号,将右側值賦給左側變量
		變量的定義和指派:
		            定義:聲明
					指派:初始化(第一次)
					格式:1、定義的同時指派  
					         int a=23;
					      2、先定義後指派 
						     int b;
						     b=34;
						  3、重新指派  
						     int c=56;
						     c=45;
						  4、同時定義多個類型相同的變量
						     int a,b=34,c=56;
			        錯誤用法:1、變量未指派不能使用
							  2、變量不能重複定義
					變量的指令規範:
					      強制性規範:
								1、變量名隻能使用數字、字元、下劃線、$ 四種元素組成
								2、不能以數字開頭
								3、不能使用java中的關鍵字
						  建議性規範:
						        1、遵循小駝峰命名法,變量名如果由多個單詞組成,第一個單詞首字母小寫,
								   後面連續的單詞首字母大寫
								2、變量的命名要見名之意
					變量的範圍:
					      從變量的定義的地方,到他所屬的代碼塊的結束離開範圍變臉将會被回收。
						  代碼塊:離變量最近的一對大括号  		
	資料類型 
			八種基本資料類型
					正數資料類型:byte short int long  
					浮點資料類型:float double
					字元資料類型:char
					布爾資料類型:boolean
			
				   資料的字首和字尾
						字首
							'\u'采用4位16進制數字表示一個Unicode編碼,如'\u3e00'
							0:八進制    0x:十六進制 
						字尾
							L或l :使用long定義整數值,右側整數超過int範圍必須要帶,沒有超出也建議帶上
							F或f:使用浮點數時必須帶上
							D或d:使用double定義浮點數時,可以帶也可以不帶
			引用資料類型
		        String屬于對象類型(應用類型)
				作用:用于同時定義一到多個字元,用“”引起來
				特點:可以和其他任意類型之間使用+做拼接,拼接後的結果還是一個字元串
	運算符
	      1、算術運算符
						+ - * / % ++ --
				1、java 是封閉式計算,超出範圍就會得到錯誤結果
		        2、小類型資料和大資料資料計算結果得到大類型
		        3、/求整,兩個int求整,結果還是一個int類型
		        4、 特殊情況:
		              浮點數除以0得到infinity
					  整數除以0會抛出異常
					  負數開根号的到NaN  
		        5、++/-- 的指派運算
		  2、比較運算符
						> < >= <= == !=
						1、比較運算的結果是傳回一個布爾類型的值(true/false)
						2、整數,浮點數,字元之間可以比較,隻比較值不判斷類型
		  3、指派運算符
						= += -= %= /=  >>= >>>= <<= &= |= ^=
						   指派運算符前面預設會有類型轉換 如:byte a+=20; --> 底層執行是: a=(byte)(a+20);
		  4、邏輯運算符
		               && || !
					    短路運算
						短路與:false && 布爾表達式
						邏輯與運算如果已經判斷了左側為false ,那麼右側無論是true還是false ,結果都是false
						此時右側不參與計算。
						短路或:true || 布爾表達式  邏輯或運算s左側已經判斷為true ,那麼右側無論是true 
						還是false ,其結果都是true ,此時右側表達式不用參加計算。		
		  5、三項運算符
		                ? : 
		  6、移位運算符
						>>   >>>  << 
						 1、>>帶符号右移 ----》  正數帶符号右移,左側補0 《=====》  負數帶符号右移,左側補一 
						    每向右一位減一半,向左加一半
					   	 2、>>>無符号右移  無論是正數還是負數,右移後左側都補0
						 3、<<左移     無論是正數還是負數,左移後右側都補0 
		  7、位運算符
		              & | ^ ~ 
		                1、位與&    位|   位非~   異或^
					    2、位非~,單項運算符,連同符号位一起按位取反
	分支語句
			1、if:
			if(布爾表達式){
				代碼塊
			}布爾表達式為true,執行後面大括号中所有代碼.為false,跳過執行
			
			2、if~else:
			 if(布爾表達式){
				代碼塊1;
			 }else{
				代碼塊2;
			 }如果布爾表達式為itrue,執行代碼塊1,否則執行代碼塊2.
			 
			3、 if~else if~else:
			 if(布爾表達式1){
				代碼塊;
			 }else if(布爾表達式2){
				代碼塊;
			 }else if(布爾表達式3){
			    代碼塊;
			 }
			 .......
			 else{
			    代碼塊;
			 }從上往下逐一判斷所有的布爾表達式,隻要有一個為true,就執行後面大括号中對應的代碼塊,
			 如果所有的布爾表達式都是false,則執行else中的内容。
			 
			 4、Switch:case:;default:;
			 switch(變量){
			 case 值1;代碼塊; break;
			 case  值2:代碼塊;break;
			 ........................
			 case  值n: 代碼塊;break;
			 default:  代碼塊;
			 }從上往下逐一那case後面的值去比對Switch 括号中變量,隻要有一個比對上就執行後續所有的代碼,
			 直到碰到一個break,跳出整個分支判斷。如果所有值都沒有比對上就執行default後面的代碼塊。
			 注意:
			      <1>switch 後面中變量的類型可以寫那些(面試題)?
                  jdk1.6之前:byte、 short、int 、 char、enum
			      jdk1.6之後:byte、short、int、char、String、enum
				  <2>代碼塊隻有一行,大括号可以省略		  
	循環
			重複的去執行某一段代碼
			     for()循環
						 一般用于次數确定的循環
						 for(初始化表達式;布爾表達式;修改循環變量){
							  //循環體;
						 }布爾表達式為true執行循環體,否則不執行循環
				 while()循環
				        一般用于次數不确定的循環
						while(布爾表達式){
						    //循環體;
						}布爾表達式為true,執行循環體,否則不執行
						
				 do~while()循環
				        一般用于次數不确定的循環,先執行後判斷
			死循環寫法:
					for(;;)
					while(true){}
					do{}while(true);	
			循環關鍵字:
				break:終止後續所有循環
				continue:跳過本次循環,繼續後續的循環