本文主要讲解java中array数组使用,包含堆、栈内存分配及区别

1.动态初始化

package myArray;
/*
* 堆:存储的是new出来的东西,实体,对象
* A 每个对象都有地址值
* B 每个对象的数据都有默认值
* byte,short,int,long 0
* float,double 0.0
* char '\u0000'
* boolean false
* 引用类型 null
* C 使用完毕会在垃圾回收站空闲时被回收
*

* 动态初始化:
* 数据类型[] 数组名 = new 数据类型[数组长度];

* */
public class ArrayTest {
public static void main(String[] args) {
int[] arr = new int[3];//指定数组长度
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println("------------"); arr[0] = 100;
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}

打印结果

2.静态初始化

package myArray;
/*
* 静态初始化的格式:
* 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,...};
*
* 举例:
* int[] arr = new int[]{1,2,3};
*
* 简化格式:
* 数据类型[] 数组名 = {元素1,元素2,元素3,...};
* int[] arr = {1,2,3};
*/
public class ArrayJingTaiChuShiHua {
public static void main(String[] args) {
int[] arr = {,,,};
System.out.println(arr[]);
}
}

结果如下

java中内存分配图

一些名词解释
数组:存储同一种数据类型的多个元素的容器。
数组初始化:
A:所谓的初始化,就是为数组开辟内存空间,并为数组中的每个元素赋予初始值
B:我们有两种方式可以实现数组的初始化
a:动态初始化 只给出长度,由系统给出初始化值
b:静态初始化 给出初始化值,由系统决定长度
//输出数组名
// System.out.println("arr:"+arr); //[I@104c575
//我们获取数组的地址值是没有意义的,我要的是数组中的元素值,该怎么办呢?
//不用担心,Java已经帮你想好了这个问题
//其实数组中的每个元素都是有编号的,编号从0开始,最大的编号是n-1
//通过数组名和编号的配合使用我们就可以获取指定编号的元素值
//这个编号的专业叫法:索引
//访问格式:数组名[索引]

Java Array数组使用详解的更多相关文章

  1. JavaScript Array数组方法详解

    Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表, ...

  2. java反射机制深入详解

    java反射机制深入详解  转自:http://www.cnblogs.com/hxsyl/archive/2013/03/23/2977593.html 一.概念 反射就是把Java的各种成分映射成 ...

  3. java之AbstractStringBuilder类详解

    目录 AbstractStringBuilder类 字段 构造器 方法   public abstract String toString() 扩充容量 void  expandCapacity(in ...

  4. (转)java.util.Scanner应用详解

    java.util.Scanner应用详解   java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java ...

  5. Java输出流FileOutputStream使用详解

    Java输出流FileOutputStream使用详解 http://baijiahao.baidu.com/s?id=1600984799323133994&wfr=spider&f ...

  6. js数组方法详解

    Array对象的方法-25个 /*js数组方法详解 */ /* * 1 concat() 用于连接多个数组或者值-------------- * 2 copyWithin() 方法用于从数组的指定位置 ...

  7. 【Java集合】LinkedList详解前篇

    [Java集合]LinkedList详解前篇 一.背景 最近在看一本<Redis深度历险>的书籍,书中第二节讲了Redis的5种数据结构,其中看到redis的list结构时,作者提到red ...

  8. JavaScript数组方法详解

    JavaScript数组方法详解 JavaScript中数组的方法种类众多,在ES3-ES7不同版本时期都有新方法:并且数组的方法还有原型方法和从object继承的方法,这里我们只介绍数组在每个版本中 ...

  9. java之Matcher类详解

    在JDK 1.4中,Java增加了对正则表达式的支持. java与正则相关的工具主要在java.util.regex包中:此包中主要有两个类:Pattern.Matcher. Matcher  声明: ...

随机推荐

  1. Xamarine ContentPage.ToolbarItems 未显示/不显示在界面

    将页面封装到NavigationPage中.在App.xaml.cs的构造函数中 将 MainPage = new MainPage(); 替换为 MainPage = new NavigationP ...

  2. H5新特性之语义化标签

    一.为什么要增加新的语义化标签 在HTML 5出来之前,我们用div来表示章节,但是这些div都没有实际意义,这样的布局方式使我们的结构不够清晰,于是语义化标签应运而生. 二.何为语义化标签 顾名思义 ...

  3. HTML每日学习笔记(0)

    2019.7.14 1.属性为 HTML 元素提供附加信息,总是在 HTML 元素的开始标签中规定. 例子:<h1 align="center"> 对齐方式 <b ...

  4. PyCharm导入selenium的webdirver模块出错

    selenium安装好后准备验证一下,导入的webdriver有红色标识,检查了浏览器驱动的.环境变量仍然没有解决问题. 后来在百度找到了原因:项目没安装selenium Interpreter 打开 ...

  5. c++动态内存知识总结与疑问

    书名  BOOK TITLE <Primer c++  第5版> 基本信息 BASICS 阅读进度:第12章动态内存 阅读心得 LEARNINGS 在c++中,我知道的有静态内存.栈内存. ...

  6. Hive架构原理

    什么是Hive Hive是由Facebook开源用于解决海量结构化日志的数据统计:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射 成一张表,并提供类SQL查询功能,底层计算引 ...

  7. 5L-链表导论心法

    链表是比数组稍微复杂一点的数据结构,也是两个非常重要与基本的数据结构.如果说数组是纪律严明排列整齐的「正规军」那么链表就是灵活多变的「地下党」. 关注公众号 MageByte,有你想要的精彩内容. 链 ...

  8. ASP.NET Core Authentication and Authorization

    最近把一个Asp .net core 2.0的项目迁移到Asp .net core 3.1,项目启动的时候直接报错: InvalidOperationException: Endpoint CoreA ...

  9. JavaScript 趣味题。

    第一题: const Greeters = [] for (var i = 0 ; i < 10 ; i++) { Greeters.push(function () { return cons ...

  10. nginx使用手册+基本原理+优缺点

    一.nginx优点 1.反向代理 1.正向代理: 客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原 ...