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. 用Abp实现双因素认证(Two-Factor Authentication, 2FA)登录(一):认证模块

    @ 目录 原理 用户验证码校验模块 双因素认证模块 改写登录 在之前的博文 用Abp实现短信验证码免密登录(一):短信校验模块 一文中,我们实现了用户验证码校验模块,今天来拓展这个模块,使Abp用户系 ...

  2. python数据类型、变量以及编码和字符串、格式化

    1.数据类型包括整型.浮点型.字符串.布尔型. 整数如果位数太多可以用_隔开,浮点数可以用科学记数法表示,字符串要用单引号或者双引号括起来,布尔型的值只能为True和False 2.变量可以由数字.字 ...

  3. LeeCode 317周赛复盘

    T1: 可被3整数的偶数的平均值 思路:数组遍历 被3整数的偶数 \(\Leftrightarrow\) 被6整数的数 public int averageValue(int[] nums) { in ...

  4. day16:Linux常用命令

    Linux中目录含义 /bin 存放普通用户的命令文件/boot 存放系统启动文件/cdrom 存放读取光盘的相关文件/dev 设备文件 /etc 配置文件/home 家目录/lib 库文件/lib6 ...

  5. 帝国cms随机sql语句,mysql高效的随机查询

    select * from AppleStorewhere rand()<0.015limit 100;

  6. ROS机器人SLAM创建地图

    ROS机器人SLAM创建地图 连接小车 ssh clbrobot@clbrobot 激活树莓派 roslaunch clbrobot bringup.launch 开启雷达 打开另一个终端输入: ss ...

  7. 省市县树形结构打印-.netCore控制台程序

    using CityJson;using Dapper;using Newtonsoft.Json;{ using (var db = DbHelper.Db()) { //数据格式 //code_p ...

  8. JavaFx 实现水平滚动文本(跑马灯效果)

    原文地址: JavaFx 实现水平滚动文本(跑马灯效果) - Stars-One的杂货小窝 本文是以TornadoFx框架进行编写,各位使用JavaFx可以参考 代码已经封装在common-contr ...

  9. Django笔记三十五之admin后台界面介绍

    本文首发于公众号:Hunter后端 原文链接:Django笔记三十五之admin后台界面介绍 这一篇介绍一下 Django 的后台界面使用. Django 自带了一套后台管理界面,可用于我们直接操作数 ...

  10. 2022-02-21:不含连续1的非负整数。 给定一个正整数 n ,返回范围在 [0, n] 都非负整数中,其二进制表示不包含 连续的 1 的个数。 输入: n = 5 输出: 5 解释: 下面是带

    2022-02-21:不含连续1的非负整数. 给定一个正整数 n ,返回范围在 [0, n] 都非负整数中,其二进制表示不包含 连续的 1 的个数. 输入: n = 5 输出: 5 解释: 下面是带有 ...