中易网

java中String占几个字节

答案:2  悬赏:20  
解决时间 2021-02-08 23:34
java中String占几个字节
最佳答案
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确是对象类型。
全部回答
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确是对象类型。对象是一种很复杂的数据类型,你要看一个对象具体占多少字节,可以把这个对象序列化后存入一个文本文件来看它具体占用了多少字节,当然这也不是精确的,因为序列化需要写入少量系统信息,但大致是对的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
艾珂洗浴地址在什么地方,想过去办事
什么是两梯八户
清心街北二巷/冬融街(路口)地址在哪,我要去
水星150r路由器的无线初始密码是多少?我现在
墨西哥发展客户工业的优势区位条件主要有哪两
景县玉龙向瑞劳务有限公司我想知道这个在什么
简历表中计算机应用专业的描述怎么写? 急
父母买保险,但受益人患有严重自闭症,保险理
大哥,请问下你VRAY烘焙贴图,反射的角度问题是
如何改变导购员的心态
奥依曼布拉克村村民委员会地址在哪,我要去那
建新菜市场这个地址在什么地方,我要处理点事
请问 这次浙江杭州各个高中的录取分数线是多
梧州哪里的龟苓膏最好吃?
人开悟后是什么样子
推荐资讯
想取一个不带凶的姓名,姓刘男孩 2012年2月17
OL精品衣橱地址有知道的么?有点事想过去
女孩说对我说分的时候,没有爱情的感觉到了吧
招聘未成年工作 偷老板一百块而被炒鱿鱼 过后
杰宝大王和尚品电动车哪个牌子好?区别?
钢铁雄心2初始化音乐那就崩溃,删除music文件
蹈字笔顺怎么写
优格烘焙坊怎么去啊,有知道地址的么
漫威或者DC里搜集情报最厉害的英雄是哪个,,
中国建设银行珠江骏景支行这个地址在什么地方
求倾城天下之乱世繁华的txt,广播剧。
这是东方project里的哪位?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?