<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Rafael del Nero on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/rafael-del-nero/</link><description>Articles written by Rafael del Nero on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 20 Jan 2025 08:37:01 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/rafael-del-nero/index.xml" rel="self" type="application/rss+xml"/><item><title>Foojay Podcast #65: Boost Your Career in 2025!</title><link>https://foojayio.github.io/website/today/foojay-podcast-65/</link><pubDate>Mon, 20 Jan 2025 08:37:01 +0000</pubDate><guid>https://foojayio.github.io/website/today/foojay-podcast-65/</guid><description>&lt;p&gt;With the first Foojay podcast of 2025, we want to help you to boost your career!&lt;/p&gt;
&lt;p&gt;By now, you&amp;rsquo;ve likely had your year-end performance review with your manager and set some goals to advance in the coming year. Are you ready to take your career growth into your own hands?&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve invited three fantastic guests who are eager to share their experiences and help you elevate your professional journey.&lt;/p&gt;
&lt;h2 id="h2-0-video"&gt;Video&lt;/h2&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/NRHxtT8YQAc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;h2 id="h2-1-podcast-apps"&gt;Podcast Apps&lt;/h2&gt;
&lt;p&gt;You can listen and subscribe to the Foojay Podcast on:&lt;/p&gt;</description></item><item><title>Streams Set Distinct Java Code Quiz</title><link>https://foojayio.github.io/website/today/streams-set-distinct-java-code-quiz/</link><pubDate>Thu, 11 Nov 2021 09:36:45 +0000</pubDate><guid>https://foojayio.github.io/website/today/streams-set-distinct-java-code-quiz/</guid><description>&lt;p&gt;Using Streams and Set Collection Factory methods with Java makes code easier to read and maintain.&lt;/p&gt;
&lt;p&gt;By using these features, we can also make it more difficult for bugs to remain hidden. If you can use the latest &lt;a href="https://foojayio.github.io/website/almanac/java-17/" title="LTS (Long-term support) Java version"&gt;LTS (Long-term support) Java version&lt;/a&gt;
 in your project, it&amp;rsquo;s the best scenario, so that you can use cool Java features such as Collection Factories from Java 9 onwards.&lt;/p&gt;
&lt;p&gt;Now that we know why it&amp;rsquo;s important to understand Java features well, it&amp;rsquo;s time for the Java Challenge!&lt;/p&gt;</description></item><item><title>Exception Chaos Java Code Quiz</title><link>https://foojayio.github.io/website/today/exception-chaos-java-code-quiz/</link><pubDate>Wed, 27 Oct 2021 15:03:38 +0000</pubDate><guid>https://foojayio.github.io/website/today/exception-chaos-java-code-quiz/</guid><description>&lt;p&gt;Working correctly with exceptions is crucial to a high-quality application that users enjoy using. This quiz reinforces some of the basic concepts of exceptions.&lt;/p&gt;
&lt;p&gt;Therefore, what do you think will happen when running the following code?&lt;/p&gt;
&lt;pre class="EnlighterJSRAW" data-enlighter-language="java"&gt;import java.io.FileNotFoundException;

public class ExceptionChaosChallenge {
 static String s = "-";

