一、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+" ");
};
八、事务:
特性 | 见解 |
---|---|
原子性(Atomicity) | 表示事务执行过程中的任何失败都将导致事务所做的任何修改失效,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 |
一致性(Consistency) | 表示一个事务执行之前和执行之后都必须处于一致性状态,当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。 |
隔离性(Isolation) | 表示当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。 |
持久性(Durability) | 表示一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。 |
总的说就是:要么全部执行成功,要么撤销不执行。
通俗的理解,事务是一组原子操作单元,从数据库角度说,就是一组SQL指令,要么全部执行成功,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令。