日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第二章 变量

發布時間:2024/3/13 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第二章 变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、變量(variable)

1、定義

  • 變量是程序的基本組成單位,變量的三個要素為: 類型 名稱 值,即 變量 = 變量名 + 值 + 數據類型

2、使用

  • 先聲明,然后賦值,最后使用
int age = 20;double score = 90.5;char gender = '男';String name = "陳鑫";

3、注意事項和使用細節

  • (1).變量表示內存中的一塊存儲區域,該區域有自己的名字(變量名)和類型(數據類型),該區域的數據可以在同一類型范圍內不斷變化
int a = 50;System.out.println(a);a = 80; //該區域的數據/值可以在同一類型范圍內不斷變化//a = "a";//錯誤,一定要是同一類型的,這里變成了字符串,就不行了
  • (2).變量使用前必須聲明,即定義在使用之前,但是變量在同一作用域內不能重名,也不能重復定義

  • (3).不同變量所占用的存儲空間大小不同,單位:字節

  • (4).Java數據類型分為基本數據類型和引用數據類型

  • {基本數據類型}:
    數值型: 整數類型byte(1),short(2),int(4),long(8) ;; 浮點(小數)型 float(4),double(8),
    字符型char(2)(存放單個字符),
    布爾型boolean(1)(存放true、false)

  • {引用數據類型}:類(class)、接口(interface)、數組

  • Java的基本數據類型有固定的范圍和字段長度,不受具體 OS 影響,以保證 Java 的可移植性

二、程序中" + " 的使用

  • 1、當左右兩邊都為 數值型 時,做加法運算

  • 2、當左右兩邊有一邊為 字符串 時,做拼接運算

  • 3、運算順序,從左到右

System.out.println(100 + 98); //輸出 198,加法運算,+ 左右兩個數字System.out.println("100" + 98); //輸出 10098,拼接運算,+ 左邊自負床,直接拼接System.out.println(100 + 98 + "hello"); //輸出 198hello,先加法,后拼接,第一個 + 左右兩個數字,加法;第二個 + 右邊為字符串,拼接System.out.println("hello" + 100 + 98); //輸出 hello10098 全拼接,第一個 + 左邊為字符串,拼接;在這之后變成了 "hello100" + 98;//所以第二個 + 左邊為字符串,拼接

三、整數類型

1、數值范圍:

  • byte ( 1個字節, -128 ~~ 127, 極值為:2的(8 次方/2)次方),
  • short(2個字節,-32768 ~~ 32767, 極值為:2的(16次方/2)次方),
  • int ( 4個字節,-2147483648 ~~ 2147483647,極值為:2的(32次方/2)次方),
  • long( 8個字節,-2 ^63 ~~ 2 ^63 - 1, 極值為:2的(64次方/2)次方),

2、注意事項和使用細節

  • (1).java的整形常量默認為 int 型,聲明 long 型變量 需要在數字后加 L/l(由于小寫l和1很相似,一般不寫這個,寫L);例如 long = 3L;
  • (2).java中一般不使用 long ,除非溢出時才使用
int n1 = 4; //對,占4和字節//int n2 = 4L;//不對,定義語法錯誤long n3 = 8L; //對,占8個字節

四、浮點類型

1、浮點數 = 符號位 + 指數位 + 小數位,浮點數的部分尾數可能丟失,所以說運行結果是一個近似值

2、單精度float ,占用4字節 ,范圍:-3.403E38 ~~ 3.403E38

3、雙精度double,占用8字節 ,范圍:-1.798E308 ~~ -1.798E308

4、注意事項和使用細節:

  • (1).java的浮點形常量默認為 double 型,聲明 float 型變量 需要在數字后加 F/f;例如 float a = 3.14F; 或者 float a = 3.14f;
  • (2).一般情況下使用 double , double 更加的精確
float n1 = 2.123456789012345F;double n2 = 2.123456789012345;System.out.println(n1);//輸出結果是2.1234567 //這就是精度損失System.out.println(n2);//輸出結果是2.123456789012345
  • (3).兩種表示方式:
    十進制: 5.12 512.0 0.512
    科學計數法: 5.12e2 5.12e-2 (e/E均可使用)
  • (4).浮點數陷阱
double n1 = 2.7; //輸出結果是2.7double n2 = 8.1/3; //輸出結果是2.6999999999999997//這就是上述所說的浮點數的部分尾數可能丟失,所以說運行結果是一個近似值
  • 那么判斷兩個數相等,則需要使用兩個數的差值的絕對值在某個精度范圍內判斷

