黑马程序员技术交流社区

标题: 数据存储问题 [打印本页]

作者: ssx0101    时间: 2012-11-26 21:26
标题: 数据存储问题
本帖最后由 曹自祥 于 2012-11-28 11:45 编辑

String s=“张三”;
byte[] ch=s.getBytes(“GBK”);
在内存中存储的s和ch分别是什么?
作者: 齐银春    时间: 2012-11-26 21:55
第一个是在常量池里面存储的字符串 下面的是按字节存储在字节数组里且是以gbk的形式解码的
作者: ssx0101    时间: 2012-11-27 15:29
齐银春 发表于 2012-11-26 21:55
第一个是在常量池里面存储的字符串 下面的是按字节存储在字节数组里且是以gbk的形式解码的 ...

“常量池里面存储的字符串”和“按字节存储在字节数组里”都应该是存储的二进制字节码,字节数组里存的是将字符串s参照“GBK”表解码后得到的二进制字节码,那常量字符串里的二进制字节码是怎么得到的?
作者: 齐银春    时间: 2012-11-27 15:43
曹自祥 发表于 2012-11-27 15:29
“常量池里面存储的字符串”和“按字节存储在字节数组里”都应该是存储的二进制字节码,字节数组里存的是 ...

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

我的问题不在getByte()方法上,我是很疑惑字符串是以什么形式存在内存中的。
作者: 齐银春    时间: 2012-11-27 16:03
曹自祥 发表于 2012-11-27 15:47
我的问题不在getByte()方法上,我是很疑惑字符串是以什么形式存在内存中的。 ...

数据在内存里肯定都是以二进制形式存在的,不知道你要问什么
作者: ssx0101    时间: 2012-11-27 17:33
齐银春 发表于 2012-11-27 16:03
数据在内存里肯定都是以二进制形式存在的,不知道你要问什么

字符串存在内存里的二进制是怎么得到的?
作者: 齐银春    时间: 2012-11-27 17:49
曹自祥 发表于 2012-11-27 17:33
字符串存在内存里的二进制是怎么得到的?

这是一门课程 如果了解你可以看看计算机组成原理
作者: ssx0101    时间: 2012-11-27 17:56
。。。好吧!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2