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");

  • 相关阅读:
    到具体某一天的倒计时
    angular2 2种方式----获取子组件的类属性和类方法
    页面刷新
    angular父子组件传值
    div垂直居中,文字垂直居中!!!
    Python 基础数据类型 II (列表)
    Python 基础数据类型 I (str等)
    学习笔记411
    20190407 Word合并单元格
    VBA正则笔记 理解肯定环视
  • 原文地址:https://www.cnblogs.com/java-wp/p/6675147.html
Copyright © 2011-2022 走看看