Java基礎語法學習(一)
基礎語法學習
一、資料型別:
今天學了八大基本資料型別和一個引用資料型別
1.基本資料型別:
- 位,bit,是計算機內部資料儲存的最小單位,11001100是八位二進位制數。
- 位元組,byte,是計算機中資料處理的基本單位,習慣上用大寫B表示,1B=8bit。
整數型別:
- byte:佔1個位元組
- short:佔2個位元組
- int:佔4個位元組
- long:佔8個位元組
其中int最為常用;
在使用long型別的時候要在資料後加上L
long num4=40L;
浮點數型別/小數型別:
- float:佔4個位元組
- double:佔8個位元組
其中一般用double
在使用float型別的時候要在資料後面加上F
float num5=50.1F;
字元型別:
char:佔2個位元組
注意這裡要用單引號,且裡面只能定義一個字元
char name='李';
布林型別:
boolean:佔1位
布林值只有true和false兩種結果
2.引用資料型別:
今天只瞭解了String是一個引用資料型別,屬於類,不是一個關鍵字
注意String使用時用雙引號,且裡面可以定義字串
String name2="李先生";
二、資料型別拓展:
1.整數型拓展:
二進位制數前加0b,八進位制數前加0,十六進位制數前加0x
int i1=10;
int i2=010;//八進位制,在十進位制裡面是10
int i3= 0x10;//十六進位制,在十進位制裡面是16
int i4=0b10;//二進位制,在十進位制裡面是2
2.浮點數拓展:
注意儘量避免用浮點數進行比較,因為其中會進行舍入誤差等操作,結果往往是大約,這時進行比較得不到正確的答案
示例如下:
float f=0.1f;//0.1
double d=1.0/10;//0.1
System.out.println(f);
System.out.println(d);
System.out.println(f==d);//這裡是輸出f是否等於d
結果為:
具體如何比較浮點型資料後面再學習
3.字元型拓展:
所有的字元本質還是數字,遵從Unicode編碼,有一個編碼表,佔2位元組,取值從0~65536,即從U0000 到 UFFFF
//字元拓展
char c1='a';
char c2='中';
char c3='A';
System.out.println(c1);
System.out.println((int)c1);//強制型別轉換
System.out.println(c2);
System.out.println((int)c2);
System.out.println(c3);
System.out.println((int)c3);
System.out.println("=====================================");
char c4='\u0061';
System.out.println(c4);
輸出結果為:
轉義字元:
\t 製表符
\n 換行
…
System.out.println("=====================================");
System.out.println("Hello\tWorld!");
System.out.println("Hello\nWorld!");
System.out.println("=====================================");
輸出結果為:
問題:
String s1=new String("hello world");
String s2=new String("hello world");
String s3="hello world";
String s4="hello world";
System.out.println(s1==s2);
System.out.println(s3==s4);
結果為:
老師說這涉及到了物件,要從記憶體分析,會在後面學習。
4.布林值拓展:
boolean flag=true;
if(flag==true){}
if(flag){}
上面兩種表達的意思是一樣的,但是因為程式碼要精簡易讀,所以一般用第二種表示。
三、型別轉換:
容量由低到高為:
byte short char<int<long<float<double
1.強制型別轉換:
強制型別轉換是由高容量轉換為低容量
比如:
int i=128;
byte b=(byte)i;
2.自動型別轉換:
自動型別轉換是由低容量轉換為高容量
比如:
char c='a';
int d=c+1;
在型別轉換的時候要注意:
- 不能對布林值進行轉換
- 不能把物件型別轉換為不相干的型別
- 轉換的時候可能存在記憶體溢位,或者精度問題
下面是一個例項:
int money=10_0000_0000;
int years=20;
int total=money*years;//計算溢位了
long total2=money*years;//轉換之前已經出現問題了,因為預設是int
long total3=money*(long)years;
System.out.println(total);
System.out.println(total2);
System.out.println(total3);
輸出結果為:
四、變數:
- 變數,簡單理解就是一個位置定死的,但是內容可以改變的量。
- 一行最好只定義一個變數,這是為了提高程式的可讀性
- 變數命名規範為:出了第一個單詞以外,後面的單詞首字母大寫,比如nameList
- 類名命名規範為:所有單詞首字母大寫,比如ClassCourse
變數根據作用域分為三種:
- 類變數
- 例項變數
- 區域性變數
1.類變數:
類變數的作用域在一個類中,定義方法為static 變數型別 變數名 = 變數值:
static double salary=2500;
2.區域性變數:
區域性變數必須宣告和初始化值,它的作用域在定義的方法中,定義方法為:
變數型別 變數名字 = 變數值
小問題:我實際操作中宣告和初始化不在一起進行也可以,那麼這樣是否正確呢?
3.例項變數:
例項變數從屬於物件,如果不自行初始化,則賦值為這個型別的預設值
- 整型預設值為0
- 浮點型預設值為0.0
- 布林值預設為false
- 除了基本型別,其餘都是null
如果我們在類裡面,方法外面定義了例項變數:
String name;
int age;
想要在方法內部呼叫,則需要:
variables Variables=new variables();
System.out.println(Variables.age);
System.out.println(Variables.name);
variables是我的類名
輸出為:
五、常量:
常量一般用大寫字母,比如:
static final double PI=3.14;
static和final都是修飾符,可以變換順序
以上就是我今天學習的內容,希望能幫到我,希望也許也能幫到您。