Java基础(二)
一、创建数组
一般分为动态初始化和静态初始化
1.1、动态初始化
int[] a = new int[5];
1.2、静态初始化
int[] b = new int[]{1,2,3,4,5};
int[] c = {1,2,3,4,5};
动态数组创建过程如图:
二.冒泡排序详解:
2.1 概念
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。
2.2 形式
相邻位置比较,从小到大排序,如果小就往前换。
i代表从头到尾遍历循环数据。
代码演示:
public class Test1_Bubble {
public static void main(String[] args) {
//1、创建无序数组
int[] a = {21,96,75,23,25};
//2、调用method()排序
int[] newA = method(a);
System.out.println(Arrays.toString(newA));
}
public static int[] method(int[] a) {
//1、外循环:控制比较轮数
for(int i = 0 ; i < a.length-1 ; i++) {
//2、内循环:相邻比较 交换位置
for(int j = 0 ; j < a.length-1 ; j++) {
//相邻元素的值比较,a[j]代表的是前一个元素,a[j+1]代表的是后一个元素
if(a[j] > a[j+1]) {
//交换数据
int t = a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
return a;//把排序后的数组返回
}
}
三、面向对象
面向对象(OOP,Object Oriented Programming)
3.1、 三大特征
1、 封装性,把相关的数据封装成一个“类”组件
2、 继承性,是子类自动共享父类属性和方法,这是类之间的一种关系
3、 多态,增强软件的灵活性和重用性
3.2、对象在内存中的存储
Java把内存分成5大区域,我们重点关注栈和堆。
1、 一般来讲局部变量存在栈中,方法执行完毕内存就被释放
2、 对象(new出来的东西)存在堆中,对象不再被使用时,内存才会被释放
3、 每个堆内存的元素都有地址值
4、 对象中的属性都是有默认值的
拓展:创建对象的流程
Person p = new Person();//短短这行代码发生了很多事情
1、 把Person.class文件加载进内存
2、 在栈内存中,开辟空间,存放变量p
3、 在堆内存中,开辟空间,存放Person对象
4、 对成员变量进行默认的初始化
5、 对成员变量进行显示初始化
6、 执行构造方法(如果有构造代码块,就先执行构造代码块再执行构造方法)
7、 堆内存完成
8、 把堆内存的地址值赋值给变量p ,p就是一个引用变量,引用了Person对象的地址值