Showing all posts with the category : Core Java

Core Java

Podcast 16: Java Versions again

23-Apr-2019 in Podcasts Core Java

Matt and Richard talk again about the mess that is Java versions, plus a bit about what we're working on and what's coming next at Virtual Pair Programmers


Coming soon...


Podcast 15: Spark Core, Spark SQL and Spark ML

31-Oct-2018 in Podcasts Core Java

Richard came into the office this morning in a real mood, had a rant, and so we decided to do a podcast today! It's all about Apache Spark this time.


Matt:Hello and welcome to podcast number 15. This is an unscheduled extra podcast. We hadn't planned to do this today, but Richard walked into the office this morning, huffing and puffing, in a right mood, and had a real rant, and I thought that was too good an opportunity to not try and record some of it for the benefit of our listeners out there.

Richard:Right. Yes. I am in a bad mood, but I'm also supposed to be on holiday after doing my release. So, I'm in an even worse mood now that you're making me do a podcast. So, I'm going to sit here, and say nothing.

Matt:Well, we'll see how long that lasts, won't we? Anyway, welcome. I'm Matt. That was Richard, who's now sitting here growling at me, and welcome to our latest podcast. I guess we should start, then, with what you were just saying, Richard, which is that we have just released a course. I'm using the royal "we" there.

Richard:Have we?


Podcast 14: Java 11 is here

02-Oct-2018 in Podcasts Core Java

It's been a while but the latest podcast is now here... just after the official releaes of Java 11. Find out whether Java 11 is worth paying for, and whether you should be rushing to upgrade. We'll also mention what we're working on (SparkSQL and Spark Machine Learning)...


Matt:We're recording.

Richard:We are recording. And, I assume you're going to do the fancy ...

Matt:Hello! And, welcome. This is the fancy introduction that you wanted, Richard. Hello, and welcome to podcast number 13. And, can I start ... No, number 14.


Matt:Oh my goodness. This is going to be a disaster. I also want to apologise to the poor people who've got to subtitle this podcast, 'cause it's always difficult when people are laughing and talking over laughing. So, to our great subtitlers out there, apologies for that, or transcribers rather, anyway. Oh, this is a disaster.

Richard:We pay a fortune for the subtitles, so ... We do. It costs a fortune. So, I'm not sorry. Let's make it contrafibularities to our subtitles.

Matt:Oh, dear.


Podcast 13: Java news roundup

10-May-2018 in Podcasts Core Java Kotlin

Java news - will Oracle sue us for using the Java name? Java 10 is live with a big new feature (local variable type inference) and JavaEE is now JakartaEE.

Plus some talk about upcoming courses - Kotlin Programming and Kubernetes.

Should VirtualPairProgrammers do more front end work, particularly JavaScript frameworks like Angular (A: yes)

Here's the link to the survey we discuss: The State of Java in 2018


Matt:Hello, and welcome to podcast number 13 in the All Things Java series. Some would say that's unlucky for some. Hopefully, not unlucky for us or our listeners.

Richard:It will be unlucky for me, I think.

Matt:I'm Matt Greencroft.

Richard:Rich Chesterwood.

Matt:Good to see you, Richard, after I wouldn't let you out for the last podcast. You were busy away working on updating our courses, so we had a few complaints, I think, from our avid listeners that they missed your voice.

Richard:Yeah, really. Yeah.


Podcast 12 : Java vs Scala

19-Apr-2018 in Podcasts Core Java

Matt’s alone in the studio today – Richard is busy working on updating our courses, so Matt took the opportunity to interview Jon Humble, principle engineer at Sky Betting and Gaming. Find out about the technology stack Jon uses to support systems dealing with huge volumes of data and how they decide whether to use Scala or Java for different jobs.



