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

关于Java的几个小问题

Java语言有哪些特点?

Java 语言的特点有:

①面向对象,主要是封装,继承,多态

②平台无关性,“一次编写,到处运行”,因此采用 Java 语言编写的程序具有很好的可移植性。

③支持多线程。C++ 语言没有内置的多线程机制,因此必须调用操作系统的 API来完成多线程程序设计,而Java却提供了封装好多线程支持;

④支持 JIT 编译,也就是即时编译器,它可以在程序运行时将字节码转换为热点机器码来提高程序的运行速度。

JVM、 JDK 和 JRE 有什么区别?

JVM:也就是 Java 虚拟机,是 Java 实现跨平台的关键所在,不同的操作系统有不同的 JVM 实现。 JVM 负责将 Java字节码转换为特定平台的机器码,并执行。

JRE:也就是 Java 运行时环境,包含了运行Java 程序所必需的库,以及 JVM。

JDK:⼀套完整的 Java SDK,包括 JRE,编译器 javac、 Java 文档生成工具 javadoc、 Java 字节码工具 javap 等。为开发者提供了开发、编译、调试 Java 程序的⼀整套环境。
简单来说, JDK 包含 JRE, JRE 包含 JVM。

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

跨平台指的是java 语言写的程序,经过一次编译后,可以直接在多个操作系统运行。

原理是增加了个中间件 JVM,JVM 负责将 Java 字节码转为特定平台的机器码,并执行。

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

所谓的字节码,就是 Java 程序经过编译后产生的 .class 文件。

Java 程序从源代码到运行需要经过三步:

  • 编译:将源代码文件 .java 编译成 JVM 可以识别的字节码文件 .class
  • 解释:JVM 执行字节码文件,将字节码翻译成操作系统能识别的机器码
  • 执行:操作系统执行二进制的机器码

为什么有人说 Java 是“编译与解释并存”的语言?

编译型语言是指编译器针对特定的操作系统,将源代码一次性翻译成可被该平台执行的机器码。

解释型语言是指解释器对源代码进行逐行解释,解释成特定平台的机器码并执行。
之所以有人说Java 是“编译与解释并存"的语言,是因为Java 程序需要先将Java 源代码文件编译字节码文件,再解释执行。

逐行解释会不会太慢了,Java 为此还有什么优化?

JVM 执行字节码有两种方式:

  • 解释执行(Interpreter):字节码指令逐条解释成目标机器的机器码来执行。
  • 即时编译(JIT,Just-In-Time Compiler):为了提高效率,JVM 会把一些热点代码(执行频繁的部分)直接编译成本地机器码,下次再运行时就不用解释了,而是直接执行机器码。

基础语法

Java 有哪些数据类型?

Java 的数据类型可以分为两种: 基本数据类型引用数据类型

基本数据类型:

默认值以及大小:

数据类型默认值大小
booleanfalse1 字节或 4 字节
char‘\u0000’2 字节
byte01 字节
short02 字节
int04 字节
long0L8 字节
float0.0f4 字节
double0.08 字节

引用数据类型:

  • 类(class)
  • 接口(interface)
  • 数组([])

boolean 数据类型占用多少字节?

boolean 占用 1 个字节和 4 个字节都有可能。

在官网文档中,说的是 boolean 数据类型表示 1bit 的信息,但是他的 size 没有被精确定义。也就是说,不管他占用多大的空间,只有 1 个 bit 的信息是有意义的。

事实上,boolean 类型数据到底占用多大空间,完全取决于 Java 虚拟机本身的设计。

Java 虚拟机规范提议:

  • 如果 boolean 是 “单独使用”:boolean 被编译为 int 类型,占 4 个字节
  • 如果boolean 是以 “boolean 数组” 的形式使用:boolean 占 1 个字节,Java 虚拟机直接支持 boolean 数组,通过 **<font style="color:rgb(246, 84, 1);background-color:rgba(27, 31, 35, 0.05);">newarray</font>** 指令创建 boolean 数组,然后通过 byte 数组指令 **<font style="color:rgb(246, 84, 1);background-color:rgba(27, 31, 35, 0.05);">baload</font>****<font style="color:rgb(246, 84, 1);background-color:rgba(27, 31, 35, 0.05);">bastore</font>** 来访问和修改 boolean 数组

具体还要看虚拟机是否按照规范来,所以 boolean 占用 1 个字节或者 4 个字节都有可能。

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

相关文章:

  • 青岛手机网站建设手工制作月饼
  • 国外的哪个网站可以做跳转青岛网站推广途径
  • 湖北省和住房建设厅官方网站山东泰山新闻
  • 营销网站定制公司台州网站设计哪家好
  • C++——基础
  • 回顾首尔 KBW 2025,Sui 的创新与联结周
  • 2025CCPC郑州邀请赛暨河南省赛 B. 随机栈 II 题解
  • 珠海网站建设公商城二次开发
  • 合肥市蜀山区做个网站多少钱电子商务网页制作是什么
  • 做网站推广需要多少费用one dirve做网站
  • 京东网站的建设与发展前景上海闵行中心医院
  • 无锡网站建设要求手机设计软件app推荐
  • 网站开发e r图无极网页游戏
  • 网站建设与功能模块wordpress appkey 插件
  • 鸿鹄网站建设网站的建设费用
  • 硅胶东莞网站建设公司注册后怎么做网站
  • 高端大气网站设计欣赏企业网站建设费用怎么做账
  • 全国U系列射击锦标赛
  • 房地产建设网站长春火车站需要核酸检测报告吗
  • 深入网站开发和运维京东企业咨询属于什么行业
  • 网站如何做视频点播深圳网站做的好的公司名称
  • 网站建设的需要是什么wordpress创建主题面板
  • C语言基础之指针1
  • 深圳好的网站建设公安徽网站开发哪家好
  • 昆明公司网站建设做资料分享网站
  • Product Hunt 9月热门 AI 应用解读
  • 电子商务平台网站源码万能视频下载神器
  • 广东的一起做网站免费建设一个可以访问的网站
  • 西安房产网站建设兰州建设网站的公司
  • 网站的总体架构aspnet校友录网站开发