数组的定义: 同一种数据类型的集合,就是一个容器
好处:可以自动给数组中的元素从0编号,方便操作这些数
格式1 : 元素类型 【】 数组名 = new 元素类型 【 元素个数或数组长度】
int arr [ ] = new int [5];
int arr1 [ ] = { 1,3,4,2,5,2};
0为索引 角标
内存的划分 1 寄存器 2 本地方法区 3 方法区 4 栈内存 5 堆内存
栈内存
存储的都是局部变量,(定义在方法里的变量)
而且变量的所属的作用域一旦结束,该变量就自动释放
{ 局部代码块,定义局部变量的周期
int age = 3;
}
堆内存: 存储着数组和对象(其实数组就是对象)
凡是new的建立在堆中
堆内存的特点
1 每一个实体都有着首地址值
2 堆内存的每一个变量都有默认初始值,根据类型的不同而不同,如整数是0,小数0.0,或者0.0f boolean false char ‘\u0000’ u转译 中文对应的数字表
3 垃圾回收机制
堆内存垃圾系统会不定时的回收
例:
获取数组中最大的值
明确一: 结果
明确二 : 未知内容数组
public static void gerMax (int [ ] arr )
{
int max = 0;
for ( int i = 0; i< arr.length;a++){
if ( arr[ i ] > max ){
max = arr [ i ] ;
}
}
选择排序
int arr [ ] = new int [ 9 ];
for ( int i = 0; i < arr.length ; i ++)
{
for ( int j = i + 1; j < arr.length - 1; j ++){
if ( arr [ i ] > arr [ j + 1]){
change1 ();
}
选择排序
for ( int x = 0 ; x < arr.length - 1; x ++){
int index = x ;
int num = arr [ x ];
for ( int y = x + 1; y ,<arr.length ; y ++){
if ( num < arr [ y ] ){
index = y;
}
if ( index != x ) {
change ( arr ,x , index );
}
通过变量index 和num 记录住最小值和其坐标,在比较完一轮后,将个x处(与每次的起始点)换位置
public void change1 (int x; int y )
{
int temp = x;
x = y;
y = temp;
}