java面试总结一:基础篇
发布日期:2021-05-28 16:48:16 浏览次数:35 分类:精选文章

本文共 2178 字,大约阅读时间需要 7 分钟。

Java基础面试题总结

以下是Java基础面试题的总结,包含多篇通用问题的解答,供面试准备参考:


1. javac.exe 和 java.exe 的区别

-javac.exe 是用来编译Java源代码,生成.class文件的工具。-java.exe 是用来执行.class文件,运行Java程序的工具。


2. 关键字、保留字与标识符的区别

  • 关键字:Java语言中赋予特殊含义的单词,例如 class、public、void 等。
  • 保留字:Java语言中原本计划赋予特殊含义的单词,但尚未在语言规范中正式确定,例如.ArrayList、Generics 等。
  • 标识符:自定义命名,用于命名类、方法、变量等,例如类名 Student,方法名 calculateTotal。

3. 变量开辟的三要素

  • 数据类型:例如 int、String、List 等。
  • 变量名称:需遵循命名规则,例如不能使用关键字。
  • 初始化值:指定变量在定义时的初始值,例如 int age = 25。
  • 作用域:变量在定义处开始生效,直到作用域结束(如封闭块)。
  • 生命周期:从定义开始,直到毁标为止。

4. Java 数据类型分类

  • 基本数据类型:byte、char、short、int、float、double、boolean。
  • 引用数据类型:数组、类、接口、String。
  • 类型转换
    • 自动类型转换:低级别到高级别,例如 int 到 double。
    • 强制类型转换:高级别到低级别,需手动进行,可能丢失信息。

5. 运算符的特点

  • & 和 && 的区别:& 是按位运算,双方都会进行评估;&& 是逻辑运算,双方中一旦有为 false,右侧不会评估。
  • | 和 || 的区别:| 是按位或者运算,双方都会评估;|| 是逻辑或运算,左侧为 true 时,右侧不会评估。

6. 重载与重写的区别

  • 重载:在同一个类中,调用同名方法,但参数列表不同。例如:
    class Calculator {    int add(int a, int b) { return a + b; }    int add(int a, int b, int c) { return a + b + c; }}
  • 重写:在父子类中,方法参数完全相同,但行为不同。例如:
    class Parent {    public void doSomething() {}}class Child extends Parent {    @Override    public void doSomething() {        System.out.println("Child doSomething");    }}

7. Java 数组的表现形式

  • 动态分配int[] array = new int[5];
  • 静略初始化int[] array = {1, 2, 3};
  • 封装分配int[] array = new int[]{1, 2, 3};

8. Java 内存结构

  • 寄存器内存:用于存储当前线程的程序计数器和其他指令地址。
  • 本地方法区:用于实现Java调用原生代码(如C语言)的接口。
  • 方法区:存储类信息、常量、静态变量等,是非堆内存区域。
  • :存储局部变量、操作数栈、动态链接等,线程私有。
  • :存储对象实例,是垃圾回收的主要区域。

9. 寄存器内存的作用

寄存器内存是一块小型内存区域,主要存储程序计数器(Program Counter, PC)。PC 的作用是为字节码解释器指明当前执行的位置。例如,当遇到分支语句时,PC 会跳转到目标字节码的位置。PC 是线程私有,随着线程切换而切换,确保每个线程都能正确恢复执行。


10. 本地方法区的作用

本地方法区(Native Method)是Java用于调用非Java代码(如C语言)的接口。这些方法用 native 标识符标记,故称为本地方法。JVM 中的JPI (Java Native Interface) 提供了标准接口,保证Java和本地代码的兼容。


11. Java 虚拟机栈

虚拟机栈是线程私有的一块内存,用于存储线程执行过程中所需的变量、操作数和方法调用信息。每个方法调用都会创建一个栈帧,包含局部变量表、操作数栈、动态链接等。虚拟机栈的主要功能包括:

  • 存储变量生命周期:与作用域范围一致。
  • 方便方法调用:维护方法调用链。
  • 支持异常处理:记录异常信息。

12. 方法区的作用

方法区(Static Method Area)是线程共享的一块内存,存储类信息、常量、静态关键字(如staticvariables)和编译时生成的代码。方法区的主要目标是为类加载机制和方法调用提供支持,虽然不直接参与垃圾回收,但在类卸载时会回收类信息。


13. Java 堆的特点

Java 堆是JVM 中最大的一块内存区域,主要用作存储对象实例。所有Java对象实例都会在堆内存中分配内存,堆内存是垃圾回收的主要目标区域。堆的特点如下:

-.thread共享:所有线程共享一块堆内存。

  • 动态扩展:据需求自动扩展或收缩内存分配。
  • 垃圾回收:通过复制算法、标记-清除算法等进行内存管理。

以上就是Java基础面试题的总结,涵盖了编译与运行环境、数据类型、内存管理等核心知识点。

上一篇:java面试笔记二:java的面向对象
下一篇:eclipe自动生成注释,包含类和方法生成注释的设置

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年05月04日 19时07分40秒