码迷,mamicode.com
首页 > 编程语言 > 详细

Java数据类型

时间:2017-08-25 01:15:27      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:3.4   位置   ffffff   查找   double   数据表示   对象   基本   char   

一、首先大概了解一下关于数据的内容或要点。

  1、程序在执行的过程中,需要对数据进行运算,也需要储存数据。这些数据可以是由使用者输入,也可以是从文件中取得的,也可以是从网络中获取的。

    在程序运行的过程中,这些数据通过变量储存在内存中,以便程序随时使用。

  2、若需要找到储存在内存中的数据,就需要将数据指定给变量,并命名,通过变量名(储存数据的内存空间)来找到相关数据。

  3、一个变量代表一个内存空间,数据就储存在这个空间中,然而由于数据在储存时需要的容量各不相同,不同的数据就必须要分配不同大小的内存空间来储存,因此,对不同的数据用不同的数据类型来区分。

  4、基本数据类型的数据所占的内存空间是固定的,在内存储存的是数值的本身,而引用数据类型存放的是指向该数据指向的地址,往往是由多种基本数据类型组成的,对引用数据类型的数据应用为对象的引用,所以也被称为复合数据类型。

二、Java的数据类型可以基本地分为8种基本数据类型和引用数据类型。

数据类型 关键字 占用字节数 默认数值 取值范围
逻辑型 boolean 1 false true;false
字节型 byte 1 0 -27~27-1
短整型 short 2 0 -215~215-1
整型 int 4 0 -231~231-1
长整型 long 8 0L -263~263-1
单精度浮点型 float 4 0.0f

负数范围:-3.4028235E+38~-1.4E-45

正数范围:1.4E-45~3.4028235E+38

双精度浮点型 double 8 0.0d

负数范围:-1.7976931348623157E+380~-4.9E-324

正数范围:4.9E-324~1.7976931348623157E+308

字符型 char 2 ‘\u0000‘ ‘\u0000‘~‘\uffff‘

 

三、讨论一下java中数据类型存储的位置

    基本数据类型存储位置,取决于基本类型在哪声明:
         1.基本数据类型在方法中声明时,其变量名和值都是存储在java栈中的;
               在方法中声明基本类型数据:
                    例: int  a = 10
                     ①  在栈中声明一个变量名为a的引用;
                     ②  在栈中查找是否有字面值为10的地址,如果没有就开辟一个存放字面值是10的地址;
                     ③  将变量名为a的引用指向字面值为10的地址;
 
         2.基本数据类型在类中声明时则是存储在堆内存中的;
                     ①  在类中声明的基本数据类型,在类加载时会存储到方法区中;
                     ②  在java堆中从生成代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口;
                     ③  static 关键字修饰的数据是属于类本身的,存储在方法区中;
                     ④  final 关键词修饰的数据表示引用不变的,存储在常量池中;
 
         3.基本数据类型的包装类:
                     ①  Integer i = 10; 同 i = 10 的声明过程。
                     ②  Integer i = new Integer(10);   数据10 是存储在堆中的;
  
引用数据类型一定输存储在堆中的吗?
        1. 特殊的String类
                   例 : String str = “abc”;
                   ①  在栈中声明一个变量名为str的引用;
                   ②  在常量池中查找是否有“abc”的字符串对象,如果没有就在常量池中创建存储一个值为“abc”的字符串对象;
                   ③  将str的引用指向字符串对象“abc”;
                   ④ 当 再次声明 String str1 = "abc",常量池中已经有“abc”对象,所以str1直接指向abc的地址;
                   ⑤ str = str1,引用数据类型比较,比较的是应用的地址;
            注: String str = “abc” 没有创建或创建一个对象
        2.其他引用类型
                  Stirng str = new String("abc");
                   ① 在栈中声明一个变量名为str的引用;
                   ② 在堆中创建存储一个字符串对象“abc”;
                   ③ 检查常量池中是否有字符串对象“abc”,如果没有就在常量池中创建存储一个值为“abc”的字符串对象;
                   ④ 将堆中字符串对象“abc”与常量池中字符串对象“abc”联系起来,可以用intern方法返回常量池中的对象的引用;
                   ④ 将str的引用指向堆中 字符串对象“abc”;
       注: String str = new String ("abc")创建一个或两个对象;

Java数据类型

标签:3.4   位置   ffffff   查找   double   数据表示   对象   基本   char   

原文地址:http://www.cnblogs.com/liangxiaojin/p/7425831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!