当前位置:首页 > 技术 > 正文内容

Java基础面试题解析

访客 技术 2026年8月11日 1

1、Java基本数据类型分类

Java包含四类八种基本数据类型:

  • 整型:byte、short、int、long
  • 浮点型:float、double
  • 布尔型:boolean
  • 字符型:char

2、逻辑运算符&与&&的区别

&:无论左侧表达式真假都会执行右侧运算

&&:左侧为假时直接返回false,跳过右侧运算(短路特性)

3、switch语句支持的数据类型

支持类型包括:byte、short、int、char、String以及枚举类型

4、成员变量与局部变量差异

存储位置
成员变量:类中方法外定义
局部变量:方法内部或方法参数中定义
内存分配
成员变量:堆内存存储
局部变量:栈内存存储(栈帧)
生命周期
成员变量:随对象创建/销毁
局部变量:随方法调用/结束
默认值
成员变量:有默认初始化值
局部变量:必须显式赋值

5、static关键字的四种用法

  1. 静态变量:类共享数据,节省内存
  2. 静态方法:通过类名直接调用
  3. 静态代码块:用于初始化静态变量
  4. 静态内部类:嵌套类的特殊形式

6、方法重载与重写的区别

重载(Overload):同一类中方法名相同但参数列表不同(参数数量/类型/顺序)

重写(Override):继承关系中方法名、参数列表完全相同,返回值类型需兼容,异常范围不能扩大

7、final与finally的区别

final:修饰符,可应用于类/方法/变量

  • 类:禁止继承
  • 方法:禁止覆盖
  • 变量:常量,不可修改

finally:异常处理代码块,总是执行(除非调用System.exit())


public class ResourceHandler {
    public String processResource() {
        try {
            System.out.println("资源加载中");
            return "处理结果";
        } catch (Exception e) {
            return "异常处理";
        } finally {
            System.out.println("资源释放");
        }
    }
}

8、this与super的使用场景

功能thissuper
访问成员变量本类+父类仅父类
调用方法本类+父类仅父类
构造函数同类构造父类构造

9、接口与抽象类对比

抽象类示例


abstract class BaseComponent {
    protected int state;
    public BaseComponent(int init) { this.state = init; }
    public abstract void update();
    public static void logStatus() { System.out.println("状态日志"); }
}

接口示例


interface DataSource {
    String fetch();
    default void validate() { System.out.println("数据校验"); }
    static void connect() { System.out.println("建立连接"); }
    // 所有方法默认public abstract
    String store();
}

10、静态变量与实例变量差异

  • 存储区域:静态变量-方法区;实例变量-堆内存
  • 生命周期:静态变量-类加载周期;实例变量-对象存活周期
  • 访问方式:静态变量-类名/对象均可访问;实例变量-必须通过对象访问

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

linux screen 用法详情 (nohup 的替代方案)

一、screen 是什么?能干嘛?screen 是一个终端复用器,可以:在一个 SSH 会话中开多个“虚拟终端”SSH 断线后,程序仍然在后台运行随时重新连接到原来的会话特别适合:nohup 的替代方案跑脚本 / 爬虫 / 训练模型运维、远程开发二、安装 screen# CentOS / Rocky / Almayum install -y screen# Debian / Ubuntuapt i...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。