Java基礎學習(一):類名規范、返回值、注釋、數據類型

目錄

  • 一、類名規范
  • 二、返回值
  • 三、注釋
  • 四、數據類型
    • 1. 基本類型
    • 2. 引用類型
    • 3. 強制數據類型轉換
    • 4. 進制
    • 5. 進制的轉換
    • 6. 超范圍運算

相關文章

  • Java基礎學習(二):Java中的變量和常量、final(重點)、運算、字符串

了解一些關于Java的術語:

縮寫術語名作用
JDKJava Development Kit編寫Java程序
JREJava Runtime Environment運行Java程序
SEStandard EditionJava的一些核心語法規則,用于桌面或簡單服務器應用的Java平臺
EEEnterprise EditionJava的web開發,用于復雜服務器應用的Java平臺
MEMicro Edition手機開發
SDKSoftware Development Kit用于描述1998~2006年間的JDK

一、類名規范

規范示例作用于
大駝峰FirstSample多個單詞,每個單詞首字母大寫類名
小駝峰firstSample多個單詞,第一個單詞首字母小寫,剩下的單詞首字母大寫變量名、方法名、文件名、文件夾名
全大寫FIRSTSAMPLE字母全大寫一般用作常量,只能第一次賦值,后續不能在賦值,永遠不變,如Π:PI=3.14

二、返回值

  • void:沒有返回值
    public static void sort(int[] arr) {
    }
    
  • int:要有返回return的數據
    public static int g(int x) {return 3*x-8;
    }
    

三、注釋

  • //:單行注釋
  • /* */:多行注釋,/*開始,*/結束
    /*
    * 這是一個多行注釋
    * 可以跨越多行
    */
    
  • /** */:文檔注釋,/**開始,*/結束
    • 代碼作者
    • 最后一次維護
    • 聯系郵箱
    • 此類作用
      /*** 這是一個文檔注釋* 通常用于描述類、方法或字段的功能* * @param name 用戶名* @return 歡迎消息*/
      

四、數據類型

1. 基本類型

8種四類

類型種類占幾字節占幾bit取值范圍
整數byte1字節8bit282^828-128~127
整數short2字節16bit2162^16216-322768~32767
整數int4字節32bit-2147483648~2147483647(超過20億)
整數long8字節64bit
浮點數float4字節32bit
浮點數double8字節64bit
布爾型boolean
字符串char

注意:

  1. 1字節=8bit
  2. 取值范圍中0歸為正數
  3. int型不能存手機號

整數

  • int默認值為0
  • 第一位表示符號位,剩余的表示數值位。
  • 符號位中:0代表正數,1代表負數。
  • byte、short、int、long后續做運算,默認轉換為int類型,所以需要進行強制類型轉換
    byte a = 125;
    byte b = (byte) (a+1);
    //long x = 1000L;
    

浮點數

  • 浮點數默認值為0.0
  • float:第一位表示符號位,8位表示階位,23表示數值位;
    • 表示小數:設階位為x(256),數值位為y,2(x-127) *y,階位的值小于127可表示小數
    • float a=0.25Ffloat b=0.75f
  • double:第一位表示符號位,11位表示階位,52表示數值位。
    • 表示小數:設階位為x(256),數值位為y,2(x-1023) *y,階位的值小于1023可表示小數
    • double c=1.56Ddouble d=1.89d
  • 浮點數中,數據默認轉換為double類型存儲。

問題1:float和int誰的精度更高?
數值越小float精度越高,數值越大int精度越高。
問題2:float和double誰的精度更高?
double表示的浮點數的數值精度是float的兩倍。絕大部分程序采用的是double類型。

char類型:字符

  • char類型默認值為空字符
  • 要用單引號括起來

布爾型

  • 布爾類型默認值為false
  • 有兩個值:true或false,用來判斷邏輯條件
  • 整數值和布爾值之間不能進行轉換

2. 引用類型

  • 引用類型默認值為空
  • 除了基本類型的8中四類之外,剩下的都是引用類型,如:Byte、Long、String等。

3. 強制數據類型轉換

基本語法:

目標類型 變量名 = (目標類型) 要轉換的值或變量;

示例:

//將double類型數據轉換成int類型
double d = 3.1415926;
int i = (int) d;//截斷小數部分
System.out.println(i)//輸出結果:3

