当前位置: 首页 > news >正文

Java-小林coding八股文(1)

1.说一下Java的特点?

1.平台无关性:Java编译器将源代码编译成字节码(bytecode),该字节码可以在任何安装了Java虚拟机(JVM)的系统上运行。

2.面向对象:Java是一门严格的面向对象编程语言,几乎一切都是对象。面向对象编程(OOP)特性使得代码更易于维护和重用,包括类(class)、对象(object)、继承(inheritance)、多态(polymorphism)、抽象(abstraction)和封装(encapsulation)。

3.内存管理:Java有自己的垃圾回收机制,自动管理内存和回收不再使用的对象。这样,开发者不需要手动管理内存,从而减少内存泄漏和其他内存相关的问题。

2.Java 的优势和劣势是什么?

1.跨平台,因为JVM的存在,一次编写到处运行。

2.强大的生态系统,比如Spring框架,Hibernate,各种库和工具。

3.内存管理方面,自动垃圾回收机制,减少了内存泄漏的问题,对开发者友好。

4.多线程支持,内置的线程机制,方便并发编程。

5.安全性方面,Java有安全模型,比如沙箱机制,适合网络环境。

6.稳定性,企业级应用长期使用,版本更新也比较注重向后兼容。

性能可能是一个,内存消耗,JVM本身占内存,对于资源有限的环境可能不太友好。

3.Java为什么是跨平台的?

JVM是一个”桥梁“,是一个”中间件“,是实现跨平台的关键,Java代码首先被编译成字节码文件,再由JVM将字节码文件翻译成机器语言,从而达到运行Java程序的目的。

编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样。

运行Java程序必须有JVM的支持,因为编译的结果不是机器码,必须要经过JVM的再次翻译才能执行。即使你将Java程序打包成可执行文件(例如 .exe),仍然需要JVM的支持。

跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的JVM。


4.JVM、JDK、JRE三者关系?

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

2.JDK是Java开发工具包,是开发Java程序所需的工具集合。它包含了JVM、编译器(javac)、调试器(jdb)等开发工具,以及一系列的类库(如Java标准库和开发工具库)。JDK提供了开发、编译、调试和运行Java程序所需的全部工具和环境。

3.JRE是Java运行时环境,是Java程序运行所需的最小环境。它包含了JVM和一组Java类库,用于支持Java程序的执行。JRE不包含开发工具,只提供Java程序运行所需的运行环境。

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

首先在Java经过编译之后生成字节码文件,接下来进入JVM中,就有两个步骤编译和解释:

编译性

  • Java源代码首先被编译成字节码,JIT 会把编译过的机器码保存起来,以备下次使用。

解释性:

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

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


6.jvm是什么?

JVM是 java 虚拟机,主要工作是解释自己的指令集(即字节码)并映射到本地的CPU指令集和OS的系统调用。

JVM屏蔽了与操作系统平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可在多种平台上不加修改的运行,这也是Java能够“一次编译,到处运行的”原因。

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

编译型语言和解释型语言的区别在于:

1.编译型语言:在程序执行之前,整个源代码会被编译成机器码或者字节码,生成可执行文件。执行时直

接运行编译后的代码,速度快,但跨平台性较差。

2.解释型语言:在程序执行时,逐行解释执行源代码,不生成独立的可执行文件。通常由解释器动态解释并执行代码,跨平台性好,但执行速度相对较慢。

  • 典型的编译型语言如C、C++,典型的解释型语言如Python、JavaScript。

8.Python和Java区别是什么?

Java是一种已编译的编程语言,Java编译器将源代码编译为字节码,而字节码则由Java虚拟机执行。

python是一种解释语言,翻译时会在执行程序的同时进行翻译。

http://www.dtcms.com/a/596296.html

相关文章:

  • Selenium详细教程
  • 门户网站开发介绍上海华谊集团建设有限公司网站
  • 8. Linux-riscv内存管理35-40问
  • Vue3响应式系统中,对象新增属性、数组改索引、原始值代理的问题如何解决?
  • HTTP接口和Dubbo接口区别
  • K8S中ETCD高可用机制详解
  • jmeter发送数据到sasl加密的kafka
  • 【MATLAB代码】二维平面的TOA定位,GDOP(几何精度因子)和CRLB(克拉美罗下界)计算与输出
  • 【Hadoop】Hadoop核心基础——YARN 框架架构与运行机制(Hadoop 集群的 “资源管家”)
  • MI50运算卡使用llama.cpp的ROCm后端运行gpt-oss-20b的速度测试
  • 聊聊关于hive“中文乱码”问题
  • 一般建设网站需要多少预算酷站 网站
  • ASP.NET 实战:用 CSS 选择器打造一个可搜索、响应式的书籍管理系统
  • 消息队列防止数据丢失问题
  • Spring Cloud Bus 事件广播机制
  • 广州巨腾建网站公司郑州网站app开发
  • 银河麒麟服务器安装图形化界面
  • 【源码+文档+调试讲解】基于Spring Boot的考务管理系统设计与实现 085
  • LeetCode 421 - 数组中两个数的最大异或值
  • 【笔记】xFormers版本与PyTorch、CUDA对应关系及正确安装方法详解
  • 【GitHub每日速递 20251111】PyTorch:GPU加速、动态网络,深度学习平台的不二之选!
  • 多产品的网站怎么做seo做音乐网站之前的准备
  • 网站如何做h5动态页面设计万网备案初审过了后网站能访问吗
  • centos运维常用命令
  • 在CentOS 7.6系统中找回或重置 root 密码
  • 濮阳团购网站建设手机网站模板psd
  • 基于Spring Boot的电子犬证管理系统设计与实现
  • Spring Boot 中的定时任务:从基础调度到高可用实践
  • 家装设计师网站wordpress小清新模板
  • 用WordPress制作单页相城seo网站优化软件