【Java】——數據類型和變量

在這里插入圖片描述
個人主頁:User_芊芊君子
🎉歡迎大家點贊👍評論📝收藏?文章
在這里插入圖片描述
在這里插入圖片描述

文章目錄:

  • 1.Java中的注釋
    • 1.1.基本規則
    • 1.2.注釋規范
  • 2.標識符
  • 3.關鍵字
  • 4.字面常量
  • 5.數據類型
  • 6.變量
    • 6.1變量的概念
    • 6.2語法
    • 6.3整型變量
      • 6.3.1整型變量
      • 6.3.2長整型變量
      • 6.3.3短整型變量
      • 6.3.4字節型變量
    • 6.4浮點型變量
      • 6.4.1雙精度浮點型
      • 6.4.2單精度浮點型
    • 6.5字符型變量
    • 6.6布爾型變量
    • 6.7類型轉換
      • 6.7.1?動類型轉換(隱式)
      • 6.7.2強制類型轉換(顯式)
    • 6.8類型提升
    • 6.8字符串類型

1.Java中的注釋

和C語言一樣,注釋的作用是為了讓代碼更容易被理解,雖然不被編譯運行,但卻不可或缺。為了方便你我他,請重視注釋

1.1.基本規則

  • 單行注釋://注釋內容
  • 多行注釋:/*注釋內容 */
  • 文檔注釋:/** 文檔注釋 */(常見于方法和類之上描述方法和類的作用),可以被javadoc?具解
    析,?成?套以???件形式體現的程序說明?檔

注:多行注釋不能嵌套使用

1.2.注釋規范

  1. 內容準確: 注釋內容要和代碼?致, 匹配, 并在代碼修改時及時更新
  2. 篇幅合理: 注釋既不應該太精簡, 也不應該?篇?論
  3. 使?中?: ?般中國公司都要求使?中?寫注釋, 外企另當別論
  4. 積極向上: 注釋中不要包含負能量(例如 領導 SB 等)

2.標識符

標識符是程序中用戶給類名,方法名,或者變量所取的名字。

  • 標識符中可以包含:字母,數字,下劃線及$符號(合法但不合理)…
  • 注意:標識符不能以數字開頭,也不可能是關鍵字,且嚴格區分大小寫
  • 類名:每個單詞的首字母大寫(大駝峰)
  • 方法名:首字母小寫,后面每個單詞的首字母大寫(小駝峰)
  • 變量名:與方法名規則相同

3.關鍵字

我們在寫程序時可以發現,publicclass以及static等顏?會發?變化,將這些具有特殊含義的標識符稱為關鍵字。即:關鍵字是由Java語?提前定義好的,有特殊含義的標識符,或者保留字
在這里插入圖片描述

4.字面常量

public class Test {public static void main(String[] args) {System.out.println("Hello World");}
}

在這串代碼中,“Hello World”就是字面常量。
常量即程序運行期間,固定不變的量. eg:?個禮拜七天,?年12個?等。

public class Test {public static void main(String[] args) {System.out.println("Hello World");System.out.println(100);System.out.println(3.14);System.out.println('A');System.out.println(true);System.out.println(false);}
}

在這里插入圖片描述

其中,100,3.14,‘A’,true/false都是常量,將其稱為字面常量

  • 字符串常量:由 “” 括起來的,?如"12345"、“hello”、“你好”。
  • 整型常量:程序中直接寫的數字(注意沒有?數點),?如:100、1000
  • 浮點數常量:程序中直接寫的?數,?如:3.14、0.49
  • 字符常量:由 單引號 括起來的當個字符,?如:‘A’、‘1’
  • 布爾常量:只有兩種true和false
    字符串、整型、浮點型、字符型以及布爾型,在Java中都稱為數據類型。

5.數據類型

Java中數據類型分為兩類:基本數據類型引用數據類型
基本數據類型有四類八種:

  • 四類:整型,浮點型,字符型,及布爾型
  • 八種:在這里插入圖片描述