實心箭頭表示無信息丟失的轉換;虛箭頭表示可能有精度損失的轉換。
數值之間的轉換

  • 數值類型之間的強制轉換
    • double - > int
    • long - > int
    • int - > byte
  • 浮點數和整數之間的轉換
    • float - > int
    • double - > float
    • int - > float(自動轉換)
  • char類型的強制轉換
    • int - > char
    • char - > int(不需要強制轉換)
  • 對象類型的強制轉換
  • 自動裝箱和拆箱中的強制轉換
    // 基本類型 -> 包裝類 (自動裝箱)
    Integer integer = 100;// 包裝類 -> 基本類型 (自動拆箱)
    int i = integer;// 強制轉換示例
    Double d = 123.456;
    int i2 = (int) (double) d;  // 先拆箱為double,再強制轉換為int
    System.out.println(i2);  // 輸出: 123
    

注意:布爾類型不能于其他基本類型相互強制轉換。

4. 進制

計算機底層存儲的是二進制數據。

  • 十進制:平常使用的是十進制數據,0~9,逢十進一;
  • 二進制:數據前加0b,0~1,逢二進一;
  • 八進制:數據前加0,0~7,逢八進一;
  • 十六進制:數據前加0x,0~f(a=10,b=11,c=12,d=13,e=14,f=15),逢十六進一;
int x1 = 10;//十進制
int x2 = 0b11;//二進制
int x3 = 07654;//八進制
int x4 = 0x4ac;//十六進制

5. 進制的轉換

任意進制轉換為十進制: 數字乘進制的多少次方在相加
十進制拆解:2412=2?103+4?102+1?101+2?1002412 = 2*10^3 + 4*10^2 + 1*10^1 + 2*10^02412=2?103+4?102+1?101+2?100
二進制轉換為十進制:1011=1?23+0?22+1?21+1?20=111011 = 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 111011=1?23+0?22+1?21+1?20=11

十進制轉換任意進制: 數據除進制取余,直到商為0,倒序取余數
十進制轉換成二進制:10 = 1010
過程:

10 ÷ 2 = 50
5 ÷ 2 = 21
2 ÷ 2 = 10
1 ÷ 2 = 01

6. 超范圍運算

計算機底層存儲的是二進制數據。
反碼: 正數和源碼一樣,負數符號位不變,其余取反
補碼: 正數和源碼一樣,負數補碼是反碼+1
計算機底層使用的是補碼做運算。

byte x1 = 127;//01111111 + 00000001 = 10000000
byte x2 = (byte)(x1+1);
System.out.println(x2);//輸出結果:-128

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

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

相關文章

Nginx相關實驗(2)

nginx的一些高級配置 nginx狀態頁 基于nginx 模塊 ngx_http_stub_status_module 實現, 在編譯安裝nginx的時候需要添加編譯參數 --with-http_stub_status_module 否則配置完成之后監測會是提示語法錯誤 #檢查模塊是否配置 如果不存在需要添加模塊重新編譯 nginx …

2.Java和C++有什么區別

2.Java和C有什么區別 1.在C中,支持操作符重載,而在Java里是不允許的 2.C支持多繼承,而Java不可以,但Java可以單繼承多實現 3.Java內置多線程機制,而C沒有 4.Java里面自帶了垃圾回收機制,可以自動清理緩存等…

MLIR Introduction

簡介 MLIR 項目是一個構建可重用和可擴展編譯器基礎設施創新項目,旨在解決軟件碎片化問題,顯著降低構建特定領域編譯器的成本。 基于MLIR,可以實現: 數據流圖表達(如TensorFlow),包含dynamic…

[找出字符串中第一個匹配項的下標]

代碼思路分析: 1. 邊界情況處理 代碼中沒有顯式處理以下邊界情況,但邏輯已隱含支持: needle 為空字符串:應返回 0(但題目通常保證 needle 非空)。haystack 比 needle 短:直接返回 -1&#xff08…

深入剖析RT-Thread串口驅動:基于STM32H750的FinSH Shell全鏈路Trace分析與實戰解密(上)

0. 概述 這是cherryusb代碼trace分析系列文章之七。 RT-Thread串口驅動框架與FinSH Shell運行機制深度解析:針對STM32H750 ART-PI平臺,本文獨辟蹊徑采用創新的代碼trace分析方法,破解龐大串口框架下的復雜運行邏輯。通過精確trace日志與drv_u…

Python與C++通信教程:C++打包dll,供Python調用(1)

目錄 1,新建一個工程 math_functions.cpp內容: 先編譯一下看是否可以正常運行: 2,編譯成dll,并用Python調用 有兩種方式: 命令 1(使用靜態鏈接): 可移植性: 命令 2(動態鏈接): 可移植性: 這里我使用的是靜態鏈接的方式: python調用實例 test_dll.py 1,…

編程與數學 03-002 計算機網絡 19_網絡新技術研究

