JEP 361

GPTKB entity

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