6.5 million software developers and still going strong

Java Developer Magazine

Subscribe to Java Developer Magazine: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Java Developer Magazine: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Top Stories

Deployment Methodology 1. Problem Statement We are given a desktop platform with Java 8 or Java 9 installed and seek to find a way to deploy high-performance Java applications that use Java 3D and/or Jogl without having to run an installer. We are subject to the constraint that the applications be signed and deployed so that they can be run in a trusted environment (i.e., outside of the sandbox). Further, we seek to do this in a way that does not depend on bundling a JRE with our applications, as this makes downloads and installations rather long. The novel javapackager command (included in the JDK versions 8 and 9), produces the program installation packages in the range of sizes from 57 to 202 Megabytes approximately. 2. Motivation We have a long history of making use of Java 3D applications in the software engineering community. Since the introduction of Java 3D i... (more)

What Is Polymorphism | @CloudExpo #OOP #JVM #Java #MachineLearning

OOP Concepts for Beginners: What Is Polymorphism By Thorben Janssen The word polymorphism is used in various contexts and describes situations in which something occurs in several different forms. In computer science, it describes the concept that objects of different types can be accessed through the same interface. Each type can provide its own, independent implementation of this interface. It is one of the core concepts of object-oriented programming (OOP). If you're wondering if an object is polymorphic, you can perform a simple test. If the object successfully passes multiple is-a or instanceof tests, it's polymorphic. As I've described in my post about inheritance, all Java classes extend the class Object. Due to this, all objects in Java are polymorphic because they pass at least two instanceof checks. Different types of polymorphism Java supports two types of... (more)

Java 9 Language Features | @CloudExpo #Java #APM #Monitoring

