Java学习之路(三):Java中的数组

数组的概述和定义的格式

数组的作用:

  • 用来存储同种数据类型的多个值

数组的基本概念:

  • 数组是存储同一种数据类型多个元素的集合。就相当于一个容器。

注意:数组既可以存储基本数据类型,也可以存储引用数据类型。

数组的定义格式:

  • 数据类型[] 数组名 = new 数据类型[指定数组的长度]

数组的初始化

概念:

  就是为数组开辟连续的内存空间,并且为每个数的元素赋值

如何初始化:

  • 动态初始化:指定长度,有系统给出初始化值  int[] arr = new int[5]
  • 静态初始化:给出初始化的值
    • 格式:数据类型[] 数组名 = new 数据类型[数组长度]

如果打印一个数组的话,你会发现很好玩的事情

int[] arr = new int[5];
System.out.println(arr)
//结果:【[email protected]一个十六进制的内存地址

[[email protected]的解释:

  • 【代表是一个数组,有几个就代表是几维的
  • I代表的是int类型
  • @一个固定的写法
  • 那一串的十六进制数字则是数组所在的内存地址

数组的赋值和取值

数组是通过下标、索引进行赋值和取值的

当我们使用动态初始化时,系统会默认的给出一个默认值:

  • 整数类型:bytes,short,int,long默认的初始化的数值为0
  • 浮点类型:float,double的默认初始化值都是0.0
  • 布尔类型:boolean默认的初始化值为false

Java中内存的分配

在Java中,我们将内存分为了5个部分:

  • 栈:存储局部变量的部分
  • 堆:存储new出来的对象的部分
  • 方法区:类中的方法,想要调用一个方法的前提就是方法要在方法区
  • 本地方法区:?
  • 寄存器:给CPU使用的

我们去创建一个数组:

int[] arr = new int[5]

其实计算机的内部会把arr这个变量名放在栈区,new int[5]放在堆区,在堆区中开辟了5个连续的空间,默认的int为0

当我们将arr重新赋值给一个新的变量的时候,其实只是把他的内存地址又给了新的变量

数组的静态初始化

 动态初始化: int[] arr = new int[5]

静态初始化:

格式:数据类型[] 数组名 = new 数据类型[]{元素......}

简化:数据类型[] 数组名 = {元素....}

数组的遍历

这要是在Python,分分钟,一个for,啥条件都不用

Java中:

  数组的最大索引:array.length-1

//java中for循环数组

int[] arr = new int[5];

for(int i=0;i<=arr.length-1;i++){
    System.out.println(arr[i]);
}

二维数组的概述和定义

定义:

  • 本质上是以数组作为数组元素的数组,即“数组的数组”

二维数组的格式:

  • 数据类型[][] 数组名 = new 数据类型[m][n]
  • 数据类型 数组名[][] = new 数据类型[m][n]
  • 数据类型[] 数组名[] = new 数据类型[m][n]

数组的声明:

  int[][] arr = {{1,2},{3,4}}

补充:

  • 基本数据类型的值传递,不改变原值,因为调用后就会弹栈,局部变量会随之消失
  • 引用数据类型的值传递,改变原值,因为即使方法弹栈,但是堆内的数组还在,可以继续通过地址继续访问
1.Java中的数组到时是传值还是传地址?

未完待续........

原文地址:https://www.cnblogs.com/smiling-crying/p/9295990.html

时间: 2024-12-14 10:31:42

Java学习之路(三):Java中的数组的相关文章

JAVA学习之路三 编程英文汇总学习

JAVA学习中的每个章节中都有许多英文,不断熟悉工作英语也是提高编程能力很重要的一块,对于IT行业,英语才是通用语. 记在<JAVA语言程序设计>学习的第一章英文学习之后 .class file(.class文件)                       javac command(javac命令)          .java file(.java文件)            java Development Toolkit(JDK,java开发工具包)          assembl

Java学习之路(一) —— Java命名规范

Package 的命名 Package 的名字应该都是由一个小写单词组成. Class 的命名 Class 的名字必须由大写字母开头而其他字母都小写的单词组成 Class 变量的命名 变量的名字必须用一个小写字母开头.后面的单词用大写字母开头. Static Final 变量的命名 Static Final 变量的名字应该都大写,并且指出完整含义. 参数的命名 参数的名字必须和变量的命名规范一致. 数组的命名 数组应该总是用下面的方式来命名: byte[] buffer; 而不是: byte b

java学习之路之java核心技术 1.1

第一本学习的书就选它了,java核心技术(第9卷)卷1,先要打牢基础,文笔不怎么好,就写写读书心得什么的,为了能及时写出想法,打算读一节写一节,怕忘了.下面开始. 这章大概介绍了下java,摘一句,常常希望有一种语言,它具有令人赏心悦目的语法和易于理解的语义,java恰恰满足了这些要求.

java学习之路之java核心技术 3.3

唉前面都跳过了,一看纯文字描述就头疼. 这节是讲的关于java的数据类型,共有八大基本类型,其中int,short,long,byte这四个是整形的,就是纯数字,大小分别是4,2,8,1字节,一个字节由8个01组成,最高位是符号位,0代表是整数,1代表是负数,比如byte的范围在-128到127.剩下的自己算吧,我也不知道了. 浮点类型有float单精度和double双精度,分别是4字节和8字节. char类型表示单个字符,占两个字节,它的值对应unicode编码的值.比如判断某个字符串哪些有汉

黑马程序员 【】java学习之路——TCP(三)客户端上传文件到服务器

------- <a href="http://www.itheima.com" target="blank">android培训</a>.<a href="http://www.itheima.com" target="blank">java培训</a>.期待与您交流! ---------- import java.io.*; import java.net.*; class

java学习笔记(三)java中的修饰符abstract、static与final

一.四种访问级别的访问范围 访问级别 访问修饰符 同类 同包 子类 不同的包 公开 public 受保护 protected 默认 没有访问修饰符 私有的 private 二.使用abstract修饰符需要遵守的语法规则 1.抽象类中可以没有抽象方法,但是包含抽象方法的类必须定义为抽象类,即用abstract修饰: 2.抽象类跟抽象方法不能被final修饰符修饰: 3.抽象类中可以有非抽象方法,因为继承抽象类的子类必须重写父类中所有的抽象方法,因此抽象类中不能有抽象构造方法和抽象静态方法: 4.

java学习之路之javaSE基础1

<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用举例 * 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备.由硬件和软件所组成,没有安装任何软件的计算机称为裸机.常见的形式有台式计算机.笔记本计算机.大型计算机等. * 应用举例 * 1:科学计算 * 2.数据处理 * 3.自动控制 *

Java学习之路(二)--Thinking in Java

针对昨天Java学习之路(一)--Thinking in Java中的类的静态方法不能访问创建非静态类,给出了将内部类修改成为static静态类,操作方便简单.现在给出第二种不需要添加删除的另一种极为高效的方式.可以将内部类从你所创建的类中复制粘贴到类外,作为一个外部类,在static主方法中就可以创建类的引用了. 源代码如下: ? class test{ int s; char c; } public class test1 { public static class test{ int s;

Java学习之路:1、HelloWorld

似乎每种语言都是从HelloWorld开始的,所以,我的第一个java程序,也应该是这样开始的! 1.配置好jdk后,开始编写HelloWorld.java package second;//这个应该在我的理解就相当于php的命名空间 public class HelloWorld {//如同php中的声明一个类,不过php是不需要加public这样的类型修饰符 public static void main(String[] args){//声明一个方法,不过不懂的是为什么一定要static: