1.要知道,数组也是一种类型。Java数组不是基本类型,而是引用类型。
int是基本类型,但int[] 就是引用类型了。

2.一个数组需指定类型,只能存放一种类型的元素。
如果我们在一个泛型类里面写:

T[] t = new T[5];

这会引发编译错误(CE),因为T并不是可确定的类型。
我们应该这么写:

T[] t = (T[]) new Object[5];

这时会报黄色的Warning (起码Eclipse有),可以用@SuppressWarning(“unchecked”)修饰方法,避免编译警告,但是需要小心ClassCastException。

3.数组长度虽然可以动态确定,但是一旦定长,就不可改变。
毕竟,数组长度的获取是用其length属性获取的,这个属性是public的,但由于被final修饰,只能读不能改。
不允许这样写(CE):

int[] a = new int[5];
a.length = 1;

2.不允许这样写(CE):

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

4.数组变量处存的不是数组元素,而是数组的引用。
举个例子比较形象:
比如有c{1, 2, 3}和d{4, 5, 6, 7},假设数组变量内存区存数组本身,如果有c = d;语句,则c处空间是不够的。这样举例子也许不是那么合适,但是数组变量处确实存的只是引用。

5.数组长度不可变,但是由于所谓的“赋值语句”本质上只是改变了数组变量存放的引用,所以表面上“数组长度可变”,然这是错误的。

6.int[] 是一维数组,int[][] 是二维数组,那么能否从int[]出发扩展到n维数组?
答案是no,因为Java是强类型语言,int[]中引用的是int类型,所以不能再指向int[],这在js里或许可以,但Java中不行。

7.操作数组的类在java.util包里,类名是Arrays,里面有很多static方法可供使用。

8.数组也可以用foreach循环来遍历

9.由于数组是引用类型,所以不new一个对象,默认是null

10.多个相同类型、具有逻辑关系的对象(或基本类型)可以用数组存放。数组随机存取,存取O(1),很方便,而且按索引寻址,很快。但是也是因为数组的“定长”,使得它显得没有集合框架使用方便,比如ArrayList。但是对于编写数据结构,如顺序表、顺序栈等数组很方便;甚至矩阵的压缩存储也是用了一维数组,简单的二维矩阵也可以用二维数组表示…用好数组也是Java的基本能力。

11.Java封装了数组的底层实现,就好比基本类型。但还是要强调:Java数组不是基本类型!

【Java】数组的注意事项相关推荐

  1. java数组实现队列_使用数组在Java中进行队列实现

    java数组实现队列 什么是队列? (What is a Queue?) Queue is a special type of data structure, which is designed to ...

  2. java 数组总结(赋值,反转,添加,查找)

    数组初始化 import java.util.Scanner;public class ArrayTest1{public static void main(String[] args) {//数组定 ...

  3. Java数组初始化, 冒泡排序, 查找

    文章目录 数组快速入门 数组的使用 使用方式1 动态初始化 使用方式2 动态初始化 使用方式3 静态初始化 数组使用注意事项和细节 数组赋值机制 数组翻转 数组扩容 排序的介绍 冒泡排序法 数组的查找 ...

  4. Java 数组定义格式-数组动态初始化-数组元素的访问-数组静态初始化-数组的遍历-数组获取最大值

    数组定义格式: 1.数组概述 在一个班级中,有非常多学生需要存储每位学生的考试成绩. 比如 a=98; b=97; c=96; d=88; -- 1)数组概述:一次性声明大量的用于存储数据的变量; 这 ...

  5. java数组 插入,Java数组添加元素

    本篇文章帮大家学习java数组添加元素,包含了Java数组添加元素使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. 以下实例演示了如何使用sort()方法对Java数组进行 ...

  6. 笔记整理1----Java语言基础(一)01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法

    01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法 第01天 java基础知识 今日内容介绍  Java概述.helloworld案例  工 ...

  7. Java入门学习注意事项有哪些?

    想要学好java技术,做好学习规划路线和注意事项是非常重要的,尤其是零基础学员,Java涉及到的知识点非常多,我们需要制定合理的Java学习路线图,这样会事半功倍,下面小编和大家总结一下Java入门学 ...

  8. java数组简单介绍以及其方法

    小谈一下java数组 数组是存放数据的容器,有两个特点:元素类型唯一,长度固定. 一维数组声明:类型[] 数组名;类型 数组名[];推荐用前一种. 多维数组声明同样是以上要求. 在数组创建时,要注意一 ...

  9. java 数组 反射_java数组的反射

    java数组的反射,有一个JAVA API类可以运用:java.lang.reflect.Array 具体应用: 1:判断一个对象是否是数组: int arr[] = {1,2,3}; Class c ...

最新文章

  1. 经典C语言程序100例之四一
  2. php单例型(singleton pattern)
  3. Dubbo的基本介绍和搭建一个Dubbo环境
  4. vmware.fusion虚拟机下的CentOS使用
  5. c++ 设计模式_设计模式行为型:观察者模式(ObserverPattern)
  6. 英特尔回应苹果换芯:将继续支持老客户,但我的CPU才是最好的
  7. linux内存——/proc/sys/vm/drop_caches
  8. Typora 博文标题自动编号
  9. Blender Python UV 学习
  10. Linux系统目录的作用你了解吗?
  11. secureCRT 下载使用
  12. 通过身份证号查出所在籍贯以及性别。
  13. 编程界的十大天神,都来拜一拜吧
  14. 计算机英语六级时间,计算机一级考试_6月英语六级报名时间
  15. Unity3D组件 | 绘制静态柱状图
  16. 2022 WordPress Tongleer 仿微博社交主题模板
  17. Vue+antd中关于发送请求时候的Loading遮罩层闪烁无法覆盖问题
  18. 【软著】分享一次自己申请软件著作权的历程
  19. 苹果开放降级_潮讯:苹果官网又崩了;微信新功能被群嘲;小米11性能跑分;LOL手游封杀加速器;华为新平板有高刷...
  20. 基于遗传算法的护士排班问题(含Matlab源码)

热门文章

  1. 批量下载,多文件压缩打包zip下载
  2. 测试用例设计方法 - 场景分析法
  3. 关于Jenkins找不到依赖Jar包问题
  4. asp.net之动态页面和静态页面的区别
  5. Apache FtpServer配置步骤总结
  6. DevCon.exe (DevCon Command Line Utility)
  7. 怎样判断电饭锅温度传感器的好坏?_空调温度传感器的作用与检测。
  8. Response响应方法详解
  9. 广域信息服务器,网络工程师之广域信息服务
  10. activemq中怎么知道推送消息是否成功_如何优雅的使用activeMQ 安装、应用、安全认证、持久化...