zoukankan      html  css  js  c++  java
  • char 和 byte 区别

    byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。

    char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是0—65535 ;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符 。

    1,char可以表示中文字符,byte不可以;

    2,char可以表示一个整数,但不能带符号,只能是正数,范围是0-65535;byte有符号型整数,范围是-128-127;

    3,char对于英文字符可以直接转换(按Unicode码) 例如 :char c = 65;  System.out.println(c); 结果为A

    注意:char c ='A'  ,变量中实际存储的是该字符的Unicode编码

    题外话:

    示例: 下面的程序计算了一个循环的迭代次数,并且在该循环终止时将这个计数值打印了出来。那么,它打印的是什么呢? 

    public static void main(String[] args) {
    		byte bytes[] = new byte[256]; 
    		for (int i = 0; i < 256; i++) 
    		bytes[i] = (byte)i; 
    		String str = null;
    		str = new String(bytes);
    		for (int i = 0, n = str.length(); i < n; i++) 
    		System.out.println((int)str.charAt(i) + " "); 
    	}
    

      

    byte数值通过String构造器被转换成char数值,最后char数值被转型成int数值被打印出来.

    因为char是无符号的,所以byte的负值转成 char型是一个非数值型的特定字符.String构造器在未指定字符集的时候,采用jre的缺省字符集. 在通过解码使用平台缺省字符集的指定byte数组来构造一个新string 时,该新string 的长度是字符集的一个函数,因此,它可能不等于byte数组的长度.当给定的所有字节在缺省字符集中并非全部有效时,这个构造器是不确定的.

    只有"ISO-8859-1"能让该程序按顺序打印0-255,此处应显示的指定字符集.str = new String(bytes,"ISO-8859-1");

  • 相关阅读:
    关于讯飞语音SDK开发学习
    关于讯飞语音SDK开发学习
    关于讯飞语音SDK开发学习
    Atitti cto的日常流程与职责attilax总结
    Atitti cto的日常流程与职责attilax总结
    Atitti cto的日常流程与职责attilax总结
    MySQL 大表优化方案,收藏了细看!
    Jquery 返回json数据在IE浏览器中提示下载的问题
    多级菜单联动
    解决IE下返回json数据提示文件保存到问题
  • 原文地址:https://www.cnblogs.com/java-wp/p/6675147.html
Copyright © 2011-2022 走看看