Home » Java » Core Java

Core Java

Project Amber: Smaller, Productivity-Oriented Java Language Features

Brian Goetz‘s recent message Welcome to Amber! introduces Project Amber (part of OpenJDK and proposed originally in January). Goetz opens the message with the introduction, “Welcome to Project Amber, our incubation ground for selected productivity-oriented Java language JEPs.” Goetz reiterates that Project Amber is not for discussing ideas for arbitrary potential new language features, but rather is for collecting new ...

Read More »

The History and Future of Java Programming Language

Solve App Problems 10x Faster with AppDynamics – Monitor production apps at code-level depth with minimal overhead. Start a FREE Trial! As the internet’s renowned programming language, Java has had a profound impact on how people navigate the digital world. Much of what users expect in terms of performance from their devices that access the internet has been set by ...

Read More »

Deprecating Java’s Finalizer

JDK-8165641 (“Deprecate Object.finalize”) has been opened to “deprecate Object.finalize()” because “finalizers are inherently problematic and their use can lead to performance issues, deadlocks, hangs, and other problematic behavior” and because “the timing of finalization is unpredictable with no guarantee that a finalizer will be called.” I recently experienced and wrote about some of these nasty consequences of using Object.finalize() in ...

Read More »

Run Eclipse IDE on One Version of Java, but Target Another

The Eclipse IDE for Java™ Developers (and the other Java developer variants) is itself a Java application that’s used to build Java applications. That relationship can be a bit weird to wrap your brain around. Written almost entirely in Java, the Eclipse IDE requires a Java Runtime Environment (JRE) to run. A JRE provides just the runtime platform: it doesn’t include the ...

Read More »

The ANTLR mega tutorial

Parsers are powerful tools, and using ANTLR you could write all sort of parsers usable from many different languages. In this complete tutorial we are going to: explain the basis: what a parser is, what it can be used for see how to setup ANTLR to be used from Javascript, Python, Java and C# discuss how to test your parser ...

Read More »

Traits and Mixins Are Not OOP

Let me say right off the bat that the features we will discuss here are pure poison brought to object-oriented programming by those who desperately needed a lobotomy, just like David West suggested in his Object Thinking book. These features have different names, but the most common ones are traits and mixins. I seriously can’t understand how we can still ...

Read More »

Java’s Finalizer is Still There

When I was first learning Java and transitioning from C++ to Java, I remember being told repeatedly and frequently reading that one should not treat the Java finalizer like C++ destructors and should not count on it. The frequency and insistent nature of this advice had such effect on me that I cannot recall the last time I wrote a ...

Read More »

How to Handle the Problem of Too Many Classes

During nearly every presentation in which I explain my view of object-oriented programming, there is someone who shares a comment like this: “If we follow your advice, we will have so many small classes.” And my answer is always the same: “Of course we will, and that’s great!” I honestly believe that even if you can’t consider having “a lot ...

Read More »

Using sun.misc.Unsafe in Java 9

The Java 9 EA version is out and we can now see how to use sun.misc.Unsafe. I led the public campaign to retain access to it in Java 9 which was ultimately successful, leading to the amendments to JEP 260. So, how did things end up? Getting Set Up First you need to download Java 9 EA. For an IDE I ...

Read More »

Want to take your Java skills to the next level?

Grab our programming books for FREE!

Here are some of the eBooks you will get:

  • Spring Interview QnA
  • Multithreading & Concurrency QnA
  • JPA Minibook
  • JVM Troubleshooting Guide
  • Advanced Java
  • Java Interview QnA
  • Java Design Patterns