【Java 问题】基础——Java 概述

news2024/9/25 14:31:06

Java 概述

  • 1. 什么是 Java ?
  • 2. Java 语言有哪些特点
  • 3. JVM、JDK 和 JRE 有什么区别?
  • 4. 说说什么是跨平台性?原理是什么?
  • 5. 什么是字节码?采用字节码的好处是什么?
  • 6. 为什么说 Java 语言 "编译与解释并存"?

1. 什么是 Java ?

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

2. Java 语言有哪些特点

  • 面向对象 (封装、继承、多态);
  • 平台无关性,平台无关性的具体表现在于,Java 是“一次编写,到处运行”的语言,因此采用 Java 语言编写的程序具有很好的可移植性,而保证这一点的正是 Java的虚拟机机制。在引入虚拟机之后,Java语言在不同的平台 上运行不需要重新编译。
  • 支持多线程。C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线支持;
  • 编译与解释并存;

3. JVM、JDK 和 JRE 有什么区别?

JVM:Java virtual Machine,Java 虚拟机,Java 程序运行在Java 虚拟机上。针对不同系统实现的不同的JVM,因此 Java 语言可以实现跨平台。

JRE:Java 运行时环境,它是运行已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,Java命令和其他的一些基础构建。但是它不能用于创建新程序。

JDK:Java Development Kit,它是功能齐全的 Java SDK。它拥有 JRE 所拥有的一切,还有编译器 javac 和工具(如 javadoc 和 jdb)。它能创建和编译程序。

简单来说,JDK包含JRE,JRE包含 JVM。

在这里插入图片描述

4. 说说什么是跨平台性?原理是什么?

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

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

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

所谓的字节码,就是Java程序经过编译之列产生的 .class 问加你,字节码能够被虚拟机识别,从而实现Java程序的跨平台性.

Java 程序从源代码到运行主要有三步:

  • 编译: 将我们的代码 (.java) 编译成虚拟机可以识别理解的字节码 (.class)
  • 解释: 虚拟机执行java字节码, 将字节码翻译成机器能识别的机器码
  • 执行: 对应的机器执行二进制机器码

在这里插入图片描述
只需要把 Java 程序编译成Java虚拟机能识别的Java字节码,不同的平台安装对应的Java虚拟机, 这样就可以实现Java语言的平台无关性.

6. 为什么说 Java 语言 “编译与解释并存”?

高级编程语言安装程序的执行方式分为 编译型和解释型两种

简单来说, 编译型语言是指编译器针对特定的操作系统将源代码一次性翻译成可被改平台执行的机器码; 解释型语言是指解释器对源程序逐行解释成特定平台的机器码并立即执行.

Java 语言几句有编译型语言的特征, 也具有解释型语言的特征, 因为 Java 程序要经过先编译, 后解释两个步骤,由 Java 编写的程序需要先经过编译步骤, 生成字节码 (*.class 文件), 这种字节码必须在经过 JVM, 解释成操作系统能识别的机器吗, 由操作系统执行. 因此, 我们可以认为 Java 语言编译和解释并存.

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

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

相关文章

汽车行业SAP全球模版导入方案【集团出海部署】

在汽车行业实施SAP系统是一个复杂且具挑战性的项目,涉及多个业务模块和跨部门协作。以下是一个汽车行业SAP实施的导入方案,包括关键步骤、模块选择、最佳实践和注意事项。 1. 项目启动及规划 项目启动 项目发起:确定项目范围、目标和业务需…

Spring源码-ConfigurationClassPostProcessor类解析spring相关注解

ConfigurationClassPostProcessor类的作用 此类是一个后置处理器的类,主要功能是参与BeanFactory的建造,主要功能如下 1、解析加了Configuration的配置类 2、解析ComponentScan扫描的包 3、解析ComponentScans扫描的包 4、解析Import注解 该类在springbo…

【原创教程】如何用西门子1500读写巴鲁夫RFID

实现的功能及应用的场合 通过使用RFID进行对托盘信息工件信息的追踪记忆,方便了解工件的状态内容。适用于流水线等场合。 硬件配置 巴鲁夫RFID 巴鲁夫RFID一套包含:RFID分析单元,RFID数据读写头,RFID数据载体。 ①RFID分析单…

ai写论文哪个平台好?分享4款ai论文写作平台软件

在当前的学术研究和论文写作领域,AI技术的应用已经成为一种趋势。通过智能算法和大数据分析,AI工具能够帮助学者和学生提高写作效率、优化内容结构,并确保论文的原创性和质量。以下是四款备受推荐的AI论文写作平台软件: 1. 千笔-…

Js基础

JS编写位置 将代码编写在html网页script标签 <script>// 弹出alert("test")// 控制台输出日志console.log("hello world")// 向网页输入内容&#xff0c;即往body中写内容document.write("write content")</script> 将代码编写在外部…

原腾讯云AI产品线项目经理李珊受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 原腾讯云AI产品线项目经理、资深项目管理专家李珊女士受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾&#xff0c;演讲议题为&#xff1a;AI助力项目经理的决策支持系统。大会将于10月26-27日在北京举办…

生态布局再进一步!拓数派 PieCloudDB Database 与 openEuler 完成兼容互认证

