Java面试总结-基础语法篇

布满荆棘的人生 2021-09-23 06:18 436阅读 0赞

一. JDK、JRE、JVM有什么区别?

  首先需要了解这三者的定义:

  • JDK:Java Development Kit(Java 开发工具包)的简称,提供了 Java 的开发环境和运行环境
  • JRE:Java Runtime Environment(Java 运行环境)的简称,为 Java 的运行提供了所需环境
  • JVM:Java Virtual Machine(Java虚拟机)的简称,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的,简单来说就是所有的 Java 程序都是运行在 JVM(Java 虚拟机)上的。

 区别与联系:JDK 提供了一整套的 Java 运行和开发环境,通常使用对象为 Java 的开发者,当然 JDK 也包含了 JRE;而 JRE 为 Java 运行的最小运行单元,一般安装在 Java 服务器上,所以 JDK 和 JRE 可以从用途上进行理解和区分。JVM 不同于 JDK 和 JRE,JVM 是 Java 程序运行的载体,Java 程序只有通过 JVM 才能正常的运行。

 衍生题目:Java 跨平台实现的原理是什么?
 首先需要了解Java程序的执行流程,如下图:在这里插入图片描述
  Java 执行流程:Java 源代码(.java)-> 编译 -> Java 字节码(.class) ->通过 JVM(Java 虚拟机)运行 Java 程序。每种类型的服务器都会运行一个 JVM,Java 程序只需要生成 JVM 可以执行的代码即可,JVM 底层屏蔽了不同服务器类型之间的差异,从而可以在不同类型的服务器上运行一套 Java 程序。

二.Float在JVM的表达式及使用陷阱。

 请说出下题的执行结果,并说明理由。

  1. float d1 = 423432423f;
  2. float d2 = d1+1;
  3. if(d1==d2){
  4. System.out.println("d1==d2");
  5. }else{
  6. System.out.println("d1!=d2");
  7. }

  输出结果:d1==d2
  原因解析:对于单精度的浮点型数据,在内存中是以科学计数法表示,而且最多保留小数点后第7位,故在本题中,d1和d2在内存中均表示为:4.2343242E7,所以输出d1和d2相等。

三.编程题:随机生成30-100之间的随机数。

  1. package test;
  2. import java.util.Random;
  3. public class RandomDemo {
  4. public Integer random() {
  5. int min = 30;
  6. int max = 100;
  7. int result = (int)(Math.random()*(max-min))+min;
  8. return result;
  9. }
  10. public static void main(String[] args) {
  11. System.out.println(new RandomDemo().random());
  12. }
  13. }

四.编程题:输出1-1000的质数。

  1. package test;
  2. /*
  3. * 输出1-1000内的质数
  4. */
  5. public class PrimeNumber {
  6. public static void main(String[] args) {
  7. for(int i = 2;i<=1000;i++) {
  8. boolean flag = true;
  9. for(int j = 2;j<i;j++) {
  10. if(i % j == 0) {
  11. flag = false;
  12. break;
  13. }
  14. }
  15. if(flag) {
  16. System.out.println(i);
  17. }
  18. }
  19. }
  20. }

发表评论

表情:
评论列表 (有 0 条评论,436人围观)

还没有评论,来说两句吧...

相关阅读