假设认识Java的第四天

假设认识Java的第四天必会的知识

目录

假设认识Java的第四天必会的知识

方法

定义方法的格式:

定义方法的两个明确:

例题:

定义方法的注意事项:

调用方法的三种形式:

方法的重载:

方法重载的练习:

数组的概念

数组的定义:

 第一种方式:

第二种方式:

第三种方式:

数组的访问:

索引:

数组的原理内存图:


方法

回顾------方法的定义和调用:

在前面的三天文章,我们可以编写一个循环输出矩形,控制台打印矩形就可以,因此定义方法的时候,定义的时候void,在主函数直接调用就可以。

public class test02 {
    public static void main(String[] args) {
        print();
    }
    public static void print(){
        for (int i = 0; i <5; i++) {
            for (int j = 0; j <8; j++) {
                System.out.print("*");
            }
            System.out.println("*");
        }
    }
}

print方法被main方法调用后直接输出结果,而main方法并不需要print方法的执行结果,所有定义为void

定义方法的格式:

修饰符 返回值类型 方法名(参数列表){

代码

return 结果;

}

定义方法的两个明确:

需求:定义一个方法实现两个整数求和。

明确返回值类型:方法计算的是整数的求和,结果必然是整数,返回值类型被定义为int类型。

明确参数列表:计算哪两个整数,并不清楚,但是可以肯定的是整数,参数列表就可以定义为int类型的两个整数,由调用者来传递就可以。

public class Demo {
    public static void main(String[] args) {
      int i=1;
      int j=2;
      int c=add(i,j);
        System.out.println(c);
    }
    public static  int add(int a,int b){
        return a+b;
    }
}

程序执行,主函数main方法调用add方法,传递了实际变量1和2,两个变量a和b接收到的就是实际参数,并将计算结果返回,主方法中的变量c就可以接收到了。

例题:

需求:比较两个整数是否相同:

  分析这个功能,需要两个明确,返回值和参数列表

   明确返回值:比较两个整数,比较的结果就是两种可能性,因此我们的用boolean类型,比较结果相同为true,不同为false。

   明确参数列表:比较的是两个整数,所以默认定义两个int类型的参数。

public class title01 {
    public static void main(String[] args) {
        /*
        * 比较两个整数是否相同
        * 返回值类型:boolean
        * 参数列表:两个整数int*/
       boolean i=equal(3,8);
        System.out.println(i);
    }
    public static boolean equal(int a, int b) {
        if (a==b){
            return true;
        }else {
            return  false;
        }
    }
}

需求:计算1+2+3+4----100的和:

分析:定义方法实现功能,需要两个明确,返回值和我们的参数列表 

返回值:1-100求和,计算结果必然是整数。

参数列表:没有参数列表

public class title02 {
    public static void main(String[] args) {
       //快速生成我们的返回值接收类型:alt+enter
        int add=add();
        System.out.println(add);
    }
    public static int add(){
//        定义一个变量保存求和
        int add=0;
//        从1循环,到100结束
        for (int i=1; i <=100 ; i++) {
               add=add+i;
        }
        return 0;
    }
}

定义方法的注意事项:

定义位置:类中方法外

返回值类型:必须要和return语句返回的类型相同,否则会编译报错

public static  int add(){
        return 0;//正确 int类型
//   return 1.2; 报错,类型不匹配
//   return true; 报错
    }

在return后面写代码,return意味着方法的结束,所有的后面的代码永远不会执行,属于无效的代码。

public static  int add(){
        return 0;
System.out.println("无效的代码");

    }

调用方法的三种形式:

直接调用:

int sum =sum();
public static int sum()

赋值调用:

boolean i=equal(3,8);
 public static boolean equal(int a, int b)

输出语句调用:

System.out.println(sum());
public static int sum()

方法的重载:

方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同就可以,与返回值和修饰符没有任何关系

  参数列表:个数不同,数据类型不同,顺序不同

  重载方法的调用:JVM通过方法的参数列表,调用不同的方法

方法重载的练习:

比较两个数据是否相等,参数类型分别为两个byte类型,两个short类型,两个int类型,两个long,并在main方法中进行测试。

public class test03 {
    public static void main(String[] args) {

    }
    public static boolean compare(byte a,byte b){
        return  a==b;
    }
    public static boolean compare(byte a){//列表个数不一样
        return true;
    }
    public static boolean compare(int a,short b){
        return  true;
    }
    public static boolean compare(short a,int b){//列表的数据类型的顺序不一样
        return  true;
    }
    public static boolean compare(short a,short b){//参数列表数据类型不一样
        return  true;
    }
}

数组的概念

数组就是存储数据长度固定的容器,保证多个数据的数据类型是一致。

数组的定义:

 第一种方式:

     数组的存储的数据类型[] 数组名 = new 数组的存储的数据类型[长度];

解释一下这个格式:

     数组的存储的数据类型:创建数组容器的时候可以存储什么数据类型。

     []:表示的一个数组

      数组名:为定义的数组起个变量名,满足标识符的规范就可以,可以使用名字操作数组。

     new:关键字,创建数据使用的关键字。

     [长度]:数组的长度,表示数组容器中可以存储多少个数据或者元素。

注意点:数组有定长的特性,长度一旦指定,不可以改变。

第二种方式:

数组存储的数据类型[] 数组的名字=new 数组的存储的数据类型[]{元素1,元素2,元素3};

第三种方式:

数组存储的数据类型 数组名={1,2,3,4,5,6};

public class test04 {
    public static void main(String[] args) {
        //第一种数组方式
        int[] arr=new int[6];
        //第二种
        int[] arr1=new int[]{1,2,3,4};
        //第三种
        int[] srr2={1,2,3,4,5};
    }
}

数组的访问:

索引

每一个存储在数组中的元素,都会自动拥有一个编号,从0开始,这个自动编号成数组的索引,可以通过数据的索引去访问数组中的元素。

格式:数组名[索引]

数组的长度属性:每一个数组的长度是具有固定值的,java中赋予数组一个属性,可以获取数组的长度,语句就是:数组名.length,属性length的执行结果就是数组的长度,int类型的结果。由此也可以推断出来:数组最大的索引值的为:数组名.length-1。

public class test05 {
    public static void main(String[] args) {
        int[] arr=new int[]{1,2,3,4,5};
        arr[0]=6;
        System.out.println("索引处的值为"+arr[0]);
        int i=arr[1];
        System.out.println("索引处的值为"+i);
        System.out.println(arr.length);
    }
}

索引访问数组中的元素:

  数组名[索引]=数值-------为数组中的元素赋值

  变量=数组名[索引]-------获取数组中的元素

数组的原理内存图:

内存:是我们的计算机内部的重要的原件,临时的存储空间,作用就是运行程序,我们的编写代码是存放在硬盘中,但是他不可以运行我们的程序,必须放进内存中才可以运行,运行完毕以后清空内存。

Java虚拟机(jvm)运行程序的一个计算机,必须要对内存进行管理和分配。

Java虚拟机的内存划分:

  为了提高我们的运行效率,就对不同的空间不同的区域划分,因此每一块区域都有自己特定的处理数据的方式和内存管理方式。

JVM划分:

寄存器:给cpu使用,与开发没啥关系。

本地方法栈:jvm在使用操作系统的时候使用,和我们的开发没关系。

方法区:存储我们可以运行的.class文件

堆内存:存储对象或者数组,new创建出来的,都存储在堆内存中。

方法栈:方法运行时使用的内存,比如我们main方法,进入我们的方法栈去运行。

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值