注:

  • 不論是在16位系統還是32位系統,int都占4個字節,long都占8個字節
  • 整型和浮點型都是帶有符號的
  • 整型默認是int 型,浮點型默認是double
  • 字符串屬于引用類型

6.變量

6.1變量的概念

在Java中,經常改變的量,稱為變量,數據類型就是用來定義不同種類的變量的

6.2語法

數據類型 變量名 = 初始值;

public class Test {public static void main(String[] args) {int a = 10;//變量a,也叫標識符double b =3.14;char c = 'A';boolean d = true;System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);a = 100;//和C語言引用,這里是將100賦值給aSystem.out.println(a);int a1 = 10, a2 = 20, a3= 30;//一行可以定義多個相同類型的變量System.out.println(a1);System.out.println(a2);System.out.println(3);}
}

在這里插入圖片描述

6.3整型變量

6.3.1整型變量

public class Test {public static void main(String[] args) {//定義方法一:定義時給出初始值int a = 10;System.out.println(a);//定義方法二:賦值(使用前沒有賦值的話會報錯)int b;b = 20;System.out.println(b);//int型變量所能表示的范圍:System.out.println(Integer.MIN_VALUE);System.out.println(Integer.MAX_VALUE);//賦值不能超過int范圍}
}

int的包裝類型為Integer

6.3.2長整型變量

public class Test {public static void main(String[] args) {int a = 10;long b = 10;//為了區分int和long類型,一般long類型變量的初始值后加上Llong c = 10L;}
}

注:

  • ?整型變量的初始值后加L或者l,推薦加L
  • ?整型不論在那個系統下都占8個字節
  • ?整型的表?范圍為:-2^63 ~ (2^63)-1
  • long的包裝類型為Long

6.3.3短整型變量

public class Test {public static void main(String[] args) {short a = 10;System.out.println(a);//范圍:System.out.println(Short.MIN_VALUE);System.out.println(Short.MAX_VALUE);}
}

注意事項:

  1. short在任何系統下都占2個字節
  2. short的表?范圍為:-32768 ~ 32767
  3. 使?時注意不要超過范圍(?般使??較少)
  4. short的包裝類型為Short

6.3.4字節型變量

public class Test {public static void main(String[] args) {byte a = 10;System.out.println(a);// byte型變量所能表?的范圍:System.out.println(Byte.MIN_VALUE);System.out.println(Byte.MAX_VALUE);}
}

注意事項:

  1. byte在任何系統下都占1個字節
  2. byte的范圍是:-128 ~ 127
  3. 字節的包裝類型為Byte

6.4浮點型變量

6.4.1雙精度浮點型

public class Test {public static void main(String[] args) {double a = 3.14;System.out.println(a);int b = 1;int c = 2;System.out.println(b / c);//在 Java 中, int 除以 int 的值仍然是 int(會直接舍棄?數部分)double m = 1.0;double n = 2.0;System.out.println(m / n);//輸出0.5double x = 1.1;System.out.println(x*x);//輸出1.2100000000000002}
}

在這里插入圖片描述

注意事項:

  1. double在任何系統下都占8個字節
  2. 浮點數與整數在內存中的存儲?式不同,不能單純使?的形式來計算
  3. double的包裝類型為Double
  4. double 類型的內存布局遵守 IEEE 754 標準(和C語??樣), 嘗試使?有限的內存空間表?可能?限的?數, 勢必會存在?定的精度誤差,因此浮點數是個近似值,并不是精確值。

6.4.2單精度浮點型

public class Test {public static void main(String[] args) {float num = 1.0f;System.out.println(num);}
}

在Java中占4個字節, 不常使用

6.5字符型變量

public class Test {public static void main(String[] args) {char c1 = 'A';char c2 = '1';System.out.println(c1);System.out.println(c2);char c3 = '乾';System.out.println(c3);}
}

在這里插入圖片描述

注意事項:

