第六天的视频,看到BAT招聘的一条条要求,一条条达到要求!!!!!
1:二维数组概述
2:二维数组定义三种格式
2-1:格式1
再仔细复习一次最基础的是没有错的,可以扫盲。
下面是一二维数组的举例:
下面观察内存图的变化:
**注意:**每个二维数组开始的值给的是null,二维数组的元素是一维数组,而一维数组是一个引用类型,引用类型的数据数据类型默认是null
2-2:格式2
下面是一个具体的例子的内存图
2-3:格式3
内存图如下
3:二维数组的遍历
例子:打印杨辉三角
2018.12.19 9:53 自己写的杨辉三角的代码
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("请输入杨辉三角的边长");
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int [][]array =new int [x][x];
for(int i = 0;i<x;i++) {
array[i][0]=1;
array[i][i]=1;
}
for(int i =2;i<x;i++) {
for(int j = 1;j<=i;j++) {
array[i][j]=array[i-1][j-1]+array[i-1][j];
}
}
//打印二维数组
for(int i=0;i<array.length;i++) {
for(int j=0;j<=i;j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
}
键盘输入:8 (运行结果如下图)
4:(Java中的参数传递问题)观察方法的调用执行过程
基本类型和引用类型的传递不一样
基本类型传递的是值!引用类型传递的是地址值(两个引用指向同一个内存)
方法调用的时候在栈内存中
5:把一个数字转换到数组格式中
面向对象开始喽!!!1
6:面向对象介绍
因为面向对象,我们变懒了,都是调用别人的东西哦!
面向对象:结构清晰,后期维护省事!
下图是UML,在渣打实习的时候有接触过
7:面向对象开发设计以及特征
8:类与对象的关系
9:一个对象内存图
1:栈内存里边是局部变量,堆内存里边的new出来的;
2:我们java文件运行的是class文件,首先把class文件加载到内存;方法区有一个专门存放class 的区域;
3:main方法先进栈,然后执行 Phone p= new Phone();Phone在栈内存中,new Phone()在堆内存中;
4:找到方法区中的class文件,然后在堆内存中开辟对应的成员变量的堆内存空间,方法不需要放进来,啊hi是在方法区域(因为方法不会变,每个对象调用的都是一个方法)
5:但是在堆内存中会存放方法区中方法的地址0x001,用来在调用的时候找到需要调用的方法
6:属性打印完毕,开始给乔布斯打电话,加载call方法到栈内存,当执行完毕后,他就从栈内存消失
10:两个对象内存图
注意方法区就一个,是两个对象共同使用的
11:三个对象的内存图
两个引用指向同一个堆内存!