Yes.
Objects you create in your program are destroyed when they "go out of scope": I.e. the flow of control exits from the block in which the object was declared, be that an "if" block:
if(myCondition)
{
int myInt;
...
}
or a method:
private void myMethod()
{
int myInt;
...
}
When your program ends, all objects are out of scope, and can be destroyed.
[edit]
Reading back on that, it implies that all objects are destroyed, which is not true: as long as there is a reference to an object, it is not eligible for destruction, so you can pass a reference to an object outside the scope in which it was created.
Point myPoint;
myMethod();
...
private void myMethod()
{
int myInt;
Point p = new Point(100,100);
myPoint = p;
}
[/edit]