Java复习巩固

技术Java复习巩固 Java复习巩固第三天:数组,方法
1.什么是数组
数组:内存中开辟的一块连续的空间,是用来临时存储同种数据的,要想永久性存储数据,可以存储在数据库里面,也可以通过流存储到文件中。

Java评论整合

第3天:数组、方法

1.什么是数组?

数组:在内存中打开的连续空间,用于临时存储同类数据。如果要永久存储数据,可以通过流将其存储在数据库或文件中。

为什么有数组(必需)?

因为我们需要一次存储多个数据,而之前学过的变量一次只能存储一个数据。

数组和变量之间的区别

1.变量是内存中的一个小空间,而数组是内存中的一个连续空间。

2.变量一次只能存储一个数据,而数据一次可以存储多个数据。

3.内存中变量的分布是无序的、杂乱的、随机的,而数组分布是连续的、有序的。

4.变量没有默认值,而数组有默认值。

定义数组的两种方法(动态声明和静态声明)

1.动态定义

数组类型[]数组名称=新数据类型[数组长度];

示例:int[]arr=new int[10];//在内存中打开一个长度为10的连续空间。

如何给数组赋值需要索引(下标、角度)的帮助。

在计算机中,下标通常从0开始。

赋值方法:数组名[下标]=值;示例:arr[0]=1;

取值方式是通过下标(index) :arr[0]输出arr[0]得到值。

注意:如果超出数组值的范围,将报告数组角点超出范围的异常。

数组遍历:for(int I=0;长度;I){ 0

system . out . println(' array:' arr[I])

}

数组长度:arr.length数组名称。属性名

数组默认值为:字节短int长3360 0浮点双: 0.0

字符:空字符串:空布尔值:假

数组:静态声明的第二个声明方法

数据类型[]数组名称={value1,value2,valuen };

示例:int[] arr={10,20,30,40 };

特性:一步到位,赋值和长度都可用,数组的长度和值的个数一样多。

思考数组是否只能存储相同的数据类型?初衷是正确的。编译时,数据将统一为相同的数据类型。

基本练习:

1.阵列复制

//阵列的复制

int[] arr={1,2,34,5 };

int[]arr 1=new int[arr . length];

//遍历循环

for(int I=0;一、长度;I){ 0

//将arr数组中的元素复制到arr1

arr 1[I]=arr[I];

}

2.数组合并

//数组的合并

int[] brr={1,2,3,5 };

int[] brr1={4,5,9 };

int[]crr=new int[brr . length brr 1 . length];

for(int I=0;长度;I){ 0

crr[I]=brr[I];

}

//因为上一个brr数组中元素的值已经复制到crr了,现在把brr1的值赋给crr,我就够brr数组的长度了。

for(int I=0;i brr1.lengthI){ 0

crr[brr . length I]=brr 1[I];

}

//遍历crr

for(int I=0;i crr.lengthI){ 0

system . out . print(crr[I]' ');

}

3.找出数组元素的最大值、最小值和和,并反向遍历数组。

//数组最大值和最小值之和

int[] arr={1,2,3,4,5 };

int sum=0;

int min=arr[0];//默认数组的第一个元素是最小值。

int max=arr[0];//默认数组的第一个元素是最大值。

for(int I=0;一、长度;I){ 0

if (arr[i]max){

max=arr[I];

}

if(arr[I]min)}

min=arr[I];

}

sum=arr[I];//先遍历数组中的元素,然后累加。

}

