最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中類型轉(zhuǎn)換和變量理解及實(shí)例詳解

 更新時間:2025年10月09日 09:54:30   作者:云深路遙  
由于java是強(qiáng)類型語言,所以要進(jìn)行有些運(yùn)算的時候,需要用到類型轉(zhuǎn)換,這篇文章主要介紹了java中類型轉(zhuǎn)換和變量理解的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

一 類型轉(zhuǎn)換

java是強(qiáng)類型語言,所以必須在運(yùn)算的時候,注意數(shù)據(jù)是否溢出,此時就需要利用到類型轉(zhuǎn)換

數(shù)據(jù)類型儲存值從低到高如下

byte,short,char,int,long,float,double.

運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)換為同一類型,然后再進(jìn)行運(yùn)算

強(qiáng)制轉(zhuǎn)換

注意點(diǎn):
1,不能對布爾值進(jìn)行轉(zhuǎn)換
2,不能把對象類型轉(zhuǎn)換為不相干的類型
3,在把高容量轉(zhuǎn)換到低容量的時候,強(qiáng)制轉(zhuǎn)換(反之就不用動)
4,轉(zhuǎn)換的時候可能存在內(nèi)存溢出,或者精度問題!
public class deme_3 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte) i; //內(nèi)存溢出
//        byte b = 128;
?
        //強(qiáng)制轉(zhuǎn)換 (類型)變量名
        //自動轉(zhuǎn)換 從低到高
        System.out.println(i);
        System.out.println(b);
         System.out.println("==================");
        System.out.println((int)23.7); //23
        System.out.println((int)-55.57f);//-55 存在精度問題
        System.out.println("==================");
        char c = 'A';
        int d = 1;
        int s = c + d;
        System.out.println(s); //int
        System.out.println((char)s);//char類型B
 }
}

簡單來說就是,計(jì)算機(jī)的存儲單位字節(jié)不夠用了,要換大的。

  • byte:1 字節(jié)(8 位),范圍:-128 到 127

  • short:2 字節(jié)(16 位),范圍:-32768 到 32767

  • int:4 字節(jié)(32 位),范圍:-2³¹ 到 2³¹-1

  • long:8 字節(jié)(64 位),范圍:-2?³ 到 2?³-1

  • float:4 字節(jié)(32 位),單精度浮點(diǎn)數(shù)

  • double:8 字節(jié)(64 位),雙精度浮點(diǎn)數(shù)

  • char:2 字節(jié)(16 位),用于表示 Unicode 字符

  • boolean:理論上占 1 位,但在實(shí)際存儲中通常使用 1 字節(jié)(具體大小由 JVM 決定)

操作數(shù)字比較大時候,記得要注意溢出問題

例如

public class deme_3 {
    public static void main(String[] args) {
?
//jdk7 以后新特性,數(shù)字之間可以用下劃線分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money * years;//計(jì)算之后溢出了
        long total1 = money * years;//定義了long也溢出了
        long total2 = money * (long)years;//先把一個數(shù)轉(zhuǎn)換為long
        long total3 = (long)money * years;
        System.out.println(total);
        System.out.println(total1);
        System.out.println(total2);
        System.out.println(total3);
?
  }
}

細(xì)節(jié):為什么total1 不能轉(zhuǎn)換,因?yàn)閙oney和years都是int類型

詳細(xì)解釋

  • 運(yùn)算時的類型

    • int 類型的取值范圍是有限的(約 -21 億到 21 億)。

    • 代碼中 money = 10_0000_0000(即 10 億),years = 20,兩者相乘為 10 億 * 20 = 200 億。

    • 但 int 類型最大只能表示約 21 億,所以 money * years 的結(jié)果會超出 int 的范圍,發(fā)生整數(shù)溢出(結(jié)果變成一個錯誤的小數(shù)值)。

  • 賦值給 long 的時機(jī)

    • 雖然 total1 被聲明為 long 類型,但 money * years 的運(yùn)算先于賦值發(fā)生。

    • 由于 money 和 years 都是 int,Java 會先以 int 類型進(jìn)行乘法運(yùn)算,導(dǎo)致溢出。

    • 溢出后的錯誤結(jié)果再被賦值給 long 時,已經(jīng)是錯誤的值了,無法恢復(fù)。

