• java面试题续集(二)


    1.抽象类和接口的区别?

    同:

    •   接口和抽象类不能被实例化
    • 都位于继承顶端,用于被其他实现或继承
    •   都包含抽象方法,其子类必须复写这些抽象方法

    异:

    声明上:抽象类使用abstract关键字,接口使用interface关键字

    实现上:子类使用extends关键字来继承抽象类;子类使用implements关键字实现接口

    构造器:抽象类可以有构造器,接口不能有构造器

    访问修饰符:抽象类方法可以任意访问修饰符;接口方法默认修饰符public

    字段声明:抽象类的字段声明可以是任意的;接口的字段默认是static和final

    多继承:一个类最多只能继承一个抽象类;一个类可以实现多个接口

    2.hashmap实现

    hashmap集合时map接口的一个实现类,用于存储键值的映射关系,该集合的键和值允许为空,但是键不能重复,且集合的元素时无序的。hashmap是由hash表组成的,其实就是“数组+链表的组合”,数组是主体,而链表是为了解决哈希值冲突而存在的分支结构,所以hashmap集合对增删改查的效率比较高。

    9.(1)spring的简化开发IoC的理解? IoC是控制反转,spring通过IoC容器实现对象耦合关系的管理,并实现依赖反转,将对象之间的依赖关系交给IoC容器,实现解耦。IOC负责创建对象,管理对象,装配对象、配置对象,并且管理对象的生命周期。

    (2)spring的AOP的理解?

    答:面向切面编程,允许程序员通过自定义的横切点进行模块化,将那些影响多个类的行为封装到可重用的模块中。例如:日志输出,不使用AOP就需要日志输出语句放在所有的类中。有了AOP需要把日志输出语句封装成一个可重用模块

    3.spring中都用到了哪些设计模式?

    工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象实例。

    单例模式:Bean默认是单例模式。

    代理模式:spring的AOP用到JDK的动态代理和字节码生成。

    观察者模式:定义对象键一种的1:n的依赖关系,当一种对象的状态发生改变,所有依赖它的对象的都会得到更新。

    4.springboot的核心注解?

    springboot是基于快速开发、整合了ssm,简化配置、内嵌服务器。启动类的注解是@springbootapplication是核心注解,其中包括:

    @springbootconfiguration组合@configuration注解,实现配置文件的功能。

    @enableautoconfiguration打开/关闭自动配置的功能

    @componentscan:spring组件扫描

    5.final、finally、finalize区别?

    final修饰的关键字不能被继承;final修饰的方法不能被子类重写;final的变量是常量,只能被赋值一次。

    finally一般作用于try – catch中在处理异常时,通常一定要执行的代码的方法finally中,不管是否出现异常都会执行finally

    finalize一般是由垃圾回收器来调用

    6.谈谈对spring MVC 的理解?

    spring MVC是轻量级的web框架通过模型-视图-控制器分离,对web层进行解耦,简化开发,方便前后端人员的协调配合。spring MVC的主要组件:前端控制器dispatcherservlet、处理器的映射器handlermapping、处理器适配器handleradapter、视图解析器viewresolver

    7.spring mvc的常用注解?

    @requestmapping:用于请求url映射的注解,可用于类或方法上

    @requestbody:实现接收http请求的json数据将json数据转换java对象

    @responsebody:将controller返回对象转化为json对象响应给客户

    @controller:控制器注解

    8.一次http请求过程?

    1 建立tcp连接(通过三次握手)。

    2 web浏览器向web服务器发送请求行。

    3 web浏览器发送请求头

    4 web服务器应答

    5 web服务器发送应答头

    6 web服务器向浏览器发送数据

    7 web服务关闭TCP连接

    9.http的请求方式?

    GET方式:用于请求访问已经被URI识别的资源,通过URL传参给服务器

    POST方式:用于传输信息给服务器

    GET和POST的区别:

    一、get从服务器获取资源,post向服务器发送数据

    二、get的传输数据量较小但是效率较高;post传输大量数据

    三、get是不安全的因为get请求在URL上是可见的,post是放在请求头部的,是安全的。

    10.介绍cookie和session?

    cookie是web服务器保存在用户浏览器上文件(key-value)由客户端向服务器发起请求,提取浏览器的用户信息由http发送给服务器。

    session是服务器会分配一块储存空间给session浏览器在向服务器请求过程传输cookie包含sessionid,服务器根据sessionid获取会话中的存储信息,确定会话身份信息。

    11.介绍常见的Linux命令?

    cd 切换目录

    cd ../  退回上级目录

    pwd 显示当前工作的绝对路径

    ls 显示当前文件夹下的所有文件名

    ll 显示当前目录下的所有文件夹的文件名的详细信息

    mkdir 创建目录

    cat 查看文件命令

    tail 查看文件末尾几行

    tar 压缩解压缩命令

    12.Linux系统进程通信方式?

    信号量、消息队列等

    13.缓冲池的理解?

    利用数组buffer表示具有N个缓冲区的缓冲池,每次投入(取出)一个产品,缓冲池buffer中暂存产品的数组单元指针in(out)加1当(in + 1)%n = out表示缓冲池满;in=out表示缓冲池空。生产者-消费者问题就是利用缓冲池进行异步运行。

    关注关注,主页更多的java课程学习路线,笔记,面试等架构资料

     

  • 相关阅读:
    8.javase_数组2
    C语言-汉诺塔问题
    c#对象深拷贝 -反射 获取实体对象
    Linux-环境变量
    自定义注+切面控制方法执行步骤
    使用 PyTorch 的计算机视觉简介 (5/6)
    36. 有效的数独
    An English-Chinese Chinese-English Glossary of Computer Science and Technology
    什么是JavaScript中的严格模式(strict mode)?应用场景是什么?
    spring boot项目未将resource目录标志为资源目录导致配置文件无效因而运行报错问题
  • 原文地址:https://blog.csdn.net/q66562636/article/details/125471953