Java
We track 54 posts about Java from 22 engineering blogs. Most active: Nicolas Fränkel, jOOQ, Vanilla Java. Latest post: Oct 4, 2026.
Companies writing about Java
Recent posts
Security Baked Into the JVM: no single party controls the outcome (opens on the source site)
A URL is a name, and names get reused. Replace the bytes behind https://repo.example.org/order-processor.jar and every permission granted to that URL still applies, now to code nobody audited. So far in this series, Part 1 declared constraints on a remote call, Part 2 vetted code before a client loaded it, Part 3 established who is calling, and Part 4 carried that chain of identities across the wire.
Honey, I Shrunk Java (opens on the source site)
ParparVM translates its compiler with 37.5% less time and 45.8% less peak memory in the Linux ARM64 baseline. See the object, compiler and GC changes behind it.
A Smaller, Faster Java Server with a Spring-Style API (opens on the source site)
Build a smaller native Java service with Spring-style transactions and dependency injection. Inspect the generated code and compare local Linux startup, memory, throughput, binary size and build time.
Stop Using Java When Kotlin Exists (opens on the source site)
Despite its many flaws, Java is a fantastic language for a variety of reasons. It’s portable, runs on every device and hosting provider, and is easy to learn. It even has pretty good performance in many aspects due to its just-in-time compiler (which has been recently updated!). On top of that, it’s also incredibly popular. […] The post Stop Using Java When Kotlin Exists appeared first on Atomic Spin.
WebSocket Support for Your Java Backend (opens on the source site)
Add live updates with Java WebSocket endpoints for text and binary messages. Learn the API, connection limits, and how we use it in device-test CI.
zBalls: a 1998 Java Applet (opens on the source site)
In January 1998, a classmate and I wrote a game. It was called “Bolongas zBalls”, and it was a Java applet. You click to start, then move the mouse, without clicking. Touch the dark ball to blow it up, and the next ball turns dark. Clear them all and the next level doubles the number of balls. Touch a plain ball and it spawns another one, so if you’re sloppy, the balls multiply until you lose. Each level has a time limit. The intro music is the theme song from Capitaine Flam, the French version of the Japanese cartoon Captain Future, which aired on TF1 in 1981. I honestly don’t remember why…
Leave the Class Path in the Rearview Mirror (opens on the source site)
Netflix ·
Introducing composable, module system native and agent friendly command line tools for modern Java developmentBy Danny Thomas, JVM Ecosystem TeamRecent work on the Java language to pave the on-ramp has made it easier than ever to start a Java program and evolve it using the full language and platform. At the end of that on-ramp lies Java’s mature build and dependency management ecosystem, capable of carrying software to enormous scale and complexity.That ecosystem reached its maturity by developing strong models for projects, dependencies, and builds. When the Java Module System arrived,…
What Go Taught Us About Java Garbage Collection (opens on the source site)
A Go performance comparison led us from stack allocation to GC pacing, parallel marking, and image caches. ParparVM can explore those choices while keeping ordinary Java APIs.
The good ol’ days of building Java (opens on the source site)
Ryan sits down with Tim Lindholm, an early contributor to the Java language at Sun Microsystems, to chat about what it was like building one of the most popular programming languages ever at its inception, why it was strategically important for the Java team to create a cross-platform ABI to compete with Windows NT, and how applets were initially just an interesting demo.
Java JVM CPU and Memory Requests and Limits in Kubernetes (opens on the source site)
Learnk8s ·
Setting Kubernetes CPU and memory requests and limits for a JVM service is four coupled decisions: container memory, heap size, GC selection, and CPU quota. Use the calculator to explore the space.
App Intents: One Java Declaration for Siri, Spotlight, and Shortcuts (opens on the source site)
Codename One App Intents generate reflection-free handlers for Siri, Spotlight, Shortcuts, Android launcher shortcuts, and an application command layer from Java annotations.
One Java API for HomeKit, Matter, and Google Home (opens on the source site)
Codename One now exposes smart-home accessories, traits, scenes, change subscriptions, and Matter commissioning through one capability-driven API with native and simulated backends.
Security Baked Into the JVM: sixteen Subjects on the wire (opens on the source site)
Alice calls the order service. The order service calls the ledger on her behalf. At the second hop, the ledger has to decide whose authority the debit is being made under. Most stacks answer badly. Forward Alice’s bearer token verbatim, and the ledger cannot tell her from the service that relayed it. Drop the token and the ledger sees a machine, with no record that a human started the chain. Neither option lets the ledger authorize the combination.
Using the GitHub Copilot SDK for Java (opens on the source site)
GitHub ·
Enterprise Java developers have a new superpower—drive GitHub Copilot from idiomatic Java code with annotations, virtual threads, and more. The post Using the GitHub Copilot SDK for Java appeared first on The GitHub Blog.
Security Baked Into the JVM: two Subjects, one call (opens on the source site)
The constraint system stops a bad call before it leaves the JVM. The Safe Codebase Audit Pipeline stops bad code before a client ever loads it. What remains is identity: who is calling, and can you verify it? Most frameworks answer with a token check at the door. A filter validates a bearer token, sets a thread-local variable, and hopes that nothing downstream forgets to look at it. DirtyChai answers differently.
Security Baked Into the JVM: the Safe Codebase Audit Pipeline (opens on the source site)
In Part 1, the minimal deployment showed constraints traveling with the proxy: authentication, encryption, hardened deserialization, all declared in configuration and enforced at the call boundary. The proxy is a JAR. That JAR was downloaded and unmarshalled before any constraint ran. That step is the earlier problem. Distributed Java systems that load remote code are vulnerable to supply chain compromise: an attacker can replace a legitimate JAR with one containing malicious bytecode.
Making ServiceLoader usable: a provider factory (opens on the source site)
I keep coming back to java.util.ServiceLoader. I have used it to put a JSON layer behind a contract, so the core code carries no direct dependency on any particular JSON library, and I can swap the implementation without touching callers. The same shape works for JWT handling, where the concrete library might be jose4j or another JOSE implementation, and you can easily find other decoupling use-cases.
Security Baked Into the JVM: why fork Apache River and OpenJDK? (opens on the source site)
The more distributed a system, the harder it is to secure. Code crosses JVM boundaries. Objects are serialized across trust boundaries. Third-party proxies run inside your process. The usual answer is a network firewall. It helps, but it operates at the wrong level. Java 17 deprecated the SecurityManager, Java 24 put the final nail in its coffin. Most developers didn’t notice.
On programming languages, targets, and platforms (opens on the source site)
I started as a Java developer, but for some time now, I have broadened my horizons. Recently, I thought about how early languages were dedicated to a single target and platform, and now they are broadening their focus. In this post, I want to write down my thoughts in the hope that it may be useful to others, probably to my future self. Definitions You may have been wondering about the title terms.
double, BigDecimal, or Fixed-Point? (opens on the source site)
There is an evergreen debate in the Java world: should you always use BigDecimal for money? The short answer is no. The real answer is: it depends on your computational context: the precision you need, the rounding rules you must follow, and the performance budget you have. The problem is that this conversation is often driven by dogma rather than engineering.
Testing Java Memory Management with Chronicle-FIX using AI (opens on the source site)
While I am sceptical of using AI for release code, it has plenty of uses that previously weren’t practical, such as determining how easy your software is to use. If an AI can “figure it out” with a few hints, then you are on the right track. For me, the value of AI is what you learn using it. For more Techincal Information on Chronicle-FIX What AI Does Well and What It Doesn’t Claude and Codex are effective for producing idiomatic code; for low-latency code, it needs a significant body of example code. In this case, it was able to utilise sample code for benchmarks. If it was being used to…
Testing Java Memory Management with Chronicle-FIX using AI (opens on the source site)
While I am sceptical of using AI for release code, it has plenty of uses that previously weren’t practical, such as determining how easy your software is to use. If an AI can “figure it out” with a few hints, then you are on the right track. For me, the value of AI is what you learn using it. For more Techincal Information on Chronicle-FIX What AI Does Well and What It Doesn’t Claude and Codex are effective for producing idiomatic code; for low-latency code, it needs a significant body of example code. In this case, it was able to utilise sample code for benchmarks. If it was being used to…
Book Review – Troubleshooting Java (opens on the source site)
Introduction My friend, Laurentiu Spilca, has been working on the second edition of his Troubleshooting Java book, and when I was asked to review it, I was more than happy to do it since the book features a lot of topics that I’m also very interested in, such as performance tuning and query optimization. Audience This book is useful for any Java developer because it teaches you how to get the best out of your IDE debugger, as well as showing you how to profile Java applications and fix very complex issues,... Read More The post Book Review – Troubleshooting Java appeared first on Vlad…
Let's Take a Look at... Lower Java Tail Latencies With ZGC (opens on the source site)
Table of Contents ZGC Allocation Stalls Summary In the "Let’s Take a Look at…!" blog series I am exploring interesting projects, developments and technologies in the data and streaming space. This can be KIPs and FLIPs, open-source projects, services, relevant improvements to Java and the JVM, and more. The idea is to get some hands-on experience, learn about potential use cases and applications, and understand the trade-offs involved. If you think there’s a specific subject I should take a look at, let me know in the comments below. Java 25 was released earlier this week, and it is the…
Consider using JSON arrays instead of JSON objects for serialisation (opens on the source site)
jOOQ ·
When implementing the awesome MULTISET operator in jOOQ, its implementation mostly relied on SQL/JSON support of various RDBMS. In short, while standard SQL supports nested collections via ARRAY or MULTISET operators like this: This is poorly supported in most RDBMS, so jOOQ emulates it using SQL/JSON as follows (or similar): Wait a second. A JSON … Continue reading Consider using JSON arrays instead of JSON objects for serialisation →
Converting Future to CompletableFuture With Java Virtual Threads (opens on the source site)
This post explores how virtual threads in Java 21+ provide an elegant solution for converting legacy Future objects into CompletableFuture instances. Since Java 8, the CompletableFuture API provides a convenient way for performing asynchronous operations in a functional, composable way. This makes it very simple to call some long-running methods—for instance involving external I/O—asynchronously and process each result as soon as it is available, without blocking on any threads:
Data Modeling for Java Developers: Structuring With PostgreSQL and MongoDB (opens on the source site)
Application and system designs have always been considered the most essential step in application development. All the later steps and technologies to be used depend on how the system has been designe... The post Data Modeling for Java Developers: Structuring With PostgreSQL and MongoDB appeared first on DEV.
Foundations of AI and Machine Learning for Java Developers Course Review (opens on the source site)
Introduction In this article, I’m going to review the Foundations of AI and Machine Learning for Java Developers video course from my fellow Java Champion, Frank Greco. If you are new to AI and ML and want to get a great introduction to these topics, then you should definitely join watch the video lessons created by Frank Greco. And, thanks to LinkedIn Learning’s generosity, until June 20, you can enroll in this video course for free. Video Course Agenda The course provides one hour and thirty-five minutes of video lessons that are... Read More The post Foundations of AI and Machine Learning…
Programming Conference – Jfokus Stockholm 2025 (opens on the source site)
This week I attended the Jfokus software development conference in Stockholm, Sweden. I first went in 2011, and I have been back many times through the years. The conference has a Java focus (duh!), but many talks cover general topics … Continue reading →
Hands-On Career: The Evolution of a Java Champion (opens on the source site)
Table of Contents Introduction Superhuman Intelligence Is Already Here ATMs Didn’t Replace Bank Tellers About Me Multidimensional Growth Areas of Career Development Scope of Consideration Roles Where All Areas Are Important The Range of a Founder’s Role How Will AI Change Development? How You Ask the Question Changes the Result Some key terms in understanding how Generative AI works Estimating the Value of AI-Generated Documentation AI and the Reverse Baltimore Phenomenon The Baltimore Phenomenon The Reverse Baltimore Phenomenon Filling a void Brainstorming Ideas Sample Project 2048 Using…
Related topics
This page is generated automatically from the engineering blogs we follow. Every post links to its source, where it was published. See all sources.