国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java的數(shù)據(jù)類型與變量

這篇具有很好參考價值的文章主要介紹了Java的數(shù)據(jù)類型與變量。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??數(shù)據(jù)類型

在Java中數(shù)據(jù)類型主要分為兩類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。本文來介紹基本數(shù)據(jù)類型。
基本數(shù)據(jù)類型有:整型、浮點型、字符型以及布爾型
(這看起來和C語言一樣,還挺親切的)


??整型

Java中的整型有:byte,short,int,long

與C語言相比,short和int沒啥變化。
有變化的點在于,多了一個byte,叫做字節(jié)型,它占一個字節(jié),很像C語言中的char,它的范圍也是從-128~127。(待會下面會對這個范圍作一些說明)
同時我們不難發(fā)現(xiàn),Java沒有l(wèi)ong long,因為它的long(長整型)的大小就是8個字節(jié)了,不像C語言的long有時是4個字節(jié),而有時是8。這也正引出一個重要的點:Java的數(shù)據(jù)類型在32位和64位環(huán)境下的大小都是一樣的,這保證了在不同平臺的可移植性。

??byte的范圍

(其實我之前學C語言的時候char的取值范圍沒有完全弄懂hhh)
我們以前學過:數(shù)據(jù)在內(nèi)存中的存儲是補碼。數(shù)據(jù)的二進制序列中最高位是符號位。因為C語言和Java只是語言不同而已,所以它們在數(shù)據(jù)存儲方面其實是大同小異的。
Java中的基本數(shù)據(jù)類型沒有“無符號”這一概念,也就是說都是有符號的,必定有符號位。

先來看正數(shù)的情況,易知只要數(shù)值位都是1就可以取到最大值127。
負數(shù)的情況有點小復雜,按理來說負數(shù)最小值是-127,即11111111。至于-128,其實是人為規(guī)定的,怎么規(guī)定呢?127的源碼和1的源碼相加就是1000 0000,規(guī)定這個數(shù)就是-128(就最高位的1同時作為數(shù)值位和符號位這樣子)

然后還有兩件事:
第一,我們判定一個數(shù)的大?。ㄟ@里指的是十進制大?。┛梢钥丛创a,也可以看補碼,但是看源碼會比較直觀,因為你可以直接算出來。
第二,計算機中各種運算主要是以補碼參與運算。


??浮點型

Java浮點型也是float和double。float大小為4個字節(jié);double為8個字節(jié)
我們在寫代碼的時候如果寫

float a = 0.5;

那編譯器會報錯,因為Java中浮點數(shù)默認是double類型的,而a是float,自然報錯了(而C語言就不會這樣,這也體現(xiàn)了Java的嚴謹)。如果你要讓a就是float類型的話,就在后面加個f:

float a = 0.5f;

??浮點數(shù)相關(guān)運算

這部分的規(guī)則也是和C語言的差不多,在此不多贅述(其實是我懶得寫 )。但仍要補充一些要點:

①對于整型的除法運算,若想轉(zhuǎn)化為浮點數(shù)的除法運算,則在分子or分母乘0.1就ok了。
②Java中的小數(shù)并沒有精確的位數(shù),哪怕你在初始化一個浮點數(shù)變量時給它一個有限位數(shù)的初始值,比如float a = 1.1,是兩位小數(shù),但是你去打印a*a,會發(fā)現(xiàn)結(jié)果不是1.21。


??字符類型

計算機中的字符本質(zhì)上是一個整數(shù)。 C 語言中使用 ASCII 表示字符,而 Java 中使用 Unicode 表示字符。因此一個字符占用兩個字節(jié),表示的字符種類更多,包括中文。

char c1 = 'A'; // 大寫字母
char c2 = '1'; // 數(shù)字字符

System.out.println(c1);
System.out.println(c2);

char c3 = '帥';
System.out.println(c3);

這里先簡單介紹一下,后續(xù)會有專門的章節(jié)來講字符和字符串的。


??布爾類型

