Garbage collection of unused objects
Java objects do not need to be explicitly destroyed; as long as an object is referenced by a variable, on the stack or in an expression, it will remain. When the last reference to an object is removed, the object is destroyed automatically.
The next example shows how a unique object can be referenced twice,
using two variables:
FUNCTION test()
-- Declare 2 variables to reference a StringBuffer object
DEFINE sb1, sb2 java.lang.StringBuffer
-- Create object and assign reference to variable
LET sb1 = StringBuffer.create()
-- Same object is now referenced by 2 variables
LET sb2 = sb1
-- Object is modified through first variable
CALL sb1.append("abc")
-- Object is modified through second variable
CALL sb2.append("def")
-- Shows content of StringBuffer object
DISPLAY sb1.toString()
-- Same output as previous line
DISPLAY sb2.toString()
-- Object is only referenced by second variable
LET sb1 = NULL
-- sb2 removed from stack, object is no longer referenced and is destroyed.
END FUNCTION