Java基礎語法

代碼規範

1:

  • 注意換行。
  • 變量的聲明儘量是每一個變量獨佔一行,即使變量的類型是一樣的,方便變量註釋。
  • 關鍵字之間只認一個空格。
  • 不要使用技術性很高,難懂,易混淆的語句,方便日後的二次開發,和別人的維護。
  • 注意編寫代碼的符號一定要使用英文的符號,即半角符號。

2:

註釋是個好東西,重要性不必說了。

註釋內的東西不被編譯。

// 單行註釋

/*  多行註釋 */

/** 
*這裏是文檔註釋
*/

我們所看到的api其實就是有文檔註釋自動生成的。

基本數據類型

整數類型

  • byte 1字節
  • short 2字節
  • int 4字節
  • long 8字節
//創建整型變量
byte a=12;
byte a=12, b=-13;

//創建long類型的整型變量
long a=165415312L;
long a=123L;
long c=123L + 1565L;
//創建long類型的時候和其他的有點不一樣,需要在數值後面加上 L 或者是 l ,否則可能會造成精度的丟失。

在Java中一個整數有默認類型(int)

//十進制賦值
int a= 33;
//八進制賦值
int b=033;
//十六進制
int c= 0X33;

浮點類型

  • float 4字節
  • double 8字節
// 創建浮點類型變量
//浮點數的默認類型爲 double 類型

float a=1.1F;
float b=-2.4F;
//在小數的末尾需要加 F 或者是 f 後綴

double a=3.141592653;
double b=3.14159265253D;
//這裏呢,double的類型可以加上後綴 D 或者 d,或者不加,原因是浮點數的默認類型爲double 

Java中的浮點值是近似值,非常不準確

例如:

double a = 4.35 *100;
System.out.println(a);

結果是

434.99999999999994
這個怎麼解決呢?
這就要使用一個方法

double a = 4.35 * 100;
System.out.println(Math.round(a));

這時輸出置就是:

435

再例如:

double a = 0.1;
double b = 2.0 - 1.9;
System.out.println(a == b);

按照我們所理解的應該是true
但機器的運行結果是:

false
怎麼來解決呢?
我們可以使用最小數對比法
可以和 1e-6 來相比較,如果是小於,我們就視爲0,反之亦反。這個最先是C語言中用來判斷是否爲零的

double a = 0.1;
double b = 2.0 -1.9;
System.out.println(Math.abs(a-b)<1e-6);
// Math.abs() 方法被用來取絕對值

答案是:

true

字符類型
用單引號包含的的可打印的單個符號。

'a', 'M', '8', '#', '文', ' '

//以上都是字符,以下不是

"A"  //不是一個字符,因爲是用 雙引號擴起來的

'8'  != 8 //左邊爲字符,右邊爲整型常量

這兩個8是不一樣的

System.out.println('8'*2);  // 字符編碼 *2
System.out.println(8*2);    //數值 *2

輸出結果是:

112
16

**char 的使用同C語言,不僅可以用來存字符,還可以用來存整數(即爲字符編碼),但是Java中的char採用了更高級的Unicode編碼,取值範圍爲
0~65536**

例如:

//以字符來賦值
char a1 = 'a';
char b1 = '漢';
char c1 = '2';

System.out.println(a1);
System.out.println(a2);
System.out.println(a3);

//以字符編碼來賦值
char a2 = 97;
char b2 = 27721;
char c2 = 50;

System.out.println(a2);
System.out.println(b2);
System.out.println(c2);

運行結果是:

a

2
a

2

轉義字符:

\'      //單引號字符

\"      //雙引號字符

\\      //反斜槓字符

\t      //垂直製表符,將光標移動到下一個製表符的位置

\r      //回車

\n      //換行

\b      //退格  

\f      //換頁

//示例:
System.out.ptintln("[\101]");
//這裏的‘\’表示以八進制賦值,101轉換爲十進制就是65,所以輸出的是 ‘A’

布爾類型

使用關鍵字: boolean 創建

這個類型只有兩個值:true false

關係運算符

運算結果是一個布爾值

同C語言一樣,不能夠串聯使用關係運算符
例如:

a < b

數據類型轉換

勿以小杯乘大物

小轉大:

  • 隱式轉換(自動轉換)
    這是自動轉換的順序圖:
    這裏寫圖片描述

低精度自動向高精度轉換:
低精度類型的值可以直接賦給高精度類型:
這裏寫圖片描述

byte a = 8;
System.out.println(a);
int b= a;
System.out.println(b);
long c =b; 
System.out.println(c);
double d = c;
System.out.println(d);


//char

char e = 'A';
int x = e-2;
//運行結果是:63
//這說明兩者是相互兼容的
  • 顯式轉換(強制轉換)

可適用於引用的類型:

(類型名)要轉換的值

示例:

int a = 100;
byte b = (byte)a;

大轉小

只能使用強制轉換,還可能造成細節丟失

double x = 3.1415926;

float f = (float)x;
System.out.println(f);
int i = (int)x; //直接捨棄掉小數
System.out.println(i);
//這些都是要丟失的

自增自減運算符

  • 前置形式
 ++a;  // 先加1再使用

 --b;  //先減1再使用
  • 後置運算
a++; //先使用,再加1
b--;  //先使用,再減1

注意:

(a+b)++; 
--(x+y); 

//這種寫法是錯誤的,諸如此類都是錯誤的
//只能夠給一個變量適用

三元運算符

返回值 = 判斷公式 ? 結果1 : 結果2;

int a = 1;
int b = a < 3 ? 20 : 30;

結果是:

20

注意:這個運算符是有返回值得,這個返回值是不能夠丟失的。

位運算符

  • 位邏輯運算符

這裏寫圖片描述

邏輯運算符運算結果:

這裏寫圖片描述

總結:
與:同真爲真
或:有真爲真
異或:相同爲假,不同爲真
取反:真爲假,假爲真

注意:運算的時候要轉換成二進制!

  • 位移運算符

這裏寫圖片描述

int x = 64;
int y = 32;

// 位移之後是不對原變量的值產生影響

// x<<1;  這種寫法是錯誤的。

x = x << 1;     //左移一位, 值乘以2
System.out.println(x);

//注意:下面的值分別是:8, 256
System.out.println(y>>2);

System.out.println(y<<3);
//

int x = 32;

x = x <<<2;

x = x>>>3;

//無符號位移

預算符的優先級

直接來圖爽快

這裏寫圖片描述

來了圖,看了還是一臉的茫然,那就來點小題:

這裏寫圖片描述

總結:

單目高於雙目
按照運算符的作用來看,()這種級別最高,之後依次是算數運算符,位運算符,關係運算符,邏輯運算符,賦值運算符。

邏輯運算符

還是直接來圖:

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章