【java 基础知识复习】数组

考试告一段落。。。虽然还有一门计组。。。
但是复习不下去了。。。

基础部分:简单知识点堆积

知识地位:难度不大,但是很多人对java数组的内存分配把握并不准确

当数组的所有元素都被分配了合适的内存空间,并制定了初始值时,数组初始化完成,程序以后将不能重新改变数组对象在内存中的位置和大小。

1.1 数组初始化:

  • java 数组是静态的,即当数组呗初始化后,该数组所占的内存空间、数组长度都是不可变的。
  • java 中的数组必须经过初始化才可使用

数组初始化的两种方式:

  1. 静态初始化:初始化时由程序员显示制定每个数组元素的初始值,由系统决定数组长度

    String[] animal = new String[]{
                "小白兔","胡二狗"
    

    }

  2. 动态初始化:初始化时程序员只指定数组长度,由系统为数组元素分配初始值。

    String names = new String[6];

默认初始化:

  • 数组元素是基本类型中的整数类型(byte,short,int和long),则数组元素的值为0,
  • 浮点类型(float,double),则数组元素的值时0.0
  • 字符类型(char),则数组元素的值为’\u0000’
  • 布尔类型(boolean),则数组元素的值为false
  • 引用类型(类,接口和数组)则数组的元素值为null

可变数组?

数组变量是一种引用类型的变量,数组变量并不是数组本身,它只是指向堆内存中的数组对象。因此,可以改变一个数组变量所引用的数组,这样可以造成数组长度可变的假象。——但是原来哪个堆内存中的数组对象本身是不变的。只是指向变了——由此体现了java是静态语言。

图一:

数组一定要初始化吗?

  • java的数组变量只是引用类型的变量,它并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中即可使用该数组变量。
  • 数组变量只是一个引用变量(类似于C语言里的指针),而数组对象就是保存在堆内存中的连续内存空间。对数组执行初始化,其实并不是对数组变量执行初始化,而是在堆内存中创建数组对象——也就是为该数组对象分配一块连续的内存空间,这块连续的内存空间的长度就是数组的长度。

图二:

所有局部变量都是放在栈内存里保存的,不管其是基本类型的变量,还是引用类型的变量,都是存储在各自的方法栈内存中的;但引用类型的变量所引用的对象(包括数组、普通java对象)则总是存储在堆内存中。

注意:

java 语言,对内存中的对象通常不允许直接访问, 为了访问堆内存中的对象,而为了访问堆内存中的对象,通常只能通过引用变量。.

本质:>

引用变量本质上只是一个指针,只要程序通过引用变量访问属性,或者通过引用变量来调用方法,该引用变量就会由它所引用的对象代替。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值