zoukankan      html  css  js  c++  java
  • JAVA数据类型(转)

     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")创建一个或两个对象;
  • 相关阅读:
    简述拦截器的工作原理?
    线程安全与非线程安全集合说一下,底层怎么实现的(hashmap,concurrenthashmap)
    表与表之间的关联关系
    手写9x9乘法表,冒泡排序
    主键和外键的区别
    为什么要使用连接池?
    AXI协议中的模棱两可的含义的解释(Cachable和Bufferable)
    ahb时序解析
    amba web
    Register Abstraction(9)
  • 原文地址:https://www.cnblogs.com/lip-blog/p/7421342.html
Copyright © 2011-2022 走看看