Java 学习之路(二十)- 认识数组和变量
目录
- 重新认识基本类型的变量
- 认识数组 —— 名与实
- 理解数组的名与实
- 数组=数组变量+数组的实体
- 数组的长度
- 数组索引过界和初始值
- 让变量指向新的数组
重新认识基本类型的变量
一个简单的使用变量的程序。
变量的基本逻辑:有定才有变。在人看来,固定的是名字,变化的是名字对应的值。对计算机来说,固定的是地址,变化的是值。
理解计算机如何使用内存,完成变量的功能
- 内存就是一堆白纸,只能通过页码编号访问,也就是所谓的内存地址。
- 变量就是使用一个固定的地址加上这个地址对应的内存。计算机通过地址,读写地址对应的内存的值。完成变量的赋值和访问值的功能。就好像可以根据页码编号,在指定的白纸上写字,或者擦掉再复写。
- 变量的名就是地址,变量的实就是地址的内存的值。
认识数组 —— 名与实
理解数组的名与实
- 数组的“实”是一块地址连续的内存,就像是编号连续的一沓白纸。
- 数组的名,就是这个块连续内存的第一个内存的地址。
- 数组的变量和基本变量一样,本身是个地址。但是与基本变量不一样的是,这个地址的值,是数组的“名”,也就是数组的第一个地址。
数组=数组变量+数组的实体
- 数组变量[索引] 就是在数组原有地址的基础上,加上索引,获得想要的元素
- 所以索引是从 0 开始的,因为数组变量的地址就是数组第一个元素的地址
int size = 60;
double[] array = new double[size];for (int i = 0; i < 10; i++) {int index = (int) (Math.random() * size * 3);if (index < array.length) {System.out.println(array[index]);} else {System.out.println("数组出界!");}
}
数组的长度
- 使用数组的长度
- 数组变量.ength可以获得数组的长度数组创建之后,长度不可以改变
数组索引过界和初始值
- 访问数组过界出错的例子,数组出界的错误叫做 IndexOutOfBoundException 。
- 如果没有把握数组是否会出界,可以把索引和数组长度做比较。注意索引是从 0 开始的,不是从1开始的。
- 数组里每个元素的都有初始值,初始值和类型有关。对于数字类型,初始值是0,对于 boolean 类型,初始值是 false。
让变量指向新的数组
- 数组变量可以指向新的数组实体。这时候,数组变量的值就是新的数组实体的地址了。这种数组变量的赋值操作,叫做让变量指向新的数组.
- 如果没有别的数组变量指向原来数组实体,也就是说,如果没有数组变量“记得”原来数组的地址,原来的数组实体就再也不可访问了,也就好像“消失”了。
- 对于非基本类型的变量,计算机都要通过这种“两级跳”的方式来访问。基本类型变量,一跳就可以。
Java 学习之路(二十)- 认识数组和变量相关推荐
- 【Java学习笔记之二十六】深入理解Java匿名内部类
在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...
- java学习笔记(二十八)——开发一个小项目(VMeeting3.0)
上篇文章按照较规范的产品需求文档梳理了项目的逻辑,感觉开发起来明晰了很多:挂上一篇文章java学习笔记(二十七)--开发一个小项目(VMeeting2.0)_Biangbangbing的博客-CSDN ...
- 【C语言进阶深度学习记录】二十八 数组指针与指针数组的分析
数组指针与指针数是非常重要的概念.面试中也是经常会被问到的 文章目录 1 数组的类型 1.1 定义数组的类型 2 数组指针 2.1 数组类型和数组指针的代码分析 3 指针数组 3.1 指针数组代码案例 ...
- 【Java学习笔记之二十八】深入了解Java8新特性
前言: Java 8 已经发布很久了,很多报道表明java 8 是一次重大的版本升级.在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java ...
- Java学习总结(二十)——JSON解析:官方解析,GSON解析,FastJSON解析,
一.JSON简介: 1.JSON(javaScript Object Notation)是一种轻量级的数据交换格式: 2.JSON数据作为目前网络中主流的数据传输格式之一,应用十分广泛: 3.JSON ...
- Java学习之路(十):枚举类和注解
一.枚举类的使用 当类的对象只有有限个,确定的(此类称为枚举类),如 星期:周一,- , 周日 性别:男(man),女(woman) 支付方式:Cash(现金),WeChatPay(微信支付),Ali ...
- JAVA学习笔记(二十)
对象数组 题目: 定义一个数组,用来储存3个Person对象. public class plas {private String name;private int age;public plas( ...
- 【Java学习笔记之二十九】Java中的equals和==的用法及区别
Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String(&quo ...
- 【Java学习笔记之二十五】初步认知Java内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人对内部类也只是略知一二). 第一次见面 内部类我们从外面看是非常容易理解的,无非就是在 ...
- Java翻译byte数据,java学习|图说String(二):基于byte数组的String方法调用
基于byte数组的String方法调用 上文说到,String的方法调用都是基于byte数组,其实说更详细点:都是基于String中value字段的调用: 注,本文中所有的源码均基于jdk11 通过上 ...
最新文章
- oracle sum 数据类型,五、Oracle内置函数
- 在DataGireView中加筛选条件
- 图解HTTP学习记录(一)
- OAuth 2.0初学者指南
- Linux多命令协作:管道及重定向
- Javascript性能优化【内联缓存】 V8引擎特性
- react setState里的作用域
- 怎么获取连表查询的相同字段
- C++ WinExec system 隐藏黑框;清空文件
- IE浏览器url中带中文报错的问题;以及各种兼容以及浏览器问题总结
- 阀体端面钻6孔组合机床设计及夹具设计
- Python 第六节课
- CryptoJS 加密
- 三天搞定射频识别技术(三)3.1 NFC概述
- android实训报告ppt模板,实训报告ppt模板
- c语言代码姓名全拼,巧用拼音首字母输入人名(代码)
- html内嵌式选择器,CSS样式 CSS选择器(Cascading Style Sheet)
- PHP AJAX Promise
- 计算机硬盘没显示,移动硬盘不显示在我的电脑
- php extract 字符串,php extract 函数
热门文章
- 下拉列表—DropDownMenu的使用解析
- URAL 1741 Communication Fiend
- NYOJ 小明的存钱计划
- java培训课程有哪些
- AttributeError: module ‘hanlp.utils.rules‘ has no attribute ‘tokenize_english‘
- Cocos Creator ts版本使用protobuf
- Unity3D架构设计NavMesh寻路
- 雾霾、压力、不良习惯对肌肤的4大危害
- DyLight 649-LCA;DyLight 649标记小扁豆凝集素(LCA)
- leetcode-买卖股票的最佳时机含手续费