美文网首页
java学习笔记4

java学习笔记4

作者: Senrychild | 来源:发表于2019-02-26 19:51 被阅读0次

    数组概述
    A.为什么要有数组(容器)
    为了存储同种数据类型的多个值

    B.数组概念
    数组是存储同一种数据类型多个元素的集合,也可以看成是一个容器
    数组既可以存储基本数据类型,也可以存储引用数据类型

    C.数据定义格式
    数据类型[] 数组名 = new 数据类型[数组的长度];

    数组的初始化动态初始化
    A.什么是数组的初始化
    就是为数组开辟连续的内存空间,并为每个数组元素赋予值

    B.如何对数组进行初始化
    a.动态初始化 只指定长度,由系统给出初始化值 int [] arr = new int[5];
    b.静态初始化 给出初始化值,由系统决定长度

    C.动态初始化的格式:
    数据类型[] 数组名 = new 数据类型[数组长度];

    A:栈(掌握)
    * 存储局部变量
    局部变量:定义在方法声明上和方法中的变量

    • B:堆(掌握)
      • 存储new出来的数组或对象
    • C:方法区
      • 面向对象部分讲解
    • D:本地方法区
      • 和系统相关
    • E:寄存器
      • 给CPU使用

    java中的内存分配以及栈与堆的区别
    A.栈:存储局部变量
    B.堆:存储new出来的数组或对象
    C.方法区
    D.本地方法区:和系统相关
    E.寄存器:给CPU使用

    Java中的参数传递问题
    基本数据类型的值传递,不改变原值,因为调用后就会弹栈,局部变量随之消失
    引用数据类型的值传递,改变原值,因为即使方法弹栈,但是堆内存数组对象还在,可以通过地址继续访问

    Java中到底是传值还是传址
    1,既是传值,也是传地址,基本数据类型传递的值,引用数据类型传递的地址
    2,java中只有传值,因为地址值也是值(出去面试都说这种,支持者是高司令(java之父))

    例题
    class Test3_Array {
    public static void main(String[] args) {
    /int a = 10;
    int b = 20;
    System.out.println("a:"+a+",b:"+b); //a = 10,b = 20
    change(a,b);
    System.out.println("a:"+a+",b:"+b); //?
    /
    int[] arr = {1,2,3,4,5};
    change(arr);
    System.out.println(arr[1]);
    }
    public static void change(int a,int b) { //a = 10, b= 20
    System.out.println("a:"+a+",b:"+b); //a = 10,b = 20
    a = b; //a = 20
    b = a + b; //b = 40
    System.out.println("a:"+a+",b:"+b); //a = 20, b = 40
    }
    public static void change(int[] arr) { //1,4,3,8,5
    for(int x=0; x<arr.length; x++) {
    if(arr[x]%2==0) {
    arr[x]*=2;
    }
    }
    }
    }

    相关文章

      网友评论

          本文标题:java学习笔记4

          本文链接:https://www.haomeiwen.com/subject/octrjqtx.html