1.java中的数组是一种引用数据类型。不属于基本数据类型。数组的父类是Object。
2.数组实际上是一个容器,可以同时容纳多个元素。(数组相当于是一个数据的集合。)
  数组的字面意思是"一组数据"
3.数组当中可以存储"基本数据类型"的数据,也可以存放"引用数据类型"的数据。
4.数组因为是引用类型,所以数组对象是在堆当中的。(数组是存储在堆当中)
5.数组当中如果存储的是"java对象"的话,实际上存储的是对象的引用,或者叫内存地址。
6.数组一旦创建,在java中规定,长度不可变。
7.数组的分类:一维数组,二维数组,三维数组...多维数组(一维数组用的比较多,二维数组偶尔使用)
8.所有的数组对象都有一个length属性(java自带的),用来获取数组的个数。
9.java中的数组要求数组中的元素的类型统一。
  比如int类型的数组那么只能存储int类型,Person类型的数组只能存储person类型
10.数组在内存方面存储的时候,数组中的元素地址(存储的每一个元素都是有规则的挨着排列的)是连续的。
  这是数组存储元素的特点。数组实际上是一个简单的数据结构。
11.所有的数组都是拿第一个小方块的内存地址作为整个数组对象的内存地址。(数组中首元素的内存地址作为整个数组对象的内存地址)。
12.数组中每一个元素都是有下标的,第一个元素是0,以1开始递增 。最后一个元素的下标是length -1
下标非常重要,因为我们对数组中的元素进行"存取"的时候,都需要通过下标来进行。
12.数组这种结构的优点是什么?缺点是什么?、
优点:
  查询/检索某个下标上的元素效率极高。可以说是查询效率最高的数据结构。
为什么检索效率高?
  1.每一个元素的内存地址在空间存储上是连续的。
  2.每一个元素的类型是相同的,所以占用的空间大小一样
  3.知道每一个元素的内存地址,知道每个元素占用空间的大小,又知道下标记,
  所以通过一个数学表达式就可以算出来某个下标上元素的内存地址。直接通过内存地址定位元素,所以检索效率最高。
 
数组中存储100个元素或者100万个元素,在元素检索/查找方面,效率是相同的。
因为数组的元素不会一个一个去找,是通过数学表达式计算出来的(算出一个内存地址,直接进行定位)。
 
缺点:
  1.由于为了保证数组中每一个元素的内存地址连续,所以在数组上随机删除或者增加元素的时候 ,效率较低,因为随机增删元素会导致后面的元素统一向前或者向后位移的操作。
  2.数组不能存储大数据量,为什么?
  因为很难在内存空间上找到一块特别大的连续的内存空间。
 
13.注意:对于数组中最后一个元素增删,是没有效率影响的。
14.怎么声明一个一维数组呢?
下面的是语法格式:
  int[ ]array1;
  double[ ]array2;
  boolean[ ]array3;
  String[ ]array4;
  Object[ ]array5;
15.怎么初始化一个一维数组呢?
  包括2中方式:一种是静态初始化一维数组,动态初始化一维数组。
  语法格式是:
    静态初始化一维数组:
    int[ ] array = {100,200,300,55};
  动态初始化一维数组:
    int[ ] array = new int[5]; //这里的5表示数组的元素个数
    //舒适化一个5个长度的int类型数组,每个元素默认值0
    String[ ] array = new String[ 6];
    //初始化6个长度的String类型数组,每个元素默认值为null.

