主頁 > 軟體設計 > JAVA自學基礎知識鞏固-八大基礎資料型別(第六課)

JAVA自學基礎知識鞏固-八大基礎資料型別(第六課)

2021-12-23 07:35:37 軟體設計



  • 💂 個人主頁: IT學習日記
  • 🤟 著作權: 本文由【IT學習日記】原創、在CSDN首發、需要轉載請聯系博主
  • 💬 如果文章對你有幫助、歡迎關注、點贊、收藏(一鍵三連)和訂閱專欄哦
  • 💅 搞副業、想尋找共同成長的小伙伴,請點擊【技術圈子】

目錄

  • 識別符號
    • 為什么識別符號命名時不推薦使用中文或者拼音的呢?
  • 關鍵字
  • 轉義符
  • 資料型別
  • 常量和變數
  • 思考討論
  • 小結


??文章開始前,先問大家一個問題,你覺得什么方式能夠讓你更快接受、學習一門新的語言?

??首先我們知道語言的目的在于讓人能夠和特定的物件進行交流,向特定物件傳達我們想要表達的意思并得到回應,而程式語言的交流物件是計算機,通過它告訴計算機我們想要做什么,它應該怎么做,

??博主認為:讓一個初學者更快接受一門新的語言的方式就是新語言要有和初學者生活中相貼切的特點,回想我們從小學(初中)就開始學習英語,為什么大部分人還是無法很好掌握和使用英語呢?

??很大程度上就是英語有自己全新的一套規則,從語法和詞匯都跟漢語不一樣,而漢語從出生那一刻就開始伴隨著我們,我們在潛移默化中已經習慣了使用漢語的思維方式去了解新的東西,這個思維讓我們很難去重新再學習、接納另一套不同規則的語言(當然,如果有人能夠出一個將英語的思維轉成漢語的思維,相信會讓學習英語的難度有一定程度降低),

??回歸正題,如果我們想要學好JAVA語言,那么最好的方式就是找出JAVA語言和漢語之間的關聯,使用類比的思想去學習,這樣能夠最小程度地去更快接納和學習JAVA語言中的特點,


識別符號

??在漢語中我們都通過名字來標識自己是誰如張三、李四,在JAVA中也有相類似的該概念,我們把它叫做“識別符號”,它的作用就是用來標識類名、變數名、方法名等,跟我們的名字命名一樣,它也有一些規則,而不能胡亂定義,

??1、識別符號只能由數字、JAVA字母、下劃線和美元符號組成,長度不受限制(簡短能表達語意就行,太長的話不但不好記也不好看)

??2、識別符號的首字母不能是數字(目的是為了制作編輯器的方便,試想一下,如果允許首字母是數字,那就會出現類似這樣的定義:int 123 = 321,這個如何讓JAVA虛擬機去解釋執行)

??3、識別符號不能是語言中的關鍵字(就像我們平常申請商標名稱一樣,有一些國家需要使用的關鍵字是不允許申請的,具體的關鍵字下面介紹)

??4、識別符號不能是true、false、null

??5、識別符號是區分大小寫的,因此識別符號name和識別符號Name是兩個不同的識別符號,


??介紹完識別符號的命名規范后,我們來實際定義一個識別符號吧!比如我想要定義一個人的名稱,用識別符號表示則可以定義成username,簡短且有語言,很不錯吧,

??既然定義識別符號的名稱有這么多規則,那么是否有一些在定義識別符號好的建議呢?答案是肯定的,我們在定義時有以下的一些建議,但不是強制要求,

??1、識別符號的名稱應該盡量不要太長,能夠表達語意,能夠表達出這個識別符號的作用(如:你想定義性別的含義,識別符號就可以寫成sex)

??2、推薦識別符號以小寫字母開頭,如果名稱有多個單詞組成時,使用駝峰命名法(即除了第一個單詞首字母小寫外,其他的單詞首字母都大寫,看起來像駝峰一樣,由此得名,需要注意的是,有一個例外的是在定義類、介面的名稱時,推薦首字母大寫)

??3、不要使用中文或者拼音命名,上面第一點提到JAVA只能由數字、JAVA字母、下劃線和美元符號組成,這里的的JAVA字母并不單純只指英文字母,它的意思是Unicode字符集中包含的字符,其中也包括一些中文漢字,但是命名的時候并不推薦使用中文命名

image-20211214233855750


為什么識別符號命名時不推薦使用中文或者拼音的呢?

  • 第一有局限性,編程語言是由國外先普及,很多語言、框架的設計都是使用英文的方式,英語作為全球使用最廣泛的語言,有著先天優勢,使用中文或者拼音命名需要有漢語基礎的人才能夠讀懂,不利于全球性傳播(博主也希望有一定中文語言真的能夠流行起來,大家也值得為之努力),

  • 第二可讀性不太高,比如一個變數的屬性命名為中文,如果需要定義它的get/set方法就會看起來很奇詭,如欄位為private String 姓名;則它的get/set方法public String get姓名/set姓名(…),

  • 出現亂碼的概率更高,因為許多字符集不能完全支持中文,所以使用中文命名在不同的編碼方式下會比英文出現亂碼的概率更高,

  • 很難統一,因為中文博大精深,一個意思能夠使用多種不同的詞語來表達,每個人的理解又不一樣,這樣一份代碼中可能相同的東西有多種表達,不利于管理,