編程與數學 03-002 計算機網絡 19_網絡新技術研究一、軟件定義網絡(SDN)(一)SDN的基本原理與架構(二)SDN的應用場景與優勢二、網絡功能虛擬化(NFV)(一)NFV的概…

uniapp 跨端開發

一、創建uniapp項目 1. 項目架構2. 初始化項目3. pages.json 和 tabBar 案例4. uni-app和原生小程序開發區別5. 用命令行創建uni-app項目 官網鏈接:https://uniapp.dcloud.net.cn/quickstart-cli.html#創建uni-app6. 用vscode開發uni-app在uni-app中只有manifest.js…

區塊鏈支付技術的核心原理

區塊鏈支付利用分布式賬本技術(DLT)實現點對點的價值轉移,無需傳統銀行或支付網關的中介。核心特點是去中心化、透明、可追溯。? 基本流程:1. 用戶發起交易:通過加密貨幣錢包發送支付請求(例如用ETH支付&a…

linux中 多進程 導致cuda錯誤的問題解決

問題總結與解決方案 核心問題 在使用 Linux 系統時,多進程并行計算中加載模型到 GPU 時出現錯誤:_MODEL SentenceTransformer( model_path, device "cuda" if torch.cuda.is_available() else "cpu" )根本原因: CUDA 上…

智能感知的新入口:AIGC 與低延遲視頻通路的深度融合

?? 引言:AIGC,正在重構視覺智能的“生成邏輯” AI生成內容(AIGC)正在從“內容創作工具”躍升為計算機視覺系統的新引擎。它不再只是“文生圖”、“圖生文”的演示技術,而是實實在在地改變著我們構建、處理和理解視覺…

Ubuntu 內網多臺服務器時間同步方案(適用于臨時能上外網的環境)

哎,最近項目是運行在內網環境下的,出現了由于時間不同步導致的bug。一般來講,幾臺服務器的時間不一致,會帶來很多問題,比如日志時間對不上、分布式服務出現異常,等等。項目上現在有三臺服務器,其…

延長電池壽命的低Iq技術

本文章是筆者整理的備忘筆記。希望在幫助自己溫習避免遺忘的同時,也能幫助其他需要參考的朋友。如有謬誤,歡迎大家進行指正。一、概述隨著電池供電型應用的激增,人們對質優價廉的電池和電池包的需求持續猛漲。電池制造商們不斷采用新的化學物…

QT 如何實現enum與字符串的互轉

將enum中定義的枚舉值,以字符串的形式寫入文件,同時也能從字符串轉為枚舉值。舉例說明: ColorSelector中的Colors枚舉,我們希望 kColorRed 這個寫入到本地文件時,可以直接保存“kColorRed”,而非kColorRed對…

SLAM卷不動了,機器人還有哪些方向能做?

關注gongzhonghao【CVPR頂會精選】眾所周知,機器人因復雜環境適應性差、硬件部署成本高,對高效泛化一直需求迫切。再加上多傳感器協同難題、真實場景數據獲取不易,當下對遷移學習 機器人智能融合的研究也就更熱烈了。不過顯然,這…

H.266 vs H.265/AV1/H.264:從工程落地看下一代視頻系統的技術演進

一、背景:編解碼標準演進背后的技術驅動 視頻編碼標準的更迭,從未只是一次簡單的技術升級,而是對碼率壓縮效率、編碼復雜度與畫質質量三者之間平衡點的持續探索。在 H.264 成為全平臺事實標準的十余年里,它成功支撐了 SD 至 1080…

Javascript面試題及詳細答案150道之(031-045)

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

Git如何同步本地與遠程倉庫并解決沖突

在團隊協作開發中,保持本地倉庫與遠程倉庫同步是至關重要的。本文將詳細介紹如何使用 Git 更新本地倉庫至最新遠程版本,并深入解析沖突的產生原因及解決方法。一、同步本地與遠程倉庫1. 檢查遠程倉庫配置首先,確保本地倉庫已正確關聯遠程倉庫…

Hadoop MapReduce 3.3.4 講解~

?博客主頁: https://blog.csdn.net/m0_63815035?typeblog 💗《博客內容》:.NET、Java.測試開發、Python、Android、Go、Node、Android前端小程序等相關領域知識 📢博客專欄: https://blog.csdn.net/m0_63815035/cat…

1、【數學】【硬幣悖論】旋轉硬幣問題

問題描述: 兩個相同的硬幣,半徑都是 rrr。一個硬幣(稱為“動硬幣”)沿著另一個固定不動的硬幣(“靜硬幣”)的外邊緣無滑動地滾動一圈,回到起始位置。問:動硬幣自身旋轉了幾圈&#x…