一、基本数据类型共8种:(byte  \short  \int  \long  \float  \double  \char  \boolean)

              类型   占用存储空间      可表示整数的范围

     整数类型:        byte:    8位 (1字节)            范围:-128~127  (十进制)(byte用于表示最小数据,如文件数据)

    /          short:  16位(2字节)      范围:-32768 ~ 32767

    /     (常用)  int:    32位(4字节)      范围:-2^31-1~2^31

1、数值型:          long:   64位(8字节)       范围:-2^64-1~2^3164

         \

     \         类型    占用存储空间    后缀

    浮点类型:      float    32位(4字节)   后缀 F 或 f      

                  double   64位(8字节)   后缀 D 或 d

               注意:赋值带小数点的小数要加后缀:float f=1.3f; (一般程序float就够用,double很少用到,几乎不用)

 

              类型    占用存储空间

2、字符型:        char    16位(2字节)  

             注:java 字符采用unicode编码,无论英文中文,都占2字节。用单引号表示:char c='哈' ; 

 

3、布尔型:       boolean  8位(1字节)

             boolean只允许赋值 true 或 false (可以是表示true或false的String对象,但不能像语言C那样用整数表示)

参考:1、http://www.cnblogs.com/simplefrog/archive/2012/07/15/2592011.html

   

 

二、引用数据类型:(类:Class        /       接口:interface  /  数组 )

 --------------------------------- 通过对比来了解引用数据类型与基本数据类型--------------------------------------------------

             

  基本数据类型和引用数据类型的区别和联系:

  1、从概念方面来说

  基本数据类型:变量名指向具体的数值 
  引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值

  

  2、从内存构建方面来说

  基本数据类型:变量在声明之后java就会立刻分配给他内存空间

  引用数据类型:它以特殊的方式(类似C指针)指向对象实体(具体的值),这类变量 声明时 不会分配内存,只是存储了一个内存地址。

  

  3、从赋值方面来说

  基本数据类型:使用时需要赋具体值,b = a;是把a的值传给b,存在b的内存空间内。该判断时使用“==”号

  引用数据类型:使用时可以赋null,判断时使用equals方法,b = a;是把a的数据的地址传给b,即a和b都存储的是一个地址,这个地址指向实际的数据。(与C++中的指针类似)

 

参考:http://blog.csdn.net/ahafg/article/details/51159919

 

三、基本数据和引用数据的存储

 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方,栈在cpu的cahe中,堆在内存中。

 

基本数据类型声明时只占用   CPU 的栈(或称堆栈;stack) 中 的内存,

引用数据类型声明时占用栈内存和堆内存,但不分配内存,知识存储了一个内存地址。 

 

---------------------------------------------------------------------------------------------------------------------------

关于更多   java数据存储  的传送门:

1、http://blog.csdn.net/aaa1117a8w5s6d/article/details/8251456

2、http://blog.csdn.net/qq_26805137/article/details/52996910

3、http://www.cnblogs.com/mengyan/archive/2012/08/16/2642514.html