Java基础面试题--概念 day01

1.说一下Java的特点

主要有以下特点:

  • 平台无关性:编写一次、到处运行。Java编译器将源代码编译成字节码文件,该字节码文件可以在任何安装了Java虚拟机的系统上运行
  • 面向对象:Java是一门严格面向对象的语言,一切皆对象。面向对象编程OOP使得代码更易于维护和重用,包括类、对象、封装继承多态等。
  • 内存管理:Java有自己的垃圾回收机制,能够自动管理内存和回收不再使用的对象。这样开发者就不需要自己管理内存,大大减少了内存泄漏和其他内存相关的问题。

2.Java为什么是跨平台的

跨平台主要依赖于JVM
我们编写的Java源程序会被Java编译器(javac)编译成字节码文件(.class),Java虚拟机就是负责把字节码文件翻译成特定平台下的机器语言然后运行。
也可以这样子理解:
JVM就是一个“桥梁",一个中间件,是实现跨平台的关键!
所以,运行Java程序必须有JVM的支持。注意跨平台的是Java程序而不是JVM(JVM是C/C++开发的,不同平台下安装不同版本的JVM)

在这里插入图片描述

3.JVM、JDK、JRE三者之间的关系?

在这里插入图片描述

  • JVM:Java虚拟机,是Java程序运行的环境。负责将Java字节码(由Java编译器生成的的.class字节码文件)解释成机器码并执行程序。JVM提供了内存管理、垃圾回收、安全性等功能,使得Java程序具备跨平台性。
  • JDK:Java Development Kit Java开发工具包,是开发Java程序所需的工具集合。它包含了JVM、编译器javac、调试器jdb等开发工具,以及一系列类库(如Java标准库和开发工具库)。总之JDK提供了开发、编译、调试和运行Java程序的全部工具和环境。
  • JRE:Java Runtime Environment Java运行时环境,是Java程序运行时所需的最小环境。它包含了JVM和一组Java类库,用于执行Java程序。(JRE不包含开发工具,只提供Java程序运行所需的运行环境。)

4.为什么Java解释和编译都有?

Java首先经过编译器编译后生成字节码文件,然后JVM就有两个步骤:编译、解释。
在这里插入图片描述
编译性:
Java首先被编译成字节码,JIT会把编译过的机器码保存起来,以备下次使用。

解释性:
JVM中一个方法调用计数器,当累计计数大于一定值的时候,就使用JIT进行编译生成的机器码文件。否则就是用解释器进行解释执行,然后字节码也是经过解释器解释进行解释运行的。

所以Java既是编译型也是解释性语言,默认采用的是解释器和编译器混合的模式。

5.jvm是什么?

JVM:Java虚拟机,是Java程序运行的环境。负责将Java字节码(由Java编译器生成的的.class字节码文件)解释成机器码并执行程序。JVM提供了内存管理、垃圾回收、安全性等功能,使得Java程序具备跨平台性。

6.编译型语言和解释型语言的区别?

  • 编译型语言(如C/C++):在程序执行之前,整个源代码会被编译成机器码或者字节码,生成可执行文件。执行时直接运行编译后的代码,速度快,但跨平台性差。
  • 解释型语言(如py,js):在程序执行时,逐行解释执行源代码,不生成独立的可执行文件。通常由解释器动态解释并执行代码,跨平台性好,但执行速度相对较慢。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值