11月16日报告

本文介绍了Java内存的三个主要区域:方法区、堆内存和方法栈,以及static关键字的作用。通过示例展示了static变量如何影响所有对象。同时,讲解了四个权限修饰符的访问限制:public、private、protected和默认。最后,通过代码实例说明了方法参数传递机制,区分了值传递和引用传递的区别。
摘要由CSDN通过智能技术生成

1.对象内存图

方法区  堆内存  方法栈

 

2.static关键字

 

package com.langsin.Method.StaticDemo;

public class StaticDemo {
     int value1;
    static int value2;
    public static void f1() {

    }

    public void f2() {
    }

    public void f3() {
        f1();
        f2();
    }

    public static void main(String[] args) {
        f1();
        StaticDemo.f1();

        //没有使用static修饰的方法可以自由调用有static和没有static的方法
        //有static修饰的方法只能调用有static修饰的方法
        //通过该类的一个对象修改了该类的一个静态变量,修改后的值影响了所有对象

        StaticDemo sd1=new StaticDemo();
        sd1.value1=1;
        StaticDemo.value2=100;
        StaticDemo sd2=new StaticDemo();
        sd2.value1=2;
        StaticDemo.value2=200;

        StaticDemo sd3=new StaticDemo();
        StaticDemo.value2=300;

        System.out.println(sd1.value1);//  1
        System.out.println(sd2.value1);//  2
        System.out.println( StaticDemo.value2);//  200
        System.out.println( StaticDemo.value2);//  200
        System.out.println( StaticDemo.value2);//  200

    }
}
package com.langsin.Method.StaticDemo;

import java.util.Arrays;

public class StaticTest {
    public static void main(String[] args) {
//        StaticDemo sd1=new StaticDemo();
//        sd1.f2();
//        StaticDemo.f1();
        int[] arr={1,2,3,2,3,5,4,5,4,5,4};
        String string = Arrays.toString(arr);
        System.out.println(string);
    }
}

3.    4个权限修饰符

(1)public  可以自由访问

(2) private  同一个包里的不同类中不能使用,不同包中不能使用

(3)protected  同一个包中不同类可以使用,不同包中不能使用

(4)无权限修饰符  同一个包中不同类可以使用,不同包中不能使用

4.方法的参数传递机制

package com.langsin.Method.oop;

public class MethodDemo {
    public void changeValue1(int a, int b) {
        a = a + b;
        System.out.println(a);
    }

public void changeValue2(PhoneDemo phoneDemo){
        phoneDemo.color="远峰蓝";
        phoneDemo.brand="苹果";
    System.out.println(phoneDemo.color);
}
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        MethodDemo md1=new MethodDemo();
        md1.changeValue1(a,b);//3
        System.out.println(a);//1
        PhoneDemo phoneDemo=new PhoneDemo();
        phoneDemo.color="咖啡色";
        md1.changeValue2(phoneDemo);//远峰蓝
        System.out.println(phoneDemo.color);//远峰蓝
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒂法挤挤挤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值