数据类型

来源:互联网 发布:centos 6.5 mirror 编辑:程序博客网 时间:2024/06/07 02:15

数据类型分为两大类:基本类型,引用类型

基本类型有8种,除了基本类型(8种)以外任何类型都是引用类型 

  如: String 是引用类型

 

8种基本类型:

整数:

byte      8位    使用在文件底层数据     8位补码    -128 ~ 127 

short     16位   很少用               16位补码   -32768 ~ 32767

int       32位   最常用               32位补码   约-21亿 ~ 21亿   -2^31 ~ 2^31-1   -2G ~ 2G-1

long      64位   L   l               64位补码    -2^63 ~ 2^63-1

浮点数:

float     32位   F   f  很少用 精确度不够

double    64位   D   d

布尔类型:

boolean   8位    true  false

字符类型:

char      16位   '中' 'A' '0' '\n' '\u[][][][]'

 

Java中Unicode编码范围是0~65535

 

字符是一个16位无符号整数,字符可以参与数学运算

 

Java中不允许大类型变量直接给小类型变量赋值,如果需要将大类型变量给小类型变量赋值,需要进行类型转换。

 

封闭性原则:

        1)同类型参与运算,得到同种类型结果

        2)小于32位数(byte  short  char)按32位计算

        3)注意:整数的除法是整除 如:5/2    结果为2

 

扩展知识:

 *  1)任何整数“字面量”都是 int 类型!

 *     字面量就是直接写出的常数,如:5

 *  2) “整数字面量”在不超过范围情况下可以给“小类型变量”赋值

 *  3) 以0x(零X)为前缀的是16进制,0(零)前缀的是8进制

 *  4) 整数超范围运算会溢出  

 

 * long 类型

 * 1) 使用L或l后缀的字面量(直接量) 是long类型

 * 2) 计算机时间规定: long类型 从GMT 1970年元旦开始 累计的毫秒数作为时间, 这个规定:将时间转换为整数long

 * 3) 使用 System.currentTimeMillis() 获得系统时间

 * 4) 时间是一个long整数!

 

 * 详细的float double 的计算规则参考 IEEE 754 标准

 * 1) 由于float 精度比较差,很少使用,大多使用double

 *    精度:尾数长度决定

 *    大小范围:指数(小数点位置)决定

 *    float 的精度 没有 int 高,但是float的大小范围比int大!

 *

 * 2) 浮点数字面量默认是double 类型

 *    D为后缀是double  f 后缀是float 

 

 * boolean 类型  8位补码

 * 1) 只有两个值:true 真, false 假

 * 2) 用来表示判断结果状态的  

  

 * char 字符类型 16位补码

 * 1)字符是一个16位无符号"整数"!

 *    字符的数值是unicode编码值

 *    Java中,(Unicode编码值的)整数范围:0 ~ 65535

 * 2) unicode 8万多字 

 *    规定:'中' 编码数字 20013

 *          '田' 编码数字 30000

 *          'A' 编码数值 65

 *   unicode英文编码与ASCII编码一致

 * 3) Java char 类型支持了 i18n(国际化), 就是支持全球文字

 * 4) 在中文本地系统中,字库(字模)只能显示20000+文字!

 * 5)字符字面量 就是一个char整数字面量  如:'中' 

 * 6)字符可以参与数学运算

 *   

 *   'A' 的编码 65  

 *   'B' 66

 *    ...

 *   'Z' 90

 *   '0' 48

 *   '1' 49

 *   ...

 *   '9' 57

 * 7) 特殊字符,可以使用转义字符书写

 *   '\n'     new line 换行

 *   '\r'     return 回车

 *   '\t'     tab 字符

 *   '\\'     \ 字符

 *   '\''     单引号

 *   '\"'     双引号

 *   '\u4e2d' unicode 16进制编码

 *            可以书写任何字的编码

 *            格式:'\u[][][][]'  

 *   '\b'     backspace退格

 * 8) 控制字符也是字符,如:回车,换行,退格(BackSpace)等,

 *    但是控制字符输出显示效果不明显   

  

 * 1) java 中 字面量(直接量)之间的运算,在编译期间,(就已经)优化为运算结果了。

 * 2) Java 中int类型的“字面量”,在不超过小类型范围情况下可以给小类型变量赋值

 * 3)由于Java编译器,不能确定变量表达式的结果,不允许直接将大类型变量给小类型赋值  

0 0
原创粉丝点击