Java Platform, Enterprise Edition

Java EE Journal

Subscribe to Java EE Journal: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Java EE Journal: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Top Stories

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)

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)

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)

Mistakes to Avoid When Handling Java Exceptions | @CloudExpo #Java #Cloud #Analytics

Seven Common Mistakes You Should Avoid When Handling Java Exceptions By Thorben Janssen Handling an exception is one of the most common but not necessarily one of the easiest tasks. It is still one of the frequently discussed topics in experienced teams, and there are several best practices and common mistakes you should be aware of. Here are a few things you should avoid when handling exceptions in your application. Mistake 1: Specify a java.lang.Exception or java.lang.Throwable As I explained in one of my previous posts, you either need to specify or handle a checked exception. But checked exceptions are not the only ones you can specify. You can use any subclass of java.lang.Throwable in a throws clause. So, instead of specifying the two different exceptions that are thrown by the following code snippet, you could just use the java.lang.Exception in the throws cla... (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)

The i-Technology Right Stuff

Related Links: Wanted: 19 More of the Top Software People in the World Sung and Unsung i-Technology Heroes Who's Missing from SYS-CON's i-Technology Top Twenty?" Our search for the Twenty Top Software People in the World is nearing completion. In the SYS-CON tradition of empowering readers, we are leaving the final "cut" to you, so here are the top 40 nominations in alphabetical order. Our aim this time round is to whittle this 40 down to our final twenty, not (yet) to arrange those twenty in any order of preference. All you need to do to vote is to go to the Further Details page of any nominee you'd like to see end up in the top half of the poll when we close voting on Christmas Eve, December 24, and cast your vote or votes. To access the Further Details of each nominee just click on their name. Happy voting!   In alphabetical order the nominees are:   Tim Berner... (more)

Secrets Of The Masters: Core Java Job Interview Questions

JDJ's Enterprise Editor, Yakov Fain (pictured) writes: If you are planning to hit the job market,  you may need to refresh some of the Java basic terms and techniques to prepare yourself for a technical interview. Let me offer you some of the core Java questions that you might expect during the interviews.  For  most questions  I’ve provided only  short  answers to encourage further research.  I have included only  questions for mid (*) and senior level (**) Java developers. These sample questions could also become handy for people who need to interview Java developers (see also the article "Interviewing Enterprise Java Developers"). Disclaimer. This article has been originally published three or four years ago, hundreds of thousands Java developers have read it, but I still use some of these questions while interviewing Java developers. Guess what? Every other Jav... (more)

i-Technology's All-Time Top 100?

Gene Amdahl: Implementer in the 60s of a milestone in computer technology: the concept of compatibility between systems Marc Andreessen: Pioneer of Mosaic, the first browser to navigate the WWW; co-founder of Netscape John Vincent Atanasoff: Inventor of an electronic computer in the late 1930s not for fun or glory, but because he had problems for it to solve Charles Babbage: Lucasian Professor of Mathematics at Cambridge in 1828; inventor of the 'calculating machine' John Backus: Inventor (with IBM) of FORTRAN (FORmula TRANslator) in 1956 Ralph Baer: "The man who invented video games" (Pong) Kent Beck: Creator of JUnit and pioneer of eXtreme Programming (XP) Bob Bemer: One of the developers of COBOL and the ASCII naming standard for IBM (1960s) Tim Berners-Lee: "Father of the World Wide Web" and expectant father of the Semantic Web D J Bernstein: Author of qmail Jos... (more)

Who Are The All-Time Heroes of i-Technology?

I wonder how many people, as I did, found themselves thrown into confusion by the death last week of Jean Ichbiah (pictured), inventor of Ada.  Learning that the inventor of a computer programming language is already old enough to have lived 66 years (Ichbiah was 66 when he succumbed to brain cancer) is a little like learning that your 11-year-old daughter has grown up and left home or that the first car you ever bought no longer is legal because it runs on gasoline in an age where all automobiles must run on water. How can something as novel, as new, as a computing language possibly already be so old-fangled that an early practitioner like Ichbiah can already no longer be with us? The thought was so disquieting that it took me immediately back to the last time I wrote about Ichbiah, and indeed about Ada Lovelace for whom his language was named. It was in the context ... (more)

Oracle-Sun: Jonathan Schwartz Writes His Toughest Ever Email

"To me, this proposed acquisition totally redefines the industry," wrote Jonathan Schwartz this morning to Sun's employees in a company-wide email announcing the acquisition of Sun by Oracle. Among other remarks, Schwartz adds: "Let me assure you [Oracle is] single minded in [its] focus on the one asset that doesn't appear in our financial statements: our people." Here is the email in full: From: Jonathan I. Schwartz To: allsun@sun.com Subject: Today's Sun/Oracle Announcement Date: Mon, 20 Apr 2009 04:34:16 -0700 (07:34 EDT) Today's Sun/Oracle Announcement This is one of the toughest emails I've ever had to write. It's also one of the most hopeful about Sun's future in the industry. For 27 years, Sun has stood for courage, innovation, a willingness to blaze trails, to envision and engineer the future. No matter our ups and downs, we've remained committed to those ideals... (more)

X-oops, I did it again

(LinuxWorld) — One of my non-profit Web sites, VarLinux.org, ran on my modified version of the PHP-Nuke weblog package from the site's inception in March 2001 until late November 2002. I chose PHP-Nuke as a starting point because I was very impressed with it. However, the more I learned how to use PHP, the more I realized that PHP-Nuke was not only a tangled mess but that I had made it even worse with my modifications. A year later, I was faced with the fact that VarLinux.org was not only lame because it was based on PHP-Nuke, it was also showing its age. It lacked features of other weblogs, and still lacked many of the features I had intended to add to the site. If I were going to fix the code, the first thing I would do would be to make it an object-oriented system. I toyed with the idea of converting my code into OOP-based code, but I concluded that if the P... (more)