博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 数组对象
阅读量:6689 次
发布时间:2019-06-25

本文共 1378 字,大约阅读时间需要 4 分钟。

数组是一种能够通过位置索引,快速、随机地存取其中元素的集合数据结构。

对象类型

In the Java programming language, arrays are objects (§4.3.1), are dynamically created, and may be assigned to variables of type Object (§4.3.2). All methods of class Object may be invoked on an array.

注意:数组元素(内容)本身可以是基本数据类型或对象引用类型,但是数组变量(引用)则指向数组对象。数组对象并非是从某个类实例化而来,而是由 JVM 直接创建的。因此查看数组对象类名的时侯会发现都是一些奇怪的类似于 "[I" 这样的字符。

数组对象的父类是 java.lang.Object,所以可以调用 Object 类中的所有方法如 toString()。

实现如下:

public String toString() {    return getClass().getName() + "@" + Integer.toHexString(hashCode());}

每个数组对象对应的类,可以通过 RTTI(Run-Time Type Information)于运行时检查

char[] c = {'a', 'b', 'c'} int[] i = {1, 2, 3}long[] l = {1l, 2l, 3l}float[] i = {1f, 2f, 3f}String[] s={"aa","bb","cc"};System.out.println(c);System.out.println(i);System.out.println(l);System.out.println(f);System.out.println(s);

Output:

[C[I[J[F[Ljava.lang.String

数组对象可以获取长度属性(只读) length。

数组是不可变的,指的就是数组长度内的内存空间。数组元素的内容允许通过赋值形式改变,而对数组变量赋值则会指向不同数组对象。

有关内存分配:

声明数组只是分配固定的引用空间大小,由于尚未赋值不指向任何数组对象。
数组对象一定存放在堆上,数组变量则不一定。不管是基本类型变量,还是对象引用类型变量,只要是局部变量就存放在上,对象引用类型变量指向的对象则一定存放在上。

数组使用

Java 是一门强类型、静态类型语言,编译器会根据数组的声明类型防止放入错误类型。

数组初始化方式:

case 1:

int[] arr = {1, 2, 3};

case 2:

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

case 3:

int[] arr = new int[3];arr[0] = 1; arr[1] = 2; arr[2] = 3;

bad case 1: 不能在给定初始值的同时给定长度

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

初始值已经决定数组长度,若再给出长度限制,两者不一致 Java 将无法正常工作。

我们通过数组变量结合位置索引,即可操作数组中的元素。

转载地址:http://mfeao.baihongyu.com/

你可能感兴趣的文章
Tomcat JDBC pool源码部析
查看>>
Windows 2003 服务器英文版本安装中文语言包
查看>>
非域环境下安装并配置Project Server 2007(三)
查看>>
Python 多进程开发与多线程开发
查看>>
Windows Server 2008 R2入门之用户管理
查看>>
技术演练_维护底层模块的变动自由度
查看>>
Tokyo Cabinet和Tokyo Tyrant简介
查看>>
攻克私有云通杀神器proxmox
查看>>
对比Windows 8模拟器(Simulator)和Windows Phone仿真器(Emulator)
查看>>
利用Shell开发跳板机功能脚本案例
查看>>
《Cisco交换机配置与管理完全手册》(第二版)前言和目录
查看>>
Javascript诞生记:C语言和Self语言X的产物
查看>>
你不是菜鸟(10):哥们儿,请放下大侠的“身段”
查看>>
SANS:2018年度事件响应调查报告
查看>>
微软云创益大赛颁奖仪式现场
查看>>
DPM2012系列之十九:配置辅助备份服务器
查看>>
xmanager5连接CENTOS6
查看>>
《微软云计算Microsoft Azure部署与管理指南》即将上市!!!
查看>>
SpreadJS纯前端表格控件V11.1震撼来袭
查看>>
SIEM期待实时安全分析
查看>>