数组的定义

数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照 一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。数组的三个基本特点:

1,长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

2,其元素必须是相同类型,不允许出现混合类型。

3,数组类型可以是任何数据类型,包括基本数据类型和引用类型。

注: 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中存  储的。

数组的声明:

数组的声明方式有两种(以一维数组为例)

type[]  array_name;//(推荐使用这种方式)

type array_name[];

注意:

1,声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。

2,声明一个数组的时候并没有数组真正被创建。

3,构造一个数组,必须指定长度。

创建一维数组

/*** 声明并创建一个一维数组*/

int [] array = null;//声明一个一维数组

array= new int[10];//创建一维数组,并给定数组长度为10

for(int i=0;i

array[i]= (int)(Math.random()*10) + 1;

}//for each循环遍历数组

for (inti : array) {

System.out.print(i+ " ");

}

关于上面代码的内存分配图:

当程序被加载后,程序先进入main方法中,在栈内存中创建一个int类型的数组的引用名为s值为null(int s = null;)。接着在堆内存中创建一个长度为10的数组对象,同时将该对象的引用地址赋给栈内存中的s(s = new int[10])。最后根据数组的下标在数组中的每一个下标处赋值。

//声明引用数据类型的数组

Man [] mans;//为引用数据类型的数组指定长度

mans= new Man[10];//创建对象

Man man1= new Man(1, 12);

Man man2= new Man(2, 22);//给引用类型数组赋值

mans[0] =man1;

mans[1] = man2;

上面代码的内存图:

初始化

数组的初始化方式总共有三种:静态初始化,动态初始化,默认初始化。

1, 静态初始化

除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。

/*** 静态初始化数组*/

int [] array = {1,3,5,6};//静态初始化基本数据类型数组

Man[] man= {new Man(1, 12),new Man(2, 13)};//静态初始化引用数据类型数组

2,动态初始化

数组定义与为数组元素分配空间并赋值的操作分开进行。

/*** 动态初始化数组*/

int [] a1 = new int[2];//动态初始化数组,先分配空间

a1[0] = 1;//给数组元素赋值

a1[1] = 2;

3, 数组的默认初始化

数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

int a2[] = new int[2]; //默认值:0,0

boolean[] b = new boolean[2]; //默认值:false,false

String[] s= new String[2]; //默认值:null, null

数组的遍历方式,可以通过for循环或者for each循环的方式

/*** 声明并创建一个一维数组*/

int [] s = null;//声明一个一维数组

s = new int[10];//创建一维数组,并给定数组长度为10

for(int i=0;i

s[i] = 2*i + 1;

}//使用for循环遍历数组

for (int i = 0; i < s.length; i++) {

System.out.print(s[i]+ " ");

}//for each循环遍历数组

for (inti : s) {

System.out.print(i+ " ");

}

