# 数组结构
数组是编程语言中最常用的一种**数据类型**。可以存储多个数据。
**数组的要点**
* 存放的数据是相同的数据类型
* 数组的长度在定义时就确定了大小,数组是不可变长度的,或者说叫定长
* 数组中可以存放任意的数据类型(包含基本数据类型、引用数据类型、数组)
* 数组本身是引用数据类型(在栈内存中会存储其在堆内存中的引用地址)
**定义语法**
```
type[] 变量名; // 强烈建议用这种命名
type 变量名[]; // 只要知道就可以
```
**数组的初始化**
在 Java 语言中,数组必须先被初始化,才能被使用。所谓的初始化,就是在内存中为数组元素分配空间,并为每个元素赋予初始值。
* 静态初始化:显式的指定每个数组元素的值,由系统来决定数组的大小;
* 动态初始化:只需要指定数组的长度,通过程序动态的给每个元素赋值(即由系统为每个数组元素分配初始值)。
静态初始化
语法:
```
type[] arrayName = {element1, element2,....}; // 比较常见
type[] arrayName = new type[]{element1, element2,...};
```
```java
int[] arrs2;
arrs2 = new int[]{1, 2 ,3 ,4};
int[] arrs = {1, 2, 3, 4}; // 简写
```
动态初始化
语法:
```
type[] arrayName = new type[length];
```
> 数组中的索引,通过 arrayName\[index\] 获取指定位置的数据,index 从 0 开始,最大值为 length-1
* 通过数组索引方式对数组元素进行赋值时,使用数组.length属性作为 for 循环的条件。
* 在对数组元素进行操作时,一般使用 for 循环结构。
```java
for (int i = 0; i < arrs3.length; i++) {
arrs3[i] = (i+1) * 10;
}
for (int i = 0; i < arrs3.length; i++) {
System.out.println(arrs3[i]);
}
```
foreach 遍历数组
```
for (type element : array | collections) {
element...
}
```
实例:
```java
for(int a : arrs3) {
System.out.println(a);
}
```
> 使用 foreach 一般情况下,只用作**遍历数据**,如果要对数组中元素进行修改,还是需要使用 for 循环带索引的方式进行,因为在上述的代码中,a 只是循环元素的一个副本。
课程重点
* 理解各种数据类型在内存中的分配情况
![](https://box.kancloud.cn/4a5bde67b29db9eb22fb9e6c06c3af97_850x593.png)
- 数据库
- 数据库介绍
- MySQL的安装
- SQL
- 表基本操作
- 修改数据语句
- 数据检索操作
- 多表数据操作
- 练习题
- JAVA
- JAVA 介绍
- JAVA 运行原理
- JDK 配置
- 类和对象
- 数据类型
- 变量
- 直接量
- 运算符
- 流程控制
- 数组结构
- 面向对象
- 隐藏和封装
- 深入构造器
- 类的继承
- 多态
- 包装类
- final 修饰符
- 抽象类
- 接口
- 集合框架
- 常用类学习
- 设计模式-单例模式
- 异常处理
- JDBC
- JSP&Servlet
- Web应用
- Tomcat
- JSP
- Scriptlet
- Page 指令
- 包含指令
- 跳转指令
- 用户注册实例
- JSP练习
- 内置对象
- Servlet
- 过滤器
- Web分层思想
- EL表达式
- JSTL
- 分页实现
- AJAX&JSON
- 开发步骤
- 路径问题
- Log4j
- Mybatis框架
- 框架介绍
- Mybatis简单实现
- 表基本操作
- 优化配置文件
- 表字段名与实体类属性名不同的解决方案
- 一对一关联
- 一对多关联
- Spring框架
- IOC/DI
- 注入对象
- 注解方式 IOC/DI
- AOP
- 注解方式AOP
- 注解方式测试
- Spring MVC框架
- Hello SpringMVC
- 视图定位
- 注解方式
- 接受表单数据
- 客户端跳转
- Session
- 中文问题
- 上传文件
- SSM整合
- 整合步骤
- 分页
- PageHelper
- 连接池
- CRUD
- 事务管理
- JSON
- Maven
- 介绍
- 下载与配置MAVEN
- MAVEN仓库
- ECLIPSE中的MAVEN设置
- ECLIPSE下创建MAVEN风格的JAVA项目
- 添加JAR包
- 创建MAVEN风格的JAVA WEB项目
- 创建SSM项目
- 使用ECLIPSE导入一个MAVEN风格的SSM项目
- 教学管理
- 学员名录
- 周测统计
- 20180608
- 20180706
- 20180721
- 课堂作业
- 练习