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程序无需重新编译就可以在不同的操作系统的虚拟机上运行。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樱桃桃桃桃桃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值