关于java常用的内存理解
2017-11-17 12:17
141 查看
int[] arr = new int[4]; // 内存图如下
理解: 凡是new关键字创建的对象,jvm都会在堆内存中开辟新的空间创建一个新的对象。
所以对于上述的=相当于把数组对象内存地址赋值给arr变量。
int[] arr1 = new int[2]; int[] arr2 = arr1; // 公用一个内存地址,所以下面的操作arr1和arr2指向同一个堆内存地址 arr1[1]=10; arr2[1]=20; arr1[1] = 20;
// 二维数组 int[][] arr = new int[3][4];
class Student{ String name; // 使用static修饰country,那么这时候country就是一个共享的数据 static String country = "China"; // 在这个位置使用了static的区别, 这个数据就不会存在对象堆内存中维护了,而是存放到了数据共存去来维护。这是最关键的区别... 在内存中的表现如下图.. // String country = "China"; 这种情况的country成员变量是存放在堆内存的位置中,所以有没有static是完全不同的两种格式 // 构造函数 public Student(String name) { this.name = name; this.country = country; } } class Demo9 { public static void main(String[] args) { Student s1 = new Student("GOD"); Student s2 = new Studen 4000 t("PIG"); } }
相关文章推荐
- java数组的定义初始化关于内存的理解
- 关于java 中不常用的关键字stricfp的理解
- 关于java中的内存的理解总结
- 一些关于Java常用关键字的理解
- 关于java中多态的理解,涉及到内存空间
- 关于java内存的理解
- java中关于时间日期操作的常用函数
- java中关于时间日期操作地常用函数
- java中关于时间日期操作的常用函数
- 关于java的几个常用关键字及抽象类和接口
- 转的一篇关于java新手很难理解的问题
- java中关于时间日期操作的常用函数
- 讨论关于Java占用内存的研究
- 关于JAVA内存泄漏问题注意事项
- 关于内存对齐的理解
- 关于java内存泄露
- 关于VO、PO的理解-java的(PO,VO,TO,BO,DAO,POJO)解释
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- 关于Java占用内存的研究