当前位置:首页 > Java技术 > 这三道最基础的java面试题,你真的答得上来吗?

这三道最基础的java面试题,你真的答得上来吗?

2022年08月04日 22:57:02Java技术4

想更好的应对面试,还是需要不断学习不断总结,下面我们来分析三道面试题。

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

说说 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){

}

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

总结

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

「稍微认真点、踏实点、努力点,发光是迟早的事」

作者:田维常TWC
来源链接:https://www.cnblogs.com/tianweichang/p/14355931.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/17344.html

标签: Java面试题
分享给朋友:

“这三道最基础的java面试题,你真的答得上来吗?” 的相关文章

java 集合hashmap hashset arraylist 详解以及常见面试题

java 集合hashmap hashset arraylist 详解以及常见面试题

   今天复习了一下自认为java 中很重要的一部分集合,这篇文章主要从底层源码进行分析这几种集合的区别与联系,他们的用法不多讲,用法不难;大多数东西我也是从各位大神的博客上或者书上扒下来的,小菜鸟在复习,写下来主要是一:是为了想留下点东西 二:我发现在写的过程中我...

java面试题栈

JavaEE面试题收集 Java EE平台构建于Java SE平台之上,Java EE平台提供一组API和运行环境来开发和运行大规模的,多层的,可扩展的,可靠的和安全的网络应用程序。这里会不断收集和更新JavaEE基础相关的面试题,目前已收集84题...

经典java面试题(详细)

经典java面试题(详细)

经典Java面试题收集(一) 转载于:https://www.jianshu.com/p/c01eb6e46226 categories: Interviewdescription: 本文收集了一些经典的Java面试题...

Java高级面试题整理(附答案)

这是我收集的10道高级Java面试问题列表。这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题。你可能知道这些棘手的 Java 问题的答案,或者觉得这些不足以挑战你的 Java 知识,但这些问题都是容易在各种 Java 面试中被问到...

各大公司java后端开发面试题

ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。ThreadLoc...

杭州银行面试题整理

如何遍历map spring ioc和aop理解 autowired和resource注解的区别 list和set区别 arraylist和linkedlist区别 文件上传 数据库显示成绩前五名的学生...

Java面试题_第四阶段

Java面试题_第四阶段

1.1 电商行业特点 1.分布式   垂直拆分:根据功能模块进行拆分   水平拆分:根据业务层级进行拆分 2.高并发      用户单位时间内访问服务器数量,是电商行业中面临的主要问题 3....

最新Java基础面试题及答案整理

最新Java基础面试题及答案整理

最近在备战面试的过程中,整理一下面试题。大多数题目都是自己手敲的,网上也有很多这样的总结。自己感觉总是很乱,所以花了很久把自己觉得重要的东西总结了一下。 面向对象和面向过程的区别 面向过程:    优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较...

Java社招最全面试题,转疯了!

Java社招最全面试题,转疯了!

前言 设计模式是我们编程道路上绕不开的一环,用好了设计模式能够让代码拥有良好的维护性、可读性以及扩展性,它仿佛就是“优雅”的代名词,各个框架和库也都能见到它的身影。 正是因为它有种种好处,所以很多人在开发时总想将某个设计模式用到项目中来,然而...

40道Java基础常见面试题及详细答案

40道Java基础常见面试题及详细答案

最近看到网上流传着各种面试经验及面试题,往往都是一大堆技术题目贴上去,但是没有答案。 为此我业余时间整理了40道Java基础常见的面试题及详细答案,望各路大牛发现不对的地方不吝赐教,留言即可。 八种基本数据类型的大小,以及他们的封装类...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。