JAVA动态申请数组

1.java中就只能用new来申请内存。相对C++有个好处是省了delete操作,回收内存由JVM自动完成。
2.java中区分可变类与不可变类,这两种申请动态内存的方式不同。
3.java中静态数组定义时与申请动态内存一致。

不可变类(int,double,String)

不可变类除了这几个基本类型外,自己定义类也可以定义为不可变类需要加final修饰。具体见:不可变类的优点
不可变类在申请多维数组时不需要手动遍历其每一个元素申请空间,由java虚拟机自动完成。

申请一个大小为 n=10 的一维数组
int n = 10;
int[]a = new int[n];

申请一个大小为n * n的二维数组
int[][]a = new int[n][n];

申请一个大小为n * n * n的二维数组
int[][][]a = new int[10][10][10];

可变类

一般自己定义的类都是可变类。可变类数组申请内存时比较繁琐,需要遍历数组然后对其每一个元素都进行实例化。

申请一个大小为 n=10 的一维数组

import java.util.Scanner;
import java.util.Arrays;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = 10;My_class[] a = new My_class[n];for(int i=0;i<n;i++)a[i] = new My_class();/** 其他代码*/}
}
class My_class {int s;int t;
}

申请一个大小为n * n的二维数组

import java.util.Scanner;
import java.util.Arrays;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = 10;My_class[][] a = new My_class[n][n];for(int i=0;i<n;i++) {for(int j = 0;j<n;j++)a[i][j] = new My_class();}/** 其他代码*/}
}
class My_class {int s;int t;
}

申请三维数组也是一样的逻辑。

JAVA动态申请数组相关推荐

  1. C语言如何使用malloc动态申请数组

    前言 写这篇文章是因为在做C语言题目时,发现有时需要设立动态数组才能较好的解决问题,而我所用的vs2019却不支持直接设立,就比如 int n: int a[n]; 这是不被允许的,而且也会出现许多问 ...

  2. C++ 动态申请数组

    方法1.C++使用vector方便生成:  #include <iostream> #include <vector> #include <iomanip> usi ...

  3. Java动态初始化数组,元素默认值规则

    1.动态初始化数组: 定义数组的时候,只确定元素的类型和数组的长度,之后再存入具体数据. 2.动态初始化数组的基本原理: 当你赋值后,数组的默认值0,就会变成你赋的值. 3.数组的动态初始化格式: 格 ...

  4. Java 动态判断数组维数并取值

    一.背景 技术交流群里有同学提了一个看似基础但挺有意思的问题. 问题描述: 一个对象是一个未知的数组类型,可能是 short 二维数组,可能是 int 的三维数组等. 诉求: 想要遍历修改(获取)它的 ...

  5. 算法:动态申请数组(new)后将数组所有元素置零(初始化数组)的方法(炒鸡简单)(C++语言)

    int *arr = new int [n]();//最后的括号,全置零.for(int i = 0;i<n;i++){cout<<arr[i]<<" &quo ...

  6. C++二维数组动态申请内存

    好久没用C++刷题了,今天早上刷了几条题,感觉很陌生了.怪我,大二下实在太颓废了,没啥作为. 今天更新个关于c++二维数组内存申请的问题,当初作为菜鸟初学指针的时候,还是在这方面有点搞不通的.今天用到 ...

  7. C语言动态二维数组,结构体动态申请内存空间

    在C语言中,申请一般数组时,数组大小必须是常量.即使是赋了特定值的变量,也不行,比如:int n=3;int a[3];这样的做法是错误的,我们需要动态申请数组内存,如下申请一个动态整数(int)二维 ...

  8. C/C++动态开辟数组【C++:new/delete(推荐):int *arr = new int[m];】【C++:vector】【C:malloc() free()】

    一.C++的new/delete(推荐) 1.动态开辟一维数组 #include<iostream> #include<stdio.h>using namespace std; ...

  9. android7.1 动态申请权限改为默认授权,修改PackageManagerService.java下的grantPermissions为true

    系统默认情况下,如果需要访问external storage.audio record权限,需要动态申请,对话框举例如下: 如果不需要弹出此对话框来手动授予权限,而是默认授权,可修改framework ...

  10. 编写一个C程序,实现以下功能:动态申请长度为5的整数空间数组,用户输入5个整数;动态扩展数组空间为8,用户另外输入3个整数,最后输出扩展后的全部数组元素。

    DGUT最简单的题.没有之一,只要面向GOOGLE和百度编程就行. 在GOOGLE查询malloc和realloc. malloc:动态申请内存. realloc:动态更改(扩展)内存 代码如下 #d ...

最新文章

  1. 基于VLC的rtsp服务器linux平台搭建
  2. 自然语言处理NLP之文本摘要、机器翻译、OCR、信息检索、信息抽取、校对纠错
  3. UVA10340子序列
  4. 【AI基础】OpenCV,PIL,Skimage你pick谁
  5. visualSVN下载与安装
  6. jqurey操作radio总结
  7. yii mysql gii_Yii Gii使用
  8. ie浏览器收藏夹位置更改步骤
  9. 矩池云上编译安装dlib库
  10. java就业培训教程 笔记
  11. Wunderlist – 免费同步 Todo List
  12. 如何将HTML与win10桌面壁纸,Win10默认桌面背景怎么设置
  13. POJ - 3258 River Hopscotch 二分
  14. 【codeforces round#800 B. Paranoid String】DP
  15. 魂斗罗java代码素材和代码_魂斗罗素材
  16. 2021年度济南职工医保门统定点医疗机构名单
  17. 数据库连接池怎么用?
  18. 计算机整机制造业下滑,多因素导致全球PC出货量下滑 中国增速减缓
  19. 嵌入式 Linux 驱动开发你想知道的都在这
  20. 论文的参考文献,添加交叉引用,实现编号自动更新,及编号1无法自动更新问题解决方法!!!

热门文章

  1. my android机器人作文,机器人作文400字
  2. TextCNN(文本分类)
  3. C# TCP通讯大族激光打标机
  4. 白话区块链 之1: 为什么账本要这么记?
  5. oracle 建表 varchar,一个完整的Oracle建表的例子
  6. python 中文编码乱码问题原理分析及解决思路
  7. 黑苹果快捷键修改_小米air13.3安装黑苹果教程
  8. Smobiler错误记录
  9. linux升级显卡vbios,【系列教程】显卡VBIOS刷新教程
  10. 曼切斯特编码波特率和比特率的关系