Matt:Hello, and welcome to podcast number 12 of All Things Java. I'm Matt Greencroft. Apologies for the little pause there. Normally at this point, my college Richard Chesterwood would jump in and say, and I'm Richard Chesterwood but I'm all alone this week. He's not here. Actually, Richard has been busy working updating some of our courses. You may be aware that on quite a few of our courses we show you how you can use Amazon's EC2 Instances to deploy your work onto a cloud based infrastructure. Well, unfortunately for us, Amazon have changed somethings recently, which has meant that we've needed to update some of our videos to make sure that they work with Amazon's newer versions. So, I've locked Richard away in the recording studio for the last few weeks, getting everything right, but I promise I am going to let him out to join in the next podcast. I should perhaps also apologise for the delay in releasing this podcast. We have been super busy over the last couple of months but we'll try to do our best to get a bit more regular from now on.

So I'm actually not quite alone this month. In the studio today we've got Jon Humble with us. Jon works for one of the largest tech employers in our local area called Sky Betting and Gaming. Jon is one of their principle engineers and he's a real expert in Scala, Acca, Erlang and agile programming in general. So thank you very much Jon for joining us in the studio today.


Podcast 8 : Java 9 is Here!

28-Sep-2017 in Podcasts Core Java

Matt and Rich run through what they think are the exciting features of Java 9, but they're not allowed to mention Jigsaw.

What will Richard find to moan and rant about most this week? Java's new genius numbering system? Or people who want to keep their lists mutable?


Richard:So welcome to, we think it's number eight of “All Things Java” from Virtual Pair Programmers. Around the table are ...

Matt:Matt Greencroft, nice to speak to you again Richard.

Richard:I'm Richard Chesterwood. So, this week, I think, Matthew is all excited because he wants to talk about Java 9 - obviously the big news in Java.


Podcast 7 : Design Patterns Special

30-Aug-2017 in Podcasts Core Java Design Patterns

This week Richard has a rant about everybody's favourite design pattern. You won't believe which one it is. This podcast is slightly more entertaining than the Gang of Four book. Even Grady Booch gets a mention!


Matt:Hello and welcome to number 7 of the All Things Java podcast! I am Matt Greencroft.

Richard:And I'm Richard Chesterwood.

Matt:If you have listened to the first six and you're still with us, hopefully that means we're doing something right. Thank you for staying with us.

Richard:I thought we'd do one and then get bored, so I'm amazed we're still here.

Matt:Well we're going to have to stay doing it for a bit longer, because I've spent quite a bit of time this week getting this podcast onto iTunes, TuneIn, and Stitcher, which has been a little bit of a task. This needs to be worth the effort, so we've got to stay doing at least a few more of these, or I'll be a bit-


Java Advanced Tools - Errata for Thread Safety

04-Jul-2017 in Errata Core Java Threading

In Chapter 20 of the Java Advanced Topics course (the video on Synchronization and Thread Safety), at about 20 mins 15 seconds, I explain that you tend to use the synchronized keyword with the smallest possible code block. I demonstrate this with the following code:


Java 9 – custom Runtimes… would you actually use them?

21-Jun-2017 in Core Java

Last month I posted about the issues affecting the Jigsaw (modular Java) features within Java 9. As we approach the release of Java 9 (which we currently expect to be at the end of July, but who knows if it will be delayed again?), this time I thought I should talk about one of the other features of Java 9, creating your own custom Java Runtime Environments.

The idea is that the Java Runtime Environment (JRE) has been split into a number of modules in Java 9 (see the last blog post for details about what we mean by modules). So when you build your own applications, the users who will run them don’t necessarily need the entire JRE, but could use a cut-down version. I’ll talk in a paragraph or so about why you might want to do this.


The latest on Java 9... will it be delayed, features removed, or released with problems?

11-May-2017 in Core Java

In case you’ve not been following the progress of the next release of Java SE,  Java 9, we thought we should let you know what the current status is (or at least our current understanding of it!).

As you might expect, the next version of Java will have some changes in it from the earlier versions. By far the biggest, is the introduction of Jigsaw, an API for building modular applications. Some have described this as a bigger change for Java than when generics were introduced back in Java 5.

