2023最新面试题-Java-1

news2024/12/25 2:02:55

知其然知其所以然

  • Java之父:詹姆斯·高斯林 (James Gosling)。

什么是Java

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。意思Java不支持多继承、指针。Java语言具有功能强大和简单易用的两个特征。Java语言作为静态面向对象编程语言的代表,极好的实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

JVMJREJDK的关系

JVM
Java Virtual Machine Java 虚拟机, Java 程序需要运行在虚拟机上,不同的平 台有自己的虚拟机,因此 Java语言可以实现跨平台。
JRE
Java Runtime Environment 包括 Java 虚拟机和 Java 程序所需的核心类库等。核心类库主要是 java.lang 包:包含了运行Java 程序必不可少的系统类,如基本数 据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包
如果想要运行一个开发好的 Java 程序,计算机中只需要安装 JRE 即可。
JDK
Java Development Kit 是提供给 Java 开发人员使用的,其中包含了 Java 的开发 工具,也包括了 JRE 。所以 安装了JDK ,就无需再单独安装 JRE 了。其中的开发工 具:编译工具 (javac.exe) ,打包工具 (jar.exe)

 

JDK的核心版本

 而到目前为止,我们的JDK存在了三个版本的长期支持版。分别是JDK8JDK11JDK17

我司在由8向11过渡

不过最新20都出来,未来的21好像也是长期支持,技术发展太快,我还是好好搬砖。

这篇文章介绍了JDK版本的迭代核心内容:https://blog.csdn.net/wu6cfp38/article/details/130124836

什么是跨平台性?原理是什么

 所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上 运行。

实现原理: Java 程序是通过 java 虚拟机在系统平台上运行的,只要该系统可以安 装相应的 java 虚拟机,  该系统就可以运行java 程序。

什么是字节码?采用字节码的大好处是什么

字节码 Java 源代码经过虚拟机编译器编译后产生的文件(即扩展为 .class 的文 件),它不面向任何特   定的处理器,只面向虚拟机。

采用字节码的好处:

Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的 问题,同时又保留了解 释型语言可移植的特点。所以Java 程序运行时比较高效, 而且,由于字节码并不专对一种特定的机器, 因此,Java 程序无须重新编译便可 在多种不同的计算机上运行。

先看下java中的编译器和解释器:

Java 中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟机 器。这台虚拟的机器在 任何平台上都提供给编译程序一个的共同的接口。编译程 序只需要面向虚拟机,生成虚拟机能够理解的 代码,然后由解释器来将虚拟机代 码转换为特定系统的机器码执行。在Java 中,这种供虚拟机理解的代 码叫做字节 码(即扩展为.class 的文件),它不面向任何特定的处理器,只面向虚拟机。每 一种平台的 解释器是不同的,但是实现的虚拟机是相同的。 Java 源程序经过编译 器编译后变成字节码,字节码由虚 拟机解释执行,虚拟机将每一条要执行的字节 码送给解释器,解释器将其翻译成特定机器上的机器码, 然后在特定的机器上运 行,这就是上面提到的Java 的特点的编译与解释并存的解释。
Java 源代码 ---- > 编译器 ---- >jvm 可执行的 Java 字节码 ( 即虚拟指令 ) ---- >jvm ---- >jvm 中 解释器 ----- > 机器可执行的二进制机器码---- > 程序运行。

 Oracle JDK OpenJDK 的对比

1. Oracle JDK 版本将每三年发布一次,而 OpenJDK 版本每三个月发布一 次;
2. OpenJDK 是一个参考模型并且是完全开源的,而 Oracle JDK OpenJDK 的一个实现,并不是完全 开源的;
3. Oracle JDK OpenJDK 更稳定。 OpenJDK Oracle JDK 的代码几乎 相同,但 Oracle JDK 有更多的 类和一些错误修复。因此,如果您想开发企 业/ 商业软件,我建议您选择 Oracle JDK ,因为它经过 了彻底的测试和稳 定。某些情况下,有些人提到在使用OpenJDK 可能会遇到了许多应用程 序崩溃 的问题,但是,只需切换到Oracle JDK 就可以解决问题;
4. 在响应性和 JVM 性能方面, Oracle JDK OpenJDK 相比提供了更好的 性能;
5. Oracle JDK 不会为即将发布的版本提供长期支持,用户每次都必须通过 更新到最新版本获得支持来 获取最新版本;
6. Oracle JDK 根据二进制代码许可协议获得许可,而 OpenJDK 根据 GPL v2 许可获得许可。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/421990.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《花雕学AI》14:免费打开就可用,ChatGPT国内12个镜像站盘点与测试

引言 人工智能聊天机器人是能和人说话的智能系统,它可以帮人做很多事。现在,人工智能聊天机器人很厉害,很多人想试试。ChatGPT是一个很厉害的人工智能聊天机器人,是OpenAI做的。它可以和人一样说话,还可以回答问题、承…

无线耳机哪个音质比较好?四百内音质最好的无线耳机排行

蓝牙耳机常常作为手机的伴生产品而出现在人们的日常生活当中,其使用场景也越来越广泛。而随着蓝牙技术的发展,蓝牙耳机在音质上的表现也越来越好。下面,我来给大家推荐几款四百内音质最好的无线耳机,一起来看看吧。 一、南卡小音舱…

