Java学习——数组的基础知识
数组的概述
- 数组:是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理
- 数组的相关概念:数组名、元素、角标/下标/索引、数组的长度(数组中元素的个数)
- 数组的特点:
- 数组是有序排列的
- 数组本身是引用数据类型,但数组的元素可以是任何数据类型(基本数据类型、引用数据类型)
- 数组在内存中开辟的是一块连续的空间
- 数组的长度一旦确定,就不能修改
- 数组的分类:
- 按维数分类:一维、二维、三维······
- 按数据元素数据类型分类:基本数据类型元素的数组、引用数据类型的数组
一维数组的使用:
数组的声明和初始化
静态初始化:数组的声明和初始化赋值同时进行
int[] ids;
ids = new int[]{1,2,3,4};动态初始化:数组的声明和初始化赋值分开进行
String[] names = new String[5];
一旦初始化完成,数组的长度就确定下来了
如何调用数组的指定位置的元素
数组的角标是从0开始到数组的长度-1结束。
names[0]——表示第一个元素
如何让获取数组的长度
使用数组的属性:lengh
eg:names.length
如何遍历数组的元素
借助循环结构
for(int i=0;i<names.length;i++) {
System.out.println(names[i]);
}
数组元素的默认初始化值
- 数组元素是整型:0
- 数组元素是浮点型:0.0
- 数组元素是boolean型:false
- 数组元素是char型:0或'\u0000',而非'0'
- 数组元素是引用数据类型:null
数组的内存解析
二维数组的使用
二维数组:一维数组的元素是另一个一维数组
二维数组的声明和初始化
静态初始化:
int[][] arr1 = new int[][]{{1,2,3},{6,8},{3,6,8,9}};动态初始化:
①
String[][] arr2 = new String[4][3]; ②
String[][] arr3 = new String[4][];其他也正确的写法
①
String[] arr4[]或String arr[][]【[]的位置放在类型或变量后面都可以,一维数组同】 ②
int[][] arr1 = {{1,2,3},{6,8},{3,6,8,9}};【类型推断】如何调用二维数组的指定位置的元素
System.out.println(arr1[2][0]);//3 System.out.println(arr2[3][1]);//null //arr3[2] = new String[4];
System.out.println(arr3[2][3]);//报错,需先赋值
如何让获取二维数组的长度
属性:length
如何遍历二维数组的元素
嵌套循环
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.println(arr[i][j]);
}
}
二维数组元素的默认初始化值
规定:二维数组分为外层数组元素,内层数组元素
int[][] arr = new int[3][4] 外层数组元素,
arr[0],arr[1]内层数组元素,arr[0][0],arr[1][2]等①外层数组元素的默认初始化值为地址值;内层数组元素的默认初始值,同一维数组,与数据类型有关
②特殊的,针对
String[][] arr3 = new String[4][];定义方式,外层的默认初始值:null;内层数组元素不能调用,否则报错。二维数组的内存解析
Java学习——数组的基础知识的更多相关文章
- Java学习之旅基础知识篇:数据类型及流程控制
经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...
- Java学习1——计算机基础知识
本文包含了一些计算机基础知识:计算机组成:Windows常用快捷键:DOS常用命令:计算机语言发展史.
- Java学习之旅基础知识篇:数组及引用类型内存分配
在上一篇中,我们已经了解了数组,它是一种引用类型,本篇将详细介绍数组的内存分配等知识点.数组用来存储同一种数据类型的数据,一旦初始化完成,即所占的空间就已固定下来,即使某个元素被清空,但其所在空间仍然 ...
- Java学习之旅基础知识篇:面向对象之封装、继承及多态
Java是一种面向对象设计的高级语言,支持继承.封装和多态三大基本特征,首先我们从面向对象两大概念:类和对象(也称为实例)谈起.来看看最基本的类定义语法: /*命名规则: *类名(首字母大写,多个单词 ...
- java学习笔记之基础知识
1.class不加修饰符默认default,只在当前包里能用. 2.构造函数前面的修饰符的作用类似class的,限制引用的权限. 3.java对象的创建其实就是类的实例化,类的实例化就是在堆上copy ...
- 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承
<Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
- Java学习笔记之---基础语法
Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...
- JAVA学习笔记—review基本知识[反射与异常]
JAVA学习笔记—review基本知识[反射与异常] 1.异常: 1.1异常的分类: Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和E ...
随机推荐
- SAS 数值存储方式和精度问题
本文链接:https://www.cnblogs.com/snoopy1866/p/16021137.html 1 数值存储方式 SAS使用8个字节存储数值,使用浮点计数法表示数值. 浮点计数法由4个 ...
- 手把手建立Roofline模型(CPU)
Roofline模型原理 Roofline模型是由加州理工大学伯利克提出的用来建立当前计算平台在不同的计算强度(Operational Intensity)下能够达到的理论计算上限 .论文和基础理论和 ...
- 『德不孤』Pytest框架 — 15、Pytest参数化
目录 1.Pytest参数化说明 2.Pytest参数化方式 3.parametrize装饰器参数说明 4.Pytest参数化(单个参数) 5.Pytest参数化(多个参数) 6.ids参数说明 1. ...
- WebGPU 计算管线、计算着色器(通用计算)入门案例:2D 物理模拟
目录 1. WebGL 2. WebGPU 2.1. 适配器(Adapter)和设备(Device) 2.2. 着色器(Shaders) 2.3. 管线(Pipeline) 2.4. 并行(Paral ...
- python 命令行参数学习(一)
用了这么久,还没怎么学习python的命令行参数,是在惭愧. 参考文章地址:http://www.cnblogs.com/jianboqi/archive/2013/01/10/2854726.htm ...
- 2022IDEA配置启动lilishop的swagger展示
目录 一.概述 二.基本构建 三.Git 导入编译器 四.模块描述浅析 五.配置文档 1.注释配置文件 2.添加配置 3.暂时关闭权限 4.浏览器测试访问 5.其他需要修改模块 六.参考文献 结语 一 ...
- 论文解读(SUGRL)《Simple Unsupervised Graph Representation Learning》
Paper Information Title:Simple Unsupervised Graph Representation LearningAuthors: Yujie Mo.Liang Pen ...
- SpringCloudAlibaba 微服务讲解(三)Nacos Discovery-服务治理
3.1 服务治理 先来思考一个问题,通过上一章的操作,我们已经实现微服务之间的调用,但是我们把服务提供者的网络地址(ip,端口)等硬编码到了代码中,这种做法存在许多问题: 一旦服务提供者地址变化,就需 ...
- Skye无人机刷Betaflight详细图文教程
前言 首先十分感谢B站TASKBL up主的视频教程以及他的耐心指导,视频链接Skye 原机主板刷BetaFlight 参考教程_哔哩哔哩_bilibili.整个改造过程耗时三天,现把改造过程以及遇 ...
- 安装docker-compose 报错解决