System.out.println('数组长度:' arr . length ');

system . out . println(' sum=' sum ');

system . out . println(' max:' max ');

system . out . println(' min:' min ');

//依次遍历数组。

for (int i

= arr.length-1; i =0 ; i--) {
System.out.println("数组"+arr[i]);
}

4.从键盘输入一个数字在数字找它的小标并且打印出来。

 //从键盘输入一个数字在数字找它的小标并且打印出来。
        System.out.println("请输入要查找的数据:");
        int[] arr={11,22,333,222,111};
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
          int index=-1;//索引为负数表示数组找那个没有这个数据
        for (int i = 0; i arr.length ; i++) {
            //判断数组中是否有这个数
            if(number==arr[i]){
                index=i;//输出number的小标
                System.out.println(number+"的下标是"+index);
                break;//找到了跳出这个循环
            }
        }
        if (index==-1){
            System.out.println("没有找到这个数据");
        }

2.方法
2. 1 方法是什么,作用
方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
方法就是将某些具有独立的功能的代码,把它包(封装)起来
如何定义方法----可以照着主方法声明
方法定义好之后,使用(调用)方法
如何去定义一个方法
方法的语法结构:
public 返回值类型 方法名(参数1,参数2.....){
方法体;
}
例子:

    //调用方法并输出方法的结果
        System.out.println(FuntionDemo1.sum(1,2));
    }
    //定义方法
    public static int sum(int a,int b){
        return a+b;
    }
}

2.2方法的分类----共分为四类
1.无参无返:没有参数,也没有返回值
例如:public void A{
System.out.println("这是无参无返的方法");
}
自己不用给别人东西,别人也不用给自己东西
一般用于直接输出打印
自己定义方法:
格式:
public static 返回值类型 方法名(参数){
方法体-------这个方法封装的功能代码
}
没有返回值的标志: void
有返回值的标志: return
public static void 方法名(){
方法体
}
static:静态的
void:无返回值的
2.无参有返:没有参数,但是有返回值,调用者不用给方法东西,方法需要返回给调用东西, 自己不用给别人东西,别人需要给自己东西
例如:public int A{
System.out.println("这是无参有返的方法");
return 1;
}
3.有参无返(有参数,没有返回值):调用者给方法东西,而方法不需要给调用者东西
自己给别人东西,而别人不需要给自己东西
huanQian()
public void 方法名(int a){
方法体;
System.out.println("这是无参有返的方法"+a);
}
4.有参有返(有参数有返回值) :自己要给别人东西,别人也要给自己东西
public 参数类型 方法名(参数1,参数2...){
方法体
}
例子:
//变量如果是基本数据类型,必须先赋值,才能去使用,因为基本数据类型没有默认值
//定义方法
public static int sum(int a,int b){
return a+b;
}
2.3参数和返回值进行理解
写好一个方法之后,需要被调用。角色: 方法本身(别人)-----调用者(主方法)(自己)
参数与返回值就是这两个角色之间的数据传递
参数:调用者传给方法的数据
返回值:方法返回给调用者的数据
2.4方法重载的概念
什么是方法重载
方法重载是在同一个类中方法名相同,参数列表不同(参数包含参数个数,参数类型,参数顺序)与返回值无关(跟返回值没有关系)。
面试题方法重载与方法重写的区别
方法重载是在同一个类中方法名相同,参数列表不同(参数包含参数个数,参数类型,参数顺序)与返回值无关(跟返回值没有关系)。
方法重写是在子父类中,子类继承父类的方法,当父类的方法不满足子类时候,我们就可以对父类的方法进行重写。
2.5方法在内存中是如何存储的
@1b6d3586------理解成是数组在内存中位置的表现形式(地址值)
int[] arr=new int[]{1,2,3};
arr这个对象名携带的是一个地址值(对象的引用)例如:xx001
这个地址值指向堆内存中的内存空间。
数组会存储到堆空间中,在堆空间开辟一块空间。
2.6理解形参与实参的区别
什么是形参参数(形式参数)
形参:在自定义方法(方法)的声明上面(参数声明上面)
例子:
int a=10;//实参
System.out.println(A(a))
public int A(int a){//形参
retrun a;
}
什么是实参实际参数
在main方法中定义的一个实际变量
2.7 形参是基本数据类型和引用数据类型时,形参的改变是否对 实参有影响
形参如果是基本数据类型,形参的改变会不会影响实参不会
形参如果是引用数据类型,形参的改变会不会影响实参会
为什么
1.形参是基本数据类型,形参发生改变不会直接影响实参,基本数据类型保存在栈内存中,在栈中开辟一块内存空间可以称为栈帧,
栈帧1和栈帧2本质上是两个不同的空间,没有直接的联系,形参改变之后,方法(method)执行完后,method直接就弹栈了,
被jvm虚拟机中的垃圾回收机制(GC)释放了,跟main方法中的实参没有任何联系。
2.形参是引用数据类型,形参发生改变会直接影响实参,因为中间有地址值做牵引,两个参数指向的是同一个堆内存的地址。
8.使用方法需要注意的细节
细节:
1.方法可以调用其他方法吗可以
2.方法可以调用自己本身吗可以,但是会出现栈内存溢出,因为方法加载进栈中,会占用栈内存的空间,如果一直调用方法本身,最终栈内存空间会消耗完,没有多余的空间去加载了,所有会出现栈内存溢出。
3.方法里面可以写方法吗不可以
无返回值的方法可以有return吗可以,是用来结束方法的,结束(跳出)循环时break。
4.方法中的参数只能是同种数据类型吗不是,可以是不同种类的数据类型的,只是传参数的时候对应好(匹配)参数类型即可。
今日学习感受:
学习java其实比较容易的,有些之前不懂得,现在也有了新的领悟,真的,需要自己一步一个脚印扎扎实实的走好每一步,才能不负自己的付出。
学习java不难,难的是坚持,希望自己能继续,日复一日的坚持下去。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/132068.html

(0)

相关推荐