一.数组工具类
1.Arrays.sort(数组)
对数组进行排序,对于基本类型的数组使用优化后的快速排序算法效率高,对引用类型的数组,使用优化后的合并排序算法。
2.简单案例。
3.Arrays.copyOf(数组,新的长度)
把数组复制成一个指定长度的新数组,如果新数组的长度大于原数组,那么就相当于复制并且添加位置,即数组的扩容。如果新数组长度小于原数组,相当于截取前一部分数据,即数组的缩容。
4.简单案例。
二.面向对象
1.定义:所谓的面向对象,是一种编程思想,通过这种思想可以把生活中的复杂事情变得简单化,从原来的执行者编程了指挥者,面向对象是基于面向过程而言的。我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。
2.三大特征:封装,继承和多态。
三.类
1.定义:Java语言中最基本的单位,类似于类型。类是一类事物的抽象,可以理解为模板或者设计图纸。
四.对象
1.定义:每个对象具有三个特点,对象的状态,对象的行为以及对象的标识。
<1>对象的状态用来描述对象的基本特征。
<2>对象的行为用来描述对象的功能。
<3>对象的标识是指对象在内存中都有一个唯一的地址用来和其他对象区分开来。
<4> 类是一类事物的抽象,对象是具体的实现。
五.类和对象的关系
通过类来描述事物,把事物的属性当做成员变量,把行为当做成员方法。例如,分析手机事物:
<1>属性:颜色,尺寸,品牌,价格。
<2>行为:打电话,发短信,听音乐。
<3>类:手机类,抽取相同的属性和行为。
<4>对象:可以按照模板生产很多个手机,比如1号手机对象,包含特有的成员变量和成员方法。
六.类和对象的简单案例
package Practice;
//测试类与对象的关系。
public class Practice_03 {
//一个文件中只能有一个类被public。
public static void main(String[] args) {
phone p = new phone();//通过new关键字,创建一个手机对象。
//模板的类型 变量名 = new 模板类型的对象;
//p是引用类型的变量,保存的是内存中的地址值。
System.out.println(p.price);//输出成员变量。
p.music();//调用成员方法。
}
}
class phone{
//定义一个手机类。
String color;//成员变量。
double size;
String brand;
double price;
public void call() {
//成员方法。
System.out.println("打电话");
}
public void message() {
System.out.println("发短信");
}
public void music() {
System.out.println("听音乐");
}
}
七.堆和栈
堆的空间相对栈而言会大一些。
<1>一般来讲,栈中存储局部变量,方法执行完毕内存就被释放。
<2>对象存在与堆中,对象不再被使用时,内存才会被释放。
<3>每个堆内存的元素都有地址值。
<4>对象中的属性都是有默认值的。
八.单一对象内存图
<1>在栈内存中,创建一个引用变量p,持有对象的地址值。
<2>在堆内存中,创建Person对象,并且开辟变量的空间,完成初始化。
<3>在堆内存中的元素,分配一个唯一的标志,地址值,交给p去保存。
<4>p.name=“list”;p.page=20;就去堆内存中找到唯一的地址值,找到Person对象,并且对其属性进行修改赋值。
<5>p.eat();就去堆内存中找唯一的地址值,找到Person对象,并且执行Person对象的方法。
九.多对象内存图
<1>变量p和变量p1不是一片空间,p1需要开辟新的空间。
<2>Person p1=new Person;这时只要有new,就会新开辟空间在堆内存中存入对象。