advanced java

Java Regex, also known as Regular Expression, is a powerful tool used for manipulating and managing strings. It consists of a sequence of characters that form a pattern, which can be used to match and locate specific strings within a larger text. In Java, regular expression functionality is provided through the java.util.regex package, which includes…

Read More Java Regex – Regular Expression Examples

synchronized void method() {} public class SynchronizedInstanceMethodExample implements Runnable { public static void main(String[] args) { SynchronizedInstanceMethodExample runnable = new SynchronizedInstanceMethodExample(); new Thread(runnable).start(); // creates one thread new Thread(runnable).start(); // creates second thread } // Inherited run method from the Runnable interface @Override public void run() { try { // Calling the non-synchronized method print()…

Read More Java Synchronized Blocks and Methods

public class GenericClass <T> GenericClass<Type> obj = new GenericClass<Type>(); List<String> list = new ArrayList<>(); Map<Integer, String> map = new HashMap<>(); Set<String> set = new HashSet<>(); public class Test <T> { private T data; public Test(T data) { this.data = data; } public static void main(String[] args) { Test<Integer> test1 = new Test<>(10); Test<String> test2 =…

Read More Generics in Java with Examples

public class TestMultithreading extends Thread { public void run() { System.out.println(“The thread is running…”); } public static void main(String args[]) { TestMultithreading test = new TestMultithreading(); test.start(); } } Output: The thread is running…   Get the id and name of a thread public class TestMultithreading extends Thread { public void run() { System.out.println(“ID: “…

Read More Multithreading in Java

import java.io.Serializable; public class User implements Serializable { transient int userId; String name; public User(int userId, String name) { this.userId = userId; this.name = name; } } import java.io.* public class Test { public static void main(String args[]) { try { User user1 = new User(15, “Ryan”); //Write the object in a stream FileOutputStream outputStream…

Read More Transient Keyword in Java (Explained!)

In this tutorial, we will cover the basics of serialization and deserialization, including the importance of the ObjectOutputStream and ObjectInputStream classes, the use of the transient keyword, and the implementation of custom serialization methods. We’ll also provide code examples and address some common questions about these concepts. Let’s get started! What are Serialization and Deserialization…

Read More Serialization and Deserialization in Java: A Comprehensive Guide

public void printData(int data) { System.out.println(data); printData(data); } public static void printData(int data) { if (data > 0) { System.out.println(data); printData(–data); } } Output: 5 4 3 2 1 public class Test { public static void main(String[] args) { System.out.println(factorial(5)); } static int factorial(int num) { if (num == 1) { return 1; } else…

Read More What is Recursion in Java?

class ClassA implements Cloneable { private int someNum; private ClassC nestedObjectReference; @Override public Object clone() throws CloneNotSupportedException { ClassA classA = (ClassA) super.clone(); // with this, we are ensuring that deep copy will be performed classA.setNestedObjectReference((ClassC) this.nestedObjectReference.clone()); return classA; } // constructor, getters and setters } class ClassC implements Cloneable { private String classData; public…

Read More What is a Deep Copy in Java?

protected Object clone() throws CloneNotSupportedException class ClassA implements Cloneable { private int someNum; private ClassC nestedObjectReference; @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } // getter and setter methods } class ClassC { private String classData; public ClassC(String classData) { this.classData = classData; } // getter and setter methods } public class Test…

Read More Object Cloning in Java