Java 基礎原理二

基礎規則
  1. 關鍵字public被稱爲修飾符(access modifier),它用於控制程序的其餘部分對這段代碼(從public後面跟着的第一個'{'到第一個'}')的訪問級別
  2. 關鍵字class這段程序的全部內容都包含在類中
  3. class後面跟着的'Demo'是類名。Java中的類名的命名規則爲:首字母以字母開頭(通常是大寫),後面能夠跟字母和任意數字與'_'組合,長度不限,可是不能使用Java的保留字,建議在類命名時使用駝峯命名。
  4. 源代碼的文件名強烈建議與類名相同(基本全部的IDE都是這樣作的)。
  5. static是靜態修飾符,被標識的方法是靜態的方法(更多細節後面再講)。
  6. main方法(或稱爲函數)是程序的入口函數,根據Java語言規範,main方法必須聲明爲public(雖然在Java虛擬機規範中並無要求main方法必定是public,可是並非全部的Java解釋器均可以執行非public的main方法),此外main方法必須是靜態的。
  7. void用於表示該方法不須要返回值。
  8. '{'和'}'分別用於標記代碼的開始和結束。
    當運行編譯改程序時,Java虛擬機將從這個類的main方法開始執行,而Demo中main方法使用了System.out對象並調用了println方法,能夠看出Java調用方法的語法:object.method(parameters),固然方法也能夠沒有參數,這依據方法的聲明而定。
    在這個方法調用中,傳入的參數是一個字符串'Hello,World!'。
數據類型

以前咱們提到過Java是強類型語言,也就是說咱們必須爲每個變量聲明一種類型。Java的數據類型可分爲兩種:基本數據類型和引用數據類型。在Java中有8中基本數據類型(primitive type):java

a、整數型:
byte                佔 1個字節(8個bit)   範圍-128——127
short               佔 2個字節(16bit)    範圍-2^15——2^15-1
int(默認)                     佔 4個字節(32bit)    範圍-2^31——2^31-1
long         		佔 8個字節(64bit)    範圍-2^63——2^63-1(超int範圍時在後面加l,最好寫大L,小l與1太像容易混淆)
	  
b、浮點型:(小數)
float單精度		         佔 4個字節(32bit)     3.4E-38——3.4E+38(書寫時在後面加f,如1.2f)
	   	最多精確表示7位小數
	   	float的數據範圍比long大,二者底層存儲結構不一樣
	     IEEE 754 規定  
	   		float:從左往右
	   				第1位表明符號位,
	    				第2-9位表明指數位,0-255,0表明0,255表明無窮大,1-254都減去127, 變爲 -126——127
	  					 第9-32位表明尾數位	
	  			SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM(signl是符號位,f是23bit的小數部分,exponent是指數部分)
	  			最後結果:(-1)^(sign)*1.f*2^(exponent)

double雙精度(默認)  佔 8個字節(64bit)     範圍		最多精確表示15位小數
long double        佔16個字節(128bit)		
	  
c、字符型:
char         	        佔 2個字節(16bit)     範圍
		  
d、布爾型:
boolean     	        沒有明確指定的大小(理論上佔八分之一個字節),由於一個開關就能夠決定true和false(書寫時也可在後面加,但通常不加)
變量

在Java中,每個變量屬於一種類型(type。在聲明變量時要指定類型),示例:函數

byte a = 12;
short b = 12;
int x=(int)(9.99L);//強制類型轉換
int c, w, r = 12;//一條語句能夠定義多個變量
long d = 2123453553345345445l;
float e = -9.0f;
double f = 12.2;
char g = 'w';
boolean h = true;
  • 注意,在聲明一個變量以後必須使用賦值對變量進行顯式初始化,不能使用未初始化的變量(沒法經過類型校驗)
int var;
  var=1;//初始化
常量

Java中常量可分爲兩種:字面值常量和自定義常量code

  • 字面值常量:
字符串常量	  用""括起來的內容
 整數常量	   全部整數
 小數常量	   全部小數,操做小數有必定的弊端,小數位不夠精確(float和double的特殊數據存儲結構)
 字符常量	   用單引號括起來的內容,只能放單個數字,字母或符號(單個漢字也能夠)
 布爾常量	   只有true和flase
 枚舉常量	   enum  枚舉類型名{常量1,常量2,常量3,.......};
 空常量		    null
 
 枚舉類型的使用:
 enum Size{SMALL,MEDIUM,LARGE};
 Size s=Size.MEDIUM;
  • 自定義常量:被final關鍵字修飾的變量
final int A=1;

final表示這個變量只能被賦值一次,且被賦值以後就不能更改了,通常來講常量名使用大寫(注意const是Java的保留字,可是目前並無被使用)對象

運算符

運算符:對常量和變量進行操做的符號。Java的運算符與C基本一致(運算符的優先級別也和C一致,在此再也不贅述):字符串

運算符:對常量和變量進行操做的符號

a、算術運算符:一元運算符、二元運算符
  + ,- ,*,/,%,++, --
  ++、--:都是單獨使用 
 整數相除只能獲得整數,若是想獲得小數,能夠把數據(至少其中一個)變成浮點型
 %:任何正整數%2結果不是0就是1,能夠用來切換條件
 
b、 賦值運算符
  基本賦值運算符:=
  擴展的賦=值運算符:+=,-=,/=,%=(自動類型轉換)
  
c、關係運算符  
  ==,<=,<,>,>=,!=(結果爲布爾類型)
  
d、邏輯運算符
	&,|,^,!
  &&、||具有短路的效果(左邊爲false右邊就不執行了;左邊爲true右邊就不執行了)

e、位運算符
	&、|、^、~(按位取反)、>>>(左補齊0)、>>(保留符號位)、<<(右補齊0)
  a^b^b =a;
f、三元運算符
	(關係表達式)?表達式1:表達式2

運算符示例,你能夠運行一下:虛擬機

System.out.println(-13%5);//結果-3
System.out.println(b1++);//結果2
System.out.println(++b2);//結果4
int x=5,y=6,z=8;
x=x++ + ++x + x+12;// ++、--:放在操做數前面時,先自增自減再參與運算;在操做數後面時,先運算再自增或自減
System.out.println(x);
System.out.println(!true);
System.out.println(x>2&x<32);
System.out.println(x>2|x<12);
System.out.println(x>2^x<30);//異或,相異爲真
System.out.println(2>3?1:2);

//不使用第三方變量交換變量值
x=x+y;
y=x-y;
x=x-y;//有可能會超出數據範圍,損失精度
	
x=x^y;
y=x^y;
x=x^y;//
//其實仍是使用第三個變量的最好。。。
數學函數與常量

Math類包含了各類各樣的數學函數,例如:數學

double x=Math.sqrt(4);//4^2

若是你須要在程序中頻繁使用Math這個類,可能會對在方法前加上Math感到厭煩,此時你能夠這樣作:it

import static java.lang.Math.*;
此時在程序中,你能夠直接調用:
System.out.println("4^2"+sqrt(4));
相關文章
相關標籤/搜索