`

[#0x0003] array: reference and initialization

    博客分类:
  • Java
阅读更多

1. array reference


  可以用这么一种观点审视数组:数组其实是一个特殊的类,我们在声明数组时得到的是数组对象的引用。
  例如说:

int[] a;//得到的a即是int[]对象的一个引用

  此时int[]对象还没有初始化,我们只得到一个引用而已,所以int[]对象的length不确定,所以Java禁止类似这样的写法:

int[5] a;//syntax error

从引用的角度来说,声明引用时也没必要知道int[]的length:那是int[]对象的事情,不管length是多少,引用本身还是一样的。

2. initialization of an array


  数组的初始化只能通过{}来进行,有2种方式:

int[] a = {1, 2, 3};
int[] b = new int[] {1, 2, 3};

 其中new int[] {}形式可以直接用来传递数组参数,如:

function(new int[] {1, 2});

  

  还有一种形式只能用来声明数组引用:

int[] c = new int[x];//x可以是变量、常量、magic number、表达式……只要能产生一个value即可

  

  以下的形式是不允许的:

int[] d = new int[x] {……};//syntax error
分享到:
评论

相关推荐

    Net: Board Net Initialization Failed No ethernet found.解决方案

    Net: Board Net Initialization Failed No ethernet found.解决方案,如实际开发中有遇到,仅供参考 1. 网卡没有插好或者网卡损坏。 2. 网卡的驱动程序没有正确加载。 3. 网线没有接好或者网线损坏。 4. 网络设备...

    计算机蓝屏代码详解,很全的资料

    #### 0x0000006F: SESSION3_INITIALIZATION_FAILED **解释**:此错误表明在启动过程中,系统初始化 Session 3 时失败。 **可能的原因**: - 系统文件损坏。 - 驱动程序问题。 **解决方法**: - 执行“chkdsk /r”...

    Exploring C++ 11

    #### Exploration 32: Assignment and Initialization - **赋值操作**: 学习各种赋值操作符(如`=`、`+=`等)的使用。 - **初始化**: 掌握不同类型的初始化方式。 - **移动语义**: 了解移动构造和移动赋值的概念。 ...

    oracle 错误一览表

    #### ORA-00065: FIXED_DATE initialization parameter has an invalid value - **描述**:FIXED_DATE 初始化参数有一个无效的值。 - **解决方法**:设置 FIXED_DATE 为有效的值。 #### ORA-00066: LOG_FILES value...

    Problem Solving with C++ (7th edition)

    - **Array Basics**: Introduction to arrays, including declaration, initialization, and accessing elements. - **Multidimensional Arrays**: Explanation of two-dimensional and higher-dimensional arrays ...

    more effective c++

    - **技术**:使用RAII(Resource Acquisition Is Initialization)技术,即在构造函数中获取资源,在析构函数中释放资源。 - **好处**:保证资源的生命周期管理,避免内存泄漏等问题。 #### Item 11:禁止异常信息...

    ora-01033:oracle initialization or shutdown in progress 解决方法

    ### ora-01033: Oracle Initialization or Shutdown in Progress 解决方法 #### 一、问题背景及原因 **标题**: “ora-01033: Oracle initialization or shutdown in progress 解决方法” **描述**: “ora-01033: ...

    more effective C++

    - **RAII原则**(Resource Acquisition Is Initialization):资源在构造时获取,在析构时释放。 - **应用**:通过确保在构造函数中成功初始化资源后才允许对象进入有效状态,可以在异常发生时自动释放资源。 #####...

    #6控制语句:循环.md

    - **语法结构**:`for (initialization; condition; increment) statement;` - **特点**:将循环的初始化、条件判断和增量操作合并到一行代码中。 - **示例代码**: ```c for (int count = 1; count ; count++) {...

    各种阵列卡完全配置图文教程(RAID术语汇编)

    #### Initialization:初始化 初始化是指在创建新的逻辑驱动器时对其进行的首次格式化处理,这个过程会清除原有数据并在磁盘上生成奇偶校验信息。初始化是RAID阵列正常工作的必要条件之一,确保了数据的一致性和...

    Insyde Post Code

    SEC代表安全早期初始化(Security Early Initialization),而PEI代表平台初始化(Platform Initialization)阶段。这两个阶段是UEFI(统一可扩展固件接口)固件的一个组成部分,UEFI是一种现代的固件接口标准,用来...

    XP系统蓝屏解决方法

    #### 十五、0x0000006F: SESSION3_INITIALIZATION_FAILED **故障原因**:与系统初始化过程中的问题有关,通常是由于系统文件损坏或丢失造成的。 **解决步骤**: - 使用系统恢复功能尝试修复系统文件。 - 重装系统...

    More Effective C++(WQ版).pdf

    - 通过RAII(Resource Acquisition Is Initialization)技术自动管理资源。 ##### 5.2 Item 10:在构造函数中防止资源泄漏 - **实践**: - 构造函数中应确保所有资源都被正确初始化。 - 如果构造过程中发生异常,...

    Qt 5.13.2 qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed

    qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed     网上很多说法是libeay32.dll和ssleay32.dll复制到可执行文件里,这个只是解决在Qt Creator下编译运行可以,单独打包不运行...

    C++课程-高质量C++编程_课时_大纲

    - **8.3 RAII(Resource Acquisition Is Initialization)**:介绍RAII设计模式及其在C++中的应用。 ### 第九章:实战项目 - **9.1 设计模式**:学习常用的软件设计模式,如单例、工厂、观察者模式等。 - **9.2 ...

    Addison.Wesley.C++.by.Dissection.2002.pdf

    - **Arrays:** Explains array declaration and usage. - **Passing Arrays to Functions:** Discusses passing arrays as function arguments. - **Problem Solving: Random Numbers:** Provides a problem-solving...

    HP惠普打印机C6180墨水系统故障的排除方

    - 按下“OK”键,打印机开始进行“ONETIME INK INITIALIZATION PROCESS”初始化过程。此过程中不要中断操作,初始化完成后,打印机将自动打印测试诊断报表。 #### 步骤五:打印测试页 - 如果没有自动打印测试报告,...

Global site tag (gtag.js) - Google Analytics