java数组内存分析
2016-01-19 22:02
405 查看
首先学习几个单词
数组:
数组语法:
声明
创建
初始化:
内存分析 1
int [] a 对应在栈里面声明了一个引用
new int[4]; 对应在堆里面开辟了4个空间的数组但是刚开始的时候默认初始化是0
再分别赋给不同的整形值
内存分析2
car[] cars:在栈里面开辟一个引用,指向堆里面的数组空间
new car[4];在堆里面开辟一个4个空间的数组刚开始的时候都是null
cars[0]=new car("奔驰"):在堆里面开辟了一个对象让cars[0]里的int型引用指向该对象而且该对象的name属性指向了常量池里面的常量
index 索引 Bounds 边界 assigned 指定
数组:
相同数据类型的有序集合 数组也是对象 长度是不可变的,越界报Array Index out of bounds exception
数组语法:
声明
int [] a; int a [];
创建
new int [4]
初始化:
默认初始化:数组元素相当于对象的成员变量初始化方式默认的值和成员变量一样数字0 布尔false char 0 引用null 动态初始化:指利用循环进行初始化![图片描述][1] 静态初始化: int c [] = {23,43,56,78} cars[] cars= {new car(),new car(),new car(),new car()};
内存分析 1
int [] a=new int[4]; a[0]=1; a[1]=2; a[2]=22; a[3]=33;
int [] a 对应在栈里面声明了一个引用
new int[4]; 对应在堆里面开辟了4个空间的数组但是刚开始的时候默认初始化是0
再分别赋给不同的整形值
内存分析2
class car { public String name; car(String name) { this.name = name; } } car[] cars = new car[4]; cars[0]=new car("奔驰"); cars[1]=new car("宝马"); cars[2]=new car("比亚迪"); cars[3]=new car("奥拓");
car[] cars:在栈里面开辟一个引用,指向堆里面的数组空间
new car[4];在堆里面开辟一个4个空间的数组刚开始的时候都是null
cars[0]=new car("奔驰"):在堆里面开辟了一个对象让cars[0]里的int型引用指向该对象而且该对象的name属性指向了常量池里面的常量
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树