java編程規範:java
1.良好的標識符的命名 保留字不能做爲標識符命名: class、public、static..., goto,const 區分大小寫:helloWorld、HelloWorld 2.良好的註釋習慣 3.良好的縮進:沒遇到一個代碼塊縮進一次(一個tab鍵)
變量:表明內存中的一個區域,區域能夠存值編程
|--聲明:int helloWorld;//數據類型 變量名; |--賦值:helloWorld = 100; |--聲明+賦值:int helloWorld = 100; |--值傳遞:int j = i;
8種基本數據類型:函數
整型數字: byte 1個字節 -128~127 short 2個字節 -2^15~2^15-1 -32768~32767 short s = 1000;(自動將int轉爲short,但會進行精度的校驗) int 4個字節 -2^31~2^31-1 -2147483648~2147483647 long(長整型) 8個字節 -2^63~2^63-1 long l = 1000;(整型字面值默認類型int) long l = 1000L;(後面跟l或L表示該字面值是long類型) 浮點型: float(單精度浮點型) 4個字節 存儲格式相似於科學計數法,1bit符號位 8bit指數 23bit尾數 1.11 * 2^111 0 0000 0111 11000000... 範圍:1.4E-45~3.4028235E38 float f = 100.01F;(後面跟f或F表示該字面值是float類型) float f = 1.0001E2f;//即1.0001*10^2 double(雙精度浮點型) 8個字節 範圍:4.9E-324~1.7976931348623157E308 double d = 200.02; 或double d = 200d;(後面跟d或D表示字面值是double類型) double d = 2.0002E2;或double d = 2.0002E2D; 字符型: char char c = 'A';//賦值單個字符 char c = 'ab';//錯誤的 char c = '\u0041';//可使用字符對應的unicode編碼賦值 //1*16^0 + 4*16^1= 65 char c= 65; //可使用unicode編碼的十進制編碼賦值 布爾型: boolean boolean b = true; boolean b= false;
自動類型提高:編碼
double d = 100 + 100.01; short s = 100; short s2 = s+1;//錯誤的 short s1 = 100; short s2 = 200; short s3 = s1 + s2;//錯誤的 若是表達式中存在double類型的數據,則參與運算的數據都會自動提高爲double類型; 若是表達式中存在float類型的數據,則參與運算的數據都會自動提高爲float類型; 若是表達式中存在long類型的數據,則參與運算的數據都會自動提高爲long類型; 其他狀況,則均自動提示爲int類型;(byte、short、int、char) 注:不能將數據類型精度大的數據賦值給數據類型精度小的變量。
強制類型轉換:
short s3 = (short)(s1 + s2);//在須要強制類型轉換的數據前使用 (指定強制轉換的類型)
//注意:強制類型轉換的數據不要超過變量數據類型可以表示的範圍code
對象類型對象
String String s; s = "a"; s = "abbcdgfghh"; s = "abcd" + "efgh";// "abcdefgh",+能夠進行字符串的拼接 s = "10" + 20;//1020,字符串和其餘類型數據進行加法運算都是字符串拼接; s = 10 + 20 + "30";//3030
====================================================================================================================================內存
轉義字符:作用域
char c1 = '\n';//換行符 char c2 = '\t';//製表符 char c3 = '\'';//'自己是特殊字符,經過轉義將其當作普通字符。 char c4 = '\\'; String s = "他的名字叫\"小明\"";
char能夠進行算術運算:unicode
char類型數據參與算術運算時,使用其編碼參與運算。 char c = 'A';//65 short s = 100; short s2 = c + s;//錯誤的 int s2 = c + s;//正確的 System.out.println(c+1);//66
====================================================================================================================================字符串
運算符:
算術運算符 + - * / %(取餘) System.out.println("除法運算:"+(100 / 49));//取整 System.out.println("除法運算:"+(100d / 49));//小數 System.out.println("取餘運算:"+(100 % 49));//取餘 賦值運算符 = int i = 100; 比較運算符 > < >= <= ==(等於) != (不等於) 邏輯運算符 &&(且) ||(或) !(非) int i = 100; int j = 49; boolean b = (i<50) && (j>50);//當兩邊的布爾表達式都爲true,則結果爲true. boolean b2 = i>50 || j>50;//當兩邊的布爾表達式只要有一個爲true,則結果爲true. boolean b3 = !(i>50);//對布爾表達式結果取反 &(且) |(或) &和&& |和||的區別: && ||:具有短路特性 && 當第一個布爾表達式爲false,則不會再運算第二個布爾表達式,直接返回結果false || 當第一個布爾表達式爲true,則不會再運算第二個布爾表達式,直接返回結果true & |:不具有短路特性 位運算符:直接操做二進制數據 &: 2&1 使用二進制進行運算,上下兩位都爲1時才爲1 |: 2|1 使用二進制進行運算,上下兩位只要有一個爲1則爲1 <<: 左移運算符 2<<1 //4 每左移一位至關於乘以2 >>: 算術右移運算符 算術右移最高位補符號位 8>>1 //4 -8>>1 //-4 -8>>2 //-2 每算術右移一位至關於除以2 >>>: 邏輯右移運算符 邏輯右移最高位補0 正數進行邏輯右移和算術右移的結果一致 8>>>1 //4 負數進行邏輯右移: -8>>>1//2147483644 注:2*2 、 2>>1,位運算符相對於乘法或除法運算符效率高。 ^: 異或運算符 若是運算的兩位不一樣值,則結果爲1,若是相同則爲0 2^1//3 ~: 取反運算符 將二進制每位都進行取反 ~1 三目運算符 布爾表達式?結果1:結果2 //若是布爾表達式運算結果爲ture,則返回結果1;不然返回結果2 int age = 34; age>=18?"已成年":"未成年" 特殊用法: ++、-- int a = 10; //a++;//等價於 a = a+1; ++a; //等價於 a = a+1; int b = a++; System.out.println(a); System.out.println(b); ++若是前置,則先加一,後參與表達式運算 ++若是後置,則先參與表達式運算,在加一 a--;//等價於a=a-1 例: int a = 10; int b = a-- + --a;// 10 + 8 18 System.out.println(b);//18 += -= *= /= %=: int a = 10; a += 5;//a=a+5; System.out.println(a); a -= 5;//a=a-5
運算符優先級:() ---> ++ -- ! ~(一元運算符) ---> * / % ---> + - ---> && ||
局部變量:聲明在函數內部的變量。
特色: 1.先賦值後使用 2.做用域的範圍:從定義位置開始到所處的代碼塊結束。 3.在做用域範圍內不能出現命名衝突。