目录

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

重新认识基本类型的变量

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

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

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

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

认识数组 —— 名与实

理解数组的名与实

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

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

  • 数组变量[索引] 就是在数组原有地址的基础上,加上索引,获得想要的元素
  • 所以索引是从 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. oracle sum 数据类型,五、Oracle内置函数
  2. 在DataGireView中加筛选条件
  3. 图解HTTP学习记录(一)
  4. OAuth 2.0初学者指南
  5. Linux多命令协作:管道及重定向
  6. Javascript性能优化【内联缓存】 V8引擎特性
  7. react setState里的作用域
  8. 怎么获取连表查询的相同字段
  9. C++ WinExec system 隐藏黑框;清空文件
  10. IE浏览器url中带中文报错的问题;以及各种兼容以及浏览器问题总结
  11. 阀体端面钻6孔组合机床设计及夹具设计
  12. Python 第六节课
  13. CryptoJS 加密
  14. 三天搞定射频识别技术(三)3.1 NFC概述
  15. android实训报告ppt模板,实训报告ppt模板
  16. c语言代码姓名全拼,巧用拼音首字母输入人名(代码)
  17. html内嵌式选择器,CSS样式 CSS选择器(Cascading Style Sheet)
  18. PHP AJAX Promise
  19. 计算机硬盘没显示,移动硬盘不显示在我的电脑
  20. php extract 字符串,php extract 函数

热门文章

  1. 下拉列表—DropDownMenu的使用解析
  2. URAL 1741 Communication Fiend
  3. NYOJ 小明的存钱计划
  4. java培训课程有哪些
  5. AttributeError: module ‘hanlp.utils.rules‘ has no attribute ‘tokenize_english‘
  6. Cocos Creator ts版本使用protobuf
  7. Unity3D架构设计NavMesh寻路
  8. 雾霾、压力、不良习惯对肌肤的4大危害
  9. DyLight 649-LCA;DyLight 649标记小扁豆凝集素(LCA)
  10. leetcode-买卖股票的最佳时机含手续费