乐趣区

关于java:最基础的3道java面试题别说你不会

想更好的应答面试,还是须要一直学习一直总结,上面咱们来剖析三道面试题。

  涨薪必备的面试小抄

上面是一道入门级面试题,这道题基本上都是问高级的小伙伴比拟多,但如果你是中级,或者高级。我感觉未必都能答复上来。

说说 Java 语言有哪些特点

尽量答出以下几个关键词:

1)简略易学。Java 有丰盛的类库,可能通过静态方法封装,升高 API 的学习老本,进步工作效率。

2)面向对象。这个也是 Java 最重要的个性,java 可能使得程序耦合度更低,内聚性更高。

3)牢靠平安。Java 生态系统包含用于剖析和报告安全性问题的各种工具。

4)与平台无关。Java 可能跨平台应用,Write Once Run AnyWhere。实际上就是对应操作系统上都有个虚拟机作为一个两头转换。

5)反对多线程。Java 能够采纳多线程 + 协程形式实现更多的并发操作。

上面也是一道入门级面试题,面向过程与面向对象的区别,这里最好的是搞过 C 或 C ++ 的同学,前面来搞 Java 了,这样对面向过程和面向对象编程的领会更深。

说说面向对象和面向过程的区别

1)从概念上来说。面向过程:字面意义上就是面向的是过程,先做什么、在做什么、最初做什么,而后用函数把这些步骤一步一步地实现,在应用的时候一一调用则可。面向对象:字面意义上就是面向的是对象,是把形成问题的事务分解成各个对象,然而建设对象的目标也不是为了实现一个个步骤,而是为了形容某个事物在解决整个问题的过程中所产生的行为。

2)从性能上来说。面向过程性能较高,所以单片机、嵌入式开发等个别采纳面向过程开发。从性能上来说,面向对象比面向过程要低。

3)从可用性来说。面向对象有封装、继承、多态的个性,所以易保护、易复用、易扩大,能够设计出低耦合的零碎。

扩大面试题:说说面向切面和面向对象的区别。

上面还是一道入门面试题,每个面试题都不要漫不经心,都是考验基本功是否扎实。

说说办法重载和办法重写的区别

都是和办法有关系的,那 Java 中办法的签名蕴含什么呢?

要残缺的形容一个办法,须要指出办法名以及参数类型,这就叫办法的签名。

比如说 String 类中有 4 个称为 indexOf 的私有办法:

`indexOf(int)
indexOf(int,int)
indexOf(String)
indexOf(String,int)
`

返回类型不是办法签名的一部分,也就是说,不能有两个名字雷同、参数类型也雷同却有着不同类型返回值的办法。

`public void say(String name){
}
public String say(String name){
}
`

咱们持续聊办法的重写与重载:

「办法的重写(Override)」

从字面上看,重写就是 从新写一遍的意思。其实就是在子类中把父类自身有的办法从新写一遍。子类继承了父类原有的办法,但有时子类并不想一成不变的继承父类中的某个办法,所以在办法名,参数列表,返回类型 (除过子类中办法的返回值是父类中办法返回值的子类时) 都雷同的状况下,对办法体进行批改或重写,这就是重写。但要留神子类函数的拜访润饰权限不能少于父类的。

`public class Father {
    public static void main(String[] args) {
        Son s = new Son();
        s.sayHello();
    }
    public void sayHello() {
        System.out.println(“Father say Hello”);
    }
}
class Son extends Father{
    //Son 重写了 Father 的 sayHello 办法
    @Override
    public void sayHello() { 
        System.out.println(“Son say hello “);
    }
}
`

总结:

1. 产生在父类与子类之间。

2. 办法名,参数列表,返回类型(除过子类中办法的返回类型是父类中返回类型的子类)必须雷同。

3. 拜访修饰符的限度肯定要大于被重写办法的拜访修饰符(public>protected>default>private)。

4. 重写办法肯定不能抛出新的查看异样或者比被重写办法申明更加宽泛的查看型异样。

「办法的重载(Overload)」

Java 中容许同一个类中能够定义多个同名办法,只有形参列表(办法入参)不同就行。如果同一个类种蕴含了两个或者多个以上办法的名称雷同,然而形参列表不同,则被称之为办法重载。

在一个类中,同名的办法如果有不同的参数列表(参数类型不同、参数个数不同甚至是参数程序不同)则视为重载。同时,重载对返回类型没有要求,能够雷同也能够不同,但不能通过返回类型是否雷同来判断重载。

`public class Father {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Father s = new Father();
        s.sayHello();
        s.sayHello(“wintershii”);
    }
    public void sayHello() {
        System.out.println(“Hello”);
    }
    public void sayHello(String name) {
        System.out.println(“Hello” + ” ” + name);
    }
    
    public void sayHello(Long userId, String name) {
        sayHello(“Hello” + ” ” + name);
    }
}
`

总结:

办法重载要求两同一不同:

1. 同一个类中。

2. 办法名雷同。

3. 参数列表不雷同。

办法返回值、修饰符,与办法重载没有任何关系。

不举荐应用以下形式:

`public void sayHello(String name){
}
public void sayHello(String… name){
}
`

因为这么做切实是没有太大的意义,并且容易升高程序的可读性。

总结

本文分享了三道入门级面试题,你都能答复上来吗?你答复都是背的吗还是本人真正了解的?

「略微认真点、虚浮点、致力点,发光是迟早的事」

举荐浏览

《Spring Cloud 微服务实战》.pdf
面试官:说说你对序列化的了解
JVM 真香系列:堆内存详解

退出移动版