`

Java同步注解(Annotation)解释

 
阅读更多
JDK 5.0 以后增加了注解。就是@后面加一个名称。有其自身的含意。跟C#里的Attributes似的。
    Java并发编程中,用到了一些专门为并发编程准备的 Annotation。
主要包括三类:
1、类 Annotation(注解)
就像名字一样,这些注解是针对类的。主有要以下三个:
@Immutable
@ThreadSafe
@NotThreadSafe
@ThreadSafe 是表示这个类是线程安全的。具体是否真安全,那要看实现者怎么实现的了,反正打上这个标签只是表示一下。不线程安全的类打上这个注解也没事儿。
@Immutable 表示,类是不可变的,包含了 @ThreadSafe 的意思。
      @NotThreadSafe 表示这个类不是线程安全的。如果是线程安全的非要打上这个注解,那也不会报错。

这三个注解,对用户和维护者是有益的,用户可以立即看出来这个类是否是线程安全的,维护者则是可以根据这个注解,重点检查线程安全方面。另外,代码分析工具可能会利用这个注解。


2、域 Annotation(注解)
域注解是对类里面成员变量加的注解。
3、方法 Annotation(注解)
方法注解是对类里面方法加的注解。

域注解和方法注解都是用@GuardedBy( lock )来标识。里面的Lock是告诉维护者:这个状态变量,这个方法被哪个锁保护着。这样可以强烈的提示类的维护者注意这里。

@GuardedBy( lock )有以下几种使用形式:

1、@GuardedBy( "this" ) 受对象内部锁保护
2、@GuardedBy( "fieldName" ) 受 与fieldName引用相关联的锁 保护。
3、@GuardedBy( "ClassName.fieldName" ) 受 一个类的静态field的锁 保存。
4、@GuardedBy( "methodName()" ) 锁对象是 methodName() 方法的返值,受这个锁保护。
5、@GuardedBy( "ClassName.class" ) 受 ClassName类的直接锁对象保护。而不是这个类的某个实例的锁对象。
分享到:
评论

相关推荐

    基于注解形式的Java操作excel表格

    首先,我们要理解注解(Annotation)在Java中的作用。注解是元数据的一种形式,它可以提供额外的信息给编译器、虚拟机或者其他的工具。在处理Excel时,注解可以用来标记方法,指示这些方法应如何与Excel工作,比如...

    JDK5.0 Java Annotation 介绍(ppt)

    Java Annotation 是 JDK5.0 引入的一种元数据机制,它允许程序员在代码中嵌入额外的信息,这些信息可以被编译器、构建工具或运行时系统用来执行特定的任务。Annotation 提供了一种安全、灵活的方式来描述代码的属性...

    Java+Annotation入门[定义].pdf

    Java注解(Annotation)是Java语言的一个重要特性,它为元数据提供了强大的支持。元数据是关于数据的数据,可以用来提供额外的信息,如代码的解释、编译时或运行时的处理指令等。注解在Java中扮演着代码文档、编译器...

    java annotation入门

    Java 注解(Annotation)是 Java 语言中的一个重要特性,它为程序员提供了元数据,即关于数据的数据。在本文中,我们将深入理解 Java 注解的基本概念、用途、工作方式以及如何使用它们。 首先,让我们了解为什么...

    支持10000同步锁,Spring Boot,Java

    文件名`java_demo_synchronized`可能包含的是关于Java同步锁的示例代码,可以从中学习如何在实际项目中应用同步锁策略。通过深入理解同步锁的工作原理和优化技巧,我们可以构建出高效、高并发的Spring Boot应用程序...

    JAVA Spring boot JDBC同步不同服务器oracle数据库

    import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class DatabaseSyncService { @Scheduled(fixedRate = 60000) // 每分钟...

    ssh2 annotation 未完成

    在这个场景中,“ssh2 annotation”可能指的是使用SSH2协议并结合Java注解(Annotation)来配置和管理应用程序。在Java中,注解是一种元数据,可以提供编译器或运行时系统使用的信息,简化代码并减少配置文件的需求...

    Java学习基础笔记+代码注解

    九、Java注解(Annotation) 注解是元数据的一种形式,提供了一种安全地与代码关联信息的方式,可以用于编译时检查或运行时处理。 通过阅读这份"Java学习基础笔记+代码注解",你可以逐步掌握上述知识点,并通过实践...

    java高级特性,涵盖了多种java常用的一些例子

    Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。Java标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节...

    AnnotationProcessor_Demo

    `AnnotationProcessor`的优势在于,它可以减少手动编写重复代码的工作量,同时确保生成的代码与原始注解保持同步。这使得代码更整洁,更易于维护,因为所有自动生成的部分都由编译器处理,而不是散落在项目的各个...

    SpringBoot定时任务实现Oracle和mysql数据同步

    Spring Boot作为Java领域的一个热门微服务框架,提供了强大的定时任务功能,能够帮助我们实现不同数据库间的数据同步,比如Oracle到MySQL。本篇文章将详细讲解如何利用Spring Boot的定时任务特性,结合Java的相关...

    Android-通过注解生成SharedPreferences包装类解决跨进程数据访问不同步的问题

    注解(Annotation)是Java提供的一种元编程机制,允许在源代码中嵌入额外的信息,这些信息可以被编译器或运行时系统用来验证代码或者执行特定的处理。在Android中,我们可以通过使用注解处理器(Annotation ...

    java全套笔记 来自狂神说java笔录.zip

    10. **注解(Annotation)**:学习自定义注解和元注解,了解它们在代码中的应用,如Spring框架中的注解。 11. **Java IO/NIO**:深入理解流的分类,学习非阻塞I/O模型NIO(New Input/Output)。 12. **Java 8及更...

    java经验积累java经验积累

    本文将基于"java经验积累"这一主题,深入探讨Java的相关知识点,包括类加载器、并发处理、注解(Annotation)、线程池、泛型、自定义注解以及Java与模式思考。 首先,我们来关注"深入探讨 Java 类加载器"。Java的类...

    Java程序设计课件 Java程序设计课件

    13. **Java注解(Annotation)**:注解是一种元数据,可以提供编译时和运行时的信息,用于代码的自解释、编译时验证、运行时处理等。 14. **Java标准库API**:Java API包含了大量预定义的类和方法,如集合、I/O、...

    Absolute Java

    11. **Java的注解(Annotation)**:注解是Java 5引入的元数据,用于提供编译器或运行时系统的信息。书中会介绍预定义的注解以及自定义注解的创建。 12. **JDBC与数据库连接**:Java数据库连接(JDBC)是Java访问...

    Java联想(中文)

    十、Java注解(Annotation) 注解提供了一种元数据的方式,可以向编译器或JVM提供有关代码的额外信息,例如用于代码生成、验证或部署。 十一、模块系统(Java 9+) Java 9引入了模块系统(Project Jigsaw),提高了...

    java核心技术卷二

    7. 注解(Annotation)和泛型的深入讲解,涵盖自定义注解的创建与应用,以及泛型的高级特性。 8. Java 8及后续版本中的函数式编程特性,如Lambda表达式、Stream API等。 9. Java的类加载机制,包括类加载过程、...

    JAVA的上课课件 (资深老师给的)

    【JAVA注解(Annotation)】 JAVA注解是一种元数据,提供了一种安全的方式,将信息附加到代码中,而不影响其运行时行为。注解可以用于编译器检查、运行时处理、文档生成等多种用途。 这些课件将涵盖JAVA语言的基础...

    JavaTutorial, Java教程,包括多线程,泛型,反射,IO,容器类,注解.zip

    最后,注解(Annotation)是Java 5引入的元数据,提供了向编译器、JVM或工具提供信息的方法。它们可以用于配置框架、进行编译时和运行时的验证、记录代码信息等。常见的注解有@Override、@Deprecated、@ ...

Global site tag (gtag.js) - Google Analytics