4-Java方法重载 JVM内存 数组

2019-01-17  本文已影响0人  前端雨

方法重载

  1. 定义: 在同一个类中,某方法允许存在一个以上的同名方法,只要它们的参数列表不同即可。


    方法重载栗子.png
  2. 作用: 屏蔽了同一功能的方法由于参数不同所造成方法名称不同。

  3. 判断原则: 两同一不同

    • 两同: 同类中, 方法名相同
    • 一不同: 方法参数列表不同(参数类型, 参数个数, 参数顺序)
      - 只要参数类型, 参数个数, 参数顺序有一个不同, 参数列表就不同
  4. 注意

    • 方法重载与方法的返回值类型无关,只是一般要求返回值类型一致
    • 参数列表与参数的名称没关系, 即为方法的重载与形参没关系

JVM内存模型

  1. JVM内存

    1. 本地方法栈:为虚拟机使用的native方法服务
    2. 程序计数器:当前线程所执行的字节码的行号指示器
    3. Java堆:被所有线程共享的一块内存区域,在虚拟机启动时创建。所有的对象实例以及数组都要在堆上分配(使用new关键字, 就表示在堆中开辟一块新的存储空间 )
    4. Java虚拟机栈:描述Java方法执行的内存模型,每个方法被执行的时候都会同时创建一个栈帧用于存储局部变量表、操作栈、动态链接、方法出口 等信息
      • 每一个方法,创建一个栈帧, 栈帧存放了当前方法的数据信息(局部变量),当方法调用完毕, 该方法的栈帧就被销毁了
    5. 方法区:线程共享的内存区域,存储已被虚拟机加载的类信息、常量、静态变量即时编译器编译后的代码数据等(这个区域的内存回收目标主要是针对常量池的回收和对类型的卸载)


      JVM内存图.png
  2. GC垃圾回收器

    • 不需要手动去控制内存的释放。当JVM内存资源紧张时,就会自动地去清理无用对象(没有被引用到的对象)所占用的内存空间
    • 自动回收的是堆空间的内存, 而栈空间内存会随着该方法的执行结束, 自动释放该方法的栈帧内存

数组

  1. 定义: 有序排列的同类型数据的集合
    • 数组元素: 数组中每一个数据
    • 数组索引: 数组元素存放的位置,索引从0开始,步长是1
  2. 数组定义格式
    • 变量的定义: 数据类型 变量名; 如: int age;
    • 方式一: 数组元素的类型[] 数组名; int[] ages; // (推荐)
      • int[]看成是一种数据类型, int类型的数组类型
    • 方式二: 数组元素的类型 数组名[]; int ages[];
  3. 注意
    • 变量, 数组必须先初始化(赋值), 才能使用, 因为初始化表示在内存中分配空间
    • int age; System.out.println(age); // 报尚未初始化
上一篇 下一篇

猜你喜欢

热点阅读