您的位置 首页 java

方法的重载重写作用、栈堆内存、数组格式代码、递归简化代码等

@[TOC](一、方法的重载)

1、满足条件之一:方法名称相同、返回值类型不同、参数列表(类型)不同或个数不同

2、作用:多用于相似功能,减少名称的使用个数 使用方法的重载 jdk 例子:println() 打印

“` java

package qf22020212;

public class Demo02 {

public static void main(String[] args) {

add1(1, 2);

System.out.println(add1(1, 2, 4));

System.out.println(add1(1.0, 2.0));

}

public static void add1(int a, int b) {

System.out.println(a + b);

}

public static int add1(int a, int b, int c) {

return a + b + c;

}

public static double add1(double a, double b) {

return a + b;

}

}

“`

@[TOC](二、方法的重写)

1、满足条件:方法名和参数列表必须相同、即内容可以改变。***核心重写!***

2、作用:其子类的使用父类的方法时,同时想添加点自己的东西,这时可以使用重写。如果想使用回父类的方法,使用super()调用父类原方法

“`java

package qf22020212;

public class Demo05 {

public static void main(String[] args) {

Animal animal1 = new Cat();

Animal animal2 = new Dog();

animal1.run(5);

animal2.run(10);

}

}

class Animal {

public void run(int m) {

System.out.println(“走” + m + “米”);

}

}

class Cat extends Animal {

@Override

public void run(int m) {

System.out.println(“猫在走” + m + “米”);

}

}

class Dog extends Animal {

@Override

public void run(int m) {

//调用父类的原方法

super.run(m);

}

}

“`

@[TOC](三、栈内存)

“`java

package qf22020212;

public class Demo03 {

public static void main(String[] args) {

int m = add(20, 30);

System.out.println(m);

}

public static int add(int n, int b) {

return n + b;

}

}

“`

方法的重载重写作用、栈堆内存、数组格式代码、递归简化代码等

栈内存图

@[TOC](四、数组)

1、概念:为什么使用数组,需要容器来存储相同数据类型的数据,数组是将数据进行有规律的进行存储,所以很容易赋值取值。

2、动态初始化格式:数组数据类型 [] 名称(内存地址) = new 数组数据类型[长度(开辟的内存空间长度)];

3、赋值取值方式:名称(内存地址)[索引/下标];

4、代码实现:

“`java

package qf22020212;

public class Demo04 {

public static void main(String[] args) {

int[] arr = new int[3];

//数组的下标/ 索引 是从零开始的

arr[0] = 1;//赋值

arr[1] = 2;

arr[2] = 3;

System.out.println(arr[0]);

System.out.println(arr[1]);

System.out.println(arr[2]);

}

}

“`

5、数组的静态初始化:

A.格式1:int[] arr = new int[]{1,2,4,5};

B.格式2:int[] arr = {1,2,4,5};

静态初始化不能分开写**如:**

int[] arr;

arr = {1,2,4,5}(错误)

@[TOC](五、递归调用)

1、含义:就是自己调用自己,设置某个结束条件

“`java

package qf22020212;

public class Demo01 {

public static void main(String[] args) {

System.out.println(new Demo01().add(100));

}

public int add(int n) {

//三目运算符结合递归调用,实现简化1加到100

return n == 1 ? 1 : n + add(n – 1);

}

}

“`

@[TOC](六、数据类型初始化默认值)

1、整数类型: byte short 、int、long 默认都为0

2、 浮点 类型:float、double 默认都为0.0

3、 布尔 类型: boolean 默认为false

4、字符类型: char 默认为 ‘ ‘ 为空格字符

5、引用类型默认为:null 如:String

@[TOC](七、 jvm 内存划分)

1、内存:编写的java的源代码文件是存储硬盘中,运行java的程序是在内存中硬盘中的数据是永久保存,内存中的数据都是临时保存

2、jvm 将内存划分为五块

A.**栈**:所有**局部变量**都是存在栈内存中,**所有的方法**在执行的时候,都会进栈,在栈内开辟内存空间

B.**堆**:**所有new的局部变量**都会在堆内存中开辟空间 例如 new 对象、new数组

C.**方法区**:**所有的字节码文件**claass类加载信息,静态的资源都是存储方法区中的

D.本地方法区:调用本地方法,java使用native的带调用c与 c++ 的方法

例子:public native int hashCode();

E.程序计算器:与 cpu 有关,控制的程序的执行,控制具体的代码执行

jvm内存划分图

文章来源:智云一二三科技

文章标题:方法的重载重写作用、栈堆内存、数组格式代码、递归简化代码等

文章地址:https://www.zhihuclub.com/188998.shtml

关于作者: 智云科技

热门文章

网站地图