每日十题八股-2024年11月26日

1.说一下Java的特点?
2.Java为什么是跨平台的?
3.JVM、JDK、JRE三者关系?
4.为什么Java解释和编译都有?
5.jvm是什么?
6.编译型语言和解释型语言的区别?
7.Python和Java区别是什么?
8.八种基本的数据类型有哪些?
9.long和int可以互转吗 ?

1.说一下Java的特点?

主要有三点:平台无关性(编译器,字节码文件,JVM环境),面向对象(严格OOP,方便编码者理解和使用,封装,继承,多态),内存管理(有自己的垃圾回收机制,自动管理内存和自动回收不用的对象)。

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

跨平台的是Java程序,由不同平台的JVM(C/C++编写)实现。编译器将Java代码转为字节码文件.class,经过JVM翻译成不同平台认识的机器码才能运行。

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

JDK 包含 JRE 包含 JVM。
JVM:Java虚拟机,复杂把字节码文件翻译成机器语言,提供内存管理,垃圾回收等功能。
JRE:Java运行时环境,包含JVM,多了一组Java类库,用于支持Java程序执行,I/O,net。
JDK:Java开发工具包。包含JRE。多了编译器(javac),调试器等一切Java开发(开发,编译,调试,运行)所需要的工具。

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

编写的程序想要被机器执行,必须翻译成机器能够理解的机器码。这一翻译过程有两种类型,一是编译,即一次性将所有的程序通过编译器转为特定系统可以执行的机器码,一次编译后,脱离开发环境也可以运行,效率高;二是解释,在程序执行时,解释器逐行翻译程序转为特定平台的机器码。

.java经过javac编译器编译之后得到.class文件->这个就是java文件到虚拟机的中间码->.class文件只有被JVM加载->然后通过解释器-逐行解释执行,这种方式的执行速度会相对比较慢。
这是属于解释型语言的特点,中间码即.calss文件只是一个中间码,并不算机器码,所以并不满足编译型语言的特点。
然而,有些方法和代码块是经常需要被调用的,也就是所谓的热点代码,后面引进了 JIT 编译器,JIT 属于运行时编译。当 JIT 编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。这是属于编译型语言的特点,机器码的运行效率肯定是高于 Java 解释器的。

5.jvm是什么?

JVM是Java虚拟机,其主要任务就是将.class字节码文件映射到本地的CPU指令集和OS的系统调用。JVM屏蔽了操作系统相关的信息,使得Java程序可以在不同平台(系统)上不加修改的运行。

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

编写的程序想要被机器执行,必须翻译成机器能够理解的机器码。这一翻译过程有两种类型,一是编译,即一次性将所有的程序通过编译器转为特定系统可以执行的机器码,一次编译后,生成的可执行文件脱离开发环境也可以运行,效率高;二是解释,在程序执行时,解释器逐行翻译程序转为特定平台的机器码,不生成可执行文件,跨平台性好,但执行速度相对较慢。
典型的编译型语言如C、C++,典型的解释型语言如Python、JavaScript。

7.Python和Java区别是什么?

Java是一种已编译的编程语言,Java编译器将源代码编译为字节码,而字节码则由Java虚拟机执行。
python是一种解释语言,翻译时会在执行程序的同时进行翻译。

8.八种基本的数据类型有哪些?

首先确定Java的数据类型的大类:基本数据类型和引用数据类型。
基本数据类型:数值型,字符型(char),布尔型(boolean)。
数值型:整型(byte,short,int(*),long),浮点型(float,double(*))。
在这里插入图片描述
1字节(byte, boolean) 2字节(short,char)4字节(int,float)8字节(long,double)。

9.long和int可以互转吗 ?

将int转换为long可以通过直接赋值或强制类型转换来实现。
在将long转换为int时,如果longValue的值超出了int类型的范围,转换结果将是截断后的低位部分。

10.数据类型转换方式你知道哪些?

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值