变量,内存中的一块空间,其有三要素:数据类型、变量名、变量值。在授课过程中我经常把内存比喻成宾馆,那么变量也就是宾馆里的房间,房间对应着:房间类型、房间号、入住客人。Java程序在运行过程中需要使用变量来存放值,就像一个人要入住宾馆,那么需要确定入住的房间类型,对应的房间号,最后入住进房间,变量的使用过程也是如此。当程序逐渐变得复杂后,需要的变量越来越多,就像一个旅游团要入住宾馆的20个标间,如果一个一个的办理显然太麻烦、效率太低了,数组恰好能解决这个问题。

在JAVA中我们通过三个元素来描述变量:变量类型,变量名以及变量值。

变量,就是可以改变的量。

举例:
int 表示能存储整数类型的数据类型
int a;表示你定义了一个存储整数的变量,a就是你的变量名;
int a = 10;表示你给这个变量赋的值为10;

Java中变量的使用规则:
1、Java 中的变量需要先声明后使用;
2、变量使用时,可以声明变量的同时进行初始化,也可以先声明后赋值;String love="imooc";或者String love;love="I love imooc";
3、变量中每次只能赋一个值,但可以修改多次;
4、main 方法中定义的变量必须先赋值,然后才能输出;
5、虽然语法中没有提示错误,但实际开发中,变量名不建议使用中文,容易产生安全隐患,如后期跨平台操作时出现乱码。

数组,数据类型相同且内存空间连续的一组变量的集合,其特点如下:
一、数据类型相同;
二、内存空间连续,遍历效率高;
三、长度固定。
对于数组这种批量式的内存订购方式,大大提高了使用效率,但是数组的某些特点也是其缺点:
一、数组的数据类型相同,但是在开发过程中,很多变量的数据类型是不同的;
二、数组的长度固定,在程序运行过程中,很多数据的长度是无法判定的,如果长度太小不够用的,长度太大又浪费内存。
在开发过程中的大量数据往往数据类型不同,且长度不固定,这时Java的集合框架能解决数组的问题。
Java的集合框架存储的是Object类型的数据,换而言之可以存放任意类型的数据,而且可以动态的改变长度,使用起来比数据具有更大的灵活性。在Java的集合框架中既有基于数组存储方式的List集合,又有基于key-value存储的Map集合,Java集合框架如下图:
 
下面解读一下Java集合框架图:
1、Collection接口是一个允许元素重复的接口,主要包括List和Set两大分支接口:
List接口是基于数组的存储方式,存放的数据是有序、可重复的,List的实现类包括LinkedList, ArrayList, Vector, Stack;
Set接口是一个元素值唯一的集合,实现类包括散列集HashSet、链式散列集LinkedHashSet和树形集TreeSet。
2、Map接口是基于key-value的存储方式,通过key来访问value值,其中key是唯一的,当key值发生重复后,会进行key值的覆盖。实现类包括HashMap,TreeMap,WeakHashMap;
3、Iterator遍历集合工具,由于Collection的实现类都要实现iterator()函数,所以遍历集合时可以采用;
4、Arrays和Collections是操作数组和集合的工具类。