 public static void main(String... doYouBest) {
 try {
 throw new IllegalArgumentException();
 } catch (Exception e) {
 try {
 try {
 throw new FileNotFoundException();
 } catch (RuntimeException ex) {
 s += "run";
 }
 throw new NullPointerException();
 } catch (Exception x) {
 s += "exc";
 } finally {
 s += "fin";
 }
 } finally {
 s += "of";
 try {
 throw new VirtualMachineError("JVMError") {};
 } catch (Error error) {
 s += "error" + error.getMessage();
 }
 }

 System.out.println(s);
 }

}&lt;/pre&gt;
&lt;p&gt;A) -runfinoferror&lt;/p&gt;</description></item><item><title>Arrays and Object Reference Java Challenge Code Quiz</title><link>https://foojayio.github.io/website/today/arrays-and-object-reference-java-challenge-code-quiz/</link><pubDate>Wed, 29 Sep 2021 11:18:13 +0000</pubDate><guid>https://foojayio.github.io/website/today/arrays-and-object-reference-java-challenge-code-quiz/</guid><description>&lt;p&gt;Arrays are objects in Java.&lt;/p&gt;
&lt;p&gt;Variables in Java actually store references to the object, instead of the real object.&lt;/p&gt;
&lt;p&gt;When we pass an object reference to a method, we are changing the object that is in the heap of the memory.&lt;/p&gt;
&lt;p&gt;Considering the explanation above, can you solve the following &lt;strong&gt;Java Challenge&lt;/strong&gt;? What is going to happen when you run the following code?&lt;/p&gt;
&lt;pre class="EnlighterJSRAW" data-enlighter-language="java"&gt;public class ArrayChallenge2 {
 public static void main(String... doYourBest) {
 int[] anyArray = new int[5];
 anyArray[0] = 0;
 anyArray[1] = 2;
 anyArray[2] = 4;
 anyArray[3] = 6;
 anyArray[4] = 8;

 int[] otherArray = anyArray;
 doSum(anyArray);
 doSum(otherArray);

 Arrays.stream(anyArray).forEach(System.out::println);
 }
 private static void doSum(int[] anyArray) {
 for (int i = 0; i &amp;lt; anyArray.length; i++) {
 anyArray[i] = anyArray[i] + 2;
 }
 }
}
&lt;/pre&gt;
&lt;p&gt;a) 0&lt;/p&gt;</description></item><item><title>Parallel Streams Java Code Quiz</title><link>https://foojayio.github.io/website/today/parallel-streams-java-code-quiz/</link><pubDate>Wed, 15 Sep 2021 09:04:38 +0000</pubDate><guid>https://foojayio.github.io/website/today/parallel-streams-java-code-quiz/</guid><description>&lt;p&gt;Using streams concurrently with the parallel method is a good idea to optimize performance.&lt;/p&gt;
&lt;p&gt;However, it&amp;rsquo;s not always the case that we can use the parallel method, for example, when we depend on the order of logic execution. When we can process the method concurrently, the parallel method comes in handy.&lt;/p&gt;
&lt;p&gt;In the following Java Challenge, we will explore the use of parallel streams with the forEachOrdered method!&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s time to improve your Java skills with this Parallel Stream Java Challenge&lt;/p&gt;</description></item><item><title>Daemon Thread Java Code Quiz</title><link>https://foojayio.github.io/website/today/daemon-thread-java-code-quiz/</link><pubDate>Wed, 08 Sep 2021 07:29:56 +0000</pubDate><guid>https://foojayio.github.io/website/today/daemon-thread-java-code-quiz/</guid><description>&lt;p&gt;When we are working with Threads, it&amp;rsquo;s important to know when to use a daemon or a non-daemon Thread.&lt;/p&gt;
&lt;p&gt;Do you know if the main Thread is a daemon or not? And do you know what a daemon Thread is?&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s what you will find out by trying out the following Java Challenge!&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s time to improve your Java skills with this Daemon Thread Challenge&amp;hellip;&lt;/p&gt;
&lt;h2 id="h2-0-daemon-thread-challenge"&gt;Daemon Thread Challenge&lt;/h2&gt;
&lt;p&gt;What will happen when running the following main method?&lt;/p&gt;</description></item><item><title>Function Calculation Java Challenge</title><link>https://foojayio.github.io/website/today/function-calculation-java-challenge/</link><pubDate>Wed, 01 Sep 2021 10:10:19 +0000</pubDate><guid>https://foojayio.github.io/website/today/function-calculation-java-challenge/</guid><description>&lt;p&gt;Functional programming is a very powerful paradigm that makes code more concise and easier to understand.&lt;/p&gt;
&lt;p&gt;In Java, the &amp;ldquo;Function&amp;rdquo; functional interface can be used as a first-class citizen function, meaning that we can pass a function to a method and declare it as a variable, giving the developer a lot of power.&lt;/p&gt;
&lt;p&gt;And now it&amp;rsquo;s time for you now to test your abilities with lambdas and functional interfaces! Get ready!&lt;/p&gt;</description></item><item><title>Stream Limit Filter Java Challenge</title><link>https://foojayio.github.io/website/today/stream-limit-filter-java-challenge/</link><pubDate>Tue, 17 Aug 2021 07:00:03 +0000</pubDate><guid>https://foojayio.github.io/website/today/stream-limit-filter-java-challenge/</guid><description>&lt;p&gt;To manipulate data from a collection by using a Java stream is handy and cleaner than the alternatives.&lt;/p&gt;
&lt;p&gt;When you learn how to use streams, your Java code will be much better, and knowing how to limit and filter data with streams is crucial for you to do something useful with streams in Java.&lt;/p&gt;
&lt;p&gt;Without further ado, let&amp;rsquo;s go to the next Java Challenge!&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s time to improve your Java skills with this Limit Stream Challenge.&lt;/p&gt;</description></item><item><title>Neo Stream Search Java Challenge</title><link>https://foojayio.github.io/website/today/neo-stream-search-java-challenge/</link><pubDate>Mon, 26 Jul 2021 08:32:40 +0000</pubDate><guid>https://foojayio.github.io/website/today/neo-stream-search-java-challenge/</guid><description>&lt;p&gt;Understanding the mechanics of the functional interface Predicate of a Stream is crucial if you want to create something meaningful with streams. On this challenge, we will explore important key methods when we work with a stream so that it becomes clear for you what they do.&lt;/p&gt;
&lt;p&gt;Without further ado, let&amp;rsquo;s go to the Java Challenge!&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s time to improve your Java skills with this Neo Stream Search Challenge&lt;/p&gt;
&lt;h2 id="_neo_stream_search_challenge"&gt;Neo Stream Search Challenge&lt;/h2&gt;
&lt;p&gt;What do you think will happen when running the following code?&lt;/p&gt;</description></item><item><title>Join The Jedi Lambda Join Java Challenge!</title><link>https://foojayio.github.io/website/today/jedi-lambda-join-java-challenge/</link><pubDate>Wed, 21 Jul 2021 08:08:24 +0000</pubDate><guid>https://foojayio.github.io/website/today/jedi-lambda-join-java-challenge/</guid><description>&lt;p&gt;There are many concepts involved in Java Challenge! In essence, we will explore lambdas and the Function interface the most. However, we also have static methods introduced in Java 8 the private method in interfaces introduced in Java 9. In the invocation of the interface methods, we are using anonymous inner classes too!&lt;/p&gt;
&lt;p&gt;Are you ready for this Java Challenge? Less introduction, more action, try out this Java Challenge, and master Java concepts by having fun!&lt;/p&gt;</description></item><item><title>Soprano ofNullable stream Java Challenge</title><link>https://foojayio.github.io/website/today/soprano-ofnullable-stream-java-challenge/</link><pubDate>Mon, 05 Jul 2021 08:21:54 +0000</pubDate><guid>https://foojayio.github.io/website/today/soprano-ofnullable-stream-java-challenge/</guid><description>&lt;p&gt;Since Java 9, it&amp;rsquo;s possible to use Optional with a stream when we need to manipulate values from a List.&lt;/p&gt;
&lt;p&gt;In this Java Challenge, we will explore the use of a stream in an Optional!&lt;/p&gt;
&lt;p&gt;Are you ready to solve this Java Challenge? It&amp;rsquo;s time to improve your Java skills with this Soprano ofNullable stream Challenge&amp;hellip;&lt;/p&gt;
&lt;h2 id="h2-0-soprano-ofnullable-filter-challenge"&gt;Soprano ofNullable filter Challenge&lt;/h2&gt;
&lt;p&gt;What will happen after the main method is executed as follows?&lt;/p&gt;</description></item><item><title>Method Reference VS Lambda Java Challenge</title><link>https://foojayio.github.io/website/today/method-reference-vs-lambda-java-challenge/</link><pubDate>Tue, 29 Jun 2021 19:31:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/method-reference-vs-lambda-java-challenge/</guid><description>&lt;p&gt;Do you know what the differences are between method references and lambdas?&lt;/p&gt;
&lt;p&gt;In this Java Challenge, we will explore how lambdas and method references behave so that you can really understand how they work!&lt;/p&gt;
&lt;p&gt;Now that you know the main context, it&amp;rsquo;s time for the Java Challenge!&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s time to improve your Java skills with this Method Reference VS Lambda Challenge.&lt;/p&gt;
&lt;h3 id="h3-0-method-reference-vs-lambda-challenge"&gt;Method Reference VS Lambda Challenge&lt;/h3&gt;
&lt;p&gt;What will happen when we run the following main method?&lt;/p&gt;</description></item><item><title>Hidden Dracula Polymorphism Java Challenge</title><link>https://foojayio.github.io/website/today/hidden-dracula-polymorphism-java-challenge/</link><pubDate>Mon, 14 Jun 2021 11:26:37 +0000</pubDate><guid>https://foojayio.github.io/website/today/hidden-dracula-polymorphism-java-challenge/</guid><description>&lt;p&gt;Polymorphism is one of the most important Java concepts. We might not even be aware we&amp;rsquo;re using it all the time but when we instantiate an &lt;code&gt;ArrayList&lt;/code&gt; and assign it to a variable of the &lt;code&gt;List&lt;/code&gt; type, we are using polymorphism. It&amp;rsquo;s a powerful concept because it helps us to decouple responsibilities, therefore, making code more flexible and easier to maintain.&lt;/p&gt;
&lt;p&gt;This Java Challenge is one of the hardest ones, are you ready for this one? Now is your time to improve your Java skills by doing this Java Challenge!&lt;/p&gt;</description></item><item><title>Asynchronous CompletableFuture Java Challenge</title><link>https://foojayio.github.io/website/today/asynchronous-completablefuture-san-francisco-adventure-java-challenge/</link><pubDate>Tue, 01 Jun 2021 07:42:43 +0000</pubDate><guid>https://foojayio.github.io/website/today/asynchronous-completablefuture-san-francisco-adventure-java-challenge/</guid><description>&lt;p&gt;The Completable Future feature is powerful for better performance when running asynchronous methods.&lt;/p&gt;
&lt;p&gt;In Java 5, there is the Future interface, however, the Future interface doesn&amp;rsquo;t have many methods that would help us to create robust code. To solve the limitations of the Future interface, we have the CompletableFuture API with methods that will help us to build reliable high-performant software.&lt;/p&gt;
&lt;p&gt;Now that we had the intro about CompletableFuture, let&amp;rsquo;s go to the Java Challenge!&lt;/p&gt;</description></item><item><title>Take the Type Erasure Generics Java Challenge!</title><link>https://foojayio.github.io/website/today/type-erasure-generics-java-challenge/</link><pubDate>Tue, 25 May 2021 06:50:45 +0000</pubDate><guid>https://foojayio.github.io/website/today/type-erasure-generics-java-challenge/</guid><description>&lt;p&gt;It&amp;rsquo;s possible to use type erasure generics in a method with Java. To know how to use generics is important because then you are able to create highly reusable code.&lt;/p&gt;
&lt;p&gt;In the following Java Challenge, you will see the generic type that will be erased by the compiler and then will be replaced by the type we defined at runtime.&lt;/p&gt;
&lt;p&gt;Note also that we are using the extends keyword which means that the generic type will extend the other type.&lt;/p&gt;</description></item><item><title>The Map, Equals, Hashcode Java Challenge</title><link>https://foojayio.github.io/website/today/map-equals-hashcode-java-challenge/</link><pubDate>Mon, 17 May 2021 08:38:13 +0000</pubDate><guid>https://foojayio.github.io/website/today/map-equals-hashcode-java-challenge/</guid><description>&lt;p&gt;Understanding deeply how to use a Map, equals, and hashcode in Java will be a massive help for you to create high-quality code. The Map and object reference concepts are not only present in the Java language but in almost all programming languages. Therefore, if you master the concept of object references, equals and hashcode, and Maps, you can apply this in other programming languages and master them far more easily.&lt;/p&gt;</description></item><item><title>Optional takeWhile dropWhile Java Challenge</title><link>https://foojayio.github.io/website/today/optional-takewhile-dropwhile-java-challenge/</link><pubDate>Mon, 10 May 2021 08:05:57 +0000</pubDate><guid>https://foojayio.github.io/website/today/optional-takewhile-dropwhile-java-challenge/</guid><description>&lt;p&gt;The Optional concept is present in many programming languages. The main goal of the Optional class is to avoid &lt;code&gt;NullPointerException&lt;/code&gt;. It&amp;rsquo;s much easier to deal with null values when we use the concepts of an Optional.&lt;/p&gt;
&lt;p&gt;In this challenge, we will also explore the takeWhile and dropWhile methods from Java 9. Therefore you will be upgrading your knowledge with &lt;code&gt;Optional&lt;/code&gt;, &lt;code&gt;takeWhile&lt;/code&gt;, and &lt;code&gt;dropWhile&lt;/code&gt;!&lt;/p&gt;
&lt;p&gt;Are you prepared to have fun with this Java Challenge and refine your Java skills?&lt;/p&gt;</description></item><item><title>New Book Announcement: "Java Challengers"</title><link>https://foojayio.github.io/website/today/new-book-java-challengers/</link><pubDate>Mon, 03 May 2021 07:03:36 +0000</pubDate><guid>https://foojayio.github.io/website/today/new-book-java-challengers/</guid><description>&lt;p&gt;To get the best jobs and create massive value, you need to know Java very well. The &lt;a href="https://leanpub.com/javachallengers" target="_blank" rel="noopener noreferrer"&gt;newly released &amp;ldquo;Java Challengers&amp;rdquo; book&lt;/a&gt;
 is a way for you to challenge yourself with fun code challenges so that you will become a better Java developer.&lt;/p&gt;
&lt;p&gt;This book contains more than 70 well-elaborated Java Challenges that will help you break your limits on your Java skills. Want to challenge yourself and become better? The Java Challengers is the book for you!&lt;/p&gt;</description></item></channel></rss>