「这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战」
相关文章
Java随笔记:Java随笔记
- 刚下班到家。。。无能为力。。。水,就硬水~
1、函数
1)函数的定义:就是定义在类中的具有特定功能的一段独立小程序。函数也被称为方法。
格式:
修饰符 返回值类型 函数名 (参数类型 形式参数1 , 参数类型 形式参数2 , .... ){
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该函数运算后的结果,该结果会返回给调用者。
注意:返回值是void时,return可以省略。
范例:
//对两个数值进行相加,并且返回 和 的值
public static int plus(int a , int b){
return a+b;
}
2)函数的特点:
定义函数可以将功能代码封装。
便于对该功能的复用。
函数只有被调用才被执行。
函数的出现提高了代码的复用性。
注意:函数中只能调用函数,不可以在函数内部定义函数。
定义函数时,函数的结果应该返回调用者,交由调用者进行处理。
3)函数的应用:
栈:先进后出
4)函数的重载:overload
概念:
在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
特点:
与返回值类型无关,只看参数列表。
好处:
方便于阅读,优化了程序设计。
示例:
//返回两个整数的和
public static int add(int x,int y){return x+y;}
//返回三个整数的和——参数个数不同
public static int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和——参数类型不同
public static double add(double x,double y){return x+y;}
范例:打印自定义乘法口诀表
public static void printCFB(int num){
for(int x = 1; x <= num; x++){
for(int y = 1; y <= x; y++){
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
public static void printCFB(){
for(int x = 1; x <= 9; x++){
for(int y = 1; y <= x; y++){
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
解析:
传几过来就打印到几的乘法口诀表,不传值打印 9*9 乘法口诀表
2、数组
1)定义:
概念:同一数据类型数据的集合。其实数组就是一个容器。
好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
格式1:
元素类型[] 数组名 = new 元素类型[元素的个数或者说数组长度];
示例:int[] arr = new int[5];
格式2:
元素类型[] 数组名 = new 元素类型[]{元素,元素,元素,.......};
示例:int[] arr = new int[]{1,2,3,4};
int[] arr = {1,2,3,4};
2)内存分配及特点:
内存划分:
寄存器
本地方法区
方法区
栈内存:特点是处理速度快
存储都是局部变量(方法内的变量,只在当前方法内有用,如:形式参数,方法内变量,for循环内的参数)。
一旦变量离开自己的作用域,其内存就会被自动释放。
所有变量都在栈里面。除了静态变量。
局部代码块:
{
int a = 3;//限定局部变量的生命周期,运行完立马释放
}
堆内存:
存储的是对象。凡是 new 建立的都存在堆中。
特点是:
每一个实体都有一个首地址值。
堆内存中的每一个变量都有默认的初始化值,根据类型的不同而不同。整数是0、小数0.0或者0.0f、oolean false、char '\u0000'。
垃圾回收机制:引用数据类型(相当于c++中的指针)存储在此。当 arr = null; 引用消失。堆中的对象变成’垃圾‘,’垃圾回收机制‘会进行回收。c++是手动清理,使用析构函数进行回收。
3)操作常见问题:
数组越界:
ArrayIndexOutOfBoundsException
当访问到数组中不存在的角标时,就会发生该异常。
空指针异常:
NullPointerException
当引用型变量没有任何实体指向时,还在用其操作实体,就会发生该异常。
4)常见操作:
核心思想:就是对角标的操作
遍历:循环遍历
长度:arr.length
存: arr[0] = 1;
取: arr[i];
最值操作:
最大值或最小值
int[] arr = {1,2,3,6,5,4};
int max = 0;//存储最大值
for(int i = 0; i <= arr.length-1; i++){
if(arr[i]>max){
max = arr[i];
}
}
System.out.println("该数组最大值为:"+max);
排序和查找:单独写一篇详细解析!
选择排序:
冒泡排序:
5)数组的应用:
如果数据出现了对应关系,而且对应关系的一方是有序的数字编号,并作为角标使用,这时候要想到使用数组。
6)数组中的数组:
二维数组:
格式1:int[][] arr = new int[3][2];
定义了名称为arr的二维数组。
二维数组中有3个一维数组。
每一个一维数组中有2个元素。
给第一个一维数组的元素角标写法为:arr[0][1] = 78;
格式2:int[][] arr = new int[3][];
二维数组中三个一维数组。
每一个一维数组的初始化值为null。
可以对这三个一维数组分别进行初始化。
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];
格式3:int[][] arr = {{1,2},{2,3,7},{6,7}};
遍历:
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[i].length; j++){
System.out.print("arr" + arr[i][]j);
}
}
路漫漫其修远兮,吾必将上下求索~
如果你认为i博主写的不错!写作不易,请点赞、关注、评论给博主一个鼓励吧~hahah
今天的文章Java函数和数组 | Java随笔记分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/16685.html