对数组排序,对于基本类型的数组使用优化后的快速排序算法,效率高。
对引用类型数组,使用优化后的合并排序算法。
把数组里的数据,用逗号连接成一个字符串。【值1,值2】
把数组复制成一个指定长度的新数组。
新数组长度大于原数组,相当于复制,并增加位置
新数组长度小于原数组,相当于截取前一部分数据
可以改变的数,称为变量。
一般通过三部分来描述一个变量。
变量类型,变量名,变量值。
其中三部分都是可以改变的,根据需要来确定即可。
变量的使用原则:就近原则。
尽量控制到最小范围。
定义在方法里
注意:必须手动初始化,来分配内存。如:int i=5; 或者 int i; i=5;
作用域也就是方法里或者局部代码块里,方法运行完内存就释放了。
定义在类里,方法外。
注意:不用初始化,也会自动被初始化成默认值。
作用域是整个类中,类消失了,变量才释放。
八大基本类型都有各自的默认值。
引用类型的默认值都是null。
基本类型 | 默认值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
char | ‘\u0000’ |
boolean | false |
Thinking in java
所谓的面向对象是一种编程思想,通过这种思想可以把生活中的复杂事情变得简单化,从原来的执行者变成了指挥者。
面向对象是基于面向过程而言的。
我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)
1. 封装性,把相关的数据封装成一个“类”组件
2. 继承性,是子类自动共享父类属性和方法,这是类之间的一种关系
3. 多态,增强软件的灵活性和重用性
4. 类和对象
1. Java语言最基本单位就是类,类似于类型。
2. 类是一类事物的抽象。
3. 可以理解为模板或者设计图纸。
每个对象具有三个特点:对象的状态,对象的行为和对象的标识。
1. 对象的状态用来描述对象的基本特征。
2. 对象的行为用来描述对象的功能。
3. 对象的标识是指对象在内存中都有一个唯一的地址值用来和其他对象区分开来。
4. 类是一类事物的抽象,对象是具体的实现。
汽车类:
实现可以有奥迪汽车对象、有宝马汽车对象。
1. 计算机语言是用来描述现实世界事物的。通过描述事物的特征和事物的行为来描述
2. 那怎么通过java语言描述呢?通过类来描述事物,把事物的属性当做成员变量,把行为当做成员方法。
分析手机事物:
类:手机类,抽取相同的特征和功能
对象:可以按照模板生产很多个手机,比如1号手机对象,包含特有的成员变量和成员方法
封装是指隐藏对象的属性和实现细节
仅仅对外提供公共的访问方式。
好处:
1. 提高安全性
2. 提高重用性
是一个权限修饰符,用于修饰成员变量和成员函数。
被私有化的成员只能在本类中访问。
构造方法是一种特殊的方法,它是一个与类同名的方法。
对象的创建就是通过构造方法来完成.
其功能主要是完成对象的创建或者对象的初始化。
当类实例化new一个对象时会自动调用构造方法。
构造方法和其他方法一样也可以重载(方法名相同+参数列表不同)。
可以无参也可以有参
修饰符 类名([参数列表]){
代码……
}
this代表本类对象的一个引用对象。
this.name=name;
{
…
}
继承是面向对象最显著的一个特性。
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
Java继承是使用已存在的类的定义作为基类/父类/超类,新类的定义可以增加新的数据或新的功能,也可以用父类的功能。
但不能选择性地继承父类(超类,基类)。
这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。
注意:
Person p = new Person();//短短这行代码发生了很多事情
没有名字的对象,是对象的简化表示形式。
使用场景:
1、当被调用的对象只调用一次时(多次会创建多个对象浪费内存)
Demo d = new Demo();
d.sleep();
d.game();
//这个d就是对象的名字。
也可以写成:
new Demo().show();//创建了一个对象调方法
new Demo().game();//又创建了一个对象调方法