Statements (557)
Predicate | Object |
---|---|
gptkbp:instance_of |
gptkb:Java_2_Platform
gptkb:JEP |
gptkbp:abstract |
This JEP proposes to allow the use of the local-variable syntax for lambda parameters.
|
gptkbp:addresses |
user feedback on documentation
memory allocation issues |
gptkbp:advances |
Java documentation standards
|
gptkbp:affects |
Java developers
|
gptkbp:aims_to |
Simplify type checks
Improve observability of Java applications. enhance the quality of JDK documentation improve observability |
gptkbp:aims_to_improve |
gptkb:Z_Garbage_Collector
memory fragmentation documentation errors predictable release cadence |
gptkbp:approves |
March 2018
March 2021 JDK Release Team JDK Release Team. |
gptkbp:author |
gptkb:Brian_Goetz
gptkb:Maurizio_Cimadamore |
gptkbp:benefits |
Improves code readability and reduces boilerplate.
Better performance monitoring. Enhanced diagnostics. Reduced overhead. Encourages a more declarative style of programming. Reduces verbosity. |
gptkbp:challenges |
Requires careful design to avoid complexity.
|
gptkbp:code |
(var s) -> s.length()
|
gptkbp:collaborated_with |
gptkb:Open_JDK_community
academic institutions open-source projects Research institutions. Industry partners. Open source projects. |
gptkbp:collaboration |
Java developers
Java community stakeholders |
gptkbp:collaborative_projects |
multiple stakeholders
|
gptkbp:community_feedback |
Positive.
Positive reception from the Java community. |
gptkbp:community_involvement |
High.
|
gptkbp:compatibility |
Backward compatible with existing Java code.
Backward compatible. |
gptkbp:concluded_on |
March 2019
The proposal was accepted and implemented. |
gptkbp:contains |
API changes
Security updates Deprecations Removals Removed features |
gptkbp:context |
Lambda expressions.
|
gptkbp:contributes_to |
Java observability tools
Java observability. |
gptkbp:contribution |
Enhances lambda syntax.
|
gptkbp:contribution_to_readability |
Improves readability.
|
gptkbp:created |
2017-07-10
|
gptkbp:date_accepted |
March 2018
|
gptkbp:describes |
gptkb:Pattern_Matching_for_instanceof
JDK 15 Release Notes JDK 17 Release Notes documentation improvements in JDK 11 JDK 17 Release Schedule |
gptkbp:description |
Introduces the 'var' keyword for local variable type inference.
Introduces switch expressions to enhance the switch statement. Enhances the switch statement to allow it to be used as an expression. Introduces sealed interfaces to the Java programming language. Enhances Java Flight Recorder to support event streaming. |
gptkbp:development |
September 2018
|
gptkbp:discusses |
https://openjdk.java.net/jeps/361
|
gptkbp:educational_resources |
Available online.
|
gptkbp:enables |
event filtering
real-time monitoring Real-time monitoring. Null-safe type checks |
gptkbp:enhances |
gptkb:Java_programming_language
performance analysis developer experience Java Flight Recorder. API documentation readability the overall Java ecosystem. release predictability concurrent memory management |
gptkbp:example |
var stream = list.stream();
(var x) -> x + 1 switch (day) { case MONDAY: ... } var list = new Array List< String>(); var map = new Hash Map< String, List< String>>(); var optional = Optional.of Nullable(value); var result = compute(); switch (value) { case 1 -> ' One'; case 2 -> ' Two'; } String result = switch (day) { case MONDAY -> " Start of the week"; } Sealed interfaces can be used in pattern matching. switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; case 4 -> ' Four'; case 5 -> ' Five'; } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; default -> ' Unknown'; } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; case 4 -> ' Four'; case 5 -> ' Five'; case 6 -> ' Six'; case 7 -> ' Seven'; } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; case 4 -> ' Four'; case 5 -> ' Five'; case 6 -> ' Six'; } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; case 4 -> ' Four'; case 5 -> { /* action */ yield ' Five'; } } switch (value) { case 1 -> { /* action */ yield ' One'; } case 2 -> { /* action */ yield ' Two'; } case 3 -> { /* action */ yield ' Three'; } } switch (value) { case 1: yield ' One'; case 2: yield ' Two'; } switch (value) { case 1 -> { /* action */ yield ' One'; } } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; case 4 -> ' Four'; default -> ' Unknown'; } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; case 4 -> { /* action */ yield ' Four'; } } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; default -> ' Unknown'; } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; case 4 -> ' Four'; case 5 -> ' Five'; default -> ' Unknown'; } switch (value) { case 1 -> { yield ' One'; } } switch (value) { case 1, 2: yield ' One or Two'; } switch (value) { case 1: yield ' One'; } switch (value) { case null: yield ' Null'; } switch (value) { default: yield ' Default'; } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; default -> ' Other'; } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; case 4 -> ' Four'; case 5 -> ' Five'; case 6 -> ' Six'; default -> ' Unknown'; } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; case 4 -> ' Four'; case 5 -> ' Five'; case 6 -> { /* action */ yield ' Six'; } } switch (value) { case 1 -> { /* code */ yield ' One'; } } switch (value) { case 1 -> { /* action */ yield ' One'; } case 2 -> ' Two'; } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; case 4 -> ' Four'; } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; case 4 -> ' Four'; case 5 -> ' Five'; case 6 -> ' Six'; case 7 -> { /* action */ yield ' Seven'; } } switch (value) { case 1 -> ' One'; case 2 -> { /* action */ yield ' Two'; } } switch (value) { case 1 -> ' One'; case 2 -> ' Two'; case 3 -> ' Three'; case 4 -> ' Four'; case 5 -> ' Five'; case 6 -> ' Six'; case 7 -> ' Seven'; default -> ' Unknown'; } switch (value) { case 1 -> { /* action */ yield ' One'; } case 2 -> { /* action */ yield ' Two'; } } |
gptkbp:example_lambda |
(var a, var b) -> a + b
|
gptkbp:facilitates |
Data analysis.
data collection |
gptkbp:feature |
Allows switch to return a value.
Enables the use of yield statement. Supports multiple case labels. |
gptkbp:features |
Type inference.
|
gptkbp:feedback_mechanism |
Open discussion forums.
|
gptkbp:first_published |
2020-03-17
|
gptkbp:focus |
gptkb:Garbage_Collection
|
gptkbp:formulation |
Allows var in lambda parameters.
|
gptkbp:future_prospects |
Potential enhancements based on user feedback.
No further work planned. |
gptkbp:has_version |
Introduced in Java 11.
|
gptkbp:historical_achievement |
Java's documentation evolution
Java SE development |
https://www.w3.org/2000/01/rdf-schema#label |
JEP 361
|
gptkbp:impact |
No impact on existing code.
Simplifies code by reducing verbosity. Improves code readability and reduces boilerplate. Improves type safety and maintainability. Affects existing switch statements. |
gptkbp:improves |
Code readability
application responsiveness application performance monitoring documentation generation tools search functionality in documentation Application performance. |
gptkbp:includes |
Bug fixes
New features Performance improvements release candidate support for HTML5 improved navigation features feature freeze date memory management adjustments final release date ramp-down period |
gptkbp:introduced |
new syntax for documentation comments
|
gptkbp:introduced_in |
gptkb:JDK_17
gptkb:Java_11 gptkb:Java_16 gptkb:JDK_11 gptkb:JDK_12 |
gptkbp:is_a |
gptkb:Java_2_Platform
|
gptkbp:is_a_document_that |
release milestones
JDK 17 release phases JDK 17 release process a roadmap for JDK 17 release schedule details |
gptkbp:is_a_document_that_outlines_the_importance_of |
release schedules in Java development
|
gptkbp:is_a_document_that_provides_guidance_on |
JDK 17 release planning
|
gptkbp:is_a_document_that_serves_as_a_reference_for |
JDK 17 release stakeholders
|
gptkbp:is_a_document_that_specifies |
JDK 17 release phases
|
gptkbp:is_a_foundational_change_for |
Java documentation practices
|
gptkbp:is_a_framework_for |
JDK development
|
gptkbp:is_a_guide_for |
future JDK releases
JDK 17 development process |
gptkbp:is_a_key_component_of |
JDK 11 features
|
gptkbp:is_a_proposal_that_aims_to_clarify |
JDK release expectations
|
gptkbp:is_a_proposal_that_aims_to_enhance |
Java release management
|
gptkbp:is_a_proposal_that_aims_to_ensure |
JDK release consistency
|
gptkbp:is_a_proposal_that_aims_to_facilitate |
JDK release coordination
|
gptkbp:is_a_proposal_that_aims_to_improve |
JDK release transparency
|
gptkbp:is_a_proposal_that_aims_to_standardize |
JDK release cycles
|
gptkbp:is_a_proposal_that_includes |
release timelines
|
gptkbp:is_a_proposal_that_outlines |
JDK 17 release strategy
|
gptkbp:is_a_reference_for |
JDK release schedules
|
gptkbp:is_adopted_by |
gptkb:developers
gptkb:Non-profit_organizations gptkb:Java_frameworks gptkb:educational_institutions gptkb:Open_JDK Financial institutions Healthcare organizations Research institutions Open-source projects Startups Software companies Media companies data analysis enterprise applications cloud environments real-time analytics software companies startups Freelancers Manufacturing companies Telecommunications companies Consulting firms Transportation companies Energy companies Startups. Government organizations Gaming companies Retail companies Cloud environments. Enterprise applications. Large enterprises. High among developers. Widely adopted in Java 11. |
gptkbp:is_aimed_at |
Java developers
enhancing developer productivity |
gptkbp:is_aligned_with |
modern software development practices
Industry standards. Java community standards |
gptkbp:is_analyzed_in |
Research papers
technical papers software architects Data scientists. |
gptkbp:is_associated_with |
gptkb:Java_SE_17
|
gptkbp:is_beneficial_for |
gptkb:developers
IT professionals system administrators Code maintainability application developers |
gptkbp:is_cited_in |
Industry reports.
Research articles. Java books |
gptkbp:is_compatible_with |
Java applications
Microservices. |
gptkbp:is_considered |
Java 18 features
future Java versions |
gptkbp:is_described_as |
Technical articles
Java documentation Java tutorials |
gptkbp:is_designed_for |
Java applications
|
gptkbp:is_designed_to |
support diverse user needs
facilitate learning for new developers improve onboarding for new developers |
gptkbp:is_discussed_in |
gptkb:Java_Community_Process
Developer conferences Java experts Java meetups Online communities. Conferences. Technical blogs technical blogs technical webinars Technical forums. Meetups. Java forums |
gptkbp:is_documented_in |
gptkb:Java_community
Java SE documentation Java documentation Official JDK documentation Open JDK documentation Open JDK website JDK Enhancement-Proposal repository Open JDK documentation. Java Enhancement Proposal documents JEP 361 documentation |
gptkbp:is_enhanced_by |
community contributions
Community contributions. |
gptkbp:is_evaluated_by |
industry experts
real-world scenarios Software engineers performance benchmarks Code reviews Performance metrics. Performance benchmarks. Performance engineers. Benchmarks. |
gptkbp:is_expected_to |
improve throughput
better community contributions future JDK documentation proposals increase documentation usage |
gptkbp:is_explored_in |
Java tutorials
Java workshops Java courses |
gptkbp:is_focused_on |
low-latency applications
user-friendly documentation |
gptkbp:is_implemented_in |
gptkb:Java_Virtual_Machine
gptkb:Java_programming_language gptkb:JDK_11 gptkb:Open_JDK Java developers Implemented in the Java compiler. Part of the Java language specification. Completed. Java 11 and later versions Open JDK. Java Virtual Machine. JDK 11 release Open JDK 17 Compiler changes. |
gptkbp:is_influenced_by |
gptkb:JEP_290
Functional programming concepts community feedback user experience research Type inference previous JEPs |
gptkbp:is_integrated_with |
gptkb:Java_frameworks
gptkb:cloud_services Development environments. Java build tools Cloud platforms. Java monitoring solutions Monitoring tools. |
gptkbp:is_linked_to |
Java memory model
JDK release process |
gptkbp:is_managed_by |
gptkb:Open_JDK_community
gptkb:Open_JDK_Community |
gptkbp:is_motivated_by |
To improve the expressiveness of the Java language.
To provide more control over the inheritance of interfaces. To improve the readability and consistency of lambda expressions. |
gptkbp:is_part_of |
gptkb:Java_SE_11
gptkb:Java_SE_Platform gptkb:Java_2_Platform gptkb:JDK_11 gptkb:Java_ecosystem gptkb:Java_Development_Kit_(JDK) Java language evolution Java platform evolution Java runtime environment Java ecosystem. Java standard library Java 17 features Java performance improvements Java language enhancements Java's strategic goals Java SE Platform. Java's commitment to quality Java's ongoing improvement process Java performance optimization. JDK release planning Java SE release strategy Java development lifecycle. Java SE 16 features Java SE platform evolution Java SE 17 planning |
gptkbp:is_promoted_by |
gptkb:Oracle
Java community events Java user groups Java blogs Java user groups. |
gptkbp:is_promoted_through |
gptkb:Java_conferences
Webinars Workshops. Newsletters. Social media. Webinars. Java newsletters Java podcasts |
gptkbp:is_recognized_by |
Industry leaders.
Java developers. |
gptkbp:is_recognized_for |
its innovative approach to documentation
|
gptkbp:is_referenced_in |
Online tutorials
Java developers Java specifications Java standards Technical documentation. Technical papers. Java books |
gptkbp:is_reflected_in |
community priorities in Java development
|
gptkbp:is_related_to |
gptkb:JEP_411
gptkb:JEP_330 gptkb:JEP_382 gptkb:JEP_384 gptkb:JEP_391 gptkb:JEP_394 gptkb:JEP_260 gptkb:Java_2_Platform gptkb:JEP_305 gptkb:ZGC performance tuning Performance tuning. memory management strategies JDK 17 features JFR (Java Flight Recorder) Garbage Collection algorithms |
gptkbp:is_reviewed_by |
gptkb:Java_Community_Process
Technical committees peer reviewers Peer reviewers. software engineering journals |
gptkbp:is_supported_by |
gptkb:Open_JDK_community
gptkb:multiple_platforms gptkb:Java_community gptkb:Java_libraries Multiple platforms Community contributions Java developers IDE plugins Java IDEs Java runtime environment Java user groups Community forums. Technical support. Documentation. Java certification programs Java user community Java community. Various operating systems. User guides. |
gptkbp:is_targeted_at |
large heap applications
|
gptkbp:is_tested_for |
Unit tests
quality assurance teams production environments Quality assurance. Extensively tested. Load testing. Java testing frameworks Continuous integration. |
gptkbp:is_used_for |
performance tuning
|
gptkbp:is_used_in |
Cloud services
Web applications Mobile applications Enterprise applications production environments Production environments. |
gptkbp:is_utilized_by |
data scientists
monitoring tools Developers. system architects |
gptkbp:is_utilized_for |
system monitoring
debugging purposes application diagnostics Application profiling. Debugging. System monitoring. |
gptkbp:is_utilized_in |
microservices architecture
high-performance applications large-scale applications cloud applications Software development projects Research projects. Academic research. |
gptkbp:key |
Java performance optimization
Java SE 17 release |
gptkbp:key_feature |
gptkb:Java_11
Improves type safety. Allows multiple case labels to be grouped. Supports yield statement for returning values. Enables switch to be used in a more functional style. Supports pattern matching. Allows interfaces to restrict which classes can implement them. Local-variable type inference. Allows null case handling. |
gptkbp:keywords |
var, type inference, local variable
|
gptkbp:language |
Java programming language.
|
gptkbp:latest_version |
gptkb:Java_11
gptkb:Java_SE_14 1.0 JEP 361 (2020) |
gptkbp:originated_in |
more accessible documentation
|
gptkbp:outlines |
JDK 17 feature timelines
JDK 17 timeline |
gptkbp:performance |
No significant impact.
|
gptkbp:plot_summary |
Enhancements and changes in JDK 17.
Sealed interfaces provide a way to control the implementation of interfaces. Local-variable syntax for lambda parameters improves Java's lambda expressions. |
gptkbp:presented_by |
gptkb:Java_conferences
|
gptkbp:proposed_by |
gptkb:Brian_Goetz
gptkb:Oracle gptkb:Oracle_Corporation JDK community new documentation tools streamline JDK releases |
gptkbp:provides |
better performance
event streaming capabilities better examples in documentation API for event streaming Real-time event streaming capabilities. timeline for JDK 17 Type-safe casting |
gptkbp:published_by |
Java magazines.
|
gptkbp:published_in |
September 2020
September 2021 September 2018. |
gptkbp:reduces |
pause times
|
gptkbp:related_concept |
Java SE.
Sealed classes. |
gptkbp:related_jdk |
gptkb:JDK_11
|
gptkbp:related_jeps |
gptkb:JEP_286
gptkb:JEP_394 gptkb:JEP_12 gptkb:JEP_409 |
gptkbp:related_to |
gptkb:JEP_330
gptkb:JEP_344 gptkb:Java_SE_17 gptkb:Java_Flight_Recorder gptkb:JEP_12 gptkb:JEP_290 gptkb:JEP_326 gptkb:Java_SE_15 |
gptkbp:release_date |
September 2021
|
gptkbp:released |
gptkb:JDK_17
gptkb:Java_SE_10 |
gptkbp:replaces |
Traditional instanceof checks
|
gptkbp:requires |
JDK 17 or later
JDK 16 or later JDK 11 or later JDK 11 or later. Java Development Kit (JDK) 16 or later |
gptkbp:reviews |
gptkb:Brian_Goetz
gptkb:Venkat_Subramaniam gptkb:Mark_Reinhold Completed. Community review. Various members of the Java community. |
gptkbp:specification |
gptkb:Java_Language_Specification
Java Language Specification. |
gptkbp:specifies |
gptkb:Java_Flight_Recorder
|
gptkbp:status |
gptkb:Final
Standard Feature Targeted for JDK 17 |
gptkbp:strategic_goals |
gptkb:Java_2_Platform
|
gptkbp:supports |
modern web standards
Event-driven architectures. event consumers |
gptkbp:target_audience |
Java developers.
|
gptkbp:target_jdk |
gptkb:JDK_17
gptkb:JDK_11 gptkb:JDK_12 gptkb:JDK_15 |
gptkbp:title |
gptkb:JFR:_Event_Streaming
gptkb:JFR_Event_Streaming Java SE 9: Local-Variable Type Inference Local-Variable Syntax for Lambda Parameters Sealed Interfaces Switch Expressions (Standard Feature) ZGC: Concurrent Memory Management Adjustments Switch Expressions (Standard Feature Preview) |
gptkbp:updates |
2018-03-20
|
gptkbp:usage |
Used in Java programming.
|
gptkbp:use_case |
Frameworks and libraries that require strict type hierarchies.
|
gptkbp:user_manual |
Available in Java documentation.
|
gptkbp:was_a_response_to |
the need for better documentation tools
growing complexity of Java APIs |
gptkbp:was_a_result_of |
community-driven initiatives
|
gptkbp:year_created |
2019-09-17
|
gptkbp:bfsParent |
gptkb:JEP_33
gptkb:JDK_10 gptkb:JDK_14 gptkb:Java_10 |
gptkbp:bfsLayer |
5
|