方法重载:方法名称相同,参数或参数类型不同:就构成咯方法重载,与修饰符public,static
public static void open(){} //正确重载
public static void open(int a){} //正确重载
static void open(int a,int b){} //代码错误:和第8行冲突
public static void open(double a,int b){} //正确重载
public static void open(int a,double b){} //代码错误:和第6行冲突
public void open(int i,double d){} //代码错误:和第5行冲突,与修饰符无关,public,static
public static void OPEN()|{} I/代码正确不会报错,但是并不是有效重载
public static void open(int i,int j){} //代码错误:和第3行冲突
数组:
动态初始化(指定长度)
静态初始化(指定内容)
动态初始化数组的格式:
数据类型[] 数组名称= new 数据类型[数组长度];
解析含义:
左侧数据类型:也就是数组当中保存的数据,全都是统一的什么类型
左侧的中括号:代表我是一-个数组
左侧数组名称:给数组取-一个名字
右侧的new:代表创建数组的动作
右侧数据类型:必须和左边的数据类型保持一致
右侧中括号的长度:也就是数组当中,到底可以保存多少个数据,是一个int数字
动态初始化(指定长度) :在创建数组的时候,直接指定数组当中的数据元素个数。
静态初始化(指定内容) :在创建数组的时候,不直接指定数据个数多少,而是直接将具体的数据内容进行指定。
静态初始化基本格式:
数据类型[]数组名称= new数据类型[] {元素1,元素2, … };
int[] arryA=new int[]{1,2,3,4};
或int[] arrA={1,2,3,4};
arrA.length可以获取数组长度
2,直接打印数组名称,结果是数组的内存地址(哈希值)
Java的内存需要划分成为5个部分:
1.栈(Stack) :存放的都是方法中的局部变量。方法的运行- 定要在栈当中运行。
局部变量:方法的参数,或者是方法{}内部的变量
作用域:一旦超出作用域,立刻从栈内存当中消失。
2堆(Heap) :凡是new出来的东西,都在堆当中。
堆内存里面的东西都有一个地址值: 1 6进制
堆内存里面的数据,都有默认值。规则:
如果是整数 默认为0
如果是浮点数 默认为0.0
如果是字符 默认为"\u0000’
如果是布尔 默认为false
如果是引用类型 默认为null
3.方法区(Method Area) :存储.class相关信息,包含方法的信息。
4.本地方法栈(Native Method Stack) :与操作系统相关。
5.存器(pc Register) :与CPU相关
下图帮助理解
数组元素反转问题可以考虑对称元素的交换