java学习笔记4

数组概述
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 if(arr[x]%2==0) {
arr[x]*=2;
}
}
}
}

你可能感兴趣的:(java学习笔记4)