一、Java中的四类八种基本数据类型及其封装类:
| 类别 | 数据类型 | 包装类 | 字节长度 | 默认值 |
|---|---|---|---|---|
| 整数型 | byte | Byte | 1 | 0 |
| 整数型 | short | Short | 2 | 0 |
| 整数型 | int | Integer | 4 | 0 |
| 整数型 | long | Long | 8 | 0l或0L |
| 浮点型 | float | Float | 4 | 0.0f或0.0F |
| 浮点型 | double | Bouble | 8 | 0.0 |
| 字符型 | char | Character | 2 | u0000 |
| 布尔型 | boolan | Boolean | 1 | fales |
二、Java三大(或四大)特性:
1、封装:
简单地说,封装就是把同一类事物的共性(包括属性和方法)归到同一类中,实现代码重用,方便使用。
——封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系。也就是说用户不需要知道内部的数据和方法的具体实现细节,只需根据留在外部的接口进行操作就行。
2、继承:
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。——比如:类C继承类B,类B继承类A(多继承),则类C既有从类B那里继承下来的属性与方法,也有从类A那里继承下来的属性与方法,还可以有自己新定义的属性和方法。
3、多态:
相同的事物,调用相同的方法,使用相同的参数,但是表现的行为不同。
——方法的重写、重载与动态连接构成多态性;
4、抽象:
抽象就是把一类事物的共同特性整理出来,把这些特性封装一个抽象类。
三、静态变量与实例变量的区别:
1、语法定义上的区别:静态变量需要用static修饰,实例变量不用。
2、程序运行时的区别:实例变量必须创建对象后才可以通过这个对象来使用,静态变量属于类变量,则可以直接使用类名来引用。
四、静态方法与非静态方法的区别:
1、静态方法的使用效率比非静态方法的效率高。
2、静态方法跟静态变量一样,属于类本身,在类加载的时候被加载到内存,不自动销毁,在内存中直到jvm关闭。
非静态方法也叫实例方法,属于实例对象,实例化后才会分配内存,必须通过类的实例来调用。
3、主要区别:静态方法在创建对象前就可以使用了,非静态方法必须通过new出来的对象调用。
五、方法重载与方法重写的区别:
方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。
1、重载:发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;
2、重写:发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常。
六、接口与抽象的区别:
七、冒泡排序:
int array = {3,72,4,26,8,15,9,23,52,1,34,45}; //定义数组
for(int i=0; i<array.length-1; i++){
for(int j=0; j<array.length-1-i; j++){
if( array[j] < array[j+1] ){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
};
};
};
for(int arr : array){ //冒泡后的数组排序
System.out.println(arr+" ");
};