内存的划分:
1.寄存器
2.本地方法区
3.方法区
4.栈内存(存储的都是局部变量,而且变量所属的作用域一旦结束,该变量就自动释放。)
5.堆内存(存储的数组和对象,凡是new建立在堆中) 特点:a.每一个实体都有首地址值。b.堆内存中的每个变量都有初始化值,根据类型的不同而不同,整数是0,小数是0.0或者是0.0f,boolean false char '\u0000'。c.垃圾回收机制。
局部代码块的作用:限制变量的生命周期。
ArrayIndexOutOfBoundsException:当访问到数组中不存在的角标时,就会发生该异常。
NullPointerException:当引用型变量没有任何实体指向时,还在用其操作实体,就会发生该异常。
排序
获取数组中的最大值思路:1.需要进行比较,并定义变量记录住每次比较后较大的值。2.对数组中的元素进行遍历取出,和变量中存储的元素进行比较,如果遍历到的元素大于变量中的元素,就用变量记录该值。3.遍历结果,该变量记录的就是最大值。
选择排序:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。
冒泡排序:a.比较相邻的元素。如果第一个比第二个大,就交换他们两个。b。对每一对相邻元素做同样的工作,从开始第一对到结尾的后一对。在这一点,最后的元素应该会是最大的数。c.针对所有的元素重复以上的步骤,除了最后一个。d.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。