標籤:ascii char 通用 不同 邏輯 資料類型轉換 意思 設計 運算
第二章筆記
什麼是變數:
變數代表一塊記憶體地區,變數類型不一樣,這一塊記憶體的大小也不一樣。
#在程式設計語言裡面,你可以通過定義變數,向記憶體裡添加資料或者修改記憶體已有的資料。說白了,變數就是代表程式運行時存放資料的地方
資料的存放:
磁碟、記憶卡、隨身碟、光碟片、記憶體條、固態、機械硬碟等等
簡單的資訊(臨時的資訊)紙
人把資訊存在大腦
變數怎麼在記憶體中儲存
已將資料存放區打記憶體中怎麼去找
分配後的記憶體會有記憶體位址(記憶體位址不好記憶)
:通過變數名可以簡單快速地找到它儲存的資料
Java定義的常用資料類型有哪些?
位元組:#是電腦資訊技術用於計量儲存容量的一種計量單位,
#也表示一些電腦程式設計語言中的資料類型和語言字元
8個二進位位構成1個"位元組(Byte)",它是儲存空間的基本計量單位。
1個位元組可以儲存1個英文字母或者半個漢字,換句話說,1個漢字佔據2個位元組的儲存空間
位:是電子電腦中最小的資料單位。每一位的狀態只能是0或1
資料只用0和1還種表現形式,(這裡只表示一個資料點,不是數字),一個0或者1佔一個“位”,而系統中規定8個位為一個位元組
一個位元組等於8位
(一個位元組就是一個英語字母這麼大 一個漢字的一半)
電腦裡面的所有資料都是以位元1或0來儲存的,一個1或0叫1bit即1位,8位位元稱為一個位元組,即Byte!
一個字元能儲存一個中文漢字
一個漢字佔用兩個位元組
#術語:位,位元組用於描述電腦資料單位或電腦儲存單位。這裡主要指儲存單位
# 最小的儲存單位稱為位(bit):
# 只能容納兩個值(0或1)之一,不能在一個位中儲存更多的資訊。位是電腦儲存的基本單位。
# 對於一種給定的電腦設計,字(word)是自然的儲存單位。
# 一個英文字元和英文標點佔用一個位元組,一個中文字元和中文標點佔用2個位元組
#
# 位元組(byte)是常用的電腦儲存單位。
# 位元組的標準定義:一個位元組均為8位。由於上述所講每個位或者是0或者是1,所以一個8位的位元組包含256種可能的0,1組合
之前講過集中資料類型?
java基礎資料型別 (Elementary Data Type)就8種,記住就好了。除了這些都是引用型的了
java四類八種基礎資料型別 (Elementary Data Type) (佔用位元組)
#在棧中可以直接分配記憶體的資料是基礎資料型別 (Elementary Data Type)
位元組大小
第一類:整型
int(整數類型)4
byte(位元組類型)1
short(短整形)2
long(長整形)8
第二類:浮點型
double(雙精確度類型 雙精確度) 8
float(浮點類型 單精確度) 4
第三類:邏輯型
boolean(布爾型 他只有兩個值1.True 2.False)1
第四類:字元型
char(字元型)2
主類型 大小 最小值最大值
boolean 1位 - -
char 16位 02的16次方-1=65535
byte 8位 -128+127
short 16位 -2的15次方=-32768+2的15次方-1
int 32位 -2的31次方+2的31次方-1
long 64位 -2的63次方+2的63次方-1
float 32位 1.4E-453.4028235E38
double 64位 4.9E-3241.7976931348623157E308
// byte
System.out.println("基本類型:byte 二進位位元:" + Byte.SIZE);
System.out.println("最小值:" + Byte.MIN_VALUE);
System.out.println("最大值:" + Byte.MAX_VALUE);
System.out.println();
// short
System.out.println("基本類型:short 二進位位元:" + Short.SIZE);
System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
System.out.println();
// int
System.out.println("基本類型:int 二進位位元:" + Integer.SIZE);
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
System.out.println();
// long
System.out.println("基本類型:long 二進位位元:" + Long.SIZE);
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println();
// float
System.out.println("基本類型:float 二進位位元:" + Float.SIZE);
//1.4乘於10的負45次方;此處的E並非自然對數,而是10的次方的意思。這是科學計數法的寫法
System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
System.out.println();
// double
System.out.println("基本類型:double 二進位位元:" + Double.SIZE);
System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
System.out.println();
// char
System.out.println("基本類型:char 二進位位元:" + Character.SIZE);
// 以數值形式而不是字元形式將Character.MIN_VALUE輸出到控制台
System.out.println("最小值:Character.MIN_VALUE="+ (int) Character.MIN_VALUE);
// 以數值形式而不是字元形式將Character.MAX_VALUE輸出到控制台
System.out.println("最大值:Character.MAX_VALUE="+ (int) Character.MAX_VALUE);
變數的聲明及使用
變數的定義兩種方式:
文法:變數類型 變數名 = 數值;
// 先定義 再賦值
int a;
a = 10;
// 邊定義 邊賦值
int a = 10;
起變數名一定要規範:
字母、底線、$符號 其餘部分任一字元、底線、數字、$符號
通常第一個單詞的首字母小寫,其後的單詞的首字母大寫:mySchool(起變數名要有意義,見名知意)
賦值運算子(=):
變數名 = 運算式
程式中的賦值是右邊給左邊賦值
int a = (1 + 2) * (8 - 2);
算數運算子
+ :加
- :減
x : 乘
/ :除
% :餘
類型轉換:
自動類型轉換
整型、實型(常量)、字元型資料可以混合運算。運算中,不同類型的資料先轉化為同一類型,然後進行運算。
轉換從低級到進階。
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
資料類型轉換必須滿足如下規則:
1. 不能對boolean類型進行類型轉換。
2. 不能把物件類型轉換成不相關類的對象。
3. 在把容量大的類型轉換為容量小的類型時必須使用強制類型轉換。
4. 轉換過程中可能導致溢出或損失精度,例如:
int i =128;
byte b = (byte)i;
因為byte類型時8位,最大值為127,所以當強制轉換為int類型值128時候就會導致溢出。
5. 浮點數到整數的轉換是通過捨棄小數得到,而不是四捨五入,例如:
(int)23.7 == 23;
(int)-45.89f == -45
規則一:如果一個運算元為double型,整個運算式都提為double
規則二:滿足自動轉換類型
char c1=‘a‘;//定義一個char類型
int i1 = c1;//char自動類型轉換為int
System.out.println("char自動類型轉換為int後的值等於"+i1);
char c2 = ‘A‘;//定義一個char類型
int i2 = c2+1;//char 類型和 int 類型計算
System.out.println("char類型和int計算後的值等於"+i2);
解析:c1的值為字元‘a‘,查ascii碼錶可知對應的int類型值為97,‘A‘對應值為65,所以i2=65+1=66
擴充:
ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,並等同於國際標準ISO/IEC 646
強制類型轉換:
文法:(類型名)運算式
強制類型轉換
1. 條件是轉換的資料類型必須是相容的。
2. 格式:(type)value type是要強制類型轉換後的資料類型 執行個體:
執行個體
public class QiangZhiZhuanHuan{
public static void main(String[] args){
int i1 = 123;
byte b = (byte)i1;//強制類型轉換為byte
System.out.println("int強制類型轉換為byte後的值等於"+b);
}
}
隱含強制類型轉換
1. 整數的預設類型是 int。
2. 浮點型不存在這種情況,因為在定義 float 類型時必須在數字後面跟上 F 或者 f。
這一節講解了 Java 的基礎資料型別 (Elementary Data Type)。下一節將探討不同的變數類型以及它們的用法
邏輯運算子
&& :兩個條件同時為真,結果為真
|| :兩個條件有一個為真,結果為真
! :條件為真,結果為假;條件為假,結果為真
關係運算子
>大於
<小於
=等於
>=大於等於
<=小於等於
!=不等於
關係運算子的作用:用來做比較運算,比較結果為boolean
運算子的優先順序
最高 小括弧()
最低 賦值=
優先順序順序:算數運算子 > 關係運算子 > 邏輯運算子 > 賦值運算子
short a = 1;
short b = 2;
那麼 a+b 是什麼類型?
答:在java的世界裡,如果比int類型小的類型做運算,java在編譯的時候就會將它們統一強轉成int類型。當是比int類型大的類型做運算,就會自動轉換成它們中最大類型那個。
String a1 = "張三";// 000001
String a2 = "張";// 000001
if(a1 == a2){ // 比較的地址
System.out.println("True");
}else{
System.out.println("False");
}
if(a1.equals(a2)){// 比較值是否相等
System.out.println("True");
}else{
System.out.println("False");
}
}
Java 第二章