避免這種情況,需要在運(yùn)算前將其中一個操作數(shù)轉(zhuǎn)換為 long

一個數(shù)字轉(zhuǎn)換為long就行了

二 變量

  • 變量是什么:就是可以變化的量!

  • java是一種強(qiáng)類型語言,每個變量都必須聲明其類型。

  • java變量是程序中最基本的存儲單元,其要素包括變量名,變量類型和作用域

注意事項(xiàng)

  • 每個變量都有類型,類型可以是最基本類型,也可以是引用類型(string)

  • 變量名必須是合法的標(biāo)識符(前面的博客有說過)。

  • 變量聲明是一條完整的語句,因此每一個聲明都必須以分號結(jié)束。

代碼部分:

public class deme_4 {
    public static void main(String[] args) {
        int a = 1,b = 2,c = 3,d = 4;
        System.out.println(a + "," + b + "," + c + "," + d);
    }
}
?

注意:你們仔細(xì)看我的println打印值的地方用的是加號(是不是和c語言不一樣)。我下面的圖片就是錯誤示范,大家可以去看一下!

java中“同時打印多個變量”的問題

Java 的 System.out.println(或 print不支持像 C 語言 printf 那樣直接用 “逗號分隔多個變量” 傳參。若要打印多個變量,需通過 “字符串拼接” 或 printf 格式化輸出 實(shí)現(xiàn):

  • 方式 1:字符串拼接(用 + 號連接變量與字符串)

    int a = 1, b = 2, c = 3, d = 4;
    System.out.println(a + ", " + b + ", " + c + ", " + d);
  • 方式 2:printf 格式化輸出(類似 C 語言 printf)

    System.out.printf("%d, %d, %d, %d\n", a, b, c, d);

之前的代碼 System.out.println(a,b,c,d); 報錯,是因?yàn)?nbsp;println 方法不支持 “多變量逗號分隔” 的傳參語法 —— 它需要將多個變量 ** 拼接成一個整體(字符串或格式化內(nèi)容)** 后再傳入。

接下來大家肯定就要問這個加號為什么要這么用了,注意看我細(xì)節(jié):在 Java 中,+ 號在這里的作用是字符串拼接,這是 Java 語法中一種特殊的處理邏輯。

例如:

int a = 1;
String str = ", ";
int b = 2;
System.out.println(a + str + b); // 輸出結(jié)果:1, 2

當(dāng) + 號兩邊的 “元素” 中至少有一個是字符串類型時,+ 就不再是 “數(shù)學(xué)加法”,而是 “拼接”—— 它會把所有元素轉(zhuǎn)換成字符串 **,然后首尾連接成一個新的字符串。

代碼 a + ", " + b + ", " + c + ", " + d 中:

  • a 是 int 類型(數(shù)值 1),", " 是字符串類型

  • 第一個 +a + ", "):因?yàn)橛疫吺亲址?,所?nbsp;a 會被自動轉(zhuǎn)換成字符串 "1",拼接后得到 "1, "

  • 接下來 + b:左邊已經(jīng)是字符串 "1, ",所以 b(數(shù)值 2)被轉(zhuǎn)換成 "2",拼接后得到 "1, 2, "

  • 以此類推,最終所有元素會被拼接成一個完整的字符串 "1, 2, 3, 4"

最后 System.out.println 接收這個拼接好的字符串,打印出結(jié)果

和數(shù)學(xué)中+的區(qū)別

如果 + 號兩邊都是數(shù)值類型(比如 intdouble 等),它才會執(zhí)行數(shù)學(xué)加法:

