Java学习之路(三):Java中的数组
数组的概述和定义的格式
数组的作用:
- 用来存储同种数据类型的多个值
数组的基本概念:
- 数组是存储同一种数据类型多个元素的集合。就相当于一个容器。
注意:数组既可以存储基本数据类型,也可以存储引用数据类型。
数组的定义格式:
- 数据类型[] 数组名 = new 数据类型[指定数组的长度]
数组的初始化
概念:
就是为数组开辟连续的内存空间,并且为每个数的元素赋值
如何初始化:
- 动态初始化:指定长度,有系统给出初始化值 int[] arr = new int[5]
- 静态初始化:给出初始化的值
- 格式:数据类型[] 数组名 = new 数据类型[数组长度]
如果打印一个数组的话,你会发现很好玩的事情
int[] arr = new int[5];
System.out.println(arr)
//结果:【I@一个十六进制的内存地址
[I@754e9654的解释:
- 【代表是一个数组,有几个就代表是几维的
- 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中的数组到时是传值还是传地址?
//1.即使传值,也是传地址,基本数据类型传递值,引用数据类型传递地址。
//2.Java中只有传地址,应为地址值也是值(官方说法)
Java学习之路(三):Java中的数组的更多相关文章
- Java学习之路(一) —— Java命名规范
Package 的命名 Package 的名字应该都是由一个小写单词组成. Class 的命名 Class 的名字必须由大写字母开头而其他字母都小写的单词组成 Class 变量的命名 变量的名字必须用 ...
- Java学习之路(三)
1:面向对象
- java学习之路之javaSE基础2
java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...
- java学习之路之javaSE基础1
<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...
- 新篇章之我的java学习之路下
昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...
- Java学习之路(转)
Java学习之路(书籍推荐) 一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多 ...
- JAVA学习之路与大家分享
这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...
- Java 学习之路 -- day00
Java 学习之路 -- day00 Typora 快捷键操作 标题:#+空格 2. *斜体* 3. **加粗** 4. **斜体加粗*** 5. ~~删除线~~ 6. > 引用 7. ···分 ...
- 学习之路三十九:新手学习 - Windows API
来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了 ...
随机推荐
- OSI结构和TCP/IP模型
TCP/IP层次模型共分为五层:应用层HTTP.传输层TCP.网络层IP.数据链路层Data-link.物理层physical. 应用层—应用层是所有用户所面向的应用程序的统称.ICP/IP协议族在这 ...
- Java NIO学习-详细内容(三)
九.nio.file 该包是1.7新出的,包含了一系列高级的文件和目录操作方法 1.控制目录属性,只读,系统之类的 2.监控文件及文件夹的改变的WatchService public void sta ...
- js学习日记-对象字面量
一.对象字面量语法 var person={ name:'小王', age:18, _pri:233 } 成员名称的单引号不是必须的 最后一个成员结尾不要用逗号,不然在某些浏览器中会抛出错误 成员名相 ...
- vcenter安装错误The DSN is pointing to anunspported ODBC driver...
在安装vcenter server中采用现有独立sql server数据库时出现下列错误. 这是由于当前独立数据库版本和当前系统的客户端驱动不匹配.导致我们在odbc中配置dsn无法正常运行. 如sq ...
- uwsgi启动报错WARNING: Can't find section "uwsgi" in INI configuration file autotestsite_uwsgi.ini
提示配置文件头部找不到 [uwsgi] 解决: 在最上方加上[uwsgi],有时候明明有标识,但是还是提示,那就再加一个
- C# usb设备的自动退出
using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServi ...
- List分组迭代器
说明: 针对长度较大的List对象,可以分组批量进行处理, 如:长度为1000的List对象,可分为10组,每组100条,对数据进行业务逻辑处理... Source /**************** ...
- PT, BPT, VCM
- VCM可以理解为BPT与PPM之间的MIS,并没有比BPT效果好很多 - BPT, VCM这类算法的主要作用是加快caustics的收敛,对indirect diffuse没有很明显的加速 - i ...
- C语言顺序结构和分支结构总结
1. 本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 感觉学的内容比较基础,也是日后编程的基石.今后还应多加练习,能够更自如地运用,避免低级错误,一步步地提 ...
- NOIP提高组题目归类+题解摘要(2008-2017)
因为前几天作死立了一个flag说要把NOIP近十年的题目做一做,并写一个题目归类+题解摘要出来,所以这几天就好好的(然而还是颓废了好久)写了一些这些往年的NOIP题目. 这篇博客有什么: 近十年NOI ...