原方法:

double n1 = 2.7;double n2 = 8.1/3;System.out.println(n1); //輸出結果是 2.1234567System.out.println(n2); //輸出結果是 2.123456789012345if(n1 == n2){ //輸出結果是 不等于!=System.out.println("等于=");}else{System.out.println("不等于!=");}

新方法:

double n1 = 2.7;double n2 = 8.1/3;System.out.println(n1); //輸出結果是 2.1234567System.out.println(n2); //輸出結果是 2.123456789012345if(Math.abs(n1 - n2)<00000.1){//輸出結果是 等于=System.out.println("等于=");}else{System.out.println("不等于!=");}

五、Java API文檔

1、API,即Application Programming Interface 應用程序編程接口,Java所提供的類還有方法,中文在線文檔:www.matools.com

2、Java提供了大量的基礎類,ApI文檔就是告訴開發者如何使用這些類以及這些類中所包含的方法

3、JDK 8/11 —> 含有 —> 包1、包2、、包… —> (每個包)含有 —> 接口、類(…)、異常 - --> (每個類)含有—> 字段、構造器(構造方法)、成員方法(方法)

4、API查找功能函數方法有:

  • 包 ->-> 類 ->-> 方法
  • 直接 索引 (查找) 該方法

六、字符型 char

1、字符類型可以表示單個字符,變量類型是 char ,char 占兩個字節,使用可以存放漢字,多個字符使用 String

char c1 = 'a';char c2 = '\t';char c3 = '辰';char c4 = '97';

2、注意事項和使用細節

  • (1).字符常量是單引號 ‘’ 包裹的單個字符;
  • (2).Java中還允許使用轉義字符 ‘’ 來將其后的字符轉變位特殊型字符常量,例如:char c = ‘\n’;//來表示換行符;
  • (3).Java中的 char 從本質上來說是一個整數,在輸出時,是 Unicode碼 所對應的字符 tool.chinaz.com/Tools/Unicode.aspx (Unicode編碼轉換工具網站)
  • (4).可以直接給 char 賦值一個整數,然后輸出是,會按照所對應的 Unicode碼 字符輸出
char c1 = 97;System.out.println("輸出結果是:" + c1);//輸出 c1 所對應的字符//輸出結果是:achar c2 = 'a';System.out.println("輸出結果是:" + (int)c2);//輸出 c2 所對應的數字//輸出結果是:97char c3 = 97 + 2;System.out.println("輸出結果是:" + c3);//輸出結果是:cchar c4 = 'a';System.out.println("輸出結果是:" + c4);//輸出結果是:a
  • (5).char 類型可以參與運算,相當于一個整數,因為它都有對應的 Unicode碼
char a1 = 97;System.out.println(a1+10);//107

3、字符類型本質探討

  • (1).字符型存儲到計算機中,需要將字符對應的碼值(整數)找出來,比如 ‘a’

  • (2).字符和碼值的對應關系是通過字符編碼表所決定的(規定好的)

  • (3).常見編碼

    ASCII 1個字節表示 一共有128個字符

    Unicode 2個字節表示 字母和漢字都是用2個字節來表示,浪費了空間

    UTF - 8 1個 ~ 3個字節 字母使用1個字節 漢字使用1個字節

七、布爾型 boolean

1、該類型的變量只允許取值取 true 和 false,無 null

2、大小占 1 個字節

3、適用于邏輯運算,一般用于控制流程

4、注意事項和使用細節:

  • (1).不能使用 0 或者 非0整數 來代替 false 和 true,這點和 C語言 不同

八、基本數據類型轉換

1、自動轉換規則:在Java程序進行賦值或者運算是,精度小的數據類型將會自動轉換成精度大的數據類型

2、數據類型按照精度(容量)大小排序

  • char --> int --> long --> float --> double
  • byte --> short --> int --> long --> float --> double
  • 這是兩條獨立分支,由這個順序也能看出來 char 和 (byte/short) 之間不能夠進行自動轉換
//演示自動轉換int num = 'a'; //可以,因為是 char --> intdouble d1 = 80; //可以,因為是 int --> doubleSystem.out.println(num);//輸出 97System.out.println(d1); //輸出 80.0

3、注意事項和使用細節:

  • (1).當有多種類型的數據混合運算時系統首先自動將所有數據轉換成容量最大的那種數據類型,然后在進行計算,并最終結果保留最大數據類型
int n = 10; //OKfloat f = n + 1.1F;//OK,注意此時 1.1 是 float 類型的,運算全轉換成 float 型,最后賦值給 float 型變量,完全正確double d = f + 2.2;//OK,注意此時 2.2 是 double類型的,運算全轉換成 double型,最后賦值給 double型變量,完全正確
  • (2).當我們把精度(容量)大的數據類型賦值給精度(容量)小的數據類型時,就會報錯;反之,則會進行自動轉換
int n1 = 10;//float f1 = n1 + 1.2;//報錯,無法進行double d1 = n1 +1.2;//正確進行,因為 n1 和 1.2 進行 + 運算,數據類型會轉換成 1.2默認的 double型,然后再把 double類型賦值給 float類型,這一步出錯int n2 = 10;byte b2 = n2;//不可以,變量賦值要考慮數據類型,此時就是把大的(int,4)賦值給小的(byte,1),所以不行
  • (3).char 和 (byte/short) 之間不能夠進行自動轉換
byte b3 = 10;char c3 = b3;//錯誤,char 和 byte 之間不能轉換short s3 = b3;//錯誤,char 和 short 之間不能轉換byte b4 = 40;short s4 = b4;//可以,小的給大的賦值,出發了自動轉換
  • (4).char byte short 三者可以運算,但是計算時首先轉換成 int 類型
byte b = 10; //OK,byte 范圍為 -128 ~~ 127,10 在這個范圍內,可以char c = 'c';short s = 6;short ss = b + c + s; //錯誤,因為b,c,s在運算時,已經把數據轉換成了 int型,最后無法把 int型數據 賦值給 short型變量int n = b + c + s; //正確,運算時 b,c,s 在運算時都轉換成了 int類型 ,最后又賦值給了 int型變量,所以是可以的System.out.println(n);//115
  • (5).boolean 不參與運算
boolean b = 1; //錯誤boolean b = true; //正確int n = (int)b; //錯誤
  • (6).自動提升原則:表達式結果的類型自動提升為操作數中最大的類型
//訓練:每個變量的值是其所對應的存儲空間的大小,默寫byte b = 1;char c = 2;short s = 2;int n = 4;float f =4F;long L = 8L;double d = 8;double sum = b + c + s + n + f + L + d;System.out.println(sum);//輸出結果是:29.0

九、基本數據類型強制轉換

1、強制類型轉換 //ForceConventDetail.java

  • 介紹:自動類型轉換的逆過程,高精度(大容量)的數據類型轉換為容量較低精度(小容量)的數據類型,使用時要加上強制轉換符(),但可能會造成精度降低或者溢出,要注意
int i = (int)1.9;System.out.println(i);//輸出結果:1,但是有精度損失int j =100;byte b1 = (byte)j;System.out.println(j);//輸出結果:100,因為沒有溢出(-128~~127)int k =130;byte b2 = (byte)k;System.out.println(k);//輸出結果:-126,因為溢出了

2、注意事項、使用細節和說明

  • (1).當進行數據的大小從 大 --> 小,就需要使用轉換
  • (2).強制轉換符號() 只對于最近的操作數有效,往往使用小括號提升優先級
//int x = (int)10*3.5 + 6*1.5;//編譯都不通過,因為強制轉換只把10強制轉換成了int類型,//但是后面 6*1.5 計算時轉換成了double型數據,無法賦值給 int型變量int y = (int)(10*3.5 + 6*1.5);System.out.println(y);//輸出結果:44
  • (3).char 類型可以保存 int常量值,但是不能保存int變量值,需要強制轉換
char c1 = 100;int m = 100;//char c2 = m;//編譯都不通過,無法把 int型 直接賦值給 char型char c3 = (char)m;System.out.println(c3);//輸出結果:d
  • (4).byte 和 short 類型在進行運算時,當作int類型來處理

十、基本數據類型和 String 類型的轉換

1、介紹:在程序開發中,我們經常需要將 基本的數據類型 轉成 String類型,或者將 String類型 轉換成 基本數據類型

2、基本數據類型 轉成 String類型

  • 語法:將 基本數據類型的值 加上 " " 即可
int n = 1;float f = 2.2F;double d = 3.3;String str1 = n + "";String str2 = f + "";String str3 = d + "";System.out.println(str1 + "--" + str2 + "--" + str3);//輸出結果:1--2.2--3.3

3、String類型 轉成 基本數據類型

  • 語法:通過基本數據類型 的包裝類調用 parseXX方法即可 //StringToBasic.java