int x = 10, y = 20;
System.out.println(x + y); // 輸出 30(數(shù)學(xué)加法)
System.out.println(x + ", " + y); // 輸出 "10, 20"(字符串拼接)

變量的作用域

目錄

  • 類變量

  • 實(shí)例變量

  • 局部變量

局部變量

代碼示例

public class deme_6 {
    //main方法
    public static void main(String[] args) {
        //局部變量,必須聲明和初始化值
        int i = 10;
        System.out.println(i);
?
    }
?
    //其他方法
    public  void  add(){
        System.out.println(i); //i在這個方法里是無法表達(dá)的,這就是作用域
    }
}?

實(shí)例變量

定義:從屬于對象

格式:變量類型 +變量名字 = new Deme06()

public class deme_6 {
    //實(shí)例變量:從屬于對象,在不進(jìn)行初始化時,默認(rèn)輸出是0
    String name = ",";
    int age = 2;
?
?
    //main方法
    public static void main(String[] args) {
        //局部變量,必須聲明和初始化值
        int i = 10;
        System.out.println(i);
//
        deme_6 deme06 = new deme_6();
        System.out.println(deme06.age);
        System.out.println(deme06.name);
    }
?
    //其他方法
    public  void  add(){
//        System.out.println(i);
    }
}?

兄弟們給你們看我的錯誤:類聲明是 public class deme_6(小寫開頭),但創(chuàng)建對象時寫成了 Deme_6 deme06 = new Deme_6();(大寫開頭),Java 是大小寫敏感的,所以編譯器找不到名為 Deme_6 的類,也會報 “找不到符號”。

類變量

關(guān)鍵詞:tatic (中文:靜態(tài)的)

public class deme_6 {
    //實(shí)例變量:從屬于對象,在不進(jìn)行初始化時,默認(rèn)輸出是0
    String name = ",";
    int age = 2;
//類變量
    static int age2 = 2;
?
    //main方法
    public static void main(String[] args) {
        //局部變量,必須聲明和初始化值
        int i = 10;
        System.out.println(i);
//
        deme_6 deme06 = new deme_6();
        System.out.println(deme06.age);
        System.out.println(deme06.name);
        System.out.println(age2);
    }
?
    //其他方法
    public  void  add(){
//        System.out.println(i);
    }
}?

變量命名規(guī)則

有效字符與開頭限制

  • 首字符:只能以字母(大小寫均可)、下劃線 _、美元符號 $ 開頭,不能以數(shù)字開頭。

  • 后續(xù)字符:可包含字母、數(shù)字、下劃線 _、美元符號 $(但 $ 實(shí)際很少使用,避免歧義)。

int count;        // 正確(字母開頭)
int _value;       // 正確(下劃線開頭)
int $temp;        // 合法但不推薦($ 開頭)
// int 123num;    // 錯誤(數(shù)字開頭)
// char @sym;     // 錯誤(含非法字符 @)
  • 大小寫敏感 Java 對大小寫敏感,myVariable 和 MyVariable 會被視為兩個不同的變量

  • 禁用關(guān)鍵字 / 保留字 不能使用 Java 的關(guān)鍵字(如 int、class、public、true 等,有特定語法含義)或保留字(如 goto、const,曾是 C++ 關(guān)鍵字,Java 中雖不做關(guān)鍵字但也禁止用作變量名)

命名規(guī)范與最佳實(shí)踐

1. 駝峰命名法(Camel Case)

  • 小駝峰(Lower Camel Case):首字母小寫,后續(xù)單詞首字母大寫。 適用場景:變量名、方法名。 示例:studentAgecalculateTotal()。

  • 大駝峰(Upper Camel Case / Pascal Case):每個單詞首字母大寫。 適用場景:類名、接口名。 示例:StudentRecord、DataProcessor。

2. 見名知意原則

  • 變量名要描述用途 / 含義,避免無意義縮寫或單字母(除非是小作用域的循環(huán)變量,如 i、j)。

