JavaSE自学笔记(day05)

第三章_Java基础语法

(一)、方法//掌握

    1、定义:就是完成特定功能的代码块(在很多语言里面都有函数的定义,函数在Java里被称为方法)

    2、格式:

        (1)
            修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {

                方法体语句;

                return 返回值;

            }

//举例:求和
public static int sum(int a,int b) {
    return a + b;
}

        (2)详细解释:

            修饰符:目前就用“public”、“static”。后面再详细讲解其他修饰符

            返回值类型:就是功能结果的数据类型

            方法名:就是起了一个名字,方便我们调用该方法

            参数类型:就是参数的数据类型

            参数名:就是变量

            参数分类:

                实参:实际参与运算的数据

                形参:方法上定义的,用于接受实际参数的变量

            方法体语句(函数体):就是完成功能的代码块

            return:结束方法的

            返回值:就是功能的结果,由return带回给调用者

    3、两个明确:

        (1)返回值:类型结果的数据类型

        (2)参数列表:要传递几个参数,以及结果的数据类型

  实参、形参

    4、方法的调用

        (1)有明确返回值的调用

            ①单独调用(一般来说没有意义,所以不推荐)

sum(x,y);

            ②输出调用(不够好,因为我们可能需要针对结果进行进一步的操作)

System.out.println(sum(x,y));

            ③赋值调用(推荐方案)

int result = sum(x,y);
//result在这里可以进行操作
System.out.println(result);

        (2)void(空的)类型返回值的方法调用:

            ①单独调用

    pringXing(3,4);
    System.out.println("--------------");
    pringXing(6,7);
    System.out.println("--------------");
    pringXing(8,9);

public static void pringXing(int m,int n) {
    for(int x=0; x<m; x++) {
        for(int y=0; y<n; y++) {
            System.out.print("*");
	}
	System.out.println();
    }
}

            ②输出调用

//输出调用
//此处不允许使用 '空' 类型
//System.out.println(pringXing(3,4));

            ③赋值调用

//赋值调用
//非法的表达式开始
//void v = pringXing(3,4);

    6、注意事项:

        (1)方法不调用,不执行。main方法是被虚拟机调用的

        (2)方法与方法是平级关系,不能嵌套定义

        (3)方法定义的时候,参数之间用逗号隔开

        (4)方法调用的时候,不用再传递数据类型

int x = 10;
	int y = 20;
	//错误
	//sum(int x,int y);
public static int sum(int a,int b){
	return a + b;
}

        (5)如果方法有明确的返回值类型,就必须有return语句返回

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

class FunctionDemo4 {
	public static void main(String[] args) {
		System.out.println(sum(10,20));
		System.out.println(sum(10,20,30));
		System.out.println(sum(10,20,30,40));
	
	public static int sum(int a,int b) {
		return a + b;
	}

	public static int sum(int a,int b,int c) {
		return a + b + c;
	}
	public static int sum(int a,int b,int c,int d) {
		return a + b + c + d;
	}
	}
}


(二)、数组//掌握

    1、定义:存储同一种数据类型、多个元素的容器。

    2、特点: 每一个元素都有编号,从0开始,最大编号是长度-1。编号的专业叫法:索引。

    3、格式:

        (1)数据类型[] 数组名;定义一个int类型的数组a变量

//注意:效果可以认为是一样的,都是定义一个int数组,但是念法上有点小区别。推荐这个。
int[] a;

(2)数据类型 数组名[];定义一个int类型的a数组变量

int a[];

    4、初始化:就是为数组开辟内存空间,并为每个数组元素赋予值

        (1)动态初始化:只给长度,系统给出默认值

//举例
int[] arr = new int[3];
System.out.println(arr); //[I@175078b 地址值

(2)静态初始化:给出值,系统决定长度

//举例
int[] arr = new int[]{1,2,3};
//简化版
int[] arr = {1,2,3};

        (3)注意:

            ①不要同时动态和静态进行

int[] arr = new int[3]{1,2,3};//错误

            ②ArrayIndexOutOfBoundsException:数组索引越界异常

int[] arr = {1,2,3};
System.out.println(arr[3]);
            ③NullPointerException:空指针异常(原因:数组已经不在指向堆内存了。而你还用数组名去访问元素)
int[] arr = {1,2,3};
arr = null;
System.out.println(arr[0]);

        (4)案例:

            ①遍历:

int[] arr = {11,22,33,44,55};
for(int x=0; x<5; x++) {
	System.out.println(arr[x]);
}

            ②获取最值:

int[] arr = {34,98,10,25,67};
int max = arr[0];
for(int x=1; x<arr.length; x++) {
	if(arr[x] > max) {
		max = arr[x];
	}
}
System.out.println("max:"+max);
            ③逆序(就是把元素对调):
for(int x=0; x<arr.length/2; x++) {
	int temp = arr[x];
	arr[x] = arr[arr.length-1-x];
	arr[arr.length-1-x] = temp;
}

            ④查表法:

String[] strArray = {"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};

            ⑥基本查找:

//方法一
for(int x=0; x<arr.length; x++) {
	if(arr[x] == value) {
	return x;
	}
}
//如果找不到数据,我们一般返回一个负数即可,而且是返回-1
return -1;

//方法二
//定义一个索引
int index = -1;//有就修改索引值
for(int x=0; x<arr.length; x++) {
	if(arr[x] == value) {
	index = x;
	break;
	}
}
//返回index
return index;

    5、Java中的内存分配

        (1)栈:存储局部变量

        (2)堆:存储所有new出来的

        (3)方法区(面向对象部分详细讲解)

        (4)本地方法区(系统相关)//了解

        (5)寄存器(CPU使用)//了解

        (6)注意:

            局部变量:在方法定义中或方法声明上定义的变量

            栈:数据使用完毕,就消失。

            堆:每一个new出来的东西都有地址

            每一个变量都有默认值:

                byte,short,int,long:0

                float,double:0.0
                char:'\u0000'
                boolean:false
                 引用类型(基本数据类类型存的是数值本身,而引用类型变量在内存放的是数据的引用,并不是数据的本身,引用类型变量是以间接方式去获取数据。引用类型变量都属于对象类型,如:数组、类、字符串等都属于引用类型变量。所以,引用类型变量里面存放的是数据的地址):null
数据使用完毕后,在垃圾回收器空闲的时候回收。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值