最后
在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!
class testDeprecated {
@Deprecated
public static String toString1(){
return “我是重新定义过的toString方法”;
}
}
注意点:这个不是报错,只是警告,提醒我们这个方法可能会有问题,可能有更好的方法来实现!
3、@SuppressWarnings 忽略警告
概念:指示编译器去忽略注解中声明的警告。
平时开发中,我们会遇到这样的情况,如下图:
这也不是错误,这是提醒我们,该方法没有使用到,警告提醒的作用。加上@SuppressWarnings注解后。
public class Annotation1 extends Object{
public static void main(String[] args) {
}
@SuppressWarnings(“all”)
public static void testSuppressWarnings(){
System.out.println(“测试+testSuppressWarnings忽略警告!”);
}
}
方法成功高亮起来,并且没有警告提示了!
我们可以点进去看下这个注解为什么需要参数?
看这里,这个不是方法哦,这是参数。
在注解中的参数格式:calss + 参数名 + ()!这个需要强行记忆哦,回头我们自定义注解时也需要用到。换一种写法加深理解!如下图:
注意点:当注解中只有一个参数时,我们无需加上参数名,注解会自动帮我们匹配的。
二、元注解
概念:顾名思义,元注解就是给注解使用的注解!
1、@Retention 作用域-(常用)
概念:表示在什么级别保存该注解信息。在实际开发中,我们一般都写RUNTIME,除非项目有特殊需求!我们看下@Retention的源码。
可以看到,需要一个参数,进参数瞅瞅。
-
SOURCE:源代码时有用。
-
CLASS:class文件中有用,但会被jvm丢弃。
-
RUNTIME:运行时有用。
-
关系:RUNTIME>CLASS>SOURCE
后面我们自定义注解时,每个都需要用该注解!
2、@Documented 作用文档
概念:将此注解包含在 javadoc 中 ,它代表着此注解会被javadoc工具提取成文档。
老规矩看下源码:
无参的注解,作用域为RetentionPolicy.RUNTIME,运行时有用!这个只是用来作为标记,了解即可,在实际运行后会将该注解写入javadoc中,方便查看。
3、@Target 目标-(常用)
概念:标记这个注解应该是使用在哪种 Java 成员上面!
参数源码:
注意这里是数组格式的参数,证明可以传多个值。
-
@Target(ElementType.TYPE)——接口、类、枚举、注解
-
@Target(ElementType.FIELD)——字段、枚举的常量
-
@Target(ElementType.METHOD)——方法
-
@Target(ElementType.PARAMETER)——方法参数
-
@Target(ElementType.CONSTRUCTOR) ——构造函数
-
@Target(ElementType.LOCAL_VARIABLE)——局部变量
-
@Target(ElementType.ANNOTATION_TYPE)——注解
-
@Target(ElementType.PACKAGE)——包
我们来试一下:
目标不对会报错的哦!我们将其改成方法上!编译即正常通过。
其他的作用域大家可以去自行尝试,篇幅问题,无法做到每个都去试一遍!
4、@Inherited 继承
概念:标记这个注解是继承于哪个注解类(默认 注解并没有继承于任何子类)。
这个很简单,就是当@InheritedAnno注解加在某个类A上时,假如类B继承了A,则B也会带上该注解。
5、新注解-(了解即可)
从 Java 7 开始,额外添加了 3 个注解:
-
@SafeVarargs - Java 7 开始支持,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。
-
@FunctionalInterface - Java 8 开始支持,标识一个匿名函数或函数式接口。
最后
一次偶然,从朋友那里得到一份“java高分面试指南”,里面涵盖了25个分类的面试题以及详细的解析:JavaOOP、Java集合/泛型、Java中的IO与NIO、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、Spring Boot、Spring Cloud、RabbitMQ、Dubbo 、MyBatis 、ZooKeeper 、数据结构、算法、Elasticsearch 、Kafka 、微服务、Linux。
这不,马上就要到招聘季了,很多朋友又开始准备“金三银四”的春招啦,那我想这份“java高分面试指南”应该起到不小的作用,所以今天想给大家分享一下。
请注意:关于这份“java高分面试指南”,每一个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析
个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析