總結(jié)

到此這篇關(guān)于java中類型轉(zhuǎn)換和變量理解的文章就介紹到這了,更多相關(guān)java類型轉(zhuǎn)換和變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java?SE判斷兩個文件內(nèi)容是否相同的多種方法代碼

    Java?SE判斷兩個文件內(nèi)容是否相同的多種方法代碼

    昨天因?yàn)橐獛蛶熜值拿λ钥戳艘幌氯绾闻袛鄡蓚€文件內(nèi)容是否相同,這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于Java?SE判斷兩個文件內(nèi)容是否相同的多種方法,需要的朋友可以參考下
    2023-11-11
  • 基于Mybatis的配置文件入門必看篇

    基于Mybatis的配置文件入門必看篇

    這篇文章主要介紹了Mybatis的配置文件入門,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot+Jpa項(xiàng)目配置雙數(shù)據(jù)源的實(shí)現(xiàn)

    SpringBoot+Jpa項(xiàng)目配置雙數(shù)據(jù)源的實(shí)現(xiàn)

    本文主要介紹了SpringBoot+Jpa項(xiàng)目配置雙數(shù)據(jù)庫源的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • java實(shí)現(xiàn)把對象數(shù)組通過excel方式導(dǎo)出的功能

    java實(shí)現(xiàn)把對象數(shù)組通過excel方式導(dǎo)出的功能

    本文主要介紹了java實(shí)現(xiàn)把對象數(shù)組通過excel方式導(dǎo)出的功能的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • java中JDeps命令使用

    java中JDeps命令使用

    jdeps是一個Java類依賴分析工具,用于分析Java應(yīng)用程序的依賴情況,包括類、包、模塊以及JDK內(nèi)部API的使用,本文就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2024-09-09
  • java 數(shù)據(jù)結(jié)構(gòu)之堆排序(HeapSort)詳解及實(shí)例

    java 數(shù)據(jù)結(jié)構(gòu)之堆排序(HeapSort)詳解及實(shí)例

    這篇文章主要介紹了java 數(shù)據(jù)結(jié)構(gòu)之堆排序(HeapSort)詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Java中NoClassDefFoundError異常的原因及解決方法

    Java中NoClassDefFoundError異常的原因及解決方法

    在 Java 開發(fā)中,java.lang.NoClassDefFoundError 是運(yùn)行時異常中最常見的問題之一,它通常出現(xiàn)在程序編譯成功后,卻在運(yùn)行時因 JVM 無法找到某個類的定義 而拋出,本文給大家介紹了Java中NoClassDefFoundError異常的原因及解決方法,需要的朋友可以參考下
    2025-05-05
  • SpringBoot框架底層原理解析

    SpringBoot框架底層原理解析

    這篇文章主要介紹了SpringBoot底層原理,包括配置優(yōu)先級的配置方式給大家講解的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • java中如何執(zhí)行xshell命令

    java中如何執(zhí)行xshell命令

    這篇文章主要介紹了java中如何執(zhí)行xshell命令,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 為何Java8需要引入新的日期與時間庫

    為何Java8需要引入新的日期與時間庫

    這篇文章主要給大家介紹了關(guān)于Java8為什么需要引入新的日期與時間庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評論

金阳县| 铜山县| 东宁县| 西平县| 综艺| 扎鲁特旗| 拜城县| 平和县| 南和县| 深圳市| 青冈县| 商水县| 阿合奇县| 思茅市| 沅陵县| 股票| 吉木乃县| 威宁| 黄浦区| 田林县| 海口市| 丹寨县| 银川市| 绥芬河市| 霍林郭勒市| 黄梅县| 宜都市| 抚松县| 武夷山市| 诏安县| 长白| 巴林右旗| 富源县| 鞍山市| 田阳县| 沁水县| 嘉峪关市| 荆门市| 新晃| 济源市| 湄潭县|