zoukankan      html  css  js  c++  java
  • java数组与内存的控制(1)

      看了本文,你将知道一下的知识:

        1.java数组的静态特性与初始化java数组的两种方式

        2.数组变量与数组对象的区别

        

    一、java数组是静态的

      1.java语言是典型的静态语言,因此java的数组时静态的,即是当数组初始化完成后,该数组的长度是不能改变的。java中的数组必须经过初始化才可以使用。所谓的初始化,就是为数组对象的元素分配内存空间,并为每一个数组元素给予初始值。初始化数组的有两种方式。一种是静态初始化,如下:

    1 public class Test {
    2 
    3     public static void main(String[] args) {
    4         
    5         int a[]={1,2,3};
    6         
    7     }
    8     
    9 }

    像这种程序员显示的指定每个数组元素的初始值,有系统决定长度的方式就是静态初始化数组。

    而第二种是动态初始化,如下:

    1 public class Test {
    2 
    3     public static void main(String[] args) {
    4         
    5         int a[]=new int[8];
    6         
    7     }
    8     
    9 }

    像这种初始化有程序员指定长度,由系统为每一个元素分配初始值的方式就是动态初始化数组。

    不论是哪种方式初始化数组,那数组的长度就不可改变。由于java中的数组时静态的,所以数组初始化完成后,内存分配空间也就完成了。我们只能改变数组元素中的值而不能改变数组的长度。需要注意的是,java数组的变量本身就是一种引用类型的变量,数组变量并不是数组的本身,而是由它指向堆内存中的对象。

    二、数组变量与数组对象的区别

      数组变量只是一个引用变量,通常存放在栈内存中,而数组对象就是保存在堆内存中连续内存空间。对数组的初始化其实并不是对数组变量的初始化,而是对数组对象的初始化...0.0

      所有的局部变量都是放在栈内存中保存的,不论是什么类型的变量,但引用类型的变量所引用的对象是存放在堆内存之中。

  • 相关阅读:
    Solaris 10 10/09发布
    MySQL数据库下损坏数据的恢复操作其过程总结
    [.net自定义控件]ComboBox控件重写 之ComboBoxEx
    Qt之正则表达式 QRegExp
    JavaScript中的JSON
    visual studio2008 OpenGL开发配置
    在母版页中使用UpdatePanel
    ASHX中使用Session
    ASP.NET(c#)实现中英文域名查询
    主打小巧快速Puppy Linux 4.3.1正式版发布
  • 原文地址:https://www.cnblogs.com/huzi007/p/2715908.html
Copyright © 2011-2022 走看看