advanced java

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

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { Pattern p = Pattern.compile(“.d”); // . (DOT) is for single character Matcher matcher = p.matcher(“zd”); System.out.println(matcher.matches()); } } Output: true   Here we specified regex for a word with two characters, and the second must be d. And since we passed…

Read More Java Regex – Regular Expression Examples

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!)

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

Read More Serialization and Deserialization in Java

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