布爾類型(boolean)常用來表示真假,它只有兩種取值,true 表示真,false 表示假。
Java 的 boolean 類型和 int 不能相互轉(zhuǎn)換,不存在1表示 true,0表示false這樣的用法?。?!
然后值得注意的是,Java虛擬機規(guī)范中,并沒有明確規(guī)定boolean占幾個字節(jié)。


??類型轉(zhuǎn)換

(Java 作為一門強類型編程語言,當不同類型之間的變量相互賦值的時候,會有比較嚴格的校驗。)
在Java中,當參與運算數(shù)據(jù)類型不一致時,就會進行類型轉(zhuǎn)換。Java中類型轉(zhuǎn)換主要分為兩類:自動類型轉(zhuǎn)換(隱式)強制類型轉(zhuǎn)換(顯式)。

??自動類型轉(zhuǎn)換(隱式)

代碼不需要經(jīng)過任何處理,在代碼編譯時,編譯器會自動進行處理。
特點:數(shù)據(jù)范圍小的轉(zhuǎn)為數(shù)據(jù)范圍大的時會自動進行。

int a = 100;
long b = 10L;
b = a; // a和b都是整形,a的范圍小,b的范圍大,當將a賦值給b時,編譯器會自動將a提升為long類型,然后賦值
a = b; // 編譯報錯,long的范圍比int范圍大,會有數(shù)據(jù)丟失,不安全

?然后不知道你有沒有發(fā)現(xiàn)這樣一個問題,為啥我把byte或short賦為整型值的時候編譯器不會報錯呢?比如byte = 11; short = 20。

因為Java規(guī)定:對于byte,short這兩種大小小于4個字節(jié)的類型,你對這兩種類型的變量進行賦值的時候,只要賦的值的大小不超過這個類型的范圍,那么這個值就不會被解析為整型。
比如byte a = 300,因為300已經(jīng)超過byte的范圍,那么此時300就會被當做整型,就會報錯了。

??強制類型轉(zhuǎn)換(顯式)

這個和C語言的差不多,打個比方,強制類型轉(zhuǎn)換就像你現(xiàn)在有一條2米的桿子,你要放進一個1米長的箱子,就只能把它砍短咯。舉一些例子讓你回憶一下:

int a = 10;
long b = 100L;
b = a; // int-->long,數(shù)據(jù)范圍由小到大,隱式轉(zhuǎn)換
a = (int)b; // long-->int, 數(shù)據(jù)范圍由大到小,需要強轉(zhuǎn),否則編譯失敗

float f = 3.14F;
double d = 5.12;
d = f; // float-->double,數(shù)據(jù)范圍由小到大,隱式轉(zhuǎn)換
f = (float)d; // double-->float, 數(shù)據(jù)范圍由大到小,需要強轉(zhuǎn),否則編譯失敗

a = d; // 報錯,類型不兼容
a = (int)d; // int沒有double表示的數(shù)據(jù)范圍大,需要強轉(zhuǎn),小數(shù)點之后全部丟棄

byte b1 = 100; // 100默認為int,沒有超過byte范圍,隱式轉(zhuǎn)換
byte b2 = (byte)257; // 257默認為int,超過byte范圍,需要顯示轉(zhuǎn)換,否則報錯

boolean flag = true;
a = flag; // 編譯失?。侯愋筒患嫒?flag = a; // 編譯失?。侯愋筒患嫒?

總結(jié)一下就是:

  1. 不同數(shù)字類型的變量之間賦值, 表示范圍更小的類型能隱式轉(zhuǎn)換成范圍較大的類型
  2. 如果需要把范圍大的類型賦值給范圍小的, 需要強制類型轉(zhuǎn)換, 但是可能精度丟失
  3. 將一個字面值常量進行賦值的時候, Java 會自動針對數(shù)字范圍進行檢查
  4. 強制類型轉(zhuǎn)換不一定能成功,不相干的類型不能互相轉(zhuǎn)換

??類型提升

不同類型的數(shù)據(jù)之間相互運算時,數(shù)據(jù)類型小的會被提升到數(shù)據(jù)類型大的。
①int與long之間:int會被提升為long

