日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java基本类_Java基本类型

發(fā)布時(shí)間:2024/10/6 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java基本类_Java基本类型 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

說(shuō)明

java的Object是所有的對(duì)象的基類,它也有自己的基本類型。這些基本類型存儲(chǔ)在棧中,運(yùn)行速度更快。對(duì)于這些基本類型java都有對(duì)應(yīng)的包裝類,對(duì)應(yīng)的占用空間也更大,盡量使用基本類型處理。

java的基本類型主要有boolean,char,byte,short,int,long,float,double,void這幾個(gè),其中String屬于包裝類,并不屬于基本類型。

boolean

包裝類:Boolean

大小:依賴于java虛擬機(jī),一般是占用1byte。詳細(xì)可見(jiàn):stackOverflow上面做的實(shí)驗(yàn)。

數(shù)值:true false

char

包裝類:Character

大小:16 bit (2字節(jié))

數(shù)值:char采用Unicode編碼方式,故最大值和最小值都是采用的Unicode形式,可見(jiàn)java的Character源碼。

/** * The constant value of this field is the smallest value of type * {@code char}, {@code '\u005Cu0000'}. * *@since 1.0.2 */

public static final char MIN_VALUE = '\u0000';

/** * The constant value of this field is the largest value of type * {@code char}, {@code '\u005CuFFFF'}. * *@since 1.0.2 */

public static final char MAX_VALUE = '\uFFFF';

注:char是采用Unicode編碼,占用2個(gè)字節(jié)的,表示一個(gè)字符。故可以表示一個(gè)英文或者一個(gè)漢字。

不同的編碼對(duì)不同的漢字占用的字節(jié)是不同的,例如:GBK中,一個(gè)英文字符占用1個(gè)字節(jié),1個(gè)漢字占用2個(gè)字節(jié);UTF-8中,一個(gè)英文字符占用1個(gè)字節(jié),一個(gè)漢字占用3~4個(gè)字節(jié)。等等還有其他類似的編碼。

byte

包裝類:Byte

大小:8 bits

數(shù)值:-128 ~ 127

short

包裝類:Short

大小:16 bits

數(shù)值:-2^15 ~ 2^15-1

int

包裝類:Integer

大小:32 bits

數(shù)值:-2^31 ~ 2^31-1

long

包裝類:Long

大小:64 bits

數(shù)值:-2^63 ~ 2^63-1

float

包裝類:Float

大小:32 bits

數(shù)值:可采取查看–Float.MIN_VALUES Float.MAX_VALUE

double

包裝類:Double

大小:64 bits

數(shù)值:可采取查看–Double.MIN_VALUES Double.MAX_VALUE

void

包裝類:Void

數(shù)值:–

大小:–

注:此類型僅僅存在,沒(méi)有過(guò)多使用,它含有自己的包裝類。可見(jiàn)djk源碼。

package java.lang;

/** * The {@code Void} class is an uninstantiable placeholder class to hold a * reference to the {@code Class} object representing the Java keyword * void. * *@author unascribed *@since JDK1.1 */

public final

class Void {

/** * The {@code Class} object representing the pseudo-type corresponding to * the keyword {@code void}. */

@SuppressWarnings("unchecked")

public static final Class TYPE = (Class) Class.getPrimitiveClass("void");

/* * The Void class cannot be instantiated. */

private Void() {}

}

基本類型轉(zhuǎn)換

java 的基本類型在使用中,會(huì)發(fā)生自動(dòng)轉(zhuǎn)換現(xiàn)象。例如: int 數(shù)值和double數(shù)值相加,結(jié)果就是double數(shù)值的。這些都是自動(dòng)發(fā)生的類型提升。它有幾個(gè)原則:

1.自動(dòng)類型轉(zhuǎn)化

2.取值窄的向取值寬的轉(zhuǎn)化,反之需要強(qiáng)制類型轉(zhuǎn)換。

等還有其他規(guī)則,可參考其他文檔。

float和double的使用

java的float和double主要為了提供數(shù)值上的精確快速近似計(jì)算而設(shè)計(jì)的,它尤其不擅長(zhǎng)用戶貨幣計(jì)算 。此處需要注意下,當(dāng)我們使用他們進(jìn)行計(jì)算時(shí),結(jié)果往往不如意。

System.out.println(1.00 - 9*0.1);

0.09999999999999998

對(duì)于此類計(jì)算,一般采用BigDecimal進(jìn)行精確計(jì)算即可,可選擇8中舍入方式,十分方便于計(jì)算。

如果要求不高,可以采用int或者long進(jìn)行計(jì)算,例如:1塊錢的計(jì)算,直接采用100,而不是采用0.20等計(jì)算方式。

基本類型和包裝類型

java 5提供了基本類型和包裝類型的自動(dòng)轉(zhuǎn)換,這使得他們之間的使用十分方便,但是需要合理使用。java 的基本類型都是存儲(chǔ)于棧中的,運(yùn)算速度十分快,而java包裝類型都是對(duì)象占用很大的空間,再進(jìn)行循環(huán)計(jì)算時(shí),最好精確使用基本類型。

區(qū)別

區(qū)別主要有3點(diǎn):

1. 基本類型只含有值;包裝類型含有其他方法。比較大小時(shí),需要注意。

2. 包裝類型屬于對(duì)象,會(huì)有null存在。使用時(shí),考慮是否為null。

3. 基本類型節(jié)省空間和計(jì)算。循環(huán)使用時(shí),注意考慮基本類型。

合理的使用

以下情況多考慮使用包裝類型:

1. 集合的處理,例如:List Set 等。

2. 泛型時(shí),參數(shù)化類型使用包裝類型。

3. 反射方法的使用,考慮包裝類型。

總結(jié)

以上是生活随笔為你收集整理的java基本类_Java基本类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。