了解Java變量和數據類型
核心要點
- Java變量用於存儲單個數據點或信息片段以供日後使用。它們必須具有類型、名稱和某種數據來保存。 Java中最廣泛使用的數據類型是字符字符串,它由Java的String類表示。
- Java中的變量可以保存程序生命週期中可能發生變化的數據。每個Java變量都有一個默認值;對於String變量,它是null。如果在聲明時不知道變量的值,Java可以隱式地為其提供適當的默認值。
- Java提供不同的數據類型來表示不同類型的數據。例如,int數據類型表示整數值,boolean只能是true或false,double表示浮點數。這些是Java提供的八種基本數據類型中的幾種。
- 在Java中,可以創建自定義數據類型或類。類定義了從其創建的實例可以展現的屬性和行為。類的實例可以具有關於自身的信息,這些信息存儲在各種數據類型的變量中。類的靜態變量屬於類,而不是該類的實例。
Java變量使程序員能夠存儲單個數據點和信息片段以供日後使用。為了提高效率,Java變量具有類型。這些類型被稱為數據類型,因為它們允許我們分別存儲不同類型的數據,以方便和可預測性。在學習更高級的主題之前,任何Java程序員都必須了解Java變量和數據類型的基礎知識。為了說明Java變量的工作原理,讓我們想像一個照片共享應用程序。該應用程序將存儲有關應用程序狀態及其用戶共享的照片的大量信息:用戶數量、共享的照片數量以及共享的評論總數。為了在需要時操縱這些數據並將其顯示給用戶,必須存儲這些數據。這就是Java變量的作用。
Java變量
變量可以保存數據,並且這些數據可以在程序的生命週期內更改。變量必須具有類型、名稱,並提供某種數據來保存。 Java中最廣泛使用的數據類型是字符字符串,由Java的String類表示。 “SitePoint”之類的字符串只是String類的實例。
變量命名
有一些規則你必須遵守,也有一些規則你應該遵守。 Java的變量名稱區分大小寫,可以是無限數量的字母和數字。但是,變量名稱必須以字母、下劃線字符_或美元符號$開頭。在Java中創建變量時,最好遵循使用數字和完整單詞的約定,這些單詞描述變量的目的,同時避免使用下劃線字符和美元符號。最後,變量應該使用小駝峰式命名法,這是一種流行的編程約定,規定第一個單詞的第一個字母應該小寫,後面的單詞應該大寫。
使用變量
讓我們創建應用程序主類的框架,看看我們如何將上述關於應用程序的每個數據點存儲在String變量中:
public class SitePointGram { public static void main(String[] args) { String nameOfApp = "SitePointGram"; String numberOfUsers = ""; String numberOfPhotos; String numberOfComments = null; //... } }
那麼那裡發生了什麼?讓我們跳到那段Java代碼的第三行。在每一行中,我們創建一個新的String類型變量來存儲關於應用程序的單個信息點。注意,要在Java中創建一個變量,我們首先聲明要存儲在變量中的數據的類型,然後是小駝峰式命名的變量名,然後是賦值運算符=,最後是要存儲在變量中的數據。在我們main方法的第一行中,我們將應用程序的名稱存儲在nameOfApp String變量中,其中存儲的數據是“SitePointGram”。下一行有一個String變量,它將存儲我們應用程序上的用戶數量。請注意,它存儲一個空字符串""。在我們繼續進行到接下來的兩行時,請記住這一點。每個Java變量都有一個默認值;String變量的默認值是null,“nothing”。如果在聲明時我們不知道變量的值,我們可以省略用值顯式初始化它,並允許Java隱式地為其提供適當的默認值。這正是我們對numberOfPhotos變量所做的。同樣,在第四行中,我們顯式地將numberOfComments String變量初始化為null,儘管我們不必這樣做。重要的是要理解,空字符串是一個實際的字符字符串,儘管是一個空字符串,而null意味著變量還沒有有效的數據。讓我們繼續。 SitePointGram變得流行起來,人們紛紛湧向它。讓我們用Java表示應用程序的增長:
public static void main(String[] args) { //... numberOfUsers = "500"; numberOfPhotos = "1600"; numberOfComments = "2430"; //.. }
在初始化我們的String變量之後,現在很明顯,我們的應用程序有500個用戶,1600張共享照片,以及這些照片總共有2430條評論。我們做得很好,所以現在是時候學習如何在Java中使用數據類型了。
Java數據類型
我們目前將所有數據點都存儲在String變量中,即使其中一些是數字。字符串適合表示文本等字符字符串,但是當我們想要表示數字和其他類型的數據(並在該數據上執行操作)時,我們可以使用Java提供的數據類型或創建我們自己的數據類型。讓我們看看我們如何更恰當地將數值數據點存儲在變量中,以便我們可以按預期使用它們:
public class SitePointGram { public static void main(String[] args) { String nameOfApp = "SitePointGram"; String numberOfUsers = ""; String numberOfPhotos; String numberOfComments = null; //... } }
遠離我們原來的main方法,我們有一段新的代碼,其中包含適當數據類型的新的變量。在我們main方法主體的第一行中,保存我們應用程序名稱的變量現在更精確:我們使用appName代替nameOfApp。在下一行中,我們有一個Boolean變量,它存儲我們應用程序的狀態。 boolean只能是true或false,因此當您想要存儲表示有效性的數據點時,它最適合;在我們的例子中,我們的應用程序是活動的,直到我們需要關閉它進行維護。接下來的三個變量是int類型。 int數據類型表示Java中的整數值。遵循與appName相同的模式,我們應該使用numX而不是numberOfX來命名我們的數字變量,以便在保持可讀性的同時更精確。 int、boolean和double是Java中八種基本數據類型中的三種。基本數據類型是Java提供的特殊值,而不是從類構造的對象。請記住,字符串是String類的實例,因此它們是對象,而不是基元。數值數據類型的默認值為0,boolean的默認值為false。與我們之前的main方法不同,我們新的變量集恰當地存儲了數字,因此我們可以按預期操作它們。通過將數值數據點存儲在表示數字的類型的變量中,我們可以對它們執行數學運算:
public static void main(String[] args) { //... numberOfUsers = "500"; numberOfPhotos = "1600"; numberOfComments = "2430"; //.. }
我們main方法中的最後一個變量保存每位用戶的平均照片數量的浮點數,這由double數據類型表示。我們通過將照片數量除以用戶數量來獲得這個值。請注意,我們將第一個數字乘以1.0,這樣結果就不會四捨五入到最接近的整數。我們可以將浮點數存儲為float或double;這裡唯一的區別是double(64位)可以容納比float(32位)更大的數字範圍,並且由於這個原因而更常用。最後要做的是看看我們如何在我們自己的數據類型中表示我們的數據。
public static void main(String[] args) { String appName = "SitePointGram"; boolean appIsAlive = true; int numUsers = 500; int numPhotos = 1600; int numComments = 2430; //... }
雖然很容易製作許多像user1中那樣保存用戶信息的字符串,但最好創建一個類來從中構造用戶對象:
自定義Java數據類型(類)
//一个新用户加入,将用户数量增加1 numUsers += 1; //将照片数量乘以2 numPhotos = numPhotos * 2; //通过除法得到每位用户的平均照片数量 double avgPhotosPerUser = 1.0 * numPhotos / numUsers;
在那裡,我們有一個名為User的類。這個類只是定義了從其創建的實例可以展現的屬性和行為。這個類的屬性只是各種數據類型的變量,它們將保存關於我們應用程序中用戶的信息。 User類的實例可以從其標識號到其用戶名擁有關於自身的信息,其在線狀態保存在一個boolean變量中,當用戶登錄或註銷時可以更新該變量。當創建用戶或登錄或註銷時,我們將該信息打印到控制台。每次在我們應用程序中創建一個新用戶時,numUsers變量的值都會增加1,以便我們的應用程序始終知道有多少用戶。您可以通過添加更多實例變量來向此類添加更多信息。現在,讓我們在應用程序的main方法中創建新數據類型User的實例:
public class SitePointGram { public static void main(String[] args) { String nameOfApp = "SitePointGram"; String numberOfUsers = ""; String numberOfPhotos; String numberOfComments = null; //... } }
在那段代碼中,我們再次更改了我們的main方法。前兩行保持不變,但我們現在有三個新行。方法中的第三行創建了一個新的User實例或對象,並將其存儲在一個名為“lincoln”的變量中,下一行將lincoln從我們的應用程序中註銷,下一行通過訪問User類中的公共靜態numUsers變量來打印出我們應用程序中的User實例的數量。需要注意的是,類的靜態變量屬於類,而不是類的實例,因此我們不需要User的實例來訪問numUsers。
結論
就是這樣!您現在已經了解了開始構建自己的數據類型或類所需的所有關於Java變量和數據類型的知識。查看我們GitHub存儲庫中本教程的源代碼,看看您可以如何在此基礎上進行構建。
參考文獻:
- Oracle關於Java字符串的文檔
- Oracle關於Java基本數據類型的文檔
關於Java變量和數據類型的常見問題解答 (FAQ)
Java中的局部變量和實例變量有什麼區別?
在Java中,變量分為局部變量、實例變量和類變量。局部變量在方法、構造函數或塊內聲明,並且只能在其聲明的作用域內訪問。它們沒有默認值,因此必須在使用前進行初始化。另一方面,實例變量在類中聲明,但在方法之外。它們是特定於對象的,每次創建對象時都會獲得內存。與局部變量不同,實例變量具有基於其數據類型的默認值。
Java如何處理類型轉換?
Java通過兩種方法處理類型轉換:隱式轉換和顯式轉換。隱式轉換,也稱為自動類型轉換,發生在兩種類型兼容且目標類型大於源類型時。顯式轉換,也稱為強制轉換,是我們手動將一種數據類型轉換為另一種數據類型的情況。當目標類型小於源類型或類型不兼容時,這是必要的。
Java中變量的默認值是什麼?
在Java中,如果未顯式初始化,實例變量和類變量會自動初始化為默認值。默認值取決於數據類型。例如,byte、short、int和long默認為0,float和double默認為0.0,char默認為'u0000',boolean默認為false。非基本數據類型(如數組和類)默認為null。
Java中'final'關鍵字在變量中的意義是什麼?
Java中的'final'關鍵字用於聲明常量變量,這意味著一旦賦值,其值就不能更改。它可以應用於基本數據類型、對象和方法。例如,'final int x = 10;'意味著x的值將始終為10,並且不能修改。
Java如何處理字符串變量?
在Java中,字符串不是基本數據類型,而是特殊的類。字符串是不可變的,這意味著一旦創建,它們的值就不能更改。相反,會創建一個新的字符串對象。 Java在堆內存中提供了一個特殊的字符串池區域,它試圖維護唯一的字符串值以優化內存使用。
Java中'=='和'equals()'有什麼區別?
在Java中,'=='是一個關係運算符,它比較兩個對象的內存位置,而'equals()'是一個方法,它比較兩個對象的內容。對於基本數據類型,'=='檢查值是否相等。但是對於對象,它檢查它們是否引用完全相同的內存位置,而不是它們的內容。
Java中的類型提升是什麼?
Java中的類型提升是將一種基本數據類型自動轉換為另一種數據類型以防止數據丟失。當操作數類型不同時,它通常發生在表達式或方法調用中。較小的類型被提升為較大的類型。例如,如果在表達式中使用int和float,則int被提升為float。
Java中變量的作用域是什麼?
Java中變量的作用域是指可以訪問變量的代碼部分。局部變量只能在其聲明的方法或塊內訪問。實例變量可以被類中的所有方法訪問,除非該方法是靜態的。類變量或靜態變量可以被類中的所有方法訪問,如果它們是公共的,甚至可以在類之外訪問。
Java中靜態變量和非靜態變量有什麼區別?
在Java中,靜態變量,也稱為類變量,屬於類,而不屬於單個對象。它們只在執行開始時初始化一次,並在類的所有對象之間共享相同的值。非靜態變量,也稱為實例變量,屬於單個對象,並且每個對像都有自己的變量副本。
Java如何處理數組?
在Java中,數組是存儲相同類型多個變量的對象。它們是動態分配的,可以存儲基元或對象。數組的長度在創建數組時確定,並且不能更改。數組有一個'length'屬性,它返回數組中的元素數量。數組中的元素通過它們的索引訪問,從0開始。
以上是了解Java變量和數據類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

該試點程序是CNCF(雲本機計算基礎),安培計算,Equinix金屬和驅動的合作,簡化了CNCF GitHub項目的ARM64 CI/CD。 該計劃解決了安全問題和績效

該教程通過使用AWS服務來指導您通過構建無服務器圖像處理管道。 我們將創建一個部署在ECS Fargate群集上的next.js前端,與API網關,Lambda函數,S3桶和DynamoDB進行交互。 Th

與這些頂級開發人員新聞通訊有關最新技術趨勢的了解! 這個精選的清單為每個人提供了一些東西,從AI愛好者到經驗豐富的後端和前端開發人員。 選擇您的收藏夾並節省時間搜索REL