Java 数组及数组的优点与缺点的更多相关文章

  1. JAVA数据结构--Array数组实现

    所谓数组,是有序的元素序列. [1]  若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数字编 ...

  2. Java编程基础-数组

    一.数组的定义. 1.数组的含义:数组是一组具有相同数据类型的元素的有序集合.数组可以分为一维数组和多维数组.(数组是一个引用类型的容器,从0开始编号存储相同数据类型的数据.) 2.数组的定义语法格式 ...

  3. 黑马程序员——JAVA基础之数组

    ------- android培训.java培训.期待与您交流! ---------- 数组: 数组的定义: 数组是相同类型数据的集合, 描述的是相同类型的若干个数据按照一定的先后顺序排列组合而成,其 ...

  4. 【JAVA零基础入门系列】Day10 Java中的数组

    什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...

  5. 关于java中的数组

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

  6. Java中的数组与集合

    此文转载自:http://student-lp.iteye.com/blog/2082362 在java编程的过程中,我们不能确定某一类型的对象到底会需要多少,为了解决这个问题,java提供了容纳对象 ...

  7. Java基础:数组的声明,循环,赋值,拷贝。

    数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a真正的初始化为一个数组 ...

  8. (转载)Java里新建数组及ArrayList java不允许泛型数组

    java中新建数组: String[] s;//定义的时候不需要设置大小 s = new String[5];//为数组分配空间时就要设置大小   对于ArrayList, ArrayList< ...

  9. Java反射遍历数组

    日志中有时候需要查看数组中的值,但是重载很多的打印函数,觉得很别扭.所以想通过反射,获取数组中的值,打印出来.Java提供了数组反射操作的类,之前没有关注过,提供的方法简单易用. public sta ...

  10. 《数据结构》 java的一维数组的内存结构与其特性

    1{数组的概念: 数组是相同类型变量的集合,可以使用共同的名字引用它.数组也可以被定义为任何类型,可以是一维或者二维的.数组的访问时通过其对应的下标来实现的.数组提供了一种将有联系的信息便利分组的方式 ...

随机推荐

  1. k8s加入新的master节点出现etcd检查失败

        背景:     昨天在建立好新的集群后,出现了新的问题,其中的一台master节点无法正常工作.虽然可以正常使用,但是就出现了单点故障,今天在修复时出现了etcd健康检查自检没通过.      ...

  2. 实现自定义注解,实现ioc与aop

    实现自定义注解主要分三个步骤: 1.定义自己的注解类. 注解类默认继承Annotation接口. 且注解内的属性默认public(要给别人用的) 属性可以定义默认值也就是不给你的属性传值也会拥有默认. ...

  3. python类详解

    类封装 继承 多态一静态属性1.静态变量和静态方法都属于类的静态成员,它们与普通的成员变量和成员方法不同,静态变量和静态方法只属于定义它们的类,而不属于某一个对象.2.静态变量和静态方法都可以通过类名 ...

  4. python程序,实现以管理员方式运行程序,也就是提升程序权限

    quest UAC elevation from within a Python script? 我希望我的Python脚本能够在Vista上复制文件. 当我从普通的cmd.exe窗口运行它时,不会生 ...

  5. mysql迁移:mysqldump导出数据库

    问题描述:要将一个mysql中六个数据库导出来,使用mysqldump导出 mysqldump使用语法:mysqldump -uroot -p -S /data/mysql/db_itax_m/mys ...

  6. 手动编写Swagger文档与部署指南

    Swagger介绍 在Web开发中,后端开发者在完成接口开发后,需要给前端相应的接口使用说明,所以一般会写一份API文档.一般来说,有两种方式提供API接口文档,一种是利用插件在代码中自动生成,另一种 ...

  7. HDCTF_2023

    pwnner 附件 有后门函数,seed是一个固定值, //伪随机数 #include <stdio.h> #include <stdlib.h> int main() { i ...

  8. day05-优惠券秒杀01

    功能03-优惠券秒杀01 4.功能03-优惠券秒杀 4.1全局唯一ID 4.1.1全局ID生成器 每个店铺都可以发布优惠券: 当用户抢购时,就会生成订单,并保存到tb_voucher_order这张表 ...

  9. Apache ShenYu 学习笔记一

    1.简介 这是一个异步的,高性能的,跨语言的,响应式的 API 网关. 官网文档:https://shenyu.apache.org/zh/docs/index 仓库地址:https://github ...

  10. selenium控制文件下载位置

    selenium控制文件下载位置 我们在自动化下载文件的时候势必存在一种需求: 通过chrome将文件保存到指定位置 1. google窗口实现 ​ 配置'prefs'将文件下载到指定位置, 并通过判 ...