If you’re not familiar with modular applications, then in simple terms the idea is that you can split larger applications into smaller parts (modules). Each module can depend on / use other modules, but they’re built as separate projects, and compiled into separate Jar files. There are quite a few potential benefits to this approach, but perhaps the most useful is that if you need to change a single module, you can do that without needing to amend or recompile any of the other modules. There's more to it than this, but that's a very simple high level overview.


Java 8 Time - choosing the right object

01-Dec-2014 in Core Java

In the last blog post, we looked at the java.time library’s Instant and Duration objects in Java 8. In this second post, we’ll get an overview of some of the other objects within the java.time libraries.

The Instant object is defined in the JavaDocs as “An instantaneous point on the time-line.” There are other objects, related to the Instant, that might also be useful to us – in particular LocalDateTime, LocalDate and LocalTime and ZonedDateTime.

I’ll ignore LocalDate and LocalTime for the moment, and consider LocalDateTime, ZonedDateTime and Instant... all three of these appear to be quite similar, so it’s worth understanding how each differs.


Do the new Java 8 Date and Time objects make 3rd party date libraries redundant?

20-Nov-2014 in Core Java

This is the first of two blog posts which are a follow up to Virtual Pair Programmers’ popular Java Fundamentals training course. This course was written with Java 7, and while everything in the course is still valid for Java 8, I thought a blog post about dates and times was worthwhile.

There are other changes in Java 8, although I’d say that these don’t affect the fundamentals. The biggest change is the introduction of lambda expressions, and I’m currently working on an “Advanced Java” course for Virtual Pair Programmers, which will cover this amongst other topics…. more on that later!


Java Fundamentals - follow up post on Automatic Resource Management

06-Dec-2013 in Errata Core Java

This is the second of two follow up videos for the Java Fundamentals course. In this video, I take the Java try with resources statement a little bit further to tidy up the code we created in chapter 26 of the course. 

The video is hosted on youtube - for best viewing results, watch in full screen and choose the HD quality option if that doesn't come up by default when you click on play!


Follow-up video blog on the keyword Static

22-Jun-2013 in Errata Core Java

One of the topics that didn't make it into the Java Fundamentals course was an explanation of the keyword static... so I've done a short follow up video which goes into detail about that. In the video, I cover what the keyword means and how to use it correctly (both static methods and static variables).

The video is hosted on youtube - for best viewing results, watch in full screen and choose the HD quality option if that doesn't come up by default when you click on play!


When you need to do some serious work with dates

19-Dec-2012 in Core Java

In the Java course, which will hopefully be available on at around the end of March, we do some basic date manipulation using the GregorianCalendar class. I explain that the Date class within java has problems, which is why many of the methods are depreciated. I don't go into detail about what is wrong with it, but there's a great post about that here:


Automatic Resource Management - how Java 7 makes coding neater

13-Nov-2012 in Core Java

This is my second post on Automatic Resource Management. Actually that's not quite true - in the first post, I talked through an example of how to do "manual" resource management, as you would in Java 6. In that post I built up to a reasonable, but unpleasant, piece of code which used a nested try...finally block within a try...catch block to ensure that any resources we had used within our code where correctly closed, even if an exception occurred.

In this follow-up post, we'll look at how Java 7's Automatic Resource Management features simplify our code, and then we'll understand how it works, and when you can use it.


Automatic Resource Management - understanding the pre ARM mess

08-Nov-2012 in Core Java

One of the topics that I touch on in the new introductory Java course that I have been writing for Virtual Pair Programmers is Automatic Resource Management (ARM). This is a new feature in Java 7 that attempts to make it easier for the developer to write code that uses external resources safely.

I only give this a light touch in the course as for people new to Java, a basic understanding of the syntax is all that is really needed. However I do think it’s worth spending a little more time on ARM, and so this is the first of two blog posts on the topic. In this post, we'll look at why code pre-ARM is so messy.


Listen via:

Be notified of new posts