Byte.parseByte("1");Short.parseShort("12");Integer.parseInt("123");Long.parseLong("1234");Float.parseFloat("3.14");Double.parseDouble("3.1415926");Boolean.parseBoolean("true");//怎么把字符串轉換成char -->>含義是指 把字符串的第一個字符得到//用 字符串的 charAt(int n)方法,n為索要獲取的字符串的位數,從0開始,0是第一位String str = "abcdefg";//得到achar c1 = str.charAt(0);System.out.println(c1);//輸出結果:a

4、注意事項和使用細節

  • 在使用字符串 強制轉換成 基本數據類型時,一定要保證轉換成有效的數據,如果格式不正確,則會拋出異常,程序會終止

十一、其他基本數據類型 強轉 String 類型的方法

(1)String.valueOf(boolean b) : 將 boolean 變量 b 轉換成字符串

(2)String.valueOf(char c) : 將 char 變量 c 轉換成字符串

(3)String.valueOf(char[] data) : 將 char 數組 data 轉換成字符串

(4)String.valueOf(char[] data, int offset, int count) : 將 char 數組 data 中 由 data[offset] 開始取 count 個元素 轉換成字符串

(5)String.valueOf(double d) : 將 double 變量 d 轉換成字符串

(6)String.valueOf(float f) : 將 float 變量 f 轉換成字符串

(7)String.valueOf(int i) : 將 int 變量 i 轉換成字符串

(8)String.valueOf(long l) : 將 long 變量 l 轉換成字符串

(9)String.valueOf(Object obj) : 將 obj 對象轉換成 字符串, 等于 obj.toString()

十二、String類型 強轉 數字的基本數據類型的方法

要將 String 轉換成基本數據型態轉 ,大多需要使用基本數據型態的包裝類別

比如說 String 轉換成 byte ,可以使用 Byte.parseByte(String s) ,這一類的方法如果無法將 s 分析 則會丟出 NumberFormatException

(1)byte : Byte.parseByte(String s) : 將 s 轉換成 byte

(2)Byte.parseByte(String s, int radix) : 以 radix 為基底 將 s 轉換為 byte ,比如說 Byte.parseByte(“11”, 16) 會得到 17

(3)double : Double.parseDouble(String s) : 將 s 轉換成 double

(4)float : Float.parseFloat(String s) : 將 s 轉換成 float

(5)int : Integer.parseInt(String s) : 將 s 轉換成 int

(6)long : Long.parseLong(String s)

十三、課后作業

1、閱讀程序,寫出輸出

public class Homework1{public static void main(String[] args){int n1;n1 = 13;int n2;n2 = 17;int n3;n3 = n1 + n2;System.out.println("n3=" + n3);//輸出結果:30int n4 = 38;int n5 = n4 - n3;System.out.println("n5=" + n5);//輸出結果:8}}

2、使用char類型,分別保存 \n,\t,\r,\,1,2,3等字符,并打印輸出

public class Homework2{public static void main(String[] args){char c1 = '\n';char c2 = '\t';char c3 = '\r';char c4 = '\\';char c5 = '1';char c6 = '2';char c7 = '3';System.out.println(c1);System.out.println(c2);System.out.println(c3);System.out.println(c4);System.out.println(c5);System.out.println(c6);System.out.println(c7);}}輸出結果:\123

3、編程,保存兩本書的書名,用 + 拼接,看效果;保存兩個性別,用 + 拼接,看效果;保存兩本書的價格,用 + 拼接,看效果

public class Homework3{public static void main(String[] args){//書名String s1 = "完美世界";String s2 = "遮天";//性別char gender1 = '男';char gender2 = '女';//價格double p1 = 15.5;double p2 = 4.5;System.out.println(s1 + s2);System.out.println(gender1 + gender2);//輸出 男字符碼值 + 女字符碼值System.out.println(p1 + p2);}}運行結果:完美世界遮天5290620.0

4、編程實現以下效果:

姓名 年齡 成績 性別 愛好

XXX XXX XXX XXX XXX

public class Homework1{public static void main(String[] args){String name = "陳鑫";int age = 21;double score = 92.5;char gender = '男';String hobby = "垂釣";System.out.println("姓名\t年齡\t成績\t性別\t愛好\t\n"+name + '\t' + age + '\t' + score + '\t' + gender + '\t' + hobby);}}運行結果:姓名 年齡 成績 性別 愛好陳鑫 21 92.5 男 垂釣

總結

以上是生活随笔為你收集整理的第二章 变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。