IDEA中内容辅助键和快捷键
快速成成语句
快速生成main()方法:psvm,回车
快速生成输出语句:sout,回车
内容辅助键
Ctrl+Alt+space(内容提示,代码补全)
快捷键
注释
单行:选中代码,Ctrl+/,再来一次,就是取消
多行:选中代码,Ctrl+shift+/,再来一次,就是取消
格式化
Ctrl+Alt+L
数组定义格式
一次性声明大量的用于存储数据的变量
要存储的数据通常都是同类型数据 例如 学生成绩
数组(array)是一种用于存储多个相同类型数据的存储模型
格式一:数据类型[ ] 变量名
int [ ] arr
定义了一个int类型的数组 数组名是arr
格式二:数据类型 变量名[ ]
int arr [ ]
定义了一个int类型的变量,变量名是arr数组
数组初始化之动态初始化
java中的数组必须先初始化才能使用
初始化:就是为数组中的数据元素分配内存空间,并为每个数组元素赋值
数组初始化方式
动态初始化:初始化时只指定数组长度,由系统位数组分配初始值
格式 : 数据类型 [ ] 变量名 = new 数据类型 [ 数组长度 ]
例: int [ ] arr = new int [ ]
package com.itheima;
public class Test {
public static void main(String[] args) {
int [] arr = new int[3]; //动态初始化
/* 左边: int,说明数组中的元素类型是int类型;
[] ,说明这是一个数组;
arr, 这是数组的名称,
右边,mew ,为数组申请内存空间
int,说明数组中的元素类型是int类型
[],说明这是一个数组
3,数组长度,其实救赎数组中元素的个数
*/
}
}
静态初始化;
数组元素访问
数组变量访问方式:
格式:数组名
数组内部保存的数据的访问方式
格式:数组名[索引]
索引是数组中数据的编号方式
作用:索引用于方位数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名
特征:从0开始;索引是连续的;索引逐一增加,每次加1
ackage com.itheima;
public class Test {
public static void main(String[] args) {
int [] arr = new int[3]; //动态初始化
/* 左边: int,说明数组中的元素类型是int类型;
[] ,说明这是一个数组;
arr, 这是数组的名称,
右边,mew ,为数组申请内存空间
int,说明数组中的元素类型是int类型
[],说明这是一个数组
3,数组长度,其实救赎数组中元素的个数
*/
//输出数组名
System.out.println(arr); //[I@1b6d3586 (内存空间地址值)
//输出数组中的元素
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
[I@1b6d3586
0
0
0
进程已结束,退出代码 0
内存分配
数组在初始化时,会为存储空间添加默认值
整数 0;浮点数 0.0; 布尔值 false;字符 默认是空字符;引用数据类型:默认是null;
int [] arr 所在位置叫栈内存;new int[3]; 所在位置为堆内存;
栈内存:存储局部变量;定义在方法中的变量,例如:arr 使用完毕,立即消失
堆内存:存储new出来的内容(实体、对象)
每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收
数组内存图(单个数组)
package com.itheima;
public class Test {
public static void main(String[] args) {
int [] arr = new int[3]; //动态初始化
/* 左边: int,说明数组中的元素类型是int类型;
[] ,说明这是一个数组;
arr, 这是数组的名称,
右边,mew ,为数组申请内存空间
int,说明数组中的元素类型是int类型
[],说明这是一个数组
3,数组长度,其实救赎数组中元素的个数
*/
//输出数组名
System.out.println(arr); //[I@1b6d3586 (内存空间地址值)
//输出数组中的元素
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
arr [0] = 100;
arr [2] = 200;
System.out.println(arr); //[I@1b6d3586 (内存空间地址值)
//输出数组中的元素
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
[I@1b6d3586
0
0
0
[I@1b6d3586
100
0
200
进程已结束,退出代码 0
多个数组指向相同
例:int [ ] arr2 = arr
arr2和arr指向位置相同,修改一个 另一个也发生改变
数组初始化之静态初始化:初始化时向指定每个数组元素的初始值,有系统决定数组长度
格式:数据类型 [ ] 变量名 = new 数据类型 [] {数据1,数据2,...}
简化格式:数据类型[] 变量名 = {数据1,数据2...}
数组操作的两个常见小问题
1.索引越界
2.空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常
数组常见操作
遍历:
获取数组元素数量
格式:数组名.length
例: arr.length
通用格式
int arr [ ] = {........};
for(int x=0;x<arr.length;x++)
{
arr [x];
}
package com.itheima;
public class Test {
public static void main(String[] args) {
int [] arr = {111,222,333,444,555,666,777,888,999};
// System.out.println(arr[1]);
for (int x = 0;x<arr.length;x++)
{
System.out.println(arr[x]);
}
}
}
111
222
333
444
555
666
777
888
999
进程已结束,退出代码 0
获取最值
package com.itheima;
public class Test {
public static void main(String[] args) {
int [] arr = {23,13,18,56,8,6,19,56,27};
int max;
max = arr[0];
for (int x=0;x<arr.length;x++)
{
if(max<arr[x])
{
max=arr[x];
}
}
System.out.println(max);
}
}
56
进程已结束,退出代码 0
方法概述
方法是将具有独立功能的代码块组成的一个整体,使其具有特殊功能的代码集
方法必须先创建才可以使用,该过程称为方法定义
方法创建后不是直接运行的,需要手动使用后才执行,该过程成为方法调用
方法定义格式
public static void 方法名()
{
方法体;
}
方法调用格式
方法名();
带参数方法定义
格式: public static void 方法名(参数){..........}
单个参数格式:public static void 方法名 (数据类型 变量名){...........}
多个参数格式:public static void 方法名(数据类型 变量名1,数据类型 变量名2,....){.......}
注意:方法定义时 参数中的数据类型与变量名都不能缺少,缺少程序将报错
形参和实参
形参:方法定义中的参数
实参:方法调用中的参数
带返回值的方法定义
格式: public static 数据类型 方法名(参数)
{
return 数据;
}
数据类型 变量名 = 方法名(参数);
方法的返回值通常会用变量接受,否则该返回值将无意义
方法注意事项
1.方法不能嵌套定义
2.void表示无返回值,可以省略return ,也可以单独的书写 return,后面不加数据
方法的通用格式
格式:public static 返回值类型 方法名(参数){
方法体;
return 数据;
}
定义方法时,第一要明确方法操作完毕之后石头有返回数据,如果没有写void;如果有,写对应的数据类型;第二要明确参数的类型和数量
方法重载:指一个类中定义的多个方法之间的关系,满足下列条件的多个方法互相构成重载
多个方法在同一个类中;
多个方法具有相同的方法名;
多个方法的参数不相同,类型不同或者数量不同
重载只对应方法定义
方法重载练习
方法的参数传递
对于基本数据类型的参数,形式参数的改变,不影响实际参数的值