java mp3数组_Java基础之数组(一)相关推荐

  1. java实现初始化三角形数组_Java基础之数组初始化和数组JVM分析

    什么是数组 所谓数组,是具有相同数据类型的若干变量或者数据按照一定排序规则组合起来的一种数据存储格式.数组中的数据称为数组元素,我们使用索引来标识数组元素在数组中的存储位置,索引从0开始,步长是1,其 ...

  2. java web定义数组_Java基础之数组--数组常用操作

    3.2一维数组 3.2.1声明数组 数组类型[] 数组名称:int[] username; 或者 数组类型 数组名称[];int username[]; 3.2.2初始化一维数组 一维数组初始化有两种 ...

  3. java 一维数组_java基础 ---- 一维数组

    为什么要使用数组: 因为不使用数组计算多个变量的时候太繁琐,不利于数据的处理. --------   数组也是一个变量,是存储一组相同类型的变量 声明一个变量就是在内存中划出一块合适的空间 声明一个数 ...

  4. java基础题数组_java基础学习——数组笔试题

    1.求2到1000的质数,且每输出十个进行换行? 2.使用两种方式,使数组的初始化为4. 3.查询书组中的最小值,并将书组扩容为新的数组. 答案: 1.代码块:package Test; public ...

  5. java input 数组_Java基础之:数组

    Java基础之:数组 一组相同数据类型的数据,我们即称之为 数组,数组也是一种数据类型. 需要注意的是 , 数组和String 字符串 相同,也是引用类型的. 数组的初始化 方式一:动态初始化 四种格 ...

  6. java返回特定下标元素_java基础--输出数组中指定元素的下标

    java基础--输出数组中指定元素的下标 java基础--输出数组中指定元素的下标 package com.lcn.day05; public class ArrayDemo8 { /** * 输出数 ...

  7. java中两个doub组成一个数组_Java基础知识2-Java基本语法

    数据类型 1.Java程序的基本组成 关键字:被Java语言赋予特定含义的单词,不能作标识符,如private. 标识符:由数字.字母.$和_组成的字符串,用于引用变量.且首字母不能是数字. 变量:程 ...

  8. java枚举类型数组_Java基础(七)泛型数组列表ArrayList与枚举类Enum

    一.泛型数组列表ArrayList 1.在Java中,ArrayList类可以解决运行时动态更改数组的问题.ArrayList使用起来有点像数组,但是在添加或删除元素时,具有自动调节数组容量的功能,而 ...

  9. java数组键_Java基础之数组

    数组 数组就是用于存储相同数据类型数据的一个容器.可以通过有规律的索引来访问没有规律的元素. 一维数组 定义格式:元素的数据类型[ ] 数组名称 = new 元素的数据类型 [ 数组容器大小 ]: 数 ...

最新文章

  1. 怎么判断几行_日语高考作文该怎么写,和汉语作文一样吗?
  2. 特斯拉「断网」致500名车主被锁车外,最长5小时,网友:有些东西就不该经过网络...
  3. [原创].图解一招搞定UCWEB@Nokia S60v5无法在博客园手机版发闪存的问题
  4. 基于Continuous Conditional Neural Fields for Structured Regression的人脸特征点检测和头部姿态估计
  5. 2020年电赛题目,命题专家权威解析!
  6. 解决 WPF 绑定集合后数据变动界面却不更新的问题(使用 ObservableCollection)
  7. Android面试收集录4 Fragment详解
  8. python import出错_python – ImportError:无法导入名称’app’
  9. 4. laravel 路由(1)
  10. 速达服务器应用程序错误,速达软件错误集锦及解决方法
  11. CodeSmith简单示例
  12. 在HBuilderX上面新建微信小程序项目
  13. 亚马逊运营教程,三招学会亚马逊
  14. linux桌面管理器lightdm,linux lightdm gdm gnome kde等的区别于联系(桌面环境 窗口管理器 显示管理器)...
  15. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  16. 贝叶斯算法 — 朴素贝叶斯分类器— 过滤垃圾邮件 — 流失用户 — 用户画像
  17. 微信小程序之----页面之间相互传递数据
  18. 在vs中char类型的实参与LPCWSTR类型的形参类型不兼容怎么解决?
  19. Eclypse-Z7 + Zmod ADC 1410 基础环境搭建(SDK部分)
  20. linux修改vlan子接口mac地址,macvlan虚拟接口

热门文章

  1. UI5_INFO_FETCH_FROM_DB
  2. SAP OData:callbackend entry point - iwfndcl_mgw_request_manager~read_entity
  3. 打印user在指定时间段内做过的personalization detail
  4. Uncaught TypeError: object is not a function
  5. facebook private消息的API回复
  6. IBASE header change - read access sequence
  7. @Resource注解研究和在SAP Hybris ECP中的应用
  8. SAP CRM和Cloud for Customer的Account merge
  9. Java Web项目,Android和微信小程序的初始页面配置
  10. c语言数组与指针的基础知识,C语言学习笔记之数组与指针的关系