java数组cunzhi,java数组存储对象

发布时间:2022-11-23

本文目录一览:

  1. Java中数组对象的存储位置?
  2. java中数组的定义
  3. JAVA二维数组存储

Java中数组对象的存储位置?

原帖地址: 数组单一说在栈中还是堆中都是错误的,分为几种情况:

  1. 固定数组在函数体内分配是在栈中的 我们做一个试验,一般DELPHI程序线程的栈大小是1M,如果我们函数体中申请4M大小的数组,报栈溢出,则表示数据的大小是在栈中的。
const
CArrayCount = 1024*1024*4;
procedure TForm1.btnMainThreadClick(Sender: TObject);
var
MainThreadArray: array[1..CArrayCount] of Char;
i: Integer;
begin
for i := Low(MainThreadArray) to High(MainThreadArray) do
MainThreadArray[i] := #0;
end;

我把以上代码在主线程中测试时,确实报了栈溢出,如果这时你把DELPHI程序的栈调大为6M则正确,表示在函数体中申请的数组是在栈中的。 2. 固定数组在类中分配是在堆中的 我们在类中加一下定义语句

FFixArray: array[1..CArrayCount] of Char;

程序正常,表示在类中分配固定数组是在堆中的。 3. 固定数组全局变量是在堆中的 我们在程序定义全部数组

GFixArray: array[1..CArrayCount] of Char;

程序也正常,表示全局固定长度是在堆中的。 4. 动态数组不管在函数体中、类中、全局变量都是在堆中 如果你会汇编,看一下汇编就明白了。DELPHI这么实现是合理的,在函数里中分配的固定长度数组放在栈中可以加快运行效率,而且在多线程的情况下,不用像堆分配有加锁。只是大家在写程序的过程中注意在函数里定义太长的数组需要注意,否则栈溢出,程序就崩溃了。

java中数组的定义

数组的定义 语法有两种:

  • type arrayName[];
  • type[] arrayName; type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量。
/**
 * 数组的三种定义方法
 *
 * 1.数组类型[] 数组名=new 数组类型[数组长度];
 * 2.数组类型[] 数组名={数组0,数组1,数组2,数组3,....};
 * 3.数组类型[] 数组名=new 数组类型[]{数组0,数组1,数组2,...};
 */
public class WhatEver {
    public static void main(String[] args) {
        //第一种 例:
        String[] test1 = new String[6];
        test1[0] = "数组0";
        test1[1] = "数组1";
        //第二种 例:
        String[] test2 = {"数组0","数组1","数组2","...."};
        //第三种 例:
        String[] test3 = new String[]{"数组0","数组1","数组2","...."};
    }
}

Java数组是同一种类型数据的集合。其实数组就是一个容器。 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。 Java 语言中提供的数组是用来存储固定大小的同类型元素。 你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。

JAVA二维数组存储

不论怎么操作,数据都是要输入一遍的,不知道你说的操作简便是指程序步少还是什么的,不过50位数我建议你用字符串表存取吧,新建一个ArrayList String这样的容器,每一个String就是一个50位数。 那你就用字符串的split方法,选择空格符为分隔符号,然后存储