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

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

两个方法的内存图

两个引用指向同一个数组

数组的常见操作
数组的遍历
将数组的元素一次打印出来
获取数组长度的方法:数组名.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
还没有评论,来说点什么吧。