J2SE之基本数据类型及转换

来源:互联网 发布:魔兽数据库 编辑:程序博客网 时间:2024/05/21 18:33

Java中所有的基本数据类型都有固定的存储范围和所占内存空间的大小,而不受具体操作系统的影响,来保证Java程序的可移植性。

一、Java中的8中基本数据类型

数据类型 数据说明 所占内存 包装类 boolean 布尔类型 1个字节 java.lang.Boolean char 字符类型 2个字节 java.lang.Character byte 字节类型 1个字节 java.lang.Byte short 短整类型 2个字节 java.lang.Short int 整数类型 4个字节 java.lang.Integer long 长整类型 8个字节 java.lang.Long float 浮点类型 4个字节 java.lang.Float double 双精类型 8个字节 java.lang.Double

注意:

Unicode和UTF-16:1个字符占2个字节(不管哪国语言)

UTF-8:1个英文字符占1个字节,一个汉字(包括日文和韩文等)占3个字节

Java中的char默认采用Unicode编码,所以Java中char占2个字节

Java中没有unsigned类型

二、数据类型转换 int、Integer、String、byte、byte[]

  • int转Integer

    //方式1 创建一个Integer实例Integer integer1 = new Integer(i);      //方式2   返回一个Integer对象 jdk1.5增加//      valueOf方法真正的优化方法,当-128=<i<=127的时候,返回的是IntegerCache中的数组的值;当 i>127 或 i<-128 时,返回的是Integer类对象。Integer integer2 = Integer.valueOf(i);   
  • Integer转int

    //使用Integer.intValueInteger integer3 = Integer.valueOf(2);int i1 = integer3.intValue();   
  • int 转成 String

    String s = null;s = Integer.toString(15);s = Integer.toString(15,2);s = Integer.toBinaryString(15);s = Integer.toHexString(15);s = Integer.toOctalString(15);s = String.valueOf(15);
  • String 转成 int

    Integer.parseInt("10");Integer.parseInt("16",16);
  • String 转成 Integer

    Integer.valueOf("10")Integer.valueOf("16",16)
  • Integer 转成 String

    Integer i = Integer.valueOf(2);String s = i.toString();
  • int 转成 byte

    可以直接使用强制类型转换: byte b = (byte) aInt;这个操作是直接截取int中最低一个字节,如果int大于255,则值就会变得面目全非了。
  • byte 转成 int

    这里有两种情况,一种是要求保持值不变,例如进行数值计算,可采用强制类型转换:int i = (int) aByte;另一种是要求保持最低字节中各个位不变,3个高字节全部用0填充,例如进行编解码操作,则需要采用位操作:int i = b & 0xff;
  • int 转成 byte[]

    public static byte[] toByteArray(int iSource, int iArrayLen) {    byte[] bLocalArr = new byte[iArrayLen];    for (int i = 0; (i < 4) && (i < iArrayLen); i++) {    bLocalArr[i] = (byte) (iSource >> 8 * i & 0xFF);    }    return bLocalArr;}
  • byte[] 转成 int

    // 将byte数组bRefArr转为一个整数,字节数组的低位是整型的低字节位public static int toInt(byte[] bRefArr) {    int iOutcome = 0;    byte bLoop;    for (int i = 0; i < bRefArr.length; i++) {        bLoop = bRefArr[i];        iOutcome += (bLoop & 0xFF) << (8 * i);    }    return iOutcome;}
0 0
原创粉丝点击