随着信息技术的快速发展&#xff0c;国产化自主创新已成为国家战略的核心部分。拓数派自主研发的云原生虚拟数仓 PieCloudDB 与国产操作系统 openEuler 已完成相互兼容性测试&#xff0c;并获得 openEuler 技术测评证书。 目前&#xff0c;拓数派已成功与华为鲲鹏、麒麟软件、龙…

基于Java+Mysql实现的PC端图书管理系统软件

Library_system 图书管理系统。用Java实现的PC端软件。使用MySql作为DBMS操作本地数据库&#xff0c;用JDBC连接Java和数据库。实现图书管理系统的基本功能 项目介绍 该项目主要实现了图书管理系统几个主要的基本功能&#xff0c;做这小项目是为了简单学习数据库设计、包括E…

系统架构师-面向服务架构(SOA)全解

1、为什么需要SOA架构 1.1 系统集成问题 异构系统整合 例如&#xff0c;一个企业可能同时拥有用 Java 开发的企业资源规划&#xff08;ERP&#xff09;系统、用 C# 开发的客户关系管理&#xff08;CRM&#xff09;系统以及用 Python 开发的数据分析系统。通过 SOA&#xff0…

9月24日笔记

内网信息收集 本机基础信息收集 当通过web渗透或者其他方式活动服务器主机权限之后&#xff0c;需要以该主机作为跳板&#xff0c;对内网环境进行渗透&#xff0c;对于攻陷的第一台主机&#xff0c;其在内网中所处的网络位置、当前登录的用户、该用户有什么样的权限、其操作系…

微信小程序开发第八课

一 公告 1.1 微信小程序端 #js###const api require("../../config/settings.js") Page({data: {noticeList: [{title: 公告标题1,create_time: 2024-04-25,content: 公告内容描述1&#xff0c;公告内容描述1&#xff0c;公告内容描述1。, // 可以根据实际情况添加…

几个将ppt文件压缩变小的方法!

几个将ppt文件压缩变小的方法&#xff01;在构建集文字、图像、视频及数据表于一体的综合PPT演示文稿时&#xff0c;一个常见挑战是随着内容的不断丰富&#xff0c;文件体积也随之膨胀&#xff0c;这往往源于直接嵌入未经优化的多媒体资源及设计上的冗余元素&#xff0c;如繁复…

数字人实战第五天——Dinet 训练自己的数字人

一、简介 DINet 是一个形变修复网络&#xff0c;专门用于解决高分辨率人脸视觉配音中的难题。它的设计目的是为了提升视觉配音的保真度和细节丰富性&#xff0c;特别是在少样本学习的情境下&#xff0c;即在训练数据较少的情况下依然能够实现较好的配音效果。 DINet的技术实现…

html TAB切换按钮变色、自动生成table

<!DOCTYPE html> <head> <meta charset"UTF-8"> <title>Dynamic Tabs with Table Data</title> <style> /* 简单的样式 */ .tab-content { display: none; border: 1px solid #ccc; padding: 1px; marg…

【专题总结】【一文解决】多继承下的构造函数执行顺序

多继承下的构造函数执行顺序 派生类构造函数执行顺序如下 ①调用基类构造函数→调用顺序按它们被继承时【从左至右】被说明的次序 ②调用子对象的构造函数→调用顺序按它们在【类中说明次序】 ③调用派生类的构造函数 【典型题1】13浙工大卷二读程序4题 【分析】下面①classC:p…

Mybatis Mapper 代理开发

文章目录 1, 实体类2、将Mapper接口写好3、UserMapper.xml 配置文件4、mybatis-config.xml 配置文件5、编写代码 Mybatis Mapper 代理开发 总的来说&#xff0c;有这几点&#xff1a; 定义域SQL映射文件同名的Mapper接口&#xff0c;并且将Mapper接口和SQL映射文件位置在同一目…

OpenCV图像分割(2)分水岭算法图像分割函数watershed()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 使用分水岭算法执行基于标记的图像分割。 该函数实现了分水岭算法的一种变体&#xff0c;即无参数基于标记的分割算法&#xff0c;在文献 [186]…

GPG(GNU Privacy Guard)简介

GPG&#xff08;GNU Privacy Guard&#xff09;简介 加密基础 对称加密 对称加密是一种加密方式&#xff0c;其中加密和解密使用相同的密钥。常见的对称加密算法包括AES和DES。这种方法的优点是速度快&#xff0c;但缺点是密钥分发和管理比较困难&#xff0c;一旦密钥泄露&a…

网络安全-jsp绕过

一、思路(这里给出jsp的WebShell样本) 1.1 加载字节码getshell <% page import"com.sun.org.apache.bcel.internal.util.ClassLoader" %> <html> <body> <h2>BCEL字节码的JSP Webshell</h2> <%String bcelCode "$$BCEL$$$l…

零基础转行学网络安全怎么样?能找到什么样的工作?

网络安全对于现代社会来说变得越来越重要&#xff0c;但是很多人对于网络安全的知识却知之甚少。那么&#xff0c;零基础小白可以学网络安全吗&#xff1f;答案是肯定的。 零基础转行学习网络安全是完全可行的&#xff0c;但需要明确的是&#xff0c;网络安全是一个既广泛又深入…