首页 > 编程语言 >JAVA基础:数组在计算机中的执行原理 多个变量指向一个数组

JAVA基础:数组在计算机中的执行原理 多个变量指向一个数组

时间:2024-02-28 21:25:15浏览次数:20  
标签:JAVA 变量 指向 int 内存 数组 arr1 class

程序都是在计算机中的内存中执行的,java程序编译之后会产生一个class文件,这个class文件是提取到内存中的JVM虚拟机中执行的。

java为了便于虚拟机这个java程序,也即这个class文件。将虚拟机这块内存区域进行了划分:方法区,栈,堆,   本地方法栈,程序计数器

方法区:放编译后的class文件的,字节码文件先进入方法区,

栈内存:方法运行时所进入的内存,变量也在这里

堆内存:new出来的东西会在这块内存中开辟空间并产生地址

 

 

数组在计算机中的执行原理:

 

 

 

变量分为两种:基本类型的变量,引用类型的变量。

基本类型的变量放的是变量的值;引用类型的变量放的是对象的地址值

 

 

 

 

 

 

 

 

 

 

多个变量指向同一个数组:

package com.itheima.arry;

public class ArrayDemo6 {
    public static void main(String[] args) {
        //目标:认知多个对象指向同一个数组对象的形式,并掌握其注意事项
        int[] arr1=new int[]{11,22,33};
        //意思是:把int类型的数组变量arr1赋值给int类型的数组给变量arr2,本质:把地址赋值给了对方了
        int[] arr2=arr1;
        System.out.println(arr1);
        System.out.println(arr2);
        arr2[1]=99;
        System.out.println(arr1[1]);//则也改变了也是99
    }
}

多个变量指向同一个数组在计算机中的执行原理:

 注意事项:

 

 

 

 

标签:JAVA,变量,指向,int,内存,数组,arr1,class
From: https://www.cnblogs.com/pengsuoqun123/p/18041875

相关文章

  • Java_常见报错&解决
    平时Java开发中常见的报错:SQLExceptionSQL异常,常见于操作数据库时的SQL语句错误。404错误:这是常见的页面不存在错误,建议仔细核查显示的网页是否存在(在运行的浏览器地址框中仔细查看当前路径,核实该路径是否正确,是否有路径错误,当前网页名字名字错误,使用了相对路径导致跳转出......
  • 树状数组理解方式
     tr[i]节点存储的是a[i-lowbit(i)+1]+……+a[i],一共lowbit(i)个数字之和。query的理解:intquery(intk){intres=0;for(inti=k;i;i-=lowbit(i))res+=tr[i];returnres;}每次减去当前的lowbit,就可以退回到上一个区间,直至到0modify的......
  • java启动参考
    启动参数 mvncleanpackage-Dmaven.test.skip=true-Ptest-java--server--Xms2G--Xmx2G--Xss256K--XX:+UseConcMarkSweepGC--XX:CMSFullGCsBeforeCompaction=5......
  • c语言进行时4-函数与数组
    什么是函数?函数是一块代码,接收零个或多个参数,做一件事情,并返回零个或者一个值。函数定义:本地变量(局部变量):函数的每次运行,就产生了而一个独立的变量空间,在这个空间的变量,是函数的这次运行所独有的,称作本地变量,也称局部变量。定义在函数内部的变量就是本地变量。参数也是本地......
  • 350. 两个数组的交集 II C
    /***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/intmin(inti,intj){if(i<j)returni;returnj;}int*intersect(int*nums1,intnums1Size,int*nums2,intnums2Size,int*returnSize){inthash1[1001]=......
  • JAVA基础:数组遍历
    遍历:一个一个访问 packagecom.itheima.arry;publicclassArryDemo2{publicstaticvoidmain(String[]args){//掌握数组遍历int[]ages=newint[]{12,24,36};//System.out.println(ages[0]);//System.out.println(ages[1]);......
  • JAVA基础:数组访问
     packagecom.itheima.arry;publicclassArryDemo1{publicstaticvoidmain(String[]args){//掌握数组访问int[]ages=newint[]{12,52,630};//修改数组中数据ages[0]=66;ages[1]=100;System.out.println(......
  • 349. 两个数组的交集C
    /***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/int*intersection(int*nums1,intnums1Size,int*nums2,intnums2Size,int*returnSize){inthash1[1001]={0};inthash2[1001]={0};int*tem=(int*)malloc(sizeof......
  • Java数组声明和初始化
    Java数组声明和初始化//数组的声明和初始化double[]prices;//静态初始化,数组变量的赋值和数组元素的赋值操作同时进行prices=newdouble[]{1,2.1,3.22};//动态初始化,数组变量的赋值和数组元素的赋值操作分开进行String[]foods=newString[......
  • Java基础语法
    前言创建Java文件注意事项运行IntelliJIEDA点击空项目创建JavaSE点击导航栏>文件>新建>类模块>创建名:基础语法(不支持中文可以展开下面的高级栏输入,直接英文也可以不影响)创建完成后直接多次点击基础语法打开项目结构选中项目(也就是第一项),看到SDK栏目报红需......