10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package java.lang;
27
28 import jdk.internal.misc.Blocker;
29 import jdk.internal.vm.annotation.IntrinsicCandidate;
30
31 /**
32 * Class {@code Object} is the root of the class hierarchy.
33 * Every class has {@code Object} as a superclass. All objects,
34 * including arrays, implement the methods of this class.
35 *
36 * @see java.lang.Class
37 * @since 1.0
38 */
39 public class Object {
40
41 /**
42 * Constructs a new object.
43 */
44 @IntrinsicCandidate
45 public Object() {}
46
47 /**
48 * Returns the runtime class of this {@code Object}. The returned
49 * {@code Class} object is the object that is locked by {@code
50 * static synchronized} methods of the represented class.
51 *
52 * <p><b>The actual result type is {@code Class<? extends |X|>}
53 * where {@code |X|} is the erasure of the static type of the
54 * expression on which {@code getClass} is called.</b> For
|
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package java.lang;
27
28 import jdk.internal.misc.Blocker;
29 import jdk.internal.vm.annotation.IntrinsicCandidate;
30 import jdk.internal.access.SharedSecrets;
31
32 import java.util.Objects;
33
34 /**
35 * Class {@code Object} is the root of the class hierarchy.
36 * Every class has {@code Object} as a superclass. All objects,
37 * including arrays, implement the methods of this class.
38 * <p>
39 * Subclasses of {@code java.lang.Object} can be either {@linkplain Class#isIdentity()
40 * identity classes} or {@linkplain Class#isValue value classes}.
41 * The class {@code Object} itself is neither an identity class nor a value class.
42 * See {@jls The Java Language Specification 8.1.1.5 identity and value Classes}.
43 * An instance can be created with {@code new Object()}, those instances are
44 * {@link Objects#isIdentityObject(Object) an identity object}.
45 *
46 * @see java.lang.Class
47 * @since 1.0
48 */
49 public class Object {
50
51 /**
52 * Constructs a new object.
53 */
54 @IntrinsicCandidate
55 public Object() {}
56
57 /**
58 * Returns the runtime class of this {@code Object}. The returned
59 * {@code Class} object is the object that is locked by {@code
60 * static synchronized} methods of the represented class.
61 *
62 * <p><b>The actual result type is {@code Class<? extends |X|>}
63 * where {@code |X|} is the erasure of the static type of the
64 * expression on which {@code getClass} is called.</b> For
|