Java-類型和變量(基于C語言的補充)

一個簡單的Java程序

args){ System.out.println("Hello,world"); } }

通過上述代碼,我們可以看到一個完整的Java程序的結構,Java程序的結構由如下三個部分組成:
1.源文件(擴展名為*.java):源文件帶有類的定義。類用來表示程序的一個組件,小程序或許只會有一個類。類的內容必須包含在花括號里面。
2.類:類中帶有一個或多個方法。方法必須在類的內部聲明。
3.方法:在方法的花括號中編寫方法應該執行的語句。 總結一下:類存在于源文件里面;方法存在于類中;語句存在于方法中。

注意:在一個源文件中只能有一個public修飾的類,而且源文件名字必須與public修飾的類名字相同。否則會報如下的錯誤
在這里插入圖片描述

如何運行Java程序
在這里插入圖片描述

一個面試題 JDK、JRE、JVM之間的關系?
JDK(Java Development Kit):Java開發工具包,提供給Java程序員使用,包含了JRE,同時還包含了編譯器javac與自帶的調試工具Jconsole、jstack等。
JRE(Java Runtime Environment):Java運行時環境,包含了JVM,Java基礎類庫。是使用Java語言編寫程序運行的所需環境。
JVM:Java虛擬機,運行Java代碼
在這里插入圖片描述

可以使用javadoc工具從Java源碼中抽離出注釋

/*** 文檔注釋,一般放在類的開始或者方法的開始* @version v1.0.0* @author  abc* */
public class HelloWorld{/*** [這是第一個java的程序]* @param args [這個參數是運行是的參數]*/public static void main(String[] args){/*塊注釋for(int i = 0;i < args.length;i++) {System.out.println(args[i]);}*/// 單行注釋:System.out.println是Java中標準輸出,會將內容輸出到控制臺for(int i=0;i<args.length;i++){System.out.println(args[i]);}//System.out.println("hello world");System.out.println("你好");}
}

命令如下

javadoc -d myHello -author -version -encoding UTF-8 -charset UTF-8 HelloWorld.java

在生成的文件夾中打開,下圖所指文件
在這里插入圖片描述
生成一個說明書,如下
在這里插入圖片描述

標識符
在程序中,Test稱為類名,main稱為方法名,也可以將其稱為標識符,即:在程序中由用戶給類名、方法名或者變量所取的名字。
【硬性規則】 標識符中可以包含:字母、數字以及 下劃線和 $ 符號等等。 注意:標識符不能以數字開頭,也不能是關鍵字,且嚴格區分大小寫。
【軟性建議】 類名:每個單詞的首字母大寫(大駝峰),如HelloWorld
方法名:首字母小寫,后面每個單詞的首字母大寫(小駝峰),如myBall 變量名:與方法名規則相同

在這里插入圖片描述

數據類型與變量

字面常量
常量即程序運行期間,固定不變的量稱為常量,比如:一個禮拜七天,一年12個月等 字面常量的分類:

  1. 字符串常量:由""括起來的,比如“12345”、“hello”、“你好”。
  2. 整形常量:程序中直接寫的數字(注意沒有小數點),比如:100、1000
  3. 浮點數常量:程序中直接寫的小數,比如:3.14、0.49
  4. 字符常量:由 單引號 括起來的當個字符,比如:‘A’、‘1’
  5. 布爾常量:只有兩種true和false
  6. 空常量:null(后面了講) 在這里插入圖片描述

注意:字符串、整形、浮點型、字符型以及布爾型,在Java中都稱為數據類型。

在這里插入圖片描述

數據類型
在Java中數據類型主要分為兩類:基本數據類型和引用數據類型。
基本數據類型有四類八種:

