BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Java Content on InfoQ

  • Interview and Book Review: Java in a Nutshell, 6th Edition

    Java in a Nutshell, 6th Edition by Benjamin J. Evans and David Flanagan is an update to the tried-and-true Java in a Nutshell series. This edition covers Java 8 for the experienced Java Developer, but it is also designed as a learning path for new developers.

  • The OpenJDK Revised Java Memory Model

    The existing Java Memory Model covers a lot in terms of Java language semantic guarantees. In this article we will delve into a few of those semantics, and attempt to communicate the motivation for an update to the existing Java Memory Model

  • Interview and Book Review: BDD In Action

    "BDD In Action" is a book that aims to cover the full spectrum of BDD practices from requirements through to the development of production code backed by executable specifications and automated tests.

  • Deploying Microservices to AWS at Gilt: Introducing ION-Roller

    Over a period of seven years, gilt.com has grown from an e-commerce start-up running a monolithic Ruby on Rails application to $1B luxury goods company operating a cloud-based microservice platform utilising Scala, Docker and AWS. This article introduces Gilt's ION-Roller continuous deployment application, and explains the history and motivations that lead to the creation of this tool.

  • Cloud Native Architectures - a Conversation with Matt Stine

    Rags Srinivas caught up with Matt Stine at the O'Reilly Architecture conference in Boston, MA. Matt talks about Cloud Native Architectures and some of the cultural and technological challenges. He talks about some of the NetFlix services and how Spring is wrapping it up to be able to architect and develop microservices on the platform. He also talks about SOA and what it probably missed out.

  • Concise Java

    Unix pioneer Ken Thompson once said, “one of my most productive days was throwing away 1000 lines of code.” In this article Cas Saternos highlights practices now possible for writing concise Java code, with a special focus on the new functionality available in JDK 8. Shorter, more elegant code is possible due to the inclusion of Lambda Expressions in the language.

  • Functional-Style Callbacks Using Java 8's CompletableFuture

    The innovation of parallel streams in Java 8 has diverted attention from a very substantial addition to the concurrency library, the CompletableFuture class. Author Maurice Naftalin eloquently explores CompletableFuture, why it is so useful in programming systems that depend on the interaction of asynchronous tasks, and how it complements fork/join-style parallelism, including parallel streams.

  • You’ve Completed Unit Testing; Your Testing has Just Begun

    Stopping testing your code when your unit tests all pass is like starting mass production of automobiles after testing the nuts and bolts. Integration testing guarantees that the collaboration of classes works. This article investigates some important techniques in integration testing.

  • Secrets of the Bytecode Ninjas

    The Java language is defined by the Java Language Specification. But the executable bytecode of the Java Virtual Machine is defined by a completely separate standard, the Java Virtual Specification, and the two are often at odds. In this article we take a look at the structure of a class file and how to create class files directly without starting from Java source, using the ASM library.

  • Go for the Money! JSR 354 Adds First Class Money and Currency Support to Java

    First class money and currency support in Java are almost here. In this article Credit Suisse's Anatole Tresch JSR 354 spec lead, discusses the shortcomings of the legacy currency and money support, motivation for the new APIs, and lots of examples.

  • Highly Distributed Computations Without Synchronization

    Synchronization of data across systems is expensive and impractical when running systems at scale. Traditional approaches for performing computations or information dissemination are not viable. In this article Basho Sr. Software Engineer Chris Meiklejohn explores the basic building blocks for crafting deterministic applications that guarantee convergence of data without synchronization.

  • Scala in Large Scale Systems

    This is the first installment in a series about using Scala for large-scale data stores and analytics. Dave Hrycyszyn speaks to Andrew Jayne, senior software engineer at McLaren Applied Technologies, about the experience of building a custom high-performance data store in Scala.

BT