Java Notes
方法
- 方法应该定义在类之中,当时不能在方法当中再定义方法。不能嵌套
- 方法定义的前后顺序无所谓
- 方法定义之后不会执行,如果希望执行,一定要调用;单独调用、打印调用、复制调用。
- 如果方法有返回值,那么必须写上"return 返回值";不能没有
- return 后面的返回值数据,必须和方法的返回值类型对应起来
- 对于一个void没有返回值的方法,不能写return后面的返回值,只能写ruturn自己。
- 对于void方法当中最后一行的return可以省略不写
- 一个方法中可以有多个return语句,但是必须保证同时只有一个被执行
方法重构
public class MethodOverload {
public static void main(String[] args) {
System.out.println(sum(10, 20));
System.out.println(sum(10, 20, 30));
System.out.println(sum(10, 20, 30, 40));
}
public static int sum(int a, int b) {
return a + b;
}
public static int sum(int a, int b, int c) {
return a + b + c;
}
public static int sum(int a, int b, int c, int d) {
return a + b + c + d;
}
}
方法重载的因素
- 参数数目不同
- 参数类型不同
- 多类型顺序不同
方法重载与下列因素无关
- 与参数名称无关
- 与方法的返回值类型无关
数组Array
动态初始化(指定长度)
数据类型[] 数组名称 = new 数据类型[数组长度];
静态初始化(指定内容)
数据类型[] 数据名称 = 数据类型[]{元素1,元素2,……};
public static void main(String[] args){
int[]arrayA=new int[]{5,15,25};
}
注意事项: 虽然静态初始化没有直接告诉长度,但是根据大括号里面的元素具体内容,也可以自动推算出来长度。
使用静态初始化数组的时候,格式还可以省略一下。 标准格式: 数据类型[] 数组名称 = new 数据类型[] {元素1,元素2,……}
省略格式: 数据类型[] 数组名称 = {元素1,元素2……}
注意事项:
- 静态初始化没有直接指定长度,但是仍然会自动推算得到长度。
- 静态初始化可以拆分成为两个步骤。
- 动态初始化也可以拆分成为两个步骤。
- 静态初始化一旦使用省略格式,就不能拆分成为两个步骤了。
使用建议: 如果不确定数组当中的具体内容,用动态初始化;否则,已经确定了具体内容,用静态初始化。
数组使用时的注意事项: 直接打印数组名称,得到的是数组对应的内存地址哈希值 访问数组元素的格式:数组名称[索引值] 使用动态初始化数组的时候,其中的元素将会自动拥有一个默认值。规则如下: 如果是整型,那么默认为0; 如果是浮点类型,那么默认为0.0; 如果是布尔类型,那么默认为false; 如果是应用类型,默认为null;
Java内存分配
Java的内存需要划分成5个部分:
- 栈(Stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中。
局部变量:方法的参数,或者是方法{}内部的变量 作用域:一旦超出作用域,立刻从栈内存当中消失。 - 堆(Heap):凡是new出来的东西,都在堆当中。
堆内存里的东西都有一个地址值:16进制 堆内存里面的数据,都有默认值。规则: 如果是整型,那么默认为0; 如果是浮点类型,那么默认为0.0; 如果是字符,那么默认为’\u0000’; 如果是布尔类型,那么默认为false; 如果是应用类型,默认为null; - 方法区(Method Area):存储.class相关信息,包含方法的信息。
- 本地方法栈(Native Method Area):与操作系统相关
- 寄存器(pc Register):与CPU相关。
|