day04 Java语言基础(方法和数组)

1 方法 

         方法:就是完成特定功能的代码块。

         注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法。

  •  格式

        修饰符   返回值类型   方法名(参数类型 参数名1,参数类型 参数名2...) {
            方法体语句;
            return  返回值;
        }

        修饰符:目前就用 public static。后面再详细讲解其他修饰符
        返回值类型:就是功能结果的数据类型
        方法名:就是起了一个名字,方便我们调用该方法。
        参数类型:就是参数的数据类型
        参数名:就是变量
        参数分类:
            实参:实际参与运算的数据
            形参:方法上定义的,用于接收实际参数的变量
        方法体语句:就是完成功能的代码块
        return:结束方法
        返回值:就是功能的结果,由return带给调用者。

  •  方法重载

            在同一个类中,方法名相同,参数列表不同。与返回值无关。
                    参数列表不同:
                    参数的个数不同。
                    参数的对应的数据类型不同。

 

2  一维数组  

           存储同一种数据类型的多个元素的容器。
           特点:每一个元素都有编号(索引),从0开始,最大编号(索引)是长度-1。

 

  • 格式

        A:数据类型[] 数组名;
        B:数据类型 数组名[];
        

  •  数组的初始化

        A:动态初始化
            只给长度,系统给出默认值
            
            举例:int[] arr = new int[3];
        B:静态初始化
            给出值,系统决定长度
            
            举例:int[] arr = new int[]{1,2,3};
            简化版:int[] arr = {1,2,3};

  • Java的内存分配

        A:栈 存储局部变量
        B:堆 存储所有new出来的
        C:方法区
        D:本地方法区(系统相关)
        E:寄存器(CPU使用)
        
        注意:
            a:局部变量 在方法定义中或者方法声明上定义的变量。
            b:栈内存和堆内存的区别
                栈:数据使用完毕,就消失。
                堆:每一个new出来的东西都有地址
                    每一个变量都有默认值
                        byte,short,int,long 0
                        float,double 0.0
                        char '\u0000'
                        boolean false
                        引用类型 null
                    数据使用完毕后,在垃圾回收器空闲的时候回收。


3  二维数组

          元素是一维数组的数组。

  • 格式

        A:数据类型[][] 数组名 = new 数据类型[m][n];

             例子:  int[][] arr = new int[3][2];

                          •定义了一个二维数组arr

                          •这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2]

                          •每个一维数组有2个元素,可以通过arr[m][n]来获取,表示获取第m+1个一维数组的第n+1个元素    

        B:数据类型[][] 数组名 = new 数据类型[m][];
        C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};
        D:数据类型[][] 数组名 = {{...},{...},{...}};     

          内存图解:

           杨辉三角示例

public class ArrayDemo {

	public static void main(String[] args) {
        int[] a= {66,77,88,99,100};
        int[][] b= {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
        //sum(9);
        //arrPrint(a);
        //System.out.println(arrMax(a));
        // arrPrint(a);
        //arrRever(a);
        // arrPrint(a);
        //arrTwoPrint(b);
        // yhPrint(5);
        numberRever(576864786);
	}
	
	// 乘法表
    public static void matrixMul(int m) {  
    	for (int i = 1; i <= m; i++) {
			for (int j = 1; j <= i ; j++) {
				
				System.out.print(i+"*"+j+"="+i*j+"\t");
			}
			System.out.println();
		}
    }
    
    // 打印一位数组
    public static void arrPrint(int [] arr) {
    	System.out.print("[");
    	for (int i =  0; i <arr.length; i++) {
			
			if(i==arr.length-1) {
				System.out.print(arr[i]+"]");
			}else {
				System.out.print(arr[i]+",");
			}
		}
    }
    
    // 一维数组元素最大值
    public static int arrMax(int [] arr) {
        int startNum=arr[0];
    	for (int i = 1; i < arr.length; i++) {
			if(startNum<arr[i]) {
				startNum=arr[i];
			}
		}
    	return startNum;
    }
    
    // 一维数组元素翻转
    public static void arrRever(int [] arr) {
    	for (int i = 0; i < arr.length/2; i++) {
			int temp=arr[i];
			arr[i]=arr[arr.length-1-i];
			arr[arr.length-1-i]=temp;
		}
    	
    }
    
    // 倒叙数据后,把每一位的数据存储到集合中并输出
    public static void numberRever(int mumber) {
    	int count=0;
    	int index=0;
        int numberStart = mumber;
    	do {
    		mumber /= 10;
    		count++;	
    	}while(mumber>0);
    	
    	int [] arr = new int[count];
    	while(numberStart>0) {
    		arr[index]=numberStart%10;
    		index++;
    		numberStart/=10;
    	}
    	arrPrint(arr);

    }
    
    // 打印二维数组及其所有元素和
    public static void arrTwoPrint(int [][] arr) {
    	int sum=0;
    	System.out.print("{");
    	for (int i =  0; i <arr.length; i++) {
    		System.out.print("{");
			for (int j = 0; j < arr[i].length; j++) {
				if(j==arr[i].length-1) {
					System.out.print(arr[i][j]+"}");
				}else {
					System.out.print(arr[i][j]+",");
				}
				sum+=arr[i][j];
			}
			if(i==arr.length-1) {
				System.out.print("}");	
			}else {
				System.out.print(",");		
			}
			
		}
    	System.out.println(sum);
    }
    
    // 杨辉三角
    public static void yhPrint(int m) {
    	//定义二维数组
    	int [][]arr=new int[m][m];
    	给这个二维数组任何一行的第一列和最后一列赋值为1
    	for (int i = 0; i < arr.length; i++) {
			arr[i][0]=1;
			arr[i][i]=1;
		}
    	//按照规律给其他元素赋值
    	//从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。
    	for (int i = 2; i <arr.length; i++) {
			for (int j = 1; j <=i-1; j++) {
				
				arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
			}
		}
    	//打印这个二维数组。
    	for(int i=0; i<arr.length; i++) {
			for(int j=0; j<=i; j++) {
				System.out.print(arr[i][j]+"\t");
			}
			System.out.println();
		}
    }
    
   
}

4  Java 参数传递问题

          Java中只有值传递。
      
          基本类型:形式参数的改变不影响实际参数
          引用类型:形式参数的改变直接影响实际参数

参数传递问题代码实例:

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值