java 数组的创建 与 赋值

java 数组的创建 与 赋值1 2 2 数组类型 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 基本类型的数组有 3 种赋值形式 如下所示 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 第 1 种和第 2 种都是预先知道数组的内容 而第 3 种是先分配长度 然后再给每个元素赋值 第 3 种形式中 即使没有给每个元素赋值 每个元素也都有一个默认值 这个默认值跟数组类型有关 数值类型的值为 0 boolean 为 false char 为空字符 nbsp nbsp nbsp

1.2.2 数组类型

       基本类型的数组有3种赋值形式,如下所示:

在这里插入图片描述

       第1种和第2种都是预先知道数组的内容,而第3种是先分配长度, 然后再给每个元素赋值第3种形式中,即使没有给每个元素赋值,每个元素也都有一个默认值,这个默认值跟数组类型有关,数值类型的值 为0,boolean为false,char为空字符

       数组长度可以动态确定,如下所示:

在这里插入图片描述
       数组长度虽然可以动态确定,但定了之后就不可以变数组有一个 length属性,但只能读,不能改。还有一个小细节,不能在给定初始值 的同时给定长度,即如下格式是不允许的:

在这里插入图片描述
       可以这么理解,因为初始值已经决定了长度,再给个长度,如果还 不一致,计算机将无所适从。

       数组类型和基本类型是有明显不同的,一个基本类型变量,内存中 只会有一块对应的内存空间。但数组有两块:一块用于存储数组内容本身,另一块用于存储内容的位置。用一个例子来说明,有一个int变量 a,以及一个int数组变量arr,其代码、变量对应的内存地址和内存内容 如表1-3所示。

在这里插入图片描述

       基本类型a的内存地址是1000,这个位置存储的就是它的值100数组类型arr的内存地址是2000,这个位置存储的值是一个位置3000,3000 开始的位置存储的才是实际的数据“1,2,3”

       为什么数组要用两块空间? 不能只用一块空间吗?我们来看下面 这段代码:

在这里插入图片描述

       这段代码中,arrA初始的长度是3,arrB的长度是4,后来将arrB的 值赋给了arrA。如果arrA对应的内存空间是直接存储的数组内容,那么 它将没有足够的空间去容纳arrB的所有元素。

       用两块空间存储就简单得多,arrA存储的值就变成了和arrB的一 样,存储的都是数组内容{4,5,6,7}的地址,此后访问arrA就和arrB 是一样的了,而arrA{1,2,3}的内存空间由于不再被引用会进行垃圾回收,如下所示:

在这里插入图片描述

       由上也可以看出,给数组变量赋值和给数组中元素赋值是两回事给数组中元素赋值是改变数组内容,而给数组变量赋值则会让变量指向 一个不同的位置

       上面我们说数组的长度是不可以变的,不可变指的是数组的内容空间,一经分配,长度就不能再变了,但可以改变数组变量的值,让它指向一个长度不同的空间,就像上例中arrA后来指向了arrB一样。

       给变量赋值就是将变量对应的内存空间设置为一个明确的值,有了 值之后,变量可以被加载到CPU,CPU可以对这些值进行各种运算,运 算后的结果又可以被赋值给变量,保存到内存中。数据可以进行哪些运 算?如何进行运算呢?我们下节介绍。

参考目录

绝大多数内容来自于:Java编程的逻辑 作者: 马俊昌(1.2 赋值)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226501.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:45
下一篇 2026年3月16日 下午10:45


相关推荐

  • linux系统下codeblocks控制台打印中文乱码[通俗易懂]

    linux系统下codeblocks控制台打印中文乱码[通俗易懂]linux系统下codeblocks控制台打印中文乱码在linux下安装codeblocks后,打印中文出现如下问题:#include<stdio.h>#include<stdlib.h>intmain(){printf(“你好,世界!\n”);return0;}解决办法1、将Settings-&…

    2022年7月14日
    16
  • Java设计文本编辑器

    Java设计文本编辑器阿乐今天敲代码没 Java 设计文本编辑器前言一 实现功能二 扼要代码 1 界面程序设计 2 文件菜单设计 3 编辑菜单栏设计 4 格式菜单栏设计运行截图前言利用 Java 设计一个文本编辑器 提示 以下是本篇文章正文内容 下面案例可供参考一 实现功能该简易记事本主要可实现以下几个功能 1 菜单中有 文件 编辑 格式 三个主菜单 2 文件 有 打开 保存 退出 三个子菜单 分别用于打开文件 保存文件 退出记事本 3 编辑 中有 剪切 复制 粘贴 三个子菜单 用于剪

    2025年6月27日
    6
  • 犀利!分清候选码和主码

    犀利!分清候选码和主码

    2022年3月4日
    53
  • react中类组件传值,函数组件传值:父子组件传值、非父子组件传值[通俗易懂]

    react中类组件传值,函数组件传值:父子组件传值、非父子组件传值[通俗易懂]react中父子组件传值

    2022年5月17日
    33
  • AcceptEx浅析

    AcceptEx浅析AcceptEx函数的定义如下:BOOLAcceptEx(  SOCKETsListenSocket,       SOCKETsAcceptSocket,       PVOIDlpOutputBuffer,       DWORDdwReceiveDataLength,   DWORDdwLocalAddressLength,   DW

    2026年4月18日
    4
  • 体育赛事视频直播方案「建议收藏」

    体育赛事视频直播方案「建议收藏」播已经走入千家万户。各种领域的直播应用、平台如雨后春笋般的涌现。这当然也包括各种体育赛事的直播如篮球赛事直播,足球赛事直播,排球赛事直播等等。对于体育迷来说,NBA、西甲、英超、德甲、意甲、中超、CBA这些比赛是最熟悉不过的了。作为观赏赛事者有很多选择:Zhibo.tv: 直播TV最精彩的体育娱乐直播平台。乐视体育: 让每个人更好的参与体育。企鹅直播: 最全体育赛事视频直播平台。

    2022年7月23日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号