  1. Java 中使? 單引號 + 單個字? 的形式表?字符字?值.
  2. 計算機中的字符本質上是?個整數. 在 C 語?中使? ASCII 表?字符, ? Java 中使? Unicode 表?字符. 因此?個字符占?兩個字節, 表?的字符種類更多, 包括中?.
  3. char的包裝類型為Character

6.6布爾型變量

布爾類型常?來表?真假

public class Test {public static void main(String[] args) {boolean a = true;//System.out.println(a);a = false;System.out.println(a);}
}

注意事項:

  1. boolean 類型的變量只有兩種取值, true 表?真, false 表?假.
  2. Java 的 boolean 類型和 int 不能相互轉換, 不存在 1 表? true, 0 表? false 這樣的?法.

6.7類型轉換

Java 作為?個強類型編程語?, 當不同類型之間的變量相互賦值的時候, 會有教嚴格的校驗.

public class Test {public static void main(String[] args) {int a = 10;long b = 100L;b = a;a = b;//編譯失敗}
}

在Java中,當參與運算數據類型不?致時,就會進?類型轉換。Java中類型轉換主要分為兩類:?動類型轉換(隱式)強制類型轉換(顯式)

6.7.1?動類型轉換(隱式)

?動類型轉換:代碼不需要經過任何處理,在代碼編譯時,編譯器會?動進?處理。特點:數據范圍?的轉為數據范圍?的時會?動進?

public class Test {public static void main(String[] args) {System.out.println(1024);//默認intSystem.out.println(3.14);//默認doubleint a = 100;long b = 10L;b = a;//int 類型的值?動轉換為了long類型float m =3.14F;double n = 5.12;n = m;//float 類型的值 ?動轉換為了double 類型}
}

6.7.2強制類型轉換(顯式)

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

```java
public class Test {public static void main(String[] args) {int a = 10;long b = 100L;b = a;//int--long,數據范圍由小到大,隱式轉換a = (int)b;//long--int, 數據范圍由?到?,需要強轉,否則編譯失敗float f = 3.14F;double d = 1.21;d = f;// float-->double,數據范圍由?到?,隱式轉換f = (float)d;// double-->float, 數據范圍由?到?,需要強轉,否則編譯失敗byte m = 100;// 100默認為int,沒有超過byte范圍,隱式轉換byte n = (byte)200;// 200默認為int,超過byte范圍,需要顯?轉換,否則報錯}
}

注意事項:

  1. 不同數字類型的變量之間賦值, 表?范圍更?的類型能隱式轉換成范圍較?的類型
  2. 如果需要把范圍?的類型賦值給范圍?的, 需要強制類型轉換, 但是可能精度丟失
  3. 將?個字?值常量進?賦值的時候, Java 會?動針對數字范圍進?檢查
  4. 強制類型轉換不?定能成功,不相?的類型不能互相轉換

6.8類型提升

不同類型的數據之間相互運算時,數據類型?的會被提升到數據類型?的

int被提升為long

public class Test {public static void main(String[] args) {int a = 10;long b = 20;int c = a + b;//編譯出錯: a + b==》int + long--> long + long 賦值給int時會丟失數據long d = a + b;// 編譯成功:a + b==>int + long--->long + long 賦值給long}
}

byte與byte之間運算

public class Test {public static void main(String[] args) {byte a = 10;byte b = 20;//byte c = a + b;//編譯錯誤byte d = (byte)(a + b);//正確書寫System.out.println(d);}
}

在這里插入圖片描述

結論:
byte 和 byte 都是相同類型, 但是出現編譯報錯. 原因是, 雖然 a 和 b 都是 byte, 但是計算 a + b會先將 a 和 b 都提升成 int, 再進?計算, 得到的結果也是 int, 這是賦給 c, 就會出現上述錯誤.
由于計算機的 CPU通常是按照 4 個字節為單位從內存中讀寫數據. 為了硬件上實現?便, 諸如 byte 和short 這種低于 4 個字節的類型, 會先提升成int, 再參與計算.

6.8字符串類型

public class Test {public static void main(String[] args) {String s1 = " hello";String s2 = " world";System.out.println(s1);System.out.println(s2);System.out.println(s1+s2);//將s1和s2拼接而不是進行計算}
}

在這里插入圖片描述

  • int轉String
public class Test {public static void main(String[] args) {int num = 10;String str1 = num + "";//方法一String str2 = String.valueOf(num);//方法二}
}
  • String轉int
public class Test {public static void main(String[] args) {String str = "100";int num =Integer.parseInt(str);}
}

在這里插入圖片描述

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

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

相關文章

串口數據記錄儀DIY,體積小,全開源

作用 產品到客戶現場出現異常情況,這個時候就需要一個日志記錄儀、黑匣子,可以記錄產品的工作情況,當出現異常時,可以搜集到上下文的數據,從而判斷問題原因。 之前從網上買過,但是出現過丟數據的情況耽誤…

JVM中是如何定位一個對象的

在 Java 中,對象定位指的是如何通過引用(Reference)在堆內存中找到對象實例及其元數據(如類型信息)。JVM 主要通過 直接指針訪問 和 句柄訪問 兩種方式實現,各有其優缺點和應用場景: 一、直接指…

Mac 如何在idea集成SVN

在windows系統上面有我們最為熟悉的小烏龜TortoiseSVN,在mac系統上面則沒有什么好用的svn的工具,而且大部分都付費,需要各種渠道找PJ版,費事費力,作為程序員,大部分人應該都會安裝開發工具,本文…

批量測試IP和域名聯通性

最近需要測試IP和域名的聯通性,因數量很多,單個ping占用時間較長。考慮使用Python和Bat解決。考慮到依托的環境,Bat可以在Windows直接運行。所以直接Bat處理。 方法1 echo off for /f %%i in (E:\封禁IP\ipall.txt) do (ping %%i -n 1 &…

LabVIEW變頻器諧波分析系統

隨著工業自動化的發展,變頻器在電力、機械等領域的應用日益廣泛,但諧波問題直接影響系統效率與穩定性。傳統諧波檢測設備(如Norma5000)精度雖高,但價格昂貴且操作復雜,難以適應現場快速檢測需求。本項目基于…

Unity Shader學習總結

1.幀緩沖區和顏色緩沖區區別 用于存儲每幀每個像素顏色信息的緩沖區 幀緩沖區包括:顏色緩沖區 深度緩沖區 模板緩沖區 自定義緩沖區 2.ImageEffectShader是什么 后處理用的shader模版 3.computerShader 獨立于渲染管線之外,在顯卡上運行,大量…

OpenPLC WebServer啟動

簡述 OpenPLC OpenPLC 可運行在嵌入式系統和普通計算機上,其基本原理是在硬件上安裝類似 Linux 的操作系統,并在該環境下運行 OpenPLC 應用程序,從而讓用戶開發、調試和運行工業自動化控制邏輯。它目前只支持部分 ARM 架構的嵌入式系統&…

【基礎知識】回頭看Maven基礎

版本日期修訂人描述V1.02025/3/7nick huang創建文檔 背景 項目過程中,對于Maven的pom.xml文件,很多時候,我通過各種參考、仿寫,最終做出想要的效果。 但實際心里有些迷糊,不清楚具體哪個基礎的配置所實現的效果。 今…

ROS實踐(四)機器人SLAM建圖(gmapping)

目錄 一、SLAM技術 二、常用工具和傳感器 三、相關功能包 1. gmapping建圖功能包 2. map_server 四、SLAM 建圖實驗 1. 配置gmapping(launch文件) 2. 啟動機器人仿真(含機器人以及傳感器) 3. 運行gmapping節點 4. 啟動rviz可視化工具 5. 保存地圖文件 一、SLAM技…

二進制安裝指定版本的MariaDBv10.11.6

一、官網下載mariadb安裝包 Download MariaDB Server - MariaDB.org 找到對應的版本 下載安裝包后上傳到服務器這里不再贅述。 二、安裝二進制包 1、解壓安裝包 2、查看安裝包內的安裝提示文檔根據提示文檔進行安裝 # 解壓安裝包 tar xf mariadb-10.11.6-linux-systemd-x8…

【抽獎項目】|第二篇

前言: 高并發的活動預熱肯定不可以在數據庫操作,需要redis,特別是這種秒殺活動更是需要注意,所以可以在高并發的前夕先進行活動預熱。 思路: 1、 通過定時任務調度每分鐘查詢數據庫也沒有需要預熱的活動 2、采用分布式…

異或和之和 第十四屆藍橋杯大賽軟件賽省賽C/C++ 大學 A 組

異或和之和 題目來源 第十四屆藍橋杯大賽軟件賽省賽C/C++ 大學 A 組 原題鏈接 藍橋杯 異或和之和 https://www.lanqiao.cn/problems/3507/learning/ 問題描述 問題分析 要點1:異或運算 概念 異或(Exclusive OR,簡稱 XOR)是一種數學運算符,常用于邏輯運算與計算機…

從零到一:如何系統化封裝并發布 React 組件庫到 npm

1. 項目初始化 1.1 創建項目 首先,創建一個新的項目目錄并初始化 package.json 文件。 mkdir my-component-library cd my-component-library npm init -y1.2 安裝依賴 安裝開發所需的依賴項,如構建工具、測試框架等。 npm install --save-dev webp…

現代互聯網網絡安全與操作系統安全防御概要

現階段國與國之間不用對方路由器,其實是有道理的,路由器破了,內網非常好攻擊,內網共享開放端口也非常多,更容易攻擊。還有些內存系統與pe系統自帶瀏覽器都沒有javascript腳本功能,也是有道理的,…

2025-03-12 學習記錄--C/C++-PTA 習題8-4 報數

合抱之木,生于毫末;九層之臺,起于累土;千里之行,始于足下。💪🏻 一、題目描述 ?? 習題8-4 報數 報數游戲是這樣的:有n個人圍成一圈,按順序從1到n編好號。從第一個人開…

【js逆向】某預約票網站 (webpack技術)

1、查看數據包 calendar是需要的數據包,看下它的請求參數。 accTimes參數加密,_times是時間戳。 2、全局搜索 accTimes 關鍵字 3、n的定義 4、把整個js代碼復制下來,應用到了webpack技術,圖中的Q是n

前端模塊管理新思路:如何使用 Import Maps

前言 前端開發中,我們常常需要使用各種庫和模塊來構建功能豐富的應用。在傳統方式中,管理這些庫和模塊的引用可能會有些繁瑣。 幸運的是,Import Maps 的出現為我們提供了一種更簡潔和高效的解決方案。今天我們就來聊聊如何使用 Import Maps。…

AI模型的構建過程是怎樣的(下)

你好,我是舒旻。 上節課,我們講了一個模型構建的前 2 個環節,模型設計和特征工程。今天,我們繼續來講模型構建的其他 3 個環節,說說模型訓練、模型驗證和模型融合中,算法工程師的具體工作內容,以及 AI 產品經理需要掌握的重點。 模型訓練 模型訓練是通過不斷訓練、驗證…

人工智能混合編程實踐:Python ONNX進行圖像超分重建

人工智能混合編程實踐:Python ONNX進行圖像超分重建 前言相關介紹Python簡介ONNX簡介圖像超分辨率重建簡介應用場景前提條件實驗環境項目結構使用Python ONNX進行圖像超分重建sr_py_infer.py參考文獻前言 由于本人水平有限,難免出現錯漏,敬請批評改正。更多精彩內容,可點擊…

視頻理解之Actionclip(論文宏觀解讀)

配合解讀代碼解讀 1.研究背景 1. 視頻行為識別的重要性 視頻行為識別是視頻理解領域的核心任務之一,旨在通過分析視頻內容來識別和分類其中的人物行為或活動。這一任務在多個領域具有重要的應用價值,例如智能監控、人機交互、自動駕駛、醫療健康等。隨…