常见Java面试知识点总结

[转载Java面试知识点总结]java

一、方法覆盖与方法重载

  • **方法重载(Overloading):**若是有两个方法的方法名相同,但参数不一致,哪么能够说一个方法是另外一个方法的重载。web

  • Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同可是参数不一样的状况。重载Override是一个类中多态性的一种表现。
    (两同一不一样:同类同不一样参数)面试

  • 方法覆盖(Overriding): 在一个类中建立的方法与父类中方法的名字、 返回类型和参数表相同,覆盖是针对两个类说的,并且必须是子类(或孙类,孙孙类等)覆盖掉父类的方法ide

  • 方法覆盖是说子类从新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问。在java中,子类可继承父类的方法,则不须要从新编写相同的方法。但有时子类并不想原封不动继承父类的方法,而是想作必定的修改,这就采用方法重写。方法重写又称方法覆盖。svg

二、9. 接口和抽象类的区别是什么?

  • 从设计层面来讲,抽象是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。
  • Java提供和支持建立抽象类和接口。它们的实现有共同点,不一样点在于:接口中全部的方法隐含的都是抽象的。而抽象类则能够同时包含抽象和非抽象的方法;
  • 类能够实现不少个接口,可是只能继承一个抽象类;
  • 类能够不实现抽象类和接口声明的全部方法,固然,在这种状况下,类也必须得声明成是抽象的;
  • 抽象类能够在不提供接口方法实现的状况下实现接口;
  • Java接口中声明的变量默认都是final的。抽象类能够包含非final的变量;
  • Java接口中的成员函数默认是public的。抽象类的成员函数能够是private,protected或者是public;
  • 接口是绝对抽象的,不能够被实例化。抽象类也不能够被实例化,可是,若是它包含main方法的话是能够被调用的。也能够参考JDK8中抽象类和接口的区别。
  • 当一个类,同时继承了某个类,而且也实现了某些接口的时候,必需要将继承的类写在第一个(若是一个类同时继承了父类和接口的时候,要把父类写在最前面)
  • 当多个类,都具备某个或某几个功能时(方法),可是这几个类型又不属于相同的系列(这几个类型没有共同的父类,就不能用抽象类。),因此这时,为了实现多态就能够考虑把这几个类型共有的方法提取到一个接口中,让这几个类型分别实现该接口

三、 进程与线程的区别?

  • 进程是执行着的应用程序,是程序的一种动态形式,是CPU、内存等资源占用的基本单位,并且进程之间相互独立,通讯比较困难,进程在执行过程当中,包含比较固定的入口,执行顺序,出口;
  • 线程是进程内部的一个执行序列,隶属于某个进程,一个进程能够有多个线程,线程不能占有CPU、内存等资源,并且线程之间共享一块内存区域,通讯比较方便,线程的入口执行顺序这些过程被应用程序所控制。

在Java中,接口可理解为对象间相互通讯的协议。接口在继承中扮演着很重要的角色。接口只定义派生要用到的方法,可是方法的具体实现彻底取决于派生类。

经常使用的转义字符:函数

"\b" (退格)
"\f" (换页)
"\n" (换行)
"\r" (回车)
"\t" (水平制表符(到下一个tab位置))
"\' " (单引号)
"\" " (双引号) 
"\\" (反斜杠)

类与对象

  • 对象:对象是类的一个实例(对象不是找个女友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。.net

  • 类:类是一个模板,它描述一类对象的行为和状态。线程

    如动物是一个,里面的对象有狗,狗有颜色、品种等属性,一样的对象中狗有睡觉、跑步等方法设计

构造方法

每一个类都有构造方法。若是没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。code

在建立一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类能够有多个构造方法。