Java基础最常用内置注解为@Override、@Deprecated和@SuppressWarnings,均位于java.lang包,由JVM支持,保留策略均为SOURCE。@Override用于方法重写校验;@Deprecated标记过时元素并触发编译警告;@SuppressWarnings选择性抑制特定编译警告。

Java基础中最常用的内置注解就三个:@Override、@Deprecated 和 @SuppressWarnings。它们都定义在 java.lang 包中,由JVM直接支持,无需额外引入,编译器会主动识别并执行相应检查或提示。
@Override:确保方法真正重写父类/接口方法
这个注解加在方法上,告诉编译器“我打算重写父类(或实现接口)里的某个方法”。编译器会严格校验:方法名、参数列表、返回类型是否完全匹配;若不匹配(比如拼错名字、少一个参数),立刻报错,而不是静默编译通过。
- 只能用于方法,不能修饰类、字段或参数
- 保留策略是
RetentionPolicy.SOURCE,即只在源码阶段有效,编译后.class里就没了 - 即使不写 @Override,重写也能运行;但写了就能防错,尤其父类方法签名变更时能提前暴露问题
@Deprecated:标记代码已过时,提醒别再用
加在类、方法、字段甚至参数上,表示该元素已被弃用,可能有缺陷、有更优替代,未来版本会移除。只要有人调用它,编译器就会给出黄色警告(不是错误,仍可编译)。
@SuppressWarnings:有选择地关闭特定编译警告
当某段代码确实需要绕过某些编译器警告(比如泛型未检查、变量未使用、序列化UID缺失),又不想全局关掉警告时,就用它精准压制。
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
立即学习“Java免费学习笔记(深入)”;
- 常用值有
"unchecked"(泛型强转警告)、"unused"(未使用变量)、"all"(全部,慎用) - 作用范围越小越好——优先加在方法或变量上,而不是整个类
- 保留策略同样是
SOURCE,仅影响编译过程,不进入字节码 - 不推荐滥用:掩盖警告可能隐藏真实问题,比如忽略
serialVersionUID可能在反序列化时出错
基本上就这些。这三个注解不复杂,但容易忽略细节——比如误以为 @Override 是可选的装饰、或把 @SuppressWarnings 当成“消警告万能膏药”。理解它们的触发时机和设计意图,才能写出更健壮、更易维护的代码。









