在移动开发中由于移动设备内存的局限性,往往需要考虑使用的数据类型所占用的字节数。下面简单介绍下java中几种基本数据类型,以加深记忆。
. Z+ Q4 {0 B# w8 R" F; h2 ?3 _在Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型和1种用于表示真值的boolean类型。(一个字节等于8个bit). b! d* Q. e. r( ]& P
; w, h7 ~& j. b& y& p. E% n% @
1.整型' y/ x/ ^ F. m+ e D
类型 存储需求 bit数 取值范围 备注4 g, [) @& M, V1 _5 {5 Q
int 4字节 4*8
( b S ~& F5 J3 nshort 2字节 2*8 -32768~32767+ i( @$ B1 O, s% M* Q0 ~
long 8字节 8*8& ]3 k0 s) l; u: J. {6 @% G
byte 1字节 1*8 -128~127
7 f' T5 v4 q1 Q' E, J" G7 t- @- C! G" b: Z6 Q, g& e
2.浮点型
8 L/ Z' o' R+ P& }5 g类型 存储需求 bit数 取值范围 备注
2 a+ a9 W2 M% g* d7 Sfloat 4字节 4*8 float类型的数值有一个后缀F(例如:3.14F)
' N9 Z# V* c7 M' t4 @5 Zdouble 8字节 8*8 没有后缀F的浮点数值(如3.14)默认为double类型$ o3 u ?& n1 p
. U j: X3 a2 S: @0 [3 |) V3.char类型
( C* Z8 p7 y' `8 f类型 存储需求 bit数 取值范围 备注1 V' S7 o, A. {8 d( f" D0 X* t+ q
char 2字节 2*80 H8 t }( X7 K' q w
6 H9 F, Q' T* I8 z/ |9 R
4.boolean类型9 ^0 U' N# |7 j B* F Q2 G& Y
类型 存储需求 bit数 取值范围 备注
% E4 j& T! \! n- s/ ?3 i* tboolean 1字节 1*8 false、true
. T E( P5 Q7 i- E" {% O
+ ?# d4 B1 C7 i' i
补充:Java有一个能够表示任意精度的算书包,通常称为“大数值”(big number)。虽然被称为大数值,但它并不是一种Java类型,而是一个Java对象。 如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigIntegerBigDecimal(Android SDK中也包含了java.math包以及这两个类)这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。具体的用法可以参见Java API。
( F% R4 Z j$ f) p2 ]# U! t& Q! G |