Java 9 Language Features By Philipp Lengauer Java 9 ships with some minor—yet awesome—new language features that make developing easier and cleaner. In this post, we’ll take a look at three of these new features. Private interface methods You probably remember interface methods, which were introduced in Java 8. These are required so that Java itself, as well as framework vendors, can add new methods to interfaces without breaking pre-existing implementations. As these methods can become rather complex, Java now enables you to declare interface methods as private. This allows for extracting common code from interface methods while hiding the code from external use. public interface DeepThought { abstract int foo(); abstract int bar(); default int fooDecorated() { return decorate(foo()); } default int barDecorated() { return decorate(bar()); } private int decorate(int valu... (more)

What Is Java #DevOps? | @DevOpsSummit #CloudNative #Serverless #SDN

What is Java DevOps? Benefits, Considerations, Tutorials and More By Angela Stringfellow DevOps sees the coming together of practices, philosophies, and tools that allow you to create services and applications very quickly. This means that you can improve on your apps and evolve them at a much faster rate than those developers who are using traditional software development processes. We’ve talked about DevOps, in general, a great deal, but today, we’re going to dig a little deeper and take a look at Java DevOps specifically. What Is DevOps? DevOps is simply a portmanteau of software DEVelopment and IT OPerations. It was first called agile operations and involves different disciplines in building, operating and evolving applications and services. Using a DevOps model, you are bringing together your development team and your operations team, and their work is no longer i... (more)

Super Bowl Sunday 2013 – Winners, Losers, and Casualties

No matter which team you were cheering for (or if you even watched the game at all), Super Bowl Sunday 2013 was more than a football game. Since the late 1990s, Super Bowl advertisers have tried to successfully link their TV ads to their online properties, sometimes with mixed results. Even 15 years later, companies can't always predict how well their sites will perform on the big day. But unlike the early days of TV/online campaigns, the problems are more complex than a site going down under heavy traffic. This year, some of the world's premier brands spent millions of dollars on 30 second and one-minute ad blocks (as well as millions for the creation of the ads) during the Super Bowl, all of which were tied directly to online or social media campaigns. However, not all the sites successfully resisted the onslaught of traffic. The measurement results from the Comp... (more)

Finally Getting the Most out of the Java Thread Pool | @CloudExpo #JVM #Java #Cloud

Finally Getting the Most out of the Java Thread Pool By Eugen Paraschiv First, let's outline a frame of reference for multithreading and why we may need to use a thread pool. A thread is an execution context that can run a set of instructions within a process - aka a running program. Multithreaded programming refers to using threads to execute multiple tasks concurrently. Of course, this paradigm is well supported on the JVM. Although this brings several advantages, primarily regarding the performance of a program, multithreaded programming can also have disadvantages - such as increased complexity of the code, concurrency issues, unexpected results and adding the overhead of thread creation. In this article, we're going to take a closer look at how the latter issue can be mitigated by using thread pools in Java. Why Use a Thread Pool? Creating and starting a thread ... (more)

Java Heap Space vs. Stack Memory | @CloudExpo #JVM #JRE #Java #AI #DX

Java Heap Space vs. Stack Memory: How Java Applications Allocate Memory By Angela Stringfellow Java applications need a certain amount of RAM on a computer to run. Each time an object or variable is declared, it needs more RAM. Simply designating enough memory to hold every value declared and run each method would lead to a bloated application. To keep application memory requirements lean, it is partitioned in ways that require less memory and allows the application to run more quickly. The Java Virtual Machine (JVM) divides memory between Java Heap Space and Java Stack Memory in a way that only uses memory that's needed. What Is Java Heap Space It is created by the Java Virtual Machine when it starts. The memory is used as long as the application is running. Java runtime uses it to allocate memory to objects and Java Runtime Environment (JRE) classes. When an object i... (more)

Java Virtual Machine | @CloudExpo @Stackify #DX #JVM #Java #Virtualization

A Deep Dive into the Core Metrics of the Java Virtual Machine By Eugen Paraschiv Overview of JVM Metrics In this article, we'll cover how you can monitor an application that runs on the Java Virtual Machine by going over some of the critical metrics you need to track. And, as a monitoring tool, we'll use Stackify Retrace, a full APM solution. The application we'll monitor to exemplify these metrics is a real-world Java web application built using the Spring framework. Users can register, login, connect their Reddit account and schedule their posts to Reddit. How JVM Memory Works There are two important types of JVM memory to watch: heap and non-heap memory, each of these with its own purpose. The heap memory is where the JVM stores runtime data represented by allocated instances. This is where memory for new objects comes from, and is released when the Garbage Colle... (more)

Accelerate 'Real-World' Internet of Things By @AgilePoint | @ThingsExpo [#IoT]

AgilePoint booth at @ThingsExpo Silicon Valley 2014 was packed for three days! Download Slide Deck: ▸ Here The Internet of Things (IoT) promises to evolve the way the world does business; however, understanding how to apply it to your company can be a mystery. Most people struggle with understanding the potential business uses or tend to get caught up in the technology, resulting in solutions that fail to meet even minimum business goals. In his session at @ThingsExpo, Jesse Shiah, CEO / President / Co-Founder of AgilePoint Inc., showed what is needed to leverage the IoT to transform your business. He discussed opportunities and challenges ahead for the IoT from a market and technical point of view, including the various connectivity technologies, microcontrollers and processors available with a strong focus on applications. He also showed how to get starte... (more)

A Practical Guide to Java Remote Debugging | @CloudExpo #JVM #Java #Cloud

A Practical Guide to Java Remote Debugging By Eugen Paraschiv Introduction to Debugging Troubleshooting a problem on a remote server, especially in production, is not an easy task. Sometimes it involves debugging the application code directly on the server. But the production servers are usually run in a strict environment, where not all convenient developer tools are available. In this article, you'll discover how to configure a running web server and debug your application using standard facilities provided by the Java platform. Caveats First off, if you try to connect to a remote running Java server which you did not specifically configure for debugging, you'd most likely fail. This means that the configuration steps should be taken in advance. On the other hand, you wouldn't want to always keep the production server running with debugging configuration enabled, a... (more)

Solving the XML Problem with Jackson | @CloudExpo #API #Java #JSON #Cloud

Solving the XML Problem with Jackson By Eugen Paraschiv Jackson is a popular library for handling JSON in Java applications, quickly becoming the de-facto standard in the ecosystem. Starting with version 2, it has also introduced a mature XML implementation alongside its established JSON support. Adding Jackson XML to the Project Adding the Jackson XML module to the project only needs a single dependency - the Jackson XML module itself: com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.9.0 And in Gradle: compile "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.9.0" This will automatically pull in all of the other Jackson dependencies that are needed: Jackson Core Jackson Annotations Jackson Databind Jackson Module JAXB Annotations Woodstox StAX Implementation Not... (more)