Java教程

JAVA Day11

本文主要是介绍JAVA Day11,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

JAVA Day11

内存分析

内存分析(详解与代码)_林高禄-CSDN博客_内存分析
堆的特点:

1、堆用于存储创建好的对象和数组(数组也是对象)

2、JVM只有一个堆,被所有线程共享

3、堆是一个不连续的内存空间,分配灵活,速度慢!

栈的特点:

1、栈描述的是方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)

2、JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)

3、栈属于线程私有,不能实现线程间的共享!

4、栈的存储特点是:先进后出,后进先出

5、栈是由系统自动分配,速度快!栈是一个连续的内存空间!

方法区(又叫静态区)特点:

1、JVM只有一个方法区,被所有线程共享!

2、方法区实际也是堆,只是用于存储类、常量相关的信息!

3、用来存放程序中永远是不变或唯一的内容。(类信息【Class对象】,静态变量、字符串常量等)

三种初始化

静态初始化就是static,动态初始化就是new

所谓的静态和动态是相对于程序运行是而言的,静态是在程序编译时就初始化好了的,动态初始化是在程序运行是才动态分配内存空间。

数组的边界

数组的使用

//数组反转
package struct;
public class day10 {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
        int[] reverse = reverse(arrays);
        printArray(reverse);
    }
    public static int[] reverse(int[] arrays){
        int[] result = new int[arrays.length];
        for (int i = 0,j =result.length-1; i < arrays.length ; i++,j--) {
            result[j] = arrays[i];
        }
        return result;
    }
    public static void printArray(int[] arrays){
        for (int i = 0; i < arrays.length ; i++) {
            System.out.print(arrays[i]+" ");
        }
这篇关于JAVA Day11的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!