1:
//面试题:如下代码哪句错误?为什么错?怎么改?
short s = 5;
s += 10;//相当于s = (shrot)(s + 10);
//s = s +10;//编译错误,需强制转换!
*/
2:名词解释
JVM:Java虚拟机
加载.class并运行.class
JRE:Java运行环境
除了包含JVM以外还包含了运行Java程序所必须的环境
JRE=JVM+Java系统类库(小零件)
JDK:Java开发工具包
除了包含JRE以外还包含了开发Java程序所必须的命令工具
JDK=JRE+编译、运行等命令工具
说明:运行Java程序的最小环境为JRE
开发Java程序的最小环境为JDK
3:冒泡排序
1)n个数冒n-1轮
2)每一轮都是从第一个元素开始冒
每一次都是和它的下一个元素相比
3)冒出来的元素就不再参与相比
/*
int [] arr = {78,23,45,1}
for(int i = 0;i < arr.length-1;i++){ //控制轮
for(int j = 0;j < arr.length-1-i;j++){ //控制每轮的次数
if(arr[j] > arr[j+1]){ // 第一个元素和下个元素相比
int t = arr[j];
arr[j] = arr[j+1];
arr[j+1] = t;
}
}
}
代数:
i = 0;i<3;i++
j = 0;j<3 78和23比, 换, 23,78,45,1-----j++
j = 1;j<3 78和45比, 换, 23,45,78,1-----j++
j = 2:j<3 78和1比, 换, 23,45,1,78-----j++
i = 1;i<3;i++
j = 0;j<2 23和45比, 不换, 23,45,1,78-----j++
j = 1;j<2 45和1比, 换, 23,1,45,78-----j++
i = 2;i<3;i++
j = 0;j<1 23和1比, 换, 1,23,45,78-----j++
*/
4.重写与重载的区别(重点答重写重载的第一点)
1)重写
1.1)发生在父子类,方法名相同,参数列表相同,方法体不同。
1.2)遵循"运行期绑定",看对象类型来调用方法。
2)重载
2.1)发生在一个类中,方法名相同,参数列表不同,方法体不同。
2.2)遵循"编译期绑定",看引用/参数类型来调用方法。
5*程序=算法+数据结构
1)算法:解决问题的流程/步骤(顺序、分支、循环)
2)数据结构:将数据按照某种特定的结构来保存
设计良好的/合理的数据结构会导致好的算法
6*小面试题
Q:匿名内部类有独立的class吗?
A:有!
7*面向对象三大特征:
1.封装(保护程序)
1.1)类:封装的是对象的属性和行为
1.2)方法:封装的是特定的业务逻辑功能实现
1.3)访问控制修饰符:封装的是具体的访问权限(数据私有化,行为公开化)
2.继承
2.1)作用:代码复用
2.2)超类:所有派生类所共有的属性和行为
接口:部分派生类所共有的行为
派生类:派生类所特有的属性和行为
2.3)继承具有传递性,单一继承、多接口实现
3.多态
3.1)意义:行为的多态(所有抽象方法都是多态的)
对象的多态(所有对象都是多态的)
3.2)向上造型、强制类型转换、instanceof判断
3.3)表现形式:
3.3.1)重写:根据对象的不同来表现多态
3.3.2)重载:根据参数的不同来表现多态