Category : Design

The Singleton (Wiki) pattern is quite an old and well known pattern. This pattern was discussed over and over again in many books and articles on the web. So why are we discussing it again here? This article is not about the Singleton pattern per se, but more about the Java Memory Model (Paper) and the concurrent access of shared objects.

Albert Attard
Author: 3 years ago

Defensive copying is a technique which mitigates the negative effects caused by unintentional (or intentional) modifications of shared objects. As the title indicates, instead of sharing the original object, we share a copy of it and thus any modification made to the copy will not affect the original object.

Albert Attard
Author: 3 years ago

This tutorial demonstrates how to develop a simple Java Swing (or user interface) application and test the UI related logic using automated tests, such as JUnit (Homepage), using a series of videos compiled as a playlist (Youtube). The application is kept very simple while making use of various technologies, such as EasyMock (Homepage). This tutorial is targeted to college or university students who studied Java but lack experience and would like to do something productive. The main idea of this tutorial is not to learn Java, but to help the viewers to build testable Swing applications. The playlist presented by this tutorial shows how to build a Java Swing application that can be easily tested using automated tests in a step-by-step fashion.

Albert Attard
Author: 4 years ago

Programs work well when dealing with a considerable size of data, but their performance tend to degradate when dealing with large volumes of data. Resources are cheaper than ever, but this does not mean that we can have inefficient programs. Dealing with large amounts of data brings several challenges, even if the task is simple parsing some Java objects into JSON strings, as we will see in this article. Inefficient use of memory can make a program wasting more than 5 times the memory when compared with a more efficient one. This means that one program makes use of 1G of memory, while the inefficient one requires 5G of memory to perform the same task.

Albert Attard
Author: 4 years ago

This tutorial demonstrates how to develop a Java application that connects with a database and provides a user interface and is targeted to students who studied Java, but lack experience. This tutorial assumes basic knowledge of Java and it describes everything in great detail. The main idea of this tutorial is not learn Java, but to help the viewers to gain experience in developing Java applications. During the tutorial we explore various technologies, such as Maven (Homepage). These technologies are quite popular amongst developers communities and are considered as good traits when applying for jobs.

Albert Attard
Author: 4 years ago

Object Oriented Programming changed the way we build programs. It enabled us to create rich objects encapsulating both scope (fields) and logic (methods). While all modern programming languages, such as Java (Homepage), support objects (and object oriented programming), many implementations make pure use of them. In this article we will see how objects can be used to our advantage and how to think in an object oriented way.

Albert Attard
Author: 4 years ago