初学javaDay5

今天是初学Java的第五天,我们来看看方法(函数)、方法重载、数组和Java中的内存分配

一、方法

概念:使用{}完成特定功能的代码块!
格式:
修饰符 返回值类型 方法名(参数类型1 参数名2,参数类型2 参数名2…){
代码…
return 结果;
}
格式的解释说明:
1)修饰符: public static 先按照这个格式写(固定)
2)返回值类型: 基本数据类型中的某个 ,最终接收数据的具体结果类型!
3)方法名:给当前代码块{} 起名字
要遵循Java中的标识符:小驼峰命名法
如果是单个单词,全部小写
多个单词,第一个单词小写,其他首字母大写
4)参数
实际参数:具体在参与运算的实际值
形式参数:在方法中传递的参数
参数类型:基本数据类型
参数名:变量名
5)return
将具体参运算的结果—>返回给调用者(谁调用,返回给谁)
6)定义方法的时候,心里有"两个明确"
a)明确返回值类型
b)明确参数个数以及参数类型
函数的调用:
A:明确返回值类型的函数调用
1)单独调用,没有意义,没有结果
2)输出调用,可以实现,但是不推荐,数据写死
3)赋值调用(推荐)
B:void类型的函数调用
没有具体返回值类型方法的调用,只能使用单独调用

二、方法重载

概述:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
特点::函数名相同,参数列表不同,与返回值无关!
参数列表不同分为:
1)参数个数不同
2)参数类型不同

三、数组

数组的概念:
数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。
特点:
1)数组是存储多个变量(元素)的东西(容器)
2)这多个变量的数据类型要一致
一维数组的定义格式:
*格式1:*数据类型[] 数组名; 例:int[] arr ; 定义了一个int类型的数组 ,数组名称是arr
*格式2:*数据类型 数组名[]; 例:int arr[] ; 定义了一个int类型的arr数组

四、Java中的内存分配

Java 程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
存储局部变量
存储new出来的东西
方法区(面向对象部分讲)
本地方法区(和系统相关)
寄存器(给CPU使用)

1:局部变量
a:方法定义中或者方法声明上的所有变量
b:使用完毕,立即消失
2:new出来的东西,实体,对象。
new int[3];
a:每一个实体都有首地址值
b:每一个实体内的数据都有默认值
byte,short,int,long 0
float,double 0.0
char ‘\u0000’
boolean false
引用类型:null
c:使用完毕后,会被垃圾回收器空闲的时候回收

数组中常见的两个小问题:ArrayIndexOutOfBoundsException和NullPointerException
1)ArrayIndexOutOfBoundsException:数组角标越界
出现原因:访问不存在的数组中的角标,属于运行时期异常
解决方案:排查具体原因,具体哪一行角标越界

2)NullPointerException:空指针异常!
出现原因:当一个对象为的引用不存在了,然后还需要使用对象完成一些特定功能!
解决方案:
对当前这个对象进行非空判断
if(对象名称!=null){
//使用对象完成特定的功能
}

今天的学习就到这了,下面附上今日练习题~
--------------------------------------分割线1----------------------------------------------
Problem Part(问题篇):
函数的练习:
A:求两个数据之和
B:判断两个数据是否相等
C:获取两个数中较大的值
D:打印m行n列的星形
E:打印nn乘法表

数组的练习:
A:int[] arr = {11,22,33,44,55} ;将数组遍历(依次输出数组中的每一个元素)
B:自定义数组,获取获取最值(获取数组中的最大值最小值)
--------------------------------------分割线2----------------------------------------------
Answer Part(答案篇):
函数的练习:
A:

//求两个数据之和
import java.util.Scanner;
class FunctionDemo1{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个数");
		int a = sc.nextInt();
		System.out.println("请输入第二个数");
		int b = sc.nextInt();
		int sum = getSum(a,b);
		System.out.println("两个数据之和为:"+sum);
	}
	
	public static int getSum(int a,int b){
		return a + b;
	}
}

B:

//判断两个数据是否相等
import java.util.Scanner;
class FunctionDemo2{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个数");
		int a = sc.nextInt();
		System.out.println("请输入第二个数");
		int b = sc.nextInt();
		boolean flag = isEqual(a,b);
		System.out.println("两个数据是否相等:"+flag);
	}
	
	public static boolean isEqual(int a,int b){
		return a == b;
	}
}

C:

//获取两个数中较大的值
import java.util.Scanner;
class FunctionDemo3{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个数");
		int a = sc.nextInt();
		System.out.println("请输入第二个数");
		int b = sc.nextInt();
		int max = getMax(a,b);
		System.out.println("两个数中较大的值为:"+max);
	}
	
	public static int getMax(int a,int b){
		int max = (a>b)?a:b;
		return max;
	}
}

D:

//打印m行n列的星形
import java.util.Scanner;
class FunctionDemo4{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入行数:");
		int m = sc.nextInt();
		System.out.println("请输入列数:");
		int n = sc.nextInt();
		printStar(m,n);
	}
	
	public static void printStar(int m,int n){
		for(int i = 0;i < m;i++){
			for(int j = 0;j < n;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

E:

//打印nn乘法表
import java.util.Scanner;
class FunctionDemo5{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个数据(1<=n<=9):");
		int n = sc.nextInt();
		if (n >=1 && n<=9){
			printMultiplyTab(n);
		}else{
			System.out.println("非法数据");
		}
	}
	
	public static void printMultiplyTab(int n){
		for(int i = 1;i <= n;i++){
			for(int j = 1;j <= i;j++){
				System.out.print(j+"*"+i+"="+(i*j)+"\t");
			}
			System.out.println();
		}
	}
}

数组的练习:
A:

//int[] arr = {11,22,33,44,55} ;将数组遍历(依次输出数组中的每一个元素)
class ArrayDemo{
	public static void main(String[] args){
		int[] arr = {11,22,33,44,55} ;
		//arr.length 数组arr的长度
		for(int i = 0;i < arr.length;i++){
			System.out.println("arr["+i+"]:"+arr[i]);
		}
	}
}

B:

//自定义数组,获取获取最值(获取数组中的最大值最小值)
class ArrayDemo2{
	public static void main(String[] args){
		/*	*/
		int[] arr1 = new int[10];
		arr1[1] = 15;
		arr1[3] = 25;
		arr1[4] = 101;
		arr1[5] = -12;
		arr1[7] = -98;
		arr1[8] = 5;
		int max1 = GetMax(arr1);
		int min1 = GetMin(arr1);
	
		int[] arr2 = {-5,22,13,450,-55};
		int max2 = GetMax(arr2);
		int min2 = GetMin(arr2);
			
		System.out.println("arr1数组中的最大值为:"+max1);
		System.out.println("arr2数组中的最大值为:"+max2);
		System.out.println("arr1数组中的最小值为:"+min1);
		System.out.println("arr2数组中的最小值为:"+min2);
	}
	
	//获取数组中的最大值
	public static int GetMax(int[] arr){
		int max = arr[0];
		for(int i = 0;i< arr.length;i++){
			if(arr[i] > max){
				max = arr[i];
			}
		}
		return max;
	}
	
	//获取数组中的最小值
	public static int GetMin(int[] arr){
		int min = arr[0];
		for(int i = 0;i< arr.length;i++){
			if(arr[i] < min){
				min = arr[i];
			}
		}
		return min;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值