Java 27 and 26: runnable demos and captured output for every JEP, plus version lanes
Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01B38FGKKam5SCGgwgduVAh3
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
java.version = 27
|
||||
# WARNING: Unable to attach Serviceability Agent. sun.jvm.hotspot.runtime.VM.isCompressedKlassPointersEnabled()
|
||||
# VM mode: 64 bits
|
||||
# Compressed references (oops): 3-bit shift
|
||||
# Compressed class pointers: 3-bit shift
|
||||
# WARNING | Compressed references base/shifts are guessed by the experiment!
|
||||
# WARNING | Therefore, computed addresses are just guesses, and ARE NOT RELIABLE.
|
||||
# WARNING | Make sure to attach Serviceability Agent to get the reliable addresses.
|
||||
# Object alignment: 8 bytes
|
||||
# ref, bool, byte, char, shrt, int, flt, lng, dbl
|
||||
# Field sizes: 4, 1, 1, 2, 2, 4, 4, 8, 8
|
||||
# Array element sizes: 4, 1, 1, 2, 2, 4, 4, 8, 8
|
||||
# Array base offsets: 16, 16, 16, 16, 16, 16, 16, 16, 16
|
||||
|
||||
|
||||
=== java.lang.Object
|
||||
java.lang.Object object internals:
|
||||
OFF SZ TYPE DESCRIPTION VALUE
|
||||
0 8 (object header: mark) N/A
|
||||
8 4 (object header: class) N/A
|
||||
12 4 (object alignment gap)
|
||||
Instance size: 16 bytes
|
||||
Space losses: 0 bytes internal + 4 bytes external = 4 bytes total
|
||||
|
||||
|
||||
=== Point { int x; int y; }
|
||||
HeaderDemo$Point object internals:
|
||||
OFF SZ TYPE DESCRIPTION VALUE
|
||||
0 8 (object header: mark) N/A
|
||||
8 4 (object header: class) N/A
|
||||
12 4 int Point.x N/A
|
||||
16 4 int Point.y N/A
|
||||
20 4 (object alignment gap)
|
||||
Instance size: 24 bytes
|
||||
Space losses: 0 bytes internal + 4 bytes external = 4 bytes total
|
||||
|
||||
|
||||
=== Order { long id; int quantity; boolean paid; String customer; }
|
||||
HeaderDemo$Order object internals:
|
||||
OFF SZ TYPE DESCRIPTION VALUE
|
||||
0 8 (object header: mark) N/A
|
||||
8 4 (object header: class) N/A
|
||||
12 4 int Order.quantity N/A
|
||||
16 8 long Order.id N/A
|
||||
24 1 boolean Order.paid N/A
|
||||
25 3 (alignment/padding gap)
|
||||
28 4 java.lang.String Order.customer N/A
|
||||
Instance size: 32 bytes
|
||||
Space losses: 3 bytes internal + 0 bytes external = 3 bytes total
|
||||
|
||||
|
||||
=== java.lang.Long and java.lang.Integer (boxed values)
|
||||
java.lang.Long object internals:
|
||||
OFF SZ TYPE DESCRIPTION VALUE
|
||||
0 8 (object header: mark) 0x0000000000000009 (non-biasable; age: 1)
|
||||
8 4 (object header: class) 0x001aa208
|
||||
12 4 (alignment/padding gap)
|
||||
16 8 long Long.value 123456789
|
||||
Instance size: 24 bytes
|
||||
Space losses: 4 bytes internal + 0 bytes external = 4 bytes total
|
||||
|
||||
java.lang.Integer object internals:
|
||||
OFF SZ TYPE DESCRIPTION VALUE
|
||||
0 8 (object header: mark) 0x0000000000000001 (non-biasable; age: 0)
|
||||
8 4 (object header: class) 0x001a7db8
|
||||
12 4 int Integer.value 123456
|
||||
Instance size: 16 bytes
|
||||
Space losses: 0 bytes internal + 0 bytes external = 0 bytes total
|
||||
|
||||
|
||||
=== int[3]
|
||||
[I object internals:
|
||||
OFF SZ TYPE DESCRIPTION VALUE
|
||||
0 8 (object header: mark) 0x0000000000000001 (non-biasable; age: 0)
|
||||
8 4 (object header: class) 0x00176c00
|
||||
12 4 (array length) 3
|
||||
16 12 int [I.<elements> N/A
|
||||
28 4 (object alignment gap)
|
||||
Instance size: 32 bytes
|
||||
Space losses: 0 bytes internal + 4 bytes external = 4 bytes total
|
||||
|
||||
|
||||
=== What it adds up to: one million objects
|
||||
1,000,000 boxed Integer values in an ArrayList : 20,861,992 bytes
|
||||
1,000,000 boxed Long values in an ArrayList : 28,861,992 bytes
|
||||
1,000,000 Point objects in an ArrayList : 28,861,992 bytes
|
||||
Reference in New Issue
Block a user