C++中有个 sizeof 可以查看任意类型的大小。Java怎么查看?

解决方案 »

  1.   

    String才有getBytes()方法吧,而且String可以直接用2*length()
      

  2.   

    java并没有sizeof运算符,因为:
    java跨平台,不依赖具体的平台,不会存在int,char等随着平台变化而不同的情况,所有的基本类型大小都是固定的
      

  3.   

    而且String可以直接用2*length()这个是错误的,例如[a]和[阿]用length()求出来都是1,可实际占用字节数并不一样
      

  4.   

    你们都v5.。但是我看c的书里的相同数据类型 与 java视频中说的  字节数不同不懂咋搞。。ex:char 在c(1字节) java(2个字节)...我迷惑了。。还有别的。好像也不一样。
      

  5.   

    C采用的好像是ASCII码,ASCII码占用的就是一个字节
    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个字节。
      

  6.   

    代码:
    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
      

  7.   

    我说错了,String采用的还是unicode字符集,应该是用的UTF-16。但是不带参数的getBytes()方法是用系统默认的字符集将String编为字符序列!我的系统是ubuntu,默认字符集是UTF-8,所以出来上面的结果。