一.IDEA
IDEA全称IntelliJ IDEA,是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具。
集成环境:把代码编写,编译,执行,调试等多种功能综合到一起的开发工具。
二.IDEA项目结构介绍
project(项目、工程):淘宝、京东等网站都属于一个一个的项目,IDEA中就是一个一个的project。
module(模块):一个项目中可以存放多个模块,不同的模块存放不同的业务功能代码。
Package(包):一个模块中可存放多个包,使用包来管理类文件。
Class(类):在类中编写代码。
三.IDEA常用快捷键
psvm+回车:快速生成main方法
sout+回车:快速生成输出语句
alt+1:打开或隐藏工程目录结构
alt+4:打开或隐藏控制台
Ctrl+alt+l :格式化代码
Alt+enter :代码修正提示(针对代码的错误,给出的解决方案)
Ctrl+d :向下复制一行
Ctrl+x :剪切当前行
Ctrl+shift+/ :批量加入多行注释,再按一次就是取消
Ctrl+/ :批量加入单行注释,再按一次就是取消
Alt+shift+”向上的箭头”:上移当前行
Alt+shift+”向下的箭头”: 下移当前行
四.IDEA操作模块
对模块进行remove,只是在列表中删除了,在硬盘中还有。
五.数组
1.数组的定义:数组是一种容器,用来存储同种数据类型的多个值。
理解:数组容器在存储数据的时候,需要结合数据类型考虑。
建议:容器的类型,和存储的数据类型保持一致。
2.数组的定义格式:
格式一:数据类型 [] 变量名
格式二:数据类型 变量名[]
3.数组的动态初始化
注:java中的数组必须先初始化,然后才能使用。
所谓初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
数据类型 [] 变量名=new 数据类型[数组长度];
案例://通过new关键字创建了一个int类型的数组容器,该容器可以存储5个int类型的整数,该容器被arr数组变量所记录.
int[] arr=new int[5];
注意:打印数组变量的时候,会打印出数字的内存地址。
比如,打印了arr,结果: [I@1b6d3586
@:分隔符
[ : 当前的空间是一个数组类型
I : 当前数组容器中所存储的数据类型
1b6d3586:十六进制内存地址
4.数组元素的访问
格式:数组名[索引]
索引:是数组中空间的编号
索引的特征:从0开始
索引是连续的
索引逐一增加,每次加1
索引的作用:访问数组容器中的空间位置。
注意:数组在创建完毕后,即使没有赋值,也可以取出,但取出的元素都是默认初始化值。
5.Java中内存分配
java程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分。每一片区域都有特定的处理数据方式和内存管理方式。
寄存器:交给cpu去使用
本地方法栈:调用操作系统相关资源
栈内存:方法运行时,进入的内存;局部变量都存放于这块内存中。
堆内存:new出来的内容都会进入堆内存,并且会存在地址值。
方法区:字节码文件(.class文件)加载时进入的内存。
注意:每new一次,在堆内存中,都是一块新的空间,堆内存中的空间地址不会出现重复的现象。
数据类型 默认值
整数 0
浮点数 0.0
布尔 false
字符 空字符
引用数据类型 null
注意:引用数据类型:引用、记录了地址值的变量,所对应的数据类型,就是引用数据类型。
理解:数组类型的变量应该记录的是地址值。
6.数组的静态初始化
1. 静态初始化:初始化时,就可以指定数组要存储的元素,系统还会自动计算出该数组长度。
格式:数据类型[]变量名=new 数据类型[]{数据1,数据2,数据3,......};
简化格式:数据类型 [] 变量名={数据1,数据2,数据3,......};
7.静态初始化与动态初始化的区别对比
静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度。(需求中已经明确了要操作的具体数据)
动态初始化:手动指定数组长度,由系统给出默认初始化值。 (只明确元素个数,不明确具体数值,推荐使用动态初始化)
8.数组操作的两个常见问题
1.索引越界:访问了数组中不存在的索引,造成索引越界问题。案例如下:
int [] arr=new int[3];
System.out.println(arr[10]);
会报如下错误:
.ArrayIndexOutOfBoundsException(数组索引越界)
2.空指针问题:访问的数组已经不再指向堆内存的数据,造成空指针异常。案例如下:
int [] arr=new int[3];
arr=null;
System.out.println(arr[2]);
会报如下错误:
NullPointerException(空指针异常)
注意:null(空值),引用数据类型的默认值,表示不指向任何有效的对象。
9.数组常见操作
动态获取数组元素个数:数组名.length
遍历通用格式:
int [] arr={....};
for (int i =0;i<arr.length;x++){
arr[i]
}
注意:遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印。