C++中有个 sizeof 可以查看任意类型的大小。Java怎么查看?
解决方案 »
- java新手求助
- 帮忙做个小题,谢谢啦。
- Overriding与Overloading
- 问个菜问题
- 能否定义有返回值的main
- jTree中getLastSelectedPathComponent()的问题(在线等)
- 怎样可以 java 文件与 jsp文件 数值 交互访问
- jsp与access数据库 (tomcat)紧急!@!!
- java.sql.SQLException: 数据库“zxy”未找到
- 这个学期老师教 java , 故麻烦大家一下.谢谢
- if (true){...} 和 if (false) {...}
- 谁来解释一下这句话(英译汉就不用说了)The JVM implementation guarantees that multiple threads cann
java跨平台,不依赖具体的平台,不会存在int,char等随着平台变化而不同的情况,所有的基本类型大小都是固定的
Java里的Char类型采用的好像是UTF-16,你百度百科unicode,可以看到UTF-16绝大部分情况是占用两个字节,所以Char是占用两个字节的。
而二楼说的getBytes().length()是有点错的,应该是getBytes().length。getBytes()方法返回字节数组,length是每个数组都有的属性,length()是String的方法。
另外String类型采用的好像是UTF-8编码,你百度百科unicode会发现,UTF-8的编码占用的字节浮动范围挺大,ASCII码能表示的字符占用的是1个字节,比如Strin s="a"占用的是1个字节,String s=“1”也是占用了1个字节;ASCII不能表示的字符占用的字节可能就多了,比如String s=“中”占用的是3个字节。
public class Test
{
public static void main(String[] args)
{
String[] s={"","a","\n","\t","1","8","+","-","中"}; //"\n"和"\t"分别是回车符和制表符
System.out.println(s.length);
for(String i : s)
{
System.out.print("The length of "+i+" is: ");
System.out.println(i.getBytes().length);
}
}
}
结果:
9
The length of is: 0
The length of a is: 1
The length of
is: 1
The length of is: 1
The length of 1 is: 1
The length of 8 is: 1
The length of + is: 1
The length of - is: 1
The length of 中 is: 3