在移动开发中由于移动设备内存的局限性,往往需要考虑使用的数据类型所占用的字节数。下面简单介绍下java中几种基本数据类型,以加深记忆。: W; a/ Z4 W. V7 I" X S
在Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型和1种用于表示真值的boolean类型。(一个字节等于8个bit)! y5 l+ G# Y; |6 ~- I' N- H
& N( d5 b! F- G n. H
1.整型; g) j! p6 s4 _
类型 存储需求 bit数 取值范围 备注/ u1 E& ~, k1 \- Z Q# d4 [
int 4字节 4*8 4 d/ v o2 y% [9 D6 m
short 2字节 2*8 -32768~32767
% |. d8 d& C6 C6 Q: Y- [long 8字节 8*88 p! r$ Z" B7 R. v) `) S `
byte 1字节 1*8 -128~127
) `( g8 V, k# K: N) B& W k4 `9 l
( {2 N, `- \8 [2.浮点型( h2 X1 B. g! m+ c- y
类型 存储需求 bit数 取值范围 备注
# e& Z+ j4 G/ _. C- ^! V. Jfloat 4字节 4*8 float类型的数值有一个后缀F(例如:3.14F)1 k. v: D b! l* Z& i1 m& E
double 8字节 8*8 没有后缀F的浮点数值(如3.14)默认为double类型8 [# P1 }% Q& e
8 o9 g; G/ K$ Q- N2 m" y4 w) f! [
3.char类型# g- d! h4 y4 x* N8 K8 w( C& A
类型 存储需求 bit数 取值范围 备注
1 H" z/ l9 s0 U) }$ ]char 2字节 2*8
- H+ s8 m/ C: }; C8 ?/ l0 Q* j& d
4.boolean类型 G3 D M4 H7 E, m; q' \
类型 存储需求 bit数 取值范围 备注4 |/ R* N8 ?2 t3 q% J$ y# j
boolean 1字节 1*8 false、true
$ u8 j- ~! V: G% d% p+ u9 e- }4 y. {) T/ V. \0 H
补充:Java有一个能够表示任意精度的算书包,通常称为“大数值”(big number)。虽然被称为大数值,但它并不是一种Java类型,而是一个Java对象。 如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigIntegerBigDecimal(Android SDK中也包含了java.math包以及这两个类)这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。具体的用法可以参见Java API。
% Y. R2 ^: G' C! A. ]7 g- G. u' h |