Ⅰ java中文字元所佔的位元組數是多少
採用GB2312或GBK編碼方式時,一個中文字元佔2個位元組;而採用UTF-8編碼方式時,一個中文字元會佔3個位元組。
Ⅱ 在JAVA中,中文和字母占幾位元組
你的定義不對,其實你分析的是沒有錯的,只是在定義變數的時候錯了,char='A' --->> 不對,應該是:char a ='A'
char='陳' --->> 不對,應該是:char a ='陳'
因為在JAVA中,一個char是2個位元組(byte),而一個中文漢字是一個字元,也是2個位元組。而英文字母都是一個位元組的,因此它也能保存到一個byte里,一個中文漢字卻不能。
Ⅲ JAVA基本數據類型所佔位元組數是多少
32位系統
byte1位元組
short2位元組
int4位元組
long8位元組
char2位元組(C語言中是1位元組)可以存儲一個漢字
float4位元組
double8位元組
booleanfalse/true(理論上佔用1bit,1/8位元組,實際處理按1byte處理)
JAVA是採用Unicode編碼。每一個位元組佔8位。你電腦系統應該是32位系統,這樣每個int就是4個位元組
其中一個位元組由8個二進制位組成
Java一共有8種基本數據類型(原始數據類型):
類型存儲要求范圍(包含)默認值包裝類
整數類型
int4位元組(32位)-231~231-10Integer
short2位元組(16位)-215~215-10Short
long8位元組(64位)-263~263-10Long
byte1位元組(8位)-27~27-10Byte
浮點類型
float4位元組(32位)-3.4e+38~3.4e+380.0fFloat
double8位元組(64位)-1.7e+308~1.7e+3080Double
字元型
char2位元組(16位)u0000~uFFFF(『』~『?』)『0』Character
(0~216-1(65535))
布爾型
boolean1/8位元組(1位)true,falseFALSEBoolean
(3)java一個漢字幾個位元組擴展閱讀:
8種基本數據類型
在Java中一共有8種基本數據類型,其中有4種整型,2種浮點類型,1種用於表示Unicode編碼的字元單元的字元類型和1種用於表示真值的boolean類型。(一個位元組等於8個bit)
Java中有八種基本數據類型,分別為:byte、short、int、long、float、double、char、boolean。
這八種基本類型都有對應的包裝類,分別為:Byte、Short、Integer、Long、Float、Double、Character、Boolean。
在Java中整型、實型、字元型被視為簡單數據類型,這些類型由低級到高級分別為:(byte,short,char)--int--long--float--double
注意,整數比浮點數低級。低級到高級可以自動轉換。而高級到低級需要用代碼強制轉換,不強轉會編譯錯誤。
Ⅳ java中一個字元是幾個位元組字元和位元組是同等的嗎
Java規定了字元的內碼要用UTF-16編碼,一個字元是2個位元組。外碼字元所佔位元組取決於具體編碼。字元和位元組是不一樣的。
外碼編碼不同,字元和位元組的換算不同,幾種常見的編碼換算如下:
ASCII編碼是單位元組編碼,只有英文字元,不能編碼漢字。
GBK編碼1個英文字元是1個位元組,一個漢字是是2個位元組。
UTF-8編碼1個英文字元是1個位元組,一個漢字是3個位元組。
Unicode編碼1個英文字元是2個位元組,一個漢字是2個位元組。
(4)java一個漢字幾個位元組擴展閱讀:
漢字編碼的困難點 漢字進入計算機,有許多困難,其原因主要有三點:
①數量龐大:一般認為,漢字總數已超過6萬個(包括簡化字)。雖有研究者主張規定3000多或4000字作為當代通用漢字,但仍比處理由二三十個字母組成的拼音文字要困難得多。
②字形復雜:有古體今體,繁體簡體,正體異體;而且筆畫相差懸殊,少的一筆,多的達36筆,簡化後平均為9.8筆。
③存在大量一音多字和一字多音的現象:漢語音節416個,分聲調後為1295個(根據《現代漢語詞典》統計,輕聲39個未計)。以1萬個漢字計算,每個不帶調的音節平均超過24個漢字,每個帶調音節平均超過7.7個漢字。有的同音同調字多達66個。一字多音現象也很普遍。
Ⅳ java中如何計算一個字元串的byte長度(一個漢字多少字元)
中文並不一定是占兩個位元組的,具體佔多少位元組是跟具體的編碼方式相關的。
比如說:GB2312、GBK、GB18030
編碼是佔用兩個位元組的,但是
UTF-8
編碼的話至少需要佔用三個位元組。
有一個簡單方法,就是把大於
0xff
的字元都作為兩個字元(當然是在
GBK
環境下)
Java
code
publicstaticint
count(String
str)
{
if(str
==null||
str.length
==0)
{
return0;
}
int
count
=0;
char[]
chs
=
str.toCharArray();
for(int
i
=0;
i
<
chs.length;
i++)
{
count
+=
(chs[i]
>0xff)
?2
:
1;
}
return
count;
}
或者你直接使用
int
len
=
str.getBytes("gbk");上面代碼假設你的資料庫編碼格式是
GBK
的,而不是
UTF-8
的,如果是
UTF-8
的話,上面的代碼無效!1位元組等於8比特,一個字母是1位元組,而一個漢字要用2個位元組。一個漢字=2個字元