IP Library Granted Patent US 7,036,120
Granted Patent B2
US 7,036,120 · App. 09/919,743 · Granted Apr 25, 2006

Two tier clusters for representation of objects in Java programming environments

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,036,120
App. No.
09/919,743
Granted
Apr 25, 2006
Kind
B2
Abstract

Improved techniques for representation of objects in a Java™ programming environment are disclosed. The techniques are highly suitable for representation of Java™ objects inside virtual machines, especially those that operate with limited resources (e.g., embedded systems). A cluster of Java™ object representations is disclosed. Each of the Java™ object representations provide a reference to a Java™ object and a reference to the class associated with the Java™ object. Accordingly, a two-tier representation is provided which allows efficient implementation of applications which need to access information regarding both Java™ objects and classes. As a result, quick access to information regarding Java™ objects can be achieved.

Claims (47)

1. In a Java™ computing environment, a method of identifying active Java™ objects and active Java™ classes by a virtual machine at runtime during garbage collection, said method comprising:

generating and loading in the virtual machine prior to execution time a cluster of Java™ object representations which are sequentially represented inside the virtual machine, wherein each of said Java™ object representations in said cluster consists of:

a first reference to an internal class representation of a class associated with a Java™ object, and

a second reference to instance fields associated with said Java™ object;

sequentially reading by said virtual machine at runtime said cluster of Java™ object representations;

determining by said virtual machine at runtime during garbage collection whether Java™ objects or Java™ classes are to be identified;

using said second references of said cluster during garbage collection to mark memory addresses that correspond to Java™ objects when said determining determines that Java™ objects are to be identified, thereby allowing Java™ objects to be identified at runtime by a sequential read of said cluster; and

using one or more of said first references of said cluster during garbage collection to mark memory addresses that correspond to Java™ classes when said determining determines that Java™ classes are to be identified, thereby allowing Java™ classes to be identified at runtime during garbage collection by a sequential read of said cluster, wherein said first reference is a direct reference to said internal class representation of said Java™ object.

2. A method as recited in claim 1 ,

wherein said second reference is a reference to an array of references, and

wherein each reference in said array of references is a reference to an instance field associated with said Java™ object.

3. A method as recited in claim 1 , wherein said first and second references are allocated as four bytes.

4. A method as recited in claim 1 , wherein said method further comprises:

removing internal class representations that have not been marked.

5. A method as recited in claim 1 , wherein said method further comprises:

removing Java™ objects that have not been marked.

6. A computer readable medium including at least computer program code for identifying active Java™ objects and active Java™ classes by a virtual machine at runtime during garbage collection, comprising:

computer program code for generating and loading in the virtual machine prior to execution time a cluster of Java™ object representations which are sequentially represented inside the virtual machine, wherein each of said Java™ object representations in said cluster consists of:

a first reference to an internal class representation of a class associated with a Java™ object, and

a second reference to instance fields associated with said Java™ object;

computer program code for sequentially reading by said virtual machine at runtime during garbage collection said cluster of Java™ object representations;

computer program code for determining by said virtual machine at runtime during garbage collection whether Java™ objects or Java™ classes are to be identified;

computer program code for using said second references of said cluster during garbage collection to mark memory addresses that correspond to Java™ objects when said determining determines that Java™ objects are to be identified, thereby allowing Java™ objects to be identified at runtime by a sequential read of said cluster; and

computer program code for using one or more of said first references of said cluster during garbage collection to mark memory addresses that correspond to Java™ classes when said determining determines that Java™ classes are to be identified, thereby allowing Java™ classes to be identified at runtime during garbage collection by a sequential read of said cluster, wherein said first reference is a direct reference to said internal class representation of said Java™ object.

7. A computer readable medium as recited in claim 6 ,

wherein said second reference is a reference to an array of references, and

wherein each reference in said array of references is a reference to an instance field associated with said Java™ object.

8. A computer readable medium as recited in claim 7 , wherein said first and second references are allocated as four bytes.

9. A computer-readable medium as recited in claim 6 , further comprising:

computer program code for removing internal class representations that have not been marked.

10. A computer-readable medium as recited in claim 6 , further comprising:

computer program code for removing Java™ objects that have not been marked.

11. A computer-readable medium as recited in claim 6 , wherein said Java™ objects are identified for garbage collection at runtime.

12. In a Java™ computing environment, a computer system for identifying active Java™ objects and active Java™ classes by a virtual machine at runtime during garbage collection, said computer system comprising:

memory;

at least one processor which is configured to:

generate and load in the virtual machine prior to execution time a cluster of Java™ object representations which are sequentially represented inside the virtual machine, wherein each of said Java™ object representations in said cluster consists of: a first reference to an internal class representation of a class associated with a Java™ object, and a second reference to instance fields associated with said Java™ object;

sequentially reading by said virtual machine at runtime said cluster of Java™ object representations:

determine by said virtual machine at runtime during garbage collection whether Java™ objects or Java™ classes are to be identified;

use said second references of said cluster during garbage collection to mark memory addresses that correspond to Java™ objects when said determining determines that Java™ objects are to be identified, thereby allowing Java™ objects to be identified at runtime by a sequential read of said cluster; and

use one or more of said first references of said cluster during garbage collection to mark memory addresses that correspond to Java™ classes when said determining determines that Java™ classes are to be identified, thereby allowing Java™ classes to be identified at runtime during garbage collection by a sequential read of said cluster, wherein said first reference is a direct reference to said internal class representation of said Java™ object.

13. A computer system as recited in claim 12 ,

wherein said second reference is a reference to an array of references, and

wherein each reference in said array of references is a reference to an instance field associated with said Java™ object.

14. A computer system as recited in claim 12 , wherein said first and second references are allocated as four bytes.

15. A computer system as recited in claim 12 , wherein said at least one processor is further configured to remove internal class representations that have not been marked.

16. A computer system as recited in claim 12 , wherein said at least one processor is further configured to remove Java™ objects that have not been marked.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 14, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037280/0221 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2001
From: SOKOLOV, STEPAN; WALLMAN, DAVID
To: SUN MICROSYSTEMS, INC.
Reel/Frame 012048/0761 →