博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础入门(四)
阅读量:4249 次
发布时间:2019-05-26

本文共 1470 字,大约阅读时间需要 4 分钟。

Java基础入门(四)

1. 数组的定义格式

1.1 数组的概述

- 数组:是引用数据类型的一种,是一个容器,可以存储同种数据类型的多个数据- 数组可以存储的数据类型有基本数据类型(4类8种),也可以存储引用数据类型(字符串String,自定义类型Person)- 数组的长度是固定的,不能改变

1.2 数组的定义格式

数组的定义分为动态初始化和静态初始化两种格式:

  1. 动态初始化创建数组:指定数组的长度,数组中有默认初始化值
创建一个长度为3的int类型的数组,int类型的默认值为0int[] arr1 = new int[3];//{0,0,0}
  1. 静态初始化创建数组:在创建数组的时候,给数组赋指定的初始值
创建一个int类型的数组,给数组赋值1,2,3,4,5int[] arr3 = new int[]{
1,2,3,4,5};

静态初始化还可以简写,简写格式为:

int[] arr5 = {
1,2,3,4,5};

1.3 数组的使用格式

可以通过数组名和相应的索引来使用数组中的数组值(元素):

  1. 取出数组中的值直接输出或者赋值给另一个同类型的变量
直接输出值 System.out.println(arr[0]); 把值赋值给一个变量 String s1 = arr[1];
  1. 通过数组的length属性获取数组的长度,一般用来遍历数组
System.out.println(arr.length);

1.4 数组的遍历

数组遍历(遍历数组):依次打印数组中的元素,这是数组非常重要的操作.

使用循环来遍历数组:循环的作用就是依次获取数组的索引 [0,arr.length-1]for (int i=0; i

1.5 数组操作的常见问题

  1. 定义错误:
动态初始化定义数组,必须指定长度 int[] arr = new int[];//错误 静态初始化,不能写长度 int[] arr = new int[3]{
10,20,30,40};//错误
  1. 索引越界异常: 使用索引值超出了索引的范围,就会抛出索引越界异常
ArrayIndexOutOfBoundsException: 3 int[] arr = new int[3] System.out.println(arr[3])
  1. 空指针异常:给数组变量赋了一个值null(空),那么对象就不存在了,再使用数组时,就会抛出空指针异常.
NullPointerExceptionarr = null;System.out.println(arr[0]);

2. 数组的内存图解

在了解数组在内存的运行情况之前,我们首先要了解JVM在内存中是怎样运行运行的.

2.1 初识JVM运行时内存的占用情况

JVM在内存中运行时分为4个区:

  • 栈空间: 任何方法被执行时,都会在"栈"开辟空间,包括main方法,方法中的代码也都在这里执行,方法中的变量存储的都是局部变量,在出了变量的作用域,就会在内存中消失;
  • 堆空间:存储new关键字创建的"对象"空间
    – 每个堆内存中的对象都有一个十六进制的地址值
    – 我们可以使用这个地址值,来找到这个对象
    – 堆内存中存储数据都有默认初始化值
  • 方法区:加载运行后的.class文件
  • 寄存器:存储即将交给CPU执行的指令
  • 本地方法区:存储native修饰的方法
    在这里插入图片描述

3 数组的常见操作

  • 挑选元素中符合条件的个数
  • 数组中元素求和
  • 数组中元素求平均值
  • 求数组中元素的最大值(最小值)
  • 统计符合条件元素的个数
  • 从控制台接收多个数据
  • 随机数填充数组

转载地址:http://kdwei.baihongyu.com/

你可能感兴趣的文章
Linux启动Tomcat服务
查看>>
文件下载问题
查看>>
ASP.NET返回上一页的方法小集
查看>>
神经网络中 BP 算法的原理与 Python 实现源码解析
查看>>
腾讯实习生面试总结
查看>>
Jfinal中的render
查看>>
STL中的Allocator
查看>>
STL中的Iterator
查看>>
C语言拾遗
查看>>
数据库查询语句拾遗
查看>>
STL中的Vector
查看>>
C++中的trivial、standard layout、POD
查看>>
阿里中间件三大存储系统
查看>>
Tair源码阅读1---ConfigServer
查看>>
STL中的RB-tree
查看>>
STL中的Sort
查看>>
LeetCode---3.TreeEasy
查看>>
基于比较的排序算法的最优下界---NlogN
查看>>
Paxos协议学习---2.由3大条件证明一致性
查看>>
Paxos协议学习---3.Paxos Made Simple
查看>>