Java基础(面试必问点)

从春招找实习开始,每次面试在问到Java基础部分的时候,有一些知识点出现的几率很大,所以今天就把这些常问的知识点整理一下,希望对找实习或者找工作的同学们有帮助~

1、面向对象的三大特征?

                  封装性、继承性、多态性,(再具体说说)

 

2、Java中的基本数据类型有哪些?

  • 数值型——byte(字节型)、short(短整型)、int(整型)、long(长整型)、float(单精度浮点型)、double(双精度浮 点型)、
  • 布尔型——boolean(布尔型)、
  • 字符型——char(字符型)

(扩展:会问到new对象还有基本数据类型,会在内存区域的哪一块等等)

 

3、初始化顺序?

对于一个类而言,按照如下顺序执行:

  1. 执行静态代码块
  2. 执行构造代码块
  3. 执行构造函数

对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。

当涉及到继承时,按照如下顺序执行:

  1. 执行父类的静态代码块,并初始化父类静态成员变量

  2. 执行子类的静态代码块,并初始化子类静态成员变量

  3. 执行父类的构造代码块,执行父类的构造函数,并初始化父类普通成员变量

  4. 执行子类的构造代码块, 执行子类的构造函数,并初始化子类普通成员变量

 

4、重载和重写?

Overload是重载的意思,Override是覆盖的意思,也就是重写。

       1. 重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数、顺序或类型不同)。

       2. 重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同。

重写时要注意——

  • 子类覆盖父类的方法时,只能比父类抛出更少的异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。
  • 子类方法的访问权限只能比父类的更大,不能更小。
  • 如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。

注意:如果两个方法的参数列表完全一样,不可以让它们的返回值不同来实现重载!!

 

5、抽象类和接口的区别?(博主画个图表说明吧,更直观)

Java基础(面试必问点)_第1张图片

 

6、参数的传递是值传递还是引用传递?

①当基本数据类型作为参数传递时,传递的是实参值的副本,即传递的是值。

    不管这个函数中怎么操作这个副本,实参的值是不会被改变的。

②当对象作为参数传递时,实际上传递的是一份“引用的拷贝”。

 

7、String、 StringBuffer 、StringBuilder 区别?

①String:String 类对象为不可变对象,被 final 修饰,不能被继承。

  • 一旦你修改了 String 对象的值,隐性重新创建了一个新的对象,释放原 String 对象。
  • 创建String 对象的时候会在字符串常量池中查找是否有该变量——

        如果不存在,则在 StringPool 中创建一个,然后返回其地址;

        如果存在,则直接返回其地址。

②StringBuffer:字符串变量,相对 StringBuilder 来说是线程安全的。它的大多方法都采用了Synchronized关键字修饰。

  • StringBuffer 类对象为可修改对象,可以通过 append()方法来修改值。(在尾部添加)。
  • 适用于多线程操作大量数据。

③StringBuilder:字符串变量,线程不安全。

  •             在内部,StringBuilder对象被当成一个包含字符序列的可变长数组。
  •             大部分情况下,他的效率 比StringBuffer的高。因为它不需要考虑线程安全的问题。
  •             适用于单线程操作大量数据。

 

面试出现频率最高的基础知识点,差不多就是这些了,后续还会继续补充di ~   

感觉实习生面试一般不会很深,或者涉及很多巨难巨深的知识,所以基础知识一定要牢固哇,面试加油!

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java,面经)