Java Array数组使用详解
本文主要讲解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数组使用详解的更多相关文章
- JavaScript Array数组方法详解
Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表, ...
- java反射机制深入详解
java反射机制深入详解 转自:http://www.cnblogs.com/hxsyl/archive/2013/03/23/2977593.html 一.概念 反射就是把Java的各种成分映射成 ...
- java之AbstractStringBuilder类详解
目录 AbstractStringBuilder类 字段 构造器 方法 public abstract String toString() 扩充容量 void expandCapacity(in ...
- (转)java.util.Scanner应用详解
java.util.Scanner应用详解 java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java ...
- Java输出流FileOutputStream使用详解
Java输出流FileOutputStream使用详解 http://baijiahao.baidu.com/s?id=1600984799323133994&wfr=spider&f ...
- js数组方法详解
Array对象的方法-25个 /*js数组方法详解 */ /* * 1 concat() 用于连接多个数组或者值-------------- * 2 copyWithin() 方法用于从数组的指定位置 ...
- 【Java集合】LinkedList详解前篇
[Java集合]LinkedList详解前篇 一.背景 最近在看一本<Redis深度历险>的书籍,书中第二节讲了Redis的5种数据结构,其中看到redis的list结构时,作者提到red ...
- JavaScript数组方法详解
JavaScript数组方法详解 JavaScript中数组的方法种类众多,在ES3-ES7不同版本时期都有新方法:并且数组的方法还有原型方法和从object继承的方法,这里我们只介绍数组在每个版本中 ...
- java之Matcher类详解
在JDK 1.4中,Java增加了对正则表达式的支持. java与正则相关的工具主要在java.util.regex包中:此包中主要有两个类:Pattern.Matcher. Matcher 声明: ...
随机推荐
- LeetCode#232-Implement Queue using Stacks-用栈实现队列
一.题目 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部. pop() -- 从队列首部移除元素. peek() -- 返回队列首部的元素. empty() -- 返回队列 ...
- spring boot devtools热部署
问题1: Springloaded 在springboot2的maven的pom.xml 无法找到 解决方法:在idea通过View->Tool Windows->Maven Projec ...
- Topshelf+Quartz3.0基于控制台应用程序快速开发可调度windows服务
1.TopShelf TopShelf是一个开源的跨平台的宿主服务框架.可通过.Net Core/.Net Framwork控制台应用程序快速开发windows服务,更加便于服务调试. 本文基于.Ne ...
- shell编程之if语句
shell编程之if判断 目录 shell编程之if判断 1.整数比较 2.字符串比较 3.举例 1.数字比较 2.字符串比较 4.Other 1.整数比较 -eq 等于,如:if [ "$ ...
- VUE npm run dev 启动时,报了一大堆错误 Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 7.x
npm run dev 启动时,报了一大堆错误 Module build failed: Error: Missing binding E:\2017VocaSchool\vocationWeb\no ...
- 国际惯例,Hello World。
c语言: #include<stdio.h> int main() { printf("Hello World!\n"); ; } C++: #include<i ...
- hdu1728 逃离迷宫bfs
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1728/ 关于广度优先搜索的第一篇题解.广度优先搜索,就是状态树的层次遍历,一层一层的搜索,直到搜索到目标状态为止 ...
- 洛谷1541 乌鬼棋 dp入门
题目链接:https://www.luogu.com.cn/problem/P1541 给定一个序列和一个操作序列,操作序列中只有1234四个数字,表示可以前进的步数,初始在1处,操作最后一定会全部用 ...
- redis 一百二十篇(简单介绍)之第一篇
前言 总结自己的redis,日常使用不是特别频繁,所以比较基础. 开篇 redis 是无关系型数据库,因为其实内存数据库,所以常常和他的竞争对手memcached对比,因为两者原理基础相似,存储方式也 ...
- JSOI 2016 病毒感染 辅助Dp问题
原题链接:https://www.luogu.com.cn/problem/P5774 分析 直接看这道题,第一个困惑点,那个绝对值的比较是什么东西,根据数学知识,我们可以知道这个意思是k到i的距离小 ...