java 数组基础学习(一维二维数组)
1.一维数组
1>静态初始化:数据类型[ ] 变量名 = {元素} 例:int[ ] arr = {1,2}
动态初始化:数据类型[ ] 变量名 = new数据类型[数据长度]
例:int[ ] arr = new int[2]
还有一种形式是:int[ ] arr = new int[2] {1,2} (不用,知道即可)
(数组的长度在初始化之后是固定不变的)
2>访问数组元素时可以使用索引进行访问,这时可以使用for循环来读取
例如:arr[0]就表示访问数组的第一个元素;
最常用的取元素方式:for(int i = 0;i<数组的长度;i++){取元素}
此处最常见的异常有:
数组越界异常(IndexOutOfBoundsException):我们写的索引,超过了数组的索引
空指针异常(NullPointerException):数组直接null(没有值)
3>Java中的内存分配
只需要知道内存中有两种叫做栈和堆的内存空间
栈:存储局部变量(写在方法中,条件语句中等),
特点是使用完毕后,立即回收。
堆:存储new出来的东西
特点是使用完成后等待JVM(java虚拟机)中的GC(垃圾回收)机制进行回收。
(只需记住)
(不能直接使用arr,直接读取会得到此数组对应的地址值)
4>数组内存图解
(亲自动手画画,加深记忆力)
5>练习两道题加强了对数组的运用,
例1.依次输出数组中的每一个元素,并获取长度值。
例2.取得数组中的最大值。
2.二维数组
1>格式定义:
1.数据类型[][] 数组名 = new 数据类型[m][n]
m代表的是二维数组中有多少个一维数组
n每一个一维数组中有多少个元素
2.数据类型[][] 数组名 = new 数据类型[][]{{},{},{}}
3. 数据类型[][] 数组名 = {{},{},{}})
(后面两个知道即可)
取得二维数组中的每一个元素方法:遍历,双重for循环
最外面的for遍历的是每一个一维数组
内层for遍历的是每个一维数组中的元素
(二维数组可以理解为一个班级对应一堆学生)
2> 注意事项
我们定义数组的时候一旦确定具体的数据类型,我们的元素就必须是这个数据类型的
数组的缺点,长度固定
(要牢记)
3.Random类
一个很好玩的类,里面有可以获取随机数的方法。
1>数据类型:引用数据类型(就是需要new)
2>使用方式
1.导包
import java.util
2.创建对象
Random 对象名 = new Random()
3.调用方法
注意:调用方法的时候,要确定随机的范围
例:随机0-9中的数字 nextInt(10),其中包含头,不包含尾
(在初始化的时候,是空参数,nextInt()在不写参数时会从232中取值,random的方法就目前本人理解局限性很大,比如无法随机无重复字符串等,因此只需了解即可,后面使用的比如,UUID方法等都有更加完善的效果)
3>练习,猜数字小游戏(随机产生1-100的数,请猜猜是多少)
java 数组基础学习(一维二维数组)的更多相关文章
- Java基础学习之“二维数组”
一.鄙人对二维数组的理解 二维数组就是由多个数组并列而成 二.举例 1.普通数组(一维数组)的图像格式 2.二维数组的图像格式 代码 1 @Test 2 public void xueXi(){ 3 ...
- java基础知识点补充---二维数组
#java基础知识点补充---二维数组 首先定义一个二维数组 int[][] ns={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16} }; 实现遍 ...
- Android 在资源文件(res/strings.xml)定义一维数组,间接定义二维数组
经常我们会在资源文件(res/strings.xml)定义字符串,一维数组,那定义二维数组?直接定义二维数组没找到,可以间接定义. 其实很简单,看过用过一次就可以记住了,一维数组估计大家经常用到,但是 ...
- 06-01 Java 二维数组格式、二维数组内存图解、二维数组操作
二维数组格式1 /* 二维数组:就是元素为一维数组的一个数组. 格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. n:表示每一个一维数组的 ...
- Java 数组(三)二维数组
如果一维数组的各个元素仍然是一个数组,那么它就是一个二维数组.二维数组常用于表示表,表中的信息以行和列的形式组织,第一个下标代表元素所在的行,第二个下标代表所在的列. 一.二维数组的创建 1.先声明, ...
- c语言编程学习之二维数组
二维数组 c语言按照行主序存储二维数组.也就是说,二维数组元素在内存中的位置是连续的,每行末尾元素(若不是最后一行)的下一个元素就是下一行的首元素. 如下图所示 接下来我们来分析一下如何将二维数组所有 ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- C 二维数组,以及自定义二维数组
C 二维数组,以及自定义二维数组 我们通常情况下是这样定义一个二维数组的: int a[10][15]; 我们分别查看一下a,a[0],*a 都是一样的值吧 我们可以这么理解: a是一个数组的数组 a ...
- php 将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序
最近再写项目的时候,碰到一个问题:如何将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序:实在是想不到哪个php库中有哪个函数能实现,只能自己写一个了,将代码写出来后,发现自己的代码繁琐,并 ...
随机推荐
- java编写银行管理 。ATM管理
package Demo; import java.util.Date; import java.util.Scanner; //date是数据库中的一个用法,初始化后输出的是操作时的时间 publi ...
- Excel VBA开发
一.Excel添加treeview控件 如果是以VBA中为窗体添加,菜单:工具->附加控件,从中选择“Microsoft TreeView Control”: 在控件工具箱中点击其它控件,从中选 ...
- 什么是TTL值?(简单明了的解释)
什么是TTL值? TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上的缓存时间. 要理解TTL值,请先看下面的一个例子:假设,有这样一个域名myhost. ...
- linux gcc 区分32位或64位编译 && 请问arm存储,是以小端格式还是以大端格式?
linux gcc 区分32位或64位编译 Linux系统下程序如何区分是64位系统还是32位系统 经过对include的翻查,最后确定gcc以__i386__来 进行32位编码,而以__x86_ ...
- require.js+backbone 使用r.js 在本地与生产环境 一键压缩的实现方式
require.js+backbone 使用r.js 在本地与生产环境 一键压缩的实现方式 时间:2017-07-03 17:18:11 阅读:210 评论:0 收藏:0 ...
- 使用Visual Studio Code编写和激活ABAP代码 (上)
猪年春节后的第一篇,Jerry祝各位猪年大吉! 2019年的六分之一马上就快过完了,不知道大家在新的一年是否给自己定了新的小目标呢?这里Jerry先预祝大家到2019年年底的时候,在年初制定的小目标都 ...
- Python 多线程 start()和run()方法的区别(三)
上一篇文章最后只是简单介绍了start()方法和run()方法,这篇文章再详细地看下start()和run()的区别. 在实例调用的函数中加入打印当前线程的名字,分别用start()方法和run()方 ...
- PyTorch Notes | PyTorch 编程实践笔记
[ 今天最开心的事情! ] PyTorch的stable版本更新为1.0之后,原本3D模型无脑out of memory.3D模型torch.backends.cudnn.benchmark必须Fal ...
- 【题解】洛谷P1966 [NOIP2013TG] 火柴排队(树状数组+逆序对)
次元传送门:洛谷P1966 思路 显然在两排中 每排第i小的分别对应就可取得最小值(对此不给予证明懒) 所以我们只在意两排的火柴是第几根 高度只需要用来进行排序(先把两个序列改成有序的方便离散化) 因 ...
- 修改ubuntu计算机名
修改计算机名下: -$sudo gedit /etc/hostname -$sudo gedit /etc/hosts