• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

奋斗的软件工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

IDEA的常用设置

✨IDEA的常用设置✨

版本号

image

image

image

image

🎉【1】进入设置:🎉

image

image

image

🎊【2】设置主题:🎊

image

注意:设置完成后点击Apply 应用即可
image

🎄 【3】编辑区的字体变大或者变小:🎄

image

image

🥕【4】鼠标悬浮在代码上有提示:🥕

image

image

image

🎶【5】自动导包和优化多余的包:🎶

手动导包快捷键 Alt+Enter

image

image

自动导包

image

image

🍦【6】同一个包下的类,超过指定个数的时候,导包合并为*🍦

image

image

image

image

🎈【7】显示行号,方法和方法间的分隔符:🎈

image

image

🐱‍🏍【8】忽略大小写,进行提示:🐱‍🏍

2024版演示

image

image

🧧【9】多个类不隐藏,多行显示:🧧

image

image

image

🛒【10】设置默认的字体,字体大小,字体行间距:🛒编辑区 && 控制台 都会变化

image

image

也可以 编辑区 控制台 分开来 单独设置

image

🎑【11】修改代码中注释的字体颜色:🎑

image

image

🧨【12】修改类头的文档注释信息:🧨

/**
@Auther:ZhengranChou
@Date:${DATE}-${MONTH}-${DAY}-${TIME}
@Description:${PACKAGENAME}
@version:1.0
*/

image

image

🎡【13】设置项目文件编码:🎡

image

右下角可以自主选择编码格式

image

🎀【14】自动编译:🎀

情景描述:


在日常开发中,我们通常会编写 .java 源文件,并通过编译器将其转换为字节码文件 .class,随后在 JVM 中运行这些字节码文件以生成最终的程序结果。

假设你正在使用一个集成开发环境(IDE),比如 IntelliJ IDEA。当你第一次右键运行某个源文件时,IDE 会自动完成以下步骤:

  1. 编译:将 .java 文件编译为对应的 .class 字节码文件,通常存储在项目的 out 文件夹中。
  2. 运行:加载 out 文件夹中的字节码文件到 JVM 中执行,生成运行结果。

然而,问题出现在后续开发过程中。如果你对源文件进行了修改,但尚未重新运行程序,此时 out 文件夹中的字节码文件可能仍然是旧版本的。这意味着,如果直接使用现有的字节码文件运行程序,你的修改将不会生效,导致程序行为与预期不符。

为了解决这一问题,我们需要启用 IDE 的 自动编译功能。具体来说,当开发者完成对源代码的修改后,IDEA 会在后台自动触发编译过程,生成最新的字节码文件,而无需等待手动运行操作。这样一来,无论是否立即运行程序,out 文件夹中的字节码文件始终是最新的,确保了程序逻辑的一致性和准确性。

通过这种方式,开发者可以专注于代码的编写和调试,而不必担心因字节码未及时更新而导致的问题。整个开发流程更加高效、流畅。


image

🩲【15】省电模式:🩲

代码检查 代码提示功能没有了 看看是不是进入了省电模式

2024版本

image

image

💎【16】代码显示结构:💎

image

image

🎠【17】导入jar包:🎠

image

🎢【18】生成序列化版本号:🎢


场景描述

假设我们正在开发一个学生管理系统,需要将学生对象保存到本地文件中以便后续读取。为了实现这一功能,我们需要创建一个 Student 类,并让其实现 Serializable 接口。同时,为了让序列化机制更加稳定,我们需要为该类定义一个序列化版本号(serialVersionUID),而这个版本号可以通过 IDEA 自动生成。


代码实现

1. 创建 Student 类

import java.io.Serializable;

public class Student implements Serializable {
    private static final long serialVersionUID = 1L; // 这里是序列化版本号

    private String name;
    private int age;
    private String major;

    // 构造方法
    public Student(String name, int age, String major) {
        this.name = name;
        this.age = age;
        this.major = major;
    }

    // Getter 和 Setter 方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    @Override
    public String toString() {
        return "Student{name='" + name + "', age=" + age + ", major='" + major + "'}";
    }
}

2. 使用 IDEA 自动生成 serialVersionUID

image

image

image

  • 在 IDEA 中,当你让一个类实现 Serializable 接口时,IDE 会提示你生成 serialVersionUID。
  • 具体步骤:
    1. 将光标放在类名上。
    2. 按下 Alt + Enter(Windows/Linux)或 Option + Enter(Mac)。
    3. 选择 "Add 'serialVersionUID' field"。
    4. IDEA 会自动生成一个唯一的 serialVersionUID 值。

例如,IDEA 可能生成如下内容:

private static final long serialVersionUID = -6487564798264758274L;

3. 编写序列化与反序列化的代码

import java.io.*;

public class SerializationExample {
    public static void main(String[] args) {
        // 创建一个 Student 对象
        Student student = new Student("张三", 20, "计算机科学");

        // 序列化:将对象保存到本地文件
        try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("student.ser"))) {
            oos.writeObject(student);
            System.out.println("对象已成功序列化并保存到文件!");
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 反序列化:从本地文件读取对象
        try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("student.ser"))) {
            Student deserializedStudent = (Student) ois.readObject();
            System.out.println("从文件中读取的对象:" + deserializedStudent);
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

运行结果

  1. 当程序运行时,首先会将 Student 对象序列化并保存到名为 student.ser 的文件中。
  2. 然后程序会从该文件中读取对象并打印其内容。

输出示例:

对象已成功序列化并保存到文件!
从文件中读取的对象:Student{name='张三', age=20, major='计算机科学'}

注意事项

  1. 为什么需要 serialVersionUID?
    • serialVersionUID 是用于验证序列化类的版本一致性。如果序列化后的类被修改(如添加字段或删除字段),反序列化时可能会报错。通过显式定义 serialVersionUID,可以避免因类版本不一致导致的问题。
  2. IDEA 自动生成的 serialVersionUID 是否可靠?
    • IDEA 根据类的结构计算出一个哈希值作为 serialVersionUID,因此它是可靠的。但如果你手动修改了类的结构,记得重新生成或调整 serialVersionUID。

posted on 2025-04-09 00:38  周政然  阅读(87)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3