hhy

机智的待奋斗小青年 :)

导航

Java 的四类八种基本类型

Java 为我们提供了四类八种基本数据类型,如下表所示:

 

Java 中八种基本数据类型
  基本类型 包装类 包含 大小 范围
类型名 默认值 类型名 默认值
逻辑型 boolean false Boolean  null true 或 false 1位  ~
字符型 char /uxxxx Character null Unicode 字符  16位  /u0000 ~ /uffff 
整型 byte  Byte null 有符号整数  8位  -127 ~ 127 
short  Short null 有符号整数  16位  -32768 ~ 32768
int  Integer null 有符号整数  32位  -214783648 ~ 214783648
long  Long null 有符号整数  64位  -9223372036854775808 ~ 9223372036854775808
浮点型 float  0.0 Float null IEEE符点  32位  +-1.4E-45 ~ +-3.4028235E+38
double  0.0 Double null IEEE符点  64位  +-4.9E-324 ~ +-1.7976931348623157E+308

这里有几个要注意的地方:

1、除了这八种基本数据类型,其他的类型都是引用类型。基本数据类型是在栈中直接分配内存,而引用类型是数据的引用在栈中,但它的对象在堆中。要想学好 Java ,必须知道各种数据在内存中的存储位置,对内存有了很好的了解,可以有助你更好地分析程序。

  引用类型和原始类型的行为完全不同,并且它们具有不同的语义。

  引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。

  对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

int a= 5;//对于a你只能用来做计算,比如加减乘除
Integer b = 5;//b你可以用来做很多事情,因为他是一个对象,他有很多方法,你可以像使用String对象那样使用它。

2、Java 中默认的整数类型是 int 类型,如果要定义为 float 型,则要在数值后加上 l 或 L;

     默认的浮点型也是双精度浮点,如果要定义为 float 型,则要在数值后加上 f 或 F。

3、基本数据的自动转换,小可转大,大转小会失去精度!

  byte -> short, char -> int -> long

  int -> float -> double

  long -> double

4、一个字节(Bytes)等于8位,

  一个字节等于256个数,就是-128到127一共256。1字节(Bytes) = 8比特(Bit)。

  一个英文字母或一个阿拉伯数字就是一个字符,占用一个字节。

  一个汉字就是两个字符,占用两个字节。

  一般讲大小是用 Bytes,大写的“B”,讲网络速率是用 bit,注意是小写的“b”。 
  例:一个文件有8MBytes 
  例:我下载文件的速率是256KB/s,即2Mbit,这通常就是我们宽带上网的速率。

 

我们在平时或面试时会遇到的一些问题

1、int 与 Integer:

Integer 与 int 解惑:1、Integer 是一个类,用 Integer 声明一个变量其是一个对象类型(或者说引用类型);int 是基本类型,用 int 声明的变量是非对象类型,即不能在其上调用方法。
          2、“==”作用于对象上的时候,其比较的是对象的引用本身的值(或者说对象的地址更容易理解),而作用于基本类型的时候比较的就是基本类型的值。

关于Integer的自动缓存大小:1、Integer 自动装箱的缓存大小问题。

 

 

 

 

 

posted on 2013-10-30 15:25  彭号Howie  阅读(859)  评论(0编辑  收藏  举报