int a = 10;
long b = 20;
int c = a + b; // 編譯出錯: a + b==>int + long--> long + long 賦值給int時會丟失數(shù)據(jù)
long d = a + b; // 編譯成功:a + b==>int + long--->long + long 賦值給long

第三行代碼中,a類型提升之后變?yōu)閘ong類型,此時long+long結(jié)果為long,不能用int類型接收。

②byte與byte的運算

byte a = 10;
byte b = 20;
byte c = a + b;
System.out.println(c);

這段代碼編譯也會報錯,a和b雖然都是byte,但是計算 a + b 會先將 a和b 都提升成 int,再進行計算,得到的結(jié)果也是 int,此時賦給c,就會出錯。

byte和short這種低于4個字節(jié)的類型,會先提升成 int,再參與計算。
原因:計算機的 CPU 通常是按照4個字節(jié)為單位從內(nèi)存中讀寫數(shù)據(jù),為了硬件上實現(xiàn)方便,所以在計算時把它們給提升了。


??寫在最后

如果你覺得本文寫得還不錯,不妨點贊收藏關(guān)注三連唄!
如果發(fā)現(xiàn)本文有不足或不妥之處,歡迎指出,我將第一時間改正。文章來源地址http://www.zghlxwxcb.cn/news/detail-713457.html

到了這里,關(guān)于Java的數(shù)據(jù)類型與變量的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 好用且免費的CodeWhisperer,給1024程序員節(jié)送禮來了

    好用且免費的CodeWhisperer,給1024程序員節(jié)送禮來了

    ? ? ? 國慶期間沒有膽量去人從眾的景點,關(guān)在家里刷手機時意外在亞馬遜的User Group公眾號上發(fā)現(xiàn)了CodeWhisperer這么個好東西(bu yao qian),以后擼代碼也可以提高生產(chǎn)力(fang yang mo yu)了,這還不趕緊上手試一下??垂俜浇榻B說它支持流行的IDE開發(fā)工具,包括VS Code、Intelli

    2024年02月08日
    瀏覽(31)
  • 1024程序員節(jié)帶你玩轉(zhuǎn)圖片Exif信息獲取之JavaScript

    1024程序員節(jié)帶你玩轉(zhuǎn)圖片Exif信息獲取之JavaScript

    目錄 一、前言 二、背景 三、Exif.js ? ? ? ? ?1、Exif.js 簡介 2、Exif.js 引入 四、多場景展示數(shù)據(jù)獲取 1、原始圖片直接獲取 ?2、base64 編碼文件加載 ?3、文件上傳的方式加載 ?五、總結(jié) ? ? ? ?1024是2的十次方,二進制計數(shù)的基本計量單位之一。1G=1024M,而1G與1級諧音,也有一

    2024年02月20日
    瀏覽(98)
  • 1024程序員節(jié)特輯 | Spring Boot實戰(zhàn) 之 MongoDB分片或復制集操作

    1024程序員節(jié)特輯 | Spring Boot實戰(zhàn) 之 MongoDB分片或復制集操作

    Spring實戰(zhàn)系列文章: Spring實戰(zhàn) | Spring AOP核心秘笈之葵花寶典 Spring實戰(zhàn) | Spring IOC不能說的秘密? 國慶中秋特輯系列文章: 國慶中秋特輯(八)Spring Boot項目如何使用JPA 國慶中秋特輯(七)Java軟件工程師常見20道編程面試題 國慶中秋特輯(六)大學生常見30道寶藏編程面試題

    2024年02月08日
    瀏覽(44)
  • 1024程序員節(jié)特輯 | ELK+ 用戶畫像構(gòu)建個性化推薦引擎,智能實現(xiàn)“千人千面”

    1024程序員節(jié)特輯 | ELK+ 用戶畫像構(gòu)建個性化推薦引擎,智能實現(xiàn)“千人千面”

    專欄集錦,大佬們可以收藏以備不時之需 Spring Cloud實戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9270827.html Python 實戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9271194.html Logback 詳解專欄:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow專欄:https://blog.csdn.net/superdangbo/category_869

    2024年02月07日
    瀏覽(36)
  • 1024程序員節(jié)特輯 | 解密Spring Cloud Hystrix熔斷提高系統(tǒng)的可用性和容錯能力

    1024程序員節(jié)特輯 | 解密Spring Cloud Hystrix熔斷提高系統(tǒng)的可用性和容錯能力

    專欄集錦,大佬們可以收藏以備不時之需 Spring Cloud實戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9270827.html Python 實戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9271194.html Logback 詳解專欄:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow專欄:https://blog.csdn.net/superdangbo/category_869

    2024年02月08日
    瀏覽(28)
  • 1024程序員節(jié)?我們整點AI繪圖玩玩吧,一文教你配置stable-diffusion

    1024程序員節(jié)?我們整點AI繪圖玩玩吧,一文教你配置stable-diffusion

    需提前準備:一臺高性能的電腦(尤其是顯存)、python、Git、梯子。 其實Github上有很多關(guān)于Stable diffusion的庫,綜合對比之后,我選取的是比較全面的AUTOMATIC1111這個,源碼鏈接:Stable-diffusion(Github) 找到安裝那塊的教程,此教程以windows為例。 ps:如果你電腦上已經(jīng)有了pyt

    2024年01月16日
    瀏覽(31)
  • PHP框架開發(fā)實踐 | 1024 程序員節(jié):通過index.php找到對應的controller是如何實現(xiàn)的

    PHP框架開發(fā)實踐 | 1024 程序員節(jié):通過index.php找到對應的controller是如何實現(xiàn)的

    ??作者簡介,黑夜開發(fā)者,CSDN領(lǐng)軍人物,全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者?,CSDN博客專家,阿里云社區(qū)專家博主,2023年6月CSDN上海賽道top4。 ??數(shù)年電商行業(yè)從業(yè)經(jīng)驗,歷任核心研發(fā)工程師,項目技術(shù)負責人。 ??本文已收錄于PHP專欄:PHP進階實戰(zhàn)教程。 ??歡迎 ??點贊?評論?收藏

    2024年02月08日
    瀏覽(31)
  • Java數(shù)據(jù)類型與變量

    Java數(shù)據(jù)類型與變量

    其中的“HelloWord”為字面常量。 1.1字面常量的分類: 1. 字符串常量:由\\\"\\\"(雙引號)括起來的,比如“12345”、“hello”、“你好”。 2. 整形常量:程序中直接寫的數(shù)字(注意沒有小數(shù)點),比如:100、1000 3. 浮點數(shù)常量:程序中直接寫的小數(shù),比如:3.14、0.49 4. 字符常量:由 單

    2023年04月09日
    瀏覽(21)
  • 【Java入門】數(shù)據(jù)類型與變量

    【Java入門】數(shù)據(jù)類型與變量

    前言 ??作者簡介: 熱愛跑步的恒川 ,致力于C/C++、Java、Python等多編程語言,熱愛跑步,喜愛音樂的一位博主。 ??本文收錄于Java入門篇系列,該專欄主要講解:什么是java、java的數(shù)據(jù)類型與變量、運算符、程序的邏輯控制、方法的使用、數(shù)組的定義與使、類和對象、繼承和

    2024年02月06日
    瀏覽(22)
  • 解密Java數(shù)據(jù)類型與變量

    解密Java數(shù)據(jù)類型與變量

    目錄 1. 字面常量 2. 數(shù)據(jù)類型 3. 變量 常量即程序運行期間,固定不變的量稱為常量 ,比如:一個禮拜七天,一年 12 個月等。 在 Java 中數(shù)據(jù)類型主要分為兩類: 基本數(shù)據(jù)類型 和 引用數(shù)據(jù)類型 。 圖解如下: 基本數(shù)據(jù)類型有四類八種 : 1.? 四類 :整形、浮點型、字符型及布

    2024年03月15日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包