目录

  • 重新认识基本类型的变量
  • 认识数组 —— 名与实
    • 理解数组的名与实
    • 数组=数组变量+数组的实体
  • 数组的长度
  • 数组索引过界和初始值
  • 让变量指向新的数组

重新认识基本类型的变量

一个简单的使用变量的程序。

变量的基本逻辑:有定才有变。在人看来,固定的是名字,变化的是名字对应的值。对计算机来说,固定的是地址,变化的是值。

理解计算机如何使用内存,完成变量的功能

  • 内存就是一堆白纸,只能通过页码编号访问,也就是所谓的内存地址。
  • 变量就是使用一个固定的地址加上这个地址对应的内存。计算机通过地址,读写地址对应的内存的值。完成变量的赋值和访问值的功能。就好像可以根据页码编号,在指定的白纸上写字,或者擦掉再复写。
  • 变量的名就是地址,变量的实就是地址的内存的值。

认识数组 —— 名与实

理解数组的名与实

  • 数组的“实”是一块地址连续的内存,就像是编号连续的一沓白纸。
  • 数组的名,就是这个块连续内存的第一个内存的地址。
  • 数组的变量和基本变量一样,本身是个地址。但是与基本变量不一样的是,这个地址的值,是数组的“名”,也就是数组的第一个地址。

数组=数组变量+数组的实体

  • 数组变量[索引] 就是在数组原有地址的基础上,加上索引,获得想要的元素
  • 所以索引是从 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 学习之路(二十)- 认识数组和变量相关推荐

  1. 【Java学习笔记之二十六】深入理解Java匿名内部类

    在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...

  2. java学习笔记(二十八)——开发一个小项目(VMeeting3.0)

    上篇文章按照较规范的产品需求文档梳理了项目的逻辑,感觉开发起来明晰了很多:挂上一篇文章java学习笔记(二十七)--开发一个小项目(VMeeting2.0)_Biangbangbing的博客-CSDN ...

  3. 【C语言进阶深度学习记录】二十八 数组指针与指针数组的分析

    数组指针与指针数是非常重要的概念.面试中也是经常会被问到的 文章目录 1 数组的类型 1.1 定义数组的类型 2 数组指针 2.1 数组类型和数组指针的代码分析 3 指针数组 3.1 指针数组代码案例 ...

  4. 【Java学习笔记之二十八】深入了解Java8新特性

    前言: Java 8 已经发布很久了,很多报道表明java 8 是一次重大的版本升级.在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java ...

  5. Java学习总结(二十)——JSON解析:官方解析,GSON解析,FastJSON解析,

    一.JSON简介: 1.JSON(javaScript Object Notation)是一种轻量级的数据交换格式: 2.JSON数据作为目前网络中主流的数据传输格式之一,应用十分广泛: 3.JSON ...

  6. Java学习之路(十):枚举类和注解

    一.枚举类的使用 当类的对象只有有限个,确定的(此类称为枚举类),如 星期:周一,- , 周日 性别:男(man),女(woman) 支付方式:Cash(现金),WeChatPay(微信支付),Ali ...

  7. JAVA学习笔记(二十)

    对象数组 题目: 定义一个数组,用来储存3个Person对象. public class plas {private String name;private int age;​public plas( ...

  8. 【Java学习笔记之二十九】Java中的equals和==的用法及区别

    Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String(&quo ...

  9. 【Java学习笔记之二十五】初步认知Java内部类

    可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人对内部类也只是略知一二). 第一次见面 内部类我们从外面看是非常容易理解的,无非就是在 ...

  10. Java翻译byte数据,java学习|图说String(二):基于byte数组的String方法调用

    基于byte数组的String方法调用 上文说到,String的方法调用都是基于byte数组,其实说更详细点:都是基于String中value字段的调用: 注,本文中所有的源码均基于jdk11 通过上 ...

最新文章

  1. GitHub趋势榜第一:超强PyTorch目标检测库Detectron2,训练更快,支持更多任务
  2. 如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数
  3. 华为2019暑期实习笔试题
  4. 只引入部分elementui_腾讯动漫确定引入假面骑士亚极陀和甲斗王 四仔:是不是玩不起...
  5. Sizzle.selectors.match/leftMatch
  6. 高橋君とホテル / Tak and Hotels(AtCoder-2039)
  7. python插件使用教程_Python插件机制实现详解
  8. C语言学习笔记---001C语言的介绍,编译过程原理,工具等
  9. ubuntu14 lamp环境下安装swoole1.8.6
  10. awk高级企业级使用案例
  11. Structs2.0.11.1升级到2.5.30
  12. 计算机主板的电路,电脑主板电路图全).pdf
  13. 黑客利用2012伦敦奥运诈骗个人资料
  14. 互联网时代产品研发的思考
  15. 中台战略-建中台与拆中台
  16. Springboot项目全局异常统一处理
  17. 三篇论文,纵览深度学习在表格识别中的最新应用
  18. CSS学习笔记--段落格式化
  19. ModbusRTU之CRC校验
  20. PLC数据采集网关有哪些作用,PLC数据采集网关如何正确进行使用?

热门文章

  1. 复数Complex类
  2. marshmallow——简介
  3. 【InSAR 笔记2】哨兵一号精轨数据批量下载【修改0704】
  4. 西工大机考(社会学概论)大作业网考
  5. Windows 2016 服务器安全配置和加固
  6. 语音识别—声学模型训练(前向-后向算法)
  7. 计算机网络学生主页链接,计算机网络中一组相关网页通过超链接连接,用于描述一组完整的信息,称为( )。A.网站B.主页C.服 - 扁豆云问答...
  8. 视频异常事件检测Object-centric Auto-encoders and Dummy Anomalies for Abnormal Event Detection in Video
  9. 银河帝国----基地前奏
  10. NOSql数据库的优缺点分析