xref: /aosp_15_r20/external/jsr305/javadoc/javax/annotation/concurrent/Immutable.html (revision b04680f1c99af11485d01a884cf292a99837b6c5)
1*b04680f1SMatt Gilbride<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2*b04680f1SMatt Gilbride<!--NewPage-->
3*b04680f1SMatt Gilbride<HTML>
4*b04680f1SMatt Gilbride<HEAD>
5*b04680f1SMatt Gilbride<!-- Generated by javadoc (build 1.5.0_16) on Tue Feb 03 09:28:21 PST 2009 -->
6*b04680f1SMatt Gilbride<TITLE>
7*b04680f1SMatt GilbrideImmutable
8*b04680f1SMatt Gilbride</TITLE>
9*b04680f1SMatt Gilbride
10*b04680f1SMatt Gilbride<META NAME="keywords" CONTENT="javax.annotation.concurrent.Immutable class">
11*b04680f1SMatt Gilbride
12*b04680f1SMatt Gilbride<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
13*b04680f1SMatt Gilbride
14*b04680f1SMatt Gilbride<SCRIPT type="text/javascript">
15*b04680f1SMatt Gilbridefunction windowTitle()
16*b04680f1SMatt Gilbride{
17*b04680f1SMatt Gilbride    parent.document.title="Immutable";
18*b04680f1SMatt Gilbride}
19*b04680f1SMatt Gilbride</SCRIPT>
20*b04680f1SMatt Gilbride<NOSCRIPT>
21*b04680f1SMatt Gilbride</NOSCRIPT>
22*b04680f1SMatt Gilbride
23*b04680f1SMatt Gilbride</HEAD>
24*b04680f1SMatt Gilbride
25*b04680f1SMatt Gilbride<BODY BGCOLOR="white" onload="windowTitle();">
26*b04680f1SMatt Gilbride
27*b04680f1SMatt Gilbride
28*b04680f1SMatt Gilbride<!-- ========= START OF TOP NAVBAR ======= -->
29*b04680f1SMatt Gilbride<A NAME="navbar_top"><!-- --></A>
30*b04680f1SMatt Gilbride<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
31*b04680f1SMatt Gilbride<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
32*b04680f1SMatt Gilbride<TR>
33*b04680f1SMatt Gilbride<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
34*b04680f1SMatt Gilbride<A NAME="navbar_top_firstrow"><!-- --></A>
35*b04680f1SMatt Gilbride<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
36*b04680f1SMatt Gilbride  <TR ALIGN="center" VALIGN="top">
37*b04680f1SMatt Gilbride  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
38*b04680f1SMatt Gilbride  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
39*b04680f1SMatt Gilbride  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
40*b04680f1SMatt Gilbride  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
41*b04680f1SMatt Gilbride  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
42*b04680f1SMatt Gilbride  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
43*b04680f1SMatt Gilbride  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
44*b04680f1SMatt Gilbride  </TR>
45*b04680f1SMatt Gilbride</TABLE>
46*b04680f1SMatt Gilbride</TD>
47*b04680f1SMatt Gilbride<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
48*b04680f1SMatt Gilbride</EM>
49*b04680f1SMatt Gilbride</TD>
50*b04680f1SMatt Gilbride</TR>
51*b04680f1SMatt Gilbride
52*b04680f1SMatt Gilbride<TR>
53*b04680f1SMatt Gilbride<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
54*b04680f1SMatt Gilbride&nbsp;<A HREF="../../../javax/annotation/concurrent/GuardedBy.html" title="annotation in javax.annotation.concurrent"><B>PREV CLASS</B></A>&nbsp;
55*b04680f1SMatt Gilbride&nbsp;<A HREF="../../../javax/annotation/concurrent/NotThreadSafe.html" title="annotation in javax.annotation.concurrent"><B>NEXT CLASS</B></A></FONT></TD>
56*b04680f1SMatt Gilbride<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
57*b04680f1SMatt Gilbride  <A HREF="../../../index.html?javax/annotation/concurrent/Immutable.html" target="_top"><B>FRAMES</B></A>  &nbsp;
58*b04680f1SMatt Gilbride&nbsp;<A HREF="Immutable.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
59*b04680f1SMatt Gilbride&nbsp;<SCRIPT type="text/javascript">
60*b04680f1SMatt Gilbride  <!--
61*b04680f1SMatt Gilbride  if(window==top) {
62*b04680f1SMatt Gilbride    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
63*b04680f1SMatt Gilbride  }
64*b04680f1SMatt Gilbride  //-->
65*b04680f1SMatt Gilbride</SCRIPT>
66*b04680f1SMatt Gilbride<NOSCRIPT>
67*b04680f1SMatt Gilbride  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
68*b04680f1SMatt Gilbride</NOSCRIPT>
69*b04680f1SMatt Gilbride
70*b04680f1SMatt Gilbride
71*b04680f1SMatt Gilbride</FONT></TD>
72*b04680f1SMatt Gilbride</TR>
73*b04680f1SMatt Gilbride<TR>
74*b04680f1SMatt Gilbride<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
75*b04680f1SMatt Gilbride  SUMMARY:&nbsp;REQUIRED&nbsp;|&nbsp;OPTIONAL</FONT></TD>
76*b04680f1SMatt Gilbride<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
77*b04680f1SMatt GilbrideDETAIL:&nbsp;ELEMENT</FONT></TD>
78*b04680f1SMatt Gilbride</TR>
79*b04680f1SMatt Gilbride</TABLE>
80*b04680f1SMatt Gilbride<A NAME="skip-navbar_top"></A>
81*b04680f1SMatt Gilbride<!-- ========= END OF TOP NAVBAR ========= -->
82*b04680f1SMatt Gilbride
83*b04680f1SMatt Gilbride<HR>
84*b04680f1SMatt Gilbride<!-- ======== START OF CLASS DATA ======== -->
85*b04680f1SMatt Gilbride<H2>
86*b04680f1SMatt Gilbride<FONT SIZE="-1">
87*b04680f1SMatt Gilbridejavax.annotation.concurrent</FONT>
88*b04680f1SMatt Gilbride<BR>
89*b04680f1SMatt GilbrideAnnotation Type Immutable</H2>
90*b04680f1SMatt Gilbride<HR>
91*b04680f1SMatt Gilbride<DL>
92*b04680f1SMatt Gilbride<DT><PRE><FONT SIZE="-1">@Documented
93*b04680f1SMatt Gilbride@Target(value=TYPE)
94*b04680f1SMatt Gilbride@Retention(value=CLASS)
95*b04680f1SMatt Gilbride</FONT>public @interface <B>Immutable</B></DL>
96*b04680f1SMatt Gilbride</PRE>
97*b04680f1SMatt Gilbride
98*b04680f1SMatt Gilbride<P>
99*b04680f1SMatt GilbrideImmutable
100*b04680f1SMatt Gilbride
101*b04680f1SMatt Gilbride The class to which this annotation is applied is immutable. This means that
102*b04680f1SMatt Gilbride its state cannot be seen to change by callers. Of necessity this means that
103*b04680f1SMatt Gilbride all public fields are final, and that all public final reference fields refer
104*b04680f1SMatt Gilbride to other immutable objects, and that methods do not publish references to any
105*b04680f1SMatt Gilbride internal state which is mutable by implementation even if not by design.
106*b04680f1SMatt Gilbride Immutable objects may still have internal mutable state for purposes of
107*b04680f1SMatt Gilbride performance optimization; some state variables may be lazily computed, so
108*b04680f1SMatt Gilbride long as they are computed from immutable state and that callers cannot tell
109*b04680f1SMatt Gilbride the difference.
110*b04680f1SMatt Gilbride
111*b04680f1SMatt Gilbride Immutable objects are inherently thread-safe; they may be passed between
112*b04680f1SMatt Gilbride threads or published without synchronization.
113*b04680f1SMatt Gilbride<P>
114*b04680f1SMatt Gilbride
115*b04680f1SMatt Gilbride<P>
116*b04680f1SMatt Gilbride
117*b04680f1SMatt Gilbride<P>
118*b04680f1SMatt Gilbride
119*b04680f1SMatt Gilbride<P>
120*b04680f1SMatt Gilbride<!-- ========= END OF CLASS DATA ========= -->
121*b04680f1SMatt Gilbride<HR>
122*b04680f1SMatt Gilbride
123*b04680f1SMatt Gilbride
124*b04680f1SMatt Gilbride<!-- ======= START OF BOTTOM NAVBAR ====== -->
125*b04680f1SMatt Gilbride<A NAME="navbar_bottom"><!-- --></A>
126*b04680f1SMatt Gilbride<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
127*b04680f1SMatt Gilbride<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
128*b04680f1SMatt Gilbride<TR>
129*b04680f1SMatt Gilbride<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
130*b04680f1SMatt Gilbride<A NAME="navbar_bottom_firstrow"><!-- --></A>
131*b04680f1SMatt Gilbride<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
132*b04680f1SMatt Gilbride  <TR ALIGN="center" VALIGN="top">
133*b04680f1SMatt Gilbride  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
134*b04680f1SMatt Gilbride  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
135*b04680f1SMatt Gilbride  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
136*b04680f1SMatt Gilbride  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
137*b04680f1SMatt Gilbride  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
138*b04680f1SMatt Gilbride  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
139*b04680f1SMatt Gilbride  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
140*b04680f1SMatt Gilbride  </TR>
141*b04680f1SMatt Gilbride</TABLE>
142*b04680f1SMatt Gilbride</TD>
143*b04680f1SMatt Gilbride<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
144*b04680f1SMatt Gilbride</EM>
145*b04680f1SMatt Gilbride</TD>
146*b04680f1SMatt Gilbride</TR>
147*b04680f1SMatt Gilbride
148*b04680f1SMatt Gilbride<TR>
149*b04680f1SMatt Gilbride<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
150*b04680f1SMatt Gilbride&nbsp;<A HREF="../../../javax/annotation/concurrent/GuardedBy.html" title="annotation in javax.annotation.concurrent"><B>PREV CLASS</B></A>&nbsp;
151*b04680f1SMatt Gilbride&nbsp;<A HREF="../../../javax/annotation/concurrent/NotThreadSafe.html" title="annotation in javax.annotation.concurrent"><B>NEXT CLASS</B></A></FONT></TD>
152*b04680f1SMatt Gilbride<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
153*b04680f1SMatt Gilbride  <A HREF="../../../index.html?javax/annotation/concurrent/Immutable.html" target="_top"><B>FRAMES</B></A>  &nbsp;
154*b04680f1SMatt Gilbride&nbsp;<A HREF="Immutable.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
155*b04680f1SMatt Gilbride&nbsp;<SCRIPT type="text/javascript">
156*b04680f1SMatt Gilbride  <!--
157*b04680f1SMatt Gilbride  if(window==top) {
158*b04680f1SMatt Gilbride    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
159*b04680f1SMatt Gilbride  }
160*b04680f1SMatt Gilbride  //-->
161*b04680f1SMatt Gilbride</SCRIPT>
162*b04680f1SMatt Gilbride<NOSCRIPT>
163*b04680f1SMatt Gilbride  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
164*b04680f1SMatt Gilbride</NOSCRIPT>
165*b04680f1SMatt Gilbride
166*b04680f1SMatt Gilbride
167*b04680f1SMatt Gilbride</FONT></TD>
168*b04680f1SMatt Gilbride</TR>
169*b04680f1SMatt Gilbride<TR>
170*b04680f1SMatt Gilbride<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
171*b04680f1SMatt Gilbride  SUMMARY:&nbsp;REQUIRED&nbsp;|&nbsp;OPTIONAL</FONT></TD>
172*b04680f1SMatt Gilbride<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
173*b04680f1SMatt GilbrideDETAIL:&nbsp;ELEMENT</FONT></TD>
174*b04680f1SMatt Gilbride</TR>
175*b04680f1SMatt Gilbride</TABLE>
176*b04680f1SMatt Gilbride<A NAME="skip-navbar_bottom"></A>
177*b04680f1SMatt Gilbride<!-- ======== END OF BOTTOM NAVBAR ======= -->
178*b04680f1SMatt Gilbride
179*b04680f1SMatt Gilbride<HR>
180*b04680f1SMatt Gilbride
181*b04680f1SMatt Gilbride</BODY>
182*b04680f1SMatt Gilbride</HTML>
183