Java基础00-数组9
1. 数组定义格式
1.1 数组概述

1.2 什么是数组

1.3 数组定义格式
推荐使用第一种格式,因为第一种格式读法比较顺畅。

2. 数组初始化之动态初始化
2.1 数组初始化概述

2.2 数组初始化方式

2.3 动态初始化

代码实例和详细解释:

3. 数组元素访问
3.1 数组元素访问

代码示例:

直接输出数组名是不可以的,这样会输出出他的内存地址,想要输出数组中的值要按照序号输出,为什么是0那是因为我们还没有给数组赋值。

4. 内存分配
4.1 Java中的内存分配

int [] arr :在内存中会有一个区域专门用来存储它
new int [3] :在内存中也会有一个区域专门用来存储它,但是new 会为程序开辟内存空间,我们设置为3就会给我们开辟3个内存空间,并且添加默认值。

new int[3] 会赋值给 int [] arr,int [] arr 会指向 new int[3]。

这里的001并不是真实的内存地址

数组1和2类似于此

4.2 数组内存图(单个数组)
给数组中的元素赋值,输出的值就会改变。

运行结果图:

4.3 数组内存图(多个数组)

4.4 数组内存图(多个数组指向相同)




arr的值赋给了arr2

这样我们的两个数组就都指向了堆内存的相同地址,这就是(多个数组指向相同)。

因为两个堆内存地址是相同的所以arr2也可以修改值。

当两个数组指向同一个地址内存时,两个数组都是可以访问这个地址内存的,是通用的。

5. 数组初始化之静态初始化
5.1 数组初始化之静态初始化

推荐使用简化格式。

6. 数组操作的两个常见小问题
6.1 数组操作的两个常见小问题
1. 索引越界


2. 空指针异常
把null赋值给数组arr

把null赋给arr,arr就变为了空值,就会和堆内存地址断去关联。

如果我们再去访问原来的堆内存的话就还报错,因为它找不到。



7. 数组常见操作
7.1 遍历
按照原来的方法一个一个的输出太过麻烦,所以我们就用到了遍历。

可以看到每次输出索引都会加一,所以我们利用循环产生0-4。

for循环遍历

7.2 获取数组元素数量
如果数组的个数有很多,我们该怎么获取数组的元素个数那?

Java中的length,就可以获取数组的个数。



7.3 获取最值
此方法也叫打擂台方法,max与其他的值比较,赢了就继续站擂台,输了下去,让赢的站擂台,一直把所有的值都比较完。

代码示例:

输出:

Java基础00-数组9的更多相关文章
- Java基础-反转数组
/** java基础,如何将一个数组反转,思考方法采用使用临时变量的情况下,将第一个元素与第二个元素进行反转,需要定义两个索引,一个记录数组的第一个元素与最后一个元素,将其两两交换* */public ...
- Java基础(00)
Java发展史 Java之父:詹姆斯.高斯林(James Gosling). SUN(Stanford University Network 斯坦福大学网络公司)产物. 1995年5月23日,java ...
- Java基础之 数组详解
前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...
- java基础(十) 数组类型
1. 数组类简介 在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) { Class ...
- java 基础概念 -- 数组与内存控制
问题1: Java在声明数组的过程中,是怎样分配内存的? 在栈内存中 建一个数组变量,再在堆内存中 建一个 数组对象.至于详细的内存分配细节,还得看 该初始化是 数组动态初始化 还是 数组静态初始化. ...
- Java基础:数组的声明,循环,赋值,拷贝。
数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a真正的初始化为一个数组 ...
- Java基础(4)-数组
java数组 public class ArrayKnowledge { @SuppressWarnings("unused") public static void main(S ...
- Java基础总结--数组
---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容 ...
- java 基础知识-数组的7种算法(排序、求和、最值、遍历...)
遍历 遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如 double[] score = new double[5]; Scanner in ...
- Java基础之数组类型
对于Java,前面的一些基础概念不是很想写,看了看还是从数组开始写吧(毕竟数组是第一个引用类型,相对复杂一点),我也是学了JAVA不是很久,目前看完了JAVA的基础视频,还有JAVA疯狂讲义这本书的大 ...
随机推荐
- double类型数据有的时候null的判断
double不是Double,无法通过 == null来判断 如何进行double的null判断呢 double avg = avg.getValue() // 此时不会报错 // 通过如下进行判断 ...
- Tensor基础实践
Tensor基础实践 飞桨(PaddlePaddle,以下简称Paddle)和其他深度学习框架一样,使用Tensor来表示数据,在神经网络中传递的数据均为Tensor. Tensor可以将其理解为多维 ...
- 编译器架构Compiler Architecture(上)
编译器架构Compiler Architecture(上) 编译器是程序,通常是非常大的程序.它们几乎都有一个基于翻译分析综合模型的结构. CONTENTS Overview • Compiler C ...
- JUC 并发编程--12, 使用AtomicInteger 实现一把锁(排队自旋锁), 代码演示
前面 使用自旋锁实现了一把锁,(请看 第5篇) volatile 三大特性: 可见性, 不保证原子性, 禁止指令重排 为了解决 volatile不保证原子性的问题, 引入了原子类, AtomicInt ...
- 每天凌晨 2:00 将 mysql 数据库 testdb ,备份到文件中。
步骤:1, 首先编写一个 脚本 backupdb.sh#!/bin/bash #备份路径 BACKUP=/data/backup/sql/dy #当前时间 DATETIME=$(date +%Y-%m ...
- 关于MySQL索引面试题的六连炮!招架的住吗?
1.面试真题 MySQ索引的原理和数据结构能介绍一下吗? b+树和b-树有什么区别? MySQL聚簇索引和非聚簇索引的区别是什么? 他们分别是如何存储的? 使用MySQL索引都有哪些原则? MySQL ...
- SSM框架集成各配置文件
SSM框架集成各配置文件 Spring Spring MVC Mybatis 的整合SpringMVC相当于Spring的一个组件 本来就是一个家族的不存在整合的问题,所以主要就是Spring于Myb ...
- OO unit2 summary
Unit2 一.第一次作业 1.UML 2.Sequence Diagram 3.同步块设置与锁处理 采用了生产者-消费者模式,用共享对象来连接不同的线程. 第一次作业中,我有三个线程:Receive ...
- 安装nodejs版本模块报错notsup Unsupported platform for n
使用npm install -g n报错 如果出现npm ERR! notsup Unsupported platform for n@6.7.0: wanted {"os":&q ...
- 使⽤Swagger2构建强⼤的RESTful API⽂档
使⽤Swagger2构建强⼤的RESTful API⽂档 导语: 由于Spring Boot能够快速开发.便捷部署等特性,相信有很⼤⼀部分Spring Boot的⽤户会⽤来构建RESTful API. ...