Java 入门 (五)

JVM内存划分

也被称为Java运行时数据区域。Java程序在运行的时候,会根据数据类型等内容的不同,来将JVM划分了不同的区域,这些区域有不同的产生以及销毁时间(也就是说这些空间的生命周期不同)。这些空间存放了不同种类的数据。这些空间有以下几种:

  • 堆
  • 栈
  • 方法区
  • 本地方法区
  • 程序计数器

image-20201120095400795.png

  • 栈:主要用来存放局部变量,还有引用。比如int a,int[] arr{ a 和arr 在栈}
  • 堆:存放的都是较大的数据,例如存放new出来的内容,包括了所有的对象以及数组
  • 方法区:里面主要存放字节码对象、方法、常量、静态的变量
  • 本地方法区:主要用来存放一些本地方法。例如c、c++
  • 程序计数器:控制程序的执行顺序,比如说:分支结构、循环结构、异常等的控制和执行

常用的是堆、栈、和方法区

数组内存图

一个数组的内存图
image-20201120101038973.png
两个方法的内存图
image-20201120101607635.png
两个引用指向同一个数组
image-20201120102612623.png

数组的常见操作

数组的遍历

将数组的元素一次打印出来

获取数组长度的方法:数组名.length;

获取数组中最大值

public static void main(String[] args) {
        int[] arr = {2,4,6,8,-91,3,432,54,5867,986,43,2143,34,-536234,77643,324};
        int max = arr[0];
        for(int i=0;i<arr.length;i++) {
            max = (max<arr[i]?arr[i]:max);
        }
        System.out.println(max);
    }

数组的逆序(反转)

package com.zunmx;

// ALC-Master
public class Demo5 {
    public static void main(String[] args) {
        int[] a = new int[] { 10, 20, 30, 40, 50 };
        for (int i = 0; i < a.length / 2; i++) {
            int t = a[i];
            a[i] = a[a.length - 1 - i];
            a[a.length - 1 - i] = t;
        }
        System.out.println("第一次交换");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println( );
        System.out.println("第二次交换");
        int[] b = new int[5];
        for (int i = 0; i < a.length; i++) {
            b[i] = a[a.length - 1 - i];
        }
        a = b;
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println();


    }
}

数组查找

新建一个方法,传入来给你个参数,一个参数为被查找的数组,一个参数为要查找的数。如果能找到就返回该数在数组中的索引,如果找不到就返回-1

评论 0

还没有评论,来说点什么吧。

提交后需要审核才会公开。