@_gile
Answered this a while ago.
The Handle is a persistent identifier which is unique per drawing.
The ObjectId is a non-persistent identifier (reassigned each time the drawing is opened) which is unique per session.
In an AutoCAD session, you can get the Handle of a DBObject from its ObjectId using the ObjectId.Handle property.
On the other hand, you can get the the ObjectId of a DBObject from its Handle (and its Database) with the Database.GetObjectId() method.
Another answer was
From myself I will add that if you open multiple drawings, the handle may have the same value for different objects in different drawings. ObjectId is unique even if you have multiple drawings open and several different objects in the different drawings have a handle with the same value. You have to be very careful to avoid confusion by using the handle between different drawings.
If you want a store a handle of an object in a drawing (in Xrecord for example), always use handle because it is unique and constant in the drawing. Handle shall be unique in the drawing, even if you delete the object and add a new one. If you want to open object, use the ObjectId, because it is unique among drawings.