A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ssx0101 中级黑马   /  2012-11-26 21:26  /  1627 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 曹自祥 于 2012-11-28 11:45 编辑

String s=“张三”;
byte[] ch=s.getBytes(“GBK”);
在内存中存储的s和ch分别是什么?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

8 个回复

倒序浏览
第一个是在常量池里面存储的字符串 下面的是按字节存储在字节数组里且是以gbk的形式解码的

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
齐银春 发表于 2012-11-26 21:55
第一个是在常量池里面存储的字符串 下面的是按字节存储在字节数组里且是以gbk的形式解码的 ...

“常量池里面存储的字符串”和“按字节存储在字节数组里”都应该是存储的二进制字节码,字节数组里存的是将字符串s参照“GBK”表解码后得到的二进制字节码,那常量字符串里的二进制字节码是怎么得到的?
回复 使用道具 举报
曹自祥 发表于 2012-11-27 15:29
“常量池里面存储的字符串”和“按字节存储在字节数组里”都应该是存储的二进制字节码,字节数组里存的是 ...

getBytes()方法就是 得到其字节码形式 里面传递的谁即使以谁的方式得到的比如gbk 如何得到二进制那是底层的事,楼主有兴趣可以多了解一些jvm
回复 使用道具 举报
齐银春 发表于 2012-11-27 15:43
getBytes()方法就是 得到其字节码形式 里面传递的谁即使以谁的方式得到的比如gbk 如何得到二进制那是底层 ...

我的问题不在getByte()方法上,我是很疑惑字符串是以什么形式存在内存中的。
回复 使用道具 举报
曹自祥 发表于 2012-11-27 15:47
我的问题不在getByte()方法上,我是很疑惑字符串是以什么形式存在内存中的。 ...

数据在内存里肯定都是以二进制形式存在的,不知道你要问什么
回复 使用道具 举报
ssx0101 中级黑马 2012-11-27 17:33:14
7#
齐银春 发表于 2012-11-27 16:03
数据在内存里肯定都是以二进制形式存在的,不知道你要问什么

字符串存在内存里的二进制是怎么得到的?
回复 使用道具 举报
曹自祥 发表于 2012-11-27 17:33
字符串存在内存里的二进制是怎么得到的?

这是一门课程 如果了解你可以看看计算机组成原理
回复 使用道具 举报
ssx0101 中级黑马 2012-11-27 17:56:59
9#
。。。好吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马