Java中char到底是多少字节?

Java中无论是汉字还是英文字母都是用Unicode编码来表示的,一个Unicode码是16位,每字节是8位,所以一个Unicode码占两字节。但是英文字母比较特殊,源自于8位(1字节)的ASCII吗,于是在Unicode码仅使用了低8位(1字节)就可以表示,高8位的话不使用也无所谓。所以
char
c='a';
System.out.println(c.getBytes().lenth()),得到的是1(字节)
但汉字就完整地使用了16位(2字节)的Unicode,所以
char
c='中';
System.out.println(c.getBytes().lenth()),得到的是2(字节)
综上,c='a'在内存中确实只占1字节,但这不意味着String
s="abc"在内存中只占3字节。应该这么说,String
s="abc"至少在内存中占3字节。这是因为char是基本数据类型,而String确是对象类型。对象是一种很复杂的数据类型,你要看一个对象具体占多少字节,可以把这个对象序列化后存入一个文本文件来看它具体占用了多少字节,当然这也不是精确的,因为序列化需要写入少量系统信息,但大致是对的。

char是2个字节的。
str是个字符串,所以getbytes是需要得到一个0结尾的字符串,所以就是3个字节了。

java是用unicode来表示字符,"我"这个中文字符的unicode就是2个字节。
String.getBytes(encoding)方法是获取指定编码的byte数组表示,通常gbk/gb2312是2个字节,utf-8是3个字节。如果不指定encoding则取系统默认的encoding。
但在Unicode中确实都是2个字节
16位

  • 鍦JAVA涓璫har鐨勫彇鍊艰寖鍥鏄灏
    绛旓細char鍨嬶紙鏂囨湰鍨嬶級鐢ㄤ簬瀛樻斁瀛楃鐨鏁版嵁绫诲瀷锛屽崰鐢2涓瓧鑺傦紝閲囩敤unicode缂栫爜锛屽畠鐨勫墠128瀛楄妭缂栫爜涓嶢SCII鍏煎 瀛楃鐨勫瓨鍌ㄨ寖鍥村湪\u0000~\uFFFF
  • Java涓璫har鍒板簳鏄灏瀛楄妭?
    绛旓細java涓殑char鍗2涓瓧鑺 1锛氣滃瓧鑺傗濇槸byte锛屸滀綅鈥濇槸bit 锛2锛 1 byte = 8 bit 锛沜har 鍦java涓槸2涓瓧鑺傘俲ava閲囩敤unicode锛2涓瓧鑺傦紙16浣嶏級鏉ヨ〃绀轰竴涓瓧绗︺備唬鐮佸涓嬶細public class Test {public static void main(String[] args) {String str= "涓";char x ='涓';byte[] bytes=null...
  • java char 鍑犱釜瀛楄妭
    绛旓細char鍦Java涓槸16涓瓧鑺
  • 璇烽棶JAVA涓璫har鍗澶氬皯瀛楄妭鏁?
    绛旓細1銆Java鏄unicode鐨缂栫爜锛屾墍浠ヤ竴涓char鍗2涓瓧鑺傦紝16涓猙it浣 2銆丣ava鏄法骞冲彴鐨勶紝鎵鏈夌殑涓滆タ閮芥槸寤虹珛鍦↗ava铏氭嫙鏈虹殑鍩虹涓婏紝鎵浠ュ浣犳潵璇达紝閮ㄥ垎鎿嶄綔绯荤粺锛岄兘涓鏍枫
  • Java char 绫诲瀷瀛楁瘝鍗澶氬皯瀛楄妭?
    绛旓細java涓殑涓涓猚har鐨勭‘鏄2涓瓧鑺傘俲ava閲囩敤unicode锛2涓瓧鑺傛潵琛ㄧず涓涓瓧绗︺java涓殑char绫诲瀷鏄娇鐢║TF16鏉ョ紪鐮佺殑锛屼篃灏辨槸璇寸敤16浣嶏紙涔熷氨鏄袱瀛楄妭锛夋潵琛ㄧず涓涓猚har锛屼竴涓姹夊瓧闇瑕佷袱瀛楄妭鏉ュ瓨鍌紝鎵浠ワ紝涓涓猚har鍒氬ソ鍙互瀛樹笅涓涓眽瀛椼
  • char绫诲瀷鍦Java涓槸8浣嶈繕鏄16浣
    绛旓細java閲囩敤unicode.char 鍦java涓槸2涓瓧鑺(涓涓瓧鑺8浣)涔熷氨鏄16浣,byte 8浣,short:16浣,int :32浣,long:64浣,float:32浣,double64浣.瀛︿範鏄笉鎳傚氨闂紝浣嗘槸涓嶆槸涓嶆噦灏辩珛椹棶鍝︼紒
  • java涓殑char鍗犲嚑涓瓧鑺
    绛旓細鈥滃瓧鈥濆湪 UTF-8 缂栫爜涓嬪崰3瀛楄妭锛岃屸淎鈥濆湪 UTF-8 缂栫爜涓嬪崰 1 瀛楄妭銆傦紙鍥犱负 UTF-8 鏄彉闀跨紪鐮侊級锛岃 Java 涓殑 char 鏈川涓婃槸 UTF-16 缂栫爜銆傝 UTF-16 瀹為檯涓婁篃鏄竴涓彉闀跨紪鐮侊紙2 瀛楄妭鎴 4瀛楄妭锛夈傚鏋滀竴涓娊璞$殑瀛楃鍦 UTF-16 缂栫爜涓嬪崰 4 瀛楄妭锛屾樉鐒跺畠鏄笉鑳芥斁鍒 char 涓殑銆傛崲...
  • char鍗犵敤澶氬皯涓瓧鑺
    绛旓細char鍦–鎴朇++涓崰1涓瓧鑺傦紝鍦╦ava涓崰2涓瓧鑺傘俢har鐢ㄤ簬C鎴朇++涓槸瀹氫箟瀛楃鍨嬪彉閲忕殑锛岃宑har鏁版嵁绫诲瀷鏄竴绉嶆暣鏁扮被鍨嬶紝鍙細鍗犳嵁1涓瓧鑺傘傝屽湪java涓璫har绫诲瀷鍗2涓瓧鑺傛槸鍥犱负Java缂栬瘧鍣ㄩ粯璁や娇鐢║nicode缂栫爜锛屽洜姝2瀛楄妭鍙互琛ㄧず鎵鏈夊瓧绗︺俢har鍨嬫暟鎹槸璁$畻鏈虹紪绋嬭瑷涓彧鍙绾冲崟涓瓧绗︾殑涓绉嶅熀鏈暟鎹被鍨嬨侰...
  • Java涓璫har鑳芥帴鍙姹夊瓧鍚?
    绛旓細鍙互鐨勶紝浣嗗彧鑳芥帴鏀朵竴涓姹夊瓧锛屽洜涓char绫诲瀷鍦↗AVA鐜涓彧鍗犱竴涓瓧鑺傦紝鑰JAVA涓鐨勬瘡涓涓眽瀛椾篃鏄崰涓涓瓧鑺傦紝鎵浠ュ彲浠ュ瓨鏀句竴涓眽瀛椼傚锛歝har Cha = '涓';
  • JAVA鍩烘湰鏁版嵁绫诲瀷鎵鍗犲瓧鑺傛暟鏄灏?
    绛旓細32浣嶇郴缁 byte 1瀛楄妭 short 2瀛楄妭 int 4瀛楄妭 long 8瀛楄妭 char 2瀛楄妭锛圕璇█涓槸1瀛楄妭锛夊彲浠ュ瓨鍌ㄤ竴涓姹夊瓧 float 4瀛楄妭 double 8瀛楄妭 boolean false/true(鐞嗚涓婂崰鐢1bit,1/8瀛楄妭锛屽疄闄呭鐞嗘寜1byte澶勭悊)JAVA鏄閲囩敤Unicode缂栫爜銆傛瘡涓涓瓧鑺傚崰8浣嶃備綘鐢佃剳绯荤粺搴旇鏄32浣嶇郴缁燂紝杩...
  • 扩展阅读:java入门网站 ... java中char和byte转换举例 ... c++和java哪个好就业 ... java中change方法用法 ... JAVA和C的区别 ... java中charat是什么意思 ... java中charat的使用格式 ... java中char表示范围 ... java中char是什么数据类型 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网