關鍵字

??所謂關鍵字就是在JAVA中已經被賦予特殊含義的一些單詞,這些被賦予特殊含義的單詞不能在被作為自定義的識別符號, JAVA常見的50個關鍵詞如下(按照字母順序排序):

??abstract、assert、boolean、break、byte、case、catch、char、class、const、continue、default、do、double、else、enum、extends、final、finally、float、for、goto、if、implements、import、instanceof、int、interface、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while,


轉義符

??在JAVA中,定義了一種特殊的字符常量,它們被稱作轉義符,轉義符都是以反斜杠()為標志,配合其他的一些字符來表達特殊的含義, 如\n則表示換行、\b表示退格、\r表示回車、\t表示橫向跳格(即制表符tab)


資料型別

??就如人類在自然界中運輸物品是需要借助有容納空間的外物來實作如箱子、袋子等,JAVA語言作為人類和計算機交流的方式也有相似的概念,在JAVA中這種“外物”也叫資料型別,主要的作用是用來對資料的運算和存盤,

??在自然界中,我們可以通過經緯度坐標的方式能夠精確地得知地球上的任意一個位置,在JAVA中這個"坐標"也叫作變數,它是表示一個資料存盤在計算機空間的位置,將資料復制給變數,實際上就是將資料存盤到對應對的記憶體空間,并且可以通過這個變數去訪問到這些資料,

??我們可以簡單地理解一個變數就是一個記憶體空間,資料就存盤在變數對應的空間中,不同的資料需要存盤的空間不同(就好比裝一頭大象可能需要一輛貨車、裝一條魚只需要一個袋子),JAVA中使用資料型別來區分不同的資料,用以表示不同資料占用不同的空間,

image-20211216225714323


??在JAVA中,資料型別可以區分為兩大類即:基本資料型別和參考資料型別,

??基本資料型別: 由程式語言在發行時就已經定義好的,值直接存盤在記憶體中,它的空間大小是固定的,不會隨著軟硬體環境不同而改變,

??參考資料型別: 可以是開發者自由定義,也可以是由一個或者多個基本資料組成,它存盤的是指向組成這個資料型別的資料地址,故也被稱為參考型別,

??JAVA中,默認提供了8種基本資料型別即位元組型、短整形、整形、長整型、浮點型、雙精度浮點型、布爾型、字符型,它們的特點如下:

型別關鍵字占用位元組適用場景取值范圍
位元組型別byte1適用取值范圍很小的數-128 ~127
短整形short2較小的整數-215 ~ 215-1
整形int4一般整數-231 ~ 231-1
長整型long8非常大的整數-263 ~ 263-1
浮點型float4普通實數-3.402 82338 ~ 3.402 82338
雙精度double8非常大的實數-1.7977*10308 ~ 1.7977*10308
字符型char2單個字符0-65535
布爾型別boolean1只有真或假取值true和false

image-20211216230908121


常量和變數

??在實際的程式開發中,我們會根據自己需求去申請實際的空間大小存盤我們需要的資料(即定義資料型別),因此,我們需要有一個名稱來標識和指向這個申請到的存盤地址,這個名稱分為常量和變數兩種,

??常量: 一旦指定了資料值就不能再被修改的識別符號,

??變數: 指定數值后資料值也可以被修改的識別符號,


??在JAVA語言中,常量和變數都必須遵循先宣告、后使用的原則,所以,在使用前必須指定常量或者變數的資料型別,作用如下:指定資料型別便于系統分配足夠的空間大小,指定變數名稱方便開發者和系統指向分配好的空間以及標識使用該名稱,

??常量宣告規范:final 資料型別 變數名1,變數名2…(常量宣告時必須給定一個固定的值),

??常量宣告示例:final int CONST = 100;

??變數宣告規范:資料型別 變數名1,變數名2…;

??常量宣告示例:int number,number2;(可以同時宣告多個變數,變數名之間用逗號隔開)

??注意事項: 在編碼的習慣或者約定俗稱中,常量名用大小字母表示,多個單詞時用下劃線連接如:NUMBER_NAME,變數名則遵循駝峰原則即首單詞首字母用小寫,其他單詞首字母用大寫入:numberName,


思考討論

??文章結束前,預留一些問題與大家討論:

  • 你覺得在未來普遍使用中文編程的可能性有多大?它們的優缺點在哪里?為什么中文編程遲遲沒有流行起來?

  • 如果真的想推廣中文編程,我們需要為此做哪些方面的努力?


小結

??文章介紹了JAVA識別符號定義的命名規范、JAVA中的資料型別以及如何使用這種資料型別,掌握了這些知識,對日后編碼習慣和編碼進一步學習都直觀重要,

??如果文章有幫助,請給作者關注、點贊、收藏、評論,讓博主有動力創作更加優質的文章,

??跟博主重走JAVA學習之路,探索更多編程語言的謎題,打卡解疑地址 重學社區


領取重學大禮包福利

  • 300+JAVA經典編程案例
  • 50G+學習視頻教程
  • 100+JAVA初階、中階、高階電子書籍
  • 1000+簡歷模板和匯報PPT模板(轉正、年終等)
👇點擊下方卡片 關注后回復「 初學者大禮包」獲取👇

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/390391.html

標籤:其他

上一篇:期末滿分的密碼

下一篇:【史上最全MYSQL總結】MySQL超詳細筆記

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more