前言:最近刚刚看完了《Java编程思想》中关于数组的一章,所有关于Java数组的知识,应该算是了解的差不多了。在此再梳理一遍,以便以后遇到模糊的知识,方便查阅。

Java中持有对象的方式,大概有三种:通过对象的Field去持有一个对象(通过组合的方式),通过数组,通过集合容器。这里先看一下通过数组与集合容器持有对象的不同,通过数组持有对象一般是明确我要持有对象的类型,也就是说数组用来持有同一种类型的对象,在jdk1.5之前,相对于集合容器来说,这是数组的一大优点,因为在没有引入泛型之前,可以把任意类型的对象都丢进集合容器中,当把一个对象丢进容器之后,这个对象的类型在运行时,就很难知道了,要想再次使用这个对象,就要进行不安全的向下转型(丢进集合中的对象被向上转型为Object),在jdk1.5引入泛型之后,集合容器也能只持有同一种类型的对象了,所以数组的这一个优势在jdk1.5之后丧失了。相对于集合容器,数组还有一大劣势,就是一个数组对象创建之后,这个数组的大小就固定了,在后续的对于这个数组的操作中,不能扩展这个数组的长度。对于集合容器,创建一个集合容器对象时,无需说明集合容器的大小,想放多少对象在集合中都行。至此,貌似一切都在暗示:集合比数组更方便,数组能做的集合照样可以完成。其实就是这样的,《Java编程思想》的作者也建议:能用集合就不用数组。但是数组作为一个轻量级的持有对象的数据类型,在代码中还是很常见。

其实要想彻底理解数组,只要理解数组作为一种数据类型,在内容中是如何存储的。这样无论是数组的创建,还是初始化,还是数组元素的赋值...都好理解。

(图一张)

1.数组对象的创建:

数组变量的申明有两种方式: int a[] 和 int[] a ,推荐使用后者,因为可以明确这就是一个装有int值的数组。

数组作为一种引用类型的数据类型,数组变量存放的数组对象在堆内存中的引用地址。

一维基本类型的数组:

转载于:https://www.cnblogs.com/wangliyue/p/4103511.html

关于java中的数组相关推荐

  1. java数组创建后大小能改变吗,在Java中,数组创建成功以后,其大小(??? )(能/不能)改变...

    在Java中,数组创建成功以后,其大小(??? )(能/不能)改变 答: 不能 新民主主义革命最基本的动力是(). 答:中国无产阶级 病人,男性,36岁.尿蛋白(++++),全身水肿1个月,测血压16 ...

  2. 四十三、深入Java中的数组流,数据流和对象流操作

    @Author:Runsen @Date:2020/6/8 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  3. Java中 byte[]数组序列化和fastjson序列化区别

    Java中 byte[]数组序列化和fastjson序列化区别 Java中,对于对象可以通过序列化成byte数组或者序列化成json形式,这里做下两者的对比. 首先看下实现方式: 1 byte数组序列 ...

  4. Java中遍历数组使用foreach循环还是for循环?

    这篇文章主要介绍了Java中遍历数组使用foreach循环还是for循环?本文着重讲解for语句的语法并给出使用实例,同时总结出尽量使用foreach语句遍历数组,需要的朋友可以参考下 从JDK1.5 ...

  5. java 静态对象数组_Java静态方法和实例方法 java中的数组作为形参传入

    原标题:Java静态方法和实例方法 java中的数组作为形参传入 Java静态方法和实例方法 java中的数组作为形参传入 Java虚拟机 启动一个Java程序的时候,会诞生一个虚拟机实例,当程序关闭 ...

  6. Java中的数组数据结构需要了解的要点

    首先,数组是Java中的对象.它们不是像int.short或long这样的基本类,也不是具有很多方法的全功能对象,但由于它们是对象,所以它们隐式地扩展了Object,这就是为什么可以使用数组引用(例如 ...

  7. Java中创建数组的几种方法

    Java中创建数组的几种方法 public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intVa ...

  8. java矩阵加法_在java中的数组加法?

    我到目前为止有一个程序要求用户选择一些元素.该程序然后要求用户选择数量由元素数量指示的次数.我将如何使用数组以及while或for循环找到这组数字的方差.我在高中时没有什么特别的感觉.下面是我当前的代 ...

  9. java面试题24 关于Java中的数组,

    java面试题24 关于Java中的数组,下面的一些描述,哪些描述是准确的:(        ) A 数组是一个对象,不同类型的数组具有不同的类 B 数组长度是可以动态调整的 C 数组是一个连续的存储 ...

  10. [转载] Java中Array(数组)转List(集合类)的几种方法

    参考链接: Java中的数组类Array 1.循环.新建List类,循环填充. 2.利用Arrays类的静态方法asList(). Arrays.asList(T[])返回Arrays类的一个内部内L ...

最新文章

  1. Theano学习笔记(三)——图结构
  2. robot framework环境搭建(转)
  3. python2中的print语句可以不用小括号。_Python 2与Python 3的区别
  4. linux文件系统的管理方法,Linux学习笔记:2.文件系统的管理命令(2)
  5. 计算火车运行时间(pta)
  6. 三星出售比亚迪1.6%股份,价值约1.5万亿韩元
  7. 人工智能行业有哪些岗位_电力人有哪些岗位将被人工智能取代?
  8. 基于FTP服务器搭建yum源
  9. mac下webstorm 汉化解决方案
  10. 【思科模拟器实验】交换机路由器基本配置
  11. linux bzip2 命令,Linux bzip2 命令的使用
  12. android toast显示在中间,android Toast 弹出在屏幕中间位置以及自定义Toast
  13. PDF带目录导出java_itextpdf为pdf文件添加目录(可跳转)
  14. Linux 系统调用
  15. 怎样快速找出百度云盘文件夹里分享失败文件
  16. 什么是GPU计算?阿里云国际版有没有GPU计算?-Unirech
  17. vue-router路由防卫
  18. 全连接网络:实现第一个全连接网络
  19. [PCIe] [电源管理] 面向硬件的ASPM链路状态和L1子状态
  20. apple id两步验证服务器,如何开启 Apple ID 两步验证

热门文章

  1. 201621123058《java程序设计》第二周学习总结
  2. JAVA基础——编程练习(二)
  3. Tomcat的类加载器
  4. centos7.0 php-fpm 安装ImageMagic php扩展imagick
  5. Linux CentOS 6.5 + Apache + Mariadb + PHP环境搭建
  6. (一)、http原理
  7. GDI+有Bitmap类。
  8. CSDN网站用户数据库给破了
  9. C# 类构造函数赋值里属性与字段赋值注意项
  10. centos php 开启socket,CentOS 配置PHP支持socket扩展