射频功率放大器在液体超声声强的光电测量中的应用

实验名称:液体中超声声强的光电测量 研究方向:光电测量 测试目的: 声强是描述声场的基本物理量口,超声效应直接与声强有关。例如在工程技术领域,液体中的声场分布直接影响流场分布口,声强的大小影响着超声波…

腾讯云GPU云服务器、CVM云服务器、轻量应用服务器配置价格表

这就是腾讯云GPU云服务器、CVM云服务器、轻量应用服务器配置价格表,最近整理的。目前腾讯云服务器分为轻量应用服务器、CVM云服务器和GPU云服务器,首先介绍一下这三种服务器。 1、GPU 云服务器(Cloud GPU Service,GPU)…

主从模式、哨兵模式、集群模式(cluster)

主从模式、哨兵模式、集群模式(cluster) redis 实现高可用的方式分为 主从模式、哨兵模式、集群模式(cluster) 1. 主从模式(又称为主从复制) 表现为1个主节点,多个从节点,主节点负…

2023年Python选择题及答案解析【35道】

2023年Python练习题及答案解析1、在Python3中,运行结果为:2、在Python3中,字符串的变换结果为:3、在Python3中,下列程序运行结果为:4、在Python3中,下列程序结果为:5、a与b定义如下&…

【C++】基础篇

C基础篇什么是C命名空间命名空间的三种使用方式C的输入和输出缺省参数缺省参数分类函数重载引用引用的使用场景常引用指针和引用的区别auto关键字auto使用细则auto不能推导的场景基于范围的for循环范围for的使用条件指针空值nullptr什么是C 1982年,Bjarne Stroustr…

AutoGPT保姆级使用教程

1. 介绍Auto-GPT是一个基于ChatGPT的工具,他能帮你自动完成各种任务,比如写代码、写报告、做调研等等。使用它时,你只需要告诉他要扮演的角色和要实现的目标,然后他就会利用ChatGPT和谷歌搜索等工具,不断“思考”如何接…

目标检测【Object Detection】

文章目录基本概念两阶段目标检测算法R-CNNFast R-CNNFaster R-CNNFPNMask R-CNN一阶段目标检测算法SSDYOLOv1YOLOv2YOLOv3目标检测的常用数据集目标检测的标注工具基本概念 目标检测是计算机视觉中的一个重要问题,它的目的是从图像或视频序列中识别出特定的目标&am…

在window上安装python

在Windows上安装python 1.进入python官网https://www.python.org/ 下载配置环境,点击上方downloads,根据系统选择python环境下载(选择windows) 往下拉查找需要的版本并下载 下载后双击就可以安装python了 如何检验是否安装成功 通过【winr】调出【运行】弹窗,输…

数据安全评估体系建设

数据安全评估是指对重要数据、个人信息等数据资产的价值与权益、合规性、威胁、脆弱性、防护等进行分析和判断,以评估数据安全事件发生的概率和可能造成的损失,并采取相应的措施和建议。 数据安全评估的重要性和背景 1.国家法律法规下的合规需要 目前数…

面试-基本计算器 II

题目 给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数&…

学生管理系统:含注册登录操作

目录 一、分包概况: 二、USER包 1.AMain类:主函数所在 2.User类:构造账号属性 3.PasswordOperate包:用于登录,注册,修改密码,查看账号操作 (1)Login类:…

Java中「Future」接口详解

主打一手结果导向; 一、背景 在系统中,异步执行任务,是很常见的功能逻辑,但是在不同的场景中,又存在很多细节差异; 有的任务只强调「执行过程」,并不需要追溯任务自身的「执行结果」&#xff…

你可能并不需要useEffect

背景 相信大家在写react时都有这样的经历:在项目中使用了大量的useEffect,以至于让我们的代码变得混乱和难以维护。 难道说useEffect这个hook不好吗?并不是这样的,只是我们一直在滥用而已。 在这篇文章中,我将展示怎…

【Spring源码】讲讲Bean的生命周期

1、前言 面试官:“看过Spring源码吧,简单说说Spring中Bean的生命周期” 大神仙:“基本生命周期会经历实例化 -> 属性赋值 -> 初始化 -> 销毁”。 面试官:“......” 2、Bean的生命周期 如果是普通Bean的生命周期&am…

【故障诊断】基于 KPCA 进行降维、故障检测和故障诊断研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【Flowable】Flowable流程设计器

Flowable流程设计器有两种实现方式 Eclipse DesignerFlowable UI应用 1.Eclipse Designer Flowable提供了名为Flowable Eclipse Designer的Eclipse插件,可以用于图形化地建模、测试与部署BPMN 2.0流程。 (1).下载安装Eclipse 去Eclipse官网下载即可&#xff1a…

【数据结构:复杂度】时间复杂度

本节重点内容: 算法的复杂度时间复杂度的概念大O的渐进表示法常见时间复杂度计算举例⚡算法的复杂度 算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的&…

光伏发电系统模拟及其发电预测开源python工具pvlib

1. 太阳辐照量模拟 pysolar是一个用于计算太阳位置和辐照量的Python库。它是基于python语言编写的,可以方便地在各种python项目中使用。pysolar主要用于计算太阳的位置、太阳高度角、太阳方位角、日出和日落时间等信息。这些信息可以用于太阳能电池板和太阳能集热器…