视频变成网站怎么做,wordpress点击换图,seo优化运营,wordpress插件 下载一.创建和初始化
1.数组是怎么创建的#xff1f;
直接举例子#xff1a;
int[] arr new int[10];
这里只简单的举一个int开辟数组的例子。
可见java数组的创建于C语言是不同的。前面是一个int[ ]就是一个数组的数据类型#xff0c;后面的arr是数组名#xff0c;最后[…一.创建和初始化
1.数组是怎么创建的
直接举例子
int[] arr new int[10];
这里只简单的举一个int开辟数组的例子。
可见java数组的创建于C语言是不同的。前面是一个int[ ]就是一个数组的数据类型后面的arr是数组名最后[ ]里的数字10是开辟10个这样的空间。
2.数组的初始化
数组的初始化分为两种一种是静态初始化一种是动态初始化。
2.1动态初始化
这种就是上面举的例子那样:
int[] arr new int[10];
直接开辟十个空间只指定元素个数但不指定元素是谁。
2.2静态初始化
不需要指定元素个数据情况而定。像这样
int[] arr1new int[]{1,3,2,4};
int[] arr2{1,2,3,4};
上面是完整版本下面的arr2是上面的简化版本。
当然还可以分成两步
int[] arr;
//arr new int[]{1,2,3,4};
//或者arr new int[13];
这种初始化是不行的
int[] arr4;
arr4{1,2,3,4};
2.3如果不初始化数组会取默认值。
类型默认值byte0short0int0long0float 0.0f double0.0char/u0000booleanfalse
二.数组的使用
遍历数组的方法
第一种手动打出每个要访问的元素比较笨。
第二种用for循环遍历。
第三种这个C语言没有用的是for-each遍历。例子
int[] arr {1,2,3,4};
for(int x : arr){System.out.println(x);
}
三.数组是引用类型
1.JVM内存分布 其中方法区和堆区是由所有线程共享的数据区剩下的三个是线程隔离的数据区。
各区的简介
程序计数器 (PC Register): 只是一个很小的空间保存下一条执行的指令的地址
虚拟机栈(JVM Stack): 与方法调用相关的一些信息每个方法在执行时都会先创建一个栈帧栈帧中包含有局部变量表、操作数栈、动态链接、返回地址以及其他的一些信息保存的都是与方法执行时相关的一 些信息。比如局部变量。当方法运行结束后栈帧就被销毁了即栈帧中保存的数据也被销毁了
本地方法栈(Native Method Stack): 本地方法栈与虚拟机栈的作用类似.只不过保存的内容是Native方法的局部变量在有些版本的 JVM 实现中(例如HotSpot)本地方法栈和虚拟机栈是一起的
堆(Heap): JVM所管理的最大内存区域。使用 new 创建的对象都是在堆上保存(例如前面的new int[]{1, 2, 3} )堆是随着程序开始运行时而创建随着程序的退出而销毁堆中的数据只要还有在使用就不会被销毁
方法区(Method Area): 用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。方法编译出的的字节码就是保存在这个区域。
2.引用数据类型
引用数据类型存储的不是变量的值而是存储对象所在空间的地址有点指针那味儿。 上图是两个数组演示图arr1与arr2各自储存一个空间的地址。 上图是arr2arr1后两个数组储存的地址是一样的因此指向同一个空间。
像这种情况0X34这块空间没有引用类型指向会被JVM垃圾回收。