Mysql | Oracle | Java |
BIGINT | NUMBER(19,0) | java.lang.Long |
BIT | RAW | byte[] |
BLOB | BLOB RAW | byte[] |
CHAR | CHAR | java.lang.String |
DATE | DATE | java.sql.Date |
DATETIME | DATE | java.sql.Timestamp |
DECIMAL | FLOAT (24) | java.math.BigDecimal |
DOUBLE | FLOAT (24) | java.lang.Double |
DOUBLE PRECISION | FLOAT (24) | java.lang.Double |
ENUM | VARCHAR2 | java.lang.String |
FLOAT | FLOAT | java.lang.Float |
INT | NUMBER(10,0) | java.lang.Integer |
INTEGER | NUMBER(10,0) | java.lang.Integer |
LONGBLOB | BLOB RAW | byte[] |
LONGTEXT | CLOB RAW | java.lang.String |
MEDIUMBLOB | BLOB RAW | byte[] |
MEDIUMINT | NUMBER(7,0) | java.lang.Integer |
MEDIUMTEXT | CLOB RAW | java.lang.String |
NUMERIC | NUMBER | |
REAL | FLOAT (24) | |
SET | VARCHAR2 | java.lang.String |
SMALLINT | NUMBER(5,0) | java.lang.Integer |
TEXT | VARCHAR2 CLOB | java.lang.String |
TIME | DATE | java.sql.Time |
TIMESTAMP | DATE | java.sql.Timestamp |
TINYBLOB | RAW | byte[] |
TINYINT | NUMBER(3,0) | java.lang.Boolean |
TINYTEXT | VARCHAR2 | java.lang.String |
VARCHAR | VARCHAR2 CLOB | java.lang.String |
YEAR | NUMBER | java.sql.Date(日期设为2月1日晚上2点) |
//字节数与对应关系
Java 占用字节数数据类型 大小(二进制位数) 范围 默认值 byte(字节) 8 -128 - 127 0shot(短整型) 16 -32768 - 32768 0int(整型) 32 -2147483648-2147483648 0long(长整型) 64 -9233372036854477808-9233372036854477808 0 float(浮点型) 32 -3.40292347E+38-3.40292347E+38 0.0fdouble(双精度) 64 -1.79769313486231570E+308-1.79769313486231570E+308 0.0dchar(字符型) 16 ‘ /u0000 - u/ffff ’ ‘/u0000 ’
boolean(布尔型) 1 true/false false
JAVA是采用Unicode编码。每一个字节占8位。你电脑系统应该是 32位系统,这样每个int就是 4个字节
其中一个字节由8个二进制位组成
Java一共有8种基本数据类型(原始数据类型): 类型 存储要求 范围(包含) 默认值 包装类整 int 4字节(32位) -231~ 231-1 0 Integer数 short 2字节(16位) -215~215-1 0 Short类 long 8字节(64位) -263~263-1 0 Long型 byte 1字节(8位) -27~27-1 0 Byte浮点 float 4字节(32位) -3.4e+38 ~ 3.4e+38 0.0f Float类型 double 8字节(64位) -1.7e+308 ~ 1.7e+308 0 Double字符 char 2字节(16位) u0000~uFFFF(‘’~‘?’) ‘0’ Character (0~216-1(65535)) 布尔 boolean 1/8字节(1位) true, false FALSE Boolean在移动开发中由于移动设备内存的局限性,往往需要考虑使用的数据类型所占用的字节数。下面简单介绍下Java中几种基本数据类型,以加深记忆。
补充:Java有一个能够表示任意精度的算书包,通常称为“大数值”(big number)。虽然被称为大数值,但它并不是一种Java类型,而是一个Java对象。
如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigIntegerBigDecimal(Android SDK中也包含了java.math包以及这两个类)这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。具体的用法可以参见Java API。