public interface ReferenceCounted
When a new ReferenceCounted
is instantiated, it starts with the reference count of 1
.
retain()
increases the reference count, and release()
decreases the reference count.
If the reference count is decreased to 0
, the object will be deallocated explicitly, and accessing
the deallocated object will usually result in an access violation.
If an object that implements ReferenceCounted
is a container of other objects that implement
ReferenceCounted
, the contained objects will also be released via release()
when the container's
reference count becomes 0.
限定符和类型 | 方法和说明 |
---|---|
int |
refCnt()
Returns the reference count of this object.
|
boolean |
release()
Decreases the reference count by
1 and deallocates this object if the reference count reaches at
0 . |
boolean |
release(int decrement)
Decreases the reference count by the specified
decrement and deallocates this object if the reference
count reaches at 0 . |
ReferenceCounted |
retain()
Increases the reference count by
1 . |
ReferenceCounted |
retain(int increment)
Increases the reference count by the specified
increment . |
ReferenceCounted |
touch()
Records the current access location of this object for debugging purposes.
|
ReferenceCounted |
touch(java.lang.Object hint)
Records the current access location of this object with an additional arbitrary information for debugging
purposes.
|
int refCnt()
0
, it means this object has been deallocated.ReferenceCounted retain()
1
.ReferenceCounted retain(int increment)
increment
.ReferenceCounted touch()
ResourceLeakDetector
. This method is a shortcut to touch(null)
.ReferenceCounted touch(java.lang.Object hint)
ResourceLeakDetector
.boolean release()
1
and deallocates this object if the reference count reaches at
0
.true
if and only if the reference count became 0
and this object has been deallocatedboolean release(int decrement)
decrement
and deallocates this object if the reference
count reaches at 0
.true
if and only if the reference count became 0
and this object has been deallocated