java中数据的基本类型分为: 基本数据类型和引用数据类型,对此不多介绍;
 
接下来讨论一下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数据类型(转)的更多相关文章

  1. 回顾java基础—Java数据类型

    1  java数据类型.8种基本类型,3种引用类型 基本类型(也称:原始类型):byte.short.int.long.char.float.double.boolean 引用类型:类,接口,数组 2 ...

  2. JAVA数据类型,变量,转换,常量,运算符

    java数据类型: Java基本类型共有八种,基本类型可以分为三类: 1.字符类型char,用单引号赋值 2.布尔类型boolean 3.数值类型byte.short.int.long.float.d ...

  3. 多态、GC、Java数据类型

    多态 一.java中实现多态的机制是什么? 靠的是: 父类定义的引用变量可以指向子类的实例对象,或者接口定义的引用变量可以指向具体实现类的实例对象 而程序调用的方法,在运行期才动态绑定, 它就是引用变 ...

  4. java数据类型定义与输出

    JAVA数据类型分基本数据类型和引用数据类型. 一.基本数据类型 Java里面包含8个基本数据类型,分别是: boolean.byte.char.short.int.float.douboe.long ...

  5. java数据类型图:

    java数据类型图:                                 ┏数值型━┳━整数型:byte short int long               ┏基本数据类型━━┫   ...

  6. java数据类型学习

    java数据类型基本分为两类: 一类为基本数据类型: 数值类型: 整数类型:byte.short.int.long 浮点类型:float.double 字符类型:char 布尔类型:boolean 一 ...

  7. JAVA —— 数据类型

    引言:java 数据类型可分为两大类:基本数据类型和引用类型,其中基本数据类型又包括整形.浮点型.字符型和布尔型,而引用型变量与基本类型变量不同,它的值是指向内存空间的引用(地址),引用在其他语言中称 ...

  8. java.sql.Types,数据库字段类型,java数据类型的对应关系

    以下转自:http://kummy.itpub.net/post/17165/172850 本文在原文基础上有增减. 本概述是从<JDBCTM Database Access from Java ...

  9. java数据类型,hibernate数据类型,标准sql数据类型之间的对应表

    Hibernate API简介 其接口分为以下几类: l         提供访问数据库的操作的接口: l         用于配置Hibernate的接口: l         回调接口 l     ...

  10. Java数据类型(基本数据类型)学习

    Java数据类型(基本数据类型)学习 与其他语言一样,Java编程同样存在,比如int a,float b等.在学习变量之前我就必须先了解Java的数据类型啦. Java的数据类型包括基本数据类型和引 ...

随机推荐

  1. ui设计的好网站(转载)

    设计师网址导航  http://hao.uisdc.com/ 站酷 国外: Dribbble - Show and tell for designers.Behance 这两个网站就够了啊 ————— ...

  2. SecureCRT保持连接,不会过一段时间关闭Session

    [Options]->[Global Options]->[General]->[Default Session]点击[Edit default settings]按钮,在[Term ...

  3. ASIHTTPRequest实现断点续传

    http://blog.csdn.net/daiyelang/article/category/1377418 ASIHTTPRequest可以实现断点续传.网上有一些介绍类似使用:   [reque ...

  4. 关于Android方法数量限制的问题

    限制Android方法数量的原因是: Android应用以DEX文件的形式存储字节码文件,在Dalvik字节码规范里,方法引用索引method referenceindex只有16位,即65536个. ...

  5. POJ2405-Beavergnaw

    Beavergnaw Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6204   Accepted: 4090 Descri ...

  6. linux网络管理之网络基础

    iso/osi模型 OSI七层框架每层作用 应用层:用户操作的层 表示层:二进制数据与显示数据之间的转换,也是加密的地方 会话层:确定网络传输还是本地存储,是邮件还是ppt等 传输层:确定tcp还是u ...

  7. 转:代码管理技巧——两步创建本地SVN服务器图文教程

    from: http://www.cnblogs.com/tianhonghui/archive/2012/07/22/2603454.html   当我们进行开发的时候,不论是独立开发还是处在团队中 ...

  8. 【设计模式】工厂方法(FactoryMethod)模式

    看不见PPT的请自行解决DNS污染问题. 相关类的代码: namespace FactoryPatternConsole.Model { public class Address { public s ...

  9. TCP/IP详解 卷一(第六章 ICMP:Internet控制报文协议)

    ICMP是(Internet Control Message Protocol)Internet控制报文协议. 用于在IP主机.路由器之间传递控制消息.控制消息是指网络通不通.主机是否可达.路由是否可 ...

  10. MySQL 函数笔记

    统计相关函数 COUNT和SUM函数使用小技巧 参考自: MySQL - Conditional COUNT with GROUP BY 在一个 SQL 中统计多个指标的个数: SELECT COUN ...