常见面试题(更新中)

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)重载:根据参数的不同来表现多态

欢迎大佬指点。
原文地址:https://www.cnblogs.com/tietouwa/p/13489894.html