  1. 四類:整型、浮點型、字符型以及布爾型
  2. 八種: 在這里插入圖片描述

在這里插入圖片描述

正數處之所以減去1,是因為這里包含了0

不論是在16位系統還是32位系統,int都占用4個字節,long都占8個字節

變量
在這里插入圖片描述
在一行可以定義多個相同類型的變量
在這里插入圖片描述

整型變量 在給變量設置初始值時,值不能超過int的表示范圍,否則會導致溢出

局部變量在使用之前必須要賦初值,否則編譯報錯
在這里插入圖片描述

int型變量所能表示的范圍
Integer為包裝類型
在這里插入圖片描述

長整型變量
為了區分int和long類型,一般建議:long類型變量的初始值之后加L
long型變量所能表示的范圍
在這里插入圖片描述

短整型變量
short在任何系統下都占2個字節
在這里插入圖片描述

字節型變量byte
byte在任何系統下都占1個字節;
字節的包裝類型為Byte
在這里插入圖片描述

浮點型變量

雙精度浮點型double
在 Java 中, int 除以 int 的值仍然是 int(會直接舍棄小數部分)。
如果想得到 0.5,需要使用 double 類型計算
在這里插入圖片描述
double 類型的內存布局遵守 IEEE 754 標準(和C語言一樣), 嘗試使用有限的內存空間表示可能無限的小數,勢必會存在一定的精度誤差,因此浮點數是個近似值,并不是精確值。
在這里插入圖片描述

單精度浮點型
在這里插入圖片描述

字符型變量
Java 中使用 單引號 + 單個字母 的形式表示字符字面值,占用兩個字節
在這里插入圖片描述
在 C 語言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一個字符占用兩個字節,表示的字符種類更多, 包括中文

布爾型變量
boolean 類型的變量只有兩種取值, true 表示真, false 表示假
Java 的 boolean 類型和 int 不能相互轉換, 不存在 1 表示 true, 0 表示 false 這樣的用法
Java虛擬機規范中,并沒有明確規定boolean占幾個字節
在這里插入圖片描述

類型轉換 Java中類型轉換主要分為兩類:自動類型轉換(隱式) 和強制類型轉換(顯式)。 自動類型轉換(隱式)
特點:數據范圍小的轉為數據范圍大的時會自動進行。

在這里插入圖片描述
a1和a2都是整形,a1的范圍小,a2的范圍大,當將a1賦值給a2時,編譯器會自動將a1提升為long類型,然后賦值
在這里插入圖片描述
編譯報錯,long的范圍比int范圍大,會有數據丟失,不安全

強制類型轉換(顯式) 強制類型轉換:當進行操作時,代碼需要經過一定的格式處理,不能自動完成。特點:數據范圍大的到數據范圍小的。

在這里插入圖片描述
將一個字面值常量進行賦值的時候, Java 會自動針對數字范圍進行檢查
在這里插入圖片描述
100默認為int,沒有超過byte范圍,隱式轉換(對int類型特殊處理);257默認為int,超過byte范圍,需要顯示轉換,否則報錯

強制類型轉換不一定能成功,不相干的類型不能互相轉換,boolean和數值類型在這里插入圖片描述

類型提升 數據類型小的會被提升到數據類型大的
在這里插入圖片描述

byte與byte的運算
在這里插入圖片描述
原因是, 雖然 a 和 b 都是 byte, 但是計算 a + b 會先將 a和 b 都提升成 int, 再進行計算, 得到的結果也是 int, 這是賦給 c, 就會出現上述錯誤
由于計算機的 CPU 通常是按照 4 個字節為單位從內存中讀寫數據. 為了硬件上實現方便, 諸如 byte 和 short這種低于 4 個字節的類型, 會先提升成 int, 再參與計算 正確的寫法如下
在這里插入圖片描述

字符串類型

在Java中使用String類定義字符串類型
在這里插入圖片描述
s1+s2表示:將s1和s2進行拼接

在有些情況下,需要將字符串和整形數字之間進行轉換 int 轉成 String
在這里插入圖片描述
第一種方法利用String類中的方法;
第二種方法,字符串和其它類型的相加,結果就是字符串
在這里插入圖片描述
在這里插入圖片描述

String 轉成 int
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36752.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36752.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36752.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ios消息推送例子

通過Apple推送服務&#xff0c;將消息發送給特定的ios客戶端&#xff0c;這是服務器端實例代碼。需要客戶端的voip key值&#xff0c;以及相應的客戶端回調接口&#xff0c;支持ios9.0以上版本。 下載地址&#xff1a;https://download.csdn.net/download/m0_37567738/8821559…

[保研/考研機試] KY7 質因數的個數 清華大學復試上機題 C++實現

描述 求正整數N(N>1)的質因數的個數。 相同的質因數需要重復計算。如1202*2*2*3*5&#xff0c;共有5個質因數。 輸入描述&#xff1a; 可能有多組測試數據&#xff0c;每組測試數據的輸入是一個正整數N&#xff0c;(1<N<10^9)。 輸出描述&#xff1a; 對于每組數…

leetcode 6914. 翻倍以鏈表形式表示的數字

給你一個 非空 鏈表的頭節點 head &#xff0c;表示一個不含前導零的非負數整數。 將鏈表 翻倍 后&#xff0c;返回頭節點 head 。 示例 1&#xff1a; 輸入&#xff1a;head [1,8,9] 輸出&#xff1a;[3,7,8] 解釋&#xff1a;上圖中給出的鏈表&#xff0c;表示數字 189 。返…

Photoshop快捷鍵大全

Photoshop是一款非常強大的圖像處理軟件&#xff0c;它提供了許多快捷鍵&#xff0c;可以幫助用戶更快地完成操作。熟練掌握這些快捷鍵&#xff0c;可以大大提高工作效率&#xff0c;讓您更加專注于創作。 Photoshop快捷鍵匯總&#xff1a; 一、基本操作快捷鍵 1. 新建文檔…

什么是CSS中的漸變(gradient)?如何使用CSS創建線性漸變和徑向漸變?

聚沙成塔每天進步一點點 ? 專欄簡介? 漸變&#xff08;Gradient&#xff09;在CSS中的應用? 線性漸變&#xff08;Linear Gradient&#xff09;語法&#xff1a;示例&#xff1a; ? 徑向漸變&#xff08;Radial Gradient&#xff09;語法&#xff1a;示例&#xff1a; ? 寫…

第06天 靜態代理和動態代理

?作者簡介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;熱愛Java后端開發者&#xff0c;一個想要與大家共同進步的男人&#x1f609;&#x1f609; &#x1f34e;個人主頁&#xff1a;Leo的博客 &#x1f49e;當前專欄&#xff1a;每天一個知識點 ?特色專欄&#xff1a…

36 | 銀行貸款數據分析

本文將以銀行貸款數據分析為主題,深入探討如何運用數據科學的方法,揭示銀行貸款領域的內在規律和趨勢。通過對貸款數據的分析,我們能夠洞察不同類型貸款的分布情況、貸款金額的變化趨勢,以及借款人的特征和還款情況等關鍵信息。 通過運用Python編程語言及相關的數據分析工…

arcgis定義投影與投影

1、定義 地理坐標系&#xff08;GCS&#xff09;&#xff1a;利用地球表面的經緯度表示的坐標系統。一般單位為度。投影坐標系&#xff08;PCS&#xff09;&#xff1a;利用數學換算將三維地球表面上的經緯度坐標轉換到二維平面上的坐標系統。一般單位為米。可以認為&#xff…

【ARM Cache 系列文章 9 番外篇 -- ARMv9 系列 Core 介紹】

文章目錄 ARMv9 系列CoreARM Cortex-A510 介紹ARM Cortex-A715ARM Cortex-A720 ARMv9 系列Core 2021年5月Arm公布了其最新3款CPU和3款GPU核心設計&#xff0c;三款新CPU分別是旗艦核心Cortex-X2、高性能核心Cortex-A710、高能效核心Cortex-A510 CPU&#xff0c;三款新GPU核心則…

【Unity每日一記】向量操作攝像機的移動(向量加減)

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;元宇宙-秩沅 &#x1f468;?&#x1f4bb; hallo 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;?&#x1f4bb; 本文由 秩沅 原創 &#x1f468;?&#x1f4bb; 收錄于專欄&#xff1a;uni…

TCP消息傳輸可靠性保證

TCP鏈接與斷開 -- 三次握手&四次揮手 三次握手 TCP 提供面向有連接的通信傳輸。面向有連接是指在數據通信開始之前先做好兩端之間的準備工作。 所謂三次握手是指建立一個 TCP 連接時需要客戶端和服務器端總共發送三個包以確認連接的建立。在socket編程中&#xff0c;這一…

算法模版,今天開始背

二分查找算法 int left_bound(int[] nums, int target) {int left 0, right nums.length - 1;// 搜索區間為 [left, right]while (left < right) {int mid left (right - left) / 2;if (nums[mid] < target) {// 搜索區間變為 [mid1, right]left mid 1;} else if …

ubuntu更換國內apt源

ubuntu必備操作 1 更換apt鏡像源 備份鏡像 cp /etc/apt/sources.list /etc/apt/sources.list.bak查看自己ubuntu版本 # 查看自己的codename #查看自己的ubuntu版本[注意關注&#xff1a;DISTRIB_CODENAME&#xff0c;發行代號] cat /etc/*release# DISTRIB_CODENAMEcosmic …

面試熱題(合并K個升序鏈表)

給定一個鏈表數組&#xff0c;每個鏈表都已經按升序排列。 請將所有鏈表合并到一個升序鏈表中&#xff0c;返回合并后的鏈表。 輸入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 輸出&#xff1a;[1,1,2,3,4,4,5,6] 解釋&#xff1a;鏈表數組如下&#xff1a; [1->4->5,1…

【軟件工程】面向對象方法-RUP

RUP&#xff08;Rational Unified Process&#xff0c;統一軟件開發過程&#xff09;。 RUP特點 以用況驅動的&#xff0c;以體系結構為中心的&#xff0c;迭代增量式開發 用況驅動 用況是能夠向用戶提供有價值結果的系統中的一種功能用況獲取的是功能需求 在系統的生存周期中…

解決在vue中img標簽不顯示圖片的問題

在vue中, 經常會遇到img標簽不展示的問題, 本人遇到兩種, 都是因為webpack打包, 導致找不到路徑, 所以不現實, 總結幾個可以解決本地圖片路徑顯示不出來的問題&#xff1a; 1.把圖片放在src同級的static文件夾下。 2.把圖片放在cdn上&#xff0c;把網絡地址存在imgUrl里&#x…

RabbitMQ: 詳解、使用教程和示例

RabbitMQ: 詳解、使用教程和示例 什么是 RabbitMQ&#xff1f; RabbitMQ 是一個開源的消息代理&#xff08;Message Broker&#xff09;軟件&#xff0c;它實現了高級消息隊列協議&#xff08;AMQP&#xff09;&#xff0c;用于在應用程序之間進行異步消息傳遞。它允許應用程…

uni-app日期選擇器

寫個簡單的日期選擇器&#xff0c;還沒搞樣式&#xff0c;所以有點丑 大概長這樣吧 首先是這個picker選擇器&#xff0c;mode選擇日期&#xff0c;end是寫一個范圍前日期&#xff0c;:end就是這個日期是動態變化的&#xff0c;還有change函數 <template><view>&l…

【pinia】Pinia入門和基本使用:

文章目錄 一、 什么是pinia二、 創建空Vue項目并安裝Pinia1. 創建空Vue項目2. 安裝Pinia并注冊 三、 實現counter四、 實現getters五、 異步action六、 storeToRefs保持響應式解構七、基本使用&#xff1a;【1】main.js【2】store》index.js【3】member.ts 一、 什么是pinia P…

Python:列表、元組、集合、字典,數據類型之間的 5 個差異

Python&#xff1a;列表、元組、集合、字典&#xff0c;數據類型之間的 5 個差異 1. 相同點2. 不同點2.1 排序2.2 索引2.3 可變性2.5 允許的類型2.4 允許重復 源碼 這篇博客將介紹列表、元組、集合、字典&#xff08;lists, tuples, sets, and dictionaries&#xff09;數據類型…