Java Pub House (general)

We finish our discussion on the ObjectOutputStream by covering the SerialVersionUID, and then move onto ObjectOutputStream's citadine cousin, XMLEncoder and Decoder (and why would you go and hang out with it). We also make a quick introduction to "The Bean" (Java Beans that is), and discover there isn't too much to it. If you are persisting and/or transmitting, listen to the shocking conclusion (gasp!) of serialization!

Rate us in  iTunes (
Follow us in Twitter!!/fguime (Serialization/Deserialization) (Compatible/Incompatible serialization changes)

Questions, feedback or comments!

Subscribe to our podcast! (
ITunes link (
Java 7 Recipes book! (

Direct download: JPHE19.mp3
Category:general -- posted at: 10:52pm CDT

We all have the need to serialize/deserialize objects (either through the "wire" or to file). In this podcast we go and analyze what exactly happens when we create an ObjectOutputStream and write to it, and more importantly what pitfalls are there to avoid (Out ot memory errors, stale object updates, Not Serializable Exceptions, and toenail fungus!). If you ever considered using ObjectOutput/InputStream, or are actively using in your current projects, take a listen! (Serialization performance comparison for Java, pick one!)

Questions, feedback or comments!

Subscribe to our podcast! (
ITunes link (
Java 7 Recipes book! (

Direct download: JPHE18.mp3
Category:general -- posted at: 8:04pm CDT

In this episode we go over Aspects (and AspectJ), what really is, and when to use them. It turns out, that there is nothing misterious about them! We also cover how to set-up Aspects for J2SE so you can start using them immediately!

Questions, feedback or comments!

VM Parameter

Example Aspect


public class OrderAspect {

@Before("execution(* *.*(Order))") // must qualify
public void anyCall() {
System.out.println("Was called from anywhere");

Example aop.xml file

<aspect name="OrderAspect"/>
<weaver options="-verbose -showWeaveInfo">

Example Folder Structure



(Using aspects with annotations)

Direct download: JPHE8.mp3
Category:general -- posted at: 3:00pm CDT

In this episode of Java pub house, we talk about Deadlocks, livelocks (and other spooky things). Most importantly we talk on how to spot them (using jstack, or visualvm), and how to program defensively against them. We also talk about escaped locks (the source of most deadlocks), and the wait/notify language construct. Finally we describe the unfairness of the lock (locks are not "fair" by default), and why is it so.

Direct download: JPHE2.mp3
Category:general -- posted at: 12:04pm CDT