• Java面试题(持续更新中)


    在这里插入图片描述

    一、Java基础+集合+多线程+JVM

    1.Java基础

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

    面向过程:面向过程的性能比面向对象高。因为类调用时需要实例化,消耗比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、Linux/Unix、嵌入式开发等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。
    面向对象:面向对象易维护、易复用、易扩展。因为面向对象有封装、继承、多态的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。

    这个并不是根本原因,面向过程也需要分配内存,计算内存偏移量,Java性能差的主要原因并不是因为它是面向对象语言,而是Java是半编译语言,最终的执行代码并不是可以直接被CPU执行的二进制机械码。
    而面向过程语言大多数都是直接编译成机械码在电脑上执行,而其他一些面向过程脚本语言性能并不一定比Java好。

    1.2 Java语言有哪些特点?

    1. 简单易学
    2. 面向对象(封装、继承、多态)
    3. 平台无关性(Java虚拟机实现平台无关性)
    4. 可靠性
    5. 安全性
    6. 支持多线程
    7. 支持网络编程并且很方便(Java语言诞生就是为了简化网络编程)
    8. 编译与解释并存

    C++11之后,C++就引入了多线程库,在windows、Linux、macox中都可以使用std::thread和std::async来创建线程

    1.3 关于JVM、JDK、JRE最详细通俗的解答

    1.3.1 JVM

    Java虚拟机(JVM)是运行Java字节码文件的虚拟机,JVM有针对不同系统的特定实现,目的是使用相同的字节码,他们都会给出相同的结果。
    什么是字节码?采用字节码的好处是什么?

    JVM可以理解的代码叫做字节码(扩展名为.class的文件),它不面向特定的处理机器。只面向JVM。Java通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点,所以Java程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,所以,Java程序无需重新编译就可以在不同的操作系统的虚拟机上运行。

  • 相关阅读:
    Django实战项目-学习任务系统-自定义URL拦截器
    springboot基于Android的洗衣店预约APP毕业设计源码260839
    新人FPGA验证书籍推荐
    【树莓派】常规操作8则
    基于SpringBoot+Vue的餐饮管理系统设计与实现
    正确安装gdal库:ModuleNotFoundError: No module named ‘osgeo‘
    08 创建型模式-工厂模式
    如何把利用paddlepaddle导出的json文件转化为yolo或者voc文件
    springboot构建RESTful 风格应用
    SQL Server教程 - T-SQL-DQL(Data Query Language)
  • 原文地址:https://blog.csdn.net/m0_57229804/article/details/132818802