回顾:
A:1)方法(函数:javascript):
完成一个功能的独立代码块!
2)如何定义方法:
格式:修饰符:public(权限修饰符) static(静态修饰符) 返回值类型 方法名(参数类型1 参数名1,参数类型2 参数名2..){
return 具体结果;
}
返回值类型:数据类型:暂时基本数据类型!(面向对象:返回值类型可以是:类/抽象类/接口)
方法名:给这个独立的代码块起一个名称:方法命名规范.
参数类型:数据类型
参数名:变量名
举例:求和:
public static int sum(int a, int b){
return a+b ;
}
方法的注意事项:
1)方法和方法是平级关系.
2)在main()中调用一个方法,里面的参数不用在跟数据类型!
3)有左{括号的地方不能有分号,有分号的地方不能有左{;
4)方法不调用不执行,采用赋值调用!
没有返回值类型的方法:没有具体的返回值类型,用void
在控制台输出:*形 / 99乘法表/或者一些直接在控制台打印的,都是属于没有返回值类型的方法!
3)方法重载:
overload:在同一个类中,方法名相同,参数列表不同,与返回值类型没有关系!
参数列表不同:
(1):参数类型不同
(2):参数个数不同
B:数组:
1)java中为了提高程序的执行效率,分为以下5个内存:
(1)栈内存:存储的是局部变量:在方法声明上,或者在方法定义中
(2)堆内存:new 出来对象:Scanner sc = new Scanner(System.in);也可以存储成员变量
(3)方法去:包括一些字节码文件区域:class,静态区域:static String:字符串常量池
(4)本地方法区:跟系统有关系
(5)寄存器:cpu
2)数组:可以存储同一种数据类型元素的容器------------------>javaSE高级特性:集合:容器
3)如何定义一个数组:
数据类型[] 数组名:推荐使用
数据类型 数组名[]
4)数组的初始化:
1)动态初始化:给定了数组长度,元素值有系统给定:int :0 double:0.0 ; boolean :false
2)静态初始化:给定数组的元素,长度有系统默认给定
5)动态初始化的定义格式:
数据类型[] 数组名 = new 数据类型[数组长度] ;
int[] arr = new int[2] ;
获取数组的元素:数组名称[索引:从0开始],最大索引:数组长度-1;
6)静态初始化的定义格式:
数据类型[] 数组名 = {元素1,元素2,元素3} ;
int[] arr = {1,2,3} ;
注意:
数组的初始化不能动静结合:错误的!
int[] ar = new int[3]{1,2,3} ; 错误的!
数组中的属性:length:数组长度
面试题:集合中有没有length属性,String中有没有length属性,数组中有没有length属性
7)数组的应用:
(1):遍历数组
int[] arr = [1,2,3] ;
public static void printArray(int[] arr){
System.out.print("[");
for(int x = 0 ; x < arr.length;x++ ){
if(x==arr.length-1){
System.out.println(arr[x]+"]");
}else{
System.out.print(arr[x]+",");
}
}
}
(2):求数组中的最值问题(最大值/最小值):使用方法改进!
1)定义一个数组:静态初始化!
2)将数组中第一个元素作为参照物:int max = arr[0] ;
3)遍历其他元素,让其他元素分别和arr[0]进行比较,如果arr[x]>max ;
for(int x = 1 ; x < arr.length; x++){
if(arr[x] > max){
max = arr[x] ;
}
}
(3):数组中的元素逆序(元素反转):保证数组的长度:arr.length/2
(4):数组元素查表法
(5):查找数组中的元素在数组中第一次出现的索引值!
如果查不到就返回-1;
C:数组中常见的两个异常:
Exception:异常类:
编译时期异常:
运行时期异常:RuntimeException
数组角标越界异常:ArrayIndexOutOfBoundsException:
访问不存在数组的索引!
空指针异常:NullPointerException 解决方案:非空判断
对象是空的,但是还要访问这个对象!