手机网站 微信网站,四川万景建设工程有限公司网站,河北抖音seo系统,潍坊小企业网站建设Java经典面试题总结#xff08;一#xff09; 题一#xff1a;Java编译运行原理题二#xff1a;JDK#xff0c;JVM#xff0c;JRE三者之间的关系题三#xff1a;谈一下对冯诺依曼体系的了解题四#xff1a;重载与重写的区别题五#xff1a;拆箱装箱是指什么#xff1… Java经典面试题总结一 题一Java编译运行原理题二JDKJVMJRE三者之间的关系题三谈一下对冯诺依曼体系的了解题四重载与重写的区别题五拆箱装箱是指什么 题一Java编译运行原理 Java源代码通过Java编译器(javac)进行编译生成字节码文件( xxx.class文件)。这些字节码文件包含了与特定平台无关的中间代码在Java虚拟机JVM中进行解释执行 并转换成平台能够理解的形式来运行。 示意图如下
题二JDKJVMJRE三者之间的关系 JDKJava Development Kit,又称Java开发工具包包含了JRE以及开发工具提供给程序员使用。同时包含了Java编译器javac和自带的调试工具console等。JREJava Runtime Environment,又称 Java运行时环境包含了JVM和Java类库。是编写程序运行时所需的环境。 JVMJava Virtual Machine又称Java虚拟机是Java程序的运行平台。 示意图如下 题三谈一下对冯诺依曼体系的了解 冯诺依曼体系是一种计算机架构由冯诺依曼提出。它包含中央处理器、存储器、输入输出设备以及总线这几个关键组件。 中央处理器CPU负责执行指令和处理数据。CPU由控制单元和算术逻辑单元组成控制单元负责解析和执行指令而算术逻辑单元负责执行算术和逻辑操作。存储器Memory用于存储程序指令和数据。存储器被划分为不同的地址每个地址都可以存储一个字节或多个字节的数据。输入/输出I/O子系统用于与外部设备进行交互如键盘、显示器、硬盘等。总线Bus用于连接CPU、存储器和I/O子系统实现数据和指令的传输。 题四重载与重写的区别 重载是在同一个类中定义多个方法他们具有相同的方法名和不同的参数列表重写是在子类中重新定义父类中已有的方法。重载方法名相同参数列表要不同返回值没有特定的要求。重写方法名相同参数列表要相同返回值要相同。 题五拆箱装箱是指什么 拆箱和装箱是指Java中用于基本类型和对应的包装类型之间转换的概念。 装箱指的是将基本类型转换成其对应的包装类型对象例如,将int类型的值转换为Integer对象。 拆箱则相反指的是将包装类型对象转化为基本类对应的基本类型的值。例如将Integer对象转换为int类型的值。 补充内容
int num 30;
Integer integerObj num; // 自动装箱
int result integerObj; // 自动拆箱拆箱和装箱的主要作用是在需要使用包装类型的场景中可以直接使用基本类型并在需要时自动进行转换。这样可以方便地在基本类型和包装类型之间进行转换提高了代码的灵活性和可读性。但需要注意的是在频繁进行拆箱和装箱操作时可能会对性能产生一定的影响因此需要谨慎使用。 Integer a 10;
Integer b 10;
System.out.println(a b); // true因为a和b都指向缓存中的同一个对象
Integer c 200;
Integer d 200;
System.out.println(c d); // false因为c和d超出了缓存范围会创建新的对象
在比较包装类型对象时应该使用equals()方法进行比较。 针对自动装箱操作存在一个缓存数组用于提高性能和节省内存。具体来说对于范围在-128到127之间的整数和一些常见的字符他们的包装类型对象在第一次创建时会被缓存起来后续在创建相同值的对象时会直接返回缓存中的值二不会重新创建对象。