導航:首頁 > 編程語言 > javaboolean幾個位元組

javaboolean幾個位元組

發布時間:2024-10-04 20:17:01

1. java-基本數據類型有哪幾個

Java的基本數據類型在Java中,每個存放數據的變數都是有類型的,如:char ch;float x;int a,b,c;ch是字元型的,就會分配到2個位元組內存。不同類型的變數在內存中分配的位元組數不同,同時存儲方式也是不同的。所以給變數賦值前需要先確定變數的類型,確定了變數的類型,即確定了數據需分配內存空間的大小,數據在內存的存儲方式。1. Java中的數據類型Java中的數據類型有基本數據類型和引用數據類型兩大類,圖2-1呈現了Java中數據類型的概貌。圖2-1 Java中的數據類型概貌本講就基本數據類型進行討論,引用數據類型將在下一篇中論述。以下討論每一種數據類型時,對常量和變數作分別說明。所謂常量,就是直接的值;而變數則是放置常量的容器,除了放置常量之外,也可以給變數一個運算式,變數中的值是可變的。2. 布爾型—boolean布爾型又名邏輯型,它是最簡單的數據類型,在流程式控制制時常會用到。有C++編程經驗的學習者,要特別看清,Java中的布爾型數據不對應於任何整數值。布爾型常量:true和false。需要注意的是,布爾常量的組成字母一律都是小寫的。 布爾型變數:以boolean定義的變數,如:boolean b = true; //定義變數b是boolean,且值為true3. 字元類型—char(1)字元常量字元常量指用單引號括起來的單個字元,如『a』,『A』。請特別注意,字元的定界符是單引號,而非雙引號。除了以上所述形式的字元常量值之外,Java還允許使用一種特殊形式的字元常量值,這通常用於表示難以用一般字元來表示的字元,這種特殊形式的字元是以一個「\」開頭的字元序列,稱為轉義字元。Java中的常用轉義字元見表2-1。表2-1 Java中的轉義字元轉義字元 描述\ddd 1~3位八進制數所表示的字元(ddd)\uxxxx 1~4位十六進制數所表示的字元(xxxx)如『\u0061』表示『a』\』 \」 單引號字元和雙引號字元\\ 反斜杠\r 回車\n 換行\t 橫向跳格\f 走紙換頁\b 退格(2)字元變數以char定義的變數,如char c='a';要特別加以說明的是,Java的文本編碼採用Unicode集,Java字元16位無符號型數據,一個字元變數在內存中佔2個位元組。例1:編程測試十六進制數41、51對應的字元,並相隔一個tab位輸出。分析:已知十六進制數,求字元。根據表2-1,可用'\uxxxx'的轉義字元形式來表示所求字元,然後直接輸出即可。[HDTest.java] class HDTest{ public static void main(String[] args){ char a='\u0041'; char b='\u0051'; System.out.println(a+" "+b); //字元之間以若干空格相間 } }程序運行結果:A Q4. 定點類型(整型)定點類型包括了位元組型、整型、短整型和長整型,它們在內存中雖然占據的位元組數互不相同,但它們的存儲方式是同樣的,所以這里把這些類型歸並在一起討論。「定點」的意思是把小數點定在末尾,小數點後沒有數字的數據,Java中通常把它們稱為整數。(1)定點常量定點常量是整型常數,它可用十進制、八進制、十六種進制三種方式來表示。ナ十進制定點常量:如123、-456、0。ナ八進制定點常量:以0前導,形式為0dd...d。如0123表示十進制數83,-011表示十進制數-9。ナ十六進制定點常量:以0x或0X開頭,如0x123表示十進制數291,-0X12表示十進制數-18。(2)定點變數定點變數即整型變數,可細分成位元組型變數、整型變數、短整型變數和長整型變數四種。表2-2對各種定點變數的開銷內存位元組數和數值范圍作簡要說明。表2-2 關於整型變數的說明 定點變數 佔位元組數 范 圍位元組型byte 1 [-128,127],即從-27~27-1短整型short 2 [-32 768, 32 767],即-215~215-1整型int 4 [-2 147 483 648, 2 147 483 647],即-231~231-1長整型long 8 -263~263-1需要注意的是,如果要將一定點常量賦值給一個定點變數,需要查驗常量是否在該變數的表達范圍內,如超出范圍程序會編譯出錯。如:byte b = 200; //JCreator編譯時錯誤信息是「可能損失精度」例2:閱讀程序,分析其運行結果。[OHTest.java] class OHTest{ public static void main(String[] args){ int x = 010; System.out.println("x = "+ x); int y = 0x10; System.out.println("y = " + y); } }程序運行結果略,請思考並調試驗證。5. 浮點型(實型)(1)浮點常量即帶小數點的實型數值,可以由直接帶小數點的數值和科學計數法兩種形式來表示:ナ帶小數點的數值形式:由數字和小數點組成,如0.123、.123、123.、123.0。ナ科學計數法表示形式:由一般實數和e±n(E±n)組成,如12.3e3、5E-3,它們分別表示12.3×103和5×10-3。需要注意的是,e或E之前必須有數字,且e或E後面的指數必須為整數。(2)浮點變數浮點變數有單精度變數和雙精度變數之分,不同的精度開銷的內存位元組數和表達的數值范圍均有區別。兩種浮點變數占內存位元組數和數值范圍見表2-3。表2-3 單精度變數和雙精度變數簡要說明浮點變數 佔位元組數 范圍單精度float 4 3.4e-038~3.4e+038,-3.4e+038~-3.4e-038 雙精度double 8 1.7e-308~1.7e+308,-1.74e+038~-3.4e-038浮點常量也有單精度和雙精度之分,前面列出的常量均是雙精度常量,如果要特別說明為單精度常量,可以數據末尾加上f或F作為後綴,如12.34f。如果要特別指明一個浮點常量是雙精度常量,數據末尾不需要添加後綴,或者在數據末尾加上d或D作為後綴,如12.34d。例3:輸入一個圓的半徑,求圓面積。分析:圓半徑在編寫程序時是不確定的,其值在程序運行時輸入,這樣程序就比較通用,可以處理不同半徑的求面積和周長問題。這就涉及數據輸入的問題,參照本講第一節,輸入數據通過Scanner掃描器解決。[CircleArea.java] import java.util.Scanner; class CircleArea{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); double r = sc.nextDouble(); double area = Math.PI * r * r; System.out.println(area); } }

2. java語言有幾種數據類型怎樣申明和賦值

一、基本數據類型
整型:byte、short、int、long (在計算機中以二進制補碼格式存儲)

浮點型:float、double (在計算機中以IEEE754格式存儲)

字元型:char (在計算機中以unicode碼格式存儲)

布爾型:boolean (只有true和false兩個值)

二、 1.長整型:long

定義:long a=100;int b=a; (編譯出錯)

給a重新賦值:long a=2147483648; (編譯出錯)

定義:long a=2147483648L;(正確,說明此時可以是long型的取值范圍)

說明在long型的數據後不加L/l時,數據仍為long型,但其取值范圍卻是int型的取值范圍;數據後加L/l時,取值范圍才是long型的取值范圍。

2.浮點型:long

定義:float a=19; 輸出a時為19.0

定義:float a=19.1; (編譯出錯)

定義:float a=19.1f; (正確)

說明在 float型的數據後不加F/f,則數據不能有小數位,但輸出時,能夠輸出一位小數;若在float型的數據後加上F/f,則數據可以有小數位;

三、類型轉換(註:boolean型不會發生類型轉換,基本類型和復合類型不能相互轉換)

1.自動轉換

1)賦值轉換:用於短位元組的數據類型轉換成長位元組的數據類型(byte型的數據不能轉換成char型,short型和char型數據也不能相互轉換)

2)單目運算符提升

++、——運算符不會自動提升,+(正)、-(負)會將byte、short、char型的數據自動轉換成int型的數據

3)雙目運算符提升

如果有一個操作數是double型的,則把另一個轉換成double型;否則如果有一個操作數是float型的,則把另一個轉換成float型;否則 如果有一個操作數是long型的,則把另一個轉換成long型;否則兩個操作數都轉換成int型。

4)三目運算符<op1> ? <op2> : <op3>其中op1必須是boolean型的,而op2和op3兩操作數必須是能夠自動轉換成相同類型的數據,op2和op3會自動提升為兩操作數中位元組較長的一個,並且結果為提升後的類型。

如:byte a1=20;

short a2=10;

boolean b=true;

short c = b ?

a1 : a2;

結果為short型的數據c

2.強制轉換

例子:

int a;

byte b=(byte)a;

定義:a=-126;

(分析:int形的數據有4個位元組,而byte形的數據只有1個位元組,所以只取int型數據的最後一個位元組)

a的原碼: 10000000,00000000,00000000,01111110

補碼: 11111111,11111111,11111111,10000010

法一:r=(10000010)=130 (此時將 10000010 看成是純的二進制數去計算,而不考慮它的符號位); byte型數據范圍〔-128,127〕,由於 r>127,所以 r=r-M (若整型數據值域[-L,R],則M=L+R+1),如果r還不在byte型數據的取值范圍內,則繼續 r=r-M 直至r在其取值范圍內,取得r後,即為byte型的 b .此處r=-126,所以輸出b為-126.

法二:直接將int型數據的最後一個位元組看成是byte型數據的補碼形式,在將補碼轉換成原碼,即得到 b

四、邏輯運算符

1.&&和|| (&&的優先順序要高於||的)

特點:只要左操作數已經得出整個表達式的值,就不再計算右操作數的之值,左右操作數必須為boolean型的。

例子:

boolean test1= ++x==-1 && ++x==1 || ++x=2;
boolean test2= ++y==-1 || ++y==1 && ++y=2;
System.out.println(x+" "+test1);
System.out.println(y+" "+test2);
結果:1 false
2 true

2.&和| (邏輯位運算符)

特點:先把兩個操作數的值計算出來,然後再進行邏輯運算

int x=-1,y=-1;
boolean test1= ++x==-1 & ++x==1 | ++x=2;
boolean test2= ++y==-1 | ++y==1 & ++y=2;
System.out.println(x+" "+test1);
System.out.println(y+" "+test2);
結果: 2 false
2 true

五、移位運算

<< (左移)高位丟失、低位以0填充

>> (右移) 低位丟失、高位以符號位填充

>>> (無符號位右移) 低位丟失、高位以0填充

此運算符不會對左右兩操作數作算術提升,但會對左操作數進行單獨提升,若為byte、short、char、int型,則得到結果為int型,若為long型,則結果為long型,但左右操作數均不能為浮點型,否則出錯。

當左操作數為int型時,右操作數的低5位才有用,這樣可以防止移位超過int型所具有的位數,當左操作數為long型時,右操作數的低6位才有用。

例子:

int a=-2;
short b=-10;
int c=a>>b;

b的補碼:11111111,11111111,11111111,11110110

取b的最後5位, r=(10110)=22;

a的補碼:11111111,11111111,11111111,11111110

將a向右移動22位,再在高位補上1,得到 11111111,11111111,11111111,11111111 ,轉換成原碼得到 c=-1

六、賦值運算

1.簡單賦值運算

表達式: <變數>=<表達式>

左操作數可以事先沒有賦值

表達式的類型必須和變數的類型相同,或能賦值轉換成變數的類型,

2.組合賦值運算

表達式:<變數> op= <表達式>

int a=10;

double b=23.3;

a*=b;

左操作數事先一定要賦值

左邊的類型和右邊的類型不一定要相同,此處a*b得到的是double型的,組合運算符會自動把double型的值轉換成int型的值存入變數a中。

3. java中的數據類型

java中的數據類型分兩大類分別是基本類型和引用數據類型。

一、基本類型

1)Java中的數據類型有八種,即基本類型。具體如下:

數據類型 位數 取值范圍:

Boolean 1 True|False

Byte 8 -128~127

Short 16 -32768~32767

Int 32 -2e31~2e31-1

Long 64 -2e63~2e63-1

Float 32 略

Double 64 略

Char 16 0~65535

『 /u0000』 ~』uFFFF『

二、引用數據類型

1)定義一個byte變數 如:byte b= -256;

由於-256超出了』Byte』的取值范圍,所以要使程序不報錯,有一下幾種解決方法:

A:更改變數的數據類型(如:將byte改為int);

B:更改變數名的賦值,使其包括在變數的數據類型的值域內;

C:進行強制轉換:如: byte b=(byte)-256:

『進行強制轉換後,雖然程序不在報錯,但是有可能會使原值的精度收到影響』

D:定義一個浮點類型數時,記得要在數值的後面加上「f」或「F」。(如:Float f=10000.0f;)

E:若定義 Char c=a;定義 int n=c;則輸出的n值為「a「的ASCII值,即97。

2)引用數據類型的定義

A:對象都是引用數據類型

B:應用類型使用NEW調用構造方法進行賦值

C:在Java中,除了基本數據類型以外,其餘的全都屬於引用數據類型, 如:

a:API中的類,如String,File等;

b:數據;

c:自定義的類,如Cars,Student

d:對象全部是引用數據類型。

(3)javaboolean幾個位元組擴展閱讀

其他數據類型:

在java中,String本身也提供了很多的方法供我們使用:

獲取到指定索引位置的字元:char c = 字元串.charAt(索引位置);

獲取到指定索引位置的字元:char c = 字元串.charAt(索引位置);

獲取第一次出現在字元串中的字元:int index = 字元串.index('a');

獲取在字元串中字元的索引位置:int index = 字元串.index('a',1);

如果想比較兩個字元串是否相等:字元串.equeals(字元串);

判斷字元串是否為空:字元串.isEmpty();

獲取字元串的長度:字元串.length();

根據某一個條件,將字元串進行分割:字元串.split("abc");

根據條件取出內容:字元串.substring(開始位置,結束位置);



4. JAVA中8個數據類型的取值范圍是多少

在JAVA中一共有八種基本數據類型,他們分別是
byte、short、int、long、float、double、char、boolean

整型:
其中byte、short、int、long都是表示整數的,只不過他們的取值范圍不一樣。

byte的取值范圍為-128~127,佔用1個位元組(-2的7次方到2的7次方-1);

short的取值范圍為-32768~32767,佔用2個位元組(-2的15次方到2的15次方-1) ;

int的取值范圍為(-2147483648~2147483647),佔用4個位元組(-2的31次方到2的31次方-1) ;

long的取值范圍為(-9223372036854774808~9223372036854774807),佔用8個位元組(-2的63次方到2的63次方-1);

可以看到byte和short的取值范圍比較小,而long的取值范圍太大,佔用的空間多,基本上int可以滿足我們的日常的計算了,而且int也是使用的最多的整型類型了。

在通常情況下,如果JAVA中出現了一個整數數字比如35,那麼這個數字就是int型的,如果我們希望它是byte型的,可以在數據後加上大寫的 B:35B,表示它是byte型的,同樣的35S表示short型,35L表示long型的,表示int我們可以什麼都不用加,但是如果要表示long型的,就一定要在數據後面加「L」。

浮點型 :

float和double是表示浮點型的數據類型,他們之間的區別在於他們的精確度不同 ;

float 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同樣,e-45表示乘以10的負45次方)佔用4個位元組 ;

double 1.797693e+308~ 4.9000000e-324 佔用8個位元組 ;

double型比float型存儲范圍更大,精度更高,所以通常的浮點型的數據在不聲明的情況下都是double型的,如果要表示一個數據是float型的,可以在數據後面加上「F」。

浮點型的數據是不能完全精確的,所以有的時候在計算的時候可能會在小數點最後幾位出現浮動,這是正常的。

boolean型(布爾型):

這個類型只有兩個值,true和false(真和非真);

boolean t = true;
boolean f = false;

char型(文本型) :

用於存放字元的數據類型,佔用2個位元組,採用unicode編碼,它的前128位元組編碼與ASCII兼容
字元的存儲范圍在u0000~uFFFF,在定義字元型的數據時候要注意加' ',比如 '1'表示字元'1'而不是數值1。

5. java有幾種數據類型

四種八類:

基本數據類型

整數類型:


閱讀全文

與javaboolean幾個位元組相關的資料

熱點內容
毒app怎麼加賣家 瀏覽:838
北漂程序員互聯網 瀏覽:240
程序員實現不了一些效果 瀏覽:790
php框架的編譯 瀏覽:737
地基處理加密技巧 瀏覽:199
戰地為什麼總是斷開伺服器 瀏覽:256
ios解壓縮rar 瀏覽:960
如何用java做一個web伺服器 瀏覽:150
電子製冷和壓縮製冷哪個好 瀏覽:940
餐飲潮汕丸子簡介在app怎麼寫 瀏覽:786
特斯拉app怎麼綁定多輛車 瀏覽:417
aed伺服器是什麼 瀏覽:402
imagemagick壓縮gif 瀏覽:917
iphonex方舟編譯器 瀏覽:654
kepware的伺服器端點如何設置 瀏覽:371
用python自製掃雷 瀏覽:335
xboxones手柄如何配對安卓 瀏覽:490
湖南郴州java程序員培訓機構 瀏覽:137
服從命令成語 瀏覽:229
gcc編譯鏈 瀏覽:833