Statements (759)
Predicate | Object |
---|---|
gptkbp:instance_of |
gptkb:region
gptkb:Java_2_Platform gptkb:JEP |
gptkbp:access |
public, private, protected
Can use public, private, protected. Supports public, private, and protected. Public by default. |
gptkbp:accessor_methods |
Automatically generated.
|
gptkbp:addresses |
API changes
Garbage collection challenges |
gptkbp:affects |
Java developers
Java developers. |
gptkbp:aims_to |
Improve observability of Java applications.
improve API usability Simplify type checks and casts Enhance performance of ZGC |
gptkbp:allows |
filtering of events
Aggregation of events. Filtering of events. |
gptkbp:api |
Minimal API changes.
|
gptkbp:approves |
gptkb:JCP
September 2020 |
gptkbp:author |
gptkb:Mikhail_Zaitsev
gptkb:Nikita_Kovalchuk gptkb:Alexey_Shcherbakov gptkb:Andrey_Serebryakov gptkb:Andrey_Zaitsev gptkb:Dmitry_Zaitsev gptkb:Jérôme_Gaffé gptkb:Pavel_Zaitsev gptkb:Sergey_Zaitsev gptkb:Serguei_Kovalchuk gptkb:Vladimir_Voskresensky gptkb:Alexey_Kovalchuk gptkb:Nikita_Shcherbakov gptkb:Dmitry_Jemerov gptkb:Dmitry_Sokolov gptkb:Alexander_Zaitsev gptkb:Andrey_Shcherbakov gptkb:Brian_Goetz gptkb:Pavel_Shcherbakov gptkb:Vladimir_Shcherbakov gptkb:David_Holmes gptkb:Venkat_Subramaniam gptkb:Vladimir_Kovalchuk gptkb:Sergey_Kovalchuk gptkb:Igor_Shishkin gptkb:Igor_Shcherbakov gptkb:Dmitry_Shcherbakov gptkb:Nikita_Zaitsev gptkb:Mikhail_Shcherbakov gptkb:Mikhail_Kovalchuk gptkb:Aleksandar_Seovic gptkb:Alex_Buckley gptkb:J._B._Rainsberger gptkb:Jeppe_Cramon gptkb:Johan_Vos gptkb:Kirk_Pepperdine gptkb:Mark_Reinhold gptkb:Mikael_Vidstedt gptkb:Richard_Warburton gptkb:Rafael_Winterhalter gptkb:Jesse_Glick gptkb:Igor_Zaitsev Vladimir Ivanov Alexey Shchegolev Sergey Shcherbakov Gavin Bierman JDK Release Team Sharat Chander Thomas Stüfe |
gptkbp:benefits |
Reduces boilerplate code.
Reduces boilerplate code for data classes. Simplifies data modeling. Simplifies the creation of data-carrying classes. Real-time monitoring of applications. Enhances code readability. Improved type safety. Facilitates pattern matching. Reduced pause times Improved performance for native interoperation. Increased complexity in memory management. Reduces boilerplate code for data carriers. Allows for more controlled inheritance. Better control over inheritance. Clearer API contracts. Enhanced encapsulation. Improves API design. Reduced boilerplate. Reduces the risk of misuse. |
gptkbp:can_be_extended_by |
gptkb:JEP_416
|
gptkbp:can_be_used_with |
gptkb:Java_Mission_Control
|
gptkbp:case_analysis |
Case studies published.
|
gptkbp:cause |
Simplification of the JDK.
|
gptkbp:challenges |
Complexity in design.
Backward compatibility. Documentation. Learning curve for developers. Tooling support. |
gptkbp:collaborated_with |
gptkb:Open_JDK_community
Java community projects Java open-source projects Java contributors |
gptkbp:community_engagement |
Encouraged for engagement.
|
gptkbp:community_events |
Featured in community events.
|
gptkbp:community_feedback |
Generally positive.
Positive feedback. Positive reception. Mixed responses. Positive response to deprecation. Gathered during preview. |
gptkbp:community_involvement |
High community involvement.
Encouraged for feedback. Open for contributions. |
gptkbp:community_support |
Strong community support.
Active community support. Active community forums. |
gptkbp:compatibility |
Backward compatible with existing Java code.
No compatibility issues. Backward compatibility is broken. |
gptkbp:complement |
gptkb:Sealed_classes
Existing monitoring solutions. |
gptkbp:concluded_on |
JDK 16.
Deprecation is a step towards removal. Removal is beneficial for JDK's future. |
gptkbp:conference |
Discussed in conferences.
|
gptkbp:conformance |
Conforms to Java standards.
Follows Java language rules. Conforms to Java language rules. |
gptkbp:consequences |
Encourages migration to modern frameworks.
Legacy systems may face challenges. |
gptkbp:constructor |
Automatically generated.
|
gptkbp:contributes_to |
gptkb:Java_ecosystem
Java ecosystem. Java performance improvements Java programming language. |
gptkbp:contribution |
Available on Open JDK.
Guidelines for contributions. Significant contribution to Java language. Contributed by Java community. Contributed to the Java community. Contributes to JDK modernization. |
gptkbp:copy_method |
Automatically generated.
|
gptkbp:created |
2020-09-15
2019-09-17 |
gptkbp:data_encapsulation |
Encourages encapsulation of data.
|
gptkbp:decided_by |
Deprecation approved.
|
gptkbp:declaration_syntax |
record Person(String name, int age) {}
|
gptkbp:dependency |
No external dependencies.
|
gptkbp:describes |
JDK 14 Support for the Java SE 14 API Specification
|
gptkbp:description |
Enhances the instanceof operator to allow pattern matching.
Introduces a new class type called records. Provides a new class type called 'record'. Provides a new class type for immutable data. Introduces sealed classes and interfaces to restrict which classes can extend or implement them. This JEP proposes to remove the Java EE and CORBA modules from the JDK. Provides a new class type for modeling immutable data. Provides a mechanism for streaming Java Flight Recorder events. Allows class authors to control which classes can extend a class. This JEP proposes to remove the Java Management Extensions (JMX) modules from the JDK. |
gptkbp:deserialization |
Supports deserialization.
|
gptkbp:design |
Simplicity.
Immutability. Simplicity and clarity. Clarity. Encapsulation of data. |
gptkbp:discusses |
Concurrent processing of thread stacks
Open JDK mailing list. The removal is part of the ongoing effort to simplify the JDK. https://openjdk.java.net/jeps/395 JEP 395 was discussed in the Open JDK mailing lists. |
gptkbp:educational_resources |
Educational resources available.
Available for learning. Books and online courses. |
gptkbp:effective_date |
Java Community Process.
|
gptkbp:enables |
Real-time analytics.
More concise code Pattern matching for records Destructuring. Integration with third-party tools. real-time monitoring of Java applications |
gptkbp:encourages |
Functional programming
Declarative programming style Functional programming. |
gptkbp:end_date |
2021-09-14
Not finalized yet. |
gptkbp:enhances |
gptkb:Java_SE_14
API design Java language User experience. Data encapsulation Java syntax. Potential for additional features. Potential for pattern matching. Debugging capabilities. observability of Java applications ZGC capabilities |
gptkbp:equals_method |
Automatically generated.
|
gptkbp:error_handling |
Standard Java error handling.
Standard error handling applies. |
gptkbp:established |
Can declare fields.
|
gptkbp:example |
if (obj instanceof String s) { ... }
Interfacing with C libraries. record Point(int x, int y) {} Defining a sealed class hierarchy. Code examples available. Accessing native libraries. Creating a record for a person. Direct buffer manipulation. Memory-mapped files. Working with large datasets. record Person(String name, int age) {} Non-sealed subclass. Permitted subclasses. Person p = new Person(" Alice", 30); Sealed class declaration. Sealed class with permits. Sealed interface. System.out.println(p.age()); System.out.println(p.name()); var person = new Person(" Bob", 25); |
gptkbp:exemplifies |
Data modeling
Data transfer objects. |
gptkbp:facilitates |
Data visualization.
integration with monitoring tools Data transfer objects Pattern matching. Event-driven architectures. |
gptkbp:feature |
Immutable data carriers
Immutable data classes |
gptkbp:features |
gptkb:Records
gptkb:Switch_Expressions Pattern Matching Language feature |
gptkbp:feedback |
Gathered from the Java community.
https://mail.openjdk.java.net/mailman/listinfo/jdk-dev |
gptkbp:feedback_mechanism |
Feedback collected from users.
Java mailing lists. Open for community feedback. |
gptkbp:field |
Final fields are created.
Final fields. Final by default. |
gptkbp:field_access |
Fields are final.
|
gptkbp:focus |
gptkb:Garbage_Collection
|
gptkbp:follows |
gptkb:JEP_394
|
gptkbp:formulation |
record Class Name {...}
record Class Name(parameters) {} record Point(int x, int y) {} Uses 'record' keyword. Point p1 = new Point(1, 2); Point p2 = new Point(1, 2); System.out.println(p); var p = new Point(1, 2); |
gptkbp:future_plans |
Future directions for records.
Monitor the ecosystem for JMX alternatives. Remove deprecated modules in future JDK. |
gptkbp:future_prospects |
Community engagement.
Further enhancements planned. Performance improvements. Enhancements based on feedback. Monitor usage of Java EE and CORBA. Further enhancements based on feedback. Monitor usage of alternatives. Integration with other features. Tooling updates. Research ongoing in related areas. |
gptkbp:has_documentation |
Comprehensive documentation available.
Available on Open JDK website. Detailed in JDK documentation. |
gptkbp:has_limitations |
Cannot extend other classes.
|
gptkbp:has_version |
Updated in JDK 17.
|
gptkbp:hash_code_method |
Automatically generated.
|
https://www.w3.org/2000/01/rdf-schema#label |
JEP 395
|
gptkbp:immutability |
Records are immutable.
|
gptkbp:impact |
Reduces boilerplate code.
Improves maintainability. Improves data handling. Applications that depend on these modules will need to be updated. Java programming practices. Simplifies data handling in Java. Simplifies data modeling. Simplifies the common coding pattern. Significant impact on Java development. Enhances performance monitoring tools. Improves observability of Java applications. Enhances readability. Enhances maintainability and readability of code. Enhances type safety and maintainability. Removes legacy modules from the JDK. Users must adapt to new monitoring solutions. Applications that rely on JMX will need to find alternatives. |
gptkbp:impact_on_java |
Transformative impact on Java.
|
gptkbp:improves |
Code readability
performance analysis Type safety Application responsiveness Operational efficiency. Code readability. Application performance insights. diagnostics capabilities Thread-Stack Processing |
gptkbp:includes |
new features
|
gptkbp:increased |
Developer productivity.
|
gptkbp:industry_adoption |
Adopted by industry leaders.
|
gptkbp:influenced_by |
Scala case classes
Scala case classes. |
gptkbp:influences |
Future Java language features
Future Java features future JDK versions Future garbage collection proposals |
gptkbp:inspired_by |
Scala case classes.
|
gptkbp:integration |
Easily integrates with existing code.
|
gptkbp:interface |
Can implement interfaces.
|
gptkbp:introduced_in |
gptkb:JDK_17
gptkb:Java_14 gptkb:Java_16 gptkb:Java_SE_14 gptkb:Java_SE_16 gptkb:JDK_14 gptkb:JDK_16 gptkb:Java_17 |
gptkbp:involved_technology |
gptkb:Microservices
gptkb:cloud_computing gptkb:JNR_(Java_Native_Runtime) gptkb:JNI_(Java_Native_Interface) Java SE. Native Image. |
gptkbp:is_a_framework_for |
Used in various frameworks.
|
gptkbp:is_a_resource_for |
Documentation available.
|
gptkbp:is_about |
gptkb:Records
|
gptkbp:is_adopted_by |
gptkb:Open_JDK_community
gptkb:Java_frameworks gptkb:Open_JDK Software companies Open source projects Java Community Java projects Used in various applications. Enterprise applications. High adoption rate. High among Java developers. Increasing among developers. Java 16. Java community. Learning curve for new syntax. Learning curve for new users. Open-source projects. Software projects. Widely adopted in Java applications. Widely adopted in production systems. Some challenges in adoption. Widely adopted in Java projects. Adopted in various projects. Java 16 users Limited adoption in recent years. |
gptkbp:is_analyzed_in |
Software engineers
Technical papers technical papers Java analysts Java articles. Java research. |
gptkbp:is_beneficial_for |
Developers.
Data analysts. Quality assurance teams. System administrators. Application architects. Business stakeholders. Dev Ops teams. Performance engineers. Product managers. Support teams. |
gptkbp:is_celebrated_in |
gptkb:Java_conferences
Java enthusiasts |
gptkbp:is_cited_in |
Java books
Java documentation. Java literature. Java SE 14 release notes Subsequent JEPs |
gptkbp:is_committed_to |
JDK-8261234
|
gptkbp:is_compared_to |
Other data structures in Java.
Similar to data classes in Kotlin. Different from traditional Java classes. Similar to case classes in Scala. |
gptkbp:is_compatible_with |
gptkb:Java_17
|
gptkbp:is_connected_to |
Java standards
|
gptkbp:is_considered |
Future Java versions
|
gptkbp:is_described_as |
Java experts
Java tutorials Java Enhancement Proposal document. |
gptkbp:is_designed_for |
production environments
|
gptkbp:is_discussed_in |
gptkb:Java_conferences
Java meetups Java conferences. Java forums Java forums. Java community process |
gptkbp:is_documented_in |
gptkb:JEP
Technical specifications Online resources Java Documentation Java documentation Java documentation. Open JDK documentation Java authors |
gptkbp:is_evaluated_by |
Performance benchmarks
Quality assurance teams Java experts Performance analysts Java assessments. Java code reviews. Java performance teams Java assessments |
gptkbp:is_explored_in |
Research studies
Technical workshops Java blogs. Java tutorials. |
gptkbp:is_implemented_in |
gptkb:Java_programming_language
gptkb:JDK_11 gptkb:JDK_14 gptkb:JDK_16 gptkb:Java_Development_Kit_(JDK) gptkb:Java_Virtual_Machine_(JVM) gptkb:Open_JDK Completed Java runtime Detailed in the proposal. JDK 14 implementation JDK 16 implementation JDK 16 implementation. JDK 16. JDK 17 and later. Java Development Kit. Part of the Java language. Built into the JDK. Java API for Foreign-Memory Access. Implemented in JDK 14. The implementation involves removing the JMX API and related classes. |
gptkbp:is_influenced_by |
gptkb:Kotlin_data_classes
Kotlin data classes. Java community feedback previous JEPs |
gptkbp:is_integrated_with |
Java IDEs
Interoperable with existing Java code. Java distributions |
gptkbp:is_motivated_by |
To provide a compact syntax for declaring classes that are transparent holders for shallowly immutable data.
Java EE and CORBA are no longer part of the Java SE platform. To simplify the JDK and remove outdated technologies. Improve the modeling of hierarchies. Improve the expressiveness of the type system. Improve the readability of code. JMX is rarely used in modern applications. |
gptkbp:is_part_of |
gptkb:Java_2_Platform
gptkb:Java_SE_platform gptkb:Java_SE_14 gptkb:Java_SE_16 Java SE. JDK 17 features. Java SE 14 release Java SE 14 features list Java 16 release |
gptkbp:is_practiced_in |
Follow best practices for usage.
Use for simple data structures. |
gptkbp:is_promoted_by |
Java advocates
Java advocates. Java influencers Java newsletters Java workshops. |
gptkbp:is_referenced_in |
Java documentation
Java books Java community discussions. Java specifications. subsequent JEPs |
gptkbp:is_related_to |
gptkb:JEP_344
gptkb:JEP_394 Type inference Garbage collection algorithms JEP 384: Pattern Matching for instanceof. JEP 391. Java SE 14 features |
gptkbp:is_reviewed_by |
gptkb:Java_Community_Process
gptkb:Java_community Approved Java experts JDK Reviewers Java community. Java publications |
gptkbp:is_supported_by |
gptkb:Java_18
gptkb:Java_community Java developers Java IDEs Java user groups Java vendors Java runtime Java 16 and later. Java community. Java environments Java libraries. Java IDEs. |
gptkbp:is_taught_in |
Low learning curve.
|
gptkbp:is_tested_for |
gptkb:JUnit
Development environments Production environments Extensively tested. Java QA teams Java environments Java testing frameworks. Java unit tests. JDK 14 builds Supported in testing frameworks. JUnit and other frameworks. |
gptkbp:is_used_in |
Java applications
Java applications. Cloud applications. |
gptkbp:is_utilized_by |
Enterprise applications
Cloud applications Microservices. |
gptkbp:is_utilized_in |
Java development.
Java frameworks. |
gptkbp:issue_link |
https://bugs.openjdk.java.net/browse/ JDK-8221210
|
gptkbp:issues |
JDK-8221210
JDK-8241234 JDK-8251234 |
gptkbp:jdkversion |
gptkb:17
|
gptkbp:key |
Simplifies data handling in Java.
|
gptkbp:key_feature |
gptkb:Sealed_classes
Permits Record classes Compact constructor syntax. Compact syntax for declaring data classes. Support for destructuring. Support for memory allocation and deallocation. Support for pattern matching. Support for sealed types. Automatic generation of equals(), hash Code(), and to String() methods. Sealed interfaces Integration with the Java garbage collector. Access to memory outside the Java heap. Non-sealed classes Support for memory access with safety checks. Permits subclasses to be defined only in the same package or module. Compact syntax for declaring classes. Permits clause |
gptkbp:latest_version |
gptkb:JEP_395
1.0 JDK 14 and later. |
gptkbp:legacy |
No longer supported.
|
gptkbp:library |
Project Lombok.
|
gptkbp:modifiers |
Can be declared with modifiers.
|
gptkbp:next_edition |
Expected in future Java versions.
|
gptkbp:notable_contributor |
JDK Team
|
gptkbp:notable_production |
Encourages adoption of modern frameworks.
Significant impact on development. |
gptkbp:offers_workshops_on |
Workshops conducted on usage.
|
gptkbp:pattern_matching |
Potential future feature.
Compatible with pattern matching. |
gptkbp:performance |
Minimal impact.
Optimized for performance. |
gptkbp:plot_summary |
A proposal for record types in Java.
Removal of JMX modules from JDK. This JEP proposes to deprecate the Java EE and CORBA modules for removal in a future release. |
gptkbp:precedes |
gptkb:JEP_396
|
gptkbp:project |
gptkb:Open_JDK
Used in open-source projects. |
gptkbp:promotes |
Immutability
Immutability. |
gptkbp:proposed_by |
gptkb:Open_JDK_Community
gptkb:Pattern_Matching_for_instanceof gptkb:Brian_Goetz gptkb:Oracle gptkb:James_Gosling gptkb:Mark_Reinhold JDK Release Team JEP process. |
gptkbp:provides |
API enhancements
Automatic implementations of equals, hash Code, and to String. Event buffering. Low-overhead event collection. Default implementations for equals, hash Code, and to String. Concurrent stack processing Type-safe conditional logic event data in a continuous stream |
gptkbp:provides_support_for |
Supported by Java compiler.
|
gptkbp:published_by |
Java magazines
|
gptkbp:published_in |
March 2021
|
gptkbp:purpose |
Provide a mechanism to safely access foreign memory outside of the Java heap.
|
gptkbp:reduces |
Boilerplate code
Error-prone boilerplate. Error-prone code |
gptkbp:related_concept |
gptkb:Java_SE
gptkb:Documentation gptkb:Inheritance gptkb:Java_Community_Process gptkb:Java_programming_language gptkb:Java_Development_Kit_(JDK) Abstraction Design principles Dynamic typing Object-oriented programming Software engineering Interfaces Refactoring Agile development Code review Continuous integration Design patterns Polymorphism Version control Static typing Best practices Code reusability Encapsulation Error handling Software architecture Type safety Code maintainability Code quality Software testing Abstract classes Class hierarchy Compile-time checks Runtime checks Software lifecycle Data classes. ISO/ IEC 23270. No direct related standards. |
gptkbp:related_jeps |
gptkb:JEP_344
gptkb:JEP_384 gptkb:JEP_386 gptkb:JEP_393 gptkb:JEP_394 gptkb:JEP_396 gptkb:JEP_397 gptkb:JEP_291 gptkb:JEP_406 gptkb:JEP_409 JEP 384, JEP 397. JEP 384, JEP 394. |
gptkbp:related_to |
gptkb:JEP_384
gptkb:JEP_394 gptkb:JEP_397 gptkb:Z_Garbage_Collector gptkb:Java_Flight_Recorder gptkb:Java_Development_Kit_(JDK) |
gptkbp:release_date |
2021-09-14
March 2020 September 2018 March 2021 September 2021 |
gptkbp:release_notes |
Included in JDK 16 release.
Included in JDK release notes. Included in JDK 14 release notes. Included in release notes. JMX modules removed. |
gptkbp:released |
gptkb:JDK_17
gptkb:Java_SE_16 gptkb:JDK_11 gptkb:JDK_14 |
gptkbp:repository |
gptkb:Open_JDK
|
gptkbp:requires |
Java 8 or higher
JDK 14 or later Java 16 runtime. JDK Flight Recorder. Java Flight Recorder API. JVM changes |
gptkbp:reviews |
gptkb:Gilad_Bracha
gptkb:Alan_Bateman gptkb:Brian_Goetz gptkb:David_Holmes gptkb:Venkat_Subramaniam gptkb:Mark_Reinhold gptkb:Jesse_Glick 2020-10-01 Reviewed by the Java Community Process. Various contributors. Various members of the Open JDK community. Various Java community members. Community review. |
gptkbp:runtime |
Supported at runtime.
|
gptkbp:serialization |
Supports serialization.
|
gptkbp:significance |
Marks a shift in Java's evolution.
|
gptkbp:specification |
gptkb:Java_Language_Specification
Java Language Specification. Defines a new syntax for declaring classes. Java SE 14 API Specification |
gptkbp:specifies |
Java Flight Recorder (JFR) event streaming
|
gptkbp:status |
gptkb:Final
gptkb:Preview Standard Feature |
gptkbp:supports |
gptkb:Kotlin
Destructuring assignment Record types. Record patterns Asynchronous event streaming. Custom event types. Multiple output formats. multiple consumers of event data |
gptkbp:target_jdk |
gptkb:JDK_17
gptkb:JDK_11 gptkb:JDK_14 gptkb:JDK_16 |
gptkbp:targets |
gptkb:Java_programming_language
|
gptkbp:technique |
equals(), hash Code(), to String() are generated.
|
gptkbp:title |
gptkb:Pattern_Matching_for_instanceof
gptkb:Sealed_Classes gptkb:JFR:_Event_Streaming gptkb:Records gptkb:JFR_Event_Streaming Records (preview) ZGC: Concurrent Thread-Stack Processing Records (Preview) Records (Standard Feature) Remove the Java EE and CORBA Modules Foreign-Memory Access API (preview) Records (standard feature preview) Records (standard feature) Deprecate the Java EE and CORBA Modules for Removal Remove the Java Management Extensions (JMX) Modules Records (Standard Feature Preview) |
gptkbp:to_string_method |
Automatically generated.
|
gptkbp:tradition |
Follows Java naming conventions.
|
gptkbp:trends |
Increased use of records.
Trends towards more data-oriented programming. |
gptkbp:tutorials |
Online tutorials available.
Various online resources. |
gptkbp:type_of |
Supported.
Supports type inference. |
gptkbp:updates |
2020-03-17
|
gptkbp:usage |
Used for creating data transfer objects.
Used for configuration settings. Used for data transfer objects. Used for simple data structures. Used in defining restricted class hierarchies. |
gptkbp:use_case |
Type safety.
Extensibility. Performance analysis. Code organization. Data transfer objects. Troubleshooting. API design. Capacity planning. Data transfer, configuration. Domain modeling. |
gptkbp:used_in |
Functional programming.
|
gptkbp:user_base |
Large user base.
Java developers. |
gptkbp:uses |
Pattern Matching
|
gptkbp:version_compatibility |
Compatible with previous versions.
|
gptkbp:bfsParent |
gptkb:JDK_17
gptkb:JEP_33 gptkb:Java_SE_16 gptkb:JDK_10 gptkb:JDK_14 gptkb:JDK_15 gptkb:JDK_18 gptkb:JEP_488 gptkb:Java_SE_15 gptkb:Java_10 gptkb:Open_JDK |
gptkbp:bfsLayer |
5
|