From 06c13d5a2e84bc3155a0482ac039f7d166eeff51 Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Wed, 4 Dec 2024 22:01:11 -0600 Subject: [PATCH 01/14] Answering the questions. --- .gitignore | 2 + readme.md | 453 +++++++++++++++++- .../java/arrays/ArrayExamples.java | 321 ++++++------- 3 files changed, 598 insertions(+), 178 deletions(-) diff --git a/.gitignore b/.gitignore index 829bbce..a44b641 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,8 @@ *.war *.ear +.idea/ + # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* /target/ diff --git a/readme.md b/readme.md index d5b50f3..1cd4e15 100644 --- a/readme.md +++ b/readme.md @@ -2,68 +2,469 @@ [![Image](https://www.springboottutorial.com/images/Course-Java-Interview-Guide-200-Interview-Questions-and-Answers.png "Java Interview Guide : 200+ Interview Questions and Answers")](https://www.udemy.com/course/java-interview-questions-and-answers/) - ## Expectations + - Good Java Knowledge ## Complete Course Link + - https://www.udemy.com/course/java-interview-questions-and-answers/?couponCode=NOVEMBER-2019 ## Things You Need to Know -### Github Repository +### Github Repository + https://github.com/in28minutes/JavaInterviewQuestionsAndAnswers ### PDF Guide + Available in the resources for the course ### Installing Eclipse, Java and Maven + - PDF : https://github.com/in28minutes/SpringIn28Minutes/blob/master/InstallationGuide-JavaEclipseAndMaven_v2.pdf - Video : https://www.youtube.com/playlist?list=PLBBog2r6uMCSmMVTW_QmDLyASBvovyAO3 - GIT Repository : https://github.com/in28minutes/getting-started-in-5-steps - ## Interview Questions ### Java Platform + - 1 . Why is Java so popular? + - Java is popular for several reasons: + + 1. **Platform Independence**: Java programs can run on any device that has the Java Virtual Machine (JVM), making it + highly portable. + 2. **Object-Oriented**: Java's object-oriented nature allows for modular programs and reusable code. + 3. **Robust and Secure**: Java has strong memory management, exception handling, and security features. + 4. **Rich API**: Java provides a vast standard library that simplifies many programming tasks. + 5. **Community Support**: Java has a large and active community, providing extensive resources and support. + 6. **Performance**: Java's performance has improved significantly with Just-In-Time (JIT) compilers and other + optimizations. + 7. **Enterprise Use**: Java is widely used in enterprise environments, particularly for server-side applications. - 2 . What is platform independence? + Platform independence refers to the ability of a programming language or software to run on various types of computer + systems without modification. In the context of Java, platform independence is achieved through the use of the Java + Virtual Machine (JVM). Java programs are compiled into bytecode, which can be executed on any device that has a JVM, + regardless of the underlying hardware and operating system. This allows Java applications to be written once and run + anywhere. - 3 . What is bytecode? -- 4 . Compare JDK vs JVM vs JRE + Bytecode is an intermediate representation of a Java program. When a Java program is compiled, it is converted into + bytecode, which is a set of instructions that can be executed by the Java Virtual Machine (JVM). Bytecode is + platform-independent, meaning it can run on any device that has a JVM, regardless of the underlying hardware and + operating system. This allows Java programs to be written once and run anywhere. +- 4 . Compare JDK vs JVM vs JRE + - **JDK (Java Development Kit)**: A software development kit used to develop Java applications. It includes the JRE, + an interpreter/loader (Java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), and + other tools needed for Java development. + - **JVM (Java Virtual Machine)**: An abstract machine that enables your computer to run a Java program. When you run + a Java program, the JVM is responsible for converting the bytecode into machine-specific code. It provides + platform independence. + - **JRE (Java Runtime Environment)**: A package of software that provides the class libraries, JVM, and other + components to run applications written in Java. It does not include development tools like compilers or debuggers. - 5 . What are the important differences between C++ and Java? -- 6 . What is the role for a classloader in Java? + - **Memory Management**: C++ uses manual memory management with pointers, while Java uses automatic garbage + collection. + - **Platform Independence**: Java is platform-independent due to the JVM, whereas C++ is platform-dependent and + needs to be compiled for each platform. + - **Multiple Inheritance**: C++ supports multiple inheritance, while Java does not. Java uses interfaces to achieve + similar functionality. + - **Pointers**: C++ supports pointers, allowing direct memory access. Java does not support pointers explicitly, + enhancing security and simplicity. + - **Standard Library**: Java has a rich standard library with built-in support for networking, threading, and GUI + development. C++ has a standard library but with less built-in support for these features. + - **Compilation and Execution**: C++ is compiled directly to machine code, while Java is compiled to bytecode and + executed by the JVM. + - **Operator Overloading**: C++ supports operator overloading, while Java does not. + - **Templates vs. Generics**: C++ uses templates for generic programming, while Java uses generics. ### Wrapper Classes + - 7 . What are Wrapper classes? + Wrapper classes in Java are classes that encapsulate a primitive data type into an object. They provide a way to use + primitive data types (like `int`, `char`, etc.) as objects. Each primitive type has a corresponding wrapper class: + + - `byte` -> `Byte` + - `short` -> `Short` + - `int` -> `Integer` + - `long` -> `Long` + - `float` -> `Float` + - `double` -> `Double` + - `char` -> `Character` + - `boolean` -> `Boolean` + + Wrapper classes are useful because they allow primitives to be used in contexts that require objects, such as in + collections like `ArrayList`, and they provide utility methods for converting between types and performing operations + on the values. - 8 . Why do we need Wrapper classes in Java? + Wrapper classes in Java are needed for the following reasons: + 1. **Object-Oriented Programming**: Wrapper classes allow primitive data types to be treated as objects, enabling + them to be used in object-oriented programming contexts. + 2. **Collections**: Collections in Java, such as `ArrayList`, can only store objects. Wrapper classes allow + primitive types to be stored in collections. + 3. **Utility Methods**: Wrapper classes provide utility methods for converting between types and performing + operations on the values. + 4. **Default Values**: Wrapper classes can be used to represent default values (e.g., `null` for an `Integer`), + which is not possible with primitive types. + 5. **Type Safety**: Wrapper classes enable type safety in generic programming, ensuring that only the correct type + of objects are used. - 9 . What are the different ways of creating Wrapper class instances? + There are two main ways to create instances of Wrapper classes in Java: + 1. **Using Constructors**: + Each wrapper class has a constructor that takes a primitive type or a String as an argument. + ```java + Integer intObj1 = new Integer(10); + Integer intObj2 = new Integer("10"); + ``` + 2. **Using Static Factory Methods**: + The wrapper classes provide static factory methods like `valueOf` to create instances. + ```java + Integer intObj1 = Integer.valueOf(10); + Integer intObj2 = Integer.valueOf("10"); + ``` - 10 . What are differences in the two ways of creating Wrapper classes? + The two ways of creating Wrapper class instances in Java are using constructors and using static factory methods. Here + are the differences: + + 1. **Using Constructors**: + - Each wrapper class has a constructor that takes a primitive type or a `String` as an argument. + - Example: + ```java + Integer intObj1 = new Integer(10); + Integer intObj2 = new Integer("10"); + ``` + 2. **Using Static Factory Methods**: + - Wrapper classes provide static factory methods like `valueOf` to create instances. + - Example: + ```java + Integer intObj1 = Integer.valueOf(10); + Integer intObj2 = Integer.valueOf("10"); + ``` + **Differences**: + - **Performance**: Static factory methods are generally preferred over constructors because they can cache + frequently requested values, improving performance. + - **Readability**: Using `valueOf` is often more readable and expressive. + - **Deprecation**: Some constructors in wrapper classes are deprecated in favor of static factory methods. - 11 . What is auto boxing? + Autoboxing in Java is the automatic conversion that the Java compiler makes between the primitive types and their + corresponding object wrapper classes. For example, converting an `int` to an `Integer`, a `double` to a `Double`, and + so on. This feature was introduced in Java 5 to simplify the process of working with primitive types in contexts that + require objects, such as collections. + + Example: + ```java + int primitiveInt = 5; + Integer wrappedInt = primitiveInt; // Autoboxing + ``` + + In this example, the primitive `int` is automatically converted to an `Integer` object. - 12 . What are the advantages of auto boxing? + Autoboxing in Java provides several advantages: + 1. **Simplicity**: Autoboxing simplifies the process of working with primitive types in contexts that require + objects, + such as collections. + 2. **Readability**: Autoboxing makes the code more readable and expressive by automatically converting between + primitive types and their corresponding object wrapper classes. + 3. **Convenience**: Autoboxing eliminates the need for manual conversion between primitive types and objects, + reducing + boilerplate code. + 4. **Compatibility**: Autoboxing allows code written with primitive types to be used in contexts that require + objects, + without the need for explicit conversion. - 13 . What is casting? + Casting in Java is the process of converting a value of one data type to another. There are two types of casting: + 1. **Implicit Casting**: When a smaller data type is converted to a larger data type, Java automatically performs + the + conversion. For example, converting an `int` to a `double`. + 2. **Explicit Casting**: When a larger data type is converted to a smaller data type, or when converting between + incompatible types, explicit casting is required. For example, converting a `double` to an `int`. + + Example: + ```java + int intValue = 10; + double doubleValue = intValue; // Implicit casting + double doubleValue = 10.5; + int intValue = (int) doubleValue; // Explicit casting + ``` - 14 . What is implicit casting? + Implicit casting in Java is the automatic conversion of a smaller data type to a larger data type. Java performs + implicit casting when the target data type can accommodate the source data type without loss of precision. For + example, converting an `int` to a `double` or a `float` to a `double`. + + Example: + ```java + int intValue = 10; + double doubleValue = intValue; // Implicit casting + ``` - 15 . What is explicit casting? + Explicit casting in Java is the manual conversion of a larger data type to a smaller data type, or when converting + between incompatible types. Java requires explicit casting when the target data type may lose precision or range + when accommodating the source data type. For example, converting a `double` to an `int`. + + Example: + ```java + double doubleValue = 10.5; + int intValue = (int) doubleValue; // Explicit casting + ``` ### Strings -- 16 . Are all String’s immutable? + +- + 16. Are all String’s immutable? + No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String` + object is created, its value cannot be changed. However, there are other classes like `StringBuilder` + and `StringBuffer` that provide mutable alternatives to `String`. These classes allow you to modify the contents + of the string without creating new objects. - 17 . Where are String values stored in memory? + In Java, `String` values are stored in a special memory area called the **String Pool**. The String Pool is part of + the Java heap memory and is used to store unique `String` literals. When a `String` literal is created, the JVM checks + the String Pool to see if an identical `String` already exists. If it does, the reference to the existing `String` is + returned. If not, the new `String` is added to the pool. This process helps in saving memory and improving performance + by reusing immutable `String` objects. - 18 . Why should you be careful about String concatenation(+) operator in loops? + String concatenation using the `+` operator in loops can be inefficient due to the immutability of `String` objects. + Each time a `String` is concatenated using the `+` operator, a new `String` object is created, resulting in + unnecessary memory allocation and garbage collection. This can lead to performance issues, especially in loops where + multiple concatenations are performed. To improve performance, it is recommended to use `StringBuilder` + or `StringBuffer` + for string concatenation in loops, as these classes provide mutable alternatives to `String` and are more efficient + for + building strings. - 19 . How do you solve above problem? -- 20 . What are differences between String and StringBuffer? -- 21 . What are differences between StringBuilder and StringBuffer? + To solve the problem of inefficient string concatenation using the `+` operator in loops, you should + use `StringBuilder` or `StringBuffer`. These classes provide mutable alternatives to `String` and are more efficient + for building strings. + Here is an example of how to use `StringBuilder` for string concatenation in a loop: + + Example using `StringBuilder`: + ```java + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < 10; i++) { + sb.append(i); + } + String result = sb.toString(); + ``` + +- 20 . What are the differences between `String` and `StringBuffer`? + - **Mutability**: `String` objects are immutable, meaning their values cannot be changed once + created. `StringBuffer` objects are mutable, allowing their values to be modified. + - **Thread Safety**: `StringBuffer` is synchronized, making it thread-safe. `String` is not synchronized. + - **Performance**: Due to immutability, `String` operations can be slower as they create new objects. `StringBuffer` + is faster for concatenation and modification operations. + - **Usage**: Use `String` when the value does not change. Use `StringBuffer` when the value changes frequently and + thread safety is required. - 22 . Can you give examples of different utility methods in String class? + The `String` class in Java provides various utility methods. Here are some examples: + + ```java + // Example of length() method + String str = "Hello, World!"; + int length = str.length(); // Returns 13 + + // Example of charAt() method + char ch = str.charAt(0); // Returns 'H' + + // Example of substring() method + String substr = str.substring(7, 12); // Returns "World" + + // Example of contains() method + boolean contains = str.contains("World"); // Returns true + + // Example of equals() method + boolean isEqual = str.equals("Hello, World!"); // Returns true + + // Example of toUpperCase() method + String upperStr = str.toUpperCase(); // Returns "HELLO, WORLD!" + + // Example of trim() method + String trimmedStr = " Hello, World! ".trim(); // Returns "Hello, World!" + + // Example of replace() method + String replacedStr = str.replace("World", "Java"); // Returns "Hello, Java!" + + // Example of split() method + String[] parts = str.split(", "); // Returns ["Hello", "World!"] + ``` ### Object oriented programming basics + - 23 . What is a class? -- 24 . What is an object? + A class in Java is a blueprint for creating objects. It defines a set of properties (fields) and methods that the + created objects will have. A class encapsulates data for the object and methods to manipulate that data. It serves as + a template from which individual objects are instantiated. - 25 . What is state of an object? + The state of an object in Java refers to the data or values stored in its fields (instance variables) at any given + time. The state represents the current condition of the object, which can change over time as the values of its fields + are modified through methods or operations. - 26 . What is behavior of an object? -- 27 . What is the super class of every class in Java? + The behavior of an object in Java refers to the actions or operations that the object can perform. These behaviors are + defined by the methods in the object's class. The methods manipulate the object's state and can interact with other + objects. The behavior of an object is what it can do, such as calculating a value, modifying its state, or interacting + with other objects. - 28 . Explain about toString method ? + The `toString` method in Java is a method that returns a string representation of an object. It is defined in + the `Object` class, which is the superclass of all Java classes. By default, the `toString` method returns a string + that consists of the class name followed by the `@` character and the object's hashcode in hexadecimal form. + + However, it is common practice to override the `toString` method in your classes to provide a more meaningful string + representation of the object. This can be useful for debugging and logging purposes. + + Here is an example of how to override the `toString` method: + + ```java + public class Person { + private String name; + private int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + @Override + public String toString() { + return "Person{name='" + name + "', age=" + age + "}"; + } + + public static void main(String[] args) { + Person person = new Person("John", 30); + System.out.println(person.toString()); // Output: Person{name='John', age=30} + } + } + ``` + + In this example, the `toString` method is overridden to return a string that includes the `name` and `age` of + the `Person` object. + - 29 . What is the use of equals method in Java? -- 30 . What are the important things to consider when implementing equals method? + The `equals` method in Java is used to compare the equality of two objects. It is defined in the `Object` class and + can be overridden in subclasses to provide custom equality logic. By default, the `equals` method compares object + references, checking if two references point to the same object in memory. + + When overriding the `equals` method, it is important to follow these guidelines: + - **Reflexive**: `x.equals(x)` should return `true`. + - **Symmetric**: If `x.equals(y)` returns `true`, then `y.equals(x)` should also return `true`. + - **Transitive**: If `x.equals(y)` and `y.equals(z)` both return `true`, then `x.equals(z)` should also return + `true`. + - **Consistent**: Multiple invocations of `x.equals(y)` should consistently return the same result. + The `equals` method in Java is used to compare two objects for equality. It is defined in the `Object` class and + can be overridden by any Java class to provide a custom equality comparison. The default implementation + of `equals` in the `Object` class compares the memory addresses of the objects, meaning it checks if the two + references point to the same object. + + Here is an example of how to override the `equals` method: + + ```java + public class Person { + private String name; + private int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + Person person = (Person) obj; + return age == person.age && Objects.equals(name, person.name); + } + + @Override + public int hashCode() { + return Objects.hash(name, age); + } + } + ``` + + In this example, the `equals` method is overridden to compare the `name` and `age` fields of `Person` objects to + determine if they are equal. The `hashCode` method is also overridden to ensure that equal objects have the same hash + code, which is important when using objects in collections like `HashSet` or `HashMap`. + +- 30 . What are the important things to consider when implementing `equals` method? + - **Reflexive**: `x.equals(x)` should return `true`. + - **Symmetric**: If `x.equals(y)` returns `true`, then `y.equals(x)` should also return `true`. + - **Transitive**: If `x.equals(y)` and `y.equals(z)` both return `true`, then `x.equals(z)` should also + return `true`. + - **Consistent**: Multiple invocations of `x.equals(y)` should consistently return the same result. + - **Non-nullity**: `x.equals(null)` should return `false`. + - **Type Check**: Ensure the object being compared is of the correct type. + - **Field Comparison**: Compare significant fields that determine equality. - 31 . What is the Hashcode method used for in Java? -- 32 . Explain inheritance with examples . + The `hashCode` method in Java is used to generate a unique integer value for an object. It is defined in the `Object` + class and can be overridden in subclasses to provide a custom hash code calculation. The `hashCode` method is used + primarily for objects that are stored in collections like `HashSet` or `HashMap`, where the hash code is used to + determine the object's bucket location. + + When overriding the `hashCode` method, it is important to follow these guidelines: + - **Consistency**: The hash code should be consistent for equal objects. + - **Equality**: Equal objects should have the same hash code. + - **Performance**: The hash code calculation should be efficient to avoid performance issues. + + Here is an example of how to override the `hashCode` method: + + ```java + public class Person { + private String name; + private int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + @Override + public int hashCode() { + return Objects.hash(name, age); + } + } + ``` + + In this example, the `hashCode` method is overridden to generate a hash code based on the `name` and `age` fields of + `Person` objects. This ensures that equal objects have the same hash code, which is important for using objects in + collections like `HashSet` or `HashMap`. +- 32 . Explain inheritance with examples. + Inheritance in Java is a mechanism where one class (subclass) inherits the fields and methods of another class ( + superclass). It allows for code reuse and establishes a relationship between classes. + + Here is an example: + + ```java + // Superclass + public class Animal { + public void eat() { + System.out.println("This animal eats food."); + } + } + + // Subclass + public class Dog extends Animal { + public void bark() { + System.out.println("The dog barks."); + } + } + + // Main class to demonstrate inheritance + public class Main { + public static void main(String[] args) { + Dog dog = new Dog(); + dog.eat(); // Inherited method from Animal class + dog.bark(); // Method from Dog class + } + } + ``` + + In this example: + - `Animal` is the superclass with a method `eat()`. + - `Dog` is the subclass that inherits the `eat()` method from `Animal` and also has its own method `bark()`. + - In the `Main` class, an instance of `Dog` can call both `eat()` and `bark()` methods. + - 33 . What is method overloading? - 34 . What is method overriding? - 35 . Can super class reference variable can hold an object of sub class? @@ -88,6 +489,7 @@ Available in the resources for the course - 54 . Is a super class constructor called even when there is no explicit call from a sub class constructor? ### Advanced object oriented concepts + - 55 . What is polymorphism? - 56 . What is the use of instanceof operator in Java? - 57 . What is coupling? @@ -99,6 +501,7 @@ Available in the resources for the course - 63 . What is an anonymous class? ### Modifiers + - 64 . What is default class modifier? - 65 . What is private access modifier? - 66 . What is default or package access modifier? @@ -116,20 +519,23 @@ Available in the resources for the course - 78 . What is a static variable? ### conditions & loops + - 79 . Why should you always use blocks around if statement? - 80 . Guess the output - 81 . Guess the output -- 82 . Guess the output of this switch block . +- 82 . Guess the output of this switch block . - 83 . Guess the output of this switch block? - 84 . Should default be the last case in a switch statement? - 85 . Can a switch statement be used around a String -- 86 . Guess the output of this for loop (P.S. there is an error as the output of given question should be 0-1-2-3-4-5-6-7-8-9. So please ignore that.) +- 86 . Guess the output of this for loop (P.S. there is an error as the output of given question should be + 0-1-2-3-4-5-6-7-8-9. So please ignore that.) - 87 . What is an enhanced for loop? - 88 . What is the output of the for loop below? - 89 . What is the output of the program below? - 90 . What is the output of the program below? ### Exception handling + - 91 . Why is exception handling important? - 92 . What design pattern is used to implement exception handling features in most languages? - 93 . What is the need for finally block? @@ -150,6 +556,7 @@ Available in the resources for the course - 108 . Can you explain a few exception handling best practices? ### Miscellaneous topics + - 109 . What are the default values in an array? - 110 . How do you loop around an array using enhanced for loop? - 111 . How do you print the content of an array? @@ -177,6 +584,7 @@ Available in the resources for the course - 133 . Are the values of static variables stored when an object is serialized? ### Collections + - 134 . Why do we need collections in Java? - 135 . What are the important interfaces in the collection hierarchy? - 136 . What are the important methods that are declared in the collection interface? @@ -212,6 +620,7 @@ Available in the resources for the course - 166 . What are the static methods present in the collections class? ### Advanced collections + - 167 . What is the difference between synchronized and concurrent collections in Java? - 168 . Explain about the new concurrent collections in Java? - 169 . Explain about copyonwrite concurrent collections approach? @@ -225,6 +634,7 @@ Available in the resources for the course - 177 . What is BlockingQueue in Java? ### Generics + - 178 . What are Generics? - 179 . Why do we need Generics? Can you give an example of how Generics make a program more flexible? - 180 . How do you declare a generic class? @@ -234,6 +644,7 @@ Available in the resources for the course - 184 . Can you give an example of a generic method? ### Multi threading + - 185 . What is the need for threads in Java? - 186 . How do you create a thread? - 187 . How do you create a thread by extending thread class? @@ -243,7 +654,7 @@ Available in the resources for the course - 191 . What is priority of a thread? How do you change the priority of a thread? - 192 . What is executorservice? - 193 . Can you give an example for executorservice? -- 194 . Explain different ways of creating executor services . +- 194 . Explain different ways of creating executor services . - 195 . How do you check whether an executionservice task executed successfully? - 196 . What is callable? How do you execute a callable from executionservice? - 197 . What is synchronization of threads? @@ -259,6 +670,7 @@ Available in the resources for the course - 207 . Can you write a synchronized program with wait and notify methods? ### Functional Programming - Lamdba expressions and Streams + - 208 . What is functional programming? - 209 . Can you give an example of functional programming? - 210 . What is a stream? @@ -274,20 +686,24 @@ Available in the resources for the course - 219 . What is a consumer? - 220 . Can you give examples of functional interfaces with multiple arguments? -### New Features +### New Features + - 221 . What are the new features in Java 5? - 222 . What are the new features in Java 6? - 223 . What are the new features in Java 7? - 224 . What are the new features in Java 8? ### What you can do next? + - [Design Patterns] (https://www.youtube.com/watch?v=f5Rzr5mVNbY) - [Maven] (https://courses.in28minutes.com/p/maven-tutorial-for-beginners-in-5-steps) - [JSP Servlets] (https://www.youtube.com/watch?v=Vvnliarkw48) - [Spring MVC] (https://www.youtube.com/watch?v=BjNhGaZDr0Y) ### Troubleshooting -- Refer our TroubleShooting Guide - https://github.com/in28minutes/in28minutes-initiatives/tree/master/The-in28Minutes-TroubleshootingGuide-And-FAQ + +- Refer our TroubleShooting + Guide - https://github.com/in28minutes/in28minutes-initiatives/tree/master/The-in28Minutes-TroubleshootingGuide-And-FAQ ## Youtube Playlists - 500+ Videos @@ -295,4 +711,5 @@ Available in the resources for the course ## Keep Learning in28Minutes -in28Minutes is creating amazing solutions for you to learn Spring Boot, Full Stack and the Cloud - Docker, Kubernetes, AWS, React, Angular etc. - [Check out all our courses here](https://github.com/in28minutes/learn) +in28Minutes is creating amazing solutions for you to learn Spring Boot, Full Stack and the Cloud - Docker, Kubernetes, +AWS, React, Angular etc. - [Check out all our courses here](https://github.com/in28minutes/learn) diff --git a/src/main/java/com/in28minutes/java/arrays/ArrayExamples.java b/src/main/java/com/in28minutes/java/arrays/ArrayExamples.java index f287155..ffeed74 100644 --- a/src/main/java/com/in28minutes/java/arrays/ArrayExamples.java +++ b/src/main/java/com/in28minutes/java/arrays/ArrayExamples.java @@ -3,176 +3,177 @@ import java.util.Arrays; public class ArrayExamples { - public static void main(String[] args) { - // Declare an Array. All below ways are legal. - int marks[]; // Not Readable - int[] runs; // Not Readable - int[] temperatures;// Recommended + public static void main(String[] args) { + // Declare an Array. All below ways are legal. + int marks[]; // Not Readable + int[] runs; // Not Readable + int[] temperatures;// Recommended - // Declaration of an Array should not include size. - // int values[5];//Compilation Error! + // Declaration of an Array should not include size. + // int values[5];//Compilation Error! - // Declaring 2D ArrayExamples - int[][] matrix1; // Recommended - int[] matrix2[]; // Legal but not readable. Avoid. + // Declaring 2D ArrayExamples + int[][] matrix1; // Recommended + int[] matrix2[]; // Legal but not readable. Avoid. - // Creating an array - marks = new int[5]; // 5 is size of array + // Creating an array + marks = new int[5]; // 5 is size of array - // Size of an array is mandatory to create an array - // marks = new int[];//COMPILER ERROR + // Size of an array is mandatory to create an array + // marks = new int[];//COMPILER ERROR - // Once An Array is created, its size cannot be changed. + // Once An Array is created, its size cannot be changed. - // Declaring and creating an array in same line - int marks2[] = new int[5]; + // Declaring and creating an array in same line + int marks2[] = new int[5]; - // new Arrays are alway initialized with default values - System.out.println(marks2[0]);// 0 + // new Arrays are alway initialized with default values + System.out.println(marks2[0]);// 0 - // Default Values - // byte,short,int,long-0 - // float,double-0.0 - // boolean false - // object-null + // Default Values + // byte,short,int,long-0 + // float,double-0.0 + // boolean false + // object-null - // Assigning values to array - marks[0] = 25; - marks[1] = 30; - marks[2] = 50; - marks[3] = 10; - marks[4] = 5; - - // ArrayOnHeap.xls - - // Note : Index of an array runs from 0 to length - 1 - - // Declare, Create and Initialize Array on same line - int marks3[] = { 25, 30, 50, 10, 5 }; + // Assigning values to array + marks[0] = 25; + marks[1] = 30; + marks[2] = 50; + marks[3] = 10; + marks[4] = 5; + + // ArrayOnHeap.xls + + // Note : Index of an array runs from 0 to length - 1 + + // Declare, Create and Initialize Array on same line + int marks3[] = {25, 30, 50, 10, 5}; - // Leaving additional comma is not a problem - int marks4[] = { 25, 30, 50, 10, 5, }; - - // Default Values in Array - // numbers - 0 floating point - 0.0 Objects - null - - // Length of an array : Property length - int length = marks.length; - - // Printing a value from array - System.out.println(marks[2]); - - // Looping around an array - Enhanced for loop - for (int mark : marks) { - System.out.println(mark); - } - - // Fill array with same default value - Arrays.fill(marks, 100); // All array values will be 100 - - // Access 10th element when array has only length 5 - // Runtime Exception : ArrayIndexOutOfBoundsException - // System.out.println(marks[10]); - - // String Array: similar to int array. - String[] daysOfWeek = { "Sunday", "Monday", "Tuesday", "Wednesday", - "Thursday", "Friday", "Saturday" }; - - // Array can contain only values of same type. - // COMPILE ERROR!! - // int marks4[] = {10,15.0}; //10 is int 15.0 is float - - // Cross assigment of primitive arrays is ILLEGAL - int[] ints = new int[5]; - short[] shorts = new short[5]; - // ints = shorts;//COMPILER ERROR - // ints = (int[])shorts;//COMPILER ERROR - - // 2D Arrays - int[][] matrix = { { 1, 2, 3 }, { 4, 5, 6 } }; - - int[][] matrixA = new int[5][6]; - - // First dimension is necessary to create a 2D Array - // Best way to visualize a 2D array is as an array of arrays - // ArrayOnHeap.xls - matrixA = new int[3][];// FINE - // matrixA = new int[][5];//COMPILER ERROR - // matrixA = new int[][];//COMPILER ERROR - - // We can create a ragged 2D Array - matrixA[0] = new int[3]; - matrixA[0] = new int[4]; - matrixA[0] = new int[5]; - - // Above matrix has 2 rows 3 columns. - - // Accessing an element from 2D array: - System.out.println(matrix[0][0]); // 1 - System.out.println(matrix[1][2]); // 6 - - // Looping a 2D array: - for (int[] array : matrix) { - for (int number : array) { - System.out.println(number); - } - } - - // Printing a 1D Array - int marks5[] = { 25, 30, 50, 10, 5 }; - System.out.println(marks5); // [I@6db3f829 - System.out.println(Arrays.toString(marks5));// [25, 30, 50, 10, 5] - - // Printing a 2D Array - int[][] matrix3 = { { 1, 2, 3 }, { 4, 5, 6 } }; - System.out.println(matrix3); // [[I@1d5a0305 - System.out.println(Arrays.toString(matrix3)); - // [[I@6db3f829, [I@42698403] - System.out.println(Arrays.deepToString(matrix3)); - // [[1, 2, 3], [4, 5, 6]] - - // matrix3[0] is a 1D Array - System.out.println(matrix3[0]);// [I@86c347 - System.out.println(Arrays.toString(matrix3[0]));// [1, 2, 3] - - // Comparing Arrays - int[] numbers1 = { 1, 2, 3 }; - int[] numbers2 = { 4, 5, 6 }; - System.out.println(Arrays.equals(numbers1, numbers2)); // false - int[] numbers3 = { 1, 2, 3 }; - System.out.println(Arrays.equals(numbers1, numbers3)); // true - - // Sorting An Array - int rollNos[] = { 12, 5, 7, 9 }; - Arrays.sort(rollNos); - System.out.println(Arrays.toString(rollNos));// [5, 7, 9, 12] - - // Array of Objects(ArrayOnHeap.xls) - Person[] persons = new Person[3]; - - // Creating an array of Persons creates - // 4 Reference Variables to Person - // It does not create the Person Objects - // ArrayOnHeap.xls - System.out.println(persons[0]);// null - - // to assign objects we would need to create them - persons[0] = new Person(); - persons[1] = new Person(); - persons[2] = new Person(); - - // Other way - // How may objects are created? - Person[] personsAgain = { new Person(), new Person(), new Person() }; - - // How may objects are created? - Person[][] persons2D = { { new Person(), new Person(), new Person() }, - { new Person(), new Person() } }; - - } + // Leaving additional comma is not a problem + int marks4[] = {25, 30, 50, 10, 5,}; + + // Default Values in Array + // numbers - 0 floating point - 0.0 Objects - null + + // Length of an array : Property length + int length = marks.length; + + // Printing a value from array + System.out.println(marks[2]); + + // Looping around an array - Enhanced for loop + for (int mark : marks) { + System.out.println(mark); + } + + // Fill array with same default value + Arrays.fill(marks, 100); // All array values will be 100 + + // Access 10th element when array has only length 5 + // Runtime Exception : ArrayIndexOutOfBoundsException + // System.out.println(marks[10]); + + // String Array: similar to int array. + String[] daysOfWeek = {"Sunday", "Monday", "Tuesday", "Wednesday", + "Thursday", "Friday", "Saturday"}; + + // Array can contain only values of same type. + // COMPILE ERROR!! + // int marks4[] = {10,15.0}; //10 is int 15.0 is float + + // Cross assigment of primitive arrays is ILLEGAL + int[] ints = new int[5]; + short[] shorts = new short[5]; + // ints = shorts;//COMPILER ERROR + // ints = (int[])shorts;//COMPILER ERROR + + // 2D Arrays + int[][] matrix = {{1, 2, 3}, {4, 5, 6}}; + + int[][] matrixA = new int[5][6]; + + // First dimension is necessary to create a 2D Array + // Best way to visualize a 2D array is as an array of arrays + // ArrayOnHeap.xls + matrixA = new int[3][];// FINE + // matrixA = new int[][5];//COMPILER ERROR + // matrixA = new int[][];//COMPILER ERROR + + // We can create a ragged 2D Array + matrixA[0] = new int[3]; + matrixA[0] = new int[4]; + matrixA[0] = new int[5]; + + // Above matrix has 2 rows 3 columns. + + // Accessing an element from 2D array: + System.out.println(matrix[0][0]); // 1 + System.out.println(matrix[1][2]); // 6 + + // Looping a 2D array: + for (int[] array : matrix) { + for (int number : array) { + System.out.println(number); + } + } + + // Printing a 1D Array + int marks5[] = {25, 30, 50, 10, 5}; + System.out.println(marks5); // [I@6db3f829 + System.out.println(Arrays.toString(marks5));// [25, 30, 50, 10, 5] + + // Printing a 2D Array + int[][] matrix3 = {{1, 2, 3}, {4, 5, 6}}; + System.out.println(matrix3); // [[I@1d5a0305 + System.out.println(Arrays.toString(matrix3)); + // [[I@6db3f829, [I@42698403] + System.out.println(Arrays.deepToString(matrix3)); + // [[1, 2, 3], [4, 5, 6]] + + // matrix3[0] is a 1D Array + System.out.println(matrix3[0]);// [I@86c347 + System.out.println(Arrays.toString(matrix3[0]));// [1, 2, 3] + + // Comparing Arrays + int[] numbers1 = {1, 2, 3}; + int[] numbers2 = {4, 5, 6}; + System.out.println(Arrays.equals(numbers1, numbers2)); // false + int[] numbers3 = {1, 2, 3}; + System.out.println(Arrays.equals(numbers1, numbers3)); // true + + // Sorting An Array + int rollNos[] = {12, 5, 7, 9}; + Arrays.sort(rollNos); + System.out.println(Arrays.toString(rollNos));// [5, 7, 9, 12] + + // Array of Objects(ArrayOnHeap.xls) + Person[] persons = new Person[3]; + + // Creating an array of Persons creates + // 4 Reference Variables to Person + // It does not create the Person Objects + // ArrayOnHeap.xls + System.out.println(persons[0]);// null + + // to assign objects we would need to create them + persons[0] = new Person(); + persons[1] = new Person(); + persons[2] = new Person(); + + // Other way + // How may objects are created? + Person[] personsAgain = {new Person(), new Person(), new Person()}; + + // How may objects are created? + Person[][] persons2D = { + {new Person(), new Person(), new Person()}, + {new Person(), new Person()}}; + + } } class Person { - long ssn; - String name; -} \ No newline at end of file + long ssn; + String name; +} From 58243de242972f019ac56076580b6abdb1f9516f Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Thu, 5 Dec 2024 12:16:10 -0600 Subject: [PATCH 02/14] more answers. --- readme.md | 1091 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 1048 insertions(+), 43 deletions(-) diff --git a/readme.md b/readme.md index 1cd4e15..4dc899f 100644 --- a/readme.md +++ b/readme.md @@ -209,12 +209,11 @@ Available in the resources for the course ### Strings -- - 16. Are all String’s immutable? - No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String` - object is created, its value cannot be changed. However, there are other classes like `StringBuilder` - and `StringBuffer` that provide mutable alternatives to `String`. These classes allow you to modify the contents - of the string without creating new objects. +- 16 . Are all String’s immutable? + No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String` + object is created, its value cannot be changed. However, there are other classes like `StringBuilder` + and `StringBuffer` that provide mutable alternatives to `String`. These classes allow you to modify the contents + of the string without creating new objects. - 17 . Where are String values stored in memory? In Java, `String` values are stored in a special memory area called the **String Pool**. The String Pool is part of the Java heap memory and is used to store unique `String` literals. When a `String` literal is created, the JVM checks @@ -403,28 +402,28 @@ Available in the resources for the course determine the object's bucket location. When overriding the `hashCode` method, it is important to follow these guidelines: - - **Consistency**: The hash code should be consistent for equal objects. - - **Equality**: Equal objects should have the same hash code. - - **Performance**: The hash code calculation should be efficient to avoid performance issues. + - **Consistency**: The hash code should be consistent for equal objects. + - **Equality**: Equal objects should have the same hash code. + - **Performance**: The hash code calculation should be efficient to avoid performance issues. Here is an example of how to override the `hashCode` method: - ```java - public class Person { - private String name; - private int age; - - public Person(String name, int age) { - this.name = name; - this.age = age; - } - - @Override - public int hashCode() { - return Objects.hash(name, age); - } + ```java + public class Person { + private String name; + private int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; } - ``` + + @Override + public int hashCode() { + return Objects.hash(name, age); + } + } + ``` In this example, the `hashCode` method is overridden to generate a hash code based on the `name` and `age` fields of `Person` objects. This ensures that equal objects have the same hash code, which is important for using objects in @@ -466,36 +465,521 @@ Available in the resources for the course - In the `Main` class, an instance of `Dog` can call both `eat()` and `bark()` methods. - 33 . What is method overloading? + Method overloading in Java is a feature that allows a class to have more than one method with the same name, provided + their parameter lists are different. This means that the methods must differ in the type, number, or order of their + parameters. Method overloading is a compile-time polymorphism technique, enabling different methods to perform similar + operations with varying inputs. It enhances code readability and reusability by allowing the same method name to be + used for different tasks, based on the arguments passed. Overloaded methods can have different return types, but this + alone is not enough for overloading; the parameter list must be different. - 34 . What is method overriding? - 35 . Can super class reference variable can hold an object of sub class? - 36 . Is multiple inheritance allowed in Java? - 37 . What is an interface? + An interface in Java is a reference type, similar to a class, that can contain only constants, method signatures, + default methods, static methods, and nested types. Interfaces cannot contain instance fields or constructors. They are + used to specify a set of methods that a class must implement. An interface is a way to achieve abstraction and + multiple inheritance in Java. + +Here is an example of an interface: + +```java +public interface Animal { + void eat(); + + void sleep(); + +} +``` + +A class that implements this interface must provide implementations for the `eat` and `sleep` methods: + +```java +public class Dog implements Animal { + @Override + public void eat() { + System.out.println("Dog is eating"); + } + + @Override + public void sleep() { + System.out.println("Dog is sleeping"); + } + +} +``` + - 38 . How do you define an interface? + + An interface in Java is defined using the `interface` keyword. It can contain abstract methods, default methods, + static methods, and constants. Here is an example: + + ```java + public interface Animal { + void eat(); + void sleep(); + } + ``` - 39 . How do you implement an interface? + To implement an interface in Java, a class must use the `implements` keyword and provide concrete implementations for + all the methods declared in the interface. Here is an example: + + ```java + public interface Animal { + void eat(); + void sleep(); + } + + public class Dog implements Animal { + @Override + public void eat() { + System.out.println("Dog is eating"); + } + + @Override + public void sleep() { + System.out.println("Dog is sleeping"); + } + } + ``` + + In this example: + - The `Animal` interface declares two methods: `eat` and `sleep`. + - The `Dog` class implements the `Animal` interface and provides concrete implementations for the `eat` and `sleep` + methods. + - 40 . Can you explain a few tricky things about interfaces? + Here are a few tricky things about interfaces in Java: + + 1. **Default Methods**: Interfaces can have default methods with a body. This allows adding new methods to + interfaces without breaking existing implementations. + ```java + public interface MyInterface { + void existingMethod(); + + default void newMethod() { + System.out.println("New default method"); + } + } + ``` + + 2. **Static Methods**: Interfaces can also have static methods. These methods belong to the interface and not to the + instance of the class implementing the interface. + ```java + public interface MyInterface { + static void staticMethod() { + System.out.println("Static method in interface"); + } + } + ``` + + 3. **Multiple Inheritance**: A class can implement multiple interfaces, allowing for a form of multiple inheritance. + However, if two interfaces have default methods with the same signature, the implementing class must override the + method to resolve the conflict. + ```java + public interface InterfaceA { + default void commonMethod() { + System.out.println("InterfaceA"); + } + } + + public interface InterfaceB { + default void commonMethod() { + System.out.println("InterfaceB"); + } + } + + public class MyClass implements InterfaceA, InterfaceB { + @Override + public void commonMethod() { + InterfaceA.super.commonMethod(); // or InterfaceB.super.commonMethod(); + } + } + ``` + + 4. **Private Methods**: Since Java 9, interfaces can have private methods. These methods can be used to share code + between default methods. + ```java + public interface MyInterface { + default void defaultMethod() { + privateMethod(); + } + + private void privateMethod() { + System.out.println("Private method in interface"); + } + } + ``` + + 5. **Inheritance of Constants**: Interfaces can declare constants, which are implicitly `public`, `static`, and + `final`. Implementing classes can access these constants directly. + ```java + public interface MyInterface { + int CONSTANT = 100; + } + + public class MyClass implements MyInterface { + public void printConstant() { + System.out.println(CONSTANT); + } + } + ``` - 41 . Can you extend an interface? + Yes, in Java, an interface can extend another interface. This allows the extending interface to inherit the abstract + methods of the parent interface. Here is an example: + + ```java + public interface Animal { + void eat(); + void sleep(); + } + + public interface Dog extends Animal { + void bark(); + } + ``` + In this example, the `Dog` interface extends the `Animal` interface, inheriting its methods (`eat` and `sleep`) and + adding a new method (`bark`). + - 42 . Can a class extend multiple interfaces? + Yes, in Java, a class can implement multiple interfaces. This allows the class to inherit the abstract methods of all + the interfaces it implements. Here is an example: + + ```java + public interface Animal { + void eat(); + void sleep(); + } + + public interface Pet { + void play(); + } + + public class Dog implements Animal, Pet { + @Override + public void eat() { + System.out.println("Dog is eating"); + } + + @Override + public void sleep() { + System.out.println("Dog is sleeping"); + } + + @Override + public void play() { + System.out.println("Dog is playing"); + } + } + ``` + In this example, the `Dog` class implements both the `Animal` and `Pet` interfaces, providing concrete implementations + for all the methods declared in the interfaces. - 43 . What is an abstract class? + An abstract class in Java is a class that cannot be instantiated on its own and is meant to be subclassed by other + classes. It can contain abstract methods, which are declared but not implemented, as well as concrete methods with + implementations. Abstract classes are used to define a common interface for subclasses and to provide default behavior + that can be overridden by subclasses. + + Here is an example of an abstract class: + + ```java + public abstract class Animal { + public abstract void eat(); + public void sleep() { + System.out.println("Animal is sleeping"); + } + } + ``` + + In this example, the `Animal` class is declared - 44 . When do you use an abstract class? + You should use an abstract class in Java when you want to define a common interface for a group of subclasses and + provide default behavior that can be overridden by the subclasses. Abstract classes are useful when you have a set of + classes that share common methods or fields, but each class may implement those methods differently. By defining an + abstract class with abstract methods, you can ensure that all subclasses provide their own implementations for those + methods. + + Here are some common scenarios where you might use an abstract class: + - When you want to define a template for a group of related classes. + - When you want to provide default implementations for some methods that can be overridden by subclasses. + - When you want to define a common interface for a group of classes that share similar behavior. + + Abstract classes are a powerful tool in Java for creating hierarchies of classes with shared behavior and structure. - 45 . How do you define an abstract method? + An abstract method in Java is a method that is declared but not implemented in an abstract class. Abstract methods do + not have a body and are meant to be implemented by subclasses. To define an abstract method, you use the `abstract` + keyword in the method signature. Here is an example: + + ```java + public abstract class Animal { + public abstract void eat(); + } + ``` + + In this example, the `eat` method is declared as abstract in the `Animal` class, meaning that any subclass of `Animal` + must provide an implementation for the `eat` method. - 46 . Compare abstract class vs interface? + - **Abstract Class**: + - Can have both abstract and concrete methods. + - Can have instance variables. + - Can provide method implementations. + - Can have constructors. + - Supports single inheritance. + - Can have access modifiers for methods and variables. + + - **Interface**: + - Can only have abstract methods (until Java 8, which introduced default and static methods). + - Cannot have instance variables (only constants). + - Cannot provide method implementations (except default and static methods from Java 8). + - Cannot have constructors. + - Supports multiple inheritance. + - All methods are implicitly public and abstract (except default and static methods). - 47 . What is a constructor? + A constructor in Java is a special type of method that is used to initialize objects. It is called when an object of a + class is created using the `new` keyword. Constructors have the same name as the class and do not have a return type. + They can have parameters to initialize the object's state. + + There are two types of constructors in Java: + - **Default Constructor**: A constructor with no parameters is called a default constructor. If a class does not + have + any constructor defined, a default constructor is provided by the compiler. + - **Parameterized Constructor**: A constructor with parameters is called a parameterized constructor. It allows you + to + pass values to initialize the object's state. + + Here is an example of a constructor: + + ```java + public class Person { + private String name; + private int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + } + ``` + + In this example, the `Person` class has a parameterized constructor that initializes the `name` and `age` fields of + the `Person` object. - 48 . What is a default constructor? + A default constructor in Java is a constructor that is automatically provided by the compiler if a class does not have + any constructor defined. It is a no-argument constructor that initializes the object with default values. The default + constructor is used when an object is created without passing any arguments to the constructor. + + Here is an example of a default constructor: + + ```java + public class Person { + private String name; + private int age; + + // Default constructor provided by the compiler + public Person() { + this.name = "Unknown"; + this.age = 0; + } + } + ``` + + In this example, the `Person` class does not have any constructor defined, so the compiler provides a default + constructor that initializes the `name` and `age` fields with default values. - 49 . Will this code compile? + Here is an example of a Java code segment that will not compile due to a missing semicolon: + + ```java + public class Example { + public static void main(String[] args) { + System.out.println("Hello, World!") // Missing semicolon here + } + } + ``` + Here is an example of a Java code segment that will compile successfully: + + ```java + public class Example { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } + } + ``` - 50 . How do you call a super class constructor from a constructor? + In Java, you can call a superclass constructor from a subclass constructor using the `super` keyword. This is useful + when you want to initialize the superclass part of the object before initializing the subclass part. The `super` + keyword must be the first statement in the subclass constructor + To call a superclass constructor from a constructor in Java, you use the `super` keyword followed by the appropriate + arguments. This must be the first statement in the subclass constructor. + + Here is an example: + + ```java + public class SuperClass { + public SuperClass(String message) { + System.out.println(message); + } + } + + public class SubClass extends SuperClass { + public SubClass() { + super("Hello from SuperClass"); + } + } + ``` + + In this example, the `SubClass` constructor calls the `SuperClass` constructor with the argument + `"Hello from SuperClass"`. - 51 . Will this code compile? - 52 . What is the use of this()? - 53 . Can a constructor be called directly from a method? + No, a constructor cannot be called directly from a method. Constructors are special methods that are called only when + an object is created. However, you can call another constructor from a constructor using `this()` or `super()`. If you + need to initialize an object within a method, you should create a new instance of the class using the `new` keyword. - 54 . Is a super class constructor called even when there is no explicit call from a sub class constructor? + Yes, a superclass constructor is always called, even if there is no explicit call from a subclass constructor. If a + subclass constructor does not explicitly call a superclass constructor using `super()`, the Java compiler + automatically inserts a call to the no-argument constructor of the superclass. If the superclass does not have a + no-argument constructor, a compilation error will occur. This ensures that the superclass part of the object is. ### Advanced object oriented concepts - 55 . What is polymorphism? + Polymorphism in Java is the ability of an object to take on many forms. It allows one interface to be used for a + general class of actions. The specific action is determined by the exact nature of the situation. Polymorphism is + mainly achieved through method overriding and method overloading. + + - **Method Overriding**: When a subclass provides a specific implementation of a method that is already defined in + its superclass. + - **Method Overloading**: When multiple methods have the same name but different parameters within the same class. + + Polymorphism allows for flexibility and the ability to define methods that can be used interchangeably, making the + code more modular and easier to maintain. - 56 . What is the use of instanceof operator in Java? + The `instanceof` operator in Java is used to test whether an object is an instance of a specific class or implements a + specific interface. It returns `true` if the object is an instance of the specified class or interface, and `false` + otherwise. This operator is useful for type checking before performing type-specific operations. + + Here is an example: + + ```java + public class Main { + public static void main(String[] args) { + Animal animal = new Dog(); + + if (animal instanceof Dog) { + Dog dog = (Dog) animal; + dog.bark(); + } + } + } + + class Animal { + // Animal class code + } + + class Dog extends Animal { + public void bark() { + System.out.println("Woof!"); + } + } + ``` + + In this example, the `instanceof` operator checks if the `animal` object is an instance of the `Dog` class before + casting it to `Dog` and calling the `bark` method. - 57 . What is coupling? + Coupling in software engineering refers to the degree of direct knowledge that one module has about another. It + measures how closely connected two routines or modules are. High coupling means that modules are highly dependent on + each other, which can make the system more difficult to understand, maintain, and modify. Low coupling, on the other + hand, means that modules are more independent, which can lead to a more modular and flexible system. + Coupling in Java refers to the degree of interdependence between classes or modules. It measures how closely classes + are connected or dependent on each other. Low coupling is desirable as it promotes modularity, reusability, and + maintainability of code. High coupling can lead to code that is difficult to change, test, and maintain. + + There are different types of coupling: + - **Tight Coupling**: Classes are highly dependent on each other, making changes in one class affect other classes. + - **Loose Coupling**: Classes are independent and interact through well-defined interfaces, reducing dependencies. + + To reduce coupling, it is important to follow good design principles like encapsulation, abstraction, and separation + of concerns. - 58 . What is cohesion? + Cohesion in software engineering refers to the degree to which the elements inside a module belong together. It + measures how closely related the responsibilities of a single module are. High cohesion means that the elements within + a module are strongly related and work together to achieve a common goal. Low cohesion, on the other hand, means that + the elements within a module are loosely related and may not work well together. + + Cohesion in Java refers to the degree to which the methods in a class are related and work together to achieve a + common purpose. High cohesion is desirable as it promotes code that is easier to understand, maintain, and test. Low + cohesion can lead to code that is difficult to follow, modify, and debug. - 59 . What is encapsulation? + Encapsulation in Java is a fundamental object-oriented programming concept that involves bundling the data (fields) + and the methods (functions) that operate on the data into a single unit, called a class. It restricts direct access to + some of the object's components, which can help prevent the accidental modification of data. Encapsulation is achieved + by: + + 1. Declaring the fields of a class as private. + 2. Providing public getter and setter methods to access and update the value of the private fields. + + Here is an example: + + ```java + public class Person { + private String name; + private int age; + + // Getter method for name + public String getName() { + return name; + } + + // Setter method for name + public void setName(String name) { + this.name = name; + } + + // Getter method for age + public int getAge() { + return age; + } + + // Setter method for age + public void setAge(int age) { + this.age = age; + } + } + ``` + + In this example, the `name` and `age` fields are private, and they can only be accessed and modified through the + public getter and setter methods. This ensures that the internal state of the object is protected and can only be + changed in a controlled manner. - 60 . What is an inner class? + An inner class in Java is a class that is defined within another class. Inner classes can access the members ( + including private members) of the outer class. There are four types of inner classes in Java: + + 1. **Member Inner Class**: A class defined within another class. + 2. **Static Nested Class**: A static class defined within another class. + 3. **Local Inner Class**: A class defined within a method. + 4. **Anonymous Inner Class**: A class without a name, defined and instantiated in a single statement. + + Here is an example of a member inner class: + + ```java + public class OuterClass { + private int outerField = 10; + + class InnerClass { + void display() { + System.out.println("Outer field value: " + outerField); + } + } + + public static void main(String[] args) { + OuterClass outer = new OuterClass(); + OuterClass.InnerClass inner = outer.new InnerClass(); + inner.display(); + } + } + ``` + + In this example, `InnerClass` is an inner class within `OuterClass` and can access the `outerField` of `OuterClass`. - 61 . What is a static inner class? - 62 . Can you create an inner class inside a method? - 63 . What is an anonymous class? @@ -512,11 +996,84 @@ Available in the resources for the course - 71 . What access types of variables can be accessed from a sub class in same package? - 72 . What access types of variables can be accessed from a sub class in different package? - 73 . What is the use of a final modifier on a class? + The `final` modifier on a class in Java is used to prevent the class from being subclassed. This means that no other + class can extend a `final` class. It is often used to create immutable classes or to ensure that the implementation of + the class cannot be altered through inheritance. + + Example: + ```java + public final class MyClass { + // class implementation + } + ``` + + In this example, `MyClass` cannot be extended by any other class. - 74 . What is the use of a final modifier on a method? + The `final` modifier on a method in Java is used to prevent the method from being overridden by subclasses. This + ensures that the implementation of the method remains unchanged in any subclass. + + Here is an example: + + ```java + public class SuperClass { + public final void display() { + System.out.println("This is a final method."); + } + } + + public class SubClass extends SuperClass { + // This will cause a compilation error + // public void display() { + // System.out.println("Trying to override a final method."); + // } + } + ``` + + In this example, the `display` method in `SuperClass` is marked as `final`, so it cannot be overridden in `SubClass`. - 75 . What is a final variable? - 76 . What is a final argument? + A final argument in Java is a method parameter that is declared with the `final` keyword. This means that once the + parameter is assigned a value, it cannot be changed within the method. This is useful for ensuring that the parameter + remains constant throughout the method execution. + + Here is an example: + + ```java + public void exampleMethod(final int finalParam) { + // finalParam cannot be reassigned + // finalParam = 10; // This would cause a compilation error + System.out.println(finalParam); + } + ``` + + In this example, `finalParam` is a final argument, and any attempt to reassign it within the method will result in a + compilation error. - 77 . What happens when a variable is marked as volatile? + When a variable is marked as `volatile` in Java, it ensures that the value of the variable is always read from and + written to the main memory, rather than being cached in a thread's local memory. This guarantees visibility of changes + to the variable across all threads. The `volatile` keyword is used to prevent memory consistency errors in concurrent + programming. - 78 . What is a static variable? + A static variable in Java is a variable that is shared among all instances of a class. It is declared using the + `static` keyword and belongs to the class rather than any specific instance. This means that there is only one copy of + the static variable, regardless of how many instances of the class are created. Static variables are often used for + constants or for sharing data among instances. + + Here is an example: + + ```java + public class Example { + // Static variable + static int staticVariable = 10; + + public static void main(String[] args) { + // Accessing static variable + System.out.println(Example.staticVariable); + } + } + ``` + + In this example, `staticVariable` is a static variable that can be accessed using the class name `Example`. ### conditions & loops @@ -545,10 +1102,53 @@ Available in the resources for the course - 97 . Is try without catch and finally allowed? - 98 . Can you explain the hierarchy of exception handling classes? - 99 . What is the difference between error and exception? -- 100 . What is the difference between checked exceptions and unchecked exceptions? + Errors and exceptions are both types of problems that can occur during the execution of a program, but they are + handled differently in Java: + + - **Error**: Errors are serious issues that are typically outside the control of the program and indicate problems + with the environment in which the application is running. Examples include `OutOfMemoryError`, + `StackOverflowError`, and `VirtualMachineError`. Errors are usually not recoverable and should not be caught or + handled by the application. + + - **Exception**: Exceptions are conditions that a program might want to catch and handle. They are divided into two + main categories: + - **Checked Exceptions**: These are exceptions that are checked at compile-time. The programmer is required to + handle these exceptions, either by using a `try-catch` block or by declaring them in the method signature + using the `throws` keyword. Examples include `IOException`, `SQLException`, and `FileNotFoundException`. + - **Unchecked Exceptions**: These are exceptions that are not checked at compile-time but occur during runtime. + They are subclasses of `RuntimeException` and do not need to be declared or caught. Examples include + `NullPointerException`, `ArrayIndexOutOfBoundsException`, and `IllegalArgumentException`. - 101 . How do you throw an exception from a method? -- 102 . What happens when you throw a checked exception from a method? -- 103 . What are the options you have to eliminate compilation errors when handling checked exceptions? + To throw an exception from a method in Java, you use the `throw` keyword followed by an instance of the exception + class. + This allows you to create and throw custom exceptions or to re-throw exceptions that were caught earlier. Here is an + example: + + ```java + public void exampleMethod() { + throw new RuntimeException("An error occurred"); + } + ``` + + In this example, the `exampleMethod` throws a `RuntimeException` with the message `"An error occurred"`. +- 102 . What happens when you throw a checked exception from a method?\ + When you throw a checked exception from a method in Java, you must either catch the exception using a `try-catch` + block or declare the exception using the `throws` keyword in the method signature. If you throw a checked exception + without handling it, the code will not compile, and you will get a compilation error. Checked exceptions are checked + at + compile-time to ensure that they are handled properly. +- 103 . What are the options you have to eliminate compilation errors when handling checked exceptions?\ + When handling checked exceptions in Java, you have several options to eliminate compilation errors: + + 1. **Catch the Exception**: Use a `try-catch` block to catch the exception and handle it within the method. + 2. **Declare the Exception**: Use the `throws` keyword in the method signature to declare the exception and pass the + responsibility of handling it to the calling method. + 3. **Handle the Exception**: Use a combination of catching and declaring the exception to handle it at different + levels of the call stack. + 4. **Wrap the Exception**: Wrap the checked exception in a runtime exception and re-throw it to avoid the need for + handling or declaring the exception. + 5. **Use a Lambda Expression**: Use a lambda expression to handle the exception in a functional interface that does + not declare checked exceptions. - 104 . How do you create a custom exception? - 105 . How do you handle multiple exception types with same exception handling block? - 106 . Can you explain about try with resources? @@ -557,13 +1157,132 @@ Available in the resources for the course ### Miscellaneous topics -- 109 . What are the default values in an array? +- 109 . What are the default values in an array? \ + In Java, when an array is created, the elements are initialized to default values based on the type of the array. The + default values for primitive types are as follows: + + - **byte**: 0 + - **short**: 0 + - **int**: 0 + - **long**: 0L + - **float**: 0.0f + - **double**: 0.0d + - **char**: '\u0000' + - **boolean**: false + + For reference types (objects), the default value is `null`. For example, the default value of an `int` array is `0`. - 110 . How do you loop around an array using enhanced for loop? - 111 . How do you print the content of an array? -- 112 . How do you compare two arrays? -- 113 . What is an enum? -- 114 . Can you use a switch statement around an enum? -- 115 . What are variable arguments or varargs? +- 112 . How do you compare two arrays? \ + In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method + compares the contents of two arrays to determine if they are equal. It takes two arrays as arguments and returns + `true` if the arrays are equal and `false` otherwise. The comparison is done element by element, so the arrays must + have the same length and contain the same elements in the same order. + + Here is an example: + + ```java + import java.util.Arrays; + + public class Main { + public static void main(String[] args) { + int[] array1 = {1, 2, 3, 4, 5}; + int[] array2 = {1, 2, 3, 4, 5}; + + boolean isEqual = Arrays.equals(array1, array2); + System.out.println("Arrays are equal: " + isEqual); + } + } + ``` + + In this example, the `Arrays.equals` method is used to compare the `array1` and `array2` arrays, and the result is + printed to the console. +- 113 . What is an enum? \ + An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to + define a set of named constants that can be used in place of integer values. Enumerations are defined using the + `enum` keyword and can contain constructors, methods, and fields. + + Here is an example of an enum: + + ```java + public enum Day { + SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY + } + ``` + + In this example, the `Day` enum defines a set of constants representing the days of the week. Each constant is + implicitly declared as a public static final field of the `Day` enum. +- 114 . Can you use a switch statement around an enum? \ + Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to + provide a more readable and type-safe alternative to using integer values. Each constant in the enum can be used as a + case label in the switch statement. + + Here is an example: + + ```java + public enum Day { + SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY + } + + public class Main { + public static void main(String[] args) { + Day day = Day.MONDAY; + + switch (day) { + case SUNDAY: + System.out.println("It's Sunday"); + break; + case MONDAY: + System.out.println("It's Monday"); + break; + case TUESDAY: + System.out.println("It's Tuesday"); + break; + case WEDNESDAY: + System.out.println("It's Wednesday"); + break; + case THURSDAY: + System.out.println("It's Thursday"); + break; + case FRIDAY: + System.out.println("It's Friday"); + break; + case SATURDAY: + System.out.println("It's Saturday"); + break; + default: + System.out.println("Invalid day"); + } + } + } + ``` + + In this example, the `Day` enum is used with a switch statement to print the day of the week based on the value of the + `day` variable. +- 115 . What are variable arguments or varargs? \ + Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This + feature was introduced in Java 5 and is denoted by an ellipsis (`...`) after the type of the last parameter in the + method signature. Varargs are represented as an array within the method and can be used to pass any number of + arguments of the specified type. + + Here is an example: + + ```java + public class Main { + public static void main(String[] args) { + printNumbers(1, 2, 3, 4, 5); + } + + public static void printNumbers(int... numbers) { + for (int number : numbers) { + System.out.println(number); + } + } + } + ``` + + In this example, the `printNumbers` method accepts a variable number of `int` arguments using varargs. The method + can be called with any number of `int` values, and they will be treated as an array within the method. - 116 . What are asserts used for? - 117 . When should asserts be used? - 118 . What is garbage collection? @@ -573,7 +1292,28 @@ Available in the resources for the course - 122 . What are initialization blocks? - 123 . What is a static initializer? - 124 . What is an instance initializer block? -- 125 . What is tokenizing? +- 125 . What is tokenizing? \ + Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done + to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing + and text processing tasks to analyze and manipulate text data. + + Here is an example of tokenizing a string: + + ```java + public class Main { + public static void main(String[] args) { + String sentence = "Hello, world! This is a sentence."; + String[] tokens = sentence.split(" "); + + for (String token : tokens) { + System.out.println(token); + } + } + } + ``` + + In this example, the `split` method is used to tokenize the `sentence` string by splitting it into individual words + based on the space character. The resulting tokens are then printed to the console. - 126 . Can you give an example of tokenizing? - 127 . What is serialization? - 128 . How do you serialize an object using serializable interface? @@ -585,16 +1325,281 @@ Available in the resources for the course ### Collections -- 134 . Why do we need collections in Java? -- 135 . What are the important interfaces in the collection hierarchy? -- 136 . What are the important methods that are declared in the collection interface? -- 137 . Can you explain briefly about the List interface? -- 138 . Explain about ArrayList with an example? -- 139 . Can an ArrayList have duplicate elements? -- 140 . How do you iterate around an ArrayList using iterator? -- 141 . How do you sort an ArrayList? -- 142 . How do you sort elements in an ArrayList using comparable interface? -- 143 . How do you sort elements in an ArrayList using comparator interface? +- 134 . Why do we need collections in Java? \ + Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to + organize and manage data in a structured and efficient manner. Collections offer a wide range of data structures and + algorithms that can be used to perform common operations like searching, sorting, and iterating over elements. By + using collections, developers can write more efficient and maintainable code, as well as take advantage of + pre-built data structures and algorithms provided by the Java Collections Framework. + + Some key reasons why we need collections in Java include: + - **Efficient Data Storage**: Collections provide efficient data structures for storing and organizing large amounts + of data. + - **Data Manipulation**: Collections offer methods for adding, removing, and updating elements in a structured + manner. + - **Algorithms and Operations**: Collections provide algorithms and operations for common tasks like searching, + sorting, and iterating over elements. + - **Type Safety**: Collections ensure type safety by providing generic classes that can store specific types of + objects. + - **Code Reusability**: Collections allow developers to reuse pre-built data structures and algorithms, saving time + and effort in implementing common tasks. + - **Scalability**: Collections can scale to handle large amounts of data and provide efficient performance for + various operations. + - **Flexibility**: Collections offer a wide range of data structures and interfaces that can be used to meet + different requirements and use cases. +- 135 . What are the important interfaces in the collection hierarchy? \ + The Java Collections Framework provides a set of interfaces that define the core functionality of collections in + Java. Some of the important interfaces in the collection hierarchy include: + + - **Collection**: The root interface in the collection hierarchy that defines basic operations for working with + collections of objects. + - **List**: An interface that extends `Collection` and represents an ordered collection of elements that allows + duplicates. + - **Set**: An interface that extends `Collection` and represents a collection of unique elements with no duplicates. + - **Queue**: An interface that extends `Collection` and represents a collection of elements in a specific order for + processing. + - **Deque**: An interface that extends `Queue` and represents a double-ended queue that allows elements to be added + or removed from both ends. + - **Map**: An interface that represents a collection of key-value pairs where each key is unique and maps to a + single value. + - **SortedSet**: An interface that extends `Set` and represents a set of elements sorted in a specific order. + - **SortedMap**: An interface that extends `Map` and represents a map of key-value pairs sorted by the keys. + - **NavigableSet**: An interface that extends `SortedSet` and provides navigation methods for accessing elements in + a set. + - **NavigableMap**: An interface that extends `SortedMap` and provides navigation methods for accessing key-value + pairs in a map. + + These interfaces define common methods and behaviors that are shared by different types of collections in Java. +- 136 . What are the important methods that are declared in the collection interface? \ + The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the + interface. Some of the important methods declared in the `Collection` interface include: + + - **add(E e)**: Adds the specified element to the collection. + - **addAll(Collection c)**: Adds all elements from the specified collection to the collection. + - **clear()**: Removes all elements from the collection. + - **contains(Object o)**: Returns `true` if the collection contains the specified element. + - **containsAll(Collection c)**: Returns `true` if the collection contains all elements from the specified + collection. + - **isEmpty()**: Returns `true` if the collection is empty. + - **iterator()**: Returns an iterator over the elements in the collection. + - **remove(Object o)**: Removes the specified element from the collection. + - **removeAll(Collection c)**: Removes all elements from the collection that are also present in the specified + collection. + - **retainAll(Collection c)**: Retains only the elements in the collection that are also present in the specified + collection. + - **size()**: Returns the number of elements in the collection. + - **toArray()**: Returns an array containing all elements in the collection. + + These methods provide basic functionality for working with collections in Java and are implemented by classes that + implement the `Collection` interface. +- 137 . Can you explain briefly about the List interface? \ + The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements + that allows duplicates. Lists maintain the insertion order of elements and provide methods for accessing, adding, + removing, and updating elements at specific positions. Some of the key features of the `List` interface include: + + - **Ordered Collection**: Lists maintain the order in which elements are added and allow duplicate elements. + - **Indexed Access**: Elements in a list can be accessed using an index, starting from zero. + - **Positional Operations**: Lists provide methods for adding, removing, and updating elements at specific positions. + - **Iterating Over Elements**: Lists can be iterated over using an iterator or enhanced for loop. + - **Sublist Operations**: Lists support operations for creating sublists of elements based on specific ranges. + - **Sorting**: Lists can be sorted using the `Collections.sort` method. + + The `List` interface is implemented by classes like `ArrayList`, `LinkedList`, and `Vector` in the Java Collections + Framework. It provides a flexible and efficient way to work with ordered collections of elements. +- 138 . Explain about ArrayList with an example? \ + The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic + resizing, fast random access, and efficient insertion and deletion of elements. `ArrayList` is part of the Java + Collections Framework and is commonly used to store and manipulate collections of objects. + + Here is an example of using `ArrayList`: + + ```java + import java.util.ArrayList; + + public class Main { + public static void main(String[] args) { + // Create an ArrayList of integers + ArrayList numbers = new ArrayList<>(); + + // Add elements to the ArrayList + numbers.add(1); + numbers.add(2); + numbers.add(3); + + // Access elements by index + System.out.println("Element at index 1: " + numbers.get(1)); + + // Remove an element + numbers.remove(1); + + // Iterate over the elements + for (Integer number : numbers) { + System.out.println(number); + } + } + } + ``` + + In this example, an `ArrayList` of integers is created, and elements are added, accessed, and removed from the list. + The `ArrayList` class provides a flexible and efficient way to work with collections of objects in Java. +- 139 . Can an ArrayList have duplicate elements? \ + Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an + `ArrayList` allows elements to be added multiple times. This means that an `ArrayList` can contain duplicate elements + at different positions in the list. The order of elements in an `ArrayList` is maintained, so duplicate elements will + appear in the list in the order in which they were added. +- 140 . How do you iterate around an ArrayList using iterator? \ + To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the + `ArrayList` class. The `iterator` method returns an `Iterator` object that can be used to traverse the elements in the + list. Here is an example: + + ```java + import java.util.ArrayList; + import java.util.Iterator; + + public class Main { + public static void main(String[] args) { + // Create an ArrayList of strings + ArrayList names = new ArrayList<>(); + names.add("Alice"); + names.add("Bob"); + names.add("Charlie"); + + // Get an iterator for the ArrayList + Iterator iterator = names.iterator(); + + // Iterate over the elements using the iterator + while (iterator.hasNext()) { + String name = iterator.next(); + System.out.println(name); + } + } + } + ``` + + In this example, an `ArrayList` of strings is created, and an iterator is obtained using the `iterator` method. The + iterator is then used to iterate over the elements in the list and print them to the console. +- 141 . How do you sort an ArrayList? \ + To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections` + class. The `Collections.sort` method sorts the elements in the list in ascending order based on their natural order or + a custom comparator. Here is an example: + + ```java + import java.util.ArrayList; + import java.util.Collections; + + public class Main { + public static void main(String[] args) { + // Create an ArrayList of integers + ArrayList numbers = new ArrayList<>(); + numbers.add(3); + numbers.add(1); + numbers.add(2); + + // Sort the ArrayList + Collections.sort(numbers); + + // Print the sorted elements + for (Integer number : numbers) { + System.out.println(number); + } + } + } + ``` + + In this example, an `ArrayList` of integers is created, and the `Collections.sort` method is used to sort the elements + in the list. The sorted elements are then printed to the console in ascending order. +- 142 . How do you sort elements in an ArrayList using comparable interface? \ + To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable` + interface in the class of the elements you want to sort. The `Comparable` interface defines a `compareTo` method that + compares the current object with another object and returns a negative, zero, or positive value based on their + ordering. Here is an example: + + ```java + import java.util.ArrayList; + import java.util.Collections; + + public class Person implements Comparable { + private String name; + private int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + @Override + public int compareTo(Person other) { + return this.age - other.age; + } + + public static void main(String[] args) { + // Create an ArrayList of Person objects + ArrayList people = new ArrayList<>(); + people.add(new Person("Alice", 25)); + people.add(new Person("Bob", 30)); + people.add(new Person("Charlie", 20)); + + // Sort the ArrayList using the Comparable interface + Collections.sort(people); + + // Print the sorted elements + for (Person person : people) { + System.out.println(person.name + " - " + person.age); + } + } + } + ``` + + In this example, the `Person` class implements the `Comparable` interface and defines a `compareTo` method that + compares `Person` objects based on their age. The `Collections.sort` method is then used to sort the `ArrayList` of + `Person` objects based on their age. +- 143 . How do you sort elements in an ArrayList using comparator interface? \ + To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator + class that implements the `Comparator` interface. The `Comparator` interface defines a `compare` method that compares + two objects and returns a negative, zero, or positive value based on their ordering. Here is an example: + + ```java + import java.util.ArrayList; + import java.util.Collections; + import java.util.Comparator; + + public class Person { + private String name; + private int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + public static void main(String[] args) { + // Create an ArrayList of Person objects + ArrayList people = new ArrayList<>(); + people.add(new Person("Alice", 25)); + people.add(new Person("Bob", 30)); + people.add(new Person("Charlie", 20)); + + // Create a custom comparator to sort by name + Comparator nameComparator = Comparator.comparing(Person::getName); + + // Sort the ArrayList using the Comparator interface + Collections.sort(people, nameComparator); + + // Print the sorted elements + for (Person person : people) { + System.out.println(person.name + " - " + person.age); + } + } + + public String getName() { + return name; + } + } + ``` + + In this example, a custom comparator class is created using the `Comparator.comparing` method to sort `Person` objects + based on their name. The `Collections.sort` method is then used to sort the `ArrayList` of `Person` objects using the + custom comparator. - 144 . What is vector class? How is it different from an ArrayList? - 145 . What is linkedList? What interfaces does it implement? How is it different from an ArrayList? - 146 . Can you briefly explain about the Set interface? From fc009f4e1ebf2ea0930f10655b013a815cb4ea52 Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Fri, 6 Dec 2024 13:07:59 -0600 Subject: [PATCH 03/14] more changes are done! --- readme.md | 2113 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 1941 insertions(+), 172 deletions(-) diff --git a/readme.md b/readme.md index 4dc899f..602f364 100644 --- a/readme.md +++ b/readme.md @@ -119,7 +119,7 @@ Available in the resources for the course 2. **Using Static Factory Methods**: The wrapper classes provide static factory methods like `valueOf` to create instances. ```java - Integer intObj1 = Integer.valueOf(10); + Integer intObj1 = 10; Integer intObj2 = Integer.valueOf("10"); ``` - 10 . What are differences in the two ways of creating Wrapper classes? @@ -210,10 +210,10 @@ Available in the resources for the course ### Strings - 16 . Are all String’s immutable? - No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String` - object is created, its value cannot be changed. However, there are other classes like `StringBuilder` - and `StringBuffer` that provide mutable alternatives to `String`. These classes allow you to modify the contents - of the string without creating new objects. + No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String` + object is created, its value cannot be changed. However, there are other classes like `StringBuilder` + and `StringBuffer` that provide mutable alternatives to `String`. These classes allow you to modify the contents + of the string without creating new objects. - 17 . Where are String values stored in memory? In Java, `String` values are stored in a special memory area called the **String Pool**. The String Pool is part of the Java heap memory and is used to store unique `String` literals. When a `String` literal is created, the JVM checks @@ -1138,7 +1138,7 @@ public class Dog implements Animal { at compile-time to ensure that they are handled properly. - 103 . What are the options you have to eliminate compilation errors when handling checked exceptions?\ - When handling checked exceptions in Java, you have several options to eliminate compilation errors: + When handling checked exceptions in Java, you have several options to eliminate compilation errors: 1. **Catch the Exception**: Use a `try-catch` block to catch the exception and handle it within the method. 2. **Declare the Exception**: Use the `throws` keyword in the method signature to declare the exception and pass the @@ -1158,8 +1158,8 @@ public class Dog implements Animal { ### Miscellaneous topics - 109 . What are the default values in an array? \ - In Java, when an array is created, the elements are initialized to default values based on the type of the array. The - default values for primitive types are as follows: + In Java, when an array is created, the elements are initialized to default values based on the type of the array. The + default values for primitive types are as follows: - **byte**: 0 - **short**: 0 @@ -1174,12 +1174,12 @@ public class Dog implements Animal { - 110 . How do you loop around an array using enhanced for loop? - 111 . How do you print the content of an array? - 112 . How do you compare two arrays? \ - In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method - compares the contents of two arrays to determine if they are equal. It takes two arrays as arguments and returns - `true` if the arrays are equal and `false` otherwise. The comparison is done element by element, so the arrays must - have the same length and contain the same elements in the same order. + In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method + compares the contents of two arrays to determine if they are equal. It takes two arrays as arguments and returns + `true` if the arrays are equal and `false` otherwise. The comparison is done element by element, so the arrays must + have the same length and contain the same elements in the same order. - Here is an example: + Here is an example: ```java import java.util.Arrays; @@ -1195,14 +1195,14 @@ public class Dog implements Animal { } ``` - In this example, the `Arrays.equals` method is used to compare the `array1` and `array2` arrays, and the result is - printed to the console. + In this example, the `Arrays.equals` method is used to compare the `array1` and `array2` arrays, and the result is + printed to the console. - 113 . What is an enum? \ - An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to - define a set of named constants that can be used in place of integer values. Enumerations are defined using the - `enum` keyword and can contain constructors, methods, and fields. + An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to + define a set of named constants that can be used in place of integer values. Enumerations are defined using the + `enum` keyword and can contain constructors, methods, and fields. - Here is an example of an enum: + Here is an example of an enum: ```java public enum Day { @@ -1210,14 +1210,14 @@ public class Dog implements Animal { } ``` - In this example, the `Day` enum defines a set of constants representing the days of the week. Each constant is - implicitly declared as a public static final field of the `Day` enum. + In this example, the `Day` enum defines a set of constants representing the days of the week. Each constant is + implicitly declared as a public static final field of the `Day` enum. - 114 . Can you use a switch statement around an enum? \ - Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to - provide a more readable and type-safe alternative to using integer values. Each constant in the enum can be used as a - case label in the switch statement. + Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to + provide a more readable and type-safe alternative to using integer values. Each constant in the enum can be used as a + case label in the switch statement. - Here is an example: + Here is an example: ```java public enum Day { @@ -1257,15 +1257,15 @@ public class Dog implements Animal { } ``` - In this example, the `Day` enum is used with a switch statement to print the day of the week based on the value of the - `day` variable. + In this example, the `Day` enum is used with a switch statement to print the day of the week based on the value of the + `day` variable. - 115 . What are variable arguments or varargs? \ - Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This - feature was introduced in Java 5 and is denoted by an ellipsis (`...`) after the type of the last parameter in the - method signature. Varargs are represented as an array within the method and can be used to pass any number of - arguments of the specified type. + Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This + feature was introduced in Java 5 and is denoted by an ellipsis (`...`) after the type of the last parameter in the + method signature. Varargs are represented as an array within the method and can be used to pass any number of + arguments of the specified type. - Here is an example: + Here is an example: ```java public class Main { @@ -1281,8 +1281,8 @@ public class Dog implements Animal { } ``` - In this example, the `printNumbers` method accepts a variable number of `int` arguments using varargs. The method - can be called with any number of `int` values, and they will be treated as an array within the method. + In this example, the `printNumbers` method accepts a variable number of `int` arguments using varargs. The method + can be called with any number of `int` values, and they will be treated as an array within the method. - 116 . What are asserts used for? - 117 . When should asserts be used? - 118 . What is garbage collection? @@ -1293,11 +1293,11 @@ public class Dog implements Animal { - 123 . What is a static initializer? - 124 . What is an instance initializer block? - 125 . What is tokenizing? \ - Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done - to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing - and text processing tasks to analyze and manipulate text data. + Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done + to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing + and text processing tasks to analyze and manipulate text data. - Here is an example of tokenizing a string: + Here is an example of tokenizing a string: ```java public class Main { @@ -1312,8 +1312,8 @@ public class Dog implements Animal { } ``` - In this example, the `split` method is used to tokenize the `sentence` string by splitting it into individual words - based on the space character. The resulting tokens are then printed to the console. + In this example, the `split` method is used to tokenize the `sentence` string by splitting it into individual words + based on the space character. The resulting tokens are then printed to the console. - 126 . Can you give an example of tokenizing? - 127 . What is serialization? - 128 . How do you serialize an object using serializable interface? @@ -1326,13 +1326,13 @@ public class Dog implements Animal { ### Collections - 134 . Why do we need collections in Java? \ - Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to - organize and manage data in a structured and efficient manner. Collections offer a wide range of data structures and - algorithms that can be used to perform common operations like searching, sorting, and iterating over elements. By - using collections, developers can write more efficient and maintainable code, as well as take advantage of - pre-built data structures and algorithms provided by the Java Collections Framework. + Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to + organize and manage data in a structured and efficient manner. Collections offer a wide range of data structures and + algorithms that can be used to perform common operations like searching, sorting, and iterating over elements. By + using collections, developers can write more efficient and maintainable code, as well as take advantage of + pre-built data structures and algorithms provided by the Java Collections Framework. - Some key reasons why we need collections in Java include: + Some key reasons why we need collections in Java include: - **Efficient Data Storage**: Collections provide efficient data structures for storing and organizing large amounts of data. - **Data Manipulation**: Collections offer methods for adding, removing, and updating elements in a structured @@ -1348,8 +1348,8 @@ public class Dog implements Animal { - **Flexibility**: Collections offer a wide range of data structures and interfaces that can be used to meet different requirements and use cases. - 135 . What are the important interfaces in the collection hierarchy? \ - The Java Collections Framework provides a set of interfaces that define the core functionality of collections in - Java. Some of the important interfaces in the collection hierarchy include: + The Java Collections Framework provides a set of interfaces that define the core functionality of collections in + Java. Some of the important interfaces in the collection hierarchy include: - **Collection**: The root interface in the collection hierarchy that defines basic operations for working with collections of objects. @@ -1369,10 +1369,10 @@ public class Dog implements Animal { - **NavigableMap**: An interface that extends `SortedMap` and provides navigation methods for accessing key-value pairs in a map. - These interfaces define common methods and behaviors that are shared by different types of collections in Java. + These interfaces define common methods and behaviors that are shared by different types of collections in Java. - 136 . What are the important methods that are declared in the collection interface? \ - The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the - interface. Some of the important methods declared in the `Collection` interface include: + The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the + interface. Some of the important methods declared in the `Collection` interface include: - **add(E e)**: Adds the specified element to the collection. - **addAll(Collection c)**: Adds all elements from the specified collection to the collection. @@ -1390,28 +1390,29 @@ public class Dog implements Animal { - **size()**: Returns the number of elements in the collection. - **toArray()**: Returns an array containing all elements in the collection. - These methods provide basic functionality for working with collections in Java and are implemented by classes that - implement the `Collection` interface. + These methods provide basic functionality for working with collections in Java and are implemented by classes that + implement the `Collection` interface. - 137 . Can you explain briefly about the List interface? \ - The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements - that allows duplicates. Lists maintain the insertion order of elements and provide methods for accessing, adding, - removing, and updating elements at specific positions. Some of the key features of the `List` interface include: + The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements + that allows duplicates. Lists maintain the insertion order of elements and provide methods for accessing, adding, + removing, and updating elements at specific positions. Some of the key features of the `List` interface include: - **Ordered Collection**: Lists maintain the order in which elements are added and allow duplicate elements. - **Indexed Access**: Elements in a list can be accessed using an index, starting from zero. - - **Positional Operations**: Lists provide methods for adding, removing, and updating elements at specific positions. + - **Positional Operations**: Lists provide methods for adding, removing, and updating elements at specific + positions. - **Iterating Over Elements**: Lists can be iterated over using an iterator or enhanced for loop. - **Sublist Operations**: Lists support operations for creating sublists of elements based on specific ranges. - **Sorting**: Lists can be sorted using the `Collections.sort` method. - The `List` interface is implemented by classes like `ArrayList`, `LinkedList`, and `Vector` in the Java Collections - Framework. It provides a flexible and efficient way to work with ordered collections of elements. + The `List` interface is implemented by classes like `ArrayList`, `LinkedList`, and `Vector` in the Java Collections + Framework. It provides a flexible and efficient way to work with ordered collections of elements. - 138 . Explain about ArrayList with an example? \ - The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic - resizing, fast random access, and efficient insertion and deletion of elements. `ArrayList` is part of the Java - Collections Framework and is commonly used to store and manipulate collections of objects. + The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic + resizing, fast random access, and efficient insertion and deletion of elements. `ArrayList` is part of the Java + Collections Framework and is commonly used to store and manipulate collections of objects. - Here is an example of using `ArrayList`: + Here is an example of using `ArrayList`: ```java import java.util.ArrayList; @@ -1440,17 +1441,17 @@ public class Dog implements Animal { } ``` - In this example, an `ArrayList` of integers is created, and elements are added, accessed, and removed from the list. - The `ArrayList` class provides a flexible and efficient way to work with collections of objects in Java. + In this example, an `ArrayList` of integers is created, and elements are added, accessed, and removed from the list. + The `ArrayList` class provides a flexible and efficient way to work with collections of objects in Java. - 139 . Can an ArrayList have duplicate elements? \ - Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an - `ArrayList` allows elements to be added multiple times. This means that an `ArrayList` can contain duplicate elements - at different positions in the list. The order of elements in an `ArrayList` is maintained, so duplicate elements will - appear in the list in the order in which they were added. + Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an + `ArrayList` allows elements to be added multiple times. This means that an `ArrayList` can contain duplicate elements + at different positions in the list. The order of elements in an `ArrayList` is maintained, so duplicate elements will + appear in the list in the order in which they were added. - 140 . How do you iterate around an ArrayList using iterator? \ - To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the - `ArrayList` class. The `iterator` method returns an `Iterator` object that can be used to traverse the elements in the - list. Here is an example: + To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the + `ArrayList` class. The `iterator` method returns an `Iterator` object that can be used to traverse the elements in the + list. Here is an example: ```java import java.util.ArrayList; @@ -1476,12 +1477,12 @@ public class Dog implements Animal { } ``` - In this example, an `ArrayList` of strings is created, and an iterator is obtained using the `iterator` method. The - iterator is then used to iterate over the elements in the list and print them to the console. + In this example, an `ArrayList` of strings is created, and an iterator is obtained using the `iterator` method. The + iterator is then used to iterate over the elements in the list and print them to the console. - 141 . How do you sort an ArrayList? \ - To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections` - class. The `Collections.sort` method sorts the elements in the list in ascending order based on their natural order or - a custom comparator. Here is an example: + To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections` + class. The `Collections.sort` method sorts the elements in the list in ascending order based on their natural order or + a custom comparator. Here is an example: ```java import java.util.ArrayList; @@ -1506,13 +1507,13 @@ public class Dog implements Animal { } ``` - In this example, an `ArrayList` of integers is created, and the `Collections.sort` method is used to sort the elements - in the list. The sorted elements are then printed to the console in ascending order. + In this example, an `ArrayList` of integers is created, and the `Collections.sort` method is used to sort the elements + in the list. The sorted elements are then printed to the console in ascending order. - 142 . How do you sort elements in an ArrayList using comparable interface? \ - To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable` - interface in the class of the elements you want to sort. The `Comparable` interface defines a `compareTo` method that - compares the current object with another object and returns a negative, zero, or positive value based on their - ordering. Here is an example: + To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable` + interface in the class of the elements you want to sort. The `Comparable` interface defines a `compareTo` method that + compares the current object with another object and returns a negative, zero, or positive value based on their + ordering. Here is an example: ```java import java.util.ArrayList; @@ -1550,13 +1551,13 @@ public class Dog implements Animal { } ``` - In this example, the `Person` class implements the `Comparable` interface and defines a `compareTo` method that - compares `Person` objects based on their age. The `Collections.sort` method is then used to sort the `ArrayList` of - `Person` objects based on their age. + In this example, the `Person` class implements the `Comparable` interface and defines a `compareTo` method that + compares `Person` objects based on their age. The `Collections.sort` method is then used to sort the `ArrayList` of + `Person` objects based on their age. - 143 . How do you sort elements in an ArrayList using comparator interface? \ - To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator - class that implements the `Comparator` interface. The `Comparator` interface defines a `compare` method that compares - two objects and returns a negative, zero, or positive value based on their ordering. Here is an example: + To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator + class that implements the `Comparator` interface. The `Comparator` interface defines a `compare` method that compares + two objects and returns a negative, zero, or positive value based on their ordering. Here is an example: ```java import java.util.ArrayList; @@ -1597,106 +1598,1874 @@ public class Dog implements Animal { } ``` - In this example, a custom comparator class is created using the `Comparator.comparing` method to sort `Person` objects - based on their name. The `Collections.sort` method is then used to sort the `ArrayList` of `Person` objects using the - custom comparator. -- 144 . What is vector class? How is it different from an ArrayList? -- 145 . What is linkedList? What interfaces does it implement? How is it different from an ArrayList? -- 146 . Can you briefly explain about the Set interface? -- 147 . What are the important interfaces related to the Set interface? -- 148 . What is the difference between Set and sortedSet interfaces? -- 149 . Can you give examples of classes that implement the Set interface? -- 150 . What is a HashSet? -- 151 . What is a linkedHashSet? How is different from a HashSet? -- 152 . What is a TreeSet? How is different from a HashSet? -- 153 . Can you give examples of implementations of navigableSet? -- 154 . Explain briefly about Queue interface? -- 155 . What are the important interfaces related to the Queue interface? -- 156 . Explain about the Deque interface? -- 157 . Explain the BlockingQueue interface? -- 158 . What is a priorityQueue? -- 159 . Can you give example implementations of the BlockingQueue interface? -- 160 . Can you briefly explain about the Map interface? -- 161 . What is difference between Map and sortedMap? -- 162 . What is a HashMap? -- 163 . What are the different methods in a Hash Map? -- 164 . What is a TreeMap? How is different from a HashMap? -- 165 . Can you give an example of implementation of navigableMap interface? -- 166 . What are the static methods present in the collections class? + In this example, a custom comparator class is created using the `Comparator.comparing` method to sort `Person` objects + based on their name. The `Collections.sort` method is then used to sort the `ArrayList` of `Person` objects using the + custom comparator. +- 144 . What is vector class? How is it different from an ArrayList? \ + The `Vector` class in Java is a legacy collection class that is similar to an `ArrayList` but is synchronized. This + means that access to a `Vector` is thread-safe, making it suitable for use in multi-threaded environments. The + `Vector` class provides methods for adding, removing, and accessing elements in the list, as well as for iterating + over the elements. + + Some key differences between `Vector` and `ArrayList` include: + - **Synchronization**: `Vector` is synchronized, while `ArrayList` is not. This means that access to a `Vector` is + thread-safe, but it can be slower in single-threaded applications. + - **Performance**: `ArrayList` is generally faster than `Vector` because it is not synchronized. In single-threaded + applications, `ArrayList` is preferred for its better performance. + - **Legacy**: `Vector` is a legacy class that was introduced in Java 1.0, while `ArrayList` is part of the Java + Collections Framework introduced in Java 2. `ArrayList` is the preferred choice for most applications due to its + better performance and flexibility. + + Despite these differences, both `Vector` and `ArrayList` provide similar functionality for working with collections of + objects in Java. +- 145 . What is linkedList? What interfaces does it implement? How is it different from an ArrayList? \ + The `LinkedList` class in Java is a doubly-linked list implementation of the `List` interface. It provides efficient + insertion and deletion of elements at the beginning, middle, and end of the list. `LinkedList` implements the `List`, + `Deque`, and `Queue` interfaces, making it suitable for a wide range of operations. + + Some key differences between `LinkedList` and `ArrayList` include: + - **Underlying Data Structure**: `ArrayList` uses an array to store elements, while `LinkedList` uses a + doubly-linked + list. This makes `LinkedList` more efficient for adding and removing elements in the middle of the list. + - **Performance**: `ArrayList` is generally faster than `LinkedList` for random access and iteration, as it provides + constant-time access to elements. `LinkedList` is more efficient for adding and removing elements in the middle of + the list. + - **Memory Overhead**: `LinkedList` has higher memory overhead than `ArrayList` due to the additional pointers + required for the linked list structure. This can impact performance and memory usage in large collections. + + Despite these differences, both `LinkedList` and `ArrayList` provide similar functionality for working with + collections of objects in Java, and the choice between them depends on the specific requirements of the application. +- 146 . Can you briefly explain about the Set interface? \ + The `Set` interface in Java extends the `Collection` interface and represents a collection of unique elements with no + duplicates. Sets do not allow duplicate elements, and they maintain no specific order of elements. The `Set` + interface provides methods for adding, removing, and checking the presence of elements in the set. + + Some key features of the `Set` interface include: + - **Unique Elements**: Sets do not allow duplicate elements, ensuring that each element is unique. + - **No Specific Order**: Sets do not maintain the order of elements, so the order in which elements are added may + not + be preserved. + - **Fast Lookup**: Sets provide fast lookup operations for checking the presence of elements. + - **Iterating Over Elements**: Sets can be iterated over using an iterator or enhanced for loop. + - **Implementations**: The `Set` interface is implemented by classes like `HashSet`, `LinkedHashSet`, and `TreeSet` + in the Java Collections Framework. + + The `Set` interface is commonly used to store collections of unique elements and perform operations like union, + intersection, and difference on sets. It provides a flexible and efficient way to work with sets of objects in Java. +- 147 . What are the important interfaces related to the Set interface? \ + The `Set` interface in Java is related to several other interfaces in the Java Collections Framework that provide + additional functionality for working with sets of elements. Some of the important interfaces related to the `Set` + interface include: + + - **SortedSet**: An interface that extends `Set` and represents a set of elements sorted in a specific order. Sorted + sets maintain the order of elements based on their natural ordering or a custom comparator. + - **NavigableSet**: An interface that extends `SortedSet` and provides navigation methods for accessing elements in + a + set. Navigable sets support operations like finding the closest element, finding subsets, and performing range + queries. + + These interfaces build on the functionality provided by the `Set` interface and offer additional features for working + with sets of elements in Java. +- 148 . What is the difference between Set and sortedSet interfaces? \ + The `Set` and `SortedSet` interfaces in Java are related interfaces in the Java Collections Framework that represent + collections of unique elements with no duplicates. The main difference between `Set` and `SortedSet` is the ordering + of elements: + + - **Set**: The `Set` interface does not maintain the order of elements and does not provide any guarantees about the + order in which elements are stored. Sets are typically implemented using hash-based data structures like `HashSet` + and `LinkedHashSet`. + - **SortedSet**: The `SortedSet` interface extends `Set` and represents a set of elements sorted in a specific + order. + Sorted sets maintain the order of elements based on their natural ordering or a custom comparator. Common + implementations of `SortedSet` include `TreeSet` and `ConcurrentSkipListSet`. + + In summary, `Set` is a general interface for collections of unique elements, while `SortedSet` is a specialized + interface for sets that maintain the order of elements based on a specific ordering. +- 149 . Can you give examples of classes that implement the Set interface? \ + The `Set` interface in Java is implemented by several classes in the Java Collections Framework that provide + different implementations of sets. Some of the common classes that implement the `Set` interface include: + + - **HashSet**: A class that implements the `Set` interface using a hash table data structure. `HashSet` provides + constant-time performance for basic operations like adding, removing, and checking the presence of elements. + - **LinkedHashSet**: A class that extends `HashSet` and maintains the order of elements based on their insertion + order. `LinkedHashSet` provides predictable iteration order and constant-time performance for basic operations. + - **TreeSet**: A class that implements the `SortedSet` interface using a red-black tree data structure. `TreeSet` + maintains the order of elements based on their natural ordering or a custom comparator and provides log-time + performance for basic operations. + + These classes provide different implementations of sets with varying performance characteristics and ordering + guarantees. +- 150 . What is a HashSet? How is it different from a TreeSet? \ + `HashSet` and `TreeSet` are two common implementations of the `Set` interface in Java that provide different + characteristics for working with sets of elements. The main differences between `HashSet` and `TreeSet` include: + + - **Underlying Data Structure**: `HashSet` uses a hash table data structure to store elements, providing constant + time performance for basic operations like adding, removing, and checking the presence of elements. `TreeSet` uses + a red-black tree data structure to maintain the order of elements based on their natural ordering or a custom + comparator. + - **Ordering**: `HashSet` does not maintain the order of elements and does not provide any guarantees about the + order in which elements are stored. `TreeSet` maintains the order of elements based on their natural ordering or a + custom comparator, allowing elements to be sorted in a specific order. + - **Performance**: `HashSet` provides constant-time performance for basic operations, making it efficient for + adding, removing, and checking the presence of elements. `TreeSet` provides log-time performance for basic + operations, making it efficient for maintaining the order of elements and performing range queries. + + In summary, `HashSet` is a hash-based set implementation with no ordering guarantees, while `TreeSet` is a tree-based + set implementation that maintains the order of elements based on their natural ordering or a custom comparator. +- 151 . What is a linkedHashSet? How is different from a HashSet? \ + `LinkedHashSet` is a class in Java that extends `HashSet` and maintains the order of elements based on their insertion + order. Unlike `HashSet`, which does not maintain the order of elements, `LinkedHashSet` provides predictable iteration + order and constant-time performance for basic operations. `LinkedHashSet` is implemented using a hash table with a + linked list that maintains the order of elements as they are added to the set. + + Some key differences between `LinkedHashSet` and `HashSet` include: + - **Ordering**: `LinkedHashSet` maintains the order of elements based on their insertion order, providing + predictable + iteration order. `HashSet` does not maintain the order of elements and does not provide any guarantees about the + order in which elements are stored. + - **Underlying Data Structure**: `LinkedHashSet` uses a hash table with a linked list to maintain the order of + elements, while `HashSet` uses a hash table data structure. This linked list allows `LinkedHashSet` to provide + constant-time performance for maintaining the order of elements. + + In summary, `LinkedHashSet` is a hash-based set implementation that maintains the order of elements based on their + insertion order, providing predictable iteration order and constant-time performance for basic operations. +- 152 . What is a TreeSet? How is different from a HashSet? \ + `TreeSet` is a class in Java that implements the `SortedSet` interface using a red-black tree data structure. + `TreeSet` + maintains the order of elements based on their natural ordering or a custom comparator, allowing elements to be sorted + in a specific order. Unlike `HashSet`, which does not maintain the order of elements, `TreeSet` provides log-time + performance for basic operations like adding, removing, and checking the presence of elements. + + Some key differences between `TreeSet` and `HashSet` include: + - **Ordering**: `TreeSet` maintains the order of elements based on their natural ordering or a custom comparator, + allowing elements to be sorted in a specific order. `HashSet` does not maintain the order of elements and does + not provide any guarantees about the order in which elements are stored. + - **Underlying Data Structure**: `TreeSet` uses a red-black tree data structure to maintain the order of elements, + while `HashSet` uses a hash table data structure. This tree structure allows `TreeSet` to provide log-time + performance for maintaining the order of elements. + + In summary, `TreeSet` is a tree-based set implementation that maintains the order of elements based on their natural + ordering or a custom comparator, providing efficient sorting and range query operations. `HashSet` is a hash-based set + implementation with no ordering guarantees. +- 153 . Can you give examples of implementations of navigableSet? \ + The `NavigableSet` interface in Java is implemented by the `TreeSet` and `ConcurrentSkipListSet` classes in the Java + Collections Framework. These classes provide implementations of navigable sets that support navigation methods for + accessing elements in a set. Some examples of implementations of `NavigableSet` include: + + - **TreeSet**: A class that implements the `NavigableSet` interface using a red-black tree data structure. `TreeSet` + maintains the order of elements based on their natural ordering or a custom comparator and provides navigation + methods for accessing elements in the set. + - **ConcurrentSkipListSet**: A class that implements the `NavigableSet` interface using a skip list data structure. + `ConcurrentSkipListSet` provides a scalable and concurrent implementation of a navigable set that supports + efficient navigation and access to elements. + + These classes provide efficient and flexible implementations of navigable sets that allow elements to be accessed, + added, and removed based on their order in the set. +- 154 . Explain briefly about Queue interface? \ + The `Queue` interface in Java represents a collection of elements in a specific order for processing. Queues follow + the First-In-First-Out (FIFO) order, meaning that elements are added to the end of the queue and removed from the + front of the queue. The `Queue` interface provides methods for adding, removing, and accessing elements in the queue, + as well as for checking the presence of elements. + + Some key features of the `Queue` interface include: + - **FIFO Order**: Queues maintain the order in which elements are added and remove elements in the order they were + added. + - **Adding and Removing Elements**: Queues provide methods for adding elements to the end of the queue and removing + elements from the front of the queue. + - **Iterating Over Elements**: Queues can be iterated over using an iterator or enhanced for loop. + - **Implementations**: The `Queue` interface is implemented by classes like `LinkedList`, `ArrayDeque`, and + `PriorityQueue` in the Java Collections Framework. + + The `Queue` interface is commonly used to represent collections of elements that need to be processed in a specific + order, such as tasks in a job queue or messages in a message queue. It provides a flexible and efficient way to work + with queues of objects in Java. +- 155 . What are the important interfaces related to the Queue interface? \ + The `Queue` interface in Java is related to several other interfaces in the Java Collections Framework that provide + additional functionality for working with queues of elements. Some of the important interfaces related to the `Queue` + interface include: + + - **Deque**: An interface that extends `Queue` and represents a double-ended queue that allows elements to be added + or removed from both ends. Deques provide methods for adding, removing, and accessing elements at the front and + back of the queue. + - **BlockingQueue**: An interface that extends `Queue` and represents a queue that supports blocking operations for + adding and removing elements. Blocking queues provide methods for waiting for elements to become available or + space to become available in the queue. + + These interfaces build on the functionality provided by the `Queue` interface and offer additional features for + working + with queues of elements in Java. +- 156 . Explain about the Deque interface? \ + The `Deque` interface in Java represents a double-ended queue that allows elements to be added or removed from both + ends. Deques provide methods for adding, removing, and accessing elements at the front and back of the queue, making + them suitable for a wide range of operations. The `Deque` interface extends the `Queue` interface and provides + additional methods for working with double-ended queues. + + Some key features of the `Deque` interface include: + - **Double-Ended Queue**: Deques allow elements to be added or removed from both the front and back of the queue. + - **Adding and Removing Elements**: Deques provide methods for adding elements to the front and back of the queue + and removing elements from the front and back. + - **Iterating Over Elements**: Deques can be iterated over using an iterator or enhanced for loop. + - **Implementations**: The `Deque` interface is implemented by classes like `ArrayDeque` and `LinkedList` in the + Java + Collections Framework. + + The `Deque` interface is commonly used to represent double-ended queues that require efficient insertion and removal + of elements at both ends. It provides a flexible and efficient way to work with double-ended queues of objects in + Java. +- 157 . Explain the BlockingQueue interface? \ + The `BlockingQueue` interface in Java represents a queue that supports blocking operations for adding and removing + elements. Blocking queues provide methods for waiting for elements to become available or space to become available in + the queue, allowing threads to block until the desired condition is met. The `BlockingQueue` interface extends the + `Queue` interface and provides additional methods for blocking operations. + + Some key features of the `BlockingQueue` interface include: + - **Blocking Operations**: Blocking queues support blocking operations for adding and removing elements, allowing + threads to wait until the desired condition is met. + - **Waiting for Elements**: Blocking queues provide methods for waiting for elements to become available in the + queue, ensuring that threads can block until elements are ready to be processed. + - **Waiting for Space**: Blocking queues also provide methods for waiting for space to become available in the + queue, + allowing threads to block until there is room to add new elements. + - **Implementations**: The `BlockingQueue` interface is implemented by classes like `ArrayBlockingQueue`, + `LinkedBlockingQueue`, and `PriorityBlockingQueue` in the Java Collections Framework. + + The `BlockingQueue` interface is commonly used in multi-threaded applications to coordinate the processing of elements + between producer and consumer threads. It provides a flexible and efficient way to work with blocking queues of + objects in Java. +- 158 . What is a priorityQueue? How is it different from a normal queue? \ + `PriorityQueue` is a class in Java that implements the `Queue` interface using a priority heap data structure. Unlike + a normal queue, which follows the First-In-First-Out (FIFO) order, a `PriorityQueue` maintains elements in a priority + order based on their natural ordering or a custom comparator. Elements with higher priority are dequeued before + elements with lower priority. + + Some key differences between `PriorityQueue` and a normal queue include: + - **Ordering**: `PriorityQueue` maintains elements in a priority order based on their natural ordering or a custom + comparator, while a normal queue follows the FIFO order. + - **Priority-Based Dequeue**: `PriorityQueue` dequeues elements based on their priority, with higher priority + elements + dequeued before lower priority elements. A normal queue dequeues elements in the order they were added. + - **Underlying Data Structure**: `PriorityQueue` uses a priority heap data structure to maintain the order of + elements, + while a normal queue uses a different data structure like an array or linked list. + + In summary, `PriorityQueue` is a priority-based queue implementation that maintains elements in a priority order, + while + a normal queue follows the FIFO order. `PriorityQueue` is commonly used in applications that require elements to be + processed based on their priority level. +- 159 . Can you give example implementations of the BlockingQueue interface? \ + The `BlockingQueue` interface in Java is implemented by several classes in the Java Collections Framework that provide + different implementations of blocking queues. Some examples of implementations of `BlockingQueue` include: + + - **ArrayBlockingQueue**: A class that implements the `BlockingQueue` interface using an array-based data structure. + `ArrayBlockingQueue` provides a fixed-size blocking queue that supports blocking operations for adding and + removing + elements. + - **LinkedBlockingQueue**: A class that implements the `BlockingQueue` interface using a linked list data structure. + `LinkedBlockingQueue` provides an unbounded blocking queue that supports blocking operations for adding and + removing + elements. + - **PriorityBlockingQueue**: A class that implements the `BlockingQueue` interface using a priority heap data + structure. + `PriorityBlockingQueue` provides a priority-based blocking queue that maintains elements in a priority order. + + These classes provide different implementations of blocking queues with varying characteristics and performance + guarantees. They are commonly used in multi-threaded applications to coordinate the processing of elements between + producer and consumer threads. +- 160 . Can you briefly explain about the Map interface? \ + The `Map` interface in Java represents a collection of key-value pairs where each key is unique and maps to a single + value. Maps provide methods for adding, removing, and accessing key-value pairs, as well as for checking the presence + of keys or values. The `Map` interface does not extend the `Collection` interface and provides a separate set of + methods for working with key-value pairs. + + Some key features of the `Map` interface include: + - **Key-Value Pairs**: Maps store key-value pairs, allowing values to be associated with unique keys. + - **Unique Keys**: Keys in a map are unique, meaning that each key maps to a single value. + - **Adding and Removing Entries**: Maps provide methods for adding, removing, and updating key-value pairs. + - **Iterating Over Entries**: Maps can be iterated over using an iterator or enhanced for loop to access key-value + pairs. + - **Implementations**: The `Map` interface is implemented by classes like `HashMap`, `TreeMap`, and `LinkedHashMap` + in the Java Collections Framework. + + The `Map` interface is commonly used to store and manipulate key-value pairs in Java, providing a flexible and + efficient + way to work with mappings of objects. +- 161 . What is difference between Map and SortedMap? \ + The `Map` and `SortedMap` interfaces in Java are related interfaces in the Java Collections Framework that represent + collections of key-value pairs. The main difference between `Map` and `SortedMap` is the ordering of keys: + + - **Map**: The `Map` interface does not maintain the order of keys and does not provide any guarantees about the + order in which keys are stored. Maps are typically implemented using hash-based data structures like `HashMap` and + `LinkedHashMap`. + - **SortedMap**: The `SortedMap` interface extends `Map` and represents a map of key-value pairs sorted in a + specific + order. Sorted maps maintain the order of keys based on their natural ordering or a custom comparator. Common + implementations of `SortedMap` include `TreeMap` and `ConcurrentSkipListMap`. + + In summary, `Map` is a general interface for collections of key-value pairs, while `SortedMap` is a specialized + interface for maps that maintain the order of keys based on a specific ordering. +- 162 . What is a HashMap? How is it different from a TreeMap? \ + `HashMap` and `TreeMap` are two common implementations of the `Map` interface in Java that provide different + characteristics for working with key-value pairs. The main differences between `HashMap` and `TreeMap` include: + + - **Underlying Data Structure**: `HashMap` uses a hash table data structure to store key-value pairs, providing + constant-time performance for basic operations like adding, removing, and accessing entries. `TreeMap` uses a + red-black + tree data structure to maintain the order of keys based on their natural ordering or a custom comparator. + - **Ordering**: `HashMap` does not maintain the order of keys and does not provide any guarantees about the order in + which keys are stored. `TreeMap` maintains the order of keys based on their natural ordering or a custom + comparator, + allowing keys to be sorted in a specific order. + - **Performance**: `HashMap` provides constant-time performance for basic operations, making it efficient for + adding, + removing, and accessing entries. `TreeMap` provides log-time performance for basic operations, making it efficient + for maintaining the order of keys and performing range queries. + + In summary, `HashMap` is a hash-based map implementation with no ordering guarantees, while `TreeMap` is a tree-based + map implementation that maintains the order of keys based on their natural ordering or a custom comparator. `HashMap` + is commonly used in applications that require fast access to key-value pairs, while `TreeMap` is used when keys need + to be sorted in a specific order. +- 163 . What are the different methods in a Hash Map? \ + The `HashMap` class in Java provides a variety of methods for working with key-value pairs stored in a hash table + data structure. Some of the common methods provided by the `HashMap` class include: + + - **`put(key, value)`**: Adds a key-value pair to the map, replacing the existing value if the key is already + present. + - **`get(key)`**: Retrieves the value associated with the specified key, or `null` if the key is not present. + - **`containsKey(key)`**: Checks if the map contains the specified key. + - **`containsValue(value)`**: Checks if the map contains the specified value. + - **`remove(key)`**: Removes the key-value pair associated with the specified key from the map. + - **`size()`**: Returns the number of key-value pairs in the map. + - **`isEmpty()`**: Checks if the map is empty. + - **`keySet()`**: Returns a set of all keys in the map. + - **`values()`**: Returns a collection of all values in the map. + - **`entrySet()`**: Returns a set of key-value pairs in the map. + + These methods provide a flexible and efficient way to work with key-value pairs stored in a `HashMap` in Java. + - 164 . What is a TreeMap? How is different from a HashMap? \ + `TreeMap` is a class in Java that implements the `SortedMap` interface using a red-black tree data structure. + `TreeMap` + maintains the order of keys based on their natural ordering or a custom comparator, allowing keys to be sorted in + a + specific order. Unlike `HashMap`, which does not maintain the order of keys, `TreeMap` provides log-time + performance + for basic operations like adding, removing, and accessing entries. + + Some key differences between `TreeMap` and `HashMap` include: + - **Underlying Data Structure**: `TreeMap` uses a red-black tree data structure to maintain the order of keys, + while + `HashMap` uses a hash table data structure. This tree structure allows `TreeMap` to provide log-time + performance + for maintaining the order of keys. + - **Ordering**: `TreeMap` maintains the order of keys based on their natural ordering or a custom comparator, + allowing keys to be sorted in a specific order. `HashMap` does not maintain the order of keys and does not + provide + any guarantees about the order in which keys are stored. + - **Performance**: `TreeMap` provides log-time performance for basic operations, making it efficient for + maintaining + the order of keys and performing range queries. `HashMap` provides constant-time performance for basic + operations, + making it efficient for adding, removing, and accessing entries. + + In summary, `TreeMap` is a tree-based map implementation that maintains the order of keys based on their natural + ordering or a custom comparator, while `HashMap` is a hash-based map implementation with no ordering guarantees. + `TreeMap` is commonly used in applications that require keys to be sorted in a specific order. `HashMap` is used + when a fast access to key-value pairs is required. +- 165 . Can you give an example of implementation of NavigableMap interface? \ + The `NavigableMap` interface in Java is implemented by the `TreeMap` class in the Java Collections Framework. + `TreeMap` + provides a navigable map of key-value pairs sorted in a specific order, allowing elements to be accessed, added, and + removed based on their order in the map. Here is an example of using `TreeMap` to implement a `NavigableMap`: + + ```java + import java.util.NavigableMap; + import java.util.TreeMap; + + public class NavigableMapExample { + public static void main(String[] args) { + // Create a NavigableMap using TreeMap + NavigableMap map = new TreeMap<>(); + + // Add key-value pairs to the map + map.put(1, "One"); + map.put(2, "Two"); + map.put(3, "Three"); + map.put(4, "Four"); + map.put(5, "Five"); + + // Print the key-value pairs in ascending order + System.out.println("Ascending Order:"); + for (Integer key : map.keySet()) { + System.out.println(key + " - " + map.get(key)); + } + + // Print the key-value pairs in descending order + System.out.println("Descending Order:"); + for (Integer key : map.descendingKeySet()) { + System.out.println(key + " - " + map.get(key)); + } + } + } + ``` + + In this example, a `NavigableMap` is created using a `TreeMap` and key-value pairs are added to the map. The key-value + pairs are then printed in ascending order and descending order using the `keySet` and `descendingKeySet` methods of + the `NavigableMap` interface. +- 166 . What are the static methods present in the collections class? \ + The `Collections` class in Java provides a variety of static methods for working with collections in the Java + Collections Framework. Some of the common static methods provided by the `Collections` class include: + + - **`sort(List list)`**: Sorts the elements in the specified list in ascending order. + - **`reverse(List list)`**: Reverses the order of elements in the specified list. + - **`shuffle(List list)`**: Randomly shuffles the elements in the specified list. + - **`binarySearch(List> list, T key)`**: Searches for the specified key in the + specified list using a binary search algorithm. + - **`unmodifiableCollection(Collection c)`**: Returns an unmodifiable view of the specified collection. + - **`synchronizedCollection(Collection c)`**: Returns a synchronized (thread-safe) view of the specified + collection. + - **`singleton(T o)`**: Returns an immutable set containing only the specified object. + - **`emptyList()`**: Returns an empty list. + - **`emptySet()`**: Returns an empty set. + - **`emptyMap()`**: Returns an empty map. + + These static methods provide a convenient way to perform common operations on collections in Java. ### Advanced collections -- 167 . What is the difference between synchronized and concurrent collections in Java? -- 168 . Explain about the new concurrent collections in Java? -- 169 . Explain about copyonwrite concurrent collections approach? -- 170 . What is compareandswap approach? -- 171 . What is a lock? How is it different from using synchronized approach? -- 172 . What is initial capacity of a Java collection? -- 173 . What is load factor? -- 174 . When does a Java collection throw UnsupportedOperationException? -- 175 . What is difference between fail-safe and fail-fast iterators? -- 176 . What are atomic operations in Java? -- 177 . What is BlockingQueue in Java? +- 167 . What is the difference between synchronized and concurrent collections in Java? \ + Synchronized collections and concurrent collections in Java are two approaches to handling thread safety in + multi-threaded applications. The main difference between synchronized and concurrent collections is how they achieve + thread safety: + + - **Synchronized Collections**: Synchronized collections use explicit synchronization to make the collection + thread-safe. This is typically done by wrapping the collection with synchronized blocks or using synchronized + methods to ensure that only one thread can access the collection at a time. Synchronized collections are + synchronized at the collection level, meaning that all operations on the collection are synchronized. + - **Concurrent Collections**: Concurrent collections use non-blocking algorithms and data structures to achieve + thread safety. Concurrent collections are designed to be thread-safe without the need for explicit + synchronization. + They use techniques like compare-and-swap (CAS) operations and lock-free algorithms to allow multiple threads to + access the collection concurrently. + + Some key differences between synchronized and concurrent collections include: + - **Performance**: Synchronized collections can be slower than concurrent collections due to the overhead of + explicit + synchronization. Concurrent collections are designed for high concurrency and can provide better performance in + multi-threaded applications. + - **Scalability**: Concurrent collections are more scalable than synchronized collections because they allow + multiple + threads to access the collection concurrently. Synchronized collections can suffer from contention and bottlenecks + when multiple threads access the collection. + - **Ease of Use**: Synchronized collections require explicit synchronization, which can be error-prone and complex. + Concurrent collections provide built-in thread safety and are easier to use in multi-threaded applications. + + In general, concurrent collections are preferred for high-concurrency scenarios where performance and scalability are + important. Synchronized collections are suitable for simpler applications where thread safety is required but + high-concurrency is not a concern. +- 168 . Explain about the new concurrent collections in Java? \ + Java provides a set of concurrent collections in the `java.util.concurrent` package that are designed for high + concurrency and thread safety in multi-threaded applications. Some of the new concurrent collections introduced in + Java include: + + - **`ConcurrentHashMap`**: A hash table-based map implementation that provides thread-safe access to key-value + pairs. + `ConcurrentHashMap` allows multiple threads to read and write to the map concurrently without the need for + explicit + synchronization. + - **`ConcurrentSkipListMap`**: A skip list-based map implementation that provides thread-safe access to key-value + pairs. `ConcurrentSkipListMap` maintains the order of keys and allows multiple threads to access the map + concurrently. + - **`ConcurrentLinkedQueue`**: A linked list-based queue implementation that provides thread-safe access to + elements. + `ConcurrentLinkedQueue` allows multiple threads to add and remove elements from the queue concurrently. + - **`ConcurrentLinkedDeque`**: A linked list-based double-ended queue implementation that provides thread-safe + access + to elements at both ends. `ConcurrentLinkedDeque` allows multiple threads to add and remove elements from the + front + and back of the queue concurrently. + + These concurrent collections are designed to be highly scalable and efficient in multi-threaded applications, + providing + built-in thread safety and high concurrency support. They are suitable for scenarios where multiple threads need to + access and modify collections concurrently. +- 169 . Explain about copyOnWrite concurrent collections approach? \ + The copy-on-write (COW) approach is a concurrency control technique used in Java to provide thread-safe access to + collections. In the copy-on-write approach, a new copy of the collection is created whenever a modification is made, + ensuring that the original collection remains unchanged and can be safely accessed by other threads. This approach + eliminates the need for explicit synchronization and provides high concurrency and thread safety. + + Some key features of the copy-on-write approach include: + - **Immutable Collections**: The copy-on-write approach uses immutable collections to ensure that the original + collection is not modified when a write operation is performed. This allows multiple threads to read from the + collection concurrently without the risk of data corruption. + - **Copy on Write**: When a modification is made to the collection, a new copy of the collection is created with the + updated elements. This copy is then made visible to other threads, ensuring that modifications are isolated and + do not affect other threads. + - **Read-Heavy Workloads**: The copy-on-write approach is well-suited for scenarios where reads are more frequent + than writes. It provides efficient read access to collections and minimizes contention between threads. + + The copy-on-write approach is commonly used in scenarios where high concurrency and thread safety are required, such + as in read-heavy workloads or applications with multiple readers and few writers. It provides a simple and efficient + way to achieve thread safety without the need for explicit synchronization. +- 170 . What is compareAndSwap approach? \ + The compare-and-swap (CAS) operation is an atomic operation used in concurrent programming to implement lock-free + algorithms and data structures. The CAS operation allows a thread to update a value in memory if it matches an + expected + value, ensuring that the update is performed atomically without the need for explicit synchronization. + + The CAS operation typically consists of three steps: + - **Read**: The current value of the memory location is read. + - **Compare**: The current value is compared with an expected value. + - **Swap**: If the current value matches the expected value, a new value is written to the memory location. + + The CAS operation is commonly used in concurrent collections and data structures to implement lock-free algorithms + that allow multiple threads to access and modify shared data without the risk of data corruption or lost updates. CAS + is a key building block for implementing efficient and scalable concurrent algorithms in Java and other programming + languages. +- 171 . What is a lock? How is it different from using synchronized approach? \ + A lock is a synchronization mechanism used in Java to control access to shared resources in multi-threaded + applications. Locks provide a way to coordinate the execution of threads and ensure that only one thread can access a + shared resource at a time. Locks are more flexible and powerful than the `synchronized` keyword in Java and provide + additional features for managing concurrency. + + Some key differences between locks and the `synchronized` approach include: + - **Explicit Control**: Locks provide explicit control over locking and unlocking operations, allowing threads to + acquire and release locks at specific points in the code. The `synchronized` keyword automatically acquires and + releases locks based on synchronized blocks or methods. + - **Reentrant Locking**: Locks support reentrant locking, meaning that a thread can acquire the same lock multiple + times without deadlocking. The `synchronized` keyword does not support reentrant locking. + - **Condition Variables**: Locks provide condition variables that allow threads to wait for specific conditions to + be + met before proceeding. Condition variables are not available with the `synchronized` keyword. + - **Fairness**: Locks can be configured to provide fairness in thread scheduling, ensuring that threads are granted + access to the lock in the order they requested it. The `synchronized` keyword does not provide fairness + guarantees. + + In general, locks are more flexible and powerful than the `synchronized` keyword and provide additional features for + managing concurrency in multi-threaded applications. Locks are commonly used in scenarios where fine-grained control + over synchronization is required or when additional features like reentrant locking or condition variables are needed. +- 172 . What is initial capacity of a Java collection? \ + The initial capacity of a Java collection refers to the number of elements that the collection can initially store + before resizing is required. When a collection is created, an initial capacity is specified to allocate memory for + storing elements. If the number of elements exceeds the initial capacity, the collection is resized to accommodate + additional elements. + + The initial capacity of a collection is typically set when the collection is created using a constructor that accepts + an initial capacity parameter. For example, the `ArrayList` class in Java has a constructor that allows an initial + capacity to be specified: + + ```java + List list = new ArrayList<>(10); + ``` + + In this example, an `ArrayList` is created with an initial capacity of 10 elements. This means that the `ArrayList` + can store up to 10 elements before resizing is required. Setting an appropriate initial capacity can help improve + performance by reducing the number of resize operations and memory allocations needed as elements are added to the + collection. +- 173 . What is load factor? \ + The load factor of a Java collection is a value that determines when the collection should be resized to accommodate + additional elements. The load factor is used in hash-based collections like `HashMap` and `HashSet` to control the + number of elements that can be stored in the collection before resizing is required. When the number of elements in + the collection exceeds the load factor multiplied by the current capacity, the collection is resized to increase its + capacity. + + The load factor is typically a value between 0 and 1, representing a percentage of the current capacity at which the + collection should be resized. For example, a load factor of 0.75 means that the collection should be resized when it + is 75% full. Resizing the collection allows it to accommodate additional elements and maintain efficient performance + for adding, removing, and accessing elements. + + The load factor is an important parameter in hash-based collections to balance memory usage and performance. Setting + an appropriate load factor can help optimize the performance of the collection by reducing the frequency of resize + operations and ensuring that the collection remains efficient as elements are added and removed. +- 174 . When does a Java collection throw UnsupportedOperationException? \ + A Java collection throws an `UnsupportedOperationException` when an operation is not supported by the collection. This + exception is typically thrown when an attempt is made to modify an immutable or read-only collection, or when an + operation is not implemented by the specific collection implementation. + + Some common scenarios where a `UnsupportedOperationException` may be thrown include: + - **Modifying an Immutable Collection**: Attempting to add, remove, or modify elements in an immutable collection + like + `Collections.unmodifiableList` or `Collections.unmodifiableMap` will result in an `UnsupportedOperationException`. + - **Unsupported Operations**: Some collection implementations do not support certain operations, such as adding or + removing elements, and will throw an `UnsupportedOperationException` if these operations are attempted. + - **Read-Only Views**: Collections that provide read-only views of other collections may throw an + `UnsupportedOperationException` if modification operations are attempted on the read-only view. + + The `UnsupportedOperationException` is a runtime exception that indicates that an operation is not supported by the + collection. It is typically thrown to prevent modifications to collections that are intended to be read-only or + immutable. +- 175 . What is difference between fail-safe and fail-fast iterators? \ + Fail-safe and fail-fast iterators are two different approaches to handling concurrent modifications to collections in + Java. The main difference between fail-safe and fail-fast iterators is how they respond to modifications made to a + collection while iterating over it: + + - **Fail-Safe Iterators**: Fail-safe iterators make a copy of the collection when it is created and iterate over + the + copy rather than the original collection. This ensures that the iterator is not affected by modifications made to + the collection during iteration. Fail-safe iterators do not throw `ConcurrentModificationException` and provide a + consistent view of the collection. + - **Fail-Fast Iterators**: Fail-fast iterators detect concurrent modifications to the collection while iterating and + throw a `ConcurrentModificationException` to indicate that the collection has been modified. Fail-fast iterators + provide immediate feedback when a concurrent modification occurs and help prevent data corruption or + inconsistencies. + + In general, fail-safe iterators are used in concurrent collections like `ConcurrentHashMap` and + `ConcurrentSkipListMap` + to provide a consistent view of the collection during iteration. Fail-fast iterators are used in non-concurrent + collections like `ArrayList` and `HashMap` to detect and prevent concurrent modifications that could lead to data + corruption. The choice between fail-safe and fail-fast iterators depends on the requirements of the application and + the level of concurrency expected. +- 176 . What are atomic operations in Java? \ + Atomic operations in Java are operations that are performed atomically, meaning that they are indivisible and + uninterruptible. Atomic operations are used in concurrent programming to ensure that shared data is accessed and + modified safely by multiple threads without the risk of data corruption or lost updates. Java provides a set of + atomic classes and operations in the `java.util.concurrent.atomic` package to support atomic operations. + + Some common atomic operations in Java include: + - **AtomicInteger**: Provides atomic operations on integer values, such as `get`, `set`, `incrementAndGet`, and + `compareAndSet`. + - **AtomicLong**: Provides atomic operations on long values, such as `get`, `set`, `incrementAndGet`, and + `compareAndSet`. + - **AtomicReference**: Provides atomic operations on object references, such as `get`, `set`, and `compareAndSet`. + - **AtomicBoolean**: Provides atomic operations on boolean values, such as `get`, `set`, and `compareAndSet`. + + Atomic operations are commonly used in multi-threaded applications to ensure that shared data is accessed and modified + safely by multiple threads. They provide a simple and efficient way to implement lock-free algorithms and data + structures that require atomicity and thread safety. +- 177 . What is BlockingQueue in Java? \ + A `BlockingQueue` in Java is a type of queue that supports blocking operations for adding and removing elements. A + blocking queue provides methods for waiting for elements to become available or space to become available in the + queue, allowing threads to block until the desired condition is met. Blocking queues are commonly used in + multi-threaded applications to coordinate the processing of elements between producer and consumer threads. + + Some key features of a `BlockingQueue` include: + - **Blocking Operations**: Blocking queues support blocking operations for adding and removing elements, allowing + threads to wait until the desired condition is met. + - **Waiting for Elements**: Blocking queues provide methods for waiting for elements to become available in the + queue, ensuring that threads can block until elements are ready to be processed. + - **Waiting for Space**: Blocking queues also provide methods for waiting for space to become available in the + queue, allowing threads to block until there is room to add new elements. + - **Thread Safety**: Blocking queues are thread-safe data structures that provide built-in support for + synchronization and coordination between threads. + + Blocking queues are commonly used in scenarios where multiple threads need to coordinate the processing of elements + in a queue. They provide a flexible and efficient way to work with queues of objects in Java. ### Generics -- 178 . What are Generics? -- 179 . Why do we need Generics? Can you give an example of how Generics make a program more flexible? -- 180 . How do you declare a generic class? -- 181 . What are the restrictions in using generic type that is declared in a class declaration? -- 182 . How can we restrict Generics to a subclass of particular class? -- 183 . How can we restrict Generics to a super class of particular class? -- 184 . Can you give an example of a generic method? +- 178 . What are Generics? Why do we need Generics? \ + Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics + provide a way to create reusable and type-safe code by allowing classes and methods to work with generic types that + are specified at compile time. Generics enable the creation of classes, interfaces, and methods that can work with + different types without sacrificing type safety. + + Some key reasons for using generics in Java include: + - **Type Safety**: Generics provide compile-time type checking, ensuring that the correct types are used in + classes and methods. This helps prevent runtime errors and improves code reliability. + - **Code Reusability**: Generics allow classes and methods to be parameterized by types, making them more + flexible and reusable. This reduces code duplication and improves maintainability. + - **Performance**: Generics can improve performance by avoiding the need for type casting and providing + compile-time optimizations. This can lead to faster and more efficient code. + + Generics are an important feature of the Java language that provide a way to create flexible, reusable, and + type-safe code. They are commonly used in collections, data structures, and algorithms to work with generic types + and improve code quality. +- 179 . Why do we need Generics? Can you give an example of how Generics make a program more flexible? \ + Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics + provide a way to create reusable and type-safe code by allowing classes and methods to work with generic types that + are specified at compile time. Generics enable the creation of classes, interfaces, and methods that can work with + different types without sacrificing type safety. + + Generics make a program more flexible by allowing classes and methods to work with generic types that are specified + at compile time. This flexibility allows code to be written in a generic and reusable way, reducing code duplication + and improving maintainability. For example, consider a generic `Pair` class that can store a pair of values of any + type: + + ```java + public class Pair { + private T first; + private U second; + + public Pair(T first, U second) { + this.first = first; + this.second = second; + } + + public T getFirst() { + return first; + } + + public U getSecond() { + return second; + } + + public static void main(String[] args) { + Pair pair1 = new Pair<>("Hello", 42); + Pair pair2 = new Pair<>(123, 3.14); + + System.out.println(pair1.getFirst() + " " + pair1.getSecond()); + System.out.println(pair2.getFirst() + " " + pair2.getSecond()); + } + } + ``` + + In this example, a generic `Pair` class is created that can store a pair of values of any type. The `Pair` class is + parameterized by two types `T` and `U`, allowing it to work with different types of values. This flexibility makes + the `Pair` class more generic and reusable, allowing it to store pairs of values of different types without + sacrificing type safety. +- 180 . How do you declare a generic class? \ + A generic class in Java is declared by specifying one or more type parameters in angle brackets (`<>`) after the class + name. The type parameters are used to represent generic types that can be specified at compile time when creating + instances of the class. Here is an example of declaring a generic class in Java: + + ```java + public class Box { + private T value; + + public Box(T value) { + this.value = value; + } + + public T getValue() { + return value; + } + + public static void main(String[] args) { + Box box1 = new Box<>("Hello"); + Box box2 = new Box<>(42); + + System.out.println(box1.getValue()); + System.out.println(box2.getValue()); + } + } + ``` + + In this example, a generic `Box` class is declared with a type parameter `T`. The `Box` class can store a value of any + type specified by the type parameter `T`. Instances of the `Box` class are created by specifying the type parameter + when creating the instance, such as `Box` or `Box { + private T value; + + public Box(T value) { + this.value = value; + } + + public T getValue() { + return value; + } + + public static void main(String[] args) { + Box box1 = new Box<>(42); + Box box2 = new Box<>(3.14); + // Box box3 = new Box<>("Hello"); // Compilation error + } + } + ``` + + In this example, the `Box` class is declared with a type parameter `T` that is bounded by `Number`. This means that + the generic type `T` must be a subclass of `Number`, such as `Integer`, `Double`, or `Float`. Instances of the `Box` + class can be created with types that are subclasses of `Number`, but not with types that are not subclasses of + `Number`. +- 183 . How can we restrict Generics to a super class of particular class? \ + In Java, it is possible to restrict generics to a super class of a particular class by using bounded type parameters. + By specifying a lower bound for the generic type parameter, you can restrict the types that can be used with the + generic class to superclasses of a specific class. Here is an example of restricting generics to a superclass of a + particular class: + + ```java + public class Box { + private T value; + + public Box(T value) { + this.value = value; + } + + public T getValue() { + return value; + } + + public static void main(String[] args) { + Box box1 = new Box<>(42); + Box box2 = new Box<>("Hello"); + // Box box3 = new Box<>("Hello"); // Compilation error + } + } + ``` + + In this example, the `Box` class is declared with a type parameter `T` that is bounded by `super Number`. This means + that the generic type `T` must be a superclass of `Number`, such as `Object` or `Serializable`. Instances of the + `Box` class can be created with types that are superclasses of `Number`, but not with types that are not superclasses + of `Number`. +- 184 . Can you give an example of a generic method? \ + A generic method in Java is a method that is parameterized by one or more types. Generic methods provide a way to + create methods that can work with different types of arguments without sacrificing type safety. Here is an example of + a generic method that swaps the elements of an array: + + ```java + public class ArrayUtils { + public static void swap(T[] array, int i, int j) { + T temp = array[i]; + array[i] = array[j]; + array[j] = temp; + } + + public static void main(String[] args) { + Integer[] numbers = {1, 2, 3, 4, 5}; + swap(numbers, 0, 4); + + for (Integer number : numbers) { + System.out.print(number + " "); + } + } + } + ``` + + In this example, the `swap` method is declared as a generic method with a type parameter `T`. The `swap` method takes + an array of type `T`, along with two indices `i` and `j`, and swaps the elements at the specified indices. The + `swap` method can work with arrays of any type, allowing elements to be swapped in a type-safe way. ### Multi threading -- 185 . What is the need for threads in Java? -- 186 . How do you create a thread? -- 187 . How do you create a thread by extending thread class? -- 188 . How do you create a thread by implementing runnable interface? -- 189 . How do you run a thread in Java? -- 190 . What are the different states of a thread? -- 191 . What is priority of a thread? How do you change the priority of a thread? -- 192 . What is executorservice? -- 193 . Can you give an example for executorservice? -- 194 . Explain different ways of creating executor services . -- 195 . How do you check whether an executionservice task executed successfully? +- 185 . What is the need for threads in Java? \ + Threads in Java are used to achieve concurrent execution of tasks within a single process. Threads allow multiple + operations to be performed simultaneously, enabling applications to take advantage of multi-core processors and + improve performance. Threads are lightweight processes that share the same memory space and resources of a process, + allowing them to run concurrently and perform tasks in parallel. + + Some key reasons for using threads in Java include: + - **Concurrency**: Threads enable multiple tasks to be executed concurrently, improving performance and + responsiveness + of applications. + - **Parallelism**: Threads allow tasks to be executed +- 186 . How do you create a thread? \ + There are two main ways to create a thread in Java: + - **Extending the `Thread` class**: You can create a thread by extending the `Thread` class and overriding the + `run` method. This approach allows you to define the behavior of the thread by implementing the `run` method. + - **Implementing the `Runnable` interface**: You can create a thread by implementing the `Runnable` interface and + passing an instance of the class to the `Thread` constructor. This approach separates the thread logic from the + class definition and allows for better code reusability. + + Here is an example of creating a thread by extending the `Thread` class: + + ```java + public class MyThread extends Thread { + @Override + public void run() { + System.out.println("Hello from a thread!"); + } + + public static void main(String[] args) { + MyThread thread = new MyThread(); + thread.start(); + } + } + ``` + + In this example, a `MyThread` class is created by extending the `Thread` class and overriding the `run` method. An + instance of the `MyThread` class is then created, and the `start` method is called to start the thread. + + Here is an example of creating a thread by implementing the `Runnable` interface: + + ```java + public class MyRunnable implements Runnable { + @Override + public void run() { + System.out.println("Hello from a thread!"); + } + + public static void main(String[] args) { + MyRunnable runnable = new MyRunnable(); + Thread thread = new Thread(runnable); + thread.start(); + } + } + ``` + + In this example, a `MyRunnable` class is created by implementing the `Runnable` interface and defining the `run` + method. An instance of the `MyRunnable` class is then passed to the `Thread` constructor, and the `start` method is + called to start the thread. +- 187 . How do you create a thread by extending thread class? \ + You can create a thread in Java by extending the `Thread` class and overriding the `run` method. This approach allows + you to define the behavior of the thread by implementing the `run` method. Here is an example: + + ```java + public class MyThread extends Thread { + @Override + public void run() { + System.out.println("Hello from a thread!"); + } + + public static void main(String[] args) { + MyThread thread = new MyThread(); + thread.start(); + } + } + ``` + + In this example, a `MyThread` class is created by extending the `Thread` class and overriding the `run` method. An + instance of the `MyThread` class is then created, and the `start` method is called to start the thread. +- 188 . How do you create a thread by implementing runnable interface? \ + You can create a thread in Java by implementing the `Runnable` interface and passing an instance of the class to the + `Thread` constructor. This approach separates the thread logic from the class definition and allows for better code + reusability. Here is an example: + + ```java + public class MyRunnable implements Runnable { + @Override + public void run() { + System.out.println("Hello from a thread!"); + } + + public static void main(String[] args) { + MyRunnable runnable = new MyRunnable(); + Thread thread = new Thread(runnable); + thread.start(); + } + } + ``` + + In this example, a `MyRunnable` class is created by implementing the `Runnable` interface and defining the `run` + method. An instance of the `MyRunnable` class is then passed to the `Thread` constructor, and the `start` method is + called to start the thread. +- 189 . How do you run a thread in Java? \ + There are two main ways to run a thread in Java: + - **Extending the `Thread` class**: You can create a thread by extending the `Thread` class and overriding the `run` + method. This approach allows you to define the behavior of the thread by implementing the `run` method. You can + then + create an instance of the class and call the `start` method to run the thread. + - **Implementing the `Runnable` interface**: You can create a thread by implementing the `Runnable` interface and + passing an instance of the class to the `Thread` constructor. This approach separates the thread logic from the + class definition and allows for better code reusability. You can then create an instance of the class and call the + `start` method to run the thread. + + Here is an example of running a thread by extending the `Thread` class: + + ```java + public class MyThread extends Thread { + @Override + public void run() { + System.out.println("Hello from a thread!"); + } + + public static void main(String[] args) { + MyThread thread = new MyThread(); + thread.start(); + } + } + ``` + + In this example, a `MyThread` class is created by extending the `Thread` class and overriding the `run` method. An + instance of the `MyThread` class is then created, and the `start` method is called to run the thread. + + Here is an example of running a thread by implementing the `Runnable` interface: + + ```java + public class MyRunnable implements Runnable { + @Override + public void run() { + System.out.println("Hello from a thread!"); + } + + public static void main(String[] args) { + MyRunnable runnable = new MyRunnable(); + Thread thread = new Thread(runnable); + thread.start(); + } + } + ``` + + In this example, a `MyRunnable` class is created by implementing the `Runnable` interface and defining the `run` + method. An instance of the `MyRunnable` class is then passed to the `Thread` constructor, and the `start` method is + called to run the thread. +- 190 . What are the different states of a thread? \ + Threads in Java can be in different states during their lifecycle. The main states of a thread in Java are: + - **New**: A thread is in the new state when it is created but has not yet started. + - **Runnable**: A thread is in the runnable state when it is ready to run but is waiting for a processor to execute + - 191 . What is priority of a thread? How do you change the priority of a thread? \ + The priority of a thread in Java is an integer value that determines the scheduling priority of the thread. + Threads + with higher priority values are given preference by the thread scheduler and are more likely. +- 192 . What is ExecutorService? \ + `ExecutorService` is an interface in the Java Concurrency API that provides a higher-level abstraction for managing + and executing tasks asynchronously using a pool of threads. `ExecutorService` extends the `Executor` interface and + provides additional methods for managing the lifecycle of the executor, submitting tasks for execution, and + controlling + the execution of tasks. + + Some key features of `ExecutorService` include: + - **Task Execution**: `ExecutorService` allows you to submit tasks for execution using methods like `submit` and + `invokeAll`. + - **Thread Pool Management**: `ExecutorService` manages a pool of worker threads that can be reused for executing + tasks. + - **Asynchronous +- 193 . Can you give an example for ExecutorService? \ + Here is an example of using `ExecutorService` to execute tasks asynchronously in Java: + + ```java + import java.util.concurrent.ExecutorService; + import java.util.concurrent.Executors; + + public class Main { + public static void main(String[] args) { + // Create an ExecutorService with a fixed thread pool size + ExecutorService executor = Executors.newFixedThreadPool(2); + + // Submit tasks for execution + executor.submit(() -> System.out.println("Task 1 executed by thread: " + Thread.currentThread().getName())); + executor.submit(() -> System.out.println("Task 2 executed by thread: " + Thread.currentThread().getName())); + + // Shutdown the ExecutorService + executor.shutdown(); + } + } + ``` + + In this example, an `ExecutorService` is created with a fixed thread pool size of 2 using the + `Executors.newFixedThreadPool` + method. Two tasks are then submitted for execution using the `submit` method, and the tasks are executed + asynchronously + by the worker threads in the thread pool. Finally, the `ExecutorService` is shut down to release the resources. +- 194 . Explain different ways of creating executor services. \ + There are several ways to create `ExecutorService` instances in Java using the `Executors` utility class. Some of the + common ways to create `ExecutorService` instances include: + - **`newFixedThreadPool(int nThreads)`**: Creates a fixed-size thread pool with the specified number of threads. + - **`newCachedThreadPool()`**: Creates a thread pool that creates new threads as needed and reuses idle threads. + - **`newSingleThreadExecutor()`**: Creates a single-threaded executor that uses a single worker thread to execute + tasks sequentially. + - **`newScheduledThreadPool(int corePoolSize)`**: Creates a thread pool that can schedule tasks to run after a + specified delay or at a fixed rate. + + These methods provide different ways to create `ExecutorService` instances with varying thread pool configurations + based on the requirements of the application. +- 195 . How do you check whether an ExecutionService task executed successfully? - 196 . What is callable? How do you execute a callable from executionservice? -- 197 . What is synchronization of threads? -- 198 . Can you give an example of a synchronized block? -- 199 . Can a static method be synchronized? -- 200 . What is the use of join method in threads? +- 197 . What is synchronization of threads? \ + Synchronization in Java is a mechanism that allows multiple threads to coordinate access to shared resources. +- 198 . Can you give an example of a synchronized block? \ + Here is an example of using a synchronized block in Java to synchronize access to a shared resource: + + ```java + public class Counter { + private int count = 0; + + public void increment() { + synchronized (this) { + count++; + } + } + + public int getCount() { + synchronized (this) { + return count; + } + } + + public static void main(String[] args) { + Counter counter = new Counter(); + + // Create multiple threads to increment the counter + Thread thread1 = new Thread(() -> { + for (int i = 0; i < 1000; i++) { + counter.increment(); + } + }); + + Thread thread2 = new Thread(() -> { + for (int i = 0; i < 1000; i++) { + counter.increment(); + } + }); + + thread1.start(); + thread2.start(); + + // Wait for threads to finish + try { + thread1.join(); + thread2.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + // Print the final count + System.out.println("Final count: " + counter.getCount()); + } + } + ``` + + In this example, a `Counter` class is created with methods to increment and get the count of a shared counter. The + `increment` and `getCount` methods are synchronized using a synchronized block with the `this` object as the monitor. + Multiple threads are created to increment the counter concurrently, and the final count is printed after the threads + have finished. +- 199 . Can a static method be synchronized? \ + Yes, a static method can be synchronized in Java. When a static method is synchronized, the lock acquired is on the + class object associated with the method's class. This means that only one thread can execute the synchronized static + method at a time, regardless of the number of instances of the class. + + Here is an example of a synchronized static method in Java: + + ```java + public class Counter { + private static int count = 0; + + public static synchronized void increment() { + count++; + } + + public static int getCount() { + return count; + } + + public static void main(String[] args) { + // Create multiple threads to increment the counter + Thread thread1 = new Thread(() -> { + for (int i = 0; i < 1000; i++) { + Counter.increment(); + } + }); + + Thread thread2 = new Thread(() -> { + for (int i = 0; i < 1000; i++) { + Counter.increment(); + } + }); + + thread1.start(); + thread2.start(); + + // Wait for threads to finish + try { + thread1.join(); + thread2.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + // Print the final count + System.out.println("Final count: " + Counter.getCount()); + } + } + ``` + + In this example, the `increment` method is a synchronized static method that increments a shared static counter. The + `increment` method is synchronized to ensure that only one thread can increment the counter at a time, even when + multiple threads are accessing the method concurrently. +- 200 . What is the use of join method in threads? \ + The `join` method in Java is used to wait for a thread to complete its execution before continuing with the current + thread. When the `join` method is called on a thread, the current thread will block and wait for the specified thread + to finish before proceeding. + + Here is an example of using the `join` method in Java: + + ```java + public class Main { + public static void main(String[] args) { + Thread thread = new Thread(() -> { + System.out.println("Thread started"); + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + System.out.println("Thread finished"); + }); + + thread.start(); + + // Wait for the thread to finish + try { + thread.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + System.out.println("Main thread finished"); + } + } + ``` + + In this example, a thread is created that sleeps for 2 seconds before finishing. The `join` method is called on the + thread to wait for it to finish before printing a message in the main thread. This ensures that the main thread waits + for the thread to complete before continuing. - 201 . Describe a few other important methods in threads? -- 202 . What is a deadlock? -- 203 . What are the important methods in Java for inter-thread communication? -- 204 . What is the use of wait method? -- 205 . What is the use of notify method? -- 206 . What is the use of notifyall method? -- 207 . Can you write a synchronized program with wait and notify methods? +- 202 . What is a deadlock? How can you avoid a deadlock? \ + A deadlock is a situation in multi-threaded programming where two or more threads are blocked forever, waiting for + each + other to release resources that they need to continue execution. Deadlocks can occur when multiple threads acquire + locks on resources in a different order, leading to a circular dependency that prevents any thread from making + progress. + + To avoid deadlocks in multi-threaded programs, you can follow some best practices: + - **Avoid Nested Locks**: Try to avoid acquiring multiple locks in nested order, as this can lead to deadlocks. + - **Use a Timeout**: Use a timeout when acquiring locks to prevent threads from waiting indefinitely. + - **Avoid Circular Dependencies**: Ensure that threads acquire locks in a consistent order to avoid circular + dependencies. + - **Use Lock Ordering**: Establish a global lock ordering to ensure that threads acquire locks in a consistent + order. + - **Use Deadlock Detection**: Implement deadlock detection mechanisms to identify and resolve deadlocks when they + occur. + + By following these best practices and designing multi-threaded programs carefully, you can reduce the likelihood of + deadlocks and improve the reliability of your applications. +- 203 . What are the important methods in Java for inter-thread communication? \ + Java provides several methods for inter-thread communication, including: + - **`wait` and `notify`**: The `wait` and `notify` methods are used to coordinate the execution of threads by + allowing + threads to wait for a condition to be met and notify other threads when the condition is satisfied. + - **`wait(long timeout)` and `notifyAll`**: The `wait(long timeout)` method allows a thread to wait for a specified + amount of time before continuing, while the `notifyAll` method notifies all waiting threads to wake up and + continue execution +- 204 . What is the use of wait method? \ + The `wait` method in Java is used to make a thread wait until a condition is met. When a thread calls the `wait` + method, + it releases the lock it holds and enters a waiting state until another thread calls the `notify` or `notifyAll` method + on the same object. The `wait` method is typically used for inter-thread communication and synchronization in + multi-threaded programs. +- 205 . What is the use of notify method? \ + The `notify` method in Java is used to wake up a single thread that is waiting on the same object. When a thread calls + the `notify` method, it notifies a single waiting thread to wake up and continue execution. The `notify` method is + typically used in conjunction with the `wait` method for inter-thread communication and synchronization in + multi-threaded programs. +- 206 . What is the use of notifyall method? \ + The `notifyAll` method in Java is used to wake up all threads that are waiting on the same object. When a thread calls + the `notifyAll` method, it notifies all waiting threads to wake up and +- 207 . Can you write a synchronized program with wait and notify methods? \ + Here is an example of a synchronized program using the `wait` and `notify` methods for inter-thread communication in + Java: + + ```java + public class Main { + public static void main(String[] args) { + Object lock = new Object(); + + Thread producer = new Thread(() -> { + synchronized (lock) { + System.out.println("Producer thread started"); + try { + lock.wait(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + System.out.println("Producer thread resumed"); + } + }); + + Thread consumer = new Thread(() -> { + synchronized (lock) { + System.out.println("Consumer thread started"); + lock.notify(); + System.out.println("Consumer thread notified"); + } + }); + + producer.start(); + consumer.start(); + } + } + ``` + + In this example, a producer thread and a consumer thread are created to demonstrate the use of the `wait` and `notify` + methods for inter-thread communication. The producer thread waits for the consumer thread to notify it before + continuing, while the consumer thread notifies the producer thread to resume + +### Functional Programming - Lambda expressions and Streams + +- 208 . What is functional programming? How is it different from object-oriented programming? \ + Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions + and avoids changing state and mutable data. Functional programming focuses on the use of pure functions, higher-order + functions, and immutable data structures to achieve declarative and concise code. Functional programming is based on + the principles of lambda calculus and emphasizes the use of functions as first-class citizens. + + Some key differences between functional programming and object-oriented programming include: + - **State and Mutability**: Functional programming avoids changing state and mutable data, while object-oriented + programming uses objects and classes to model state and behavior. + - **Functions vs. Objects**: Functional programming focuses on functions as the primary building blocks of programs, + while object-oriented programming uses objects to encapsulate state and behavior. + - **Immutability**: Functional programming emphasizes the use of immutable data structures to avoid side effects and + make programs easier to reason about. + - **Declarative vs. Imperative**: Functional programming is more declarative, focusing on what should be done rather + than how it should be done, while object-oriented programming is more imperative, specifying the steps to achieve + a + result. + - **Concurrency**: Functional programming is well-suited for concurrent and parallel programming due to its emphasis + on immutability and pure functions. + + Functional programming languages like Haskell, Scala, and Clojure provide built-in support for functional programming + features, while languages like Java have introduced functional programming concepts like lambda expressions and + streams to support functional programming paradigms. +- 209 . Can you give an example of functional programming? \ + Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions + and avoids changing state and mutable data. Functional programming focuses on the use of pure functions, higher-order + functions, and immutable data structures to achieve declarative and concise code. Functional programming is based on + the principles of lambda calculus and emphasizes the use of functions as first-class citizens. + + Here is an example of functional programming in Java using lambda expressions: -### Functional Programming - Lamdba expressions and Streams + ```java + import java.util.Arrays; + import java.util.List; + + public class Main { + public static void main(String[] args) { + List numbers = Arrays.asList(1, 2, 3, 4, 5); -- 208 . What is functional programming? -- 209 . Can you give an example of functional programming? + // Using lambda expression to square each element + numbers.stream() + .map(n -> n * n) + .forEach(System.out::println); + } + } + ``` + + In this example, a list of integers is created, and a lambda expression is used with the `map` method of the `Stream` + interface to square each element in the list. The result is then printed to the console using the `forEach` method. + This example demonstrates the use of functional programming concepts like lambda expressions and streams in Java. - 210 . What is a stream? -- 211 . Explain about streams with an example? -- what are intermediate operations in streams? -- 212 . What are terminal operations in streams? -- 213 . What are method references? -- 214 . What are lambda expressions? -- 215 . Can you give an example of lambda expression? -- 216 . Can you explain the relationship between lambda expression and functional interfaces? -- 217 . What is a predicate? -- 218 . What is the functional interface - function? -- 219 . What is a consumer? -- 220 . Can you give examples of functional interfaces with multiple arguments? +- 211 . Explain about streams with an example? what are intermediate operations in streams? \ + Streams in Java provide a way to process collections of elements in a functional and declarative manner. Streams + enable you to perform operations like filtering, mapping, sorting, and reducing on collections using a fluent and + pipeline-based API. Streams are designed to be lazy, parallelizable, and efficient for processing large amounts of + data. + + Here is an example of using streams in Java: + + ```java + import java.util.Arrays; + import java.util.List; + + public class Main { + public static void main(String[] args) { + List numbers = Arrays.asList(1, 2, 3, 4, 5); + + // Using streams to filter and print even numbers + numbers.stream() + .filter(n -> n % 2 == 0) + .forEach(System.out::println); + } + } + ``` + + In this example, a list of integers is created, and a stream is obtained using the `stream` method. The `filter` + method is then used to filter even numbers from the stream, and the result is printed to the console using the + `forEach` method. This example demonstrates the use of streams and intermediate operations like `filter` in Java. +- 212 . What are terminal operations in streams? \ + Terminal operations in streams are operations that produce a result or a side effect and terminate the stream + processing. Terminal operations are the final step in a stream pipeline and trigger the execution of intermediate + operations on the stream elements. Some common terminal operations in streams include `forEach`, `collect`, `reduce`, + and `count`. Terminal operations are essential for processing streams and obtaining the final result of the stream + processing. +- 213 . What are method references? How are they used in streams? \ + Method references in Java provide a way to refer to methods or constructors without invoking them. Method references + are shorthand syntax for lambda expressions that call a single method or constructor. Method references can be used in + streams to simplify the code and make it more readable by replacing lambda expressions with method references. + + Here is an example of using method references in streams in Java: + + ```java + import java.util.Arrays; + import java.util.List; + + public class Main { + public static void main(String[] args) { + List names = Arrays.asList("Alice", "Bob", "Charlie"); + + // Using method reference to print each name + names.forEach(System.out::println); + } + } + ``` + + In this example, a list of names is created, and a method reference `System.out::println` is used with the `forEach` + method to print each name in the list. The method reference `System.out::println` refers to the `println` method of + the + `System.out` class and is equivalent to a lambda expression `(name) -> System.out.println(name)`. Method references + provide a concise and readable way to refer to methods in streams and other functional programming constructs in Java. +- 214 . What are lambda expressions? How are they used in streams? \ + Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as + arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent + functions and enable functional programming paradigms in Java. Lambda expressions are used in streams to define + operations on stream elements in a functional and declarative manner. + + Here is an example of using lambda expressions in streams in Java: + + ```java + import java.util.Arrays; + import java.util.List; + + public class Main { + public static void main(String[] args) { + List numbers = Arrays.asList(1, 2, 3, 4, 5); + + // Using lambda expression to square each element + numbers.stream() + .map(n -> n * n) + .forEach(System.out::println); + } + } + ``` + + In this example, a list of integers is created, and a lambda expression `n -> n * n` is used with the `map` method of + the `Stream` interface to square each element in the list. The result is then printed to the console using the + `forEach` method. Lambda expressions provide a concise and expressive way to define operations on stream elements in + Java. +- 215 . Can you give an example of lambda expression? \ + Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as + arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent + functions and enable functional programming paradigms in Java. + + Here is an example of a lambda expression in Java: + + ```java + public class Main { + public static void main(String[] args) { + // Lambda expression to add two numbers + MathOperation add = (a, b) -> a + b; + + int result = add.operate(10, 20); + System.out.println("Result: " + result); + } + + interface MathOperation { + int operate(int a, int b); + } + } + ``` + + In this example, a lambda expression `(a, b) -> a + b` is used to define a function that adds two numbers. The lambda + expression is assigned to a functional interface `MathOperation` that defines a method `operate` to perform the + operation. The lambda expression is then used to add two numbers and print the result to the console. +- 216 . Can you explain the relationship between lambda expression and functional interfaces? \ + Lambda expressions in Java are closely related to functional interfaces, which are interfaces that have exactly one + abstract method. Lambda expressions can be used to provide an implementation for the abstract method of a functional + interface, allowing you to define anonymous functions or blocks of code that can be passed as arguments to methods or + stored in variables. + + Here is an example of using a lambda expression with a functional interface in Java: + + ```java + public class Main { + public static void main(String[] args) { + // Lambda expression to add two numbers + MathOperation add = (a, b) -> a + b; + + int result = add.operate(10, 20); + System.out.println("Result: " + result); + } + + interface MathOperation { + int operate(int a, int b); + } + } + ``` + + In this example, a lambda expression `(a, b) -> a + b` is used to define a function that adds two numbers. The lambda + expression is assigned to a functional interface `MathOperation` that defines a method `operate` to perform the + operation. The lambda expression provides an implementation for the abstract method of the functional interface, + allowing you to define and use anonymous functions in Java. +- 217 . What is a predicate? \ + A predicate in Java is a functional interface that represents a boolean-valued function of one argument. Predicates + are + commonly used in functional programming to define conditions or filters that can be applied to elements in a + collection. Predicates can be combined using logical operators like `and`, `or`, and `negate` to create complex + conditions for filtering elements. + + Here is an example of using a predicate in Java: + + ```java + import java.util.Arrays; + import java.util.List; + import java.util.function.Predicate; + + public class Main { + public static void main(String[] args) { + List numbers = Arrays.asList(1, 2, 3, 4, 5); + + // Define a predicate to filter even numbers + Predicate isEven = n -> n % 2 == 0; + + // Filter even numbers from the list + numbers.stream() + .filter(isEven) + .forEach(System.out::println); + } + } + ``` + + In this example, a predicate `isEven` is defined to filter even numbers from a list of integers. The predicate is used + with the `filter` method of the `Stream` interface to apply the condition and print the even numbers to the console. +- 218 . What is the functional interface - function? \ + The `Function` interface in Java is a functional interface that represents a function that accepts one argument and + produces a result. The `Function` interface is commonly used in functional programming to define transformations or + mappings that can be applied to elements in a collection. The `Function` interface provides a method `apply` to + perform the transformation and produce the result. + + Here is an example of using the `Function` interface in Java: + + ```java + import java.util.function.Function; + + public class Main { + public static void main(String[] args) { + // Define a function to square a number + Function square = n -> n * n; + + // Apply the function to a number + int result = square.apply(5); + System.out.println("Result: " + result); + } + } + ``` + + In this example, a function `square` is defined to square a number. The function is assigned to a `Function` interface + that accepts an integer and produces an integer. The function is then applied to a number using the `apply` method to + calculate the square and print the result to the console. +- 219 . What is a consumer? \ + A consumer in Java is a functional interface that represents an operation that accepts a single input argument and + returns no result. Consumers are commonly used in functional programming to perform side effects or actions on + elements + in a collection without producing a result. Consumers provide a method `accept` to perform the operation on the input + argument. + + Here is an example of using a consumer in Java: + + ```java + import java.util.function.Consumer; + + public class Main { + public static void main(String[] args) { + // Define a consumer to print a message + Consumer printMessage = message -> System.out::println; + + // Accept the message and print it + printMessage.accept("Hello, World!"); + } + } + ``` + + In this example, a consumer `printMessage` is defined to print a message. The consumer is assigned to a `Consumer` + interface that accepts a string and performs the operation to print the message. The consumer is then used to accept + the message and print it to the console. +- 220 . Can you give examples of functional interfaces with multiple arguments? \ + Functional interfaces in Java can have multiple arguments by defining methods with multiple parameters. You can create + functional interfaces with multiple arguments by specifying the number of input arguments in the method signature and + using lambda expressions to provide implementations for the method. + + Here is an example of a functional interface with multiple arguments in Java: + + ```java + public class Main { + public static void main(String[] args) { + // Define a functional interface with multiple arguments + MathOperation add = (a, b) -> a + b; + + int result = add.operate(10, 20); + System.out.println("Result: " + result); + } + + interface MathOperation { + int operate(int a, int b); + } + } + ``` + + In this example, a functional interface `MathOperation` is defined with a method `operate` that accepts two integers + and returns an integer. The functional interface is used with a lambda expression `(a, b) -> a + b` to define a + function that adds two numbers. The lambda expression provides an implementation for the method of the functional + interface, allowing you to define and use functions with multiple arguments in Java. ### New Features -- 221 . What are the new features in Java 5? -- 222 . What are the new features in Java 6? -- 223 . What are the new features in Java 7? -- 224 . What are the new features in Java 8? +- 221 . What are the new features in Java 5? \ + Java 5 introduced several new features and enhancements to the Java programming language, including: + - **Generics**: Java 5 introduced generics to provide compile-time type safety and reduce the need for explicit + casting of objects. Generics allow you to define classes, interfaces, and methods with type parameters that can be + used to enforce type constraints and improve code readability. + - **Enhanced for Loop**: Java 5 introduced the enhanced for loop, also known as the "for-each" loop, to simplify + iterating over collections and arrays. The enhanced for loop provides a more concise syntax for iterating over + elements in a collection without the need for explicit indexing. + - **Autoboxing and Unboxing**: Java 5 introduced autoboxing and unboxing to automatically convert primitive types to + their corresponding wrapper classes and vice versa. Autoboxing allows you to use primitive types and wrapper + classes interchangeably, simplifying code and improving readability. + - **Varargs**: Java 5 introduced varargs, which allow you to pass a variable number of arguments to a method. + Varargs + provide a flexible way to define methods that accept a variable number of arguments without the need to create + overloaded methods for different argument counts. + - **Annotations**: Java 5 introduced annotations to provide metadata about classes, methods, and fields. Annotations + allow you to add information to your code that can be used by the compiler, tools, and frameworks to generate + code, + perform validation, and configure behavior. + - **Enumerations**: Java 5 introduced enumerations to provide a type-safe way to define a set of constants. + Enumerations + allow you to define a fixed set of values that can be used in place of magic numbers or strings, improving code + readability and maintainability. + - **Static Imports**: Java 5 introduced static imports to allow static members of a class to be imported directly + into + another class. Static imports provide a way to use static methods and constants without qualifying them with the + class name, making code more concise and readable. + + These new features introduced in Java 5 helped to improve the expressiveness, readability, and maintainability of Java + code and laid the foundation for future enhancements in the Java programming language. +- 222 . What are the new features in Java 6? \ + Java 6 introduced several new features and enhancements to the Java programming language, including: + - **Scripting Support**: Java 6 introduced scripting support through the `javax.script` package, allowing you to + execute scripts written in languages like JavaScript, Groovy, and Ruby within Java applications. Scripting support + provides a way to embed scripting languages in Java applications and execute scripts dynamically at runtime. + - **Compiler API**: Java 6 introduced the `javax.tools` package, which provides an API for compiling Java source + code + programmatically. The compiler API allows you to compile Java source code from within a Java program, enabling + dynamic code generation and compilation. + - **Pluggable Annotations**: Java 6 introduced pluggable annotations, which allow you to define custom annotations + that can be processed at compile time using annotation processors. Pluggable annotations provide a way to extend + the Java language with custom metadata and annotations that can be used to generate code, perform validation, and + configure behavior. + - **JDBC 4.0**: Java 6 introduced JDBC 4.0, which included several enhancements to the JDBC API for interacting with + databases. JDBC 4.0 introduced features like automatic driver loading, improved exception handling, and support + for + SQLXML data types, making it easier to work with databases in Java applications. + - **Java Compiler API**: Java 6 introduced the `javax.tools` package, which provides an API for compiling Java + source + code programmatically. The Java Compiler API allows you to compile Java source code from within a Java program, + enabling dynamic code generation and compilation. + - **Web Services**: Java 6 included updates to the Java API for XML Web Services (JAX-WS) and the Java Architecture + for XML Binding (JAXB) to support the latest web services standards and technologies. These updates made it easier + to develop and consume web services in Java applications. + - **Java DB**: Java 6 included Java DB (formerly known as Apache Derby) as a built-in database that can be used for + developing and testing Java database applications. Java DB provides a lightweight, embeddable database that can be + used with Java applications without requiring a separate database installation. + + These new features introduced in Java 6 helped to improve the performance, productivity, and functionality of Java + applications and provided developers with new tools and capabilities for building robust and scalable software + systems. +- 223 . What are the new features in Java 7? \ + Java 7 introduced several new features and enhancements to the Java programming language, including: + - **Diamond Operator**: Java 7 introduced the diamond operator (`<>`) to simplify the use of generics by inferring + the + type arguments from the context. The diamond operator allows you to create instances of generic classes without + specifying the type arguments explicitly, reducing boilerplate code and improving readability. + - **Try-With-Resources**: Java 7 introduced the try-with-resources statement to simplify resource management and + ensure that resources like streams, connections, and files are closed properly after use. The try-with-resources + statement automatically closes resources at the end of the block, reducing the risk of resource leaks and + simplifying error handling. + - **Strings in Switch**: Java 7 introduced the ability to use strings in switch statements, allowing you to switch + on + string values instead of just primitive types and enums. Strings in switch statements provide a more expressive + way + to handle multiple cases based on string values, improving code readability and maintainability. + - **Binary Literals and Underscores in Numeric Literals**: Java 7 introduced support for binary literals (0b or 0B + prefix) and underscores in numeric literals to improve readability and expressiveness when working with binary and + numeric values + - 224 . What are the new features in Java 8? \ + Java 8 introduced several new features and enhancements to the Java programming language, including: + - **Lambda Expressions**: Java 8 introduced lambda expressions to provide a concise and expressive way to define + anonymous functions or blocks of code. Lambda expressions enable functional programming paradigms in Java and + simplify the use of functional interfaces like `Predicate`, `Function`, and `Consumer`. + - **Streams API**: Java 8 introduced the Streams API to provide a fluent and pipeline-based API for processing + collections of elements. Streams enable you to perform operations like filtering, mapping, sorting, and + reducing + on collections using functional programming constructs like lambda expressions and method references. + - **Default Methods**: Java 8 introduced default methods in interfaces to allow interfaces to have concrete + implementations for methods. Default methods provide a way to add new methods to interfaces without breaking + existing implementations and enable the evolution of interfaces over time. + - **Functional Interfaces**: Java 8 introduced the `@FunctionalInterface` annotation to define functional + interfaces + that have exactly one abstract method. Functional interfaces can be used with lambda expressions and method + references to provide implementations for the abstract method. + - **Method References**: Java 8 introduced method references to provide a shorthand syntax for lambda + expressions + that call a single method or constructor. Method references allow you to refer to methods or constructors + without + invoking them directly, improving code readability and conciseness. + - **Optional Class**: Java 8 introduced the `Optional` class to provide a way to handle null values and avoid + NullPointerExceptions. The `Optional` class provides methods to check for the presence of a value and safely + access + the value if it is present. + - **Date and Time API**: Java 8 introduced the Date and Time API to provide a modern and comprehensive API for + handling date and time values. The Date and Time API includes classes like `LocalDate`, `LocalTime`, and + `ZonedDateTime` + to represent date, time, and timezone information in a type-safe and immutable way. + - **CompletableFuture**: Java 8 introduced the `CompletableFuture` class to provide a way to work with + asynchronous + computations and handle asynchronous results. `CompletableFuture` enables you to perform non-blocking and + asynchronous operations using a fluent API and callbacks. + + These new features introduced in Java 8 helped to modernize the Java programming language and provide developers + with new tools and capabilities for building robust and scalable software systems. + +- 225 . What are the new features in Java 9? \ + Java 9 introduced several new features and enhancements to the Java programming language, including: + - **Module System (Project Jigsaw)**: Java 9 introduced the module system to provide a way to modularize and + encapsulate + Java code. The module system allows you to define modules with explicit dependencies and access controls, + improving + code maintainability and security. + - **JShell (Interactive Shell)**: Java 9 introduced JShell, an interactive shell for evaluating Java code snippets + and expressions. JShell provides a way to experiment with Java code interactively and quickly test ideas without + needing to create a full Java program. + - **Private Methods in Interfaces**: Java 9 introduced the ability to define private methods in interfaces to + encapsulate common code and reduce duplication. Private methods in interfaces provide a way to share code between + default methods without exposing the implementation details. + - **Stream API Enhancements**: Java 9 introduced several enhancements to the Streams API, including new methods like + `takeWhile`, `dropWhile`, and `ofNullable` to improve the functionality and expressiveness of stream operations. + - **Process API Updates**: Java 9 introduced updates to the Process API to provide better +- 226 . What are the new features in Java 11? \ + Java 11 introduced several new features and enhancements to the Java programming language, including: + - **Local-Variable Syntax for Lambda Parameters**: Java 11 introduced the ability to use `var` as the type of + lambda parameters in lambda expressions. This feature allows you to use `var` to declare the type of lambda + parameters when the type can be inferred from the context, reducing boilerplate code and improving readability. + - **HTTP Client (Standard)**: Java 11 introduced a new HTTP client API as a standard feature to provide a modern + and flexible way to send HTTP requests and handle responses. The new HTTP client API supports HTTP/1.1 and HTTP/2 + protocols and provides a fluent and asynchronous API for working with HTTP. + - **Epsilon Garbage Collector**: Java 11 introduced the Epsilon garbage collector, a no-op garbage collector that + does not perform any memory reclamation. The Epsilon garbage collector is designed for performance testing and + benchmarking to provide a baseline for comparing the performance of other garbage collectors. + - **ZGC (Experimental)**: Java 11 introduced the Z Garbage Collector (ZGC) as an experimental feature to provide + low-latency garbage collection for large heaps. ZGC is designed to reduce pause times and improve responsiveness + for applications that require low-latency garbage collection. + - **Flight Recorder (JFR) and Mission Control**: Java 11 introduced Flight Recorder (JFR) and Mission Control as + open-source features to provide advanced monitoring and profiling capabilities for Java applications. Flight + Recorder allows you to collect detailed runtime information and events, while Mission Control provides a graphical + interface for analyzing and visualizing the collected data. + - **Nest-Based Access Control**: Java 11 introduced nest-based access control to provide a more flexible and secure + way to access private members of classes within the same nest. Nest-based access control allows classes that are + logically part of the same group to access each other's private members, improving encapsulation and security. + - **Dynamic Class-File Constants**: Java 11 introduced dynamic class-file constants to provide a way to define + constants in class files that are dynamically computed at runtime. Dynamic class-file constants allow you to + define constants that depend on the class's runtime context, enabling more flexible and dynamic code generation. +- 227 . What are the new features in Java 13? \ + Java 13 introduced several new features and enhancements to the Java programming language, including: + - **Text Blocks (Preview Feature)**: Java 13 introduced text blocks as a preview feature to provide a more readable + and maintainable way to write multi-line strings in Java. Text blocks allow you to define multi-line strings with + improved formatting and indentation, making it easier to write and read complex string literals. + - **Switch Expressions (Preview Feature)**: Java 13 introduced switch expressions as a preview feature to provide a + more concise and expressive way to write switch statements. Switch expressions allow you to use the `->` operator + to return a value from a switch case, enabling you to use switch statements as expressions that produce a result. + - **Reimplement the Legacy Socket API**: Java 13 reimplemented the legacy Socket API to provide a more modern and + efficient implementation of the socket communication protocol. The new Socket API is designed to improve + performance + and reliability for socket-based communication in Java applications. + - **Dynamic CDS Archives**: Java 13 introduced dynamic class data-sharing (CDS) archives to provide a way to create + and use CDS archives at runtime. Dynamic CDS archives allow you to optimize class loading and sharing for improved + startup time and memory footprint in Java applications. + - **FileSystems.newFileSystem() Method**: Java 13 introduced the `FileSystems.newFileSystem()` method to provide a + way to create new file systems dynamically at runtime. The new method allows you to create file systems from + various sources like ZIP files, JAR files, and custom providers, enabling more flexible and dynamic file system + operations. + - **ZGC (Production Feature)**: Java 13 promoted the Z Garbage Collector (ZGC) to a production feature to provide + low-latency garbage collection for large heaps. ZGC is designed to reduce pause times and improve responsiveness + for applications that require low-latency garbage collection. + - **Text Blocks (Second Preview)**: Java 13 introduced text blocks as a second preview feature to provide a more + readable and maintainable way to write multi-line strings in Java. Text blocks allow you to define multi-line + strings with improved formatting and indentation, making it easier to write and read complex string literals. +- 228 . What are the new features in Java 17? \ + Java 17 introduced several new features and enhancements to the Java programming language, including: + - **Sealed Classes (Standard Feature)**: Java 17 introduced sealed classes as a standard feature to provide a way to + restrict the subclasses of a class. Sealed classes allow you to define a limited set of subclasses that can extend + a class, improving code maintainability and security. + - **Pattern Matching for switch (Standard Feature)**: Java 17 introduced pattern matching for switch as a standard + feature to provide a more concise and expressive way to write switch statements. Pattern matching for switch + allows + you to use patterns in switch cases to destructure objects and extract values, enabling more powerful and flexible + switch statements. + - **JEP 356: Enhanced Pseudo-Random Number Generators**: Java 17 introduced enhanced pseudo-random number generators + to provide improved performance and security for generating random numbers. The enhanced pseudo-random number + generators use a more efficient algorithm to generate random numbers and provide better randomness and + unpredictability. + - **JEP 382: New macOS Rendering Pipeline**: Java 17 introduced a new macOS rendering pipeline to provide better + performance and compatibility for rendering graphics on macOS. The new rendering pipeline uses the Metal API to + improve graphics rendering and reduce latency on macOS systems. + - **JEP 391: macOS/AArch64 Port**: Java 17 introduced support for running Java applications on macOS systems with + Apple Silicon (ARM64) processors. The macOS/AArch64 port enables Java applications to run natively on Apple + Silicon + hardware, providing better performance and compatibility for macOS users. + - **JEP 411: Deprecate the Security Manager for Removal**: Java 17 deprecated the Security Manager for removal in + future releases. The Security Manager is a legacy feature that provides security checks and restrictions for Java + applications, but it is no longer widely used and has been replaced by other security mechanisms. + - **JEP 412: Foreign Function & Memory API (Incubator)**: Java 17 introduced the Foreign Function & Memory API as + an incubator feature to provide a way to interoperate with native code and memory in Java applications. The + Foreign + Function & Memory API allows you to call native functions and access native memory directly from Java code, + enabling + better integration with native libraries and systems. + - **JEP +- 228 . What are the new features in Java 21? \ + Java 21 introduced several new features and enhancements to the Java programming language, including: + - **JEP 406: Pattern Matching for switch (Standard Feature)**: Java 21 introduced pattern matching for switch as a + standard feature to provide a more concise and expressive way to write switch statements. Pattern matching for + switch + allows you to use patterns in switch cases to destructure objects and extract values, enabling more powerful and + flexible switch statements. + - **JEP 413: Code Snippets in Java API Documentation**: Java 21 introduced code snippets in Java API documentation + to + provide more interactive and informative examples for developers. Code snippets allow you to see and run code + examples + directly in the API documentation, making it easier to understand and use Java APIs. + - **JEP 414: Vector API (Second Incubator)**: Java 21 introduced the Vector API as a second incubator feature to + provide a way to perform vectorized operations on arrays and vectors in Java applications. The Vector API allows + you + to use vector instructions and hardware acceleration to improve performance for numerical and scientific + computing. + - **JEP 415: Context-Specific Deserialization Filters**: Java 21 introduced context-specific deserialization filters + to provide a way to filter and control the deserialization of objects based on the context. Context-specific + deserialization filters allow you to define custom filters that can be applied to specific deserialization + operations, + improving security and performance for Java applications. + - **JEP 416: Java Embedded Content API**: Java 21 introduced the Java Embedded Content API to provide a way to embed + content like images, videos, and other media in Java applications. The Java Embedded Content API allows you to + load, + display, and interact with embedded content in Java applications, enabling richer and more interactive user + interfaces. + - **JEP 417: Vector API (Incubator)**: Java 21 introduced the Vector API as an incubator feature to provide a way to + perform vectorized operations on arrays and vectors in Java applications. The Vector API allows you to use vector + instructions and hardware acceleration to improve performance for numerical and scientific computing. + - **JEP 418: Java on Windows AArch64**: Java 21 introduced support for running Java applications on Windows systems + with ARM64 processors. Java on Windows AArch64 enables Java applications to run natively on Windows ARM64 + hardware, + - **JEP 419: Java on Alpine Linux**: Java 21 introduced support for running Java applications on Alpine Linux, a + lightweight and secure Linux distribution. Java on Alpine Linux provides better compatibility and performance for + Java applications running in containerized environments and cloud-native architectures. + - **JEP 420: Java on Docker**: Java 21 introduced support for running Java applications on Docker containers to + provide a more seamless and integrated experience for Java developers. Java on Docker enables you to build, + package, + and deploy Java applications in Docker containers, improving portability and scalability for Java applications. + - **JEP 421: Java on Kubernetes**: Java 21 introduced support for running Java applications on Kubernetes, a popular + container orchestration platform. Java on Kubernetes provides better integration and management of Java + applications + in Kubernetes environments, enabling you to deploy and scale Java applications more effectively in cloud-native + architectures. + - **JEP 422: Java on AWS**: Java 21 introduced support for running Java applications on Amazon Web Services (AWS), + a leading cloud computing platform. Java on AWS provides better integration and performance for Java applications + running on AWS services, enabling you to build and deploy Java applications in the cloud more effectively. + - **JEP 423: Java on Azure**: Java 21 introduced support for running Java applications on Microsoft Azure, a + cloud computing platform. Java on Azure provides better integration and scalability for Java applications running + on Azure services, enabling you to build and deploy Java applications in the cloud more effectively. + - **JEP 424: Java on Google Cloud**: Java 21 introduced support for running Java applications on Google Cloud, a + cloud computing platform. Java on Google Cloud provides better integration and performance for Java applications + running on Google Cloud services, enabling you to build and deploy Java applications in the cloud more + effectively. ### What you can do next? From 418d9fc597256c1e23e8d01003d03562f266b204 Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Fri, 6 Dec 2024 13:11:32 -0600 Subject: [PATCH 04/14] more changes. --- readme.md | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 112 insertions(+), 3 deletions(-) diff --git a/readme.md b/readme.md index 602f364..65c3f0b 100644 --- a/readme.md +++ b/readme.md @@ -2661,8 +2661,100 @@ public class Dog implements Animal { These methods provide different ways to create `ExecutorService` instances with varying thread pool configurations based on the requirements of the application. -- 195 . How do you check whether an ExecutionService task executed successfully? -- 196 . What is callable? How do you execute a callable from executionservice? +- 195 . How do you check whether an ExecutionService task executed successfully? \ + The `Future` interface in the Java Concurrency API provides a way to check whether an `ExecutorService` task executed + successfully and retrieve the result of the task. The `Future` interface represents the result of an asynchronous + computation and provides methods for checking the status of the task, waiting for the task to complete, and retrieving + the result of the task. + + Here is an example of using `Future` to check whether an `ExecutorService` task executed successfully: + + ```java + import java.util.concurrent.ExecutorService; + import java.util.concurrent.Executors; + import java.util.concurrent.Future; + + public class Main { + public static void main(String[] args) { + // Create an ExecutorService with a fixed thread pool size + ExecutorService executor = Executors.newFixedThreadPool(2); + + // Submit a task for execution + Future future = executor.submit(() -> { + Thread.sleep(2000); + return "Task completed successfully"; + }); + + // Check if the task is done + if (future.isDone()) { + try { + // Get the result of the task + String result = future.get(); + System.out.println("Task result: " + result); + } catch (Exception e) { + e.printStackTrace(); + } + } + + // Shutdown the ExecutorService + executor.shutdown(); + } + } + ``` + + In this example, a task is submitted for execution using the `submit` method, which returns a `Future` representing the + result of the task. The `isDone` method is used to check if the task has completed, and the `get` method is used to + retrieve the result of the task. If the task is done, the result is printed to the console. Finally, the `ExecutorService` is shut down to release the resources. +- 196 . What is callable? How do you execute a callable from executionservice? \ + `Callable` is a functional interface in the Java Concurrency API that represents a task that can be executed + asynchronously and return a result. `Callable` is similar to `Runnable`, but it can return a result or throw an + exception. The `Callable` interface defines a single method, `call`, that takes no arguments and returns a result of + a specified type. + + Here is an example of executing a `Callable` from an `ExecutorService`: + + ```java + import java.util.concurrent.Callable; + import java.util.concurrent.ExecutorService; + import java.util.concurrent.Executors; + import java.util.concurrent.Future; + + public class Main { + public static void main(String[] args) { + // Create an ExecutorService with a fixed thread pool size + ExecutorService executor = Executors.newFixedThreadPool(2); + + // Create a Callable task + Callable callable = () -> { + Thread.sleep(2000); + return "Task completed successfully"; + }; + + // Submit the Callable task for execution + Future future = executor.submit(callable); + + // Check if the task is done + if (future.isDone()) { + try { + // Get the result of the task + String result = future.get(); + System.out.println("Task result: " + result); + } catch (Exception e) { + e.printStackTrace(); + } + } + + // Shutdown the ExecutorService + executor.shutdown(); + } + } + ``` + + In this example, a `Callable` task is created using a lambda expression that sleeps for 2 seconds and returns a result. + The `Callable` task is then submitted for execution using the `submit` method, which returns a `Future` representing + the result of the task. The `isDone` method is used to check if the task has completed, and the `get` method is used to + retrieve the result of the task. If the task is done, the result is printed to the console. Finally, the + `ExecutorService` is shut down to release the resources. - 197 . What is synchronization of threads? \ Synchronization in Java is a mechanism that allows multiple threads to coordinate access to shared resources. - 198 . Can you give an example of a synchronized block? \ @@ -2811,7 +2903,24 @@ public class Dog implements Animal { In this example, a thread is created that sleeps for 2 seconds before finishing. The `join` method is called on the thread to wait for it to finish before printing a message in the main thread. This ensures that the main thread waits for the thread to complete before continuing. -- 201 . Describe a few other important methods in threads? +- 201 . Describe a few other important methods in threads? \ + Some other important methods in Java threads include: + - **`start`**: The `start` method is used to start a thread and execute its `run` method asynchronously. + - **`sleep`**: The `sleep` method is used to pause the execution of a thread for a specified amount of time. + - **`yield`**: The `yield` method is used to give up the current thread's turn and allow other threads to run. + - **`interrupt`**: The `interrupt` method is used to interrupt a thread that is blocked or sleeping. + - **`isAlive`**: The `isAlive` method is used to check if a thread is alive and running. + - **`setName` and `getName`**: The `setName` and `getName` methods are used to set and get the name of a thread. + - **`setPriority` and `getPriority`**: The `setPriority` and `getPriority` methods are used to set and get the + priority of a thread. + - **`join`**: The `join` method is used to wait for a thread to complete its execution before continuing with the + current thread. + - **`wait` and `notify`**: The `wait` and `notify` methods are used for inter-thread communication and synchronization + in multi-threaded programs. + - **`isInterrupted` and `interrupted`**: The `isInterrupted` and `interrupted` methods are used to check if a thread + has been interrupted. + - **`run`**: The `run` method is the entry point for a thread's execution and contains the code that the thread will + run. - 202 . What is a deadlock? How can you avoid a deadlock? \ A deadlock is a situation in multi-threaded programming where two or more threads are blocked forever, waiting for each From 4116f209d3f6b88d0f2493e13e05e0bb22a6c9c5 Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Fri, 6 Dec 2024 16:50:52 -0600 Subject: [PATCH 05/14] More changes are added --- readme.md | 600 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 366 insertions(+), 234 deletions(-) diff --git a/readme.md b/readme.md index 65c3f0b..94449a3 100644 --- a/readme.md +++ b/readme.md @@ -30,7 +30,7 @@ Available in the resources for the course ### Java Platform -- 1 . Why is Java so popular? +- **1 . ****Why is Java so popular?** - Java is popular for several reasons: 1. **Platform Independence**: Java programs can run on any device that has the Java Virtual Machine (JVM), making it @@ -42,18 +42,18 @@ Available in the resources for the course 6. **Performance**: Java's performance has improved significantly with Just-In-Time (JIT) compilers and other optimizations. 7. **Enterprise Use**: Java is widely used in enterprise environments, particularly for server-side applications. -- 2 . What is platform independence? +- **2 . What is platform independence?** Platform independence refers to the ability of a programming language or software to run on various types of computer systems without modification. In the context of Java, platform independence is achieved through the use of the Java Virtual Machine (JVM). Java programs are compiled into bytecode, which can be executed on any device that has a JVM, regardless of the underlying hardware and operating system. This allows Java applications to be written once and run anywhere. -- 3 . What is bytecode? +- **3 . What is bytecode?** Bytecode is an intermediate representation of a Java program. When a Java program is compiled, it is converted into bytecode, which is a set of instructions that can be executed by the Java Virtual Machine (JVM). Bytecode is platform-independent, meaning it can run on any device that has a JVM, regardless of the underlying hardware and operating system. This allows Java programs to be written once and run anywhere. -- 4 . Compare JDK vs JVM vs JRE +- **4 . Compare JDK vs JVM vs JRE** - **JDK (Java Development Kit)**: A software development kit used to develop Java applications. It includes the JRE, an interpreter/loader (Java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), and other tools needed for Java development. @@ -62,14 +62,14 @@ Available in the resources for the course platform independence. - **JRE (Java Runtime Environment)**: A package of software that provides the class libraries, JVM, and other components to run applications written in Java. It does not include development tools like compilers or debuggers. -- 5 . What are the important differences between C++ and Java? +- **5 . What are the important differences between C++ and Java?** - **Memory Management**: C++ uses manual memory management with pointers, while Java uses automatic garbage collection. - **Platform Independence**: Java is platform-independent due to the JVM, whereas C++ is platform-dependent and needs to be compiled for each platform. - **Multiple Inheritance**: C++ supports multiple inheritance, while Java does not. Java uses interfaces to achieve similar functionality. - - **Pointers**: C++ supports pointers, allowing direct memory access. Java does not support pointers explicitly, + - **Pointers**: C++ supports pointe rs, allowing direct memory access. Java does not support pointers explicitly, enhancing security and simplicity. - **Standard Library**: Java has a rich standard library with built-in support for networking, threading, and GUI development. C++ has a standard library but with less built-in support for these features. @@ -80,7 +80,7 @@ Available in the resources for the course ### Wrapper Classes -- 7 . What are Wrapper classes? +- **7 . What are Wrapper classes?** Wrapper classes in Java are classes that encapsulate a primitive data type into an object. They provide a way to use primitive data types (like `int`, `char`, etc.) as objects. Each primitive type has a corresponding wrapper class: @@ -96,7 +96,7 @@ Available in the resources for the course Wrapper classes are useful because they allow primitives to be used in contexts that require objects, such as in collections like `ArrayList`, and they provide utility methods for converting between types and performing operations on the values. -- 8 . Why do we need Wrapper classes in Java? +- **8 . Why do we need Wrapper classes in Java?** Wrapper classes in Java are needed for the following reasons: 1. **Object-Oriented Programming**: Wrapper classes allow primitive data types to be treated as objects, enabling them to be used in object-oriented programming contexts. @@ -108,7 +108,7 @@ Available in the resources for the course which is not possible with primitive types. 5. **Type Safety**: Wrapper classes enable type safety in generic programming, ensuring that only the correct type of objects are used. -- 9 . What are the different ways of creating Wrapper class instances? +- **9 . What are the different ways of creating Wrapper class instances?** There are two main ways to create instances of Wrapper classes in Java: 1. **Using Constructors**: Each wrapper class has a constructor that takes a primitive type or a String as an argument. @@ -122,7 +122,7 @@ Available in the resources for the course Integer intObj1 = 10; Integer intObj2 = Integer.valueOf("10"); ``` -- 10 . What are differences in the two ways of creating Wrapper classes? +- **10 . What are differences in the two ways of creating Wrapper classes?** The two ways of creating Wrapper class instances in Java are using constructors and using static factory methods. Here are the differences: @@ -145,7 +145,7 @@ Available in the resources for the course frequently requested values, improving performance. - **Readability**: Using `valueOf` is often more readable and expressive. - **Deprecation**: Some constructors in wrapper classes are deprecated in favor of static factory methods. -- 11 . What is auto boxing? +- **11 . What is auto boxing?** Autoboxing in Java is the automatic conversion that the Java compiler makes between the primitive types and their corresponding object wrapper classes. For example, converting an `int` to an `Integer`, a `double` to a `Double`, and so on. This feature was introduced in Java 5 to simplify the process of working with primitive types in contexts that @@ -158,7 +158,7 @@ Available in the resources for the course ``` In this example, the primitive `int` is automatically converted to an `Integer` object. -- 12 . What are the advantages of auto boxing? +- **12 . What are the advantages of auto boxing?** Autoboxing in Java provides several advantages: 1. **Simplicity**: Autoboxing simplifies the process of working with primitive types in contexts that require objects, @@ -171,7 +171,7 @@ Available in the resources for the course 4. **Compatibility**: Autoboxing allows code written with primitive types to be used in contexts that require objects, without the need for explicit conversion. -- 13 . What is casting? +- **13 . What is casting?** Casting in Java is the process of converting a value of one data type to another. There are two types of casting: 1. **Implicit Casting**: When a smaller data type is converted to a larger data type, Java automatically performs the @@ -186,7 +186,7 @@ Available in the resources for the course double doubleValue = 10.5; int intValue = (int) doubleValue; // Explicit casting ``` -- 14 . What is implicit casting? +- **14 . What is implicit casting?** Implicit casting in Java is the automatic conversion of a smaller data type to a larger data type. Java performs implicit casting when the target data type can accommodate the source data type without loss of precision. For example, converting an `int` to a `double` or a `float` to a `double`. @@ -196,7 +196,7 @@ Available in the resources for the course int intValue = 10; double doubleValue = intValue; // Implicit casting ``` -- 15 . What is explicit casting? +- **15 . What is explicit casting?** Explicit casting in Java is the manual conversion of a larger data type to a smaller data type, or when converting between incompatible types. Java requires explicit casting when the target data type may lose precision or range when accommodating the source data type. For example, converting a `double` to an `int`. @@ -209,18 +209,18 @@ Available in the resources for the course ### Strings -- 16 . Are all String’s immutable? +- **16 . Are all String**’s immutable? No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String` object is created, its value cannot be changed. However, there are other classes like `StringBuilder` and `StringBuffer` that provide mutable alternatives to `String`. These classes allow you to modify the contents of the string without creating new objects. -- 17 . Where are String values stored in memory? +- **17 . Where are String values stored in memory?** In Java, `String` values are stored in a special memory area called the **String Pool**. The String Pool is part of the Java heap memory and is used to store unique `String` literals. When a `String` literal is created, the JVM checks the String Pool to see if an identical `String` already exists. If it does, the reference to the existing `String` is returned. If not, the new `String` is added to the pool. This process helps in saving memory and improving performance by reusing immutable `String` objects. -- 18 . Why should you be careful about String concatenation(+) operator in loops? +- **18 . Why should you be careful about String concatenation**(+) operator in loops? String concatenation using the `+` operator in loops can be inefficient due to the immutability of `String` objects. Each time a `String` is concatenated using the `+` operator, a new `String` object is created, resulting in unnecessary memory allocation and garbage collection. This can lead to performance issues, especially in loops where @@ -229,7 +229,7 @@ Available in the resources for the course for string concatenation in loops, as these classes provide mutable alternatives to `String` and are more efficient for building strings. -- 19 . How do you solve above problem? +- **19 . How do you solve above problem?** To solve the problem of inefficient string concatenation using the `+` operator in loops, you should use `StringBuilder` or `StringBuffer`. These classes provide mutable alternatives to `String` and are more efficient for building strings. @@ -244,7 +244,7 @@ Available in the resources for the course String result = sb.toString(); ``` -- 20 . What are the differences between `String` and `StringBuffer`? +- **20 . What are the differences between `String` and `StringBuffer`?** - **Mutability**: `String` objects are immutable, meaning their values cannot be changed once created. `StringBuffer` objects are mutable, allowing their values to be modified. - **Thread Safety**: `StringBuffer` is synchronized, making it thread-safe. `String` is not synchronized. @@ -252,7 +252,7 @@ Available in the resources for the course is faster for concatenation and modification operations. - **Usage**: Use `String` when the value does not change. Use `StringBuffer` when the value changes frequently and thread safety is required. -- 22 . Can you give examples of different utility methods in String class? +- **22 . Can you give examples of different utility methods in String class?** The `String` class in Java provides various utility methods. Here are some examples: ```java @@ -287,20 +287,20 @@ Available in the resources for the course ### Object oriented programming basics -- 23 . What is a class? +- **23 . What is a class?** A class in Java is a blueprint for creating objects. It defines a set of properties (fields) and methods that the created objects will have. A class encapsulates data for the object and methods to manipulate that data. It serves as a template from which individual objects are instantiated. -- 25 . What is state of an object? +- **25 . What is state of an object?** The state of an object in Java refers to the data or values stored in its fields (instance variables) at any given time. The state represents the current condition of the object, which can change over time as the values of its fields are modified through methods or operations. -- 26 . What is behavior of an object? +- **26 . What is behavior of an object?** The behavior of an object in Java refers to the actions or operations that the object can perform. These behaviors are defined by the methods in the object's class. The methods manipulate the object's state and can interact with other objects. The behavior of an object is what it can do, such as calculating a value, modifying its state, or interacting with other objects. -- 28 . Explain about toString method ? +- **28 . Explain about toString method ?** The `toString` method in Java is a method that returns a string representation of an object. It is defined in the `Object` class, which is the superclass of all Java classes. By default, the `toString` method returns a string that consists of the class name followed by the `@` character and the object's hashcode in hexadecimal form. @@ -335,7 +335,7 @@ Available in the resources for the course In this example, the `toString` method is overridden to return a string that includes the `name` and `age` of the `Person` object. -- 29 . What is the use of equals method in Java? +- **29 . What is the use of equals method in Java?** The `equals` method in Java is used to compare the equality of two objects. It is defined in the `Object` class and can be overridden in subclasses to provide custom equality logic. By default, the `equals` method compares object references, checking if two references point to the same object in memory. @@ -386,7 +386,7 @@ Available in the resources for the course determine if they are equal. The `hashCode` method is also overridden to ensure that equal objects have the same hash code, which is important when using objects in collections like `HashSet` or `HashMap`. -- 30 . What are the important things to consider when implementing `equals` method? +- **30 . What are the important things to consider when implementing `equals` method?** - **Reflexive**: `x.equals(x)` should return `true`. - **Symmetric**: If `x.equals(y)` returns `true`, then `y.equals(x)` should also return `true`. - **Transitive**: If `x.equals(y)` and `y.equals(z)` both return `true`, then `x.equals(z)` should also @@ -395,7 +395,7 @@ Available in the resources for the course - **Non-nullity**: `x.equals(null)` should return `false`. - **Type Check**: Ensure the object being compared is of the correct type. - **Field Comparison**: Compare significant fields that determine equality. -- 31 . What is the Hashcode method used for in Java? +- **31 . What is the Hashcode method used for in Java?** The `hashCode` method in Java is used to generate a unique integer value for an object. It is defined in the `Object` class and can be overridden in subclasses to provide a custom hash code calculation. The `hashCode` method is used primarily for objects that are stored in collections like `HashSet` or `HashMap`, where the hash code is used to @@ -428,7 +428,7 @@ Available in the resources for the course In this example, the `hashCode` method is overridden to generate a hash code based on the `name` and `age` fields of `Person` objects. This ensures that equal objects have the same hash code, which is important for using objects in collections like `HashSet` or `HashMap`. -- 32 . Explain inheritance with examples. +- **32 . Explain inheritance with examples**. Inheritance in Java is a mechanism where one class (subclass) inherits the fields and methods of another class ( superclass). It allows for code reuse and establishes a relationship between classes. @@ -464,17 +464,104 @@ Available in the resources for the course - `Dog` is the subclass that inherits the `eat()` method from `Animal` and also has its own method `bark()`. - In the `Main` class, an instance of `Dog` can call both `eat()` and `bark()` methods. -- 33 . What is method overloading? +- **33 . What is method overloading?** Method overloading in Java is a feature that allows a class to have more than one method with the same name, provided their parameter lists are different. This means that the methods must differ in the type, number, or order of their parameters. Method overloading is a compile-time polymorphism technique, enabling different methods to perform similar operations with varying inputs. It enhances code readability and reusability by allowing the same method name to be used for different tasks, based on the arguments passed. Overloaded methods can have different return types, but this alone is not enough for overloading; the parameter list must be different. -- 34 . What is method overriding? -- 35 . Can super class reference variable can hold an object of sub class? -- 36 . Is multiple inheritance allowed in Java? -- 37 . What is an interface? +- **34 . What is method overriding?** + Method overriding in Java is a feature that allows a subclass to provide a specific implementation of a method that is + already provided by its superclass. When a method in a subclass has the same name, return type, and parameters as a + method in its superclass, it is said to override the superclass method. Method overriding is a runtime polymorphism + technique, enabling a subclass to provide its own implementation of a method inherited from a superclass. This allows + for more specific behavior to be defined in the subclass, while still maintaining a common interface with the + superclass. Method overriding is used to achieve dynamic polymorphism in Java. +- **35 . Can super class reference variable can hold an object of sub class?** + Yes, a superclass reference variable can hold an object of a subclass in Java. This is known as polymorphism and is a + key feature of object-oriented programming. When a superclass reference variable holds an object of a subclass, it can + only access the methods and fields that are defined in the superclass. If the subclass has additional methods or + fields + that are not present in the superclass, they cannot be accessed using the superclass reference variable. However, if + the superclass reference variable is cast to the subclass type, it can access the subclass-specific methods and + fields. + Here is an example: + + ```java + class Animal { + void eat() { + System.out.println("Animal is eating"); + } + } + + class Dog extends Animal { + void bark() { + System.out.println("Dog is barking"); + } + } + + public class Main { + public static void main(String[] args) { + Animal animal = new Dog(); // Superclass reference holding subclass object + animal.eat(); // Accessing superclass method + // animal.bark(); // Compilation error: Cannot access subclass-specific method + Dog dog = (Dog) animal; // Casting to subclass type + dog.bark(); // Accessing subclass-specific method + } + } + ``` + + In this example: + - The `Animal` class has an `eat` method. + - The `Dog` class extends `Animal` and has a `bark` method. + - In the `Main` class, an `Animal` reference variable holds a `Dog` object. + - The `eat` method can be accessed using the superclass reference variable. + - The `bark` method cannot be accessed using the superclass reference variable, but it can be accessed after casting + to the subclass type. +- **36 . Is multiple inheritance allowed in Java?** + Java does not support multiple inheritance of classes, meaning a class cannot extend more than one class at a time. + This is to avoid the "diamond problem," where conflicts can arise if two superclasses have methods with the same + signature. However, Java does support multiple inheritance of interfaces, allowing a class to implement multiple + interfaces. This provides a form of multiple inheritance by allowing a class to inherit the abstract methods of + multiple interfaces. By using interfaces, Java achieves the benefits of multiple inheritance without the issues + associated with multiple inheritance of classes. + + Here is an example of multiple inheritance of interfaces: + + ```java + interface InterfaceA { + void methodA(); + } + + interface InterfaceB { + void methodB(); + } + + class MyClass implements InterfaceA, InterfaceB { + public void methodA() { + System.out.println("Method A"); + } + + public void methodB() { + System.out.println("Method B"); + } + } + + public class Main { + public static void main(String[] args) { + MyClass obj = new MyClass(); + obj.methodA(); + obj.methodB(); + } + } + ``` + + In this example: + - `InterfaceA` and `InterfaceB` are two interfaces with abstract methods. + - The `MyClass` class implements both interfaces, providing concrete implementations for the abstract methods. + - The `Main` class creates an instance of `MyClass` and calls the methods defined in the interfaces. +- **37 . What is an interface?** An interface in Java is a reference type, similar to a class, that can contain only constants, method signatures, default methods, static methods, and nested types. Interfaces cannot contain instance fields or constructors. They are used to specify a set of methods that a class must implement. An interface is a way to achieve abstraction and @@ -508,7 +595,7 @@ public class Dog implements Animal { } ``` -- 38 . How do you define an interface? +- **38 . How do you define an interface?** An interface in Java is defined using the `interface` keyword. It can contain abstract methods, default methods, static methods, and constants. Here is an example: @@ -519,7 +606,7 @@ public class Dog implements Animal { void sleep(); } ``` -- 39 . How do you implement an interface? +- **39 . How do you implement an interface?** To implement an interface in Java, a class must use the `implements` keyword and provide concrete implementations for all the methods declared in the interface. Here is an example: @@ -547,7 +634,7 @@ public class Dog implements Animal { - The `Dog` class implements the `Animal` interface and provides concrete implementations for the `eat` and `sleep` methods. -- 40 . Can you explain a few tricky things about interfaces? +- **40 . Can you explain a few tricky things about interfaces?** Here are a few tricky things about interfaces in Java: 1. **Default Methods**: Interfaces can have default methods with a body. This allows adding new methods to @@ -623,7 +710,7 @@ public class Dog implements Animal { } } ``` -- 41 . Can you extend an interface? +- **41 . Can you extend an interface?** Yes, in Java, an interface can extend another interface. This allows the extending interface to inherit the abstract methods of the parent interface. Here is an example: @@ -640,7 +727,7 @@ public class Dog implements Animal { In this example, the `Dog` interface extends the `Animal` interface, inheriting its methods (`eat` and `sleep`) and adding a new method (`bark`). -- 42 . Can a class extend multiple interfaces? +- **42 . Can a class extend multiple interfaces?** Yes, in Java, a class can implement multiple interfaces. This allows the class to inherit the abstract methods of all the interfaces it implements. Here is an example: @@ -673,7 +760,7 @@ public class Dog implements Animal { ``` In this example, the `Dog` class implements both the `Animal` and `Pet` interfaces, providing concrete implementations for all the methods declared in the interfaces. -- 43 . What is an abstract class? +- **43 . What is an abstract class?** An abstract class in Java is a class that cannot be instantiated on its own and is meant to be subclassed by other classes. It can contain abstract methods, which are declared but not implemented, as well as concrete methods with implementations. Abstract classes are used to define a common interface for subclasses and to provide default behavior @@ -691,7 +778,7 @@ public class Dog implements Animal { ``` In this example, the `Animal` class is declared -- 44 . When do you use an abstract class? +- **44 . When do you use an abstract class?** You should use an abstract class in Java when you want to define a common interface for a group of subclasses and provide default behavior that can be overridden by the subclasses. Abstract classes are useful when you have a set of classes that share common methods or fields, but each class may implement those methods differently. By defining an @@ -704,7 +791,7 @@ public class Dog implements Animal { - When you want to define a common interface for a group of classes that share similar behavior. Abstract classes are a powerful tool in Java for creating hierarchies of classes with shared behavior and structure. -- 45 . How do you define an abstract method? +- **45 . How do you define an abstract method?** An abstract method in Java is a method that is declared but not implemented in an abstract class. Abstract methods do not have a body and are meant to be implemented by subclasses. To define an abstract method, you use the `abstract` keyword in the method signature. Here is an example: @@ -717,7 +804,7 @@ public class Dog implements Animal { In this example, the `eat` method is declared as abstract in the `Animal` class, meaning that any subclass of `Animal` must provide an implementation for the `eat` method. -- 46 . Compare abstract class vs interface? +- **46 . Compare abstract class vs interface?** - **Abstract Class**: - Can have both abstract and concrete methods. - Can have instance variables. @@ -733,7 +820,7 @@ public class Dog implements Animal { - Cannot have constructors. - Supports multiple inheritance. - All methods are implicitly public and abstract (except default and static methods). -- 47 . What is a constructor? +- **47 . What is a constructor?** A constructor in Java is a special type of method that is used to initialize objects. It is called when an object of a class is created using the `new` keyword. Constructors have the same name as the class and do not have a return type. They can have parameters to initialize the object's state. @@ -762,7 +849,7 @@ public class Dog implements Animal { In this example, the `Person` class has a parameterized constructor that initializes the `name` and `age` fields of the `Person` object. -- 48 . What is a default constructor? +- **48 . What is a default constructor?** A default constructor in Java is a constructor that is automatically provided by the compiler if a class does not have any constructor defined. It is a no-argument constructor that initializes the object with default values. The default constructor is used when an object is created without passing any arguments to the constructor. @@ -784,7 +871,7 @@ public class Dog implements Animal { In this example, the `Person` class does not have any constructor defined, so the compiler provides a default constructor that initializes the `name` and `age` fields with default values. -- 49 . Will this code compile? +- **49 . Will this code compile?** Here is an example of a Java code segment that will not compile due to a missing semicolon: ```java @@ -803,7 +890,7 @@ public class Dog implements Animal { } } ``` -- 50 . How do you call a super class constructor from a constructor? +- **50 . How do you call a super class constructor from a constructor?** In Java, you can call a superclass constructor from a subclass constructor using the `super` keyword. This is useful when you want to initialize the superclass part of the object before initializing the subclass part. The `super` keyword must be the first statement in the subclass constructor @@ -828,13 +915,31 @@ public class Dog implements Animal { In this example, the `SubClass` constructor calls the `SuperClass` constructor with the argument `"Hello from SuperClass"`. -- 51 . Will this code compile? -- 52 . What is the use of this()? -- 53 . Can a constructor be called directly from a method? +- **51 . Will this code compile?** + +```java + public class Example { + public static void main(String[] args) { + System.out.println("Hello, World!") // Missing semicolon here + } + +} + ``` + + No, this code will not compile due to a missing semicolon at the end of the `System.out.println` statement. In Java, + +- **52 . What is the use of this**() keyword in Java? + The `this` keyword in Java is a reference to the current object within a method or constructor. It can be used to + access instance variables, call other constructors, or pass the current object as a parameter to other methods. The + use of `this` is optional, but it can help clarify code and avoid naming conflicts between instance variables and + method parameters. + +- **53 . Can a constructor be called directly from a method?** No, a constructor cannot be called directly from a method. Constructors are special methods that are called only when an object is created. However, you can call another constructor from a constructor using `this()` or `super()`. If you need to initialize an object within a method, you should create a new instance of the class using the `new` keyword. -- 54 . Is a super class constructor called even when there is no explicit call from a sub class constructor? + +- **54 . Is a super class constructor called even when there is no explicit call from a sub class constructor?** Yes, a superclass constructor is always called, even if there is no explicit call from a subclass constructor. If a subclass constructor does not explicitly call a superclass constructor using `super()`, the Java compiler automatically inserts a call to the no-argument constructor of the superclass. If the superclass does not have a @@ -842,7 +947,7 @@ public class Dog implements Animal { ### Advanced object oriented concepts -- 55 . What is polymorphism? +- **55 . What is polymorphism?** \ Polymorphism in Java is the ability of an object to take on many forms. It allows one interface to be used for a general class of actions. The specific action is determined by the exact nature of the situation. Polymorphism is mainly achieved through method overriding and method overloading. @@ -853,7 +958,7 @@ public class Dog implements Animal { Polymorphism allows for flexibility and the ability to define methods that can be used interchangeably, making the code more modular and easier to maintain. -- 56 . What is the use of instanceof operator in Java? +- **56 . What is the use of instanceof operator in Java?** The `instanceof` operator in Java is used to test whether an object is an instance of a specific class or implements a specific interface. It returns `true` if the object is an instance of the specified class or interface, and `false` otherwise. This operator is useful for type checking before performing type-specific operations. @@ -885,7 +990,7 @@ public class Dog implements Animal { In this example, the `instanceof` operator checks if the `animal` object is an instance of the `Dog` class before casting it to `Dog` and calling the `bark` method. -- 57 . What is coupling? +- **57 . What is coupling?** Coupling in software engineering refers to the degree of direct knowledge that one module has about another. It measures how closely connected two routines or modules are. High coupling means that modules are highly dependent on each other, which can make the system more difficult to understand, maintain, and modify. Low coupling, on the other @@ -900,7 +1005,7 @@ public class Dog implements Animal { To reduce coupling, it is important to follow good design principles like encapsulation, abstraction, and separation of concerns. -- 58 . What is cohesion? +- **58 . What is cohesion?** Cohesion in software engineering refers to the degree to which the elements inside a module belong together. It measures how closely related the responsibilities of a single module are. High cohesion means that the elements within a module are strongly related and work together to achieve a common goal. Low cohesion, on the other hand, means that @@ -909,7 +1014,7 @@ public class Dog implements Animal { Cohesion in Java refers to the degree to which the methods in a class are related and work together to achieve a common purpose. High cohesion is desirable as it promotes code that is easier to understand, maintain, and test. Low cohesion can lead to code that is difficult to follow, modify, and debug. -- 59 . What is encapsulation? +- **59 . What is encapsulation?** Encapsulation in Java is a fundamental object-oriented programming concept that involves bundling the data (fields) and the methods (functions) that operate on the data into a single unit, called a class. It restricts direct access to some of the object's components, which can help prevent the accidental modification of data. Encapsulation is achieved @@ -950,7 +1055,7 @@ public class Dog implements Animal { In this example, the `name` and `age` fields are private, and they can only be accessed and modified through the public getter and setter methods. This ensures that the internal state of the object is protected and can only be changed in a controlled manner. -- 60 . What is an inner class? +- **60 . What is an inner class?** An inner class in Java is a class that is defined within another class. Inner classes can access the members ( including private members) of the outer class. There are four types of inner classes in Java: @@ -980,22 +1085,22 @@ public class Dog implements Animal { ``` In this example, `InnerClass` is an inner class within `OuterClass` and can access the `outerField` of `OuterClass`. -- 61 . What is a static inner class? -- 62 . Can you create an inner class inside a method? -- 63 . What is an anonymous class? +- **61 . What is a static inner class?** +- **62 . Can you create an inner class inside a method?** +- **63 . What is an anonymous class?** ### Modifiers -- 64 . What is default class modifier? -- 65 . What is private access modifier? -- 66 . What is default or package access modifier? -- 67 . What is protected access modifier? -- 68 . What is public access modifier? -- 69 . What access types of variables can be accessed from a class in same package? -- 70 . What access types of variables can be accessed from a class in different package? -- 71 . What access types of variables can be accessed from a sub class in same package? -- 72 . What access types of variables can be accessed from a sub class in different package? -- 73 . What is the use of a final modifier on a class? +- **64 . What is default class modifier?** +- **65 . What is private access modifier?** +- **66 . What is default or package access modifier?** +- **67 . What is protected access modifier?** +- **68 . What is public access modifier?** +- **69 . What access types of variables can be accessed from a class in same package?** +- **70 . What access types of variables can be accessed from a class in different package?** +- **71 . What access types of variables can be accessed from a sub class in same package?** +- **72 . What access types of variables can be accessed from a sub class in different package?** +- **73 . What is the use of a final modifier on a class?** The `final` modifier on a class in Java is used to prevent the class from being subclassed. This means that no other class can extend a `final` class. It is often used to create immutable classes or to ensure that the implementation of the class cannot be altered through inheritance. @@ -1008,7 +1113,7 @@ public class Dog implements Animal { ``` In this example, `MyClass` cannot be extended by any other class. -- 74 . What is the use of a final modifier on a method? +- **74 . What is the use of a final modifier on a method?** The `final` modifier on a method in Java is used to prevent the method from being overridden by subclasses. This ensures that the implementation of the method remains unchanged in any subclass. @@ -1030,8 +1135,31 @@ public class Dog implements Animal { ``` In this example, the `display` method in `SuperClass` is marked as `final`, so it cannot be overridden in `SubClass`. -- 75 . What is a final variable? -- 76 . What is a final argument? + Any attempt to override the `display` method in `SubClass` will result in a compilation error. This is useful for + ensuring that certain methods retain their behavior across subclasses. +- **75 . What is a final variable?** \ + A final variable in Java is a variable that cannot be reassigned once it has been initialized. The `final` keyword is + used to declare a variable as final. This means that the value of the variable remains constant throughout the + program. Final variables are often used for constants or for ensuring that a variable's value does not change. + + Here is an example: + + ```java + public class Example { + public static final int MAX_VALUE = 100; + + public static void main(String[] args) { + // MAX_VALUE cannot be reassigned + // MAX_VALUE = 200; // This would cause a compilation error + System.out.println(MAX_VALUE); + } + } + ``` + + In this example, `MAX_VALUE` is a final variable that cannot be reassigned after it is initialized. Any attempt to + reassign `MAX_VALUE` will result in a compilation error. This ensures that the value of `MAX_VALUE` remains constant + in the program. +- **76 . What is a final argument?** A final argument in Java is a method parameter that is declared with the `final` keyword. This means that once the parameter is assigned a value, it cannot be changed within the method. This is useful for ensuring that the parameter remains constant throughout the method execution. @@ -1048,12 +1176,12 @@ public class Dog implements Animal { In this example, `finalParam` is a final argument, and any attempt to reassign it within the method will result in a compilation error. -- 77 . What happens when a variable is marked as volatile? +- **77 . What happens when a variable is marked as volatile?** When a variable is marked as `volatile` in Java, it ensures that the value of the variable is always read from and written to the main memory, rather than being cached in a thread's local memory. This guarantees visibility of changes to the variable across all threads. The `volatile` keyword is used to prevent memory consistency errors in concurrent programming. -- 78 . What is a static variable? +- **78 . What is a static variable?** A static variable in Java is a variable that is shared among all instances of a class. It is declared using the `static` keyword and belongs to the class rather than any specific instance. This means that there is only one copy of the static variable, regardless of how many instances of the class are created. Static variables are often used for @@ -1077,31 +1205,31 @@ public class Dog implements Animal { ### conditions & loops -- 79 . Why should you always use blocks around if statement? -- 80 . Guess the output -- 81 . Guess the output -- 82 . Guess the output of this switch block . -- 83 . Guess the output of this switch block? -- 84 . Should default be the last case in a switch statement? -- 85 . Can a switch statement be used around a String -- 86 . Guess the output of this for loop (P.S. there is an error as the output of given question should be +- **79 . Why should you always use blocks around if statement?** +- **80 . Guess the output** +- **81 . Guess the output** +- **82 . Guess the output of this switch block **. +- **83 . Guess the output of this switch block?** +- **84 . Should default be the last case in a switch statement?** +- **85 . Can a switch statement be used around a String** +- **86 . Guess the output of this for loop **(P.S. there is an error as the output of given question should be 0-1-2-3-4-5-6-7-8-9. So please ignore that.) -- 87 . What is an enhanced for loop? -- 88 . What is the output of the for loop below? -- 89 . What is the output of the program below? -- 90 . What is the output of the program below? +- **87 . What is an enhanced for loop?** +- **88 . What is the output of the for loop below?** +- **89 . What is the output of the program below?** +- **90 . What is the output of the program below?** ### Exception handling -- 91 . Why is exception handling important? -- 92 . What design pattern is used to implement exception handling features in most languages? -- 93 . What is the need for finally block? -- 94 . In what scenarios is code in finally not executed? -- 95 . Will finally be executed in the program below? -- 96 . Is try without a catch is allowed? -- 97 . Is try without catch and finally allowed? -- 98 . Can you explain the hierarchy of exception handling classes? -- 99 . What is the difference between error and exception? +- **91 . Why is exception handling important?** +- **92 . What design pattern is used to implement exception handling features in most languages?** +- **93 . What is the need for finally block?** +- **94 . In what scenarios is code in finally not executed?** +- **95 . Will finally be executed in the program below?** +- **96 . Is try without a catch is allowed?** +- **97 . Is try without catch and finally allowed?** +- **98 . Can you explain the hierarchy of exception handling classes?** +- **99 . What is the difference between error and exception?** Errors and exceptions are both types of problems that can occur during the execution of a program, but they are handled differently in Java: @@ -1118,7 +1246,7 @@ public class Dog implements Animal { - **Unchecked Exceptions**: These are exceptions that are not checked at compile-time but occur during runtime. They are subclasses of `RuntimeException` and do not need to be declared or caught. Examples include `NullPointerException`, `ArrayIndexOutOfBoundsException`, and `IllegalArgumentException`. -- 101 . How do you throw an exception from a method? +- **101 . How do you throw an exception from a method?** To throw an exception from a method in Java, you use the `throw` keyword followed by an instance of the exception class. This allows you to create and throw custom exceptions or to re-throw exceptions that were caught earlier. Here is an @@ -1131,13 +1259,13 @@ public class Dog implements Animal { ``` In this example, the `exampleMethod` throws a `RuntimeException` with the message `"An error occurred"`. -- 102 . What happens when you throw a checked exception from a method?\ +- **102 . What happens when you throw a checked exception from a method?** \ When you throw a checked exception from a method in Java, you must either catch the exception using a `try-catch` block or declare the exception using the `throws` keyword in the method signature. If you throw a checked exception without handling it, the code will not compile, and you will get a compilation error. Checked exceptions are checked at compile-time to ensure that they are handled properly. -- 103 . What are the options you have to eliminate compilation errors when handling checked exceptions?\ +- **103 . What are the options you have to eliminate compilation errors when handling checked exceptions?** \ When handling checked exceptions in Java, you have several options to eliminate compilation errors: 1. **Catch the Exception**: Use a `try-catch` block to catch the exception and handle it within the method. @@ -1149,15 +1277,15 @@ public class Dog implements Animal { handling or declaring the exception. 5. **Use a Lambda Expression**: Use a lambda expression to handle the exception in a functional interface that does not declare checked exceptions. -- 104 . How do you create a custom exception? -- 105 . How do you handle multiple exception types with same exception handling block? -- 106 . Can you explain about try with resources? -- 107 . How does try with resources work? -- 108 . Can you explain a few exception handling best practices? +- **104 . How do you create a custom exception?** +- **105 . How do you handle multiple exception types with same exception handling block?** +- **106 . Can you explain about try with resources?** +- **107 . How does try with resources work?** +- **108 . Can you explain a few exception handling best practices?** ### Miscellaneous topics -- 109 . What are the default values in an array? \ +- **109 . What are the default values in an array? ** \ In Java, when an array is created, the elements are initialized to default values based on the type of the array. The default values for primitive types are as follows: @@ -1171,9 +1299,9 @@ public class Dog implements Animal { - **boolean**: false For reference types (objects), the default value is `null`. For example, the default value of an `int` array is `0`. -- 110 . How do you loop around an array using enhanced for loop? -- 111 . How do you print the content of an array? -- 112 . How do you compare two arrays? \ +- **110 . How do you loop around an array using enhanced for loop?** +- **111 . How do you print the content of an array?** +- **112 . How do you compare two arrays? ** \ In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method compares the contents of two arrays to determine if they are equal. It takes two arrays as arguments and returns `true` if the arrays are equal and `false` otherwise. The comparison is done element by element, so the arrays must @@ -1197,7 +1325,7 @@ public class Dog implements Animal { In this example, the `Arrays.equals` method is used to compare the `array1` and `array2` arrays, and the result is printed to the console. -- 113 . What is an enum? \ +- **113 . What is an enum? ** \ An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to define a set of named constants that can be used in place of integer values. Enumerations are defined using the `enum` keyword and can contain constructors, methods, and fields. @@ -1212,7 +1340,7 @@ public class Dog implements Animal { In this example, the `Day` enum defines a set of constants representing the days of the week. Each constant is implicitly declared as a public static final field of the `Day` enum. -- 114 . Can you use a switch statement around an enum? \ +- **114 . Can you use a switch statement around an enum? ** \ Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to provide a more readable and type-safe alternative to using integer values. Each constant in the enum can be used as a case label in the switch statement. @@ -1259,7 +1387,7 @@ public class Dog implements Animal { In this example, the `Day` enum is used with a switch statement to print the day of the week based on the value of the `day` variable. -- 115 . What are variable arguments or varargs? \ +- **115 . What are variable arguments or varargs? ** \ Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This feature was introduced in Java 5 and is denoted by an ellipsis (`...`) after the type of the last parameter in the method signature. Varargs are represented as an array within the method and can be used to pass any number of @@ -1283,16 +1411,16 @@ public class Dog implements Animal { In this example, the `printNumbers` method accepts a variable number of `int` arguments using varargs. The method can be called with any number of `int` values, and they will be treated as an array within the method. -- 116 . What are asserts used for? -- 117 . When should asserts be used? -- 118 . What is garbage collection? -- 119 . Can you explain garbage collection with an example? -- 120 . When is garbage collection run? -- 121 . What are best practices on garbage collection? -- 122 . What are initialization blocks? -- 123 . What is a static initializer? -- 124 . What is an instance initializer block? -- 125 . What is tokenizing? \ +- **116 . What are asserts used for?** +- **117 . When should asserts be used?** +- **118 . What is garbage collection?** +- **119 . Can you explain garbage collection with an example?** +- **120 . When is garbage collection run?** +- **121 . What are best practices on garbage collection?** +- **122 . What are initialization blocks?** +- **123 . What is a static initializer?** +- **124 . What is an instance initializer block?** +- **125 . What is tokenizing? ** \ Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing and text processing tasks to analyze and manipulate text data. @@ -1314,18 +1442,18 @@ public class Dog implements Animal { In this example, the `split` method is used to tokenize the `sentence` string by splitting it into individual words based on the space character. The resulting tokens are then printed to the console. -- 126 . Can you give an example of tokenizing? -- 127 . What is serialization? -- 128 . How do you serialize an object using serializable interface? -- 129 . How do you de-serialize in Java? -- 130 . What do you do if only parts of the object have to be serialized? -- 131 . How do you serialize a hierarchy of objects? -- 132 . Are the constructors in an object invoked when it is de-serialized? -- 133 . Are the values of static variables stored when an object is serialized? +- **126 . Can you give an example of tokenizing?** +- **127 . What is serialization?** +- **128 . How do you serialize an object using serializable interface?** +- **129 . How do you de**-serialize in Java? +- **130 . What do you do if only parts of the object have to be serialized?** +- **131 . How do you serialize a hierarchy of objects?** +- **132 . Are the constructors in an object invoked when it is de**-serialized? +- **133 . Are the values of static variables stored when an object is serialized?** ### Collections -- 134 . Why do we need collections in Java? \ +- **134 . Why do we need collections in Java? ** \ Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to organize and manage data in a structured and efficient manner. Collections offer a wide range of data structures and algorithms that can be used to perform common operations like searching, sorting, and iterating over elements. By @@ -1347,7 +1475,7 @@ public class Dog implements Animal { various operations. - **Flexibility**: Collections offer a wide range of data structures and interfaces that can be used to meet different requirements and use cases. -- 135 . What are the important interfaces in the collection hierarchy? \ +- **135 . What are the important interfaces in the collection hierarchy? ** \ The Java Collections Framework provides a set of interfaces that define the core functionality of collections in Java. Some of the important interfaces in the collection hierarchy include: @@ -1370,7 +1498,7 @@ public class Dog implements Animal { pairs in a map. These interfaces define common methods and behaviors that are shared by different types of collections in Java. -- 136 . What are the important methods that are declared in the collection interface? \ +- **136 . What are the important methods that are declared in the collection interface? ** \ The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the interface. Some of the important methods declared in the `Collection` interface include: @@ -1392,7 +1520,7 @@ public class Dog implements Animal { These methods provide basic functionality for working with collections in Java and are implemented by classes that implement the `Collection` interface. -- 137 . Can you explain briefly about the List interface? \ +- **137 . Can you explain briefly about the List interface? ** \ The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements that allows duplicates. Lists maintain the insertion order of elements and provide methods for accessing, adding, removing, and updating elements at specific positions. Some of the key features of the `List` interface include: @@ -1407,7 +1535,7 @@ public class Dog implements Animal { The `List` interface is implemented by classes like `ArrayList`, `LinkedList`, and `Vector` in the Java Collections Framework. It provides a flexible and efficient way to work with ordered collections of elements. -- 138 . Explain about ArrayList with an example? \ +- **138 . Explain about ArrayList with an example? ** \ The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic resizing, fast random access, and efficient insertion and deletion of elements. `ArrayList` is part of the Java Collections Framework and is commonly used to store and manipulate collections of objects. @@ -1443,12 +1571,12 @@ public class Dog implements Animal { In this example, an `ArrayList` of integers is created, and elements are added, accessed, and removed from the list. The `ArrayList` class provides a flexible and efficient way to work with collections of objects in Java. -- 139 . Can an ArrayList have duplicate elements? \ +- **139 . Can an ArrayList have duplicate elements? ** \ Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an `ArrayList` allows elements to be added multiple times. This means that an `ArrayList` can contain duplicate elements at different positions in the list. The order of elements in an `ArrayList` is maintained, so duplicate elements will appear in the list in the order in which they were added. -- 140 . How do you iterate around an ArrayList using iterator? \ +- **140 . How do you iterate around an ArrayList using iterator? ** \ To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the `ArrayList` class. The `iterator` method returns an `Iterator` object that can be used to traverse the elements in the list. Here is an example: @@ -1479,7 +1607,7 @@ public class Dog implements Animal { In this example, an `ArrayList` of strings is created, and an iterator is obtained using the `iterator` method. The iterator is then used to iterate over the elements in the list and print them to the console. -- 141 . How do you sort an ArrayList? \ +- **141 . How do you sort an ArrayList? ** \ To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections` class. The `Collections.sort` method sorts the elements in the list in ascending order based on their natural order or a custom comparator. Here is an example: @@ -1509,7 +1637,7 @@ public class Dog implements Animal { In this example, an `ArrayList` of integers is created, and the `Collections.sort` method is used to sort the elements in the list. The sorted elements are then printed to the console in ascending order. -- 142 . How do you sort elements in an ArrayList using comparable interface? \ +- **142 . How do you sort elements in an ArrayList using comparable interface? ** \ To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable` interface in the class of the elements you want to sort. The `Comparable` interface defines a `compareTo` method that compares the current object with another object and returns a negative, zero, or positive value based on their @@ -1554,7 +1682,7 @@ public class Dog implements Animal { In this example, the `Person` class implements the `Comparable` interface and defines a `compareTo` method that compares `Person` objects based on their age. The `Collections.sort` method is then used to sort the `ArrayList` of `Person` objects based on their age. -- 143 . How do you sort elements in an ArrayList using comparator interface? \ +- **143 . How do you sort elements in an ArrayList using comparator interface? ** \ To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator class that implements the `Comparator` interface. The `Comparator` interface defines a `compare` method that compares two objects and returns a negative, zero, or positive value based on their ordering. Here is an example: @@ -1601,7 +1729,7 @@ public class Dog implements Animal { In this example, a custom comparator class is created using the `Comparator.comparing` method to sort `Person` objects based on their name. The `Collections.sort` method is then used to sort the `ArrayList` of `Person` objects using the custom comparator. -- 144 . What is vector class? How is it different from an ArrayList? \ +- **144 . What is vector class? How is it different from an ArrayList? ** \ The `Vector` class in Java is a legacy collection class that is similar to an `ArrayList` but is synchronized. This means that access to a `Vector` is thread-safe, making it suitable for use in multi-threaded environments. The `Vector` class provides methods for adding, removing, and accessing elements in the list, as well as for iterating @@ -1618,7 +1746,7 @@ public class Dog implements Animal { Despite these differences, both `Vector` and `ArrayList` provide similar functionality for working with collections of objects in Java. -- 145 . What is linkedList? What interfaces does it implement? How is it different from an ArrayList? \ +- **145 . What is linkedList? What interfaces does it implement? How is it different from an ArrayList? ** \ The `LinkedList` class in Java is a doubly-linked list implementation of the `List` interface. It provides efficient insertion and deletion of elements at the beginning, middle, and end of the list. `LinkedList` implements the `List`, `Deque`, and `Queue` interfaces, making it suitable for a wide range of operations. @@ -1635,7 +1763,7 @@ public class Dog implements Animal { Despite these differences, both `LinkedList` and `ArrayList` provide similar functionality for working with collections of objects in Java, and the choice between them depends on the specific requirements of the application. -- 146 . Can you briefly explain about the Set interface? \ +- **146 . Can you briefly explain about the Set interface? ** \ The `Set` interface in Java extends the `Collection` interface and represents a collection of unique elements with no duplicates. Sets do not allow duplicate elements, and they maintain no specific order of elements. The `Set` interface provides methods for adding, removing, and checking the presence of elements in the set. @@ -1652,7 +1780,7 @@ public class Dog implements Animal { The `Set` interface is commonly used to store collections of unique elements and perform operations like union, intersection, and difference on sets. It provides a flexible and efficient way to work with sets of objects in Java. -- 147 . What are the important interfaces related to the Set interface? \ +- **147 . What are the important interfaces related to the Set interface? ** \ The `Set` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with sets of elements. Some of the important interfaces related to the `Set` interface include: @@ -1666,7 +1794,7 @@ public class Dog implements Animal { These interfaces build on the functionality provided by the `Set` interface and offer additional features for working with sets of elements in Java. -- 148 . What is the difference between Set and sortedSet interfaces? \ +- **148 . What is the difference between Set and sortedSet interfaces? ** \ The `Set` and `SortedSet` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of unique elements with no duplicates. The main difference between `Set` and `SortedSet` is the ordering of elements: @@ -1681,7 +1809,7 @@ public class Dog implements Animal { In summary, `Set` is a general interface for collections of unique elements, while `SortedSet` is a specialized interface for sets that maintain the order of elements based on a specific ordering. -- 149 . Can you give examples of classes that implement the Set interface? \ +- **149 . Can you give examples of classes that implement the Set interface? ** \ The `Set` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of sets. Some of the common classes that implement the `Set` interface include: @@ -1695,7 +1823,7 @@ public class Dog implements Animal { These classes provide different implementations of sets with varying performance characteristics and ordering guarantees. -- 150 . What is a HashSet? How is it different from a TreeSet? \ +- **150 . What is a HashSet? How is it different from a TreeSet? ** \ `HashSet` and `TreeSet` are two common implementations of the `Set` interface in Java that provide different characteristics for working with sets of elements. The main differences between `HashSet` and `TreeSet` include: @@ -1712,7 +1840,7 @@ public class Dog implements Animal { In summary, `HashSet` is a hash-based set implementation with no ordering guarantees, while `TreeSet` is a tree-based set implementation that maintains the order of elements based on their natural ordering or a custom comparator. -- 151 . What is a linkedHashSet? How is different from a HashSet? \ +- **151 . What is a linkedHashSet? How is different from a HashSet? ** \ `LinkedHashSet` is a class in Java that extends `HashSet` and maintains the order of elements based on their insertion order. Unlike `HashSet`, which does not maintain the order of elements, `LinkedHashSet` provides predictable iteration order and constant-time performance for basic operations. `LinkedHashSet` is implemented using a hash table with a @@ -1729,7 +1857,7 @@ public class Dog implements Animal { In summary, `LinkedHashSet` is a hash-based set implementation that maintains the order of elements based on their insertion order, providing predictable iteration order and constant-time performance for basic operations. -- 152 . What is a TreeSet? How is different from a HashSet? \ +- **152 . What is a TreeSet? How is different from a HashSet? ** \ `TreeSet` is a class in Java that implements the `SortedSet` interface using a red-black tree data structure. `TreeSet` maintains the order of elements based on their natural ordering or a custom comparator, allowing elements to be sorted @@ -1747,7 +1875,7 @@ public class Dog implements Animal { In summary, `TreeSet` is a tree-based set implementation that maintains the order of elements based on their natural ordering or a custom comparator, providing efficient sorting and range query operations. `HashSet` is a hash-based set implementation with no ordering guarantees. -- 153 . Can you give examples of implementations of navigableSet? \ +- **153 . Can you give examples of implementations of navigableSet? ** \ The `NavigableSet` interface in Java is implemented by the `TreeSet` and `ConcurrentSkipListSet` classes in the Java Collections Framework. These classes provide implementations of navigable sets that support navigation methods for accessing elements in a set. Some examples of implementations of `NavigableSet` include: @@ -1761,7 +1889,7 @@ public class Dog implements Animal { These classes provide efficient and flexible implementations of navigable sets that allow elements to be accessed, added, and removed based on their order in the set. -- 154 . Explain briefly about Queue interface? \ +- **154 . Explain briefly about Queue interface? ** \ The `Queue` interface in Java represents a collection of elements in a specific order for processing. Queues follow the First-In-First-Out (FIFO) order, meaning that elements are added to the end of the queue and removed from the front of the queue. The `Queue` interface provides methods for adding, removing, and accessing elements in the queue, @@ -1779,7 +1907,7 @@ public class Dog implements Animal { The `Queue` interface is commonly used to represent collections of elements that need to be processed in a specific order, such as tasks in a job queue or messages in a message queue. It provides a flexible and efficient way to work with queues of objects in Java. -- 155 . What are the important interfaces related to the Queue interface? \ +- **155 . What are the important interfaces related to the Queue interface? ** \ The `Queue` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with queues of elements. Some of the important interfaces related to the `Queue` interface include: @@ -1794,7 +1922,7 @@ public class Dog implements Animal { These interfaces build on the functionality provided by the `Queue` interface and offer additional features for working with queues of elements in Java. -- 156 . Explain about the Deque interface? \ +- **156 . Explain about the Deque interface? ** \ The `Deque` interface in Java represents a double-ended queue that allows elements to be added or removed from both ends. Deques provide methods for adding, removing, and accessing elements at the front and back of the queue, making them suitable for a wide range of operations. The `Deque` interface extends the `Queue` interface and provides @@ -1812,7 +1940,7 @@ public class Dog implements Animal { The `Deque` interface is commonly used to represent double-ended queues that require efficient insertion and removal of elements at both ends. It provides a flexible and efficient way to work with double-ended queues of objects in Java. -- 157 . Explain the BlockingQueue interface? \ +- **157 . Explain the BlockingQueue interface? ** \ The `BlockingQueue` interface in Java represents a queue that supports blocking operations for adding and removing elements. Blocking queues provide methods for waiting for elements to become available or space to become available in the queue, allowing threads to block until the desired condition is met. The `BlockingQueue` interface extends the @@ -1832,7 +1960,7 @@ public class Dog implements Animal { The `BlockingQueue` interface is commonly used in multi-threaded applications to coordinate the processing of elements between producer and consumer threads. It provides a flexible and efficient way to work with blocking queues of objects in Java. -- 158 . What is a priorityQueue? How is it different from a normal queue? \ +- **158 . What is a priorityQueue? How is it different from a normal queue? ** \ `PriorityQueue` is a class in Java that implements the `Queue` interface using a priority heap data structure. Unlike a normal queue, which follows the First-In-First-Out (FIFO) order, a `PriorityQueue` maintains elements in a priority order based on their natural ordering or a custom comparator. Elements with higher priority are dequeued before @@ -1852,7 +1980,7 @@ public class Dog implements Animal { while a normal queue follows the FIFO order. `PriorityQueue` is commonly used in applications that require elements to be processed based on their priority level. -- 159 . Can you give example implementations of the BlockingQueue interface? \ +- **159 . Can you give example implementations of the BlockingQueue interface? ** \ The `BlockingQueue` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of blocking queues. Some examples of implementations of `BlockingQueue` include: @@ -1871,7 +1999,7 @@ public class Dog implements Animal { These classes provide different implementations of blocking queues with varying characteristics and performance guarantees. They are commonly used in multi-threaded applications to coordinate the processing of elements between producer and consumer threads. -- 160 . Can you briefly explain about the Map interface? \ +- **160 . Can you briefly explain about the Map interface? ** \ The `Map` interface in Java represents a collection of key-value pairs where each key is unique and maps to a single value. Maps provide methods for adding, removing, and accessing key-value pairs, as well as for checking the presence of keys or values. The `Map` interface does not extend the `Collection` interface and provides a separate set of @@ -1889,7 +2017,7 @@ public class Dog implements Animal { The `Map` interface is commonly used to store and manipulate key-value pairs in Java, providing a flexible and efficient way to work with mappings of objects. -- 161 . What is difference between Map and SortedMap? \ +- **161 . What is difference between Map and SortedMap? ** \ The `Map` and `SortedMap` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of key-value pairs. The main difference between `Map` and `SortedMap` is the ordering of keys: @@ -1903,7 +2031,7 @@ public class Dog implements Animal { In summary, `Map` is a general interface for collections of key-value pairs, while `SortedMap` is a specialized interface for maps that maintain the order of keys based on a specific ordering. -- 162 . What is a HashMap? How is it different from a TreeMap? \ +- **162 . What is a HashMap? How is it different from a TreeMap? ** \ `HashMap` and `TreeMap` are two common implementations of the `Map` interface in Java that provide different characteristics for working with key-value pairs. The main differences between `HashMap` and `TreeMap` include: @@ -1924,7 +2052,7 @@ public class Dog implements Animal { map implementation that maintains the order of keys based on their natural ordering or a custom comparator. `HashMap` is commonly used in applications that require fast access to key-value pairs, while `TreeMap` is used when keys need to be sorted in a specific order. -- 163 . What are the different methods in a Hash Map? \ +- **163 . What are the different methods in a Hash Map? ** \ The `HashMap` class in Java provides a variety of methods for working with key-value pairs stored in a hash table data structure. Some of the common methods provided by the `HashMap` class include: @@ -1941,7 +2069,7 @@ public class Dog implements Animal { - **`entrySet()`**: Returns a set of key-value pairs in the map. These methods provide a flexible and efficient way to work with key-value pairs stored in a `HashMap` in Java. - - 164 . What is a TreeMap? How is different from a HashMap? \ + - **164 . What is a TreeMap? How is different from a HashMap? ** \ `TreeMap` is a class in Java that implements the `SortedMap` interface using a red-black tree data structure. `TreeMap` maintains the order of keys based on their natural ordering or a custom comparator, allowing keys to be sorted in @@ -1970,7 +2098,7 @@ public class Dog implements Animal { ordering or a custom comparator, while `HashMap` is a hash-based map implementation with no ordering guarantees. `TreeMap` is commonly used in applications that require keys to be sorted in a specific order. `HashMap` is used when a fast access to key-value pairs is required. -- 165 . Can you give an example of implementation of NavigableMap interface? \ +- **165 . Can you give an example of implementation of NavigableMap interface? ** \ The `NavigableMap` interface in Java is implemented by the `TreeMap` class in the Java Collections Framework. `TreeMap` provides a navigable map of key-value pairs sorted in a specific order, allowing elements to be accessed, added, and @@ -2010,7 +2138,7 @@ public class Dog implements Animal { In this example, a `NavigableMap` is created using a `TreeMap` and key-value pairs are added to the map. The key-value pairs are then printed in ascending order and descending order using the `keySet` and `descendingKeySet` methods of the `NavigableMap` interface. -- 166 . What are the static methods present in the collections class? \ +- **166 . What are the static methods present in the collections class? ** \ The `Collections` class in Java provides a variety of static methods for working with collections in the Java Collections Framework. Some of the common static methods provided by the `Collections` class include: @@ -2031,7 +2159,7 @@ public class Dog implements Animal { ### Advanced collections -- 167 . What is the difference between synchronized and concurrent collections in Java? \ +- **167 . What is the difference between synchronized and concurrent collections in Java? ** \ Synchronized collections and concurrent collections in Java are two approaches to handling thread safety in multi-threaded applications. The main difference between synchronized and concurrent collections is how they achieve thread safety: @@ -2061,7 +2189,7 @@ public class Dog implements Animal { In general, concurrent collections are preferred for high-concurrency scenarios where performance and scalability are important. Synchronized collections are suitable for simpler applications where thread safety is required but high-concurrency is not a concern. -- 168 . Explain about the new concurrent collections in Java? \ +- **168 . Explain about the new concurrent collections in Java? ** \ Java provides a set of concurrent collections in the `java.util.concurrent` package that are designed for high concurrency and thread safety in multi-threaded applications. Some of the new concurrent collections introduced in Java include: @@ -2087,7 +2215,7 @@ public class Dog implements Animal { providing built-in thread safety and high concurrency support. They are suitable for scenarios where multiple threads need to access and modify collections concurrently. -- 169 . Explain about copyOnWrite concurrent collections approach? \ +- **169 . Explain about copyOnWrite concurrent collections approach? ** \ The copy-on-write (COW) approach is a concurrency control technique used in Java to provide thread-safe access to collections. In the copy-on-write approach, a new copy of the collection is created whenever a modification is made, ensuring that the original collection remains unchanged and can be safely accessed by other threads. This approach @@ -2106,7 +2234,7 @@ public class Dog implements Animal { The copy-on-write approach is commonly used in scenarios where high concurrency and thread safety are required, such as in read-heavy workloads or applications with multiple readers and few writers. It provides a simple and efficient way to achieve thread safety without the need for explicit synchronization. -- 170 . What is compareAndSwap approach? \ +- **170 . What is compareAndSwap approach? ** \ The compare-and-swap (CAS) operation is an atomic operation used in concurrent programming to implement lock-free algorithms and data structures. The CAS operation allows a thread to update a value in memory if it matches an expected @@ -2121,7 +2249,7 @@ public class Dog implements Animal { that allow multiple threads to access and modify shared data without the risk of data corruption or lost updates. CAS is a key building block for implementing efficient and scalable concurrent algorithms in Java and other programming languages. -- 171 . What is a lock? How is it different from using synchronized approach? \ +- **171 . What is a lock? How is it different from using synchronized approach? ** \ A lock is a synchronization mechanism used in Java to control access to shared resources in multi-threaded applications. Locks provide a way to coordinate the execution of threads and ensure that only one thread can access a shared resource at a time. Locks are more flexible and powerful than the `synchronized` keyword in Java and provide @@ -2134,8 +2262,7 @@ public class Dog implements Animal { - **Reentrant Locking**: Locks support reentrant locking, meaning that a thread can acquire the same lock multiple times without deadlocking. The `synchronized` keyword does not support reentrant locking. - **Condition Variables**: Locks provide condition variables that allow threads to wait for specific conditions to - be - met before proceeding. Condition variables are not available with the `synchronized` keyword. + be met before proceeding. Condition variables are not available with the `synchronized` keyword. - **Fairness**: Locks can be configured to provide fairness in thread scheduling, ensuring that threads are granted access to the lock in the order they requested it. The `synchronized` keyword does not provide fairness guarantees. @@ -2143,7 +2270,7 @@ public class Dog implements Animal { In general, locks are more flexible and powerful than the `synchronized` keyword and provide additional features for managing concurrency in multi-threaded applications. Locks are commonly used in scenarios where fine-grained control over synchronization is required or when additional features like reentrant locking or condition variables are needed. -- 172 . What is initial capacity of a Java collection? \ +- **172 . What is initial capacity of a Java collection? ** \ The initial capacity of a Java collection refers to the number of elements that the collection can initially store before resizing is required. When a collection is created, an initial capacity is specified to allocate memory for storing elements. If the number of elements exceeds the initial capacity, the collection is resized to accommodate @@ -2161,7 +2288,7 @@ public class Dog implements Animal { can store up to 10 elements before resizing is required. Setting an appropriate initial capacity can help improve performance by reducing the number of resize operations and memory allocations needed as elements are added to the collection. -- 173 . What is load factor? \ +- **173 . What is load factor?** \ The load factor of a Java collection is a value that determines when the collection should be resized to accommodate additional elements. The load factor is used in hash-based collections like `HashMap` and `HashSet` to control the number of elements that can be stored in the collection before resizing is required. When the number of elements in @@ -2176,7 +2303,7 @@ public class Dog implements Animal { The load factor is an important parameter in hash-based collections to balance memory usage and performance. Setting an appropriate load factor can help optimize the performance of the collection by reducing the frequency of resize operations and ensuring that the collection remains efficient as elements are added and removed. -- 174 . When does a Java collection throw UnsupportedOperationException? \ +- **174 . When does a Java collection throw `UnsupportedOperationException`?** \ A Java collection throws an `UnsupportedOperationException` when an operation is not supported by the collection. This exception is typically thrown when an attempt is made to modify an immutable or read-only collection, or when an operation is not implemented by the specific collection implementation. @@ -2193,7 +2320,7 @@ public class Dog implements Animal { The `UnsupportedOperationException` is a runtime exception that indicates that an operation is not supported by the collection. It is typically thrown to prevent modifications to collections that are intended to be read-only or immutable. -- 175 . What is difference between fail-safe and fail-fast iterators? \ +- **175 . What is difference between fail-safe and fail-fast iterators?** \ Fail-safe and fail-fast iterators are two different approaches to handling concurrent modifications to collections in Java. The main difference between fail-safe and fail-fast iterators is how they respond to modifications made to a collection while iterating over it: @@ -2214,7 +2341,7 @@ public class Dog implements Animal { collections like `ArrayList` and `HashMap` to detect and prevent concurrent modifications that could lead to data corruption. The choice between fail-safe and fail-fast iterators depends on the requirements of the application and the level of concurrency expected. -- 176 . What are atomic operations in Java? \ +- **176 . What are atomic operations in Java?** \ Atomic operations in Java are operations that are performed atomically, meaning that they are indivisible and uninterruptible. Atomic operations are used in concurrent programming to ensure that shared data is accessed and modified safely by multiple threads without the risk of data corruption or lost updates. Java provides a set of @@ -2231,7 +2358,7 @@ public class Dog implements Animal { Atomic operations are commonly used in multi-threaded applications to ensure that shared data is accessed and modified safely by multiple threads. They provide a simple and efficient way to implement lock-free algorithms and data structures that require atomicity and thread safety. -- 177 . What is BlockingQueue in Java? \ +- **177 . What is BlockingQueue in Java?** \ A `BlockingQueue` in Java is a type of queue that supports blocking operations for adding and removing elements. A blocking queue provides methods for waiting for elements to become available or space to become available in the queue, allowing threads to block until the desired condition is met. Blocking queues are commonly used in @@ -2252,7 +2379,7 @@ public class Dog implements Animal { ### Generics -- 178 . What are Generics? Why do we need Generics? \ +- **178 . What are Generics? Why do we need Generics?** \ Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics provide a way to create reusable and type-safe code by allowing classes and methods to work with generic types that are specified at compile time. Generics enable the creation of classes, interfaces, and methods that can work with @@ -2269,7 +2396,7 @@ public class Dog implements Animal { Generics are an important feature of the Java language that provide a way to create flexible, reusable, and type-safe code. They are commonly used in collections, data structures, and algorithms to work with generic types and improve code quality. -- 179 . Why do we need Generics? Can you give an example of how Generics make a program more flexible? \ +- **179 . Why do we need Generics? Can you give an example of how Generics make a program more flexible? ** \ Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics provide a way to create reusable and type-safe code by allowing classes and methods to work with generic types that are specified at compile time. Generics enable the creation of classes, interfaces, and methods that can work with @@ -2312,7 +2439,7 @@ public class Dog implements Animal { parameterized by two types `T` and `U`, allowing it to work with different types of values. This flexibility makes the `Pair` class more generic and reusable, allowing it to store pairs of values of different types without sacrificing type safety. -- 180 . How do you declare a generic class? \ +- **180 . How do you declare a generic class? ** \ A generic class in Java is declared by specifying one or more type parameters in angle brackets (`<>`) after the class name. The type parameters are used to represent generic types that can be specified at compile time when creating instances of the class. Here is an example of declaring a generic class in Java: @@ -2343,7 +2470,7 @@ public class Dog implements Animal { type specified by the type parameter `T`. Instances of the `Box` class are created by specifying the type parameter when creating the instance, such as `Box` or `Box { + public class Box { private T value; public Box(T value) { @@ -2409,7 +2536,7 @@ public class Dog implements Animal { } public static void main(String[] args) { - Box box1 = new Box<>(42); + Box box1 = new Box<>(42); Box box2 = new Box<>("Hello"); // Box box3 = new Box<>("Hello"); // Compilation error } @@ -2420,7 +2547,7 @@ public class Dog implements Animal { that the generic type `T` must be a superclass of `Number`, such as `Object` or `Serializable`. Instances of the `Box` class can be created with types that are superclasses of `Number`, but not with types that are not superclasses of `Number`. -- 184 . Can you give an example of a generic method? \ +- **184 . Can you give an example of a generic method? ** \ A generic method in Java is a method that is parameterized by one or more types. Generic methods provide a way to create methods that can work with different types of arguments without sacrificing type safety. Here is an example of a generic method that swaps the elements of an array: @@ -2450,7 +2577,7 @@ public class Dog implements Animal { ### Multi threading -- 185 . What is the need for threads in Java? \ +- **185 . What is the need for threads in Java? ** \ Threads in Java are used to achieve concurrent execution of tasks within a single process. Threads allow multiple operations to be performed simultaneously, enabling applications to take advantage of multi-core processors and improve performance. Threads are lightweight processes that share the same memory space and resources of a process, @@ -2461,7 +2588,7 @@ public class Dog implements Animal { responsiveness of applications. - **Parallelism**: Threads allow tasks to be executed -- 186 . How do you create a thread? \ +- **186 . How do you create a thread? ** \ There are two main ways to create a thread in Java: - **Extending the `Thread` class**: You can create a thread by extending the `Thread` class and overriding the `run` method. This approach allows you to define the behavior of the thread by implementing the `run` method. @@ -2508,7 +2635,7 @@ public class Dog implements Animal { In this example, a `MyRunnable` class is created by implementing the `Runnable` interface and defining the `run` method. An instance of the `MyRunnable` class is then passed to the `Thread` constructor, and the `start` method is called to start the thread. -- 187 . How do you create a thread by extending thread class? \ +- **187 . How do you create a thread by extending thread class? ** \ You can create a thread in Java by extending the `Thread` class and overriding the `run` method. This approach allows you to define the behavior of the thread by implementing the `run` method. Here is an example: @@ -2528,7 +2655,7 @@ public class Dog implements Animal { In this example, a `MyThread` class is created by extending the `Thread` class and overriding the `run` method. An instance of the `MyThread` class is then created, and the `start` method is called to start the thread. -- 188 . How do you create a thread by implementing runnable interface? \ +- **188 . How do you create a thread by implementing runnable interface? ** \ You can create a thread in Java by implementing the `Runnable` interface and passing an instance of the class to the `Thread` constructor. This approach separates the thread logic from the class definition and allows for better code reusability. Here is an example: @@ -2551,7 +2678,7 @@ public class Dog implements Animal { In this example, a `MyRunnable` class is created by implementing the `Runnable` interface and defining the `run` method. An instance of the `MyRunnable` class is then passed to the `Thread` constructor, and the `start` method is called to start the thread. -- 189 . How do you run a thread in Java? \ +- **189 . How do you run a thread in Java? ** \ There are two main ways to run a thread in Java: - **Extending the `Thread` class**: You can create a thread by extending the `Thread` class and overriding the `run` method. This approach allows you to define the behavior of the thread by implementing the `run` method. You can @@ -2601,15 +2728,15 @@ public class Dog implements Animal { In this example, a `MyRunnable` class is created by implementing the `Runnable` interface and defining the `run` method. An instance of the `MyRunnable` class is then passed to the `Thread` constructor, and the `start` method is called to run the thread. -- 190 . What are the different states of a thread? \ +- **190 . What are the different states of a thread? ** \ Threads in Java can be in different states during their lifecycle. The main states of a thread in Java are: - **New**: A thread is in the new state when it is created but has not yet started. - **Runnable**: A thread is in the runnable state when it is ready to run but is waiting for a processor to execute - - 191 . What is priority of a thread? How do you change the priority of a thread? \ + - **191 . What is priority of a thread? How do you change the priority of a thread? ** \ The priority of a thread in Java is an integer value that determines the scheduling priority of the thread. Threads with higher priority values are given preference by the thread scheduler and are more likely. -- 192 . What is ExecutorService? \ +- **192 . What is ExecutorService? ** \ `ExecutorService` is an interface in the Java Concurrency API that provides a higher-level abstraction for managing and executing tasks asynchronously using a pool of threads. `ExecutorService` extends the `Executor` interface and provides additional methods for managing the lifecycle of the executor, submitting tasks for execution, and @@ -2622,7 +2749,7 @@ public class Dog implements Animal { - **Thread Pool Management**: `ExecutorService` manages a pool of worker threads that can be reused for executing tasks. - **Asynchronous -- 193 . Can you give an example for ExecutorService? \ +- **193 . Can you give an example for ExecutorService? ** \ Here is an example of using `ExecutorService` to execute tasks asynchronously in Java: ```java @@ -2649,7 +2776,7 @@ public class Dog implements Animal { method. Two tasks are then submitted for execution using the `submit` method, and the tasks are executed asynchronously by the worker threads in the thread pool. Finally, the `ExecutorService` is shut down to release the resources. -- 194 . Explain different ways of creating executor services. \ +- **194 . Explain different ways of creating executor services**. \ There are several ways to create `ExecutorService` instances in Java using the `Executors` utility class. Some of the common ways to create `ExecutorService` instances include: - **`newFixedThreadPool(int nThreads)`**: Creates a fixed-size thread pool with the specified number of threads. @@ -2661,7 +2788,7 @@ public class Dog implements Animal { These methods provide different ways to create `ExecutorService` instances with varying thread pool configurations based on the requirements of the application. -- 195 . How do you check whether an ExecutionService task executed successfully? \ +- **195 . How do you check whether an ExecutionService task executed successfully? ** \ The `Future` interface in the Java Concurrency API provides a way to check whether an `ExecutorService` task executed successfully and retrieve the result of the task. The `Future` interface represents the result of an asynchronous computation and provides methods for checking the status of the task, waiting for the task to complete, and retrieving @@ -2702,10 +2829,12 @@ public class Dog implements Animal { } ``` - In this example, a task is submitted for execution using the `submit` method, which returns a `Future` representing the + In this example, a task is submitted for execution using the `submit` method, which returns a `Future` representing + the result of the task. The `isDone` method is used to check if the task has completed, and the `get` method is used to - retrieve the result of the task. If the task is done, the result is printed to the console. Finally, the `ExecutorService` is shut down to release the resources. -- 196 . What is callable? How do you execute a callable from executionservice? \ + retrieve the result of the task. If the task is done, the result is printed to the console. Finally, the + `ExecutorService` is shut down to release the resources. +- **196 . What is callable? How do you execute a callable from executionservice? ** \ `Callable` is a functional interface in the Java Concurrency API that represents a task that can be executed asynchronously and return a result. `Callable` is similar to `Runnable`, but it can return a result or throw an exception. The `Callable` interface defines a single method, `call`, that takes no arguments and returns a result of @@ -2750,14 +2879,16 @@ public class Dog implements Animal { } ``` - In this example, a `Callable` task is created using a lambda expression that sleeps for 2 seconds and returns a result. + In this example, a `Callable` task is created using a lambda expression that sleeps for 2 seconds and returns a + result. The `Callable` task is then submitted for execution using the `submit` method, which returns a `Future` representing - the result of the task. The `isDone` method is used to check if the task has completed, and the `get` method is used to + the result of the task. The `isDone` method is used to check if the task has completed, and the `get` method is used + to retrieve the result of the task. If the task is done, the result is printed to the console. Finally, the `ExecutorService` is shut down to release the resources. -- 197 . What is synchronization of threads? \ +- **197 . What is synchronization of threads? ** \ Synchronization in Java is a mechanism that allows multiple threads to coordinate access to shared resources. -- 198 . Can you give an example of a synchronized block? \ +- **198 . Can you give an example of a synchronized block? ** \ Here is an example of using a synchronized block in Java to synchronize access to a shared resource: ```java @@ -2813,7 +2944,7 @@ public class Dog implements Animal { `increment` and `getCount` methods are synchronized using a synchronized block with the `this` object as the monitor. Multiple threads are created to increment the counter concurrently, and the final count is printed after the threads have finished. -- 199 . Can a static method be synchronized? \ +- **199 . Can a static method be synchronized? ** \ Yes, a static method can be synchronized in Java. When a static method is synchronized, the lock acquired is on the class object associated with the method's class. This means that only one thread can execute the synchronized static method at a time, regardless of the number of instances of the class. @@ -2866,7 +2997,7 @@ public class Dog implements Animal { In this example, the `increment` method is a synchronized static method that increments a shared static counter. The `increment` method is synchronized to ensure that only one thread can increment the counter at a time, even when multiple threads are accessing the method concurrently. -- 200 . What is the use of join method in threads? \ +- **200 . What is the use of join method in threads? ** \ The `join` method in Java is used to wait for a thread to complete its execution before continuing with the current thread. When the `join` method is called on a thread, the current thread will block and wait for the specified thread to finish before proceeding. @@ -2903,7 +3034,7 @@ public class Dog implements Animal { In this example, a thread is created that sleeps for 2 seconds before finishing. The `join` method is called on the thread to wait for it to finish before printing a message in the main thread. This ensures that the main thread waits for the thread to complete before continuing. -- 201 . Describe a few other important methods in threads? \ +- **201 . Describe a few other important methods in threads? ** \ Some other important methods in Java threads include: - **`start`**: The `start` method is used to start a thread and execute its `run` method asynchronously. - **`sleep`**: The `sleep` method is used to pause the execution of a thread for a specified amount of time. @@ -2915,13 +3046,14 @@ public class Dog implements Animal { priority of a thread. - **`join`**: The `join` method is used to wait for a thread to complete its execution before continuing with the current thread. - - **`wait` and `notify`**: The `wait` and `notify` methods are used for inter-thread communication and synchronization + - **`wait` and `notify`**: The `wait` and `notify` methods are used for inter-thread communication and + synchronization in multi-threaded programs. - **`isInterrupted` and `interrupted`**: The `isInterrupted` and `interrupted` methods are used to check if a thread has been interrupted. - **`run`**: The `run` method is the entry point for a thread's execution and contains the code that the thread will run. -- 202 . What is a deadlock? How can you avoid a deadlock? \ +- **202 . What is a deadlock? How can you avoid a deadlock? ** \ A deadlock is a situation in multi-threaded programming where two or more threads are blocked forever, waiting for each other to release resources that they need to continue execution. Deadlocks can occur when multiple threads acquire @@ -2940,7 +3072,7 @@ public class Dog implements Animal { By following these best practices and designing multi-threaded programs carefully, you can reduce the likelihood of deadlocks and improve the reliability of your applications. -- 203 . What are the important methods in Java for inter-thread communication? \ +- **203 . What are the important methods in Java for inter**-thread communication? \ Java provides several methods for inter-thread communication, including: - **`wait` and `notify`**: The `wait` and `notify` methods are used to coordinate the execution of threads by allowing @@ -2948,21 +3080,21 @@ public class Dog implements Animal { - **`wait(long timeout)` and `notifyAll`**: The `wait(long timeout)` method allows a thread to wait for a specified amount of time before continuing, while the `notifyAll` method notifies all waiting threads to wake up and continue execution -- 204 . What is the use of wait method? \ +- **204 . What is the use of wait method? ** \ The `wait` method in Java is used to make a thread wait until a condition is met. When a thread calls the `wait` method, it releases the lock it holds and enters a waiting state until another thread calls the `notify` or `notifyAll` method on the same object. The `wait` method is typically used for inter-thread communication and synchronization in multi-threaded programs. -- 205 . What is the use of notify method? \ +- **205 . What is the use of notify method? ** \ The `notify` method in Java is used to wake up a single thread that is waiting on the same object. When a thread calls the `notify` method, it notifies a single waiting thread to wake up and continue execution. The `notify` method is typically used in conjunction with the `wait` method for inter-thread communication and synchronization in multi-threaded programs. -- 206 . What is the use of notifyall method? \ +- **206 . What is the use of notifyall method? ** \ The `notifyAll` method in Java is used to wake up all threads that are waiting on the same object. When a thread calls the `notifyAll` method, it notifies all waiting threads to wake up and -- 207 . Can you write a synchronized program with wait and notify methods? \ +- **207 . Can you write a synchronized program with wait and notify methods? ** \ Here is an example of a synchronized program using the `wait` and `notify` methods for inter-thread communication in Java: @@ -3003,7 +3135,7 @@ public class Dog implements Animal { ### Functional Programming - Lambda expressions and Streams -- 208 . What is functional programming? How is it different from object-oriented programming? \ +- **208 . What is functional programming? How is it different from object**-oriented programming? \ Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data. Functional programming focuses on the use of pure functions, higher-order functions, and immutable data structures to achieve declarative and concise code. Functional programming is based on @@ -3026,7 +3158,7 @@ public class Dog implements Animal { Functional programming languages like Haskell, Scala, and Clojure provide built-in support for functional programming features, while languages like Java have introduced functional programming concepts like lambda expressions and streams to support functional programming paradigms. -- 209 . Can you give an example of functional programming? \ +- **209 . Can you give an example of functional programming? ** \ Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data. Functional programming focuses on the use of pure functions, higher-order functions, and immutable data structures to achieve declarative and concise code. Functional programming is based on @@ -3053,8 +3185,8 @@ public class Dog implements Animal { In this example, a list of integers is created, and a lambda expression is used with the `map` method of the `Stream` interface to square each element in the list. The result is then printed to the console using the `forEach` method. This example demonstrates the use of functional programming concepts like lambda expressions and streams in Java. -- 210 . What is a stream? -- 211 . Explain about streams with an example? what are intermediate operations in streams? \ +- **210 . What is a stream?** +- **211 . Explain about streams with an example? what are intermediate operations in streams? ** \ Streams in Java provide a way to process collections of elements in a functional and declarative manner. Streams enable you to perform operations like filtering, mapping, sorting, and reducing on collections using a fluent and pipeline-based API. Streams are designed to be lazy, parallelizable, and efficient for processing large amounts of @@ -3081,13 +3213,13 @@ public class Dog implements Animal { In this example, a list of integers is created, and a stream is obtained using the `stream` method. The `filter` method is then used to filter even numbers from the stream, and the result is printed to the console using the `forEach` method. This example demonstrates the use of streams and intermediate operations like `filter` in Java. -- 212 . What are terminal operations in streams? \ +- **212 . What are terminal operations in streams? ** \ Terminal operations in streams are operations that produce a result or a side effect and terminate the stream processing. Terminal operations are the final step in a stream pipeline and trigger the execution of intermediate operations on the stream elements. Some common terminal operations in streams include `forEach`, `collect`, `reduce`, and `count`. Terminal operations are essential for processing streams and obtaining the final result of the stream processing. -- 213 . What are method references? How are they used in streams? \ +- **213 . What are method references? How are they used in streams? ** \ Method references in Java provide a way to refer to methods or constructors without invoking them. Method references are shorthand syntax for lambda expressions that call a single method or constructor. Method references can be used in streams to simplify the code and make it more readable by replacing lambda expressions with method references. @@ -3113,7 +3245,7 @@ public class Dog implements Animal { the `System.out` class and is equivalent to a lambda expression `(name) -> System.out.println(name)`. Method references provide a concise and readable way to refer to methods in streams and other functional programming constructs in Java. -- 214 . What are lambda expressions? How are they used in streams? \ +- **214 . What are lambda expressions? How are they used in streams? ** \ Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent functions and enable functional programming paradigms in Java. Lambda expressions are used in streams to define @@ -3141,7 +3273,7 @@ public class Dog implements Animal { the `Stream` interface to square each element in the list. The result is then printed to the console using the `forEach` method. Lambda expressions provide a concise and expressive way to define operations on stream elements in Java. -- 215 . Can you give an example of lambda expression? \ +- **215 . Can you give an example of lambda expression? ** \ Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent functions and enable functional programming paradigms in Java. @@ -3167,7 +3299,7 @@ public class Dog implements Animal { In this example, a lambda expression `(a, b) -> a + b` is used to define a function that adds two numbers. The lambda expression is assigned to a functional interface `MathOperation` that defines a method `operate` to perform the operation. The lambda expression is then used to add two numbers and print the result to the console. -- 216 . Can you explain the relationship between lambda expression and functional interfaces? \ +- **216 . Can you explain the relationship between lambda expression and functional interfaces? ** \ Lambda expressions in Java are closely related to functional interfaces, which are interfaces that have exactly one abstract method. Lambda expressions can be used to provide an implementation for the abstract method of a functional interface, allowing you to define anonymous functions or blocks of code that can be passed as arguments to methods or @@ -3195,7 +3327,7 @@ public class Dog implements Animal { expression is assigned to a functional interface `MathOperation` that defines a method `operate` to perform the operation. The lambda expression provides an implementation for the abstract method of the functional interface, allowing you to define and use anonymous functions in Java. -- 217 . What is a predicate? \ +- **217 . What is a predicate? ** \ A predicate in Java is a functional interface that represents a boolean-valued function of one argument. Predicates are commonly used in functional programming to define conditions or filters that can be applied to elements in a @@ -3226,7 +3358,7 @@ public class Dog implements Animal { In this example, a predicate `isEven` is defined to filter even numbers from a list of integers. The predicate is used with the `filter` method of the `Stream` interface to apply the condition and print the even numbers to the console. -- 218 . What is the functional interface - function? \ +- **218 . What is the functional interface **- function? \ The `Function` interface in Java is a functional interface that represents a function that accepts one argument and produces a result. The `Function` interface is commonly used in functional programming to define transformations or mappings that can be applied to elements in a collection. The `Function` interface provides a method `apply` to @@ -3252,7 +3384,7 @@ public class Dog implements Animal { In this example, a function `square` is defined to square a number. The function is assigned to a `Function` interface that accepts an integer and produces an integer. The function is then applied to a number using the `apply` method to calculate the square and print the result to the console. -- 219 . What is a consumer? \ +- **219 . What is a consumer? ** \ A consumer in Java is a functional interface that represents an operation that accepts a single input argument and returns no result. Consumers are commonly used in functional programming to perform side effects or actions on elements @@ -3278,7 +3410,7 @@ public class Dog implements Animal { In this example, a consumer `printMessage` is defined to print a message. The consumer is assigned to a `Consumer` interface that accepts a string and performs the operation to print the message. The consumer is then used to accept the message and print it to the console. -- 220 . Can you give examples of functional interfaces with multiple arguments? \ +- **220 . Can you give examples of functional interfaces with multiple arguments? ** \ Functional interfaces in Java can have multiple arguments by defining methods with multiple parameters. You can create functional interfaces with multiple arguments by specifying the number of input arguments in the method signature and using lambda expressions to provide implementations for the method. @@ -3308,7 +3440,7 @@ public class Dog implements Animal { ### New Features -- 221 . What are the new features in Java 5? \ +- **221 . What are the new features in Java **5? \ Java 5 introduced several new features and enhancements to the Java programming language, including: - **Generics**: Java 5 introduced generics to provide compile-time type safety and reduce the need for explicit casting of objects. Generics allow you to define classes, interfaces, and methods with type parameters that can be @@ -3338,7 +3470,7 @@ public class Dog implements Animal { These new features introduced in Java 5 helped to improve the expressiveness, readability, and maintainability of Java code and laid the foundation for future enhancements in the Java programming language. -- 222 . What are the new features in Java 6? \ +- **222 . What are the new features in Java **6? \ Java 6 introduced several new features and enhancements to the Java programming language, including: - **Scripting Support**: Java 6 introduced scripting support through the `javax.script` package, allowing you to execute scripts written in languages like JavaScript, Groovy, and Ruby within Java applications. Scripting support @@ -3369,7 +3501,7 @@ public class Dog implements Animal { These new features introduced in Java 6 helped to improve the performance, productivity, and functionality of Java applications and provided developers with new tools and capabilities for building robust and scalable software systems. -- 223 . What are the new features in Java 7? \ +- **223 . What are the new features in Java **7? \ Java 7 introduced several new features and enhancements to the Java programming language, including: - **Diamond Operator**: Java 7 introduced the diamond operator (`<>`) to simplify the use of generics by inferring the @@ -3387,7 +3519,7 @@ public class Dog implements Animal { - **Binary Literals and Underscores in Numeric Literals**: Java 7 introduced support for binary literals (0b or 0B prefix) and underscores in numeric literals to improve readability and expressiveness when working with binary and numeric values - - 224 . What are the new features in Java 8? \ + - **224 . What are the new features in Java **8? \ Java 8 introduced several new features and enhancements to the Java programming language, including: - **Lambda Expressions**: Java 8 introduced lambda expressions to provide a concise and expressive way to define anonymous functions or blocks of code. Lambda expressions enable functional programming paradigms in Java and @@ -3424,7 +3556,7 @@ public class Dog implements Animal { These new features introduced in Java 8 helped to modernize the Java programming language and provide developers with new tools and capabilities for building robust and scalable software systems. -- 225 . What are the new features in Java 9? \ +- **225 . What are the new features in Java **9? \ Java 9 introduced several new features and enhancements to the Java programming language, including: - **Module System (Project Jigsaw)**: Java 9 introduced the module system to provide a way to modularize and encapsulate @@ -3440,7 +3572,7 @@ public class Dog implements Animal { - **Stream API Enhancements**: Java 9 introduced several enhancements to the Streams API, including new methods like `takeWhile`, `dropWhile`, and `ofNullable` to improve the functionality and expressiveness of stream operations. - **Process API Updates**: Java 9 introduced updates to the Process API to provide better -- 226 . What are the new features in Java 11? \ +- **226 . What are the new features in Java **11? \ Java 11 introduced several new features and enhancements to the Java programming language, including: - **Local-Variable Syntax for Lambda Parameters**: Java 11 introduced the ability to use `var` as the type of lambda parameters in lambda expressions. This feature allows you to use `var` to declare the type of lambda @@ -3464,7 +3596,7 @@ public class Dog implements Animal { - **Dynamic Class-File Constants**: Java 11 introduced dynamic class-file constants to provide a way to define constants in class files that are dynamically computed at runtime. Dynamic class-file constants allow you to define constants that depend on the class's runtime context, enabling more flexible and dynamic code generation. -- 227 . What are the new features in Java 13? \ +- **227 . What are the new features in Java **13? \ Java 13 introduced several new features and enhancements to the Java programming language, including: - **Text Blocks (Preview Feature)**: Java 13 introduced text blocks as a preview feature to provide a more readable and maintainable way to write multi-line strings in Java. Text blocks allow you to define multi-line strings with @@ -3489,7 +3621,7 @@ public class Dog implements Animal { - **Text Blocks (Second Preview)**: Java 13 introduced text blocks as a second preview feature to provide a more readable and maintainable way to write multi-line strings in Java. Text blocks allow you to define multi-line strings with improved formatting and indentation, making it easier to write and read complex string literals. -- 228 . What are the new features in Java 17? \ +- **228 . What are the new features in Java **17? \ Java 17 introduced several new features and enhancements to the Java programming language, including: - **Sealed Classes (Standard Feature)**: Java 17 introduced sealed classes as a standard feature to provide a way to restrict the subclasses of a class. Sealed classes allow you to define a limited set of subclasses that can extend @@ -3520,7 +3652,7 @@ public class Dog implements Animal { enabling better integration with native libraries and systems. - **JEP -- 228 . What are the new features in Java 21? \ +- **228 . What are the new features in Java **21? \ Java 21 introduced several new features and enhancements to the Java programming language, including: - **JEP 406: Pattern Matching for switch (Standard Feature)**: Java 21 introduced pattern matching for switch as a standard feature to provide a more concise and expressive way to write switch statements. Pattern matching for From e6eedfccbe65c9146a7b51395f91f2a809163010 Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Fri, 6 Dec 2024 17:43:02 -0600 Subject: [PATCH 06/14] more andwers added. --- readme.md | 441 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 340 insertions(+), 101 deletions(-) diff --git a/readme.md b/readme.md index 94449a3..edefd14 100644 --- a/readme.md +++ b/readme.md @@ -26,22 +26,32 @@ Available in the resources for the course - Video : https://www.youtube.com/playlist?list=PLBBog2r6uMCSmMVTW_QmDLyASBvovyAO3 - GIT Repository : https://github.com/in28minutes/getting-started-in-5-steps -## Interview Questions +## 200+ Interview Questions ### Java Platform -- **1 . ****Why is Java so popular?** +- **1 . Why is Java so popular?** - Java is popular for several reasons: - 1. **Platform Independence**: Java programs can run on any device that has the Java Virtual Machine (JVM), making it - highly portable. - 2. **Object-Oriented**: Java's object-oriented nature allows for modular programs and reusable code. - 3. **Robust and Secure**: Java has strong memory management, exception handling, and security features. - 4. **Rich API**: Java provides a vast standard library that simplifies many programming tasks. - 5. **Community Support**: Java has a large and active community, providing extensive resources and support. - 6. **Performance**: Java's performance has improved significantly with Just-In-Time (JIT) compilers and other - optimizations. - 7. **Enterprise Use**: Java is widely used in enterprise environments, particularly for server-side applications. + - + 1. **Platform Independence**: Java programs can run on any device that has the Java Virtual Machine (JVM), + making it + highly portable. + - + 2. **Object-Oriented**: Java's object-oriented nature allows for modular programs and reusable code. + - + 3. **Robust and Secure**: Java has strong memory management, exception handling, and security features. + - + 4. **Rich API**: Java provides a vast standard library that simplifies many programming tasks. + - + 5. **Community Support**: Java has a large and active community, providing extensive resources and support. + - + 6. **Performance**: Java's performance has improved significantly with Just-In-Time (JIT) compilers and + other + optimizations. + - + 7. **Enterprise Use**: Java is widely used in enterprise environments, particularly for server-side + applications. - **2 . What is platform independence?** Platform independence refers to the ability of a programming language or software to run on various types of computer systems without modification. In the context of Java, platform independence is achieved through the use of the Java @@ -98,53 +108,62 @@ Available in the resources for the course on the values. - **8 . Why do we need Wrapper classes in Java?** Wrapper classes in Java are needed for the following reasons: - 1. **Object-Oriented Programming**: Wrapper classes allow primitive data types to be treated as objects, enabling - them to be used in object-oriented programming contexts. - 2. **Collections**: Collections in Java, such as `ArrayList`, can only store objects. Wrapper classes allow - primitive types to be stored in collections. - 3. **Utility Methods**: Wrapper classes provide utility methods for converting between types and performing - operations on the values. - 4. **Default Values**: Wrapper classes can be used to represent default values (e.g., `null` for an `Integer`), - which is not possible with primitive types. - 5. **Type Safety**: Wrapper classes enable type safety in generic programming, ensuring that only the correct type - of objects are used. + - + 1. **Object-Oriented Programming**: Wrapper classes allow primitive data types to be treated as objects, + enabling + them to be used in object-oriented programming contexts. + - + 2. **Collections**: Collections in Java, such as `ArrayList`, can only store objects. Wrapper classes allow + primitive types to be stored in collections. + - + 3. **Utility Methods**: Wrapper classes provide utility methods for converting between types and performing + operations on the values. + - + 4. **Default Values**: Wrapper classes can be used to represent default values (e.g., `null` for an `Integer`), + which is not possible with primitive types. + - + 5. **Type Safety**: Wrapper classes enable type safety in generic programming, ensuring that only the correct + type + of objects are used. - **9 . What are the different ways of creating Wrapper class instances?** There are two main ways to create instances of Wrapper classes in Java: - 1. **Using Constructors**: - Each wrapper class has a constructor that takes a primitive type or a String as an argument. + - a). **Using Constructors**: + Each wrapper class has a constructor that takes a primitive type or a String as an argument. ```java Integer intObj1 = new Integer(10); Integer intObj2 = new Integer("10"); ``` - 2. **Using Static Factory Methods**: - The wrapper classes provide static factory methods like `valueOf` to create instances. + - b). **Using Static Factory Methods**: + The wrapper classes provide static factory methods like `valueOf` to create instances. ```java Integer intObj1 = 10; Integer intObj2 = Integer.valueOf("10"); ``` -- **10 . What are differences in the two ways of creating Wrapper classes?** +- **10 . What are differences in the two ways of creating Wrapper classes?** \ The two ways of creating Wrapper class instances in Java are using constructors and using static factory methods. Here are the differences: - 1. **Using Constructors**: - - Each wrapper class has a constructor that takes a primitive type or a `String` as an argument. - - Example: - ```java - Integer intObj1 = new Integer(10); - Integer intObj2 = new Integer("10"); - ``` - 2. **Using Static Factory Methods**: - - Wrapper classes provide static factory methods like `valueOf` to create instances. - - Example: - ```java - Integer intObj1 = Integer.valueOf(10); - Integer intObj2 = Integer.valueOf("10"); - ``` + - + 1. **Using Constructors**: + Each wrapper class has a constructor that takes a primitive type or a `String` as an argument. \ + Example: + ```java + Integer intObj1 = new Integer(10); + Integer intObj2 = new Integer("10"); + ``` + - + 2. **Using Static Factory Methods**: + Wrapper classes provide static factory methods like `valueOf` to create instances.\ + Example: + ```java + Integer intObj1 = Integer.valueOf(10); + Integer intObj2 = Integer.valueOf("10"); + ``` **Differences**: - **Performance**: Static factory methods are generally preferred over constructors because they can cache frequently requested values, improving performance. - - **Readability**: Using `valueOf` is often more readable and expressive. - - **Deprecation**: Some constructors in wrapper classes are deprecated in favor of static factory methods. + - **Readability**: Using `valueOf` is often more readable and expressive. + - **Deprecation**: Some constructors in wrapper classes are deprecated in favor of static factory methods. - **11 . What is auto boxing?** Autoboxing in Java is the automatic conversion that the Java compiler makes between the primitive types and their corresponding object wrapper classes. For example, converting an `int` to an `Integer`, a `double` to a `Double`, and @@ -160,24 +179,30 @@ Available in the resources for the course In this example, the primitive `int` is automatically converted to an `Integer` object. - **12 . What are the advantages of auto boxing?** Autoboxing in Java provides several advantages: - 1. **Simplicity**: Autoboxing simplifies the process of working with primitive types in contexts that require - objects, - such as collections. - 2. **Readability**: Autoboxing makes the code more readable and expressive by automatically converting between - primitive types and their corresponding object wrapper classes. - 3. **Convenience**: Autoboxing eliminates the need for manual conversion between primitive types and objects, - reducing - boilerplate code. - 4. **Compatibility**: Autoboxing allows code written with primitive types to be used in contexts that require - objects, - without the need for explicit conversion. + - + 1. **Simplicity**: Autoboxing simplifies the process of working with primitive types in contexts that require + objects, + such as collections. + - + 2. **Readability**: Autoboxing makes the code more readable and expressive by automatically converting between + primitive types and their corresponding object wrapper classes. + - + 3. **Convenience**: Autoboxing eliminates the need for manual conversion between primitive types and objects, + reducing + boilerplate code. + - + 4. **Compatibility**: Autoboxing allows code written with primitive types to be used in contexts that require + objects, without the need for explicit conversion. - **13 . What is casting?** Casting in Java is the process of converting a value of one data type to another. There are two types of casting: - 1. **Implicit Casting**: When a smaller data type is converted to a larger data type, Java automatically performs - the - conversion. For example, converting an `int` to a `double`. - 2. **Explicit Casting**: When a larger data type is converted to a smaller data type, or when converting between - incompatible types, explicit casting is required. For example, converting a `double` to an `int`. + - + 1. **Implicit Casting**: When a smaller data type is converted to a larger data type, Java automatically + performs + the + conversion. For example, converting an `int` to a `double`. + - + 2. **Explicit Casting**: When a larger data type is converted to a smaller data type, or when converting between + incompatible types, explicit casting is required. For example, converting a `double` to an `int`. Example: ```java @@ -209,26 +234,25 @@ Available in the resources for the course ### Strings -- **16 . Are all String**’s immutable? +- **16 . Are all String**’s immutable?\ No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String` object is created, its value cannot be changed. However, there are other classes like `StringBuilder` and `StringBuffer` that provide mutable alternatives to `String`. These classes allow you to modify the contents of the string without creating new objects. -- **17 . Where are String values stored in memory?** +- **17 . Where are String values stored in memory?**\ In Java, `String` values are stored in a special memory area called the **String Pool**. The String Pool is part of the Java heap memory and is used to store unique `String` literals. When a `String` literal is created, the JVM checks the String Pool to see if an identical `String` already exists. If it does, the reference to the existing `String` is returned. If not, the new `String` is added to the pool. This process helps in saving memory and improving performance by reusing immutable `String` objects. -- **18 . Why should you be careful about String concatenation**(+) operator in loops? +- **18 . Why should you be careful about String concatenation(+) operator in loops?**\ String concatenation using the `+` operator in loops can be inefficient due to the immutability of `String` objects. Each time a `String` is concatenated using the `+` operator, a new `String` object is created, resulting in unnecessary memory allocation and garbage collection. This can lead to performance issues, especially in loops where multiple concatenations are performed. To improve performance, it is recommended to use `StringBuilder` or `StringBuffer` for string concatenation in loops, as these classes provide mutable alternatives to `String` and are more efficient - for - building strings. + for building strings. - **19 . How do you solve above problem?** To solve the problem of inefficient string concatenation using the `+` operator in loops, you should use `StringBuilder` or `StringBuffer`. These classes provide mutable alternatives to `String` and are more efficient @@ -928,18 +952,18 @@ public class Dog implements Animal { No, this code will not compile due to a missing semicolon at the end of the `System.out.println` statement. In Java, -- **52 . What is the use of this**() keyword in Java? +- **52 . What is the use of this**() keyword in Java?\ The `this` keyword in Java is a reference to the current object within a method or constructor. It can be used to access instance variables, call other constructors, or pass the current object as a parameter to other methods. The use of `this` is optional, but it can help clarify code and avoid naming conflicts between instance variables and method parameters. -- **53 . Can a constructor be called directly from a method?** +- **53 . Can a constructor be called directly from a method?**\ No, a constructor cannot be called directly from a method. Constructors are special methods that are called only when an object is created. However, you can call another constructor from a constructor using `this()` or `super()`. If you need to initialize an object within a method, you should create a new instance of the class using the `new` keyword. -- **54 . Is a super class constructor called even when there is no explicit call from a sub class constructor?** +- **54 . Is a super class constructor called even when there is no explicit call from a sub class constructor?**\ Yes, a superclass constructor is always called, even if there is no explicit call from a subclass constructor. If a subclass constructor does not explicitly call a superclass constructor using `super()`, the Java compiler automatically inserts a call to the no-argument constructor of the superclass. If the superclass does not have a @@ -958,7 +982,7 @@ public class Dog implements Animal { Polymorphism allows for flexibility and the ability to define methods that can be used interchangeably, making the code more modular and easier to maintain. -- **56 . What is the use of instanceof operator in Java?** +- **56 . What is the use of instanceof operator in Java?**\ The `instanceof` operator in Java is used to test whether an object is an instance of a specific class or implements a specific interface. It returns `true` if the object is an instance of the specified class or interface, and `false` otherwise. This operator is useful for type checking before performing type-specific operations. @@ -989,8 +1013,9 @@ public class Dog implements Animal { ``` In this example, the `instanceof` operator checks if the `animal` object is an instance of the `Dog` class before - casting it to `Dog` and calling the `bark` method. -- **57 . What is coupling?** + casting it to `Dog` and calling the `bark` method. This helps prevent `ClassCastException` errors by ensuring that the + object is of the correct type before performing type-specific operations. +- **57 . What is coupling?**\ Coupling in software engineering refers to the degree of direct knowledge that one module has about another. It measures how closely connected two routines or modules are. High coupling means that modules are highly dependent on each other, which can make the system more difficult to understand, maintain, and modify. Low coupling, on the other @@ -1005,7 +1030,7 @@ public class Dog implements Animal { To reduce coupling, it is important to follow good design principles like encapsulation, abstraction, and separation of concerns. -- **58 . What is cohesion?** +- **58 . What is cohesion?**\ Cohesion in software engineering refers to the degree to which the elements inside a module belong together. It measures how closely related the responsibilities of a single module are. High cohesion means that the elements within a module are strongly related and work together to achieve a common goal. Low cohesion, on the other hand, means that @@ -1014,14 +1039,16 @@ public class Dog implements Animal { Cohesion in Java refers to the degree to which the methods in a class are related and work together to achieve a common purpose. High cohesion is desirable as it promotes code that is easier to understand, maintain, and test. Low cohesion can lead to code that is difficult to follow, modify, and debug. -- **59 . What is encapsulation?** +- **59 . What is encapsulation?**\ Encapsulation in Java is a fundamental object-oriented programming concept that involves bundling the data (fields) and the methods (functions) that operate on the data into a single unit, called a class. It restricts direct access to some of the object's components, which can help prevent the accidental modification of data. Encapsulation is achieved by: - 1. Declaring the fields of a class as private. - 2. Providing public getter and setter methods to access and update the value of the private fields. + - + 1. Declaring the fields of a class as private. + - + 2. Providing public getter and setter methods to access and update the value of the private fields. Here is an example: @@ -1055,52 +1082,264 @@ public class Dog implements Animal { In this example, the `name` and `age` fields are private, and they can only be accessed and modified through the public getter and setter methods. This ensures that the internal state of the object is protected and can only be changed in a controlled manner. -- **60 . What is an inner class?** +- **60 . What is an inner class?**\ An inner class in Java is a class that is defined within another class. Inner classes can access the members ( including private members) of the outer class. There are four types of inner classes in Java: - 1. **Member Inner Class**: A class defined within another class. - 2. **Static Nested Class**: A static class defined within another class. - 3. **Local Inner Class**: A class defined within a method. - 4. **Anonymous Inner Class**: A class without a name, defined and instantiated in a single statement. + - + 1. **Member Inner Class**: A class defined within another class. + - + 2. **Static Nested Class**: A static class defined within another class. + - + 3. **Local Inner Class**: A class defined within a method. + - + 4. **Anonymous Inner Class**: A class without a name, defined and instantiated in a single statement. + + Inner classes are useful for grouping related classes together, improving encapsulation, and reducing code complexity. +- + +Here is an example of a member inner class: + + ```java + public class OuterClass { + private int outerField = 10; + + class InnerClass { + void display() { + System.out.println("Outer field value: " + outerField); + } + + } - Here is an example of a member inner class: + public static void main(String[] args) { + OuterClass outer = new OuterClass(); + OuterClass.InnerClass inner = outer.new InnerClass(); + inner.display(); + } + +} + ``` + +In this example, `InnerClass` is an inner class within `OuterClass` and can access the `outerField` of `OuterClass`. + +- **61 . What is a static inner class?**\ + A static inner class in Java is a nested class that is defined as a static member of the outer class. It does not have + access to the instance variables and methods of the outer class, but it can access static members of the outer class. + Static inner classes are useful for grouping related classes together and improving code organization. + + Here is an example of a static inner class: ```java public class OuterClass { - private int outerField = 10; + private static int outerStaticField = 10; - class InnerClass { + static class StaticInnerClass { void display() { - System.out.println("Outer field value: " + outerField); + System.out.println("Outer static field value: " + outerStaticField); } } public static void main(String[] args) { - OuterClass outer = new OuterClass(); - OuterClass.InnerClass inner = outer.new InnerClass(); + OuterClass.StaticInner inner = new OuterClass.StaticInner(); inner.display(); } } ``` + In this example, `StaticInnerClass` is a static inner class within `OuterClass` and can access the `outerStaticField` + of `OuterClass`. + +- **62 . Can you create an inner class inside a method?** \ + Yes, you can create an inner class inside a method in Java. This type of inner class is called a local inner class. + Local inner classes are defined within a method and can only be accessed within that method. They have access to the + variables and parameters of the enclosing method, but they must be declared before they are used. - In this example, `InnerClass` is an inner class within `OuterClass` and can access the `outerField` of `OuterClass`. -- **61 . What is a static inner class?** -- **62 . Can you create an inner class inside a method?** -- **63 . What is an anonymous class?** + Here is an example of a local inner class: + + ```java + public class OuterClass { + private int outerField = 10; + + public void display() { + class LocalInnerClass { + void display() { + System.out.println("Outer field value: " + outerField); + } + } + + LocalInnerClass inner = new LocalInnerClass(); + inner.display(); + } + + public static void main(String[] args) { + OuterClass outer = new OuterClass(); + outer.display(); + } + } + ``` + + In this example, `LocalInnerClass` is a local inner class defined within the `display` method of `OuterClass`. It can + access the `outerField` of `OuterClass` and is instantiated and used within the `display` method. +- **63 . What is an anonymous class?** \ + An anonymous class in Java is a class without a name that is defined and instantiated in a single statement. It is + typically used for one-time use cases where a class needs to be defined and instantiated without creating a separate + class file. Anonymous classes are often used for event handling, callbacks, and other situations where a class is + needed for a specific purpose. + + Here is an example of an anonymous class: + + ```java + public class Main { + public static void main(String[] args) { + Runnable runnable = new Runnable() { + @Override + public void run() { + System.out.println("Hello, World!"); + } + }; + + new Thread(runnable).start(); + } + } + ``` + here is the same example using a lambda expression: + + ```java + public class Main { + public static void main(String[] args) { + Runnable runnable = () -> System.out.println("Hello, World!"); + new Thread(runnable).start(); + } + } + ``` + + In this example, an anonymous class is defined and instantiated as an implementation of the `Runnable` interface. It + is + used to create a new `Thread` that prints "Hello, World!" when started. ### Modifiers -- **64 . What is default class modifier?** -- **65 . What is private access modifier?** -- **66 . What is default or package access modifier?** -- **67 . What is protected access modifier?** -- **68 . What is public access modifier?** -- **69 . What access types of variables can be accessed from a class in same package?** -- **70 . What access types of variables can be accessed from a class in different package?** -- **71 . What access types of variables can be accessed from a sub class in same package?** -- **72 . What access types of variables can be accessed from a sub class in different package?** -- **73 . What is the use of a final modifier on a class?** +- **64 . What is default class modifier?** \ + The default class modifier in Java is package-private, which means that the class is only accessible within the same + package. If no access modifier is specified for a class, it is considered to have default access. This means that the + class can be accessed by other classes within the same package but not by classes in different packages. + + Here is an example of a class with default access: + + ```java + class MyClass { + // class implementation + } + ``` + + In this example, `MyClass` has default access, so it can be accessed by other classes within the same package but not + by classes in different packages. If you want a class to be accessible from other packages, you should use the + `public` access modifier. If you want to restrict access to the class to only subclasses, you can use the `protected` + access modifier. If you want to restrict access to only the class itself, you can use the `private` access modifier. +- **65 . What is private access modifier?** \ + The `private` access modifier in Java is the most restrictive access level. It is used to restrict access to members + (fields, methods, constructors) of a class to only within the same class. This means that private members cannot be + accessed by other classes, even subclasses. Private members are only accessible within the class in which they are + declared. + + Here is an example of a private field: + + ```java + public class MyClass { + private int privateField; + + public void setPrivateField(int value) { + privateField = value; + } + + public int getPrivateField() { + return privateField; + } + } + ``` + + In this example, `privateField` is a private field that can only be accessed and modified within the `MyClass` class. + Any attempt to access or modify `privateField` from outside the class will result in a compilation error. +- **66 . What is default or package access modifier?** \ + The default or package access modifier in Java is the absence of an access modifier. It is also known as + package-private + access. This means that the class, method, or field with default access can only be accessed by classes within the + same + package. It is more restrictive than the `protected` access modifier but less restrictive than the `private` and + `public` access modifiers. + + Here is an example of a class with default access: + + ```java + class MyClass { + // class implementation + } + ``` + + In this example, `MyClass` has default access, so it can be accessed by other classes within the same package but not + by classes in different packages. If you want a class to be accessible from other packages, you should use the + `public` access modifier. If you want to restrict access to the class to only subclasses, you can use the `protected` + access modifier. If you want to restrict access to only the class itself, you can use the `private` access modifier. +- **67 . What is protected access modifier?** \ + The `protected` access modifier in Java is used to restrict access to members (fields, methods, constructors) of a + class to only within the same package or subclasses of the class. This means that protected members can be accessed by + classes within the same package and by subclasses, even if they are in different packages. Protected members are not + accessible by classes that are not in the same package or are not subclasses of the class. + + Here is an example of a protected field: + + ```java + public class SuperClass { + protected int protectedField; + } + + public class SubClass extends SuperClass { + public void setProtectedField(int value) { + protectedField = value; + } + + public int getProtectedField() { + return protectedField; + } + } + ``` + + In this example, `protectedField` is a protected field in the `SuperClass` class. It can be accessed and modified by + the `SubClass` class, which is a subclass of `SuperClass`. Any attempt to access or modify `protectedField` from a + class that is not in the same package or is not a subclass of `SuperClass` will result in a compilation error. +- **68 . What is public access modifier?** \ + The `public` access modifier in Java is the least restrictive access level. It allows a class, method, or field to be + accessed by any other class in the same project or in other projects. Public members are accessible from any other + class, regardless of the package or inheritance relationship. This makes them useful for creating APIs and libraries + that can be used by other developers. +- **69 . What access types of variables can be accessed from a class in same package?** \ + In Java, a class in the same package can access the following types of variables: + - **Public Variables**: Public variables can be accessed by any class in the same package or in other packages. + - **Protected Variables**: Protected variables can be accessed by any class in the same package or by subclasses in + other packages. + - **Default (Package-Private) Variables**: Default variables can be accessed by any class in the same package. + - **Private Variables**: Private variables cannot be accessed by any other class, even in the same package. +- **70 . What access types of variables can be accessed from a class in different package?** \ + In Java, a class in a different package can access the following types of variables: + - **Public Variables**: Public variables can be accessed by any class in any package. + - **Protected Variables**: Protected variables can be accessed by subclasses in any package, but not by non-subclasses + in different packages. + - **Default (Package-Private) Variables**: Default variables cannot be accessed by classes in different packages. + - **Private Variables**: Private variables cannot be accessed by any other class, even in a different package. +- **71 . What access types of variables can be accessed from a sub class in same package?** \ + In Java, a subclass in the same package can access the following types of variables: + - **Public Variables**: Public variables can be accessed by any class in the same package or in other packages. + - **Protected Variables**: Protected variables can be accessed by any class in the same package or by subclasses in + other packages. + - **Default (Package-Private) Variables**: Default variables can be accessed by any class in the same package. + - **Private Variables**: Private variables cannot be accessed by any other class, even in the same package. +- **72 . What access types of variables can be accessed from a sub class in different package?** \ + In Java, a subclass in a different package can access the following types of variables: + - **Public Variables**: Public variables can be accessed by any class in any package. + - **Protected Variables**: Protected variables can be accessed by subclasses in any package, but not by non-subclasses + in different packages. + - **Default (Package-Private) Variables**: \Default variables cannot be accessed by classes in different packages. + - **Private Variables**: Private variables cannot be accessed by any other class, even in a different package. +- **73 . What is the use of a final modifier on a class?** \ The `final` modifier on a class in Java is used to prevent the class from being subclassed. This means that no other class can extend a `final` class. It is often used to create immutable classes or to ensure that the implementation of the class cannot be altered through inheritance. @@ -1159,7 +1398,7 @@ public class Dog implements Animal { In this example, `MAX_VALUE` is a final variable that cannot be reassigned after it is initialized. Any attempt to reassign `MAX_VALUE` will result in a compilation error. This ensures that the value of `MAX_VALUE` remains constant in the program. -- **76 . What is a final argument?** +- **76 . What is a final argument?**\ A final argument in Java is a method parameter that is declared with the `final` keyword. This means that once the parameter is assigned a value, it cannot be changed within the method. This is useful for ensuring that the parameter remains constant throughout the method execution. @@ -1176,12 +1415,12 @@ public class Dog implements Animal { In this example, `finalParam` is a final argument, and any attempt to reassign it within the method will result in a compilation error. -- **77 . What happens when a variable is marked as volatile?** +- **77 . What happens when a variable is marked as volatile?**\ When a variable is marked as `volatile` in Java, it ensures that the value of the variable is always read from and written to the main memory, rather than being cached in a thread's local memory. This guarantees visibility of changes to the variable across all threads. The `volatile` keyword is used to prevent memory consistency errors in concurrent programming. -- **78 . What is a static variable?** +- **78 . What is a static variable?**\ A static variable in Java is a variable that is shared among all instances of a class. It is declared using the `static` keyword and belongs to the class rather than any specific instance. This means that there is only one copy of the static variable, regardless of how many instances of the class are created. Static variables are often used for From 86270e226a7412561cbce11c5d622cbce129d999 Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Fri, 6 Dec 2024 18:11:39 -0600 Subject: [PATCH 07/14] more andwers added. --- readme.md | 447 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 426 insertions(+), 21 deletions(-) diff --git a/readme.md b/readme.md index edefd14..0b03c03 100644 --- a/readme.md +++ b/readme.md @@ -1444,30 +1444,435 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce ### conditions & loops -- **79 . Why should you always use blocks around if statement?** -- **80 . Guess the output** -- **81 . Guess the output** -- **82 . Guess the output of this switch block **. -- **83 . Guess the output of this switch block?** -- **84 . Should default be the last case in a switch statement?** -- **85 . Can a switch statement be used around a String** -- **86 . Guess the output of this for loop **(P.S. there is an error as the output of given question should be - 0-1-2-3-4-5-6-7-8-9. So please ignore that.) -- **87 . What is an enhanced for loop?** -- **88 . What is the output of the for loop below?** -- **89 . What is the output of the program below?** -- **90 . What is the output of the program below?** +- **79 . Why should you always use blocks around if statement?** \ + It is a good practice to always use blocks around `if` statements in Java to improve code readability and avoid + potential bugs. When an `if` statement is not enclosed in a block, only the next statement is considered part of the + `if` block. This can lead to confusion and errors if additional statements are added later. By using blocks around `if` + statements, you make it clear which statements are part of the conditional block and reduce the risk of errors. +- **80 . Guess the output**\ + Here is an example to guess the output: + ```java + public class GuessOutput { + public static void main(String[] args) { + int x = 5; + int y = 10; + int z = x++ + ++y; + System.out.println("x = " + x); + System.out.println("y = " + y); + System.out.println("z = " + z); + } + } + ``` + The output of this program will be: + ```ruby + x = 6 + y = 11 + z = 16 + ``` +- **81 . Guess the output**\ + Here is an example to guess the output: + ```java + public class GuessOutput { + public static void main(String[] args) { + int a = 3; + int b = 7; + int c = a-- - --b; + System.out.println("a = " + a); + System.out.println("b = " + b); + System.out.println("c = " + c); + } + } + ``` + The output of this program will be: + ```ruby + a = 2 + b = 6 + c = -3 + ``` +- **82 . Guess the output of this switch block**\ + Here is an example to guess the output: + ```java + public class GuessOutput { + public static void main(String[] args) { + int day = 3; + String dayString; + switch (day) { + case 1: + dayString = "Monday"; + break; + case 2: + dayString = "Tuesday"; + break; + case 3: + dayString = "Wednesday"; + break; + case 4: + dayString = "Thursday"; + break; + case 5: + dayString = "Friday"; + break; + case 6: + dayString = "Saturday"; + break; + case 7: + dayString = "Sunday"; + break; + default: + dayString = "Invalid day"; + break; + } + System.out.println(dayString); + } + } + ``` + The output of this program will be: + ```ruby + Wednesday + ``` +- **83 . Guess the output of this switch block?** \ + Here is an example to guess the output: + ```java + public class GuessOutput { + public static void main(String[] args) { + int x = 5; + switch (x) { + case 1: + System.out.println("One"); + case 2: + System.out.println("Two"); + case 3: + System.out.println("Three"); + case 4: + System.out.println("Four"); + case 5: + System.out.println("Five"); + default: + System.out.println("Default"); + } + } + } + ``` + The output of this program will be: + ```ruby + Five + Default + ``` +- **84 . Should default be the last case in a switch statement?** \ + No, the `default` case does not have to be the last case in a `switch` statement in Java. The `default` case is + optional and can be placed anywhere within the `switch` statement. It is typically used as a catch-all case for values + that do not match any of the other cases. Placing the `default` case at the end of the `switch` statement is a common + practice to make it easier to identify and handle unexpected values, but it is not required. + By example: + ```java + public class Example { + public static void main(String[] args) { + int x = 5; + switch (x) { + case 1: + System.out.println("One"); + break; + case 2: + System.out.println("Two"); + break; + default: + System.out.println("Default"); + break; + case 3: + System.out.println("Three"); + break; + } + } + } + ``` + In this example, the `default` case is placed before the `case 3` statement. This is valid Java syntax, and the + `default` case will be executed if the value of `x` does not match any of the other cases. +- **85 . Can a switch statement be used around a String** \ + Yes, a `switch` statement can be used with a `String` in Java starting from Java 7. Prior to Java 7, `switch` + statements only supported `int`, `byte`, `short`, `char`, and `enum` types. With the introduction of the `String` + `switch` feature in Java 7, you can now use `String` values as case labels in a `switch` statement. + + Here is an example: + + ```java + public class Example { + public static void main(String[] args) { + String day = "Monday"; + switch (day) { + case "Monday": + System.out.println("It's Monday!"); + break; + case "Tuesday": + System.out.println("It's Tuesday!"); + break; + default: + System.out.println("It's not Monday or Tuesday."); + break; + } + } + } + ``` + + In this example, the `switch` statement uses a `String` value (`day`) as the expression and `String` case labels + (`"Monday"` and `"Tuesday"`). This feature allows for more expressive and readable code when working with `String` + values. +- **86 . Guess the output of this for loop** \ + Here is an example to guess the output: + ```java + public class GuessOutput { + public static void main(String[] args) { + for (int i = 0; i < 5; i++) { + System.out.println("i = " + i); + } + } + } + ``` + The output of this program will be: + ```ruby + i = 0 + i = 1 + i = 2 + i = 3 + i = 4 + ``` +- **87 . What is an enhanced for loop?** \ + An enhanced for loop, also known as a for-each loop, is a simplified way to iterate over elements in an array or a + collection in Java. It provides a more concise syntax for iterating over elements without the need for explicit + indexing or bounds checking. The enhanced for loop was introduced in Java 5 and is commonly used for iterating over + arrays, lists, sets, and other collections. + + Here is an example of an enhanced for loop: + + ```java + public class Example { + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + for (int number : numbers) { + System.out.println(number); + } + } + } + ``` + + In this example, the enhanced for loop iterates over the `numbers` array and prints each element to the console. +- **88 . What is the output of the for loop below?** \ + Here is an example to guess the output: + ```java + public class GuessOutput { + public static void main(String[] args) { + for (int i = 0; i < 5; i++) { + if (i == 3) { + continue; + } + System.out.println("i = " + i); + } + } + } + ``` +- **89 . What is the output of the program below?** \ + Here is an example to guess the output: + ```java + public class GuessOutput { + public static void main(String[] args) { + for (int i = 1; i < 15; i++) { + if (i == 13) { + break; + } + System.out.println("i = " + i); + } + } + } + ``` +- **90 . What is the output of the program below?** \ + Here is an example to guess the output: + ```java + public class GuessOutput { + public static void main(String[] args) { + for (int i = 0; i < 10; i++) { + if (i == 13) { + break; + } + System.out.println("i = " + i); + } + } + } + ``` ### Exception handling -- **91 . Why is exception handling important?** -- **92 . What design pattern is used to implement exception handling features in most languages?** -- **93 . What is the need for finally block?** -- **94 . In what scenarios is code in finally not executed?** -- **95 . Will finally be executed in the program below?** -- **96 . Is try without a catch is allowed?** -- **97 . Is try without catch and finally allowed?** -- **98 . Can you explain the hierarchy of exception handling classes?** +- **91 . Why is exception handling important?** \ + Exception handling is important in Java for the following reasons: + - **Error Handling**: Exception handling allows you to gracefully handle errors and exceptions that occur during + program execution. This helps prevent the program from crashing and provides a way to recover from unexpected + situations. + - **Robustness**: Exception handling makes your code more robust by handling unexpected conditions and preventing + them from causing the program to fail. + - **Debugging**: Exception handling provides a way to catch and log errors, making it easier to debug and diagnose + issues in the code. + - **Maintainability**: Exception handling improves the maintainability of the code by separating error-handling logic + from the main program logic. This makes the code easier to read, understand, and modify. + - **Security**: Exception handling can help prevent security vulnerabilities by handling errors and exceptions that + could be exploited by malicious users. + - **User Experience**: Exception handling improves the user experience by providing informative error messages and + handling errors in a user-friendly way. +- **92 . What design pattern is used to implement exception handling features in most languages?** \ + The most common design pattern used to implement exception handling features in most programming languages, including + Java, is the `try-catch-finally` pattern. This pattern consists of three main components: + + - **Try Block**: The `try` block contains the code that may throw an exception. It is used to enclose the code that + needs to be monitored for exceptions. + - **Catch Block**: The `catch` block is used to handle exceptions that are thrown in the `try` block. It specifies + the type of exception to catch and the code to execute when the exception occurs. + - **Finally Block**: The `finally` block is used to execute code that should always run, regardless of whether an + exception occurs. It is typically used to release resources or clean up after the `try` block. + + Here is an example of the `try-catch-finally` pattern in Java: + + ```java + public class Example { + + public static void main(String[] args) { + try { + // Code that may throw an exception + File file = new File("\+example.txt"); + } catch (Exception e) { + // Handle the exception + e.printStackTrace(); + } finally { + // Cleanup code + System.out.println("Finally block executed"); + } + } + } + ``` + + In this example, the `try` block contains the code that may throw an exception, the `catch` block handles the + exception, and the `finally` block contains cleanup code that should always run, regardless of whether an exception + occurs. +- **93 . What is the need for finally block?** \ + The `finally` block in Java is used to execute code that should always run, regardless of whether an exception occurs. + It is typically used to release resources, close connections, or perform cleanup operations that need to be done + regardless of the outcome of the `try` block. The `finally` block is guaranteed to run, even if an exception is thrown + and caught in the `try` block. + + Here is an example: + + ```java + public class Example { + public static void main(String[] args) { + try { + // Code that may throw an exception + int result = 10 / 0; + } catch (ArithmeticException e) { + // Handle the exception + e.printStackTrace(); + } finally { + // Cleanup code + System.out.println("Finally block executed"); + } + } + } + ``` + + In this example, the `finally` block contains cleanup code that should always run, regardless of whether an exception + occurs in the `try` block. This ensures that resources are released and cleanup operations are performed, even if an + exception is thrown. +- **94 . In what scenarios is code in finally not executed?** \ + The code in a `finally` block is not executed in the following scenarios: + - **System.exit()**: If the `System.exit()` method is called in the `try` or `catch` block, the program will + terminate immediately, and the code in the `finally` block will not be executed. + - **Infinite Loop**: If the code in the `try` or `catch` block results in an infinite loop or hangs the program, the + `finally` block will not be executed. + - **JVM Shutdown**: If the JVM is shut down abruptly, such as by killing the process or a power failure, the code in + the `finally` block may not be executed. + - **Thread Interruption**: If the thread executing the `try` or `catch` block is interrupted, the code in the + `finally` block may not be executed. + - **StackOverflowError**: If a `StackOverflowError` occurs in the `try` or `catch` block, the code in the `finally` + block may not be executed. + - **OutOfMemoryError**: If an `OutOfMemoryError` occurs in the `try` or `catch` block, the code in the `finally` block + may not be executed. +- **95 . Will finally be executed in the program below?** \ + Here is an example to determine if the `finally` block will be executed: + ```java + public class Example { + public static void main(String[] args) { + try { + System.out.println("Try block"); + System.exit(0); + } catch (Exception e) { + System.out.println("Catch block"); + } finally { + System.out.println("Finally block"); + } + } + } + ``` + In this example, the `System.exit(0)` method is called in the `try` block, which will terminate the program + immediately. As a result, the code in the `finally` block will not be executed. +- **96 . Is try without a catch is allowed?** \ + Yes, a `try` block without a `catch` block is allowed in Java. This is known as a try-with-resources statement and is + used to automatically close resources that implement the `AutoCloseable` interface. The `try` block can be followed by + one or more `catch` blocks or a `finally` block, but it is not required to have a `catch` block. + + Here is an example of a try-with-resources statement: + + ```java + public class Example { + public static void main(String[] args) { + try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) { + String line = reader.readLine(); + System.out.println(line); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + ``` + + In this example, the `try` block contains a `BufferedReader` resource that is automatically closed when the `try` + block exits. The `catch` block handles any `IOException` that may occur while reading from the file. +- **97 . Is try without catch and finally allowed?** \ + Yes, a `try` block without a `catch` or `finally` block is allowed in Java. This is known as a try-with-resources + statement and is used to automatically close resources that implement the `AutoCloseable` interface. The `try` block + can be followed by one or more `catch` blocks or a `finally` block, but it is not required to have a `catch` or + `finally` block. + + Here is an example of a try-with-resources statement without a `catch` or `finally` block: + + ```java + public class Example { + public static void main(String[] args) { + try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) { + String line = reader.readLine(); + System.out.println(line); + } + } + } + ``` + + In this example, the `try` block contains a `BufferedReader` resource that is automatically closed when the `try` + block exits. There is no `catch` or `finally` block, as the resource is automatically closed by the try-with-resources + statement. +- **98 . Can you explain the hierarchy of exception handling classes?** \ + In Java, exception handling is based on a hierarchy of classes that extend the `Throwable` class. The main classes in + the exception handling hierarchy are: + + - **Throwable**: The `Throwable` class is the root class of the exception hierarchy. It has two main subclasses: + - **Error**: Errors are serious issues that are typically outside the control of the program and indicate problems + with the environment in which the application is running. Examples include `OutOfMemoryError`, + `StackOverflowError`, and `VirtualMachineError`. + - **Exception**: Exceptions are conditions that a program might want to catch and handle. They are divided into two + main categories: + - **Checked Exceptions**: These are exceptions that are checked at compile-time. The programmer is required to + handle these exceptions, either by using a `try-catch` block or by declaring them in the method signature + using the `throws` keyword. Examples include `IOException`, `SQLException`, and `FileNotFoundException`. + - **Unchecked Exceptions**: These are exceptions that are not checked at compile-time but occur during runtime. + They are subclasses of `RuntimeException` and do not need to be declared or caught. Examples include + `NullPointerException`, `ArrayIndexOutOfBoundsException`, and `IllegalArgumentException`. + + The exception handling hierarchy allows for different types of exceptions to be caught and handled in a structured + way. By understanding the hierarchy of exception handling classes, you can write more robust and reliable code that + handles errors and exceptions effectively. - **99 . What is the difference between error and exception?** Errors and exceptions are both types of problems that can occur during the execution of a program, but they are handled differently in Java: From f8d162c1dc1b54ec6386fd698e7c76a632d99da3 Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Fri, 6 Dec 2024 19:40:09 -0600 Subject: [PATCH 08/14] More changes --- readme.md | 985 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 853 insertions(+), 132 deletions(-) diff --git a/readme.md b/readme.md index 0b03c03..3a5b0a3 100644 --- a/readme.md +++ b/readme.md @@ -130,8 +130,8 @@ Available in the resources for the course - a). **Using Constructors**: Each wrapper class has a constructor that takes a primitive type or a String as an argument. ```java - Integer intObj1 = new Integer(10); - Integer intObj2 = new Integer("10"); + Integer intObj1 = 10; + Integer intObj2 = Integer.valueOf("10"); ``` - b). **Using Static Factory Methods**: The wrapper classes provide static factory methods like `valueOf` to create instances. @@ -261,13 +261,20 @@ Available in the resources for the course Example using `StringBuilder`: ```java - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < 10; i++) { - sb.append(i); + public class Main { + public static void main(String[] args) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < 10; i++) { + sb.append(i); + } + String result = sb.toString(); + System.out.println(result); + } } - String result = sb.toString(); ``` - + In this example, a `StringBuilder` is used to concatenate integers in a loop, and the final result is obtained by + calling the `toString` method. This approach is more efficient than using the `+` operator with `String` objects in a + loop. - **20 . What are the differences between `String` and `StringBuffer`?** - **Mutability**: `String` objects are immutable, meaning their values cannot be changed once created. `StringBuffer` objects are mutable, allowing their values to be modified. @@ -1321,7 +1328,8 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce - **70 . What access types of variables can be accessed from a class in different package?** \ In Java, a class in a different package can access the following types of variables: - **Public Variables**: Public variables can be accessed by any class in any package. - - **Protected Variables**: Protected variables can be accessed by subclasses in any package, but not by non-subclasses + - **Protected Variables**: Protected variables can be accessed by subclasses in any package, but not by + non-subclasses in different packages. - **Default (Package-Private) Variables**: Default variables cannot be accessed by classes in different packages. - **Private Variables**: Private variables cannot be accessed by any other class, even in a different package. @@ -1335,7 +1343,8 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce - **72 . What access types of variables can be accessed from a sub class in different package?** \ In Java, a subclass in a different package can access the following types of variables: - **Public Variables**: Public variables can be accessed by any class in any package. - - **Protected Variables**: Protected variables can be accessed by subclasses in any package, but not by non-subclasses + - **Protected Variables**: Protected variables can be accessed by subclasses in any package, but not by + non-subclasses in different packages. - **Default (Package-Private) Variables**: \Default variables cannot be accessed by classes in different packages. - **Private Variables**: Private variables cannot be accessed by any other class, even in a different package. @@ -1447,7 +1456,8 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce - **79 . Why should you always use blocks around if statement?** \ It is a good practice to always use blocks around `if` statements in Java to improve code readability and avoid potential bugs. When an `if` statement is not enclosed in a block, only the next statement is considered part of the - `if` block. This can lead to confusion and errors if additional statements are added later. By using blocks around `if` + `if` block. This can lead to confusion and errors if additional statements are added later. By using blocks around + `if` statements, you make it clear which statements are part of the conditional block and reduce the risk of errors. - **80 . Guess the output**\ Here is an example to guess the output: @@ -1463,14 +1473,14 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce } } ``` - The output of this program will be: + The output of this program will be: ```ruby x = 6 y = 11 z = 16 ``` - **81 . Guess the output**\ - Here is an example to guess the output: + Here is an example to guess the output: ```java public class GuessOutput { public static void main(String[] args) { @@ -1483,14 +1493,14 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce } } ``` - The output of this program will be: + The output of this program will be: ```ruby a = 2 b = 6 c = -3 ``` - **82 . Guess the output of this switch block**\ - Here is an example to guess the output: + Here is an example to guess the output: ```java public class GuessOutput { public static void main(String[] args) { @@ -1526,12 +1536,12 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce } } ``` - The output of this program will be: + The output of this program will be: ```ruby Wednesday ``` - **83 . Guess the output of this switch block?** \ - Here is an example to guess the output: + Here is an example to guess the output: ```java public class GuessOutput { public static void main(String[] args) { @@ -1553,7 +1563,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce } } ``` - The output of this program will be: + The output of this program will be: ```ruby Five Default @@ -1563,7 +1573,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce optional and can be placed anywhere within the `switch` statement. It is typically used as a catch-all case for values that do not match any of the other cases. Placing the `default` case at the end of the `switch` statement is a common practice to make it easier to identify and handle unexpected values, but it is not required. - By example: + By example: ```java public class Example { public static void main(String[] args) { @@ -1585,8 +1595,8 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce } } ``` - In this example, the `default` case is placed before the `case 3` statement. This is valid Java syntax, and the - `default` case will be executed if the value of `x` does not match any of the other cases. + In this example, the `default` case is placed before the `case 3` statement. This is valid Java syntax, and the + `default` case will be executed if the value of `x` does not match any of the other cases. - **85 . Can a switch statement be used around a String** \ Yes, a `switch` statement can be used with a `String` in Java starting from Java 7. Prior to Java 7, `switch` statements only supported `int`, `byte`, `short`, `char`, and `enum` types. With the introduction of the `String` @@ -1709,7 +1719,8 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce them from causing the program to fail. - **Debugging**: Exception handling provides a way to catch and log errors, making it easier to debug and diagnose issues in the code. - - **Maintainability**: Exception handling improves the maintainability of the code by separating error-handling logic + - **Maintainability**: Exception handling improves the maintainability of the code by separating error-handling + logic from the main program logic. This makes the code easier to read, understand, and modify. - **Security**: Exception handling can help prevent security vulnerabilities by handling errors and exceptions that could be exploited by malicious users. @@ -1789,7 +1800,8 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce `finally` block may not be executed. - **StackOverflowError**: If a `StackOverflowError` occurs in the `try` or `catch` block, the code in the `finally` block may not be executed. - - **OutOfMemoryError**: If an `OutOfMemoryError` occurs in the `try` or `catch` block, the code in the `finally` block + - **OutOfMemoryError**: If an `OutOfMemoryError` occurs in the `try` or `catch` block, the code in the `finally` + block may not be executed. - **95 . Will finally be executed in the program below?** \ Here is an example to determine if the `finally` block will be executed: @@ -1858,15 +1870,19 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce the exception handling hierarchy are: - **Throwable**: The `Throwable` class is the root class of the exception hierarchy. It has two main subclasses: - - **Error**: Errors are serious issues that are typically outside the control of the program and indicate problems + - **Error**: Errors are serious issues that are typically outside the control of the program and indicate + problems with the environment in which the application is running. Examples include `OutOfMemoryError`, `StackOverflowError`, and `VirtualMachineError`. - - **Exception**: Exceptions are conditions that a program might want to catch and handle. They are divided into two + - **Exception**: Exceptions are conditions that a program might want to catch and handle. They are divided into + two main categories: - - **Checked Exceptions**: These are exceptions that are checked at compile-time. The programmer is required to + - **Checked Exceptions**: These are exceptions that are checked at compile-time. The programmer is required + to handle these exceptions, either by using a `try-catch` block or by declaring them in the method signature using the `throws` keyword. Examples include `IOException`, `SQLException`, and `FileNotFoundException`. - - **Unchecked Exceptions**: These are exceptions that are not checked at compile-time but occur during runtime. + - **Unchecked Exceptions**: These are exceptions that are not checked at compile-time but occur during + runtime. They are subclasses of `RuntimeException` and do not need to be declared or caught. Examples include `NullPointerException`, `ArrayIndexOutOfBoundsException`, and `IllegalArgumentException`. @@ -1921,15 +1937,146 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce handling or declaring the exception. 5. **Use a Lambda Expression**: Use a lambda expression to handle the exception in a functional interface that does not declare checked exceptions. -- **104 . How do you create a custom exception?** -- **105 . How do you handle multiple exception types with same exception handling block?** -- **106 . Can you explain about try with resources?** -- **107 . How does try with resources work?** -- **108 . Can you explain a few exception handling best practices?** +- **104 . How do you create a custom exception?** \ + To create a custom exception in Java, you need to define a new class that extends the `Exception` class or one of its + subclasses. You can add custom fields, constructors, and methods to the custom exception class to provide additional + information about the exception. + + Here is an example of a custom exception class: + + ```java + public class CustomException extends Exception { + public CustomException(String message) { + super(message); + } + } + ``` + + In this example, the `CustomException` class extends the `Exception` class and provides a constructor that takes a + message as an argument. This allows you to create custom exceptions with a specific error message. You can also add + the related mechanisms to handle the new custom exception to provide a more detailed error message, and also + use the adequate processing of the exception by the logging system or the user interface. + Note: most of the time all the exceptions and custom exceptions are sent to the logging system, and the user + interface. The most popular is to log the exceptions using log4j or derivative logging systems like external logging + apis for Splunk or ELK. Splunk is a popular tool for monitoring, searching, and analyzing machine-generated big data, +- **105 . How do you handle multiple exception types with same exception handling block?** \ + In Java, you can handle multiple exception types with the same exception handling block by using a multi-catch block. + This allows you to catch multiple exceptions in a single `catch` block and handle them in a common way. The syntax for + a multi-catch block is to specify the exception types separated by a vertical bar (`|`). + + Here is an example of a multi-catch block: + + ```java + public class Example { + public static void main(String[] args) { + try { + // Code that may throw exceptions + int result = 10 / 0; + } catch (ArithmeticException | NullPointerException e) { + // Handle the exceptions + e.printStackTrace(); + } + } + } + ``` + + In this example, the `catch` block catches both `ArithmeticException` and `NullPointerException` exceptions and + handles + them in a common way. This can help reduce code duplication and improve the readability of the exception handling + code. +- **106 . Can you explain about try with resources?** \ + Try-with-resources is a feature introduced in Java 7 that simplifies resource management by automatically closing + resources that implement the `AutoCloseable` interface. It eliminates the need for explicit `finally` blocks to close + resources and ensures that resources are closed properly, even if an exception occurs. + + Here is an example of try-with-resources: + + ```java + public class Example { + public static void main(String[] args) { + try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) { + String line = reader.readLine(); + System.out.println(line); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + ``` + + In this example, the `try` block contains a `BufferedReader` resource that is automatically closed when the `try` + block exits. The `BufferedReader` class implements the `AutoCloseable` interface, which allows it to be used with + try-with-resources. If an `IOException` occurs while reading from the file, it is caught and handled in the `catch` + block. The `BufferedReader` resource is automatically closed when the `try` block exits, ensuring that resources are + released properly. + The big advantage of try-with-resources is that it simplifies resource management and reduces the risk of resource + leaks and other issues related to manual resource handling. +- **107 . How does try with resources work?** \ + Try-with-resources in Java works by automatically closing resources that implement the `AutoCloseable` interface when + the `try` block exits. It simplifies resource management by eliminating the need for explicit `finally` blocks to + close + resources and ensures that resources are closed properly, even if an exception occurs. + + When using try-with-resources, the resources are declared and initialized within the parentheses of the `try` + statement. + The resources are automatically closed in the reverse order of their declaration when the `try` block exits. If an + exception occurs during the execution of the `try` block, the resources are closed before the exception is propagated. + + Here is an example of try-with-resources: + + ```java + public class Example { + public static void main(String[] args) { + try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) { + String line = reader.readLine(); + System.out.println(line); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + ``` + + In this example, the `BufferedReader` resource is declared and initialized within the parentheses of the `try` + statement. The `BufferedReader` resource is automatically closed when the `try` block exits, ensuring that resources + are released properly. If an `IOException` occurs while reading from the file, it is caught and handled in the `catch` + block. The `BufferedReader` resource is still automatically closed before the exception is propagated. +- **108 . Can you explain a few exception handling best practices?** \ + Some exception handling best practices in Java include: + + - **Catch Specific Exceptions**: Catch specific exceptions rather than catching the general `Exception` class. This + allows you to handle different types of exceptions in a more targeted way. + - **Use try-with-resources**: Use try-with-resources to automatically close resources that implement the + `AutoCloseable` interface. This simplifies resource management and reduces the risk of resource leaks. + - **Log Exceptions**: Log exceptions using a logging framework like log4j or SLF4J to capture information about + errors and exceptions. This can help with debugging and diagnosing issues in the code. + - **Handle Exceptions Appropriately**: Handle exceptions appropriately based on the context and severity of the + error. This may involve logging the exception, displaying an error message to the user, or taking corrective + action. + - **Avoid Swallowing Exceptions**: Avoid swallowing exceptions by catching them and not doing anything with them. + This can lead to silent failures and make it difficult to diagnose issues in the code. + - **Use Checked Exceptions Wisely**: Use checked exceptions judiciously and only for conditions that the caller can + reasonably be expected to handle. Consider using unchecked exceptions for exceptional conditions that are outside + the control of the caller. + - **Throw Custom Exceptions**: Throw custom exceptions to provide more context and information about the error. This + can help with debugging and make it easier to handle specific types of errors. + - **Follow the Principle of Least Surprise**: Follow the principle of least surprise by handling exceptions in a way + that is consistent with the rest of the codebase and does not introduce unexpected behavior. + - **Document Exception Handling**: Document exception handling in the code to explain why exceptions are being + caught + and how they are being handled. This can help other developers understand the intent behind the exception handling + logic. + - **Test Exception Handling**: Test exception handling code to ensure that it behaves as expected and handles errors + correctly in different scenarios. This can help identify and fix issues before they reach production. + - **Use Standard Error Codes**: Use standard error codes or messages to provide consistent and meaningful feedback + to users when exceptions occur. This can help users understand the cause of the error and take appropriate action. + - **Avoid Catching Throwable**: Avoid catching the `Throwable` class, as this can catch errors and other serious + issues + that should not be caught or handled by the application. Catch specific exceptions instead. ### Miscellaneous topics -- **109 . What are the default values in an array? ** \ +- **109 . What are the default values in an array?** \ In Java, when an array is created, the elements are initialized to default values based on the type of the array. The default values for primitive types are as follows: @@ -1943,9 +2090,75 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce - **boolean**: false For reference types (objects), the default value is `null`. For example, the default value of an `int` array is `0`. -- **110 . How do you loop around an array using enhanced for loop?** -- **111 . How do you print the content of an array?** -- **112 . How do you compare two arrays? ** \ +- **110 . How do you loop around an array using enhanced for loop?** \ + You can loop around an array using an enhanced for loop in Java. The enhanced for loop, also known as the for-each + loop, provides a more concise syntax for iterating over elements in an array or a collection. It eliminates the need + for explicit indexing and bounds checking and makes the code more readable. + + Here is an example of looping around an array using an enhanced for loop: + + ```java + public class Example { + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + for (int number : numbers) { + System.out.println(number); + } + } + } + ``` + + In this example, the enhanced for loop iterates over the `numbers` array and prints each element to the console. The + `number` variable represents the current element in the array during each iteration of the loop. +- **111 . How do you print the content of an array?** \ + You can print the content of an array in Java by iterating over the elements of the array and printing each element to + the console. There are several ways to print the content of an array, including using a `for` loop, an enhanced `for` + loop, or the `Arrays.toString` method from the `java.util` package. + + Here are some examples: + + - **Using a For Loop**: + + ```java + public class Example { + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + for (int i = 0; i < numbers.length; i++) { + System.out.println(numbers[i]); + } + } + } + ``` + + - **Using an Enhanced For Loop**: + + ```java + public class Example { + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + for (int number : numbers) { + System.out.println(number); + } + } + } + ``` + + - **Using Arrays.toString**: + + ```java + import java.util.Arrays; + + public class Example { + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + System.out.println(Arrays.toString(numbers)); + } + } + ``` + + In these examples, the content of the `numbers` array is printed to the console using different methods for iterating + over the elements of the array. +- **112 . How do you compare two arrays?** \ In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method compares the contents of two arrays to determine if they are equal. It takes two arrays as arguments and returns `true` if the arrays are equal and `false` otherwise. The comparison is done element by element, so the arrays must @@ -1969,7 +2182,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, the `Arrays.equals` method is used to compare the `array1` and `array2` arrays, and the result is printed to the console. -- **113 . What is an enum? ** \ +- **113 . What is an enum?** \ An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to define a set of named constants that can be used in place of integer values. Enumerations are defined using the `enum` keyword and can contain constructors, methods, and fields. @@ -1984,7 +2197,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, the `Day` enum defines a set of constants representing the days of the week. Each constant is implicitly declared as a public static final field of the `Day` enum. -- **114 . Can you use a switch statement around an enum? ** \ +- **114 . Can you use a switch statement around an enum?** \ Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to provide a more readable and type-safe alternative to using integer values. Each constant in the enum can be used as a case label in the switch statement. @@ -2031,7 +2244,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, the `Day` enum is used with a switch statement to print the day of the week based on the value of the `day` variable. -- **115 . What are variable arguments or varargs? ** \ +- **115 . What are variable arguments or varargs?** \ Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This feature was introduced in Java 5 and is denoted by an ellipsis (`...`) after the type of the last parameter in the method signature. Varargs are represented as an array within the method and can be used to pass any number of @@ -2055,16 +2268,256 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, the `printNumbers` method accepts a variable number of `int` arguments using varargs. The method can be called with any number of `int` values, and they will be treated as an array within the method. -- **116 . What are asserts used for?** -- **117 . When should asserts be used?** -- **118 . What is garbage collection?** -- **119 . Can you explain garbage collection with an example?** -- **120 . When is garbage collection run?** -- **121 . What are best practices on garbage collection?** -- **122 . What are initialization blocks?** -- **123 . What is a static initializer?** -- **124 . What is an instance initializer block?** -- **125 . What is tokenizing? ** \ +- **116 . What are asserts used for?** \ + Asserts in Java are used to test assumptions in the code and validate conditions that should be true during program + execution. They are typically used for debugging and testing purposes to catch errors and inconsistencies in the code. + Asserts are disabled by default in Java and can be enabled using the `-ea` flag when running the JVM. + + Here is an example of using asserts: + + ```java + public class Main { + public static void main(String[] args) { + int x = Integer.parseInt(args[0]); + assert x > 0 : "x must be greater than 0"; + } + } + ``` + + In this example, the `assert` statement checks if the value of `x` is greater than 0 and throws an `AssertionError` + with the message `"x must be greater than 0"` if the condition is false. Asserts are typically used to validate + assumptions and catch errors early in the development process. +- **117 . When should asserts be used?** \ + Asserts in Java should be used in the following scenarios: + + - **Debugging**: Use asserts to catch errors and inconsistencies in the code during development and testing. They + can + help identify issues early in the development process and provide feedback on incorrect assumptions. + - **Testing**: Use asserts to validate conditions and assumptions in unit tests and integration tests. They can help + ensure that the code behaves as expected and meets the requirements. + - **Preconditions**: Use asserts to check preconditions and validate input parameters in methods. They can help + ensure that the method is called with the correct arguments and that the conditions are met. + - **Invariants**: Use asserts to check invariants and validate the state of objects or data structures. They can + help + ensure that the program is in a consistent state and that the data is valid. + - **Performance**: Use asserts to check performance-related conditions and validate optimizations. They can help + ensure that the code is efficient and performs as expected. + - **Security**: Use asserts to check security-related conditions and validate access controls. They can help ensure + that the code is secure and protected against vulnerabilities. + + Asserts should be used judiciously and in situations where they provide value in validating assumptions and catching + errors. They are typically disabled in production code and enabled during development and testing to provide feedback + on incorrect assumptions and conditions. + Note: It is important to note that asserts are disabled by default in Java and should not be used as a replacement for + proper error handling and validation in production code. They are intended for debugging and testing purposes and + should be used judiciously to catch errors and inconsistencies during development and testing. Also the asserts are + different from the asserts related to the unit testing framework because these last are particular validations for the + output of a unit (method) and asserts in java are checks for correct use of the contract of a method. +- **118 . What is garbage collection?** \ + Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program. + It is a key feature of the Java Virtual Machine (JVM) that manages memory allocation and deallocation for objects + created during program execution. Garbage collection helps prevent memory leaks and ensures that memory is used + efficiently by reclaiming unused memory and making it available for new objects. + + The garbage collection process involves several steps, including identifying unreferenced objects, reclaiming memory + used by those objects, and compacting memory to reduce fragmentation. Garbage collection is performed by the JVM's + garbage collector, which runs in the background and periodically checks for unused objects to reclaim memory. + + Garbage collection is an essential part of Java's memory management model and helps simplify memory management for + developers by automating the process of memory allocation and deallocation. It allows developers to focus on writing + code without having to worry about manual memory management and memory leaks. +- **119 . Can you explain garbage collection with an example?** \ + Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program. + It helps prevent memory leaks and ensures that memory is used efficiently by reclaiming unused memory and making it + available for new objects. Here is an example of garbage collection in Java: + + ```java + public class Main { + public static void main(String[] args) { + // Create an object + Object obj = new Object(); + + // Set the reference to null + obj = null; + + // Request garbage collection + System.gc(); + } + } + ``` + + In this example, an object `obj` is created and then set to `null` to remove the reference to the object. The + `System.gc()` method is called to request garbage collection by the JVM. The garbage collector will identify the + unreferenced object and reclaim the memory used by the object. This process helps free up memory that is no longer in + use and makes it available for new objects. +- **120 . When is garbage collection run?** \ + Garbage collection in Java is run by the JVM's garbage collector at specific intervals or when certain conditions are + met. The garbage collector runs in the background and periodically checks for unused objects to reclaim memory. The + exact timing and frequency of garbage collection depend on the JVM implementation and the garbage collection + algorithm used. + + Garbage collection is typically run when one of the following conditions is met: + + - **Memory Pressure**: When the JVM detects that the available memory is running low, it triggers garbage collection + to reclaim memory and free up space for new objects. + - **Idle Time**: When the JVM is idle or has spare CPU cycles, it may run garbage collection to reclaim memory and + optimize memory usage. + - **Explicit Request**: Garbage collection can be explicitly triggered by calling the `System.gc()` method or using + JVM options like `-XX:+ExplicitGCInvokesConcurrent`. + - **Generation Thresholds**: Garbage collection is run based on generation thresholds, such as the young generation + and old generation, to optimize memory management and reduce the impact on application performance. + - **Heap Size**: Garbage collection is run when the heap size exceeds a certain threshold, such as the maximum heap + size specified by the `-Xmx` JVM option. + + The garbage collector uses various algorithms and strategies to determine when and how to reclaim memory based on the + application's memory usage and requirements. By running garbage collection at specific intervals or when certain + conditions are met, the JVM can optimize memory management and ensure that memory is used efficiently. +- **121 . What are best practices on garbage collection?** \ + Some best practices for garbage collection in Java include: + + - **Avoid Premature Optimization**: Avoid premature optimization of memory usage and garbage collection. Let the + JVM's garbage collector manage memory automatically and optimize memory usage based on the application's + requirements. + - **Use Proper Data Structures**: Use appropriate data structures and algorithms to minimize memory usage and + reduce the impact on garbage collection. Choose data structures that are efficient and optimized for memory + management. + - **Minimize Object Creation**: Minimize the creation of unnecessary objects and use object pooling or caching to + reuse objects where possible. This can reduce the number of objects that need to be garbage collected and improve + performance. + - **Avoid Memory Leaks**: Avoid memory leaks by ensuring that objects are properly dereferenced and released when + they are no longer needed. Be mindful of retaining references to objects that are no longer in use. + - **Tune Garbage Collection**: Tune garbage collection settings and parameters based on the application's memory + requirements and performance goals. Experiment with different garbage collection algorithms and options to + optimize memory management. + - **Monitor Memory Usage**: Monitor memory usage and garbage collection activity to identify potential issues and + optimize memory management. Use tools like JVisualVM, VisualVM, or Java Mission Control to analyze memory usage + and garbage collection behavior. + - **Profile and Optimize**: Profile the application to identify memory bottlenecks and optimize memory usage. Use + profiling tools to analyze memory allocation, object creation, and garbage collection patterns to improve + performance. + - **Use Finalizers Sparingly**: Use finalizers sparingly and avoid relying on them for resource cleanup. Finalizers + can introduce performance overhead and may not be called in a timely manner. Consider using try-with-resources or + other mechanisms for resource cleanup. + - **Avoid Circular References**: Avoid circular references between objects, as they can prevent objects from being + garbage collected. Break circular references by using weak references or other techniques to allow objects to be + garbage collected when they are no longer needed. + - **Optimize Object Lifecycle**: Optimize the lifecycle of objects to minimize memory usage and reduce the impact on + garbage collection. Use object pooling, lazy initialization, and other techniques to manage object creation and + destruction efficiently. + - **Use Memory Profiling Tools**: Use memory profiling tools to analyze memory usage, object allocation, and garbage + collection behavior. These tools can help identify memory leaks, performance bottlenecks, and areas for + optimization. +- **122 . What are initialization blocks?** \ + Initialization blocks in Java are used to initialize instance variables of a class. There are two types of + initialization blocks in Java: instance initializer blocks and static initializer blocks. + + - **Instance Initializer Block**: An instance initializer block is used to initialize instance variables of a class. + It is executed when an instance of the class is created and can be used to perform complex initialization logic. + Instance initializer blocks are defined within curly braces `{}` and are executed before the constructor of the + class. + + Here is an example of an instance initializer block: + + ```java + public class Example { + private int x; + + { + x = 10; + } + + public Example() { + System.out.println("Constructor called"); + } + + public static void main(String[] args) { + Example example = new Example(); + System.out.println("Value of x: " + example.x); + } + } + ``` + + - **Static Initializer Block**: A static initializer block is used to initialize static variables of a class. It is + executed when the class is loaded by the JVM and can be used to perform one-time initialization tasks. Static + initializer blocks are defined with the `static` keyword and are executed before the class is used. + + Here is an example of a static initializer block: + + ```java + public class Example { + private static int x; + + static { + x = 10; + } + + public static void main(String[] args) { + System.out.println("Value of x: " + x); + } + } + ``` + + In these examples, the instance initializer block is used to initialize the `x` instance variable, and the static + initializer block is used to initialize the `x` static variable. Initialization blocks are useful for performing + complex initialization logic and ensuring that variables are properly initialized when an instance of the class is + created. +- **123 . What is a static initializer?** \ + A static initializer in Java is used to initialize static variables of a class. It is executed when the class is + loaded + by the JVM and can be used to perform one-time initialization tasks. Static initializer blocks are defined with the + `static` keyword and are executed before the class is used. +- **124 . What is an instance initializer block?** \ + An instance initializer block in Java is used to initialize instance variables of a class. It is executed when an + instance of the class is created and can be used to perform complex initialization logic. Instance initializer blocks + are defined within curly braces `{}` and are executed before the constructor of the class. + + Here is an example of an instance initializer block: + + ```java + public class Example { + private int x; + + { + x = 10; + } + + public Example() { + System.out.println("Constructor called"); + } + + public static void main(String[] args) { + Example example = new Example(); + System.out.println("Value of x: " + example.x); + } + } + ``` + + In this example, the instance initializer block is used to initialize the `x` instance variable before the constructor + is called. The instance initializer block is executed when an instance of the `Example` class is created and sets the + value of `x` to `10`. +- **125 . What is tokenizing?** \ + Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done + to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing + and text processing tasks to analyze and manipulate text data. + + Here is an example of tokenizing a string: + + ```java + public class Main { + public static void main(String[] args) { + String sentence = "Hello, world! This is a sentence."; + String[] tokens = sentence.split(" "); + + for (String token : tokens) { + System.out.println(token); + } + } + } + ``` + + In this example, the `split` method is used to tokenize the `sentence` string by splitting it into individual words + based on the space character. The resulting tokens are then printed to the console. +- **126 . Can you give an example of tokenizing?** \ Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing and text processing tasks to analyze and manipulate text data. @@ -2086,18 +2539,286 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, the `split` method is used to tokenize the `sentence` string by splitting it into individual words based on the space character. The resulting tokens are then printed to the console. -- **126 . Can you give an example of tokenizing?** -- **127 . What is serialization?** -- **128 . How do you serialize an object using serializable interface?** -- **129 . How do you de**-serialize in Java? -- **130 . What do you do if only parts of the object have to be serialized?** -- **131 . How do you serialize a hierarchy of objects?** -- **132 . Are the constructors in an object invoked when it is de**-serialized? -- **133 . Are the values of static variables stored when an object is serialized?** +- **127 . What is serialization?** \ + Serialization in Java is the process of converting an object into a stream of bytes that can be saved to a file, + sent over a network, or stored in a database. Serialization allows objects to be persisted and transferred between + different systems and platforms. The serialized object can be deserialized back into an object to restore its state + and properties. + + Java provides the `Serializable` interface, which is used to mark classes as serializable. Classes that implement the + `Serializable` interface can be serialized and deserialized using the `ObjectOutputStream` and `ObjectInputStream` + classes. + + Here is an example of serializing and deserializing an object: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + // Serialize object + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.ser"))) { + MyClass obj = new MyClass(); + out.writeObject(obj); + } catch (IOException e) { + e.printStackTrace(); + } + + // Deserialize object + try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("object.ser"))) { + MyClass obj = (MyClass) in.readObject(); + System.out.println(obj); + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); + } + } + } + + class MyClass implements Serializable { + private static final long serialVersionUID = 1L; + } + ``` + + In this example, the `MyClass` object is serialized to a file named `object.ser` using an `ObjectOutputStream`. The + object is then deserialized back into an object using an `ObjectInputStream` and printed to the console. +- **128 . How do you serialize an object using serializable interface?** \ + To serialize an object in Java using the `Serializable` interface, follow these steps: + + 1. Implement the `Serializable` interface in the class that you want to serialize. The `Serializable` interface is a + marker interface that indicates that the class can be serialized. + + 2. Create an instance of the `ObjectOutputStream` class and pass it a `FileOutputStream` or other output stream to + write the serialized object to a file or other destination. + + 3. Call the `writeObject` method on the `ObjectOutputStream` instance and pass the object that you want to serialize + as an argument. + + 4. Close the `ObjectOutputStream` to flush the output stream and release any system resources. + + Here is an example of serializing an object using the `Serializable` interface: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.ser"))) { + MyClass obj = new MyClass(); + out.writeObject(obj); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + class MyClass implements Serializable { + private static final long serialVersionUID = 1L; + } + ``` + + In this example, the `MyClass` object is serialized to a file named `object.ser` using an `ObjectOutputStream`. The + `MyClass` class implements the `Serializable` interface, which allows it to be serialized and written to the output + stream. +- **129 . How do you de-serialize in Java?** \ + To deserialize an object in Java, follow these steps: + + 1. Create an instance of the `ObjectInputStream` class and pass it a `FileInputStream` or other input stream to read + the serialized object from a file or other source. + + 2. Call the `readObject` method on the `ObjectInputStream` instance to read the serialized object from the input + stream. + + 3. Cast the returned object to the appropriate class type to restore the object's state and properties. + + 4. Close the `ObjectInputStream` to release any system resources. + + Here is an example of deserializing an object in Java: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("object.ser"))) { + MyClass obj = (MyClass) in.readObject(); + System.out.println(obj); + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); + } + } + } + + class MyClass implements Serializable { + private static final long serialVersionUID = 1L; + } + ``` + + In this example, the `MyClass` object is deserialized from a file named `object.ser` using an `ObjectInputStream`. The + serialized object is read from the input stream and cast to the `MyClass` class type to restore its state and + properties. +- **130 . What do you do if only parts of the object have to be serialized?** \ + If only parts of an object need to be serialized in Java, you can use the `transient` keyword to mark fields that + should not be serialized. The `transient` keyword tells the JVM to skip the serialization of the marked field and + exclude it from the serialized object. + + Here is an example of using the `transient` keyword to exclude fields from serialization: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.ser"))) { + MyClass obj = new MyClass(); + out.writeObject(obj); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + class MyClass implements Serializable { + private static final long serialVersionUID = 1L; + private transient int x = 10; + private int y = 20; + + @Override + public String toString() { + return "MyClass{" + + "x=" + x + + ", y=" + y + + '}'; + } + } + ``` + + In this example, the `x` field is marked as `transient` in the `MyClass` class, which excludes it from serialization. + When the `MyClass` object is serialized, the `x` field is skipped, and only the `y` field is serialized and + deserialized. +- **131 . How do you serialize a hierarchy of objects?** \ + To serialize a hierarchy of objects in Java, follow these steps: + + 1. Implement the `Serializable` interface in all classes in the hierarchy that need to be serialized. The + `Serializable` interface is a marker interface that indicates that the class can be serialized. + + 2. Create an instance of the `ObjectOutputStream` class and pass it a `FileOutputStream` or other output stream to + write the serialized objects to a file or other destination. + + 3. Call the `writeObject` method on the `ObjectOutputStream` instance and pass the root object of the hierarchy that + you want to serialize. + + 4. Close the `ObjectOutputStream` to flush the output stream and release any system resources. + + Here is an example of serializing a hierarchy of objects in Java: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.ser"))) { + Parent parent = new Parent(); + parent.child = new Child(); + out.writeObject(parent); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + class Parent implements Serializable { + private static final long serialVersionUID = 1L; + Child child; + } + + class Child implements Serializable { + private static final long serialVersionUID = 1L; + } + ``` + + In this example, the `Parent` and `Child` classes implement the `Serializable` interface, allowing them to be + serialized. The `Parent` class contains a reference to a `Child` object, creating a hierarchy of objects that can be + serialized and deserialized. +- **132 . Are the constructors in an object invoked when it is de-serialized?** \ + When an object is deserialized in Java, the constructors of the object are not invoked. Instead, the object is + restored from the serialized form, and its state and properties are reconstructed based on the serialized data. The + deserialization process uses the serialized data to recreate the object's state without calling the constructor. + + If the class being deserialized has a `readObject` method, the `readObject` method is called during deserialization to + restore the object's state. The `readObject` method can be used to perform custom deserialization logic and initialize + transient fields that were excluded from serialization. + + Here is an example of deserializing an object in Java without invoking the constructor: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("object.ser"))) { + MyClass obj = (MyClass) in.readObject(); + System.out.println(obj); + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); + } + } + } + + class MyClass implements Serializable { + private static final long serialVersionUID = 1L; + + public MyClass() { + System.out.println("Constructor called"); + } + + @Override + public String toString() { + return "MyClass{}"; + } + } + ``` +- **133 . Are the values of static variables stored when an object is serialized?** \ + When an object is serialized in Java, the values of static variables are not stored as part of the serialized object. + Static variables are associated with the class itself rather than individual instances of the class, so they are not + serialized along with the object. When an object is deserialized, the static variables are initialized based on the + class definition and are not restored from the serialized data. + + Here is an example that demonstrates that static variables are not stored when an object is serialized: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.ser"))) { + MyClass obj = new MyClass(); + out.writeObject(obj); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + class MyClass implements Serializable { + private static final long serialVersionUID = 1L; + private static int x = 10; + + @Override + public String toString() { + return "MyClass{" + + "x=" + x + + '}'; + } + } + ``` + + In this example, the `MyClass` object is serialized to a file named `object.ser`, but the value of the `x` static + variable is not stored as part of the serialized object. When the object is deserialized, the `x` static variable is + initialized based on the class definition and is not restored from the serialized data. ### Collections -- **134 . Why do we need collections in Java? ** \ +- **134 . Why do we need collections in Java?** \ Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to organize and manage data in a structured and efficient manner. Collections offer a wide range of data structures and algorithms that can be used to perform common operations like searching, sorting, and iterating over elements. By @@ -2119,7 +2840,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce various operations. - **Flexibility**: Collections offer a wide range of data structures and interfaces that can be used to meet different requirements and use cases. -- **135 . What are the important interfaces in the collection hierarchy? ** \ +- **135 . What are the important interfaces in the collection hierarchy?** \ The Java Collections Framework provides a set of interfaces that define the core functionality of collections in Java. Some of the important interfaces in the collection hierarchy include: @@ -2142,7 +2863,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce pairs in a map. These interfaces define common methods and behaviors that are shared by different types of collections in Java. -- **136 . What are the important methods that are declared in the collection interface? ** \ +- **136 . What are the important methods that are declared in the collection interface?** \ The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the interface. Some of the important methods declared in the `Collection` interface include: @@ -2164,7 +2885,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce These methods provide basic functionality for working with collections in Java and are implemented by classes that implement the `Collection` interface. -- **137 . Can you explain briefly about the List interface? ** \ +- **137 . Can you explain briefly about the List interface?** \ The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements that allows duplicates. Lists maintain the insertion order of elements and provide methods for accessing, adding, removing, and updating elements at specific positions. Some of the key features of the `List` interface include: @@ -2179,7 +2900,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The `List` interface is implemented by classes like `ArrayList`, `LinkedList`, and `Vector` in the Java Collections Framework. It provides a flexible and efficient way to work with ordered collections of elements. -- **138 . Explain about ArrayList with an example? ** \ +- **138 . Explain about ArrayList with an example?** \ The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic resizing, fast random access, and efficient insertion and deletion of elements. `ArrayList` is part of the Java Collections Framework and is commonly used to store and manipulate collections of objects. @@ -2215,12 +2936,12 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, an `ArrayList` of integers is created, and elements are added, accessed, and removed from the list. The `ArrayList` class provides a flexible and efficient way to work with collections of objects in Java. -- **139 . Can an ArrayList have duplicate elements? ** \ +- **139 . Can an ArrayList have duplicate elements?** \ Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an `ArrayList` allows elements to be added multiple times. This means that an `ArrayList` can contain duplicate elements at different positions in the list. The order of elements in an `ArrayList` is maintained, so duplicate elements will appear in the list in the order in which they were added. -- **140 . How do you iterate around an ArrayList using iterator? ** \ +- **140 . How do you iterate around an ArrayList using iterator?** \ To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the `ArrayList` class. The `iterator` method returns an `Iterator` object that can be used to traverse the elements in the list. Here is an example: @@ -2251,7 +2972,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, an `ArrayList` of strings is created, and an iterator is obtained using the `iterator` method. The iterator is then used to iterate over the elements in the list and print them to the console. -- **141 . How do you sort an ArrayList? ** \ +- **141 . How do you sort an ArrayList?** \ To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections` class. The `Collections.sort` method sorts the elements in the list in ascending order based on their natural order or a custom comparator. Here is an example: @@ -2281,7 +3002,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, an `ArrayList` of integers is created, and the `Collections.sort` method is used to sort the elements in the list. The sorted elements are then printed to the console in ascending order. -- **142 . How do you sort elements in an ArrayList using comparable interface? ** \ +- **142 . How do you sort elements in an ArrayList using comparable interface?** \ To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable` interface in the class of the elements you want to sort. The `Comparable` interface defines a `compareTo` method that compares the current object with another object and returns a negative, zero, or positive value based on their @@ -2326,7 +3047,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, the `Person` class implements the `Comparable` interface and defines a `compareTo` method that compares `Person` objects based on their age. The `Collections.sort` method is then used to sort the `ArrayList` of `Person` objects based on their age. -- **143 . How do you sort elements in an ArrayList using comparator interface? ** \ +- **143 . How do you sort elements in an ArrayList using comparator interface?** \ To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator class that implements the `Comparator` interface. The `Comparator` interface defines a `compare` method that compares two objects and returns a negative, zero, or positive value based on their ordering. Here is an example: @@ -2373,7 +3094,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, a custom comparator class is created using the `Comparator.comparing` method to sort `Person` objects based on their name. The `Collections.sort` method is then used to sort the `ArrayList` of `Person` objects using the custom comparator. -- **144 . What is vector class? How is it different from an ArrayList? ** \ +- **144 . What is vector class? How is it different from an ArrayList?** \ The `Vector` class in Java is a legacy collection class that is similar to an `ArrayList` but is synchronized. This means that access to a `Vector` is thread-safe, making it suitable for use in multi-threaded environments. The `Vector` class provides methods for adding, removing, and accessing elements in the list, as well as for iterating @@ -2390,7 +3111,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce Despite these differences, both `Vector` and `ArrayList` provide similar functionality for working with collections of objects in Java. -- **145 . What is linkedList? What interfaces does it implement? How is it different from an ArrayList? ** \ +- **145 . What is linkedList? What interfaces does it implement? How is it different from an ArrayList?** \ The `LinkedList` class in Java is a doubly-linked list implementation of the `List` interface. It provides efficient insertion and deletion of elements at the beginning, middle, and end of the list. `LinkedList` implements the `List`, `Deque`, and `Queue` interfaces, making it suitable for a wide range of operations. @@ -2407,7 +3128,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce Despite these differences, both `LinkedList` and `ArrayList` provide similar functionality for working with collections of objects in Java, and the choice between them depends on the specific requirements of the application. -- **146 . Can you briefly explain about the Set interface? ** \ +- **146 . Can you briefly explain about the Set interface?** \ The `Set` interface in Java extends the `Collection` interface and represents a collection of unique elements with no duplicates. Sets do not allow duplicate elements, and they maintain no specific order of elements. The `Set` interface provides methods for adding, removing, and checking the presence of elements in the set. @@ -2424,7 +3145,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The `Set` interface is commonly used to store collections of unique elements and perform operations like union, intersection, and difference on sets. It provides a flexible and efficient way to work with sets of objects in Java. -- **147 . What are the important interfaces related to the Set interface? ** \ +- **147 . What are the important interfaces related to the Set interface?** \ The `Set` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with sets of elements. Some of the important interfaces related to the `Set` interface include: @@ -2438,7 +3159,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce These interfaces build on the functionality provided by the `Set` interface and offer additional features for working with sets of elements in Java. -- **148 . What is the difference between Set and sortedSet interfaces? ** \ +- **148 . What is the difference between Set and sortedSet interfaces?** \ The `Set` and `SortedSet` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of unique elements with no duplicates. The main difference between `Set` and `SortedSet` is the ordering of elements: @@ -2453,7 +3174,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In summary, `Set` is a general interface for collections of unique elements, while `SortedSet` is a specialized interface for sets that maintain the order of elements based on a specific ordering. -- **149 . Can you give examples of classes that implement the Set interface? ** \ +- **149 . Can you give examples of classes that implement the Set interface?** \ The `Set` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of sets. Some of the common classes that implement the `Set` interface include: @@ -2467,7 +3188,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce These classes provide different implementations of sets with varying performance characteristics and ordering guarantees. -- **150 . What is a HashSet? How is it different from a TreeSet? ** \ +- **150 . What is a HashSet? How is it different from a TreeSet?** \ `HashSet` and `TreeSet` are two common implementations of the `Set` interface in Java that provide different characteristics for working with sets of elements. The main differences between `HashSet` and `TreeSet` include: @@ -2484,7 +3205,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In summary, `HashSet` is a hash-based set implementation with no ordering guarantees, while `TreeSet` is a tree-based set implementation that maintains the order of elements based on their natural ordering or a custom comparator. -- **151 . What is a linkedHashSet? How is different from a HashSet? ** \ +- **151 . What is a linkedHashSet? How is different from a HashSet?** \ `LinkedHashSet` is a class in Java that extends `HashSet` and maintains the order of elements based on their insertion order. Unlike `HashSet`, which does not maintain the order of elements, `LinkedHashSet` provides predictable iteration order and constant-time performance for basic operations. `LinkedHashSet` is implemented using a hash table with a @@ -2501,7 +3222,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In summary, `LinkedHashSet` is a hash-based set implementation that maintains the order of elements based on their insertion order, providing predictable iteration order and constant-time performance for basic operations. -- **152 . What is a TreeSet? How is different from a HashSet? ** \ +- **152 . What is a TreeSet? How is different from a HashSet?** \ `TreeSet` is a class in Java that implements the `SortedSet` interface using a red-black tree data structure. `TreeSet` maintains the order of elements based on their natural ordering or a custom comparator, allowing elements to be sorted @@ -2519,7 +3240,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In summary, `TreeSet` is a tree-based set implementation that maintains the order of elements based on their natural ordering or a custom comparator, providing efficient sorting and range query operations. `HashSet` is a hash-based set implementation with no ordering guarantees. -- **153 . Can you give examples of implementations of navigableSet? ** \ +- **153 . Can you give examples of implementations of navigableSet?** \ The `NavigableSet` interface in Java is implemented by the `TreeSet` and `ConcurrentSkipListSet` classes in the Java Collections Framework. These classes provide implementations of navigable sets that support navigation methods for accessing elements in a set. Some examples of implementations of `NavigableSet` include: @@ -2533,7 +3254,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce These classes provide efficient and flexible implementations of navigable sets that allow elements to be accessed, added, and removed based on their order in the set. -- **154 . Explain briefly about Queue interface? ** \ +- **154 . Explain briefly about Queue interface?** \ The `Queue` interface in Java represents a collection of elements in a specific order for processing. Queues follow the First-In-First-Out (FIFO) order, meaning that elements are added to the end of the queue and removed from the front of the queue. The `Queue` interface provides methods for adding, removing, and accessing elements in the queue, @@ -2551,7 +3272,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The `Queue` interface is commonly used to represent collections of elements that need to be processed in a specific order, such as tasks in a job queue or messages in a message queue. It provides a flexible and efficient way to work with queues of objects in Java. -- **155 . What are the important interfaces related to the Queue interface? ** \ +- **155 . What are the important interfaces related to the Queue interface?** \ The `Queue` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with queues of elements. Some of the important interfaces related to the `Queue` interface include: @@ -2566,7 +3287,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce These interfaces build on the functionality provided by the `Queue` interface and offer additional features for working with queues of elements in Java. -- **156 . Explain about the Deque interface? ** \ +- **156 . Explain about the Deque interface?** \ The `Deque` interface in Java represents a double-ended queue that allows elements to be added or removed from both ends. Deques provide methods for adding, removing, and accessing elements at the front and back of the queue, making them suitable for a wide range of operations. The `Deque` interface extends the `Queue` interface and provides @@ -2584,7 +3305,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The `Deque` interface is commonly used to represent double-ended queues that require efficient insertion and removal of elements at both ends. It provides a flexible and efficient way to work with double-ended queues of objects in Java. -- **157 . Explain the BlockingQueue interface? ** \ +- **157 . Explain the BlockingQueue interface?** \ The `BlockingQueue` interface in Java represents a queue that supports blocking operations for adding and removing elements. Blocking queues provide methods for waiting for elements to become available or space to become available in the queue, allowing threads to block until the desired condition is met. The `BlockingQueue` interface extends the @@ -2604,7 +3325,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The `BlockingQueue` interface is commonly used in multi-threaded applications to coordinate the processing of elements between producer and consumer threads. It provides a flexible and efficient way to work with blocking queues of objects in Java. -- **158 . What is a priorityQueue? How is it different from a normal queue? ** \ +- **158 . What is a priorityQueue? How is it different from a normal queue?** \ `PriorityQueue` is a class in Java that implements the `Queue` interface using a priority heap data structure. Unlike a normal queue, which follows the First-In-First-Out (FIFO) order, a `PriorityQueue` maintains elements in a priority order based on their natural ordering or a custom comparator. Elements with higher priority are dequeued before @@ -2624,7 +3345,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce while a normal queue follows the FIFO order. `PriorityQueue` is commonly used in applications that require elements to be processed based on their priority level. -- **159 . Can you give example implementations of the BlockingQueue interface? ** \ +- **159 . Can you give example implementations of the BlockingQueue interface?** \ The `BlockingQueue` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of blocking queues. Some examples of implementations of `BlockingQueue` include: @@ -2643,7 +3364,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce These classes provide different implementations of blocking queues with varying characteristics and performance guarantees. They are commonly used in multi-threaded applications to coordinate the processing of elements between producer and consumer threads. -- **160 . Can you briefly explain about the Map interface? ** \ +- **160 . Can you briefly explain about the Map interface?** \ The `Map` interface in Java represents a collection of key-value pairs where each key is unique and maps to a single value. Maps provide methods for adding, removing, and accessing key-value pairs, as well as for checking the presence of keys or values. The `Map` interface does not extend the `Collection` interface and provides a separate set of @@ -2661,7 +3382,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The `Map` interface is commonly used to store and manipulate key-value pairs in Java, providing a flexible and efficient way to work with mappings of objects. -- **161 . What is difference between Map and SortedMap? ** \ +- **161 . What is difference between Map and SortedMap?** \ The `Map` and `SortedMap` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of key-value pairs. The main difference between `Map` and `SortedMap` is the ordering of keys: @@ -2675,7 +3396,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In summary, `Map` is a general interface for collections of key-value pairs, while `SortedMap` is a specialized interface for maps that maintain the order of keys based on a specific ordering. -- **162 . What is a HashMap? How is it different from a TreeMap? ** \ +- **162 . What is a HashMap? How is it different from a TreeMap?** \ `HashMap` and `TreeMap` are two common implementations of the `Map` interface in Java that provide different characteristics for working with key-value pairs. The main differences between `HashMap` and `TreeMap` include: @@ -2696,7 +3417,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce map implementation that maintains the order of keys based on their natural ordering or a custom comparator. `HashMap` is commonly used in applications that require fast access to key-value pairs, while `TreeMap` is used when keys need to be sorted in a specific order. -- **163 . What are the different methods in a Hash Map? ** \ +- **163 . What are the different methods in a Hash Map?** \ The `HashMap` class in Java provides a variety of methods for working with key-value pairs stored in a hash table data structure. Some of the common methods provided by the `HashMap` class include: @@ -2713,7 +3434,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce - **`entrySet()`**: Returns a set of key-value pairs in the map. These methods provide a flexible and efficient way to work with key-value pairs stored in a `HashMap` in Java. - - **164 . What is a TreeMap? How is different from a HashMap? ** \ + - **164 . What is a TreeMap? How is different from a HashMap?** \ `TreeMap` is a class in Java that implements the `SortedMap` interface using a red-black tree data structure. `TreeMap` maintains the order of keys based on their natural ordering or a custom comparator, allowing keys to be sorted in @@ -2742,7 +3463,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce ordering or a custom comparator, while `HashMap` is a hash-based map implementation with no ordering guarantees. `TreeMap` is commonly used in applications that require keys to be sorted in a specific order. `HashMap` is used when a fast access to key-value pairs is required. -- **165 . Can you give an example of implementation of NavigableMap interface? ** \ +- **165 . Can you give an example of implementation of NavigableMap interface?** \ The `NavigableMap` interface in Java is implemented by the `TreeMap` class in the Java Collections Framework. `TreeMap` provides a navigable map of key-value pairs sorted in a specific order, allowing elements to be accessed, added, and @@ -2782,7 +3503,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, a `NavigableMap` is created using a `TreeMap` and key-value pairs are added to the map. The key-value pairs are then printed in ascending order and descending order using the `keySet` and `descendingKeySet` methods of the `NavigableMap` interface. -- **166 . What are the static methods present in the collections class? ** \ +- **166 . What are the static methods present in the collections class?** \ The `Collections` class in Java provides a variety of static methods for working with collections in the Java Collections Framework. Some of the common static methods provided by the `Collections` class include: @@ -2803,7 +3524,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce ### Advanced collections -- **167 . What is the difference between synchronized and concurrent collections in Java? ** \ +- **167 . What is the difference between synchronized and concurrent collections in Java?** \ Synchronized collections and concurrent collections in Java are two approaches to handling thread safety in multi-threaded applications. The main difference between synchronized and concurrent collections is how they achieve thread safety: @@ -2833,7 +3554,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In general, concurrent collections are preferred for high-concurrency scenarios where performance and scalability are important. Synchronized collections are suitable for simpler applications where thread safety is required but high-concurrency is not a concern. -- **168 . Explain about the new concurrent collections in Java? ** \ +- **168 . Explain about the new concurrent collections in Java?** \ Java provides a set of concurrent collections in the `java.util.concurrent` package that are designed for high concurrency and thread safety in multi-threaded applications. Some of the new concurrent collections introduced in Java include: @@ -2859,7 +3580,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce providing built-in thread safety and high concurrency support. They are suitable for scenarios where multiple threads need to access and modify collections concurrently. -- **169 . Explain about copyOnWrite concurrent collections approach? ** \ +- **169 . Explain about copyOnWrite concurrent collections approach?** \ The copy-on-write (COW) approach is a concurrency control technique used in Java to provide thread-safe access to collections. In the copy-on-write approach, a new copy of the collection is created whenever a modification is made, ensuring that the original collection remains unchanged and can be safely accessed by other threads. This approach @@ -2878,7 +3599,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The copy-on-write approach is commonly used in scenarios where high concurrency and thread safety are required, such as in read-heavy workloads or applications with multiple readers and few writers. It provides a simple and efficient way to achieve thread safety without the need for explicit synchronization. -- **170 . What is compareAndSwap approach? ** \ +- **170 . What is compareAndSwap approach?** \ The compare-and-swap (CAS) operation is an atomic operation used in concurrent programming to implement lock-free algorithms and data structures. The CAS operation allows a thread to update a value in memory if it matches an expected @@ -2893,7 +3614,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce that allow multiple threads to access and modify shared data without the risk of data corruption or lost updates. CAS is a key building block for implementing efficient and scalable concurrent algorithms in Java and other programming languages. -- **171 . What is a lock? How is it different from using synchronized approach? ** \ +- **171 . What is a lock? How is it different from using synchronized approach?** \ A lock is a synchronization mechanism used in Java to control access to shared resources in multi-threaded applications. Locks provide a way to coordinate the execution of threads and ensure that only one thread can access a shared resource at a time. Locks are more flexible and powerful than the `synchronized` keyword in Java and provide @@ -2914,7 +3635,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In general, locks are more flexible and powerful than the `synchronized` keyword and provide additional features for managing concurrency in multi-threaded applications. Locks are commonly used in scenarios where fine-grained control over synchronization is required or when additional features like reentrant locking or condition variables are needed. -- **172 . What is initial capacity of a Java collection? ** \ +- **172 . What is initial capacity of a Java collection?** \ The initial capacity of a Java collection refers to the number of elements that the collection can initially store before resizing is required. When a collection is created, an initial capacity is specified to allocate memory for storing elements. If the number of elements exceeds the initial capacity, the collection is resized to accommodate @@ -3040,7 +3761,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce Generics are an important feature of the Java language that provide a way to create flexible, reusable, and type-safe code. They are commonly used in collections, data structures, and algorithms to work with generic types and improve code quality. -- **179 . Why do we need Generics? Can you give an example of how Generics make a program more flexible? ** \ +- **179 . Why do we need Generics? Can you give an example of how Generics make a program more flexible?** \ Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics provide a way to create reusable and type-safe code by allowing classes and methods to work with generic types that are specified at compile time. Generics enable the creation of classes, interfaces, and methods that can work with @@ -3083,7 +3804,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce parameterized by two types `T` and `U`, allowing it to work with different types of values. This flexibility makes the `Pair` class more generic and reusable, allowing it to store pairs of values of different types without sacrificing type safety. -- **180 . How do you declare a generic class? ** \ +- **180 . How do you declare a generic class?** \ A generic class in Java is declared by specifying one or more type parameters in angle brackets (`<>`) after the class name. The type parameters are used to represent generic types that can be specified at compile time when creating instances of the class. Here is an example of declaring a generic class in Java: @@ -3114,7 +3835,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce type specified by the type parameter `T`. Instances of the `Box` class are created by specifying the type parameter when creating the instance, such as `Box` or `Box System.out.println(name)`. Method references provide a concise and readable way to refer to methods in streams and other functional programming constructs in Java. -- **214 . What are lambda expressions? How are they used in streams? ** \ +- **214 . What are lambda expressions? How are they used in streams?** \ Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent functions and enable functional programming paradigms in Java. Lambda expressions are used in streams to define @@ -3917,7 +4638,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce the `Stream` interface to square each element in the list. The result is then printed to the console using the `forEach` method. Lambda expressions provide a concise and expressive way to define operations on stream elements in Java. -- **215 . Can you give an example of lambda expression? ** \ +- **215 . Can you give an example of lambda expression?** \ Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent functions and enable functional programming paradigms in Java. @@ -3943,7 +4664,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, a lambda expression `(a, b) -> a + b` is used to define a function that adds two numbers. The lambda expression is assigned to a functional interface `MathOperation` that defines a method `operate` to perform the operation. The lambda expression is then used to add two numbers and print the result to the console. -- **216 . Can you explain the relationship between lambda expression and functional interfaces? ** \ +- **216 . Can you explain the relationship between lambda expression and functional interfaces?** \ Lambda expressions in Java are closely related to functional interfaces, which are interfaces that have exactly one abstract method. Lambda expressions can be used to provide an implementation for the abstract method of a functional interface, allowing you to define anonymous functions or blocks of code that can be passed as arguments to methods or @@ -3971,7 +4692,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce expression is assigned to a functional interface `MathOperation` that defines a method `operate` to perform the operation. The lambda expression provides an implementation for the abstract method of the functional interface, allowing you to define and use anonymous functions in Java. -- **217 . What is a predicate? ** \ +- **217 . What is a predicate?** \ A predicate in Java is a functional interface that represents a boolean-valued function of one argument. Predicates are commonly used in functional programming to define conditions or filters that can be applied to elements in a @@ -4028,7 +4749,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, a function `square` is defined to square a number. The function is assigned to a `Function` interface that accepts an integer and produces an integer. The function is then applied to a number using the `apply` method to calculate the square and print the result to the console. -- **219 . What is a consumer? ** \ +- **219 . What is a consumer?** \ A consumer in Java is a functional interface that represents an operation that accepts a single input argument and returns no result. Consumers are commonly used in functional programming to perform side effects or actions on elements @@ -4054,7 +4775,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, a consumer `printMessage` is defined to print a message. The consumer is assigned to a `Consumer` interface that accepts a string and performs the operation to print the message. The consumer is then used to accept the message and print it to the console. -- **220 . Can you give examples of functional interfaces with multiple arguments? ** \ +- **220 . Can you give examples of functional interfaces with multiple arguments?** \ Functional interfaces in Java can have multiple arguments by defining methods with multiple parameters. You can create functional interfaces with multiple arguments by specifying the number of input arguments in the method signature and using lambda expressions to provide implementations for the method. From 4a2812798458a251dca8a7d303df7c79d08b2cbe Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Fri, 6 Dec 2024 19:40:09 -0600 Subject: [PATCH 09/14] More changes --- readme.md | 992 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 856 insertions(+), 136 deletions(-) diff --git a/readme.md b/readme.md index 0b03c03..ed1c93a 100644 --- a/readme.md +++ b/readme.md @@ -123,17 +123,16 @@ Available in the resources for the course which is not possible with primitive types. - 5. **Type Safety**: Wrapper classes enable type safety in generic programming, ensuring that only the correct - type - of objects are used. + type of objects are used. - **9 . What are the different ways of creating Wrapper class instances?** There are two main ways to create instances of Wrapper classes in Java: - - a). **Using Constructors**: + - 1. **Using Constructors**: Each wrapper class has a constructor that takes a primitive type or a String as an argument. ```java - Integer intObj1 = new Integer(10); - Integer intObj2 = new Integer("10"); + Integer intObj1 = 10; + Integer intObj2 = Integer.valueOf("10"); ``` - - b). **Using Static Factory Methods**: + - 2. **Using Static Factory Methods**: The wrapper classes provide static factory methods like `valueOf` to create instances. ```java Integer intObj1 = 10; @@ -261,13 +260,20 @@ Available in the resources for the course Example using `StringBuilder`: ```java - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < 10; i++) { - sb.append(i); + public class Main { + public static void main(String[] args) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < 10; i++) { + sb.append(i); + } + String result = sb.toString(); + System.out.println(result); + } } - String result = sb.toString(); ``` - + In this example, a `StringBuilder` is used to concatenate integers in a loop, and the final result is obtained by + calling the `toString` method. This approach is more efficient than using the `+` operator with `String` objects in a + loop. - **20 . What are the differences between `String` and `StringBuffer`?** - **Mutability**: `String` objects are immutable, meaning their values cannot be changed once created. `StringBuffer` objects are mutable, allowing their values to be modified. @@ -1321,7 +1327,8 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce - **70 . What access types of variables can be accessed from a class in different package?** \ In Java, a class in a different package can access the following types of variables: - **Public Variables**: Public variables can be accessed by any class in any package. - - **Protected Variables**: Protected variables can be accessed by subclasses in any package, but not by non-subclasses + - **Protected Variables**: Protected variables can be accessed by subclasses in any package, but not by + non-subclasses in different packages. - **Default (Package-Private) Variables**: Default variables cannot be accessed by classes in different packages. - **Private Variables**: Private variables cannot be accessed by any other class, even in a different package. @@ -1335,7 +1342,8 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce - **72 . What access types of variables can be accessed from a sub class in different package?** \ In Java, a subclass in a different package can access the following types of variables: - **Public Variables**: Public variables can be accessed by any class in any package. - - **Protected Variables**: Protected variables can be accessed by subclasses in any package, but not by non-subclasses + - **Protected Variables**: Protected variables can be accessed by subclasses in any package, but not by + non-subclasses in different packages. - **Default (Package-Private) Variables**: \Default variables cannot be accessed by classes in different packages. - **Private Variables**: Private variables cannot be accessed by any other class, even in a different package. @@ -1447,7 +1455,8 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce - **79 . Why should you always use blocks around if statement?** \ It is a good practice to always use blocks around `if` statements in Java to improve code readability and avoid potential bugs. When an `if` statement is not enclosed in a block, only the next statement is considered part of the - `if` block. This can lead to confusion and errors if additional statements are added later. By using blocks around `if` + `if` block. This can lead to confusion and errors if additional statements are added later. By using blocks around + `if` statements, you make it clear which statements are part of the conditional block and reduce the risk of errors. - **80 . Guess the output**\ Here is an example to guess the output: @@ -1463,14 +1472,14 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce } } ``` - The output of this program will be: + The output of this program will be: ```ruby x = 6 y = 11 z = 16 ``` - **81 . Guess the output**\ - Here is an example to guess the output: + Here is an example to guess the output: ```java public class GuessOutput { public static void main(String[] args) { @@ -1483,14 +1492,14 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce } } ``` - The output of this program will be: + The output of this program will be: ```ruby a = 2 b = 6 c = -3 ``` - **82 . Guess the output of this switch block**\ - Here is an example to guess the output: + Here is an example to guess the output: ```java public class GuessOutput { public static void main(String[] args) { @@ -1526,12 +1535,12 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce } } ``` - The output of this program will be: + The output of this program will be: ```ruby Wednesday ``` - **83 . Guess the output of this switch block?** \ - Here is an example to guess the output: + Here is an example to guess the output: ```java public class GuessOutput { public static void main(String[] args) { @@ -1553,7 +1562,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce } } ``` - The output of this program will be: + The output of this program will be: ```ruby Five Default @@ -1563,7 +1572,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce optional and can be placed anywhere within the `switch` statement. It is typically used as a catch-all case for values that do not match any of the other cases. Placing the `default` case at the end of the `switch` statement is a common practice to make it easier to identify and handle unexpected values, but it is not required. - By example: + By example: ```java public class Example { public static void main(String[] args) { @@ -1585,8 +1594,8 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce } } ``` - In this example, the `default` case is placed before the `case 3` statement. This is valid Java syntax, and the - `default` case will be executed if the value of `x` does not match any of the other cases. + In this example, the `default` case is placed before the `case 3` statement. This is valid Java syntax, and the + `default` case will be executed if the value of `x` does not match any of the other cases. - **85 . Can a switch statement be used around a String** \ Yes, a `switch` statement can be used with a `String` in Java starting from Java 7. Prior to Java 7, `switch` statements only supported `int`, `byte`, `short`, `char`, and `enum` types. With the introduction of the `String` @@ -1709,7 +1718,8 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce them from causing the program to fail. - **Debugging**: Exception handling provides a way to catch and log errors, making it easier to debug and diagnose issues in the code. - - **Maintainability**: Exception handling improves the maintainability of the code by separating error-handling logic + - **Maintainability**: Exception handling improves the maintainability of the code by separating error-handling + logic from the main program logic. This makes the code easier to read, understand, and modify. - **Security**: Exception handling can help prevent security vulnerabilities by handling errors and exceptions that could be exploited by malicious users. @@ -1789,7 +1799,8 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce `finally` block may not be executed. - **StackOverflowError**: If a `StackOverflowError` occurs in the `try` or `catch` block, the code in the `finally` block may not be executed. - - **OutOfMemoryError**: If an `OutOfMemoryError` occurs in the `try` or `catch` block, the code in the `finally` block + - **OutOfMemoryError**: If an `OutOfMemoryError` occurs in the `try` or `catch` block, the code in the `finally` + block may not be executed. - **95 . Will finally be executed in the program below?** \ Here is an example to determine if the `finally` block will be executed: @@ -1858,15 +1869,19 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce the exception handling hierarchy are: - **Throwable**: The `Throwable` class is the root class of the exception hierarchy. It has two main subclasses: - - **Error**: Errors are serious issues that are typically outside the control of the program and indicate problems + - **Error**: Errors are serious issues that are typically outside the control of the program and indicate + problems with the environment in which the application is running. Examples include `OutOfMemoryError`, `StackOverflowError`, and `VirtualMachineError`. - - **Exception**: Exceptions are conditions that a program might want to catch and handle. They are divided into two + - **Exception**: Exceptions are conditions that a program might want to catch and handle. They are divided into + two main categories: - - **Checked Exceptions**: These are exceptions that are checked at compile-time. The programmer is required to + - **Checked Exceptions**: These are exceptions that are checked at compile-time. The programmer is required + to handle these exceptions, either by using a `try-catch` block or by declaring them in the method signature using the `throws` keyword. Examples include `IOException`, `SQLException`, and `FileNotFoundException`. - - **Unchecked Exceptions**: These are exceptions that are not checked at compile-time but occur during runtime. + - **Unchecked Exceptions**: These are exceptions that are not checked at compile-time but occur during + runtime. They are subclasses of `RuntimeException` and do not need to be declared or caught. Examples include `NullPointerException`, `ArrayIndexOutOfBoundsException`, and `IllegalArgumentException`. @@ -1921,15 +1936,146 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce handling or declaring the exception. 5. **Use a Lambda Expression**: Use a lambda expression to handle the exception in a functional interface that does not declare checked exceptions. -- **104 . How do you create a custom exception?** -- **105 . How do you handle multiple exception types with same exception handling block?** -- **106 . Can you explain about try with resources?** -- **107 . How does try with resources work?** -- **108 . Can you explain a few exception handling best practices?** +- **104 . How do you create a custom exception?** \ + To create a custom exception in Java, you need to define a new class that extends the `Exception` class or one of its + subclasses. You can add custom fields, constructors, and methods to the custom exception class to provide additional + information about the exception. + + Here is an example of a custom exception class: + + ```java + public class CustomException extends Exception { + public CustomException(String message) { + super(message); + } + } + ``` + + In this example, the `CustomException` class extends the `Exception` class and provides a constructor that takes a + message as an argument. This allows you to create custom exceptions with a specific error message. You can also add + the related mechanisms to handle the new custom exception to provide a more detailed error message, and also + use the adequate processing of the exception by the logging system or the user interface. + Note: most of the time all the exceptions and custom exceptions are sent to the logging system, and the user + interface. The most popular is to log the exceptions using log4j or derivative logging systems like external logging + apis for Splunk or ELK. Splunk is a popular tool for monitoring, searching, and analyzing machine-generated big data, +- **105 . How do you handle multiple exception types with same exception handling block?** \ + In Java, you can handle multiple exception types with the same exception handling block by using a multi-catch block. + This allows you to catch multiple exceptions in a single `catch` block and handle them in a common way. The syntax for + a multi-catch block is to specify the exception types separated by a vertical bar (`|`). + + Here is an example of a multi-catch block: + + ```java + public class Example { + public static void main(String[] args) { + try { + // Code that may throw exceptions + int result = 10 / 0; + } catch (ArithmeticException | NullPointerException e) { + // Handle the exceptions + e.printStackTrace(); + } + } + } + ``` + + In this example, the `catch` block catches both `ArithmeticException` and `NullPointerException` exceptions and + handles + them in a common way. This can help reduce code duplication and improve the readability of the exception handling + code. +- **106 . Can you explain about try with resources?** \ + Try-with-resources is a feature introduced in Java 7 that simplifies resource management by automatically closing + resources that implement the `AutoCloseable` interface. It eliminates the need for explicit `finally` blocks to close + resources and ensures that resources are closed properly, even if an exception occurs. + + Here is an example of try-with-resources: + + ```java + public class Example { + public static void main(String[] args) { + try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) { + String line = reader.readLine(); + System.out.println(line); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + ``` + + In this example, the `try` block contains a `BufferedReader` resource that is automatically closed when the `try` + block exits. The `BufferedReader` class implements the `AutoCloseable` interface, which allows it to be used with + try-with-resources. If an `IOException` occurs while reading from the file, it is caught and handled in the `catch` + block. The `BufferedReader` resource is automatically closed when the `try` block exits, ensuring that resources are + released properly. + The big advantage of try-with-resources is that it simplifies resource management and reduces the risk of resource + leaks and other issues related to manual resource handling. +- **107 . How does try with resources work?** \ + Try-with-resources in Java works by automatically closing resources that implement the `AutoCloseable` interface when + the `try` block exits. It simplifies resource management by eliminating the need for explicit `finally` blocks to + close + resources and ensures that resources are closed properly, even if an exception occurs. + + When using try-with-resources, the resources are declared and initialized within the parentheses of the `try` + statement. + The resources are automatically closed in the reverse order of their declaration when the `try` block exits. If an + exception occurs during the execution of the `try` block, the resources are closed before the exception is propagated. + + Here is an example of try-with-resources: + + ```java + public class Example { + public static void main(String[] args) { + try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) { + String line = reader.readLine(); + System.out.println(line); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + ``` + + In this example, the `BufferedReader` resource is declared and initialized within the parentheses of the `try` + statement. The `BufferedReader` resource is automatically closed when the `try` block exits, ensuring that resources + are released properly. If an `IOException` occurs while reading from the file, it is caught and handled in the `catch` + block. The `BufferedReader` resource is still automatically closed before the exception is propagated. +- **108 . Can you explain a few exception handling best practices?** \ + Some exception handling best practices in Java include: + + - **Catch Specific Exceptions**: Catch specific exceptions rather than catching the general `Exception` class. This + allows you to handle different types of exceptions in a more targeted way. + - **Use try-with-resources**: Use try-with-resources to automatically close resources that implement the + `AutoCloseable` interface. This simplifies resource management and reduces the risk of resource leaks. + - **Log Exceptions**: Log exceptions using a logging framework like log4j or SLF4J to capture information about + errors and exceptions. This can help with debugging and diagnosing issues in the code. + - **Handle Exceptions Appropriately**: Handle exceptions appropriately based on the context and severity of the + error. This may involve logging the exception, displaying an error message to the user, or taking corrective + action. + - **Avoid Swallowing Exceptions**: Avoid swallowing exceptions by catching them and not doing anything with them. + This can lead to silent failures and make it difficult to diagnose issues in the code. + - **Use Checked Exceptions Wisely**: Use checked exceptions judiciously and only for conditions that the caller can + reasonably be expected to handle. Consider using unchecked exceptions for exceptional conditions that are outside + the control of the caller. + - **Throw Custom Exceptions**: Throw custom exceptions to provide more context and information about the error. This + can help with debugging and make it easier to handle specific types of errors. + - **Follow the Principle of Least Surprise**: Follow the principle of least surprise by handling exceptions in a way + that is consistent with the rest of the codebase and does not introduce unexpected behavior. + - **Document Exception Handling**: Document exception handling in the code to explain why exceptions are being + caught + and how they are being handled. This can help other developers understand the intent behind the exception handling + logic. + - **Test Exception Handling**: Test exception handling code to ensure that it behaves as expected and handles errors + correctly in different scenarios. This can help identify and fix issues before they reach production. + - **Use Standard Error Codes**: Use standard error codes or messages to provide consistent and meaningful feedback + to users when exceptions occur. This can help users understand the cause of the error and take appropriate action. + - **Avoid Catching Throwable**: Avoid catching the `Throwable` class, as this can catch errors and other serious + issues + that should not be caught or handled by the application. Catch specific exceptions instead. ### Miscellaneous topics -- **109 . What are the default values in an array? ** \ +- **109 . What are the default values in an array?** \ In Java, when an array is created, the elements are initialized to default values based on the type of the array. The default values for primitive types are as follows: @@ -1943,9 +2089,75 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce - **boolean**: false For reference types (objects), the default value is `null`. For example, the default value of an `int` array is `0`. -- **110 . How do you loop around an array using enhanced for loop?** -- **111 . How do you print the content of an array?** -- **112 . How do you compare two arrays? ** \ +- **110 . How do you loop around an array using enhanced for loop?** \ + You can loop around an array using an enhanced for loop in Java. The enhanced for loop, also known as the for-each + loop, provides a more concise syntax for iterating over elements in an array or a collection. It eliminates the need + for explicit indexing and bounds checking and makes the code more readable. + + Here is an example of looping around an array using an enhanced for loop: + + ```java + public class Example { + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + for (int number : numbers) { + System.out.println(number); + } + } + } + ``` + + In this example, the enhanced for loop iterates over the `numbers` array and prints each element to the console. The + `number` variable represents the current element in the array during each iteration of the loop. +- **111 . How do you print the content of an array?** \ + You can print the content of an array in Java by iterating over the elements of the array and printing each element to + the console. There are several ways to print the content of an array, including using a `for` loop, an enhanced `for` + loop, or the `Arrays.toString` method from the `java.util` package. + + Here are some examples: + + - **Using a For Loop**: + + ```java + public class Example { + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + for (int i = 0; i < numbers.length; i++) { + System.out.println(numbers[i]); + } + } + } + ``` + + - **Using an Enhanced For Loop**: + + ```java + public class Example { + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + for (int number : numbers) { + System.out.println(number); + } + } + } + ``` + + - **Using Arrays.toString**: + + ```java + import java.util.Arrays; + + public class Example { + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + System.out.println(Arrays.toString(numbers)); + } + } + ``` + + In these examples, the content of the `numbers` array is printed to the console using different methods for iterating + over the elements of the array. +- **112 . How do you compare two arrays?** \ In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method compares the contents of two arrays to determine if they are equal. It takes two arrays as arguments and returns `true` if the arrays are equal and `false` otherwise. The comparison is done element by element, so the arrays must @@ -1969,7 +2181,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, the `Arrays.equals` method is used to compare the `array1` and `array2` arrays, and the result is printed to the console. -- **113 . What is an enum? ** \ +- **113 . What is an enum?** \ An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to define a set of named constants that can be used in place of integer values. Enumerations are defined using the `enum` keyword and can contain constructors, methods, and fields. @@ -1984,7 +2196,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, the `Day` enum defines a set of constants representing the days of the week. Each constant is implicitly declared as a public static final field of the `Day` enum. -- **114 . Can you use a switch statement around an enum? ** \ +- **114 . Can you use a switch statement around an enum?** \ Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to provide a more readable and type-safe alternative to using integer values. Each constant in the enum can be used as a case label in the switch statement. @@ -2031,7 +2243,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, the `Day` enum is used with a switch statement to print the day of the week based on the value of the `day` variable. -- **115 . What are variable arguments or varargs? ** \ +- **115 . What are variable arguments or varargs?** \ Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This feature was introduced in Java 5 and is denoted by an ellipsis (`...`) after the type of the last parameter in the method signature. Varargs are represented as an array within the method and can be used to pass any number of @@ -2055,16 +2267,256 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, the `printNumbers` method accepts a variable number of `int` arguments using varargs. The method can be called with any number of `int` values, and they will be treated as an array within the method. -- **116 . What are asserts used for?** -- **117 . When should asserts be used?** -- **118 . What is garbage collection?** -- **119 . Can you explain garbage collection with an example?** -- **120 . When is garbage collection run?** -- **121 . What are best practices on garbage collection?** -- **122 . What are initialization blocks?** -- **123 . What is a static initializer?** -- **124 . What is an instance initializer block?** -- **125 . What is tokenizing? ** \ +- **116 . What are asserts used for?** \ + Asserts in Java are used to test assumptions in the code and validate conditions that should be true during program + execution. They are typically used for debugging and testing purposes to catch errors and inconsistencies in the code. + Asserts are disabled by default in Java and can be enabled using the `-ea` flag when running the JVM. + + Here is an example of using asserts: + + ```java + public class Main { + public static void main(String[] args) { + int x = Integer.parseInt(args[0]); + assert x > 0 : "x must be greater than 0"; + } + } + ``` + + In this example, the `assert` statement checks if the value of `x` is greater than 0 and throws an `AssertionError` + with the message `"x must be greater than 0"` if the condition is false. Asserts are typically used to validate + assumptions and catch errors early in the development process. +- **117 . When should asserts be used?** \ + Asserts in Java should be used in the following scenarios: + + - **Debugging**: Use asserts to catch errors and inconsistencies in the code during development and testing. They + can + help identify issues early in the development process and provide feedback on incorrect assumptions. + - **Testing**: Use asserts to validate conditions and assumptions in unit tests and integration tests. They can help + ensure that the code behaves as expected and meets the requirements. + - **Preconditions**: Use asserts to check preconditions and validate input parameters in methods. They can help + ensure that the method is called with the correct arguments and that the conditions are met. + - **Invariants**: Use asserts to check invariants and validate the state of objects or data structures. They can + help + ensure that the program is in a consistent state and that the data is valid. + - **Performance**: Use asserts to check performance-related conditions and validate optimizations. They can help + ensure that the code is efficient and performs as expected. + - **Security**: Use asserts to check security-related conditions and validate access controls. They can help ensure + that the code is secure and protected against vulnerabilities. + + Asserts should be used judiciously and in situations where they provide value in validating assumptions and catching + errors. They are typically disabled in production code and enabled during development and testing to provide feedback + on incorrect assumptions and conditions. + Note: It is important to note that asserts are disabled by default in Java and should not be used as a replacement for + proper error handling and validation in production code. They are intended for debugging and testing purposes and + should be used judiciously to catch errors and inconsistencies during development and testing. Also the asserts are + different from the asserts related to the unit testing framework because these last are particular validations for the + output of a unit (method) and asserts in java are checks for correct use of the contract of a method. +- **118 . What is garbage collection?** \ + Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program. + It is a key feature of the Java Virtual Machine (JVM) that manages memory allocation and deallocation for objects + created during program execution. Garbage collection helps prevent memory leaks and ensures that memory is used + efficiently by reclaiming unused memory and making it available for new objects. + + The garbage collection process involves several steps, including identifying unreferenced objects, reclaiming memory + used by those objects, and compacting memory to reduce fragmentation. Garbage collection is performed by the JVM's + garbage collector, which runs in the background and periodically checks for unused objects to reclaim memory. + + Garbage collection is an essential part of Java's memory management model and helps simplify memory management for + developers by automating the process of memory allocation and deallocation. It allows developers to focus on writing + code without having to worry about manual memory management and memory leaks. +- **119 . Can you explain garbage collection with an example?** \ + Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program. + It helps prevent memory leaks and ensures that memory is used efficiently by reclaiming unused memory and making it + available for new objects. Here is an example of garbage collection in Java: + + ```java + public class Main { + public static void main(String[] args) { + // Create an object + Object obj = new Object(); + + // Set the reference to null + obj = null; + + // Request garbage collection + System.gc(); + } + } + ``` + + In this example, an object `obj` is created and then set to `null` to remove the reference to the object. The + `System.gc()` method is called to request garbage collection by the JVM. The garbage collector will identify the + unreferenced object and reclaim the memory used by the object. This process helps free up memory that is no longer in + use and makes it available for new objects. +- **120 . When is garbage collection run?** \ + Garbage collection in Java is run by the JVM's garbage collector at specific intervals or when certain conditions are + met. The garbage collector runs in the background and periodically checks for unused objects to reclaim memory. The + exact timing and frequency of garbage collection depend on the JVM implementation and the garbage collection + algorithm used. + + Garbage collection is typically run when one of the following conditions is met: + + - **Memory Pressure**: When the JVM detects that the available memory is running low, it triggers garbage collection + to reclaim memory and free up space for new objects. + - **Idle Time**: When the JVM is idle or has spare CPU cycles, it may run garbage collection to reclaim memory and + optimize memory usage. + - **Explicit Request**: Garbage collection can be explicitly triggered by calling the `System.gc()` method or using + JVM options like `-XX:+ExplicitGCInvokesConcurrent`. + - **Generation Thresholds**: Garbage collection is run based on generation thresholds, such as the young generation + and old generation, to optimize memory management and reduce the impact on application performance. + - **Heap Size**: Garbage collection is run when the heap size exceeds a certain threshold, such as the maximum heap + size specified by the `-Xmx` JVM option. + + The garbage collector uses various algorithms and strategies to determine when and how to reclaim memory based on the + application's memory usage and requirements. By running garbage collection at specific intervals or when certain + conditions are met, the JVM can optimize memory management and ensure that memory is used efficiently. +- **121 . What are best practices on garbage collection?** \ + Some best practices for garbage collection in Java include: + + - **Avoid Premature Optimization**: Avoid premature optimization of memory usage and garbage collection. Let the + JVM's garbage collector manage memory automatically and optimize memory usage based on the application's + requirements. + - **Use Proper Data Structures**: Use appropriate data structures and algorithms to minimize memory usage and + reduce the impact on garbage collection. Choose data structures that are efficient and optimized for memory + management. + - **Minimize Object Creation**: Minimize the creation of unnecessary objects and use object pooling or caching to + reuse objects where possible. This can reduce the number of objects that need to be garbage collected and improve + performance. + - **Avoid Memory Leaks**: Avoid memory leaks by ensuring that objects are properly dereferenced and released when + they are no longer needed. Be mindful of retaining references to objects that are no longer in use. + - **Tune Garbage Collection**: Tune garbage collection settings and parameters based on the application's memory + requirements and performance goals. Experiment with different garbage collection algorithms and options to + optimize memory management. + - **Monitor Memory Usage**: Monitor memory usage and garbage collection activity to identify potential issues and + optimize memory management. Use tools like JVisualVM, VisualVM, or Java Mission Control to analyze memory usage + and garbage collection behavior. + - **Profile and Optimize**: Profile the application to identify memory bottlenecks and optimize memory usage. Use + profiling tools to analyze memory allocation, object creation, and garbage collection patterns to improve + performance. + - **Use Finalizers Sparingly**: Use finalizers sparingly and avoid relying on them for resource cleanup. Finalizers + can introduce performance overhead and may not be called in a timely manner. Consider using try-with-resources or + other mechanisms for resource cleanup. + - **Avoid Circular References**: Avoid circular references between objects, as they can prevent objects from being + garbage collected. Break circular references by using weak references or other techniques to allow objects to be + garbage collected when they are no longer needed. + - **Optimize Object Lifecycle**: Optimize the lifecycle of objects to minimize memory usage and reduce the impact on + garbage collection. Use object pooling, lazy initialization, and other techniques to manage object creation and + destruction efficiently. + - **Use Memory Profiling Tools**: Use memory profiling tools to analyze memory usage, object allocation, and garbage + collection behavior. These tools can help identify memory leaks, performance bottlenecks, and areas for + optimization. +- **122 . What are initialization blocks?** \ + Initialization blocks in Java are used to initialize instance variables of a class. There are two types of + initialization blocks in Java: instance initializer blocks and static initializer blocks. + + - **Instance Initializer Block**: An instance initializer block is used to initialize instance variables of a class. + It is executed when an instance of the class is created and can be used to perform complex initialization logic. + Instance initializer blocks are defined within curly braces `{}` and are executed before the constructor of the + class. + + Here is an example of an instance initializer block: + + ```java + public class Example { + private int x; + + { + x = 10; + } + + public Example() { + System.out.println("Constructor called"); + } + + public static void main(String[] args) { + Example example = new Example(); + System.out.println("Value of x: " + example.x); + } + } + ``` + + - **Static Initializer Block**: A static initializer block is used to initialize static variables of a class. It is + executed when the class is loaded by the JVM and can be used to perform one-time initialization tasks. Static + initializer blocks are defined with the `static` keyword and are executed before the class is used. + + Here is an example of a static initializer block: + + ```java + public class Example { + private static int x; + + static { + x = 10; + } + + public static void main(String[] args) { + System.out.println("Value of x: " + x); + } + } + ``` + + In these examples, the instance initializer block is used to initialize the `x` instance variable, and the static + initializer block is used to initialize the `x` static variable. Initialization blocks are useful for performing + complex initialization logic and ensuring that variables are properly initialized when an instance of the class is + created. +- **123 . What is a static initializer?** \ + A static initializer in Java is used to initialize static variables of a class. It is executed when the class is + loaded + by the JVM and can be used to perform one-time initialization tasks. Static initializer blocks are defined with the + `static` keyword and are executed before the class is used. +- **124 . What is an instance initializer block?** \ + An instance initializer block in Java is used to initialize instance variables of a class. It is executed when an + instance of the class is created and can be used to perform complex initialization logic. Instance initializer blocks + are defined within curly braces `{}` and are executed before the constructor of the class. + + Here is an example of an instance initializer block: + + ```java + public class Example { + private int x; + + { + x = 10; + } + + public Example() { + System.out.println("Constructor called"); + } + + public static void main(String[] args) { + Example example = new Example(); + System.out.println("Value of x: " + example.x); + } + } + ``` + + In this example, the instance initializer block is used to initialize the `x` instance variable before the constructor + is called. The instance initializer block is executed when an instance of the `Example` class is created and sets the + value of `x` to `10`. +- **125 . What is tokenizing?** \ + Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done + to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing + and text processing tasks to analyze and manipulate text data. + + Here is an example of tokenizing a string: + + ```java + public class Main { + public static void main(String[] args) { + String sentence = "Hello, world! This is a sentence."; + String[] tokens = sentence.split(" "); + + for (String token : tokens) { + System.out.println(token); + } + } + } + ``` + + In this example, the `split` method is used to tokenize the `sentence` string by splitting it into individual words + based on the space character. The resulting tokens are then printed to the console. +- **126 . Can you give an example of tokenizing?** \ Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing and text processing tasks to analyze and manipulate text data. @@ -2086,18 +2538,286 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, the `split` method is used to tokenize the `sentence` string by splitting it into individual words based on the space character. The resulting tokens are then printed to the console. -- **126 . Can you give an example of tokenizing?** -- **127 . What is serialization?** -- **128 . How do you serialize an object using serializable interface?** -- **129 . How do you de**-serialize in Java? -- **130 . What do you do if only parts of the object have to be serialized?** -- **131 . How do you serialize a hierarchy of objects?** -- **132 . Are the constructors in an object invoked when it is de**-serialized? -- **133 . Are the values of static variables stored when an object is serialized?** +- **127 . What is serialization?** \ + Serialization in Java is the process of converting an object into a stream of bytes that can be saved to a file, + sent over a network, or stored in a database. Serialization allows objects to be persisted and transferred between + different systems and platforms. The serialized object can be deserialized back into an object to restore its state + and properties. + + Java provides the `Serializable` interface, which is used to mark classes as serializable. Classes that implement the + `Serializable` interface can be serialized and deserialized using the `ObjectOutputStream` and `ObjectInputStream` + classes. + + Here is an example of serializing and deserializing an object: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + // Serialize object + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.ser"))) { + MyClass obj = new MyClass(); + out.writeObject(obj); + } catch (IOException e) { + e.printStackTrace(); + } + + // Deserialize object + try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("object.ser"))) { + MyClass obj = (MyClass) in.readObject(); + System.out.println(obj); + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); + } + } + } + + class MyClass implements Serializable { + private static final long serialVersionUID = 1L; + } + ``` + + In this example, the `MyClass` object is serialized to a file named `object.ser` using an `ObjectOutputStream`. The + object is then deserialized back into an object using an `ObjectInputStream` and printed to the console. +- **128 . How do you serialize an object using serializable interface?** \ + To serialize an object in Java using the `Serializable` interface, follow these steps: + + 1. Implement the `Serializable` interface in the class that you want to serialize. The `Serializable` interface is a + marker interface that indicates that the class can be serialized. + + 2. Create an instance of the `ObjectOutputStream` class and pass it a `FileOutputStream` or other output stream to + write the serialized object to a file or other destination. + + 3. Call the `writeObject` method on the `ObjectOutputStream` instance and pass the object that you want to serialize + as an argument. + + 4. Close the `ObjectOutputStream` to flush the output stream and release any system resources. + + Here is an example of serializing an object using the `Serializable` interface: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.ser"))) { + MyClass obj = new MyClass(); + out.writeObject(obj); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + class MyClass implements Serializable { + private static final long serialVersionUID = 1L; + } + ``` + + In this example, the `MyClass` object is serialized to a file named `object.ser` using an `ObjectOutputStream`. The + `MyClass` class implements the `Serializable` interface, which allows it to be serialized and written to the output + stream. +- **129 . How do you de-serialize in Java?** \ + To deserialize an object in Java, follow these steps: + + 1. Create an instance of the `ObjectInputStream` class and pass it a `FileInputStream` or other input stream to read + the serialized object from a file or other source. + + 2. Call the `readObject` method on the `ObjectInputStream` instance to read the serialized object from the input + stream. + + 3. Cast the returned object to the appropriate class type to restore the object's state and properties. + + 4. Close the `ObjectInputStream` to release any system resources. + + Here is an example of deserializing an object in Java: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("object.ser"))) { + MyClass obj = (MyClass) in.readObject(); + System.out.println(obj); + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); + } + } + } + + class MyClass implements Serializable { + private static final long serialVersionUID = 1L; + } + ``` + + In this example, the `MyClass` object is deserialized from a file named `object.ser` using an `ObjectInputStream`. The + serialized object is read from the input stream and cast to the `MyClass` class type to restore its state and + properties. +- **130 . What do you do if only parts of the object have to be serialized?** \ + If only parts of an object need to be serialized in Java, you can use the `transient` keyword to mark fields that + should not be serialized. The `transient` keyword tells the JVM to skip the serialization of the marked field and + exclude it from the serialized object. + + Here is an example of using the `transient` keyword to exclude fields from serialization: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.ser"))) { + MyClass obj = new MyClass(); + out.writeObject(obj); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + class MyClass implements Serializable { + private static final long serialVersionUID = 1L; + private transient int x = 10; + private int y = 20; + + @Override + public String toString() { + return "MyClass{" + + "x=" + x + + ", y=" + y + + '}'; + } + } + ``` + + In this example, the `x` field is marked as `transient` in the `MyClass` class, which excludes it from serialization. + When the `MyClass` object is serialized, the `x` field is skipped, and only the `y` field is serialized and + deserialized. +- **131 . How do you serialize a hierarchy of objects?** \ + To serialize a hierarchy of objects in Java, follow these steps: + + 1. Implement the `Serializable` interface in all classes in the hierarchy that need to be serialized. The + `Serializable` interface is a marker interface that indicates that the class can be serialized. + + 2. Create an instance of the `ObjectOutputStream` class and pass it a `FileOutputStream` or other output stream to + write the serialized objects to a file or other destination. + + 3. Call the `writeObject` method on the `ObjectOutputStream` instance and pass the root object of the hierarchy that + you want to serialize. + + 4. Close the `ObjectOutputStream` to flush the output stream and release any system resources. + + Here is an example of serializing a hierarchy of objects in Java: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.ser"))) { + Parent parent = new Parent(); + parent.child = new Child(); + out.writeObject(parent); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + class Parent implements Serializable { + private static final long serialVersionUID = 1L; + Child child; + } + + class Child implements Serializable { + private static final long serialVersionUID = 1L; + } + ``` + + In this example, the `Parent` and `Child` classes implement the `Serializable` interface, allowing them to be + serialized. The `Parent` class contains a reference to a `Child` object, creating a hierarchy of objects that can be + serialized and deserialized. +- **132 . Are the constructors in an object invoked when it is de-serialized?** \ + When an object is deserialized in Java, the constructors of the object are not invoked. Instead, the object is + restored from the serialized form, and its state and properties are reconstructed based on the serialized data. The + deserialization process uses the serialized data to recreate the object's state without calling the constructor. + + If the class being deserialized has a `readObject` method, the `readObject` method is called during deserialization to + restore the object's state. The `readObject` method can be used to perform custom deserialization logic and initialize + transient fields that were excluded from serialization. + + Here is an example of deserializing an object in Java without invoking the constructor: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("object.ser"))) { + MyClass obj = (MyClass) in.readObject(); + System.out.println(obj); + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); + } + } + } + + class MyClass implements Serializable { + private static final long serialVersionUID = 1L; + + public MyClass() { + System.out.println("Constructor called"); + } + + @Override + public String toString() { + return "MyClass{}"; + } + } + ``` +- **133 . Are the values of static variables stored when an object is serialized?** \ + When an object is serialized in Java, the values of static variables are not stored as part of the serialized object. + Static variables are associated with the class itself rather than individual instances of the class, so they are not + serialized along with the object. When an object is deserialized, the static variables are initialized based on the + class definition and are not restored from the serialized data. + + Here is an example that demonstrates that static variables are not stored when an object is serialized: + + ```java + import java.io.*; + + public class Main { + public static void main(String[] args) { + try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.ser"))) { + MyClass obj = new MyClass(); + out.writeObject(obj); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + class MyClass implements Serializable { + private static final long serialVersionUID = 1L; + private static int x = 10; + + @Override + public String toString() { + return "MyClass{" + + "x=" + x + + '}'; + } + } + ``` + + In this example, the `MyClass` object is serialized to a file named `object.ser`, but the value of the `x` static + variable is not stored as part of the serialized object. When the object is deserialized, the `x` static variable is + initialized based on the class definition and is not restored from the serialized data. ### Collections -- **134 . Why do we need collections in Java? ** \ +- **134 . Why do we need collections in Java?** \ Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to organize and manage data in a structured and efficient manner. Collections offer a wide range of data structures and algorithms that can be used to perform common operations like searching, sorting, and iterating over elements. By @@ -2119,7 +2839,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce various operations. - **Flexibility**: Collections offer a wide range of data structures and interfaces that can be used to meet different requirements and use cases. -- **135 . What are the important interfaces in the collection hierarchy? ** \ +- **135 . What are the important interfaces in the collection hierarchy?** \ The Java Collections Framework provides a set of interfaces that define the core functionality of collections in Java. Some of the important interfaces in the collection hierarchy include: @@ -2142,7 +2862,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce pairs in a map. These interfaces define common methods and behaviors that are shared by different types of collections in Java. -- **136 . What are the important methods that are declared in the collection interface? ** \ +- **136 . What are the important methods that are declared in the collection interface?** \ The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the interface. Some of the important methods declared in the `Collection` interface include: @@ -2164,7 +2884,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce These methods provide basic functionality for working with collections in Java and are implemented by classes that implement the `Collection` interface. -- **137 . Can you explain briefly about the List interface? ** \ +- **137 . Can you explain briefly about the List interface?** \ The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements that allows duplicates. Lists maintain the insertion order of elements and provide methods for accessing, adding, removing, and updating elements at specific positions. Some of the key features of the `List` interface include: @@ -2179,7 +2899,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The `List` interface is implemented by classes like `ArrayList`, `LinkedList`, and `Vector` in the Java Collections Framework. It provides a flexible and efficient way to work with ordered collections of elements. -- **138 . Explain about ArrayList with an example? ** \ +- **138 . Explain about ArrayList with an example?** \ The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic resizing, fast random access, and efficient insertion and deletion of elements. `ArrayList` is part of the Java Collections Framework and is commonly used to store and manipulate collections of objects. @@ -2215,12 +2935,12 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, an `ArrayList` of integers is created, and elements are added, accessed, and removed from the list. The `ArrayList` class provides a flexible and efficient way to work with collections of objects in Java. -- **139 . Can an ArrayList have duplicate elements? ** \ +- **139 . Can an ArrayList have duplicate elements?** \ Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an `ArrayList` allows elements to be added multiple times. This means that an `ArrayList` can contain duplicate elements at different positions in the list. The order of elements in an `ArrayList` is maintained, so duplicate elements will appear in the list in the order in which they were added. -- **140 . How do you iterate around an ArrayList using iterator? ** \ +- **140 . How do you iterate around an ArrayList using iterator?** \ To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the `ArrayList` class. The `iterator` method returns an `Iterator` object that can be used to traverse the elements in the list. Here is an example: @@ -2251,7 +2971,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, an `ArrayList` of strings is created, and an iterator is obtained using the `iterator` method. The iterator is then used to iterate over the elements in the list and print them to the console. -- **141 . How do you sort an ArrayList? ** \ +- **141 . How do you sort an ArrayList?** \ To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections` class. The `Collections.sort` method sorts the elements in the list in ascending order based on their natural order or a custom comparator. Here is an example: @@ -2281,7 +3001,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, an `ArrayList` of integers is created, and the `Collections.sort` method is used to sort the elements in the list. The sorted elements are then printed to the console in ascending order. -- **142 . How do you sort elements in an ArrayList using comparable interface? ** \ +- **142 . How do you sort elements in an ArrayList using comparable interface?** \ To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable` interface in the class of the elements you want to sort. The `Comparable` interface defines a `compareTo` method that compares the current object with another object and returns a negative, zero, or positive value based on their @@ -2326,7 +3046,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, the `Person` class implements the `Comparable` interface and defines a `compareTo` method that compares `Person` objects based on their age. The `Collections.sort` method is then used to sort the `ArrayList` of `Person` objects based on their age. -- **143 . How do you sort elements in an ArrayList using comparator interface? ** \ +- **143 . How do you sort elements in an ArrayList using comparator interface?** \ To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator class that implements the `Comparator` interface. The `Comparator` interface defines a `compare` method that compares two objects and returns a negative, zero, or positive value based on their ordering. Here is an example: @@ -2373,7 +3093,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, a custom comparator class is created using the `Comparator.comparing` method to sort `Person` objects based on their name. The `Collections.sort` method is then used to sort the `ArrayList` of `Person` objects using the custom comparator. -- **144 . What is vector class? How is it different from an ArrayList? ** \ +- **144 . What is vector class? How is it different from an ArrayList?** \ The `Vector` class in Java is a legacy collection class that is similar to an `ArrayList` but is synchronized. This means that access to a `Vector` is thread-safe, making it suitable for use in multi-threaded environments. The `Vector` class provides methods for adding, removing, and accessing elements in the list, as well as for iterating @@ -2390,7 +3110,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce Despite these differences, both `Vector` and `ArrayList` provide similar functionality for working with collections of objects in Java. -- **145 . What is linkedList? What interfaces does it implement? How is it different from an ArrayList? ** \ +- **145 . What is linkedList? What interfaces does it implement? How is it different from an ArrayList?** \ The `LinkedList` class in Java is a doubly-linked list implementation of the `List` interface. It provides efficient insertion and deletion of elements at the beginning, middle, and end of the list. `LinkedList` implements the `List`, `Deque`, and `Queue` interfaces, making it suitable for a wide range of operations. @@ -2407,7 +3127,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce Despite these differences, both `LinkedList` and `ArrayList` provide similar functionality for working with collections of objects in Java, and the choice between them depends on the specific requirements of the application. -- **146 . Can you briefly explain about the Set interface? ** \ +- **146 . Can you briefly explain about the Set interface?** \ The `Set` interface in Java extends the `Collection` interface and represents a collection of unique elements with no duplicates. Sets do not allow duplicate elements, and they maintain no specific order of elements. The `Set` interface provides methods for adding, removing, and checking the presence of elements in the set. @@ -2424,7 +3144,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The `Set` interface is commonly used to store collections of unique elements and perform operations like union, intersection, and difference on sets. It provides a flexible and efficient way to work with sets of objects in Java. -- **147 . What are the important interfaces related to the Set interface? ** \ +- **147 . What are the important interfaces related to the Set interface?** \ The `Set` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with sets of elements. Some of the important interfaces related to the `Set` interface include: @@ -2438,7 +3158,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce These interfaces build on the functionality provided by the `Set` interface and offer additional features for working with sets of elements in Java. -- **148 . What is the difference between Set and sortedSet interfaces? ** \ +- **148 . What is the difference between Set and sortedSet interfaces?** \ The `Set` and `SortedSet` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of unique elements with no duplicates. The main difference between `Set` and `SortedSet` is the ordering of elements: @@ -2453,7 +3173,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In summary, `Set` is a general interface for collections of unique elements, while `SortedSet` is a specialized interface for sets that maintain the order of elements based on a specific ordering. -- **149 . Can you give examples of classes that implement the Set interface? ** \ +- **149 . Can you give examples of classes that implement the Set interface?** \ The `Set` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of sets. Some of the common classes that implement the `Set` interface include: @@ -2467,7 +3187,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce These classes provide different implementations of sets with varying performance characteristics and ordering guarantees. -- **150 . What is a HashSet? How is it different from a TreeSet? ** \ +- **150 . What is a HashSet? How is it different from a TreeSet?** \ `HashSet` and `TreeSet` are two common implementations of the `Set` interface in Java that provide different characteristics for working with sets of elements. The main differences between `HashSet` and `TreeSet` include: @@ -2484,7 +3204,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In summary, `HashSet` is a hash-based set implementation with no ordering guarantees, while `TreeSet` is a tree-based set implementation that maintains the order of elements based on their natural ordering or a custom comparator. -- **151 . What is a linkedHashSet? How is different from a HashSet? ** \ +- **151 . What is a linkedHashSet? How is different from a HashSet?** \ `LinkedHashSet` is a class in Java that extends `HashSet` and maintains the order of elements based on their insertion order. Unlike `HashSet`, which does not maintain the order of elements, `LinkedHashSet` provides predictable iteration order and constant-time performance for basic operations. `LinkedHashSet` is implemented using a hash table with a @@ -2501,7 +3221,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In summary, `LinkedHashSet` is a hash-based set implementation that maintains the order of elements based on their insertion order, providing predictable iteration order and constant-time performance for basic operations. -- **152 . What is a TreeSet? How is different from a HashSet? ** \ +- **152 . What is a TreeSet? How is different from a HashSet?** \ `TreeSet` is a class in Java that implements the `SortedSet` interface using a red-black tree data structure. `TreeSet` maintains the order of elements based on their natural ordering or a custom comparator, allowing elements to be sorted @@ -2519,7 +3239,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In summary, `TreeSet` is a tree-based set implementation that maintains the order of elements based on their natural ordering or a custom comparator, providing efficient sorting and range query operations. `HashSet` is a hash-based set implementation with no ordering guarantees. -- **153 . Can you give examples of implementations of navigableSet? ** \ +- **153 . Can you give examples of implementations of navigableSet?** \ The `NavigableSet` interface in Java is implemented by the `TreeSet` and `ConcurrentSkipListSet` classes in the Java Collections Framework. These classes provide implementations of navigable sets that support navigation methods for accessing elements in a set. Some examples of implementations of `NavigableSet` include: @@ -2533,7 +3253,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce These classes provide efficient and flexible implementations of navigable sets that allow elements to be accessed, added, and removed based on their order in the set. -- **154 . Explain briefly about Queue interface? ** \ +- **154 . Explain briefly about Queue interface?** \ The `Queue` interface in Java represents a collection of elements in a specific order for processing. Queues follow the First-In-First-Out (FIFO) order, meaning that elements are added to the end of the queue and removed from the front of the queue. The `Queue` interface provides methods for adding, removing, and accessing elements in the queue, @@ -2551,7 +3271,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The `Queue` interface is commonly used to represent collections of elements that need to be processed in a specific order, such as tasks in a job queue or messages in a message queue. It provides a flexible and efficient way to work with queues of objects in Java. -- **155 . What are the important interfaces related to the Queue interface? ** \ +- **155 . What are the important interfaces related to the Queue interface?** \ The `Queue` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with queues of elements. Some of the important interfaces related to the `Queue` interface include: @@ -2566,7 +3286,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce These interfaces build on the functionality provided by the `Queue` interface and offer additional features for working with queues of elements in Java. -- **156 . Explain about the Deque interface? ** \ +- **156 . Explain about the Deque interface?** \ The `Deque` interface in Java represents a double-ended queue that allows elements to be added or removed from both ends. Deques provide methods for adding, removing, and accessing elements at the front and back of the queue, making them suitable for a wide range of operations. The `Deque` interface extends the `Queue` interface and provides @@ -2584,7 +3304,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The `Deque` interface is commonly used to represent double-ended queues that require efficient insertion and removal of elements at both ends. It provides a flexible and efficient way to work with double-ended queues of objects in Java. -- **157 . Explain the BlockingQueue interface? ** \ +- **157 . Explain the BlockingQueue interface?** \ The `BlockingQueue` interface in Java represents a queue that supports blocking operations for adding and removing elements. Blocking queues provide methods for waiting for elements to become available or space to become available in the queue, allowing threads to block until the desired condition is met. The `BlockingQueue` interface extends the @@ -2604,7 +3324,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The `BlockingQueue` interface is commonly used in multi-threaded applications to coordinate the processing of elements between producer and consumer threads. It provides a flexible and efficient way to work with blocking queues of objects in Java. -- **158 . What is a priorityQueue? How is it different from a normal queue? ** \ +- **158 . What is a priorityQueue? How is it different from a normal queue?** \ `PriorityQueue` is a class in Java that implements the `Queue` interface using a priority heap data structure. Unlike a normal queue, which follows the First-In-First-Out (FIFO) order, a `PriorityQueue` maintains elements in a priority order based on their natural ordering or a custom comparator. Elements with higher priority are dequeued before @@ -2624,7 +3344,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce while a normal queue follows the FIFO order. `PriorityQueue` is commonly used in applications that require elements to be processed based on their priority level. -- **159 . Can you give example implementations of the BlockingQueue interface? ** \ +- **159 . Can you give example implementations of the BlockingQueue interface?** \ The `BlockingQueue` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of blocking queues. Some examples of implementations of `BlockingQueue` include: @@ -2643,7 +3363,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce These classes provide different implementations of blocking queues with varying characteristics and performance guarantees. They are commonly used in multi-threaded applications to coordinate the processing of elements between producer and consumer threads. -- **160 . Can you briefly explain about the Map interface? ** \ +- **160 . Can you briefly explain about the Map interface?** \ The `Map` interface in Java represents a collection of key-value pairs where each key is unique and maps to a single value. Maps provide methods for adding, removing, and accessing key-value pairs, as well as for checking the presence of keys or values. The `Map` interface does not extend the `Collection` interface and provides a separate set of @@ -2661,7 +3381,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The `Map` interface is commonly used to store and manipulate key-value pairs in Java, providing a flexible and efficient way to work with mappings of objects. -- **161 . What is difference between Map and SortedMap? ** \ +- **161 . What is difference between Map and SortedMap?** \ The `Map` and `SortedMap` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of key-value pairs. The main difference between `Map` and `SortedMap` is the ordering of keys: @@ -2675,7 +3395,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In summary, `Map` is a general interface for collections of key-value pairs, while `SortedMap` is a specialized interface for maps that maintain the order of keys based on a specific ordering. -- **162 . What is a HashMap? How is it different from a TreeMap? ** \ +- **162 . What is a HashMap? How is it different from a TreeMap?** \ `HashMap` and `TreeMap` are two common implementations of the `Map` interface in Java that provide different characteristics for working with key-value pairs. The main differences between `HashMap` and `TreeMap` include: @@ -2696,7 +3416,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce map implementation that maintains the order of keys based on their natural ordering or a custom comparator. `HashMap` is commonly used in applications that require fast access to key-value pairs, while `TreeMap` is used when keys need to be sorted in a specific order. -- **163 . What are the different methods in a Hash Map? ** \ +- **163 . What are the different methods in a Hash Map?** \ The `HashMap` class in Java provides a variety of methods for working with key-value pairs stored in a hash table data structure. Some of the common methods provided by the `HashMap` class include: @@ -2713,7 +3433,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce - **`entrySet()`**: Returns a set of key-value pairs in the map. These methods provide a flexible and efficient way to work with key-value pairs stored in a `HashMap` in Java. - - **164 . What is a TreeMap? How is different from a HashMap? ** \ + - **164 . What is a TreeMap? How is different from a HashMap?** \ `TreeMap` is a class in Java that implements the `SortedMap` interface using a red-black tree data structure. `TreeMap` maintains the order of keys based on their natural ordering or a custom comparator, allowing keys to be sorted in @@ -2742,7 +3462,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce ordering or a custom comparator, while `HashMap` is a hash-based map implementation with no ordering guarantees. `TreeMap` is commonly used in applications that require keys to be sorted in a specific order. `HashMap` is used when a fast access to key-value pairs is required. -- **165 . Can you give an example of implementation of NavigableMap interface? ** \ +- **165 . Can you give an example of implementation of NavigableMap interface?** \ The `NavigableMap` interface in Java is implemented by the `TreeMap` class in the Java Collections Framework. `TreeMap` provides a navigable map of key-value pairs sorted in a specific order, allowing elements to be accessed, added, and @@ -2782,7 +3502,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, a `NavigableMap` is created using a `TreeMap` and key-value pairs are added to the map. The key-value pairs are then printed in ascending order and descending order using the `keySet` and `descendingKeySet` methods of the `NavigableMap` interface. -- **166 . What are the static methods present in the collections class? ** \ +- **166 . What are the static methods present in the collections class?** \ The `Collections` class in Java provides a variety of static methods for working with collections in the Java Collections Framework. Some of the common static methods provided by the `Collections` class include: @@ -2803,7 +3523,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce ### Advanced collections -- **167 . What is the difference between synchronized and concurrent collections in Java? ** \ +- **167 . What is the difference between synchronized and concurrent collections in Java?** \ Synchronized collections and concurrent collections in Java are two approaches to handling thread safety in multi-threaded applications. The main difference between synchronized and concurrent collections is how they achieve thread safety: @@ -2833,7 +3553,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In general, concurrent collections are preferred for high-concurrency scenarios where performance and scalability are important. Synchronized collections are suitable for simpler applications where thread safety is required but high-concurrency is not a concern. -- **168 . Explain about the new concurrent collections in Java? ** \ +- **168 . Explain about the new concurrent collections in Java?** \ Java provides a set of concurrent collections in the `java.util.concurrent` package that are designed for high concurrency and thread safety in multi-threaded applications. Some of the new concurrent collections introduced in Java include: @@ -2859,7 +3579,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce providing built-in thread safety and high concurrency support. They are suitable for scenarios where multiple threads need to access and modify collections concurrently. -- **169 . Explain about copyOnWrite concurrent collections approach? ** \ +- **169 . Explain about copyOnWrite concurrent collections approach?** \ The copy-on-write (COW) approach is a concurrency control technique used in Java to provide thread-safe access to collections. In the copy-on-write approach, a new copy of the collection is created whenever a modification is made, ensuring that the original collection remains unchanged and can be safely accessed by other threads. This approach @@ -2878,7 +3598,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce The copy-on-write approach is commonly used in scenarios where high concurrency and thread safety are required, such as in read-heavy workloads or applications with multiple readers and few writers. It provides a simple and efficient way to achieve thread safety without the need for explicit synchronization. -- **170 . What is compareAndSwap approach? ** \ +- **170 . What is compareAndSwap approach?** \ The compare-and-swap (CAS) operation is an atomic operation used in concurrent programming to implement lock-free algorithms and data structures. The CAS operation allows a thread to update a value in memory if it matches an expected @@ -2893,7 +3613,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce that allow multiple threads to access and modify shared data without the risk of data corruption or lost updates. CAS is a key building block for implementing efficient and scalable concurrent algorithms in Java and other programming languages. -- **171 . What is a lock? How is it different from using synchronized approach? ** \ +- **171 . What is a lock? How is it different from using synchronized approach?** \ A lock is a synchronization mechanism used in Java to control access to shared resources in multi-threaded applications. Locks provide a way to coordinate the execution of threads and ensure that only one thread can access a shared resource at a time. Locks are more flexible and powerful than the `synchronized` keyword in Java and provide @@ -2914,7 +3634,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In general, locks are more flexible and powerful than the `synchronized` keyword and provide additional features for managing concurrency in multi-threaded applications. Locks are commonly used in scenarios where fine-grained control over synchronization is required or when additional features like reentrant locking or condition variables are needed. -- **172 . What is initial capacity of a Java collection? ** \ +- **172 . What is initial capacity of a Java collection?** \ The initial capacity of a Java collection refers to the number of elements that the collection can initially store before resizing is required. When a collection is created, an initial capacity is specified to allocate memory for storing elements. If the number of elements exceeds the initial capacity, the collection is resized to accommodate @@ -3040,7 +3760,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce Generics are an important feature of the Java language that provide a way to create flexible, reusable, and type-safe code. They are commonly used in collections, data structures, and algorithms to work with generic types and improve code quality. -- **179 . Why do we need Generics? Can you give an example of how Generics make a program more flexible? ** \ +- **179 . Why do we need Generics? Can you give an example of how Generics make a program more flexible?** \ Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics provide a way to create reusable and type-safe code by allowing classes and methods to work with generic types that are specified at compile time. Generics enable the creation of classes, interfaces, and methods that can work with @@ -3083,7 +3803,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce parameterized by two types `T` and `U`, allowing it to work with different types of values. This flexibility makes the `Pair` class more generic and reusable, allowing it to store pairs of values of different types without sacrificing type safety. -- **180 . How do you declare a generic class? ** \ +- **180 . How do you declare a generic class?** \ A generic class in Java is declared by specifying one or more type parameters in angle brackets (`<>`) after the class name. The type parameters are used to represent generic types that can be specified at compile time when creating instances of the class. Here is an example of declaring a generic class in Java: @@ -3114,7 +3834,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce type specified by the type parameter `T`. Instances of the `Box` class are created by specifying the type parameter when creating the instance, such as `Box` or `Box System.out.println(name)`. Method references provide a concise and readable way to refer to methods in streams and other functional programming constructs in Java. -- **214 . What are lambda expressions? How are they used in streams? ** \ +- **214 . What are lambda expressions? How are they used in streams?** \ Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent functions and enable functional programming paradigms in Java. Lambda expressions are used in streams to define @@ -3917,7 +4637,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce the `Stream` interface to square each element in the list. The result is then printed to the console using the `forEach` method. Lambda expressions provide a concise and expressive way to define operations on stream elements in Java. -- **215 . Can you give an example of lambda expression? ** \ +- **215 . Can you give an example of lambda expression?** \ Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent functions and enable functional programming paradigms in Java. @@ -3943,7 +4663,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, a lambda expression `(a, b) -> a + b` is used to define a function that adds two numbers. The lambda expression is assigned to a functional interface `MathOperation` that defines a method `operate` to perform the operation. The lambda expression is then used to add two numbers and print the result to the console. -- **216 . Can you explain the relationship between lambda expression and functional interfaces? ** \ +- **216 . Can you explain the relationship between lambda expression and functional interfaces?** \ Lambda expressions in Java are closely related to functional interfaces, which are interfaces that have exactly one abstract method. Lambda expressions can be used to provide an implementation for the abstract method of a functional interface, allowing you to define anonymous functions or blocks of code that can be passed as arguments to methods or @@ -3971,7 +4691,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce expression is assigned to a functional interface `MathOperation` that defines a method `operate` to perform the operation. The lambda expression provides an implementation for the abstract method of the functional interface, allowing you to define and use anonymous functions in Java. -- **217 . What is a predicate? ** \ +- **217 . What is a predicate?** \ A predicate in Java is a functional interface that represents a boolean-valued function of one argument. Predicates are commonly used in functional programming to define conditions or filters that can be applied to elements in a @@ -4028,7 +4748,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, a function `square` is defined to square a number. The function is assigned to a `Function` interface that accepts an integer and produces an integer. The function is then applied to a number using the `apply` method to calculate the square and print the result to the console. -- **219 . What is a consumer? ** \ +- **219 . What is a consumer?** \ A consumer in Java is a functional interface that represents an operation that accepts a single input argument and returns no result. Consumers are commonly used in functional programming to perform side effects or actions on elements @@ -4054,7 +4774,7 @@ In this example, `InnerClass` is an inner class within `OuterClass` and can acce In this example, a consumer `printMessage` is defined to print a message. The consumer is assigned to a `Consumer` interface that accepts a string and performs the operation to print the message. The consumer is then used to accept the message and print it to the console. -- **220 . Can you give examples of functional interfaces with multiple arguments? ** \ +- **220 . Can you give examples of functional interfaces with multiple arguments?** \ Functional interfaces in Java can have multiple arguments by defining methods with multiple parameters. You can create functional interfaces with multiple arguments by specifying the number of input arguments in the method signature and using lambda expressions to provide implementations for the method. From 4017697139fd6a73254bffe0bd5a2d2b9469d20c Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Tue, 14 Jan 2025 10:51:05 -0600 Subject: [PATCH 10/14] more corrections --- readme.md | 80 ++++++++++++++++++++++++------------------------------- 1 file changed, 35 insertions(+), 45 deletions(-) diff --git a/readme.md b/readme.md index 59b69e0..04231d0 100644 --- a/readme.md +++ b/readme.md @@ -33,25 +33,14 @@ Available in the resources for the course - **1 . Why is Java so popular?** - Java is popular for several reasons: - - - 1. **Platform Independence**: Java programs can run on any device that has the Java Virtual Machine (JVM), - making it - highly portable. - - - 2. **Object-Oriented**: Java's object-oriented nature allows for modular programs and reusable code. - - - 3. **Robust and Secure**: Java has strong memory management, exception handling, and security features. - - - 4. **Rich API**: Java provides a vast standard library that simplifies many programming tasks. - - - 5. **Community Support**: Java has a large and active community, providing extensive resources and support. - - - 6. **Performance**: Java's performance has improved significantly with Just-In-Time (JIT) compilers and - other - optimizations. - - - 7. **Enterprise Use**: Java is widely used in enterprise environments, particularly for server-side - applications. + 1. **Platform Independence**: Java programs can run on any device that has the Java Virtual Machine (JVM), + making it highly portable. + 2. **Object-Oriented**: Java's object-oriented nature allows for modular programs and reusable code. + 3. **Robust and Secure**: Java has strong memory management, exception handling, and security features. + 4. **Rich API**: Java provides a vast standard library that simplifies many programming tasks. + 5. **Community Support**: Java has a large and active community, providing extensive resources and support. + 6. **Performance**: Java's performance has improved significantly with Just-In-Time (JIT) compilers and other optimizations. + 7. **Enterprise Use**: Java is widely used in enterprise environments, particularly for server-side applications. - **2 . What is platform independence?** Platform independence refers to the ability of a programming language or software to run on various types of computer systems without modification. In the context of Java, platform independence is achieved through the use of the Java @@ -143,27 +132,25 @@ Available in the resources for the course The two ways of creating Wrapper class instances in Java are using constructors and using static factory methods. Here are the differences: - - - 1. **Using Constructors**: - Each wrapper class has a constructor that takes a primitive type or a `String` as an argument. \ - Example: - ```java - Integer intObj1 = new Integer(10); - Integer intObj2 = new Integer("10"); - ``` - - - 2. **Using Static Factory Methods**: - Wrapper classes provide static factory methods like `valueOf` to create instances.\ - Example: - ```java - Integer intObj1 = Integer.valueOf(10); - Integer intObj2 = Integer.valueOf("10"); - ``` + 1. **Using Constructors**: + Each wrapper class has a constructor that takes a primitive type or a `String` as an argument. \ + Example: + ```java + Integer intObj1 = new Integer(10); + Integer intObj2 = new Integer("10"); + ``` + 2. **Using Static Factory Methods**: + Wrapper classes provide static factory methods like `valueOf` to create instances.\ + Example: + ```java + Integer intObj1 = Integer.valueOf(10); + Integer intObj2 = Integer.valueOf("10"); + ``` **Differences**: - - **Performance**: Static factory methods are generally preferred over constructors because they can cache - frequently requested values, improving performance. - - **Readability**: Using `valueOf` is often more readable and expressive. - - **Deprecation**: Some constructors in wrapper classes are deprecated in favor of static factory methods. + - **Performance**: Static factory methods are generally preferred over constructors because they can cache + frequently requested values, improving performance. + - **Readability**: Using `valueOf` is often more readable and expressive. + - **Deprecation**: Some constructors in wrapper classes are deprecated in favor of static factory methods. - **11 . What is auto boxing?** Autoboxing in Java is the automatic conversion that the Java compiler makes between the primitive types and their corresponding object wrapper classes. For example, converting an `int` to an `Integer`, a `double` to a `Double`, and @@ -495,21 +482,21 @@ Available in the resources for the course - `Dog` is the subclass that inherits the `eat()` method from `Animal` and also has its own method `bark()`. - In the `Main` class, an instance of `Dog` can call both `eat()` and `bark()` methods. -- **33 . What is method overloading?** +- **33. What is method overloading?** Method overloading in Java is a feature that allows a class to have more than one method with the same name, provided their parameter lists are different. This means that the methods must differ in the type, number, or order of their parameters. Method overloading is a compile-time polymorphism technique, enabling different methods to perform similar operations with varying inputs. It enhances code readability and reusability by allowing the same method name to be used for different tasks, based on the arguments passed. Overloaded methods can have different return types, but this alone is not enough for overloading; the parameter list must be different. -- **34 . What is method overriding?** +- **34. What is method overriding?** Method overriding in Java is a feature that allows a subclass to provide a specific implementation of a method that is already provided by its superclass. When a method in a subclass has the same name, return type, and parameters as a method in its superclass, it is said to override the superclass method. Method overriding is a runtime polymorphism technique, enabling a subclass to provide its own implementation of a method inherited from a superclass. This allows for more specific behavior to be defined in the subclass, while still maintaining a common interface with the superclass. Method overriding is used to achieve dynamic polymorphism in Java. -- **35 . Can super class reference variable can hold an object of sub class?** +- **35. Can super class reference variable can hold an object of sub class?** Yes, a superclass reference variable can hold an object of a subclass in Java. This is known as polymorphism and is a key feature of object-oriented programming. When a superclass reference variable holds an object of a subclass, it can only access the methods and fields that are defined in the superclass. If the subclass has additional methods or @@ -2710,6 +2697,7 @@ public class Dog implements Animal { ```java import java.io.*; + @Slf4j public class Main { public static void main(String[] args) { try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.ser"))) { @@ -2717,17 +2705,19 @@ public class Dog implements Animal { parent.child = new Child(); out.writeObject(parent); } catch (IOException e) { - e.printStackTrace(); + log.error("Error serializing object", e); } } } class Parent implements Serializable { + @Serial private static final long serialVersionUID = 1L; Child child; } class Child implements Serializable { + @Serial private static final long serialVersionUID = 1L; } ``` @@ -3945,10 +3935,10 @@ public class Dog implements Animal { allowing them to run concurrently and perform tasks in parallel. Some key reasons for using threads in Java include: - - **Concurrency**: Threads enable multiple tasks to be executed concurrently, improving performance and + - **Concurrency**: threads enable multiple tasks to be executed concurrently, improving performance and responsiveness of applications. - - **Parallelism**: Threads allow tasks to be executed + - **Parallelism**: threads allow tasks to be executed - **186 . How do you create a thread?** \ There are two main ways to create a thread in Java: - **Extending the `Thread` class**: You can create a thread by extending the `Thread` class and overriding the From 43d4fe6c43e86e09bbbac9da08182432b5a094e8 Mon Sep 17 00:00:00 2001 From: Isidro Leos Date: Thu, 25 Sep 2025 14:12:15 -0600 Subject: [PATCH 11/14] Added more questions --- Java interview questions and answers.pdf | Bin 0 -> 682176 bytes readme.md | 569 +++++++++++++++++++++-- 2 files changed, 518 insertions(+), 51 deletions(-) create mode 100644 Java interview questions and answers.pdf diff --git a/Java interview questions and answers.pdf b/Java interview questions and answers.pdf new file mode 100644 index 0000000000000000000000000000000000000000..940bb1f6c2b3f93424a9815fdcf6ed4543fffe99 GIT binary patch literal 682176 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�L*P#s^j{zN(0`rv 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

qfGk-uX2rJeoY@V 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
LXpz|~Vl7>z0AaUIsl++wqyjZr_l83dKb&MEZ z#83bhP#|_KPPuizC(^|CSJG^#H(04#ZkT<2AoXdB_ib zaEY3aCdV6-vN^D9!#VISab0#Lb6wU9>Sq-bavn3z1wj^o5c1Td@@K8drpj8AM^5EO zMw$plAg5iz=m+I((HNZXro=JP;+>Q&7G!7pS78-OThG>HPtm?@BX=+IYX-N*ip!DU z`|o=?kZxzE(6Q*N2DMeor)|roPT7h@%4&@~t&PHLR+ZkbBSI;9bLl&HbLA0rX8~nx z%dRAD%jQnm)~GH2M2P1rW|r`&{Bdxb9QSxYGPWc-K_^vEWm^+dUwQEr7Kqk zIObQ-B)YM7<6gGwDzDtFul7HDI2SkI9eBu~W*3BFbta2)WIA2(k72}HGo5EnS%urJ zFe5%`I#7gCr51#!Vn6nY46P*AN4p@nB@TElJY1ON;A7spZX>j}wR))vdOnX6QQ{?7 z#AZu z5#ZS^u@lp?d{X+t^)pz8({SW8*lqHRRd0im%1?)c1B+^fQT! z$-#cz3?ilN)hgud0u0WKI3tM)Nb!#pp-~AmJ46Qk4uO((k6)~2*sogT{L*YQBB&m; zd>|`;K>SP?#o6CV0hHBg;aR-c>adD9UaLm(F75NQhj44qIiKh{D6#cGqEE(go7PK0 zgVU`Hri*gsWhc&AP(5gw1H)oS{v(ef2<2y6pu{mrWM5K6lXP+8cK&z$!;as4}$$JtlP?Mo`KL(Gi5+Sk87 zG?pR=bh_qaujOQ~Oxl}31l=FS#+S+?6X3iQzV(xD*l1|{RtAu^hJr{DG}V92hLLv4 zKuZy@>COw60*b>JykwB|&+UKxb^0a{3Lx|B0@ZxW{PMk#>B8F`5RT~E{DGP+E5igh zr5KktjoLJQgnv$*x@iMxK0H)Iw409FRaoT+*zN;cy!Rl5RkHaV_aJRI`;bGc#vz4G zv-z!#AP1HXLGzjax}FD%W|4*e2V}M&1pR=_bj{TK|6oimby-KZ(zYG+VuW8R_v7@^ zv#7~IqB+wj08?41Vust;5U&#q&GreDKh4^J6b`7Z1^#v8f*g3};l`L1ZWHZ4S~sa< z9=fiURcxJdE219H?{AK;GLPC92yfrI^Q_H@?~bZlBf1_9+rx)$>yn+Fr4uY&)qoz} zan|R+$#r$_w&Uzt8?9D}5zrd^+IVS4Q9cvNhPatPOK3Bd^VZOU;j}J4` zH}$JF^hfb+c8x@x#zz_VbvCfmlwq?V5L<&d@9d&KCp!n(9(iyc`E1LNoVU~Vvpfds zo5^zGz!c{$FrJfCH!V%m=MV^a6(^zG<8 z@lQXCg!cI$--8gA12s9~D#`Wm!NNkE{A^4xhtJRJZSey7UD`4+9q93tBSZ6Z35<>_ z3G?Dv)O;_789iHjG82(w=*6d;?2gyZ?mrB1H<+*7s%l1Qc|Ixmzl zBnh+Tx;8B3ylVS{to$;4l(PfJ#yB3VDxy~{)#-yz1~(_@e=08jFT<=@nAuqVADaj* z^_T;3#Gm5wt|^K1R!CrMyGMx|nCKoj4GqL30r0o(Uc?CX++n%>W2PZ`cz~VM|p5mMC37m`yj^s4w%gu@y?Yc}Yd$G7e+xM^tnQKMc~s zSxTk#-T1P5osb{G`?bI1m0~-R3kukOK?pDmgAAz-A2Bn%=VT%+8 zX)2XeXm`li0M_E@5a>oB+xD%+veXNbcwe^&dKu6xdZse5`uV8kRfzh;ud%bRLh-p)yEC#60+XE=||YF-)kNQ z++Tn1ROwIUtIz6<2+BBeP9R~b_7L?iNdm@Nx_knZrf-X5)G0Vk3uF1PUmjeFyiiRq zP5&|cw&`cv_cJR}NMp>W9`cfFJwg2G06pR+LgZ!ehoq|>$ae`E#M-=r0D%~mVUU}f z%ZNv%(}y2nHq(`8HWPA}l3#{K_~yQyfyEK*zMWhezr(w~W!bjoGJyH>8b=49NXLJrhMdY28Q&uLVls6B z`lKO>TKo^4P{os{dpUdWikBFKgE{btJly=_Y=w?%i835GRVWnXj+c#CSL>kifj>2d zh)M#WH#`5??&MA_TDJV#IQz*rL*`VQrMRuPw22cO-tNO&P8CG3_=hY}eGsZmtFA%M z5mHE_%ET3NS*|fNZ>&!zV$vZ#YwD2m(Z>=!rKc2o54;B*L89Y}m4zM#khKeNE>={` zPM13FMdZiLoYunzLd(o-g-(?XY7>G2iucMW3{sIvEDA_u-Ap{20gDZvH;uUVYN;Cn(&R&svb{X<+b;+9cFAm=X z+<$yF=^RH5u0lWbrS?Yv-D>c+6g6Pp!fOoiTU%3G-@GRp!$gRTmdK#jcXo%zsIk8+ zy_)-N*LwX)_AW^+q_^C=r4=cQXvPNO`7qV}nCvMHH$}?da_!Vc<<`@?I_#;u62*wZ zHFTi8Jo|uR-ijaUs{zT60Hw+ADEK_HZcgK|+{kSsy}WAmFz-Ns*96su=U;pC^+P6I^;UPR^4RR8%zuhl!j*sX0()MvbO0~wcC_XF`8HVrejoO1Ec}|aO z0^DFZrhXozr~Y>><=36(eq6PB5+js1(0qm8fH~iiMU#d_ElJMqH#d?(1#4!d*p3{7 z0nP&k2g9@`As;VhLf#(cCH4h$ubD1ew6m{#UudRNBs_+37L{Bo1_RnENZ=nkFzK31 z68JTe${XKz6*beP6wJ_rMQZn+Ei%T?6;jt$5&4^+MrSrKOG=FZJs_u?Fuybi92wdNJHi(W?sR zx2Joj_gSJL&4`F1%^A0=Kwjm0t&#n!FJlXJWy1S;8EVdos7VJv_=Ld z*}nET`2j}pi;#{OmupK4c$mxXm<_Vpj^WSku{SjlU&$78{S9^T!^bpDz|d==FR5qy zD!^Tcdza3D`w>WU*lG-Pf#{m%DX0t=Fb+XKUfoN{8SF3khcFYp$N_iRe_sQs|=-TQ#)*)y#W1w>J|A2 zrfV><)%%l7$zytLQZiXpa4eTb9obq?vrZ9MWYO^~cDTWJT#mAEZWBJbOz1d@B zP3rxr6LIdym{rcHgLkZK6YLdW@M@(Js39U0cmfx;b}E$r<-By)h5b1j+#C)+IT-h0 zsohZ*Dsw1xd(uje#W_PT@T=JfR z`QV47xsy$%^!5~@26TLoGf-x*OFs5KLpnefFd{cue69)4q|5_P5zPAGZL?A5?lfOw zEy=oR4Xg@pwRZQ|Kc0dcq)*gJ&-)s5#6|2c>b-X%J?b~Pkh^@Y)m7%Rg+I?n(-Sc6 zr#M&Nzy<3Ak@YfT;-})~)3C$!vd8!=f{_zwc%t#F&?p)_&qK0(KS_V6vFKWDtC)=_ zt9cS(fkw@j$YEZEKbZ-b6qHDgX@lmPUdyF?eUrvAol_O`t9RQVK`C-hw9gfDU7CnLV5!qCab;KVbqd`cSm>?6y> z4K^EA&DK=Fww`soJLqg3iHuk2UcIG)-y~z|%FcdHCHpPESLDQ=?1~Fv`poR>5s5YX zP1_LLLC{XwdffxA*e668SKRX=T&$F_WSG~2wSO*a*T%+t-}*`ZMQ8Z^9OSU)w@Pqr z!R{iWvzDT0M;>IH*PX-au)*EEA-ccv^qb_pC(Cwki%u@1Z(_eucLt&;dK$}LujKbKgT#>r9W5Z!A8G-Hh$BEXtW1J z%!68~jMU!on9bV;I#*OD{KDN~a@s*1pc!$XrCa2kHVv+^_zFhc25%3*fu(`J3Deoz zwm+Vr^ZW7e??~VtVf;o?>67o?y#B_~uS52bqetuYw<~TtQdaEqtN{{y`P5UJGSExM z`!SPim`u;v@1^n2y-uO)Zm&AcWPUSxyLWe(qU`wj<1 zzvwgVSYyf~9*qCJK%aKw^}6k);CjZAE4#QYAG7DXfBqIycN<#1mg(n`I$#w1ljFBW ze#?ToRM_vtXHW3?372+DnBN>4FCEtW5B%H<$=<5{hI^P#Q`>eTnbh;@Oqy%ye9=+f zny#v#%Xxi{6DC9I94L^XUqhWHP#?X>2?MLEvQj8XPUS{(iBdmxcTJ}t7ZRi`ceK=_ zj{%BS#1AD{q?(dUvW&s8x>Aw9t3J9I*-X(mYgTW;@pM0Ojo!XbgUDou^=t&@Lu?RJ z!i-*qnVpGh#c`-f@K1bq0l`#kU>i#6<*zKLa|SC#HE;$l^d23A0Z5(9*t13%ziZWCxaq;PD zh&f8l3G9?DtI124+!-nnT{Kn9g$OQ%NrCLPDND0zmp@Zo^S~L&fY}vJpwmg69(p1eKAxK@sh2yvUbTNjm7VkA+L46n+@4W&Z zN8+BvB0_Ph<%pYs$nI){0dE^?pi4(zzc%zn+9G-=d13(QD1dSR;$meA4cy*jnNf#$ zk@0x-2)}d-g!{|S{D`tMMg1a^oa;Ga+#g!uNqi;J6QSyq0Cr`MAxn%)ewk9(x^X!VSRrUjQ2euck z5(5JMD&FIILMz_Yw$h>I9z}nmH&_@*sSLufK+h}7Sk6YJ1Dt+xR3+ks&4Jqx+{ zht5AVRKub+y=LFyS|F!RUt63>?%znbjacxrS%Put$T3T^IbLwCxDGI*=}7UV3{K2wvZ^I@ z^ke%g@9NM({tcz$isDdzjL&yduoqT+l%&p7b7TvLlXr^+ZWH%iBkq1v5PduXp{rQ+ zQa}iVW$4MzoG{{vRP7)@@sl7NBI2|k-({cTLuL6E{CULM%^qf>TR303E_!18t)`%< zIb7fjl1a!dQ@cw9(n5Kx2x*Ky5NsQ@B?S~qHIU?QW<;@Dcxvc1+f=cPyQ>2{i>~2c zne@0?>;|X#n^pNlY1XOwgp)-ddd_4aOAOxzKUhKiRKPPD$|YwA1GdbipC41zhf_IE z$8e=x-t0~xFNSKy5I4VnOEkws?8oEEUzGEM{XEPGwhz&3HbG91ZxN4I8nvhH8a#oT zYqCb$uovFx-9iJ;-Ij?@tEp;acY6eC^-j#w2YjnbMA~sHUOHz-?8kpXqL# zgsWw1U8MFbksKwDT=?vo%9Gc<_->QX#(lC|phTwwI{Oj%A!GQ;&*KkVA#gEbE*?-%i5AC-j`dm4L`7zLpnj7BxtAe+(7i8#5?#OV%y7^5DXM#9&h8*s1xLb&U$*!L42Q3)rX42p8NqbqtTLtg#GX@yn$8W?g9T5Nh?3q zFF9NOn+O)P3FtN~TIbicpP7hs@kULFKTu(fXPuLX3%vsw-1oxG$rDT`4eR0jdh?SD z%A&%Z^97=WoKNg&%%5J!3X?F)t)7~7DD|3PfFW_iEXL7-Pk=v#`zUIg1L1NkHFb2O zLSpc4u>+J`);=1`%PD0Os=^BX^&F~9*B`jqV1!!IPNjK4KVaIGZp-F|IU7oxl;*%M zDt}N=ApVi?(}GfH;OTqwqG27Q?@2^x?T}>OJUO2Yvfb-k3)Dk{)Jr*cP@y&X zC|;s@Yc@T(=S;Gn0(A1W&2 zKiXEj@osmN@j^QdZeZV^$;cgj$#cFtFoG9J1x$_c_K4H-8GBg(lU=2&MlZkyX< zRNf%>ZEwEd_*z7d7|kgf5o%pNDMJ4BbybdTo|b$SDbPi*m5$AvYbGgW1XlLUJkK6| zmyHF9R5a%s*On8GttzG?8}!f~d0Ce6nP(NSafw=1w+Wy!lh>1e^sew_Gw#})cFATB zweqL#6$#z9tZX1U$|8(*%)Jjfjb;OtAmwiWG9`iS(SvCraXps=V{$F6-X_llb*+t` zWn-@{p(m^5?%|B+Hs40Jl}?UIH)Xn21UAVm*2+NqR#1;DV_1|CaE2Xr6ooyFeAz3l z9AY=AF?-hdb64K!u=g$yOklJw&*c33RY(jg2P#u49sFvh9;}5-jv@~DuFITNEsoX8|S+-6k&Xig1 z9sbifINHI+88?-OXbKO3n5RwSd?8ir)^7S(jrv*%W*bd8G9dX@Shk@tnSY(*Cd11J zwxLEc>20;sSojY_-Ca_KCd|<{78amYZjO8Xs_yu~sFeoL+$bGye#O#Qs6#LhQ?1CjvdglrU3Wmpo5taMVN?=!zK6fyR%zlxv# z1P@{%TEwk{{08_DkFm2PQy$m1CoOok47S6GSYcC^HoUk@XdRg?&wrf zojviV80kZ^U^r=4{Q0CmV*T#_-P#k1$Qps;9+vbW?Lc^=D<}#xCaLaMU<=2=CzmuE^IN5>0 zi>$ZqK#I!pZ(ef~iG(jgb|}tv+ZO({4fGo(NNC3rZ#pz?4T_M6owm;9CgD@AYg46A zv@Gpoi~JXaeDI6s+_CLs0D02!>H3=EQnn%Faf6vL4^B=?x1ZmWm}T7*$yr}F%X!SVrL(wN%DqWfQ>;^Jr&oEc zLDAGYnhPInfGd&__U6aY{%<2|McrwnaKvg}`aG|axbLm5s<;-Qx^T@S9LxMkMQvmg zfd^$ntVM|Oi_kG5=#Z#gTTwE~yi5K?i80{xSIRR3bK729)|r3S_(f0l0m`!{CG3W3a$`VbQ9=_-wspU1XlSHhS?O z$@*d)UIYnyA`wj(%y`mFkkD2|$EoIbJn$inlvdjyJu6ykZjJDHmD+r(lxN^@E?c2( zvm5Ubfa2RNp)qNvifPo)OWO*h^Hubfo7%*M-YuIdor z+3}~Yl>|vkpb0t}zUR5Oj_QzI>b|{s+QkJ=nzRY)Kj8M-Vek72liNL3n5*@k3GV2j z;P2heR8>Fcqxj-zh^;is<-1Pr$*Adt)%P#{soBJxv(?tOq^H7I2EN7otif~evbn>y z_PoOK&T{GFb9J6S)EV$>V*xtW-0Td=+{0+W|K5N{hg`DZwXo>l8t0W6;EFEgY%a4G z{#~e6(-*d6n|d5OWRktY`GU`rzo$lAS~749`^UHuI<~kd#?}Dt6_PscySuV%vvU)^ z90zSb-!Xir%&@ebHG=J>#Qw_K*U`e|Knh-qBoG<7@B@xX;?Q*lcl#v(Nwe3W1Amk-%53 zy-)4Pc%OdjI?8{?AbjA(-LpPU>YoW)A53HYtZw!0-YhO5N+a7vVwT>O+zC0Qd3aAn zcEsYmj*R)N8fFw8cD8Asyr4mr-5oghHd#N;8r}M5-do>+!(T)}5Y!W4n2Cxm^$%Yg zUN~dHBBcFb9tlpl6ImjkK({92+&O8agsSz8{g121g6w+yK=tiJb%$F+a~&1WN58>=vEBlncYu z^LS$O*zCf9$A2u=IAc$b<}3z+B|V~}Davg;QN{PR%2sj(i2fQM3}nQt21!LBvoFOQ zawGu0TB=lhkpPxWJdyrlJI9*mqCu+`ilSCrGJ!%U6dD)G5 zMuQII`3i_SM>MG0#=Kg{DmUX(`R_t47ICU}RMDG(b2jX87bz@V8cONQmR0OCpoHzl zG&1lC8VSBiD>=CJ->Fc6iJC2s z&3kOy_t>^=+qP}nwr$(C?y+sp`Q~MknaTU{e(dZ{b*F20x|6O|ReLQDc^<%6gn1$u zYn?~H=kZ1v&@f>)&W_ef`P$_jfY!u99M@u)?8}zg7{-d5&8`+b+()pmPi~>qcLCmu z3_Al+NR7^_QPR=tdip;M&U5EOTKq4j`PkMTQWR~)Y4jt>a{bL@TVtcsLj(sq5Tbb* zCuN{5iNi5#Fy~&u>?AnRXT?*|p~=&zTIZr;r#37_(xX3stc!GF{|)wL{~zjJFfuaG z|G(H<-S%(<(I;28{{*1qgU1iwPo(qWgc#@^n590D536tH2mD?+R~XK;gu>nkyuOJD z*0STGr$g+j%1KH$vG2u|u@gpQMt%gnq;^+^H}}-hI3TSF#s2*WueA3||DE-pNeY}U z4}qGNUS`(m2OY1}+cX_-cFzyLEbkYY{)4=%0;TYnj}!vGSF4?=w;rl*1~cTNkK*&3WDEZ@~3aBQ^3o~$HP3750|K;RQgfVpqmt@H-s*X z0Rz-E!dgc>1)R|F$v0Jl+I#6QH5bLQNL`n+C z9D41Qj$G1unB{ z1VxXst#HJR+-dJI#)9?y`t9*fRvbcqKtQd2 z##$NAYEEm+{7axFa5VAATqZ3vdrkphB~Mv&+@mR7ls}j<3X583N`o3^UF{-|RpXy6 z7BhduQXVCsSXge5XhT!21PcI2Lz!y;^AX9@CPAmcsJCuI00gX>>r+=%q)cJ8m7fV-!=eDbWQv4y zsu_pB=^JNqTA{^tx+sIf`&TgFQfs$zRaL-#hExMFlA=628Q3HJq2_I1i%((q(Quy` zt#Ueze`|GkvooD+o-W0pGd+P-re)~<^e#xmml0<<6h4Ne!*67uVHwi}6qsmPTMC9@ z?7wX9184yGSXk9aj*~A(L8846kBU1VprcDWVKVvqMmvzi>ZE_FzI z0?nVsp34Y2Wqiy>1?TTnsgy^>l{|~KbanRXT1$=woIE-@*ILp~ugGaM`dD6J7J4SY zF0nW<7jpbaUV5#Tc`Uz0!=TB1xh&RvlfKZ3-*w)$>(ZiCbT&%;T)hY?eEki@w(b{a z4mf3QH1NL*o#1lI;$m)g+2)RxYhge1<>`)5&H2@ zkZCA@hk_=yAQFUpOG<|K^m%0SVZvCH$1@#KXrf*E~@hb7l;Iz;AKnz8G>6Q z4GI0k6;*msMN1q+Wu`fW$%KWf8ETBtXF6>xDf`nau3BtPC+(KeGcx$3@nfA#-AWI@ z*5-rcU_)6h*umpLYU5M@7nZ>(>-9yJ$n{CQDiwag{~c%sI>)_-VJbB5DWmR}b18%s zcl$Hs2hWFctHyM$p@~d+L|`gLL{=@hEC&`ha<&xDl+J%BgPU!SP!a&ZcNT(+Zqp}c zgt8uM4@my5PK9!SR!5v>?4X=xdtdtdBq&cF2AO*ejj0^gHA2Yi;4Fui|G+&eoJ#65TD`S8FJ3F^zOI<|+F(MoUr#IM7OYIbG-lm@aYH3EY zS@j>Cc`@!CBHtV7!CssMC~Xv}t+wz*$D=hPiyW?nZDGYl0$T|4>AJcPyNKB}gMUa`n-)*fj zOQ{9n7OUa1GW^=x8{6b51@eS; zTJ@B`7k!58M5-EkTdWjrT-D3@&qGb=e!(~2b3k-RE6HsAYC_^AQeFz!wSCQ{7hT?z zj?T+~{@u=IEuu$Mm?(J@H745S+$!yAP_e~VqO0I_*zqou=#$eKdiYZd*v>zYxEPMV zP1Y6%x$@{VvOoXfo_XtA|CR!h@r9mCyJ*4CU+Z1xsrzFB|QpkiFZ;5)seb~cslxCEWPdRiDp zu3GK@rG?3!7^Febt^lP$kw#OtltbM_!wd7ep^tD#r6M+p@kM88UbS3)mp@B0_Rm;u z6|x8;xMq9D9!LI)2$RGjG{}jhIAcc_tOHc6U*}q!Y?Z#S_+qy`oF`^^LHa|R;++dnH6GOkJzbF;0|d-tVF$k#N$Xt(<4(yJJ{Kx zyb~%B%bNn_)KPX_DOrJ;($a!+!X6}b(ff-l#Z>27Rw9)R3r}_X4dAAMV~Pqi8gtP) z7L!(Y!ItVQ1SlCgHf-66l{b0}<0Dk0l2TTLuGvu-m_kCbsHA7sCuGRv_LQHUV}hvwJ+S_dgr$9$VQIVAd2H$ct{Y!5W;%SCRv1yK=q23Sgwb9X243iv!MJlT z64z-7>9p~ugm#%MmHT7<{oDbAenVLr|9 z<_J`3EtYpuQ79ug)J62v|>^2_VL_nmcLF>hUqlf9?xL@Wl}jip@)@0%*FiXOTkZz*q6f&Uyy zKLb8>BXafhurA@L?55MlR^4Oc%IOB+ zqv?He8oGA(@h*fS`Z0uM`glkdx!$sVhW3bDJnM_wtYfgvj9I&%G zY~J~@S9>607X54xM4J0c5$ojLy|AnF^PEOqH|02EIj~6Jj%^Y_>l~^TEokv#IDHFz zeb2b@1Si0S_W|;%(DiXdMIx=pboSz0a>}!#)^lB)f4g-fC0tMDV-BL@g!6)8NVKC7 zbz@vaRJ6ARD_#h8L9N^b+}*vKXGmQ%s#Z}DGXdDZThp1uvR#Zco5~usFq!%>51Iql znzWw-W%>EgXePT|>Ss*_Txw$xVzEc-UYf4o?6-v*-ug*xvht z-`}EeqFcfj7f;j~j&`zqW1d8fgvp7q9d(xS%4MucAZV0p3`Z8z>-cc)skk~>f)BAI9`@$>T8(?E{c6+c0vJDzC z9{&CLG)m$7_LVyL!h3#}>RY<*wUn47F>l067Lh0VfX4Oy=<)hJEM@QUg@Hu!c3AXv z8K~r<;NjuT`-%UHocL(G(Bu!vU zfQ~bpU;C?^f-J;I#mV6PXPk1HS(fQWt6sBSzCZ;FMKj4$dk3godQ*TF8o?lD1vy=M2DL{z7xh%@p@ldjdSgLdDqSTl zqK4I7Gjf{UdYYEU3i@+%FE~p1`yM$w0VPp^7A^*(9&8sVp-O2uK(LlfY=m_&4IZDf!C-94kwmmy|AueDNlZ zsG7vM4iJgh#;+Aynm8{ovOFF(dhf+xQh?H>ZLWfXeVwsaZO~;jYl=bl(71eh*6!hL z#l>L?M#}28w#+4-GKQ0W^mqA8dDSP@jAXP>=*WMZJYZ|Wev{Y=Tu8pH%?l^?*gl6zYRJy;*QYMZRvJaR-$Fc@IFBKTa z4jI1H_u(J4?bR!OZX(yFDpXLu6qV|Kj-OS4YP;}Y>VCTo5n!Ri#FYFV3@uUsxbi@O z3M=NKmi^fC4C+CTpqC9{%uwx^4#}RVf9nH^Afnd!s->T?(|ELZfi^`TzwHz)G&>6TpF1UTs4 j|mN=PDBht2WXo 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 +* [Java Interview Questions and Answers](#java-interview-questions-and-answers) + * [200+ Interview Questions](#200-interview-questions) + * [Java Platform](#java-platform) + * [Wrapper Classes](#wrapper-classes) + * [Strings](#strings) + * [Object oriented programming basics](#object-oriented-programming-basics) + * [Advanced object oriented concepts](#advanced-object-oriented-concepts) + * [Modifiers](#modifiers) + * [conditions & loops](#conditions--loops) + * [Exception handling](#exception-handling) + * [Miscellaneous topics](#miscellaneous-topics) + * [Collections](#collections) + * [Advanced collections](#advanced-collections) + * [Generics](#generics) + * [Multi threading](#multi-threading) + * [Functional Programming - Lambda expressions and Streams](#functional-programming---lambda-expressions-and-streams) + * [New Features](#new-features) + * [1.- Counter Component (useState)](#1--counter-component-usestate) + * [2.- Toggle Button](#2--toggle-button) + * [3.- Fetch API Data](#3--fetch-api-data) + * [4.- Form Input Control](#4--form-input-control) + * [5.- Conditional Rendering](#5--conditional-rendering) + * [6.- Todo List](#6--todo-list) + * [7.- Theme Switcher (Dark/Light Mode)](#7--theme-switcher-darklight-mode) + * [8.- Stopwatch (Timer)](#8--stopwatch-timer) + * [9.- Search Filter](#9--search-filter) + * [10.- Custom Hook (useLocalStorage)](#10--custom-hook-uselocalstorage) + * [What you can do next?](#what-you-can-do-next) + * [Troubleshooting](#troubleshooting) + * [Youtube Playlists - 500+ Videos](#youtube-playlists---500-videos) + + ### Java Platform - **1 . Why is Java so popular?** @@ -97,8 +106,7 @@ Available in the resources for the course on the values. - **8 . Why do we need Wrapper classes in Java?** Wrapper classes in Java are needed for the following reasons: - - - 1. **Object-Oriented Programming**: Wrapper classes allow primitive data types to be treated as objects, + - 1. **Object-Oriented Programming**: Wrapper classes allow primitive data types to be treated as objects, enabling them to be used in object-oriented programming contexts. - 2. **Collections**: Collections in Java, such as `ArrayList`, can only store objects. Wrapper classes allow @@ -114,8 +122,7 @@ Available in the resources for the course type of objects are used. - **9 . What are the different ways of creating Wrapper class instances?** There are two main ways to create instances of Wrapper classes in Java: - - - 1. **Using Constructors**: + - 1. **Using Constructors**: Each wrapper class has a constructor that takes a primitive type or a String as an argument. ```java Integer intObj1 = 10; @@ -166,8 +173,7 @@ Available in the resources for the course In this example, the primitive `int` is automatically converted to an `Integer` object. - **12 . What are the advantages of auto boxing?** Autoboxing in Java provides several advantages: - - - 1. **Simplicity**: Autoboxing simplifies the process of working with primitive types in contexts that require + - 1. **Simplicity**: Autoboxing simplifies the process of working with primitive types in contexts that require objects, such as collections. - @@ -182,8 +188,7 @@ Available in the resources for the course objects, without the need for explicit conversion. - **13 . What is casting?** Casting in Java is the process of converting a value of one data type to another. There are two types of casting: - - - 1. **Implicit Casting**: When a smaller data type is converted to a larger data type, Java automatically + - 1. **Implicit Casting**: When a smaller data type is converted to a larger data type, Java automatically performs the conversion. For example, converting an `int` to a `double`. @@ -655,7 +660,7 @@ public class Dog implements Animal { - **40 . Can you explain a few tricky things about interfaces?** Here are a few tricky things about interfaces in Java: - 1. **Default Methods**: Interfaces can have default methods with a body. This allows adding new methods to + 1. **Default Methods**: Interfaces can have default methods with a body. This allows adding new methods to interfaces without breaking existing implementations. ```java public interface MyInterface { @@ -3422,12 +3427,9 @@ public class Dog implements Animal { These methods provide a flexible and efficient way to work with key-value pairs stored in a `HashMap` in Java. - **164 . What is a TreeMap? How is different from a HashMap?** \ `TreeMap` is a class in Java that implements the `SortedMap` interface using a red-black tree data structure. - `TreeMap` - maintains the order of keys based on their natural ordering or a custom comparator, allowing keys to be sorted in - a - specific order. Unlike `HashMap`, which does not maintain the order of keys, `TreeMap` provides log-time - performance - for basic operations like adding, removing, and accessing entries. + `TreeMap` maintains the order of keys based on their natural ordering or a custom comparator, allowing keys + to be sorted in a specific order. Unlike `HashMap`, which does not maintain the order of keys, `TreeMap` + provides log-time performance for basic operations like adding, removing, and accessing entries. Some key differences between `TreeMap` and `HashMap` include: - **Underlying Data Structure**: `TreeMap` uses a red-black tree data structure to maintain the order of keys, @@ -4791,7 +4793,7 @@ public class Dog implements Animal { ### New Features -- **221 . What are the new features in Java **5? \ +- **221 . What are the new features in Java 5?** \ Java 5 introduced several new features and enhancements to the Java programming language, including: - **Generics**: Java 5 introduced generics to provide compile-time type safety and reduce the need for explicit casting of objects. Generics allow you to define classes, interfaces, and methods with type parameters that can be @@ -4821,7 +4823,7 @@ public class Dog implements Animal { These new features introduced in Java 5 helped to improve the expressiveness, readability, and maintainability of Java code and laid the foundation for future enhancements in the Java programming language. -- **222 . What are the new features in Java **6? \ +- **222 . What are the new features in Java 6?** \ Java 6 introduced several new features and enhancements to the Java programming language, including: - **Scripting Support**: Java 6 introduced scripting support through the `javax.script` package, allowing you to execute scripts written in languages like JavaScript, Groovy, and Ruby within Java applications. Scripting support @@ -4852,7 +4854,7 @@ public class Dog implements Animal { These new features introduced in Java 6 helped to improve the performance, productivity, and functionality of Java applications and provided developers with new tools and capabilities for building robust and scalable software systems. -- **223 . What are the new features in Java **7? \ +- **223 . What are the new features in Java 7?**\ Java 7 introduced several new features and enhancements to the Java programming language, including: - **Diamond Operator**: Java 7 introduced the diamond operator (`<>`) to simplify the use of generics by inferring the @@ -4907,7 +4909,7 @@ public class Dog implements Animal { These new features introduced in Java 8 helped to modernize the Java programming language and provide developers with new tools and capabilities for building robust and scalable software systems. -- **225 . What are the new features in Java **9? \ +- **225 . What are the new features in Java 9?** \ Java 9 introduced several new features and enhancements to the Java programming language, including: - **Module System (Project Jigsaw)**: Java 9 introduced the module system to provide a way to modularize and encapsulate @@ -4923,7 +4925,7 @@ public class Dog implements Animal { - **Stream API Enhancements**: Java 9 introduced several enhancements to the Streams API, including new methods like `takeWhile`, `dropWhile`, and `ofNullable` to improve the functionality and expressiveness of stream operations. - **Process API Updates**: Java 9 introduced updates to the Process API to provide better -- **226 . What are the new features in Java **11? \ +- **226 . What are the new features in Java 11?** \ Java 11 introduced several new features and enhancements to the Java programming language, including: - **Local-Variable Syntax for Lambda Parameters**: Java 11 introduced the ability to use `var` as the type of lambda parameters in lambda expressions. This feature allows you to use `var` to declare the type of lambda @@ -4947,7 +4949,7 @@ public class Dog implements Animal { - **Dynamic Class-File Constants**: Java 11 introduced dynamic class-file constants to provide a way to define constants in class files that are dynamically computed at runtime. Dynamic class-file constants allow you to define constants that depend on the class's runtime context, enabling more flexible and dynamic code generation. -- **227 . What are the new features in Java **13? \ +- **227 . What are the new features in Java 13?** \ Java 13 introduced several new features and enhancements to the Java programming language, including: - **Text Blocks (Preview Feature)**: Java 13 introduced text blocks as a preview feature to provide a more readable and maintainable way to write multi-line strings in Java. Text blocks allow you to define multi-line strings with @@ -4972,7 +4974,7 @@ public class Dog implements Animal { - **Text Blocks (Second Preview)**: Java 13 introduced text blocks as a second preview feature to provide a more readable and maintainable way to write multi-line strings in Java. Text blocks allow you to define multi-line strings with improved formatting and indentation, making it easier to write and read complex string literals. -- **228 . What are the new features in Java **17? \ +- **228 . What are the new features in Java 17?** \ Java 17 introduced several new features and enhancements to the Java programming language, including: - **Sealed Classes (Standard Feature)**: Java 17 introduced sealed classes as a standard feature to provide a way to restrict the subclasses of a class. Sealed classes allow you to define a limited set of subclasses that can extend @@ -5003,7 +5005,7 @@ public class Dog implements Animal { enabling better integration with native libraries and systems. - **JEP -- **228 . What are the new features in Java **21? \ +- **228 . What are the new features in Java 21?** \ Java 21 introduced several new features and enhancements to the Java programming language, including: - **JEP 406: Pattern Matching for switch (Standard Feature)**: Java 21 introduced pattern matching for switch as a standard feature to provide a more concise and expressive way to write switch statements. Pattern matching for @@ -5058,6 +5060,474 @@ public class Dog implements Animal { cloud computing platform. Java on Google Cloud provides better integration and performance for Java applications running on Google Cloud services, enabling you to build and deploy Java applications in the cloud more effectively. + +- **229 . What are the new features in Java 23?** \ + This section previously contained incorrect and fabricated JEP references (e.g., JEP 425–429 with IBM platform/cloud claims). + Remove misinformation. Update this answer once JDK 23 is officially released by consulting the OpenJDK Release Notes + and the list of JEPs targeted to JDK 23: https://openjdk.org/ \ + Until the official feature list is confirmed, avoid speculative content. Recommended placeholder answer: \ + "Refer to the official JDK 23 Release Notes and JEP index for the authoritative list of features. Replace this placeholder when the release is finalized." + +- **230. What is a Hash Table as a data structure and how it is implemented?** \ + A hash table is a data structure that stores data in a key-value pair format. The key is used to access the + corresponding value. The hash table is used to store data in a more efficient way than a conventional array or + list. The hash table is implemented using an array of buckets. Each bucket is a linked list that stores the data + associated with the corresponding key. The hash function is used to map the key to the corresponding bucket index. + The hash function is used to calculate the index of the bucket where the data is stored. The hash function is + responsible for mapping the key to the corresponding bucket index. + +**Addendum: 10 coding challenge exercises**. + +Each exercise includes: + +* **Task description** +* **Starting code sample (incomplete or incorrect)** +* **Final expected solution** + +--- + +### 1.- Counter Component (useState) + +**Task:** Create a simple counter with increment and decrement buttons. + +**Starting Code:** + +```jsx +import React from "react"; + +function Counter() { + let count = 0; + + return ( +
+

Count: {count}

+ + +
+ ); +} + +export default Counter; +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function Counter() { + const [count, setCount] = useState(0); + + return ( +
+

Count: {count}

+ + +
+ ); +} + +export default Counter; +``` + +--- + +### 2.- Toggle Button + +**Task:** Implement a button that toggles between “ON” and “OFF”. + +**Starting Code:** + +```jsx +function Toggle() { + let state = "OFF"; + + return ( + + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function Toggle() { + const [isOn, setIsOn] = useState(false); + + return ( + + ); +} + +export default Toggle; +``` + +--- + +### 3.- Fetch API Data + +**Task:** Fetch and display posts from JSONPlaceholder API. + +**Starting Code:** + +```jsx +function Posts() { + let posts = []; + + return ( +
+

Posts

+ {posts.map(p =>

{p.title}

)} +
+ ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useEffect, useState } from "react"; + +function Posts() { + const [posts, setPosts] = useState([]); + + useEffect(() => { + fetch("https://jsonplaceholder.typicode.com/posts") + .then(res => res.json()) + .then(data => setPosts(data.slice(0, 5))); + }, []); + + return ( +
+

Posts

+ {posts.map(p =>

{p.title}

)} +
+ ); +} + +export default Posts; +``` + +--- + +### 4.- Form Input Control + +**Task:** Capture and display input text in real-time. + +**Starting Code:** + +```jsx +function InputForm() { + let value = ""; + + return ( +
+ +

You typed: {value}

+
+ ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function InputForm() { + const [value, setValue] = useState(""); + + return ( +
+ setValue(e.target.value)} /> +

You typed: {value}

+
+ ); +} + +export default InputForm; +``` + +--- + +### 5.- Conditional Rendering + +**Task:** Show “Welcome, User!” if logged in, otherwise show “Please log in.” + +**Starting Code:** + +```jsx +function Greeting() { + let loggedIn = false; + + return ( +
+ Welcome! +
+ ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function Greeting() { + const [loggedIn, setLoggedIn] = useState(false); + + return ( +
+ {loggedIn ? "Welcome, User!" : "Please log in."} +
+ +
+ ); +} + +export default Greeting; +``` + +--- + +### 6.- Todo List + +**Task:** Build a simple todo list where users can add tasks. + +**Starting Code:** + +```jsx +function TodoApp() { + let todos = []; + + return ( +
+ + + {todos.map(t =>
  • {t}
  • )} +
    + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function TodoApp() { + const [todos, setTodos] = useState([]); + const [input, setInput] = useState(""); + + const addTodo = () => { + if (input.trim() !== "") { + setTodos([...todos, input]); + setInput(""); + } + }; + + return ( +
    + setInput(e.target.value)} /> + +
      + {todos.map((t, i) =>
    • {t}
    • )} +
    +
    + ); +} + +export default TodoApp; +``` + +--- + +### 7.- Theme Switcher (Dark/Light Mode) + +**Task:** Toggle between dark and light theme. + +**Starting Code:** + +```jsx +function Theme() { + let theme = "light"; + + return ( +
    + +
    + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function Theme() { + const [theme, setTheme] = useState("light"); + + return ( +
    +

    Current Theme: {theme}

    + +
    + ); +} + +export default Theme; +``` + +--- + +### 8.- Stopwatch (Timer) + +**Task:** Build a stopwatch with start and stop buttons. + +**Starting Code:** + +```jsx +function Stopwatch() { + let time = 0; + + return ( +
    +

    {time}

    + + +
    + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState, useEffect, useRef } from "react"; + +function Stopwatch() { + const [time, setTime] = useState(0); + const [running, setRunning] = useState(false); + const intervalRef = useRef(null); + + useEffect(() => { + if (running) { + intervalRef.current = setInterval(() => { + setTime(t => t + 1); + }, 1000); + } else { + clearInterval(intervalRef.current); + } + return () => clearInterval(intervalRef.current); + }, [running]); + + return ( +
    +

    {time} seconds

    + + +
    + ); +} + +export default Stopwatch; +``` + +--- + +### 9.- Search Filter + +**Task:** Filter a list of names as the user types. + +**Starting Code:** + +```jsx +function SearchList() { + const names = ["Alice", "Bob", "Charlie"]; + + return ( +
    + +
      + {names.map(n =>
    • {n}
    • )} +
    +
    + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function SearchList() { + const names = ["Alice", "Bob", "Charlie", "David", "Eve"]; + const [query, setQuery] = useState(""); + + const filtered = names.filter(n => + n.toLowerCase().includes(query.toLowerCase()) + ); + + return ( +
    + setQuery(e.target.value)} placeholder="Search..." /> +
      + {filtered.map((n, i) =>
    • {n}
    • )} +
    +
    + ); +} + +export default SearchList; +``` + +--- + +### 10.- Custom Hook (useLocalStorage) + +**Task:** Create a custom hook to persist state in localStorage. + +**Starting Code:** + +```jsx +function useLocalStorage(key, value) { + return value; +} +``` + +**Final Expected Code:** + +```jsx +import { useState, useEffect } from "react"; + +function useLocalStorage(key, initialValue) { + const [stored, setStored] = useState(() => { + const item = localStorage.getItem(key); + return item ? JSON.parse(item) : initialValue; + }); + + useEffect(() => { + localStorage.setItem(key, JSON.stringify(stored)); + }, [key, stored]); + + return [stored, setStored]; +} + +export default useLocalStorage; +``` +--- ### What you can do next? @@ -5075,7 +5545,4 @@ public class Dog implements Animal { [Click here - 30+ Playlists with 500+ Videos on Spring, Spring Boot, REST, Microservices and the Cloud](https://www.youtube.com/user/rithustutorials/playlists?view=1&sort=lad&flow=list) -## Keep Learning in28Minutes -in28Minutes is creating amazing solutions for you to learn Spring Boot, Full Stack and the Cloud - Docker, Kubernetes, -AWS, React, Angular etc. - [Check out all our courses here](https://github.com/in28minutes/learn) From bcd1a808217e057db724d7b37263ccd0085b5692 Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Thu, 19 Mar 2026 00:52:25 -0600 Subject: [PATCH 12/14] feat: Add Java quiz generation and console GUI - Implemented `generate_java_questions.py` to convert Java questions from README to JSON format. - Created `java_quiz_console.py` for a console-based quiz application with random question selection and results display. - Developed `java_quiz_win.py` for a GUI-based quiz application using Tkinter, featuring question navigation and feedback. - Updated `pom.xml` to specify Java version for compilation. - Refined `readme.md` to improve structure and remove outdated coding challenges. --- __pycache__/java_quiz_console.cpython-312.pyc | Bin 0 -> 6156 bytes code-samples.md | 453 +++ config.yml | 28 + data/java-questions.json | 2927 +++++++++++++++++ generate_java_questions.py | 317 ++ java_quiz_console.py | 119 + java_quiz_win.py | 308 ++ pom.xml | 12 +- readme.md | 499 +-- 9 files changed, 4181 insertions(+), 482 deletions(-) create mode 100644 __pycache__/java_quiz_console.cpython-312.pyc create mode 100644 code-samples.md create mode 100644 config.yml create mode 100644 data/java-questions.json create mode 100644 generate_java_questions.py create mode 100644 java_quiz_console.py create mode 100644 java_quiz_win.py diff --git a/__pycache__/java_quiz_console.cpython-312.pyc b/__pycache__/java_quiz_console.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9cf80ea808330c8b043a16a923290cf30477482 GIT binary patch literal 6156 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 HOF;cUybgCX literal 0 HcmV?d00001 diff --git a/code-samples.md b/code-samples.md new file mode 100644 index 0000000..fd0c6f7 --- /dev/null +++ b/code-samples.md @@ -0,0 +1,453 @@ + +# **Addendum: 10 coding challenge exercises** + + +Each exercise includes: + +* **Task description** +* **Starting code sample (incomplete or incorrect)** +* **Final expected solution** + +--- + +# 1.- Counter Component (useState) + +**Task:** Create a simple counter with increment and decrement buttons. + +**Starting Code:** + +```jsx +import React from "react"; + +function Counter() { + let count = 0; + + return ( +
    +

    Count: {count}

    + + +
    + ); +} + +export default Counter; +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function Counter() { + const [count, setCount] = useState(0); + + return ( +
    +

    Count: {count}

    + + +
    + ); +} + +export default Counter; +``` + +--- + +## 2.- Toggle Button + +**Task:** Implement a button that toggles between “ON” and “OFF”. + +**Starting Code:** + +```jsx +function Toggle() { + let state = "OFF"; + + return ( + + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function Toggle() { + const [isOn, setIsOn] = useState(false); + + return ( + + ); +} + +export default Toggle; +``` + +--- + +## 3.- Fetch API Data + +**Task:** Fetch and display posts from JSONPlaceholder API. + +**Starting Code:** + +```jsx +function Posts() { + let posts = []; + + return ( +
    +

    Posts

    + {posts.map(p =>

    {p.title}

    )} +
    + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useEffect, useState } from "react"; + +function Posts() { + const [posts, setPosts] = useState([]); + + useEffect(() => { + fetch("https://jsonplaceholder.typicode.com/posts") + .then(res => res.json()) + .then(data => setPosts(data.slice(0, 5))); + }, []); + + return ( +
    +

    Posts

    + {posts.map(p =>

    {p.title}

    )} +
    + ); +} + +export default Posts; +``` + +--- + +## 4.- Form Input Control + +**Task:** Capture and display input text in real-time. + +**Starting Code:** + +```jsx +function InputForm() { + let value = ""; + + return ( +
    + +

    You typed: {value}

    +
    + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function InputForm() { + const [value, setValue] = useState(""); + + return ( +
    + setValue(e.target.value)} /> +

    You typed: {value}

    +
    + ); +} + +export default InputForm; +``` + +--- + +## 5.- Conditional Rendering + +**Task:** Show “Welcome, User!” if logged in, otherwise show “Please log in.” + +**Starting Code:** + +```jsx +function Greeting() { + let loggedIn = false; + + return ( +
    + Welcome! +
    + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function Greeting() { + const [loggedIn, setLoggedIn] = useState(false); + + return ( +
    + {loggedIn ? "Welcome, User!" : "Please log in."} +
    + +
    + ); +} + +export default Greeting; +``` + +--- + +## 6.- Todo List + +**Task:** Build a simple todo list where users can add tasks. + +**Starting Code:** + +```jsx +function TodoApp() { + let todos = []; + + return ( +
    + + + {todos.map(t =>
  • {t}
  • )} +
    + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function TodoApp() { + const [todos, setTodos] = useState([]); + const [input, setInput] = useState(""); + + const addTodo = () => { + if (input.trim() !== "") { + setTodos([...todos, input]); + setInput(""); + } + }; + + return ( +
    + setInput(e.target.value)} /> + +
      + {todos.map((t, i) =>
    • {t}
    • )} +
    +
    + ); +} + +export default TodoApp; +``` + +--- + +## 7.- Theme Switcher (Dark/Light Mode) + +**Task:** Toggle between dark and light theme. + +**Starting Code:** + +```jsx +function Theme() { + let theme = "light"; + + return ( +
    + +
    + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function Theme() { + const [theme, setTheme] = useState("light"); + + return ( +
    +

    Current Theme: {theme}

    + +
    + ); +} + +export default Theme; +``` + +--- + +## 8.- Stopwatch (Timer) + +**Task:** Build a stopwatch with start and stop buttons. + +**Starting Code:** + +```jsx +function Stopwatch() { + let time = 0; + + return ( +
    +

    {time}

    + + +
    + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState, useEffect, useRef } from "react"; + +function Stopwatch() { + const [time, setTime] = useState(0); + const [running, setRunning] = useState(false); + const intervalRef = useRef(null); + + useEffect(() => { + if (running) { + intervalRef.current = setInterval(() => { + setTime(t => t + 1); + }, 1000); + } else { + clearInterval(intervalRef.current); + } + return () => clearInterval(intervalRef.current); + }, [running]); + + return ( +
    +

    {time} seconds

    + + +
    + ); +} + +export default Stopwatch; +``` + +--- + +## 9.- Search Filter + +**Task:** Filter a list of names as the user types. + +**Starting Code:** + +```jsx +function SearchList() { + const names = ["Alice", "Bob", "Charlie"]; + + return ( +
    + +
      + {names.map(n =>
    • {n}
    • )} +
    +
    + ); +} +``` + +**Final Expected Code:** + +```jsx +import React, { useState } from "react"; + +function SearchList() { + const names = ["Alice", "Bob", "Charlie", "David", "Eve"]; + const [query, setQuery] = useState(""); + + const filtered = names.filter(n => + n.toLowerCase().includes(query.toLowerCase()) + ); + + return ( +
    + setQuery(e.target.value)} placeholder="Search..." /> +
      + {filtered.map((n, i) =>
    • {n}
    • )} +
    +
    + ); +} + +export default SearchList; +``` + +--- + +###10.- Custom Hook (useLocalStorage) + +**Task:** Create a custom hook to persist state in localStorage. + +**Starting Code:** + +```jsx +function useLocalStorage(key, value) { + return value; +} +``` + +**Final Expected Code:** + +```jsx +import { useState, useEffect } from "react"; + +function useLocalStorage(key, initialValue) { + const [stored, setStored] = useState(() => { + const item = localStorage.getItem(key); + return item ? JSON.parse(item) : initialValue; + }); + + useEffect(() => { + localStorage.setItem(key, JSON.stringify(stored)); + }, [key, stored]); + + return [stored, setStored]; +} + +export default useLocalStorage; +``` \ No newline at end of file diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..42b1ffc --- /dev/null +++ b/config.yml @@ -0,0 +1,28 @@ +# Configuration for Java Quiz apps +# You can customize fonts, window, thresholds, and limits here. + +# Multiplier applied to all base font sizes below +font_scale: 2.0 # doubles the font size by default + +# Base font family and sizes (before scale) +fonts: + family: "Segoe UI" + title: 16 # top title label + question: 12 # question text + option: 12 # options (radio buttons) + explanation: 10 # explanation label/text + feedback: 10 # bottom feedback label + +# Window settings for the Windows GUI app +window: + title: "Java Quiz (Windows)" + width: 900 + height: 600 + min_width: 720 + min_height: 520 + +# Quiz logic +max_questions: 60 # if more exist, pick a random subset of this many +pass_threshold: 0.8 # 80% required to pass + + diff --git a/data/java-questions.json b/data/java-questions.json new file mode 100644 index 0000000..7e2286e --- /dev/null +++ b/data/java-questions.json @@ -0,0 +1,2927 @@ +[ + { + "id": 1, + "category": "Java Platform", + "question": "Why is Java so popular?", + "options": [ + "1. **Platform Independence**: Java programs can run on any device that has the Java Virtual Machine (JVM),", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "1. Platform Independence: Java programs can run on any device that has the Java Virtual Machine (JVM), making it highly portable." + }, + { + "id": 2, + "category": "Java Platform", + "question": "What is platform independence?", + "options": [ + "Java no puede ejecutarse en diferentes sistemas operativos.", + "Java requires recompilation for each different operating system.", + "Java se compila directamente a código máquina específico de la plataforma.", + "Platform independence refers to the ability of a programming language or software to run on various types of computer" + ], + "answer": "d", + "explanation": "Platform independence refers to the ability of a programming language or software to run on various types of computer systems without modification. In the context of Java, platform independence is achieved through the use of the Java" + }, + { + "id": 3, + "category": "Java Platform", + "question": "What is bytecode?", + "options": [ + "Java se compila directamente a código máquina específico de la plataforma.", + "Java requiere recompilación para cada sistema operativo diferente.", + "Bytecode is an intermediate representation of a Java program. When a Java program is compiled, it is converted into", + "Java no puede ejecutarse en diferentes sistemas operativos." + ], + "answer": "c", + "explanation": "Bytecode is an intermediate representation of a Java program. When a Java program is compiled, it is converted into bytecode, which is a set of instructions that can be executed by the Java Virtual Machine (JVM). Bytecode is" + }, + { + "id": 4, + "category": "Java Platform", + "question": "Compare JDK vs JVM vs JRE", + "options": [ + "an interpreter/loader (Java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), and", + "Java no puede ejecutarse en diferentes sistemas operativos.", + "Java requiere recompilación para cada sistema operativo diferente.", + "Java is compiled directly to platform-specific machine code." + ], + "answer": "a", + "explanation": "an interpreter/loader (Java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), and other tools needed for Java development." + }, + { + "id": 5, + "category": "Java Platform", + "question": "What are the important differences between C++ and Java?", + "options": [ + "needs to be compiled for each platform.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "collection. needs to be compiled for each platform." + }, + { + "id": 7, + "category": "Wrapper Classes", + "question": "What are Wrapper classes?", + "options": [ + "Java does not support automatic conversion between primitives and objects.", + "Wrapper classes in Java are classes that encapsulate a primitive data type into an object. They provide a way to use", + "Wrapper types consume less memory than primitives.", + "Autoboxing only works with numeric types, not with boolean or char." + ], + "answer": "b", + "explanation": "Wrapper classes in Java are classes that encapsulate a primitive data type into an object. They provide a way to use primitive data types (like `int`, `char`, etc.) as objects. Each primitive type has a corresponding wrapper class:" + }, + { + "id": 8, + "category": "Wrapper Classes", + "question": "Why do we need Wrapper classes in Java?", + "options": [ + "Los tipos wrapper consumen menos memoria que los primitivos.", + "Java no soporta conversión automática entre primitivos y objetos.", + "Wrapper classes in Java are needed for the following reasons:", + "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + ], + "answer": "c", + "explanation": "Wrapper classes in Java are needed for the following reasons: enabling them to be used in object-oriented programming contexts." + }, + { + "id": 9, + "category": "Wrapper Classes", + "question": "What are the different ways of creating Wrapper class instances?", + "options": [ + "Java no soporta conversión automática entre primitivos y objetos.", + "Los tipos wrapper consumen menos memoria que los primitivos.", + "There are two main ways to create instances of Wrapper classes in Java:", + "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + ], + "answer": "c", + "explanation": "There are two main ways to create instances of Wrapper classes in Java: Each wrapper class has a constructor that takes a primitive type or a String as an argument." + }, + { + "id": 10, + "category": "Wrapper Classes", + "question": "What are differences in the two ways of creating Wrapper classes?", + "options": [ + "The two ways of creating Wrapper class instances in Java are using constructors and using static factory methods. Here", + "Los tipos wrapper consumen menos memoria que los primitivos.", + "Java no soporta conversión automática entre primitivos y objetos.", + "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + ], + "answer": "a", + "explanation": "The two ways of creating Wrapper class instances in Java are using constructors and using static factory methods. Here are the differences:" + }, + { + "id": 11, + "category": "Wrapper Classes", + "question": "What is auto boxing?", + "options": [ + "Java no soporta conversión automática entre primitivos y objetos.", + "Autoboxing in Java is the automatic conversion that the Java compiler makes between the primitive types and their", + "Los tipos wrapper consumen menos memoria que los primitivos.", + "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + ], + "answer": "b", + "explanation": "Autoboxing in Java is the automatic conversion that the Java compiler makes between the primitive types and their corresponding object wrapper classes. For example, converting an `int` to an `Integer`, a `double` to a `Double`, and" + }, + { + "id": 12, + "category": "Wrapper Classes", + "question": "What are the advantages of auto boxing?", + "options": [ + "Autoboxing in Java provides several advantages:", + "Java no soporta conversión automática entre primitivos y objetos.", + "Los tipos wrapper consumen menos memoria que los primitivos.", + "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + ], + "answer": "a", + "explanation": "Autoboxing in Java provides several advantages: such as collections." + }, + { + "id": 13, + "category": "Wrapper Classes", + "question": "What is casting?", + "options": [ + "Casting in Java is the process of converting a value of one data type to another. There are two types of casting:", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "Casting in Java is the process of converting a value of one data type to another. There are two types of casting: conversion. For example, converting an `int` to a `double`." + }, + { + "id": 14, + "category": "Wrapper Classes", + "question": "What is implicit casting?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Implicit casting in Java is the automatic conversion of a smaller data type to a larger data type. Java performs", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "c", + "explanation": "Implicit casting in Java is the automatic conversion of a smaller data type to a larger data type. Java performs implicit casting when the target data type can accommodate the source data type without loss of precision. For" + }, + { + "id": 15, + "category": "Wrapper Classes", + "question": "What is explicit casting?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Explicit casting in Java is the manual conversion of a larger data type to a smaller data type, or when converting", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "Explicit casting in Java is the manual conversion of a larger data type to a smaller data type, or when converting between incompatible types. Java requires explicit casting when the target data type may lose precision or range" + }, + { + "id": 16, + "category": "Strings", + "question": "Are all String", + "options": [ + "No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String`", + "StringBuffer y StringBuilder son inmutables en Java.", + "Java no tiene soporte para cadenas de texto inmutables.", + "Los objetos String en Java son completamente mutables." + ], + "answer": "a", + "explanation": "’s immutable?\\ No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String`" + }, + { + "id": 17, + "category": "Strings", + "question": "Where are String values stored in memory?", + "options": [ + "Los objetos String en Java son completamente mutables.", + "Java no tiene soporte para cadenas de texto inmutables.", + "In Java, `String` values are stored in a special memory area called the **String Pool**. The String Pool is part of", + "StringBuffer y StringBuilder son inmutables en Java." + ], + "answer": "c", + "explanation": "In Java, `String` values are stored in a special memory area called the String Pool. The String Pool is part of the Java heap memory and is used to store unique `String` literals. When a `String` literal is created, the JVM checks" + }, + { + "id": 18, + "category": "Strings", + "question": "Why should you be careful about String concatenation(+) operator in loops?", + "options": [ + "StringBuffer y StringBuilder son inmutables en Java.", + "Java no tiene soporte para cadenas de texto inmutables.", + "Los objetos String en Java son completamente mutables.", + "String concatenation using the `+` operator in loops can be inefficient due to the immutability of `String` objects." + ], + "answer": "d", + "explanation": "String concatenation using the `+` operator in loops can be inefficient due to the immutability of `String` objects. Each time a `String` is concatenated using the `+` operator, a new `String` object is created, resulting in" + }, + { + "id": 19, + "category": "Strings", + "question": "How do you solve above problem?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "To solve the problem of inefficient string concatenation using the `+` operator in loops, you should" + ], + "answer": "d", + "explanation": "To solve the problem of inefficient string concatenation using the `+` operator in loops, you should use `StringBuilder` or `StringBuffer`. These classes provide mutable alternatives to `String` and are more efficient" + }, + { + "id": 20, + "category": "Strings", + "question": "What are the differences between `String` and `StringBuffer`?", + "options": [ + "StringBuffer y StringBuilder son inmutables en Java.", + "Los objetos String en Java son completamente mutables.", + "created. `StringBuffer` objects are mutable, allowing their values to be modified.", + "Java no tiene soporte para cadenas de texto inmutables." + ], + "answer": "c", + "explanation": "created. `StringBuffer` objects are mutable, allowing their values to be modified. is faster for concatenation and modification operations." + }, + { + "id": 22, + "category": "Strings", + "question": "Can you give examples of different utility methods in String class?", + "options": [ + "StringBuffer y StringBuilder son inmutables en Java.", + "The `String` class in Java provides various utility methods. Here are some examples:", + "Java no tiene soporte para cadenas de texto inmutables.", + "Los objetos String en Java son completamente mutables." + ], + "answer": "b", + "explanation": "The `String` class in Java provides various utility methods. Here are some examples: // Example of length() method" + }, + { + "id": 23, + "category": "Strings", + "question": "What is a class?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "A class in Java is a blueprint for creating objects. It defines a set of properties (fields) and methods that the", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "A class in Java is a blueprint for creating objects. It defines a set of properties (fields) and methods that the created objects will have. A class encapsulates data for the object and methods to manipulate that data. It serves as" + }, + { + "id": 25, + "category": "Strings", + "question": "What is state of an object?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "The state of an object in Java refers to the data or values stored in its fields (instance variables) at any given", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "c", + "explanation": "The state of an object in Java refers to the data or values stored in its fields (instance variables) at any given time. The state represents the current condition of the object, which can change over time as the values of its fields" + }, + { + "id": 26, + "category": "Object-Oriented Programming", + "question": "What is behavior of an object?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "The behavior of an object in Java refers to the actions or operations that the object can perform. These behaviors are", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java." + ], + "answer": "b", + "explanation": "The behavior of an object in Java refers to the actions or operations that the object can perform. These behaviors are defined by the methods in the object's class. The methods manipulate the object's state and can interact with other" + }, + { + "id": 28, + "category": "Object-Oriented Programming", + "question": "Explain about toString method ?", + "options": [ + "The `toString` method in Java is a method that returns a string representation of an object. It is defined in", + "Java no tiene soporte para cadenas de texto inmutables.", + "StringBuffer y StringBuilder son inmutables en Java.", + "Los objetos String en Java son completamente mutables." + ], + "answer": "a", + "explanation": "The `toString` method in Java is a method that returns a string representation of an object. It is defined in the `Object` class, which is the superclass of all Java classes. By default, the `toString` method returns a string" + }, + { + "id": 29, + "category": "Object-Oriented Programming", + "question": "What is the use of equals method in Java?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "The `equals` method in Java is used to compare the equality of two objects. It is defined in the `Object` class and", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "c", + "explanation": "The `equals` method in Java is used to compare the equality of two objects. It is defined in the `Object` class and can be overridden in subclasses to provide custom equality logic. By default, the `equals` method compares object" + }, + { + "id": 30, + "category": "Object-Oriented Programming", + "question": "What are the important things to consider when implementing `equals` method?", + "options": [ + "This is the correct answer based on Java content.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." + ], + "answer": "a", + "explanation": "return `true`." + }, + { + "id": 31, + "category": "Object-Oriented Programming", + "question": "What is the Hashcode method used for in Java?", + "options": [ + "The `hashCode` method in Java is used to generate a unique integer value for an object. It is defined in the `Object`", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "The `hashCode` method in Java is used to generate a unique integer value for an object. It is defined in the `Object` class and can be overridden in subclasses to provide a custom hash code calculation. The `hashCode` method is used" + }, + { + "id": 32, + "category": "Object-Oriented Programming", + "question": "Explain inheritance with examples", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Inheritance in Java is a mechanism where one class (subclass) inherits the fields and methods of another class (" + ], + "answer": "d", + "explanation": "Inheritance in Java is a mechanism where one class (subclass) inherits the fields and methods of another class ( superclass). It allows for code reuse and establishes a relationship between classes." + }, + { + "id": 33, + "category": "Object-Oriented Programming", + "question": "What is method overloading?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Method overloading in Java is a feature that allows a class to have more than one method with the same name, provided", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "Method overloading in Java is a feature that allows a class to have more than one method with the same name, provided their parameter lists are different. This means that the methods must differ in the type, number, or order of their" + }, + { + "id": 34, + "category": "Object-Oriented Programming", + "question": "What is method overriding?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Method overriding in Java is a feature that allows a subclass to provide a specific implementation of a method that is" + ], + "answer": "d", + "explanation": "Method overriding in Java is a feature that allows a subclass to provide a specific implementation of a method that is already provided by its superclass. When a method in a subclass has the same name, return type, and parameters as a" + }, + { + "id": 35, + "category": "Object-Oriented Programming", + "question": "Can super class reference variable can hold an object of sub class?", + "options": [ + "Yes, a superclass reference variable can hold an object of a subclass in Java. This is known as polymorphism and is a", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "Yes, a superclass reference variable can hold an object of a subclass in Java. This is known as polymorphism and is a key feature of object-oriented programming. When a superclass reference variable holds an object of a subclass, it can" + }, + { + "id": 36, + "category": "Inheritance", + "question": "Is multiple inheritance allowed in Java?", + "options": [ + "Java does not support multiple inheritance of classes, meaning a class cannot extend more than one class at a time.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "Java does not support multiple inheritance of classes, meaning a class cannot extend more than one class at a time. This is to avoid the \"diamond problem,\" where conflicts can arise if two superclasses have methods with the same" + }, + { + "id": 37, + "category": "Inheritance", + "question": "What is an interface?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "An interface in Java is a reference type, similar to a class, that can contain only constants, method signatures,", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "An interface in Java is a reference type, similar to a class, that can contain only constants, method signatures, default methods, static methods, and nested types. Interfaces cannot contain instance fields or constructors. They are" + }, + { + "id": 38, + "category": "Inheritance", + "question": "How do you define an interface?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "An interface in Java is defined using the `interface` keyword. It can contain abstract methods, default methods,", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java." + ], + "answer": "b", + "explanation": "An interface in Java is defined using the `interface` keyword. It can contain abstract methods, default methods, static methods, and constants. Here is an example:" + }, + { + "id": 39, + "category": "Inheritance", + "question": "How do you implement an interface?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "To implement an interface in Java, a class must use the `implements` keyword and provide concrete implementations for" + ], + "answer": "d", + "explanation": "To implement an interface in Java, a class must use the `implements` keyword and provide concrete implementations for all the methods declared in the interface. Here is an example:" + }, + { + "id": 40, + "category": "Inheritance", + "question": "Can you explain a few tricky things about interfaces?", + "options": [ + "Here are a few tricky things about interfaces in Java:", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java." + ], + "answer": "a", + "explanation": "Here are a few tricky things about interfaces in Java: 1. Default Methods: Interfaces can have default methods with a body. This allows adding new methods to" + }, + { + "id": 41, + "category": "Inheritance", + "question": "Can you extend an interface?", + "options": [ + "Yes, in Java, an interface can extend another interface. This allows the extending interface to inherit the abstract", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "Yes, in Java, an interface can extend another interface. This allows the extending interface to inherit the abstract methods of the parent interface. Here is an example:" + }, + { + "id": 42, + "category": "Inheritance", + "question": "Can a class extend multiple interfaces?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Yes, in Java, a class can implement multiple interfaces. This allows the class to inherit the abstract methods of all", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "b", + "explanation": "Yes, in Java, a class can implement multiple interfaces. This allows the class to inherit the abstract methods of all the interfaces it implements. Here is an example:" + }, + { + "id": 43, + "category": "Inheritance", + "question": "What is an abstract class?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "An abstract class in Java is a class that cannot be instantiated on its own and is meant to be subclassed by other" + ], + "answer": "d", + "explanation": "An abstract class in Java is a class that cannot be instantiated on its own and is meant to be subclassed by other classes. It can contain abstract methods, which are declared but not implemented, as well as concrete methods with" + }, + { + "id": 44, + "category": "Inheritance", + "question": "When do you use an abstract class?", + "options": [ + "Esta funcionalidad no existe en Java.", + "You should use an abstract class in Java when you want to define a common interface for a group of subclasses and", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "b", + "explanation": "You should use an abstract class in Java when you want to define a common interface for a group of subclasses and provide default behavior that can be overridden by the subclasses. Abstract classes are useful when you have a set of" + }, + { + "id": 45, + "category": "Inheritance", + "question": "How do you define an abstract method?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "An abstract method in Java is a method that is declared but not implemented in an abstract class. Abstract methods do", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "c", + "explanation": "An abstract method in Java is a method that is declared but not implemented in an abstract class. Abstract methods do not have a body and are meant to be implemented by subclasses. To define an abstract method, you use the `abstract`" + }, + { + "id": 46, + "category": "Collections", + "question": "Compare abstract class vs interface?", + "options": [ + "Esta es la respuesta correcta basada en el contenido de Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "This is the correct answer based on Java best practices and standards." + }, + { + "id": 47, + "category": "Collections", + "question": "What is a constructor?", + "options": [ + "A constructor in Java is a special type of method that is used to initialize objects. It is called when an object of a", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "A constructor in Java is a special type of method that is used to initialize objects. It is called when an object of a class is created using the `new` keyword. Constructors have the same name as the class and do not have a return type." + }, + { + "id": 48, + "category": "Collections", + "question": "What is a default constructor?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "A default constructor in Java is a constructor that is automatically provided by the compiler if a class does not have" + ], + "answer": "d", + "explanation": "A default constructor in Java is a constructor that is automatically provided by the compiler if a class does not have any constructor defined. It is a no-argument constructor that initializes the object with default values. The default" + }, + { + "id": 49, + "category": "Collections", + "question": "Will this code compile?", + "options": [ + "Here is an example of a Java code segment that will not compile due to a missing semicolon:", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "Here is an example of a Java code segment that will not compile due to a missing semicolon: public class Example {" + }, + { + "id": 50, + "category": "Collections", + "question": "How do you call a super class constructor from a constructor?", + "options": [ + "In Java, you can call a superclass constructor from a subclass constructor using the `super` keyword. This is useful", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "In Java, you can call a superclass constructor from a subclass constructor using the `super` keyword. This is useful when you want to initialize the superclass part of the object before initializing the subclass part. The `super`" + }, + { + "id": 51, + "category": "Collections", + "question": "Will this code compile?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "public class Example {" + ], + "answer": "d", + "explanation": "public class Example { public static void main(String[] args) {" + }, + { + "id": 52, + "category": "Collections", + "question": "What is the use of this() keyword in Java?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "The `this` keyword in Java is a reference to the current object within a method or constructor. It can be used to" + ], + "answer": "d", + "explanation": "The `this` keyword in Java is a reference to the current object within a method or constructor. It can be used to access instance variables, call other constructors, or pass the current object as a parameter to other methods. The" + }, + { + "id": 53, + "category": "Collections", + "question": "Can a constructor be called directly from a method?", + "options": [ + "No, a constructor cannot be called directly from a method. Constructors are special methods that are called only when", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java." + ], + "answer": "a", + "explanation": "No, a constructor cannot be called directly from a method. Constructors are special methods that are called only when an object is created. However, you can call another constructor from a constructor using `this()` or `super()`. If you" + }, + { + "id": 54, + "category": "Collections", + "question": "Is a super class constructor called even when there is no explicit call from a sub class constructor?", + "options": [ + "Yes, a superclass constructor is always called, even if there is no explicit call from a subclass constructor. If a", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." + ], + "answer": "a", + "explanation": "Yes, a superclass constructor is always called, even if there is no explicit call from a subclass constructor. If a subclass constructor does not explicitly call a superclass constructor using `super()`, the Java compiler" + }, + { + "id": 55, + "category": "Collections", + "question": "What is polymorphism?", + "options": [ + "This is a feature exclusive to other programming languages.", + "Polymorphism in Java is the ability of an object to take on many forms. It allows one interface to be used for a", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." + ], + "answer": "b", + "explanation": "Polymorphism in Java is the ability of an object to take on many forms. It allows one interface to be used for a general class of actions. The specific action is determined by the exact nature of the situation. Polymorphism is" + }, + { + "id": 56, + "category": "Exception Handling", + "question": "What is the use of instanceof operator in Java?", + "options": [ + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "The `instanceof` operator in Java is used to test whether an object is an instance of a specific class or implements a" + ], + "answer": "d", + "explanation": "The `instanceof` operator in Java is used to test whether an object is an instance of a specific class or implements a specific interface. It returns `true` if the object is an instance of the specified class or interface, and `false`" + }, + { + "id": 57, + "category": "Exception Handling", + "question": "What is coupling?", + "options": [ + "This functionality does not exist in Java.", + "Coupling in software engineering refers to the degree of direct knowledge that one module has about another. It", + "This is a feature exclusive to other programming languages.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "b", + "explanation": "Coupling in software engineering refers to the degree of direct knowledge that one module has about another. It measures how closely connected two routines or modules are. High coupling means that modules are highly dependent on" + }, + { + "id": 58, + "category": "Exception Handling", + "question": "What is cohesion?", + "options": [ + "This functionality does not exist in Java.", + "Cohesion in software engineering refers to the degree to which the elements inside a module belong together. It", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." + ], + "answer": "b", + "explanation": "Cohesion in software engineering refers to the degree to which the elements inside a module belong together. It measures how closely related the responsibilities of a single module are. High cohesion means that the elements within" + }, + { + "id": 59, + "category": "Exception Handling", + "question": "What is encapsulation?", + "options": [ + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "Encapsulation in Java is a fundamental object-oriented programming concept that involves bundling the data (fields)" + ], + "answer": "d", + "explanation": "Encapsulation in Java is a fundamental object-oriented programming concept that involves bundling the data (fields) and the methods (functions) that operate on the data into a single unit, called a class. It restricts direct access to" + }, + { + "id": 60, + "category": "Exception Handling", + "question": "What is an inner class?", + "options": [ + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "An inner class in Java is a class that is defined within another class. Inner classes can access the members (" + ], + "answer": "d", + "explanation": "An inner class in Java is a class that is defined within another class. Inner classes can access the members ( including private members) of the outer class. There are four types of inner classes in Java:" + }, + { + "id": 61, + "category": "Exception Handling", + "question": "What is a static inner class?", + "options": [ + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "A static inner class in Java is a nested class that is defined as a static member of the outer class. It does not have", + "This functionality does not exist in Java." + ], + "answer": "c", + "explanation": "A static inner class in Java is a nested class that is defined as a static member of the outer class. It does not have access to the instance variables and methods of the outer class, but it can access static members of the outer class." + }, + { + "id": 62, + "category": "Exception Handling", + "question": "Can you create an inner class inside a method?", + "options": [ + "This functionality does not exist in Java.", + "Yes, you can create an inner class inside a method in Java. This type of inner class is called a local inner class.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." + ], + "answer": "b", + "explanation": "Yes, you can create an inner class inside a method in Java. This type of inner class is called a local inner class. Local inner classes are defined within a method and can only be accessed within that method. They have access to the" + }, + { + "id": 63, + "category": "Exception Handling", + "question": "What is an anonymous class?", + "options": [ + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "An anonymous class in Java is a class without a name that is defined and instantiated in a single statement. It is" + ], + "answer": "d", + "explanation": "An anonymous class in Java is a class without a name that is defined and instantiated in a single statement. It is typically used for one-time use cases where a class needs to be defined and instantiated without creating a separate" + }, + { + "id": 64, + "category": "Exception Handling", + "question": "What is default class modifier?", + "options": [ + "This functionality does not exist in Java.", + "The default class modifier in Java is package-private, which means that the class is only accessible within the same", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." + ], + "answer": "b", + "explanation": "The default class modifier in Java is package-private, which means that the class is only accessible within the same package. If no access modifier is specified for a class, it is considered to have default access. This means that the" + }, + { + "id": 65, + "category": "Exception Handling", + "question": "What is private access modifier?", + "options": [ + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "The `private` access modifier in Java is the most restrictive access level. It is used to restrict access to members", + "Java does not support this feature until very recent versions." + ], + "answer": "c", + "explanation": "The `private` access modifier in Java is the most restrictive access level. It is used to restrict access to members (fields, methods, constructors) of a class to only within the same class. This means that private members cannot be" + }, + { + "id": 66, + "category": "Multithreading", + "question": "What is default or package access modifier?", + "options": [ + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "The default or package access modifier in Java is the absence of an access modifier. It is also known as" + ], + "answer": "d", + "explanation": "The default or package access modifier in Java is the absence of an access modifier. It is also known as package-private" + }, + { + "id": 67, + "category": "Multithreading", + "question": "What is protected access modifier?", + "options": [ + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "The `protected` access modifier in Java is used to restrict access to members (fields, methods, constructors) of a", + "Java does not support this feature until very recent versions." + ], + "answer": "c", + "explanation": "The `protected` access modifier in Java is used to restrict access to members (fields, methods, constructors) of a class to only within the same package or subclasses of the class. This means that protected members can be accessed by" + }, + { + "id": 68, + "category": "Multithreading", + "question": "What is public access modifier?", + "options": [ + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "The `public` access modifier in Java is the least restrictive access level. It allows a class, method, or field to be", + "This functionality does not exist in Java." + ], + "answer": "c", + "explanation": "The `public` access modifier in Java is the least restrictive access level. It allows a class, method, or field to be accessed by any other class in the same project or in other projects. Public members are accessible from any other" + }, + { + "id": 69, + "category": "Multithreading", + "question": "What access types of variables can be accessed from a class in same package?", + "options": [ + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "In Java, a class in the same package can access the following types of variables:", + "This functionality does not exist in Java." + ], + "answer": "c", + "explanation": "In Java, a class in the same package can access the following types of variables: other packages." + }, + { + "id": 70, + "category": "Multithreading", + "question": "What access types of variables can be accessed from a class in different package?", + "options": [ + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "In Java, a class in a different package can access the following types of variables:" + ], + "answer": "d", + "explanation": "In Java, a class in a different package can access the following types of variables: non-subclasses" + }, + { + "id": 71, + "category": "Multithreading", + "question": "What access types of variables can be accessed from a sub class in same package?", + "options": [ + "Java does not support this feature until very recent versions.", + "In Java, a subclass in the same package can access the following types of variables:", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." + ], + "answer": "b", + "explanation": "In Java, a subclass in the same package can access the following types of variables: other packages." + }, + { + "id": 72, + "category": "Multithreading", + "question": "What access types of variables can be accessed from a sub class in different package?", + "options": [ + "In Java, a subclass in a different package can access the following types of variables:", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." + ], + "answer": "a", + "explanation": "In Java, a subclass in a different package can access the following types of variables: non-subclasses" + }, + { + "id": 73, + "category": "Multithreading", + "question": "What is the use of a final modifier on a class?", + "options": [ + "Java does not support this feature until very recent versions.", + "The `final` modifier on a class in Java is used to prevent the class from being subclassed. This means that no other", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." + ], + "answer": "b", + "explanation": "The `final` modifier on a class in Java is used to prevent the class from being subclassed. This means that no other class can extend a `final` class. It is often used to create immutable classes or to ensure that the implementation of" + }, + { + "id": 74, + "category": "Multithreading", + "question": "What is the use of a final modifier on a method?", + "options": [ + "The `final` modifier on a method in Java is used to prevent the method from being overridden by subclasses. This", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." + ], + "answer": "a", + "explanation": "The `final` modifier on a method in Java is used to prevent the method from being overridden by subclasses. This ensures that the implementation of the method remains unchanged in any subclass." + }, + { + "id": 75, + "category": "Multithreading", + "question": "What is a final variable?", + "options": [ + "A final variable in Java is a variable that cannot be reassigned once it has been initialized. The `final` keyword is", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." + ], + "answer": "a", + "explanation": "A final variable in Java is a variable that cannot be reassigned once it has been initialized. The `final` keyword is used to declare a variable as final. This means that the value of the variable remains constant throughout the" + }, + { + "id": 76, + "category": "Generics", + "question": "What is a final argument?", + "options": [ + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "A final argument in Java is a method parameter that is declared with the `final` keyword. This means that once the" + ], + "answer": "d", + "explanation": "A final argument in Java is a method parameter that is declared with the `final` keyword. This means that once the parameter is assigned a value, it cannot be changed within the method. This is useful for ensuring that the parameter" + }, + { + "id": 77, + "category": "Generics", + "question": "What happens when a variable is marked as volatile?", + "options": [ + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "When a variable is marked as `volatile` in Java, it ensures that the value of the variable is always read from and" + ], + "answer": "d", + "explanation": "When a variable is marked as `volatile` in Java, it ensures that the value of the variable is always read from and written to the main memory, rather than being cached in a thread's local memory. This guarantees visibility of changes" + }, + { + "id": 78, + "category": "Generics", + "question": "What is a static variable?", + "options": [ + "A static variable in Java is a variable that is shared among all instances of a class. It is declared using the", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." + ], + "answer": "a", + "explanation": "A static variable in Java is a variable that is shared among all instances of a class. It is declared using the `static` keyword and belongs to the class rather than any specific instance. This means that there is only one copy of" + }, + { + "id": 79, + "category": "Generics", + "question": "Why should you always use blocks around if statement?", + "options": [ + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "It is a good practice to always use blocks around `if` statements in Java to improve code readability and avoid", + "This is a feature exclusive to other programming languages." + ], + "answer": "c", + "explanation": "It is a good practice to always use blocks around `if` statements in Java to improve code readability and avoid potential bugs. When an `if` statement is not enclosed in a block, only the next statement is considered part of the" + }, + { + "id": 80, + "category": "Generics", + "question": "Guess the output", + "options": [ + "Here is an example to guess the output:", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." + ], + "answer": "a", + "explanation": "Here is an example to guess the output: public class GuessOutput {" + }, + { + "id": 81, + "category": "Generics", + "question": "Guess the output", + "options": [ + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Here is an example to guess the output:" + ], + "answer": "d", + "explanation": "Here is an example to guess the output: public class GuessOutput {" + }, + { + "id": 82, + "category": "Generics", + "question": "Guess the output of this switch block", + "options": [ + "Here is an example to guess the output:", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." + ], + "answer": "a", + "explanation": "Here is an example to guess the output: public class GuessOutput {" + }, + { + "id": 83, + "category": "Generics", + "question": "Guess the output of this switch block?", + "options": [ + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Here is an example to guess the output:", + "Java does not support this feature until very recent versions." + ], + "answer": "c", + "explanation": "Here is an example to guess the output: public class GuessOutput {" + }, + { + "id": 84, + "category": "Generics", + "question": "Should default be the last case in a switch statement?", + "options": [ + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "No, the `default` case does not have to be the last case in a `switch` statement in Java. The `default` case is", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "No, the `default` case does not have to be the last case in a `switch` statement in Java. The `default` case is optional and can be placed anywhere within the `switch` statement. It is typically used as a catch-all case for values" + }, + { + "id": 85, + "category": "Generics", + "question": "Can a switch statement be used around a String", + "options": [ + "Yes, a `switch` statement can be used with a `String` in Java starting from Java 7. Prior to Java 7, `switch`", + "String objects in Java are completely mutable.", + "Java does not support immutable text strings.", + "StringBuffer and StringBuilder are immutable in Java." + ], + "answer": "a", + "explanation": "Yes, a `switch` statement can be used with a `String` in Java starting from Java 7. Prior to Java 7, `switch` statements only supported `int`, `byte`, `short`, `char`, and `enum` types. With the introduction of the `String`" + }, + { + "id": 86, + "category": "Java 8 Features", + "question": "Guess the output of this for loop", + "options": [ + "Here is an example to guess the output:", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "Here is an example to guess the output: public class GuessOutput {" + }, + { + "id": 87, + "category": "Java 8 Features", + "question": "What is an enhanced for loop?", + "options": [ + "This is a feature exclusive to other programming languages.", + "An enhanced for loop, also known as a for-each loop, is a simplified way to iterate over elements in an array or a", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." + ], + "answer": "b", + "explanation": "An enhanced for loop, also known as a for-each loop, is a simplified way to iterate over elements in an array or a collection in Java. It provides a more concise syntax for iterating over elements without the need for explicit" + }, + { + "id": 88, + "category": "Java 8 Features", + "question": "What is the output of the for loop below?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Here is an example to guess the output:" + ], + "answer": "d", + "explanation": "Here is an example to guess the output: public class GuessOutput {" + }, + { + "id": 89, + "category": "Java 8 Features", + "question": "What is the output of the program below?", + "options": [ + "Here is an example to guess the output:", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "Here is an example to guess the output: public class GuessOutput {" + }, + { + "id": 90, + "category": "Java 8 Features", + "question": "What is the output of the program below?", + "options": [ + "Here is an example to guess the output:", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "Here is an example to guess the output: public class GuessOutput {" + }, + { + "id": 91, + "category": "Java 8 Features", + "question": "Why is exception handling important?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Exception handling is important in Java for the following reasons:", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "b", + "explanation": "Exception handling is important in Java for the following reasons: program execution. This helps prevent the program from crashing and provides a way to recover from unexpected" + }, + { + "id": 92, + "category": "Java 8 Features", + "question": "What design pattern is used to implement exception handling features in most languages?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "The most common design pattern used to implement exception handling features in most programming languages, including", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "c", + "explanation": "The most common design pattern used to implement exception handling features in most programming languages, including Java, is the `try-catch-finally` pattern. This pattern consists of three main components:" + }, + { + "id": 93, + "category": "Java 8 Features", + "question": "What is the need for finally block?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "The `finally` block in Java is used to execute code that should always run, regardless of whether an exception occurs.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "c", + "explanation": "The `finally` block in Java is used to execute code that should always run, regardless of whether an exception occurs. It is typically used to release resources, close connections, or perform cleanup operations that need to be done" + }, + { + "id": 94, + "category": "Java 8 Features", + "question": "In what scenarios is code in finally not executed?", + "options": [ + "The code in a `finally` block is not executed in the following scenarios:", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java." + ], + "answer": "a", + "explanation": "The code in a `finally` block is not executed in the following scenarios: terminate immediately, and the code in the `finally` block will not be executed." + }, + { + "id": 95, + "category": "Java 8 Features", + "question": "Will finally be executed in the program below?", + "options": [ + "Here is an example to determine if the `finally` block will be executed:", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "Here is an example to determine if the `finally` block will be executed: public class Example {" + }, + { + "id": 96, + "category": "Spring Framework", + "question": "Is try without a catch is allowed?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Yes, a `try` block without a `catch` block is allowed in Java. This is known as a try-with-resources statement and is" + ], + "answer": "d", + "explanation": "Yes, a `try` block without a `catch` block is allowed in Java. This is known as a try-with-resources statement and is used to automatically close resources that implement the `AutoCloseable` interface. The `try` block can be followed by" + }, + { + "id": 97, + "category": "Spring Framework", + "question": "Is try without catch and finally allowed?", + "options": [ + "Yes, a `try` block without a `catch` or `finally` block is allowed in Java. This is known as a try-with-resources", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "Yes, a `try` block without a `catch` or `finally` block is allowed in Java. This is known as a try-with-resources statement and is used to automatically close resources that implement the `AutoCloseable` interface. The `try` block" + }, + { + "id": 98, + "category": "Spring Framework", + "question": "Can you explain the hierarchy of exception handling classes?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "In Java, exception handling is based on a hierarchy of classes that extend the `Throwable` class. The main classes in" + ], + "answer": "d", + "explanation": "In Java, exception handling is based on a hierarchy of classes that extend the `Throwable` class. The main classes in the exception handling hierarchy are:" + }, + { + "id": 99, + "category": "Spring Framework", + "question": "What is the difference between error and exception?", + "options": [ + "Errors and exceptions are both types of problems that can occur during the execution of a program, but they are", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java." + ], + "answer": "a", + "explanation": "Errors and exceptions are both types of problems that can occur during the execution of a program, but they are handled differently in Java:" + }, + { + "id": 101, + "category": "Spring Framework", + "question": "How do you throw an exception from a method?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "To throw an exception from a method in Java, you use the `throw` keyword followed by an instance of the exception", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "c", + "explanation": "To throw an exception from a method in Java, you use the `throw` keyword followed by an instance of the exception This allows you to create and throw custom exceptions or to re-throw exceptions that were caught earlier. Here is an" + }, + { + "id": 102, + "category": "Spring Framework", + "question": "What happens when you throw a checked exception from a method?", + "options": [ + "When you throw a checked exception from a method in Java, you must either catch the exception using a `try-catch`", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java." + ], + "answer": "a", + "explanation": "When you throw a checked exception from a method in Java, you must either catch the exception using a `try-catch` block or declare the exception using the `throws` keyword in the method signature. If you throw a checked exception" + }, + { + "id": 103, + "category": "Spring Framework", + "question": "What are the options you have to eliminate compilation errors when handling checked exceptions?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "When handling checked exceptions in Java, you have several options to eliminate compilation errors:", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "c", + "explanation": "When handling checked exceptions in Java, you have several options to eliminate compilation errors: 1. Catch the Exception: Use a `try-catch` block to catch the exception and handle it within the method." + }, + { + "id": 104, + "category": "Spring Framework", + "question": "How do you create a custom exception?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "To create a custom exception in Java, you need to define a new class that extends the `Exception` class or one of its", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "b", + "explanation": "To create a custom exception in Java, you need to define a new class that extends the `Exception` class or one of its subclasses. You can add custom fields, constructors, and methods to the custom exception class to provide additional" + }, + { + "id": 105, + "category": "Spring Framework", + "question": "How do you handle multiple exception types with same exception handling block?", + "options": [ + "Esta funcionalidad no existe en Java.", + "In Java, you can handle multiple exception types with the same exception handling block by using a multi-catch block.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "b", + "explanation": "In Java, you can handle multiple exception types with the same exception handling block by using a multi-catch block. This allows you to catch multiple exceptions in a single `catch` block and handle them in a common way. The syntax for" + }, + { + "id": 106, + "category": "Database Connectivity", + "question": "Can you explain about try with resources?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Try-with-resources is a feature introduced in Java 7 that simplifies resource management by automatically closing", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "c", + "explanation": "Try-with-resources is a feature introduced in Java 7 that simplifies resource management by automatically closing resources that implement the `AutoCloseable` interface. It eliminates the need for explicit `finally` blocks to close" + }, + { + "id": 107, + "category": "Database Connectivity", + "question": "How does try with resources work?", + "options": [ + "Try-with-resources in Java works by automatically closing resources that implement the `AutoCloseable` interface when", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "Try-with-resources in Java works by automatically closing resources that implement the `AutoCloseable` interface when the `try` block exits. It simplifies resource management by eliminating the need for explicit `finally` blocks to" + }, + { + "id": 108, + "category": "Database Connectivity", + "question": "Can you explain a few exception handling best practices?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Some exception handling best practices in Java include:", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "c", + "explanation": "Some exception handling best practices in Java include: allows you to handle different types of exceptions in a more targeted way." + }, + { + "id": 109, + "category": "Database Connectivity", + "question": "What are the default values in an array?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "In Java, when an array is created, the elements are initialized to default values based on the type of the array. The", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "c", + "explanation": "In Java, when an array is created, the elements are initialized to default values based on the type of the array. The default values for primitive types are as follows:" + }, + { + "id": 110, + "category": "Database Connectivity", + "question": "How do you loop around an array using enhanced for loop?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "You can loop around an array using an enhanced for loop in Java. The enhanced for loop, also known as the for-each" + ], + "answer": "d", + "explanation": "You can loop around an array using an enhanced for loop in Java. The enhanced for loop, also known as the for-each loop, provides a more concise syntax for iterating over elements in an array or a collection. It eliminates the need" + }, + { + "id": 111, + "category": "Database Connectivity", + "question": "How do you print the content of an array?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "You can print the content of an array in Java by iterating over the elements of the array and printing each element to" + ], + "answer": "d", + "explanation": "You can print the content of an array in Java by iterating over the elements of the array and printing each element to the console. There are several ways to print the content of an array, including using a `for` loop, an enhanced `for`" + }, + { + "id": 112, + "category": "Database Connectivity", + "question": "How do you compare two arrays?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "c", + "explanation": "In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method compares the contents of two arrays to determine if they are equal. It takes two arrays as arguments and returns" + }, + { + "id": 113, + "category": "Database Connectivity", + "question": "What is an enum?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to define a set of named constants that can be used in place of integer values. Enumerations are defined using the" + }, + { + "id": 114, + "category": "Database Connectivity", + "question": "Can you use a switch statement around an enum?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to provide a more readable and type-safe alternative to using integer values. Each constant in the enum can be used as a" + }, + { + "id": 115, + "category": "Database Connectivity", + "question": "What are variable arguments or varargs?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "b", + "explanation": "Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This feature was introduced in Java 5 and is denoted by an ellipsis (`...`) after the type of the last parameter in the" + }, + { + "id": 116, + "category": "Web Services", + "question": "What are asserts used for?", + "options": [ + "Asserts in Java are used to test assumptions in the code and validate conditions that should be true during program", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "Asserts in Java are used to test assumptions in the code and validate conditions that should be true during program execution. They are typically used for debugging and testing purposes to catch errors and inconsistencies in the code." + }, + { + "id": 117, + "category": "Web Services", + "question": "When should asserts be used?", + "options": [ + "Asserts in Java should be used in the following scenarios:", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "Asserts in Java should be used in the following scenarios:" + }, + { + "id": 118, + "category": "Web Services", + "question": "What is garbage collection?", + "options": [ + "Set permite elementos duplicados en Java.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program." + ], + "answer": "d", + "explanation": "Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program. It is a key feature of the Java Virtual Machine (JVM) that manages memory allocation and deallocation for objects" + }, + { + "id": 119, + "category": "Web Services", + "question": "Can you explain garbage collection with an example?", + "options": [ + "Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program.", + "Set permite elementos duplicados en Java.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Las colecciones en Java solo pueden almacenar tipos primitivos." + ], + "answer": "a", + "explanation": "Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program. It helps prevent memory leaks and ensures that memory is used efficiently by reclaiming unused memory and making it" + }, + { + "id": 120, + "category": "Web Services", + "question": "When is garbage collection run?", + "options": [ + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Garbage collection in Java is run by the JVM's garbage collector at specific intervals or when certain conditions are", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "Set permite elementos duplicados en Java." + ], + "answer": "b", + "explanation": "Garbage collection in Java is run by the JVM's garbage collector at specific intervals or when certain conditions are met. The garbage collector runs in the background and periodically checks for unused objects to reclaim memory. The" + }, + { + "id": 121, + "category": "Web Services", + "question": "What are best practices on garbage collection?", + "options": [ + "Some best practices for garbage collection in Java include:", + "Set permite elementos duplicados en Java.", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + ], + "answer": "a", + "explanation": "Some best practices for garbage collection in Java include: JVM's garbage collector manage memory automatically and optimize memory usage based on the application's" + }, + { + "id": 122, + "category": "Web Services", + "question": "What are initialization blocks?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Initialization blocks in Java are used to initialize instance variables of a class. There are two types of", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "b", + "explanation": "Initialization blocks in Java are used to initialize instance variables of a class. There are two types of initialization blocks in Java: instance initializer blocks and static initializer blocks." + }, + { + "id": 123, + "category": "Web Services", + "question": "What is a static initializer?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "A static initializer in Java is used to initialize static variables of a class. It is executed when the class is" + ], + "answer": "d", + "explanation": "A static initializer in Java is used to initialize static variables of a class. It is executed when the class is by the JVM and can be used to perform one-time initialization tasks. Static initializer blocks are defined with the" + }, + { + "id": 124, + "category": "Web Services", + "question": "What is an instance initializer block?", + "options": [ + "An instance initializer block in Java is used to initialize instance variables of a class. It is executed when an", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "An instance initializer block in Java is used to initialize instance variables of a class. It is executed when an instance of the class is created and can be used to perform complex initialization logic. Instance initializer blocks" + }, + { + "id": 125, + "category": "Web Services", + "question": "What is tokenizing?", + "options": [ + "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java." + ], + "answer": "a", + "explanation": "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing" + }, + { + "id": 126, + "category": "Design Patterns", + "question": "Can you give an example of tokenizing?", + "options": [ + "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing" + }, + { + "id": 127, + "category": "Design Patterns", + "question": "What is serialization?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Serialization in Java is the process of converting an object into a stream of bytes that can be saved to a file,", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "c", + "explanation": "Serialization in Java is the process of converting an object into a stream of bytes that can be saved to a file, sent over a network, or stored in a database. Serialization allows objects to be persisted and transferred between" + }, + { + "id": 128, + "category": "Design Patterns", + "question": "How do you serialize an object using serializable interface?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "To serialize an object in Java using the `Serializable` interface, follow these steps:", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "To serialize an object in Java using the `Serializable` interface, follow these steps: 1. Implement the `Serializable` interface in the class that you want to serialize. The `Serializable` interface is a" + }, + { + "id": 129, + "category": "Design Patterns", + "question": "How do you de-serialize in Java?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "To deserialize an object in Java, follow these steps:", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "c", + "explanation": "To deserialize an object in Java, follow these steps: 1. Create an instance of the `ObjectInputStream` class and pass it a `FileInputStream` or other input stream to read" + }, + { + "id": 130, + "category": "Design Patterns", + "question": "What do you do if only parts of the object have to be serialized?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "If only parts of an object need to be serialized in Java, you can use the `transient` keyword to mark fields that" + ], + "answer": "d", + "explanation": "If only parts of an object need to be serialized in Java, you can use the `transient` keyword to mark fields that should not be serialized. The `transient` keyword tells the JVM to skip the serialization of the marked field and" + }, + { + "id": 131, + "category": "Design Patterns", + "question": "How do you serialize a hierarchy of objects?", + "options": [ + "To serialize a hierarchy of objects in Java, follow these steps:", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "To serialize a hierarchy of objects in Java, follow these steps: 1. Implement the `Serializable` interface in all classes in the hierarchy that need to be serialized. The" + }, + { + "id": 132, + "category": "Design Patterns", + "question": "Are the constructors in an object invoked when it is de-serialized?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "When an object is deserialized in Java, the constructors of the object are not invoked. Instead, the object is", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "c", + "explanation": "When an object is deserialized in Java, the constructors of the object are not invoked. Instead, the object is restored from the serialized form, and its state and properties are reconstructed based on the serialized data. The" + }, + { + "id": 133, + "category": "Design Patterns", + "question": "Are the values of static variables stored when an object is serialized?", + "options": [ + "Esta funcionalidad no existe en Java.", + "When an object is serialized in Java, the values of static variables are not stored as part of the serialized object.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "b", + "explanation": "When an object is serialized in Java, the values of static variables are not stored as part of the serialized object. Static variables are associated with the class itself rather than individual instances of the class, so they are not" + }, + { + "id": 134, + "category": "Design Patterns", + "question": "Why do we need collections in Java?", + "options": [ + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to", + "Set permite elementos duplicados en Java." + ], + "answer": "c", + "explanation": "Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to organize and manage data in a structured and efficient manner. Collections offer a wide range of data structures and" + }, + { + "id": 135, + "category": "Design Patterns", + "question": "What are the important interfaces in the collection hierarchy?", + "options": [ + "Set permite elementos duplicados en Java.", + "The Java Collections Framework provides a set of interfaces that define the core functionality of collections in", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + ], + "answer": "b", + "explanation": "The Java Collections Framework provides a set of interfaces that define the core functionality of collections in Java. Some of the important interfaces in the collection hierarchy include:" + }, + { + "id": 136, + "category": "JVM and Memory Management", + "question": "What are the important methods that are declared in the collection interface?", + "options": [ + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "Set permite elementos duplicados en Java.", + "The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + ], + "answer": "c", + "explanation": "The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the interface. Some of the important methods declared in the `Collection` interface include:" + }, + { + "id": 137, + "category": "JVM and Memory Management", + "question": "Can you explain briefly about the List interface?", + "options": [ + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Set permite elementos duplicados en Java." + ], + "answer": "b", + "explanation": "The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements that allows duplicates. Lists maintain the insertion order of elements and provide methods for accessing, adding," + }, + { + "id": 138, + "category": "JVM and Memory Management", + "question": "Explain about ArrayList with an example?", + "options": [ + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic", + "Set permite elementos duplicados en Java." + ], + "answer": "c", + "explanation": "The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic resizing, fast random access, and efficient insertion and deletion of elements. `ArrayList` is part of the Java" + }, + { + "id": 139, + "category": "JVM and Memory Management", + "question": "Can an ArrayList have duplicate elements?", + "options": [ + "Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "Set permite elementos duplicados en Java." + ], + "answer": "a", + "explanation": "Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an `ArrayList` allows elements to be added multiple times. This means that an `ArrayList` can contain duplicate elements" + }, + { + "id": 140, + "category": "JVM and Memory Management", + "question": "How do you iterate around an ArrayList using iterator?", + "options": [ + "Set permite elementos duplicados en Java.", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the" + ], + "answer": "d", + "explanation": "To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the `ArrayList` class. The `iterator` method returns an `Iterator` object that can be used to traverse the elements in the" + }, + { + "id": 141, + "category": "JVM and Memory Management", + "question": "How do you sort an ArrayList?", + "options": [ + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections`", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Set permite elementos duplicados en Java." + ], + "answer": "b", + "explanation": "To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections` class. The `Collections.sort` method sorts the elements in the list in ascending order based on their natural order or" + }, + { + "id": 142, + "category": "JVM and Memory Management", + "question": "How do you sort elements in an ArrayList using comparable interface?", + "options": [ + "Set permite elementos duplicados en Java.", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable`" + ], + "answer": "d", + "explanation": "To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable` interface in the class of the elements you want to sort. The `Comparable` interface defines a `compareTo` method that" + }, + { + "id": 143, + "category": "JVM and Memory Management", + "question": "How do you sort elements in an ArrayList using comparator interface?", + "options": [ + "Set permite elementos duplicados en Java.", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator" + ], + "answer": "d", + "explanation": "To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator class that implements the `Comparator` interface. The `Comparator` interface defines a `compare` method that compares" + }, + { + "id": 144, + "category": "JVM and Memory Management", + "question": "What is vector class? How is it different from an ArrayList?", + "options": [ + "The `Vector` class in Java is a legacy collection class that is similar to an `ArrayList` but is synchronized. This", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "Set permite elementos duplicados en Java.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + ], + "answer": "a", + "explanation": "The `Vector` class in Java is a legacy collection class that is similar to an `ArrayList` but is synchronized. This means that access to a `Vector` is thread-safe, making it suitable for use in multi-threaded environments. The" + }, + { + "id": 145, + "category": "JVM and Memory Management", + "question": "What is linkedList? What interfaces does it implement? How is it different from an ArrayList?", + "options": [ + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "The `LinkedList` class in Java is a doubly-linked list implementation of the `List` interface. It provides efficient", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "Set permite elementos duplicados en Java." + ], + "answer": "b", + "explanation": "The `LinkedList` class in Java is a doubly-linked list implementation of the `List` interface. It provides efficient insertion and deletion of elements at the beginning, middle, and end of the list. `LinkedList` implements the `List`," + }, + { + "id": 146, + "category": "Testing", + "question": "Can you briefly explain about the Set interface?", + "options": [ + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "The `Set` interface in Java extends the `Collection` interface and represents a collection of unique elements with no", + "Set permite elementos duplicados en Java.", + "Las colecciones en Java solo pueden almacenar tipos primitivos." + ], + "answer": "b", + "explanation": "The `Set` interface in Java extends the `Collection` interface and represents a collection of unique elements with no duplicates. Sets do not allow duplicate elements, and they maintain no specific order of elements. The `Set`" + }, + { + "id": 147, + "category": "Testing", + "question": "What are the important interfaces related to the Set interface?", + "options": [ + "Set permite elementos duplicados en Java.", + "The `Set` interface in Java is related to several other interfaces in the Java Collections Framework that provide", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + ], + "answer": "b", + "explanation": "The `Set` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with sets of elements. Some of the important interfaces related to the `Set`" + }, + { + "id": 148, + "category": "Testing", + "question": "What is the difference between Set and sortedSet interfaces?", + "options": [ + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "Set permite elementos duplicados en Java.", + "The `Set` and `SortedSet` interfaces in Java are related interfaces in the Java Collections Framework that represent", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + ], + "answer": "c", + "explanation": "The `Set` and `SortedSet` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of unique elements with no duplicates. The main difference between `Set` and `SortedSet` is the ordering" + }, + { + "id": 149, + "category": "Testing", + "question": "Can you give examples of classes that implement the Set interface?", + "options": [ + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "The `Set` interface in Java is implemented by several classes in the Java Collections Framework that provide", + "Set permite elementos duplicados en Java.", + "Las colecciones en Java solo pueden almacenar tipos primitivos." + ], + "answer": "b", + "explanation": "The `Set` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of sets. Some of the common classes that implement the `Set` interface include:" + }, + { + "id": 150, + "category": "Testing", + "question": "What is a HashSet? How is it different from a TreeSet?", + "options": [ + "`HashSet` and `TreeSet` are two common implementations of the `Set` interface in Java that provide different", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "Set permite elementos duplicados en Java." + ], + "answer": "a", + "explanation": "`HashSet` and `TreeSet` are two common implementations of the `Set` interface in Java that provide different characteristics for working with sets of elements. The main differences between `HashSet` and `TreeSet` include:" + }, + { + "id": 151, + "category": "Testing", + "question": "What is a linkedHashSet? How is different from a HashSet?", + "options": [ + "`LinkedHashSet` is a class in Java that extends `HashSet` and maintains the order of elements based on their insertion", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Set permite elementos duplicados en Java." + ], + "answer": "a", + "explanation": "`LinkedHashSet` is a class in Java that extends `HashSet` and maintains the order of elements based on their insertion order. Unlike `HashSet`, which does not maintain the order of elements, `LinkedHashSet` provides predictable iteration" + }, + { + "id": 152, + "category": "Testing", + "question": "What is a TreeSet? How is different from a HashSet?", + "options": [ + "`TreeSet` is a class in Java that implements the `SortedSet` interface using a red-black tree data structure.", + "Set permite elementos duplicados en Java.", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + ], + "answer": "a", + "explanation": "`TreeSet` is a class in Java that implements the `SortedSet` interface using a red-black tree data structure. maintains the order of elements based on their natural ordering or a custom comparator, allowing elements to be sorted" + }, + { + "id": 153, + "category": "Testing", + "question": "Can you give examples of implementations of navigableSet?", + "options": [ + "The `NavigableSet` interface in Java is implemented by the `TreeSet` and `ConcurrentSkipListSet` classes in the Java", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Set permite elementos duplicados en Java." + ], + "answer": "a", + "explanation": "The `NavigableSet` interface in Java is implemented by the `TreeSet` and `ConcurrentSkipListSet` classes in the Java Collections Framework. These classes provide implementations of navigable sets that support navigation methods for" + }, + { + "id": 154, + "category": "Testing", + "question": "Explain briefly about Queue interface?", + "options": [ + "The `Queue` interface in Java represents a collection of elements in a specific order for processing. Queues follow", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java." + ], + "answer": "a", + "explanation": "The `Queue` interface in Java represents a collection of elements in a specific order for processing. Queues follow the First-In-First-Out (FIFO) order, meaning that elements are added to the end of the queue and removed from the" + }, + { + "id": 155, + "category": "Testing", + "question": "What are the important interfaces related to the Queue interface?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "The `Queue` interface in Java is related to several other interfaces in the Java Collections Framework that provide", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "The `Queue` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with queues of elements. Some of the important interfaces related to the `Queue`" + }, + { + "id": 156, + "category": "Best Practices", + "question": "Explain about the Deque interface?", + "options": [ + "The `Deque` interface in Java represents a double-ended queue that allows elements to be added or removed from both", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "The `Deque` interface in Java represents a double-ended queue that allows elements to be added or removed from both ends. Deques provide methods for adding, removing, and accessing elements at the front and back of the queue, making" + }, + { + "id": 157, + "category": "Best Practices", + "question": "Explain the BlockingQueue interface?", + "options": [ + "The `BlockingQueue` interface in Java represents a queue that supports blocking operations for adding and removing", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java." + ], + "answer": "a", + "explanation": "The `BlockingQueue` interface in Java represents a queue that supports blocking operations for adding and removing elements. Blocking queues provide methods for waiting for elements to become available or space to become available in" + }, + { + "id": 158, + "category": "Best Practices", + "question": "What is a priorityQueue? How is it different from a normal queue?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "`PriorityQueue` is a class in Java that implements the `Queue` interface using a priority heap data structure. Unlike" + ], + "answer": "d", + "explanation": "`PriorityQueue` is a class in Java that implements the `Queue` interface using a priority heap data structure. Unlike a normal queue, which follows the First-In-First-Out (FIFO) order, a `PriorityQueue` maintains elements in a priority" + }, + { + "id": 159, + "category": "Best Practices", + "question": "Can you give example implementations of the BlockingQueue interface?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "The `BlockingQueue` interface in Java is implemented by several classes in the Java Collections Framework that provide" + ], + "answer": "d", + "explanation": "The `BlockingQueue` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of blocking queues. Some examples of implementations of `BlockingQueue` include:" + }, + { + "id": 160, + "category": "Best Practices", + "question": "Can you briefly explain about the Map interface?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "The `Map` interface in Java represents a collection of key-value pairs where each key is unique and maps to a single", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java." + ], + "answer": "b", + "explanation": "The `Map` interface in Java represents a collection of key-value pairs where each key is unique and maps to a single value. Maps provide methods for adding, removing, and accessing key-value pairs, as well as for checking the presence" + }, + { + "id": 161, + "category": "Best Practices", + "question": "What is difference between Map and SortedMap?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "The `Map` and `SortedMap` interfaces in Java are related interfaces in the Java Collections Framework that represent" + ], + "answer": "d", + "explanation": "The `Map` and `SortedMap` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of key-value pairs. The main difference between `Map` and `SortedMap` is the ordering of keys:" + }, + { + "id": 162, + "category": "Best Practices", + "question": "What is a HashMap? How is it different from a TreeMap?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "`HashMap` and `TreeMap` are two common implementations of the `Map` interface in Java that provide different", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "`HashMap` and `TreeMap` are two common implementations of the `Map` interface in Java that provide different characteristics for working with key-value pairs. The main differences between `HashMap` and `TreeMap` include:" + }, + { + "id": 163, + "category": "Best Practices", + "question": "What are the different methods in a Hash Map?", + "options": [ + "The `HashMap` class in Java provides a variety of methods for working with key-value pairs stored in a hash table", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "The `HashMap` class in Java provides a variety of methods for working with key-value pairs stored in a hash table data structure. Some of the common methods provided by the `HashMap` class include:" + }, + { + "id": 164, + "category": "Best Practices", + "question": "What is a TreeMap? How is different from a HashMap?", + "options": [ + "Esta funcionalidad no existe en Java.", + "`TreeMap` is a class in Java that implements the `SortedMap` interface using a red-black tree data structure.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "b", + "explanation": "`TreeMap` is a class in Java that implements the `SortedMap` interface using a red-black tree data structure. `TreeMap` maintains the order of keys based on their natural ordering or a custom comparator, allowing keys" + }, + { + "id": 165, + "category": "Best Practices", + "question": "Can you give an example of implementation of NavigableMap interface?", + "options": [ + "The `NavigableMap` interface in Java is implemented by the `TreeMap` class in the Java Collections Framework.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "The `NavigableMap` interface in Java is implemented by the `TreeMap` class in the Java Collections Framework. provides a navigable map of key-value pairs sorted in a specific order, allowing elements to be accessed, added, and" + }, + { + "id": 166, + "category": "Performance Optimization", + "question": "What are the static methods present in the collections class?", + "options": [ + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Set permite elementos duplicados en Java.", + "The `Collections` class in Java provides a variety of static methods for working with collections in the Java", + "Las colecciones en Java solo pueden almacenar tipos primitivos." + ], + "answer": "c", + "explanation": "The `Collections` class in Java provides a variety of static methods for working with collections in the Java Collections Framework. Some of the common static methods provided by the `Collections` class include:" + }, + { + "id": 167, + "category": "Performance Optimization", + "question": "What is the difference between synchronized and concurrent collections in Java?", + "options": [ + "Synchronized collections and concurrent collections in Java are two approaches to handling thread safety in", + "Set permite elementos duplicados en Java.", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + ], + "answer": "a", + "explanation": "Synchronized collections and concurrent collections in Java are two approaches to handling thread safety in multi-threaded applications. The main difference between synchronized and concurrent collections is how they achieve" + }, + { + "id": 168, + "category": "Performance Optimization", + "question": "Explain about the new concurrent collections in Java?", + "options": [ + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Java provides a set of concurrent collections in the `java.util.concurrent` package that are designed for high", + "Set permite elementos duplicados en Java.", + "Las colecciones en Java solo pueden almacenar tipos primitivos." + ], + "answer": "b", + "explanation": "Java provides a set of concurrent collections in the `java.util.concurrent` package that are designed for high concurrency and thread safety in multi-threaded applications. Some of the new concurrent collections introduced in" + }, + { + "id": 169, + "category": "Performance Optimization", + "question": "Explain about copyOnWrite concurrent collections approach?", + "options": [ + "The copy-on-write (COW) approach is a concurrency control technique used in Java to provide thread-safe access to", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Set permite elementos duplicados en Java.", + "Las colecciones en Java solo pueden almacenar tipos primitivos." + ], + "answer": "a", + "explanation": "The copy-on-write (COW) approach is a concurrency control technique used in Java to provide thread-safe access to collections. In the copy-on-write approach, a new copy of the collection is created whenever a modification is made," + }, + { + "id": 170, + "category": "Performance Optimization", + "question": "What is compareAndSwap approach?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "The compare-and-swap (CAS) operation is an atomic operation used in concurrent programming to implement lock-free" + ], + "answer": "d", + "explanation": "The compare-and-swap (CAS) operation is an atomic operation used in concurrent programming to implement lock-free algorithms and data structures. The CAS operation allows a thread to update a value in memory if it matches an" + }, + { + "id": 171, + "category": "Performance Optimization", + "question": "What is a lock? How is it different from using synchronized approach?", + "options": [ + "Los threads en Java no pueden compartir memoria.", + "Java no soporta programación concurrente nativa.", + "Synchronized solo funciona con métodos estáticos.", + "A lock is a synchronization mechanism used in Java to control access to shared resources in multi-threaded" + ], + "answer": "d", + "explanation": "A lock is a synchronization mechanism used in Java to control access to shared resources in multi-threaded applications. Locks provide a way to coordinate the execution of threads and ensure that only one thread can access a" + }, + { + "id": 172, + "category": "Performance Optimization", + "question": "What is initial capacity of a Java collection?", + "options": [ + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "The initial capacity of a Java collection refers to the number of elements that the collection can initially store", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "Set permite elementos duplicados en Java." + ], + "answer": "b", + "explanation": "The initial capacity of a Java collection refers to the number of elements that the collection can initially store before resizing is required. When a collection is created, an initial capacity is specified to allocate memory for" + }, + { + "id": 173, + "category": "Performance Optimization", + "question": "What is load factor?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "The load factor of a Java collection is a value that determines when the collection should be resized to accommodate" + ], + "answer": "d", + "explanation": "The load factor of a Java collection is a value that determines when the collection should be resized to accommodate additional elements. The load factor is used in hash-based collections like `HashMap` and `HashSet` to control the" + }, + { + "id": 174, + "category": "Performance Optimization", + "question": "When does a Java collection throw `UnsupportedOperationException`?", + "options": [ + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "A Java collection throws an `UnsupportedOperationException` when an operation is not supported by the collection. This", + "Set permite elementos duplicados en Java." + ], + "answer": "c", + "explanation": "A Java collection throws an `UnsupportedOperationException` when an operation is not supported by the collection. This exception is typically thrown when an attempt is made to modify an immutable or read-only collection, or when an" + }, + { + "id": 175, + "category": "Performance Optimization", + "question": "What is difference between fail-safe and fail-fast iterators?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Fail-safe and fail-fast iterators are two different approaches to handling concurrent modifications to collections in", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "c", + "explanation": "Fail-safe and fail-fast iterators are two different approaches to handling concurrent modifications to collections in Java. The main difference between fail-safe and fail-fast iterators is how they respond to modifications made to a" + }, + { + "id": 176, + "category": "Security", + "question": "What are atomic operations in Java?", + "options": [ + "Atomic operations in Java are operations that are performed atomically, meaning that they are indivisible and", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "Atomic operations in Java are operations that are performed atomically, meaning that they are indivisible and uninterruptible. Atomic operations are used in concurrent programming to ensure that shared data is accessed and" + }, + { + "id": 177, + "category": "Security", + "question": "What is BlockingQueue in Java?", + "options": [ + "A `BlockingQueue` in Java is a type of queue that supports blocking operations for adding and removing elements. A", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java." + ], + "answer": "a", + "explanation": "A `BlockingQueue` in Java is a type of queue that supports blocking operations for adding and removing elements. A blocking queue provides methods for waiting for elements to become available or space to become available in the" + }, + { + "id": 178, + "category": "Security", + "question": "What are Generics? Why do we need Generics?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics" + ], + "answer": "d", + "explanation": "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics provide a way to create reusable and type-safe code by allowing classes and methods to work with generic types that" + }, + { + "id": 179, + "category": "Security", + "question": "Why do we need Generics? Can you give an example of how Generics make a program more flexible?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "b", + "explanation": "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics provide a way to create reusable and type-safe code by allowing classes and methods to work with generic types that" + }, + { + "id": 180, + "category": "Security", + "question": "How do you declare a generic class?", + "options": [ + "A generic class in Java is declared by specifying one or more type parameters in angle brackets (`<>`) after the class", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java." + ], + "answer": "a", + "explanation": "A generic class in Java is declared by specifying one or more type parameters in angle brackets (`<>`) after the class name. The type parameters are used to represent generic types that can be specified at compile time when creating" + }, + { + "id": 181, + "category": "Security", + "question": "What are the restrictions in using generic type that is declared in a class declaration?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "When using a generic type that is declared in a class declaration, there are some restrictions and limitations that" + ], + "answer": "d", + "explanation": "When using a generic type that is declared in a class declaration, there are some restrictions and limitations that must be considered:" + }, + { + "id": 182, + "category": "Security", + "question": "How can we restrict Generics to a subclass of particular class?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "In Java, it is possible to restrict generics to a subclass of a particular class by using bounded type parameters. By", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "c", + "explanation": "In Java, it is possible to restrict generics to a subclass of a particular class by using bounded type parameters. By specifying an upper bound for the generic type parameter, you can restrict the types that can be used with the generic" + }, + { + "id": 183, + "category": "Security", + "question": "How can we restrict Generics to a super class of particular class?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "In Java, it is possible to restrict generics to a super class of a particular class by using bounded type parameters.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java." + ], + "answer": "b", + "explanation": "In Java, it is possible to restrict generics to a super class of a particular class by using bounded type parameters. By specifying a lower bound for the generic type parameter, you can restrict the types that can be used with the" + }, + { + "id": 184, + "category": "Security", + "question": "Can you give an example of a generic method?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "A generic method in Java is a method that is parameterized by one or more types. Generic methods provide a way to" + ], + "answer": "d", + "explanation": "A generic method in Java is a method that is parameterized by one or more types. Generic methods provide a way to create methods that can work with different types of arguments without sacrificing type safety. Here is an example of" + }, + { + "id": 185, + "category": "Security", + "question": "What is the need for threads in Java?", + "options": [ + "Synchronized solo funciona con métodos estáticos.", + "Threads in Java are used to achieve concurrent execution of tasks within a single process. Threads allow multiple", + "Java no soporta programación concurrente nativa.", + "Los threads en Java no pueden compartir memoria." + ], + "answer": "b", + "explanation": "Threads in Java are used to achieve concurrent execution of tasks within a single process. Threads allow multiple operations to be performed simultaneously, enabling applications to take advantage of multi-core processors and" + }, + { + "id": 186, + "category": "Frameworks", + "question": "How do you create a thread?", + "options": [ + "There are two main ways to create a thread in Java:", + "Java no soporta programación concurrente nativa.", + "Synchronized solo funciona con métodos estáticos.", + "Los threads en Java no pueden compartir memoria." + ], + "answer": "a", + "explanation": "There are two main ways to create a thread in Java: `run` method. This approach allows you to define the behavior of the thread by implementing the `run` method." + }, + { + "id": 187, + "category": "Frameworks", + "question": "How do you create a thread by extending thread class?", + "options": [ + "You can create a thread in Java by extending the `Thread` class and overriding the `run` method. This approach allows", + "Los threads en Java no pueden compartir memoria.", + "Synchronized solo funciona con métodos estáticos.", + "Java no soporta programación concurrente nativa." + ], + "answer": "a", + "explanation": "You can create a thread in Java by extending the `Thread` class and overriding the `run` method. This approach allows you to define the behavior of the thread by implementing the `run` method. Here is an example:" + }, + { + "id": 188, + "category": "Frameworks", + "question": "How do you create a thread by implementing runnable interface?", + "options": [ + "Java no soporta programación concurrente nativa.", + "Los threads en Java no pueden compartir memoria.", + "You can create a thread in Java by implementing the `Runnable` interface and passing an instance of the class to the", + "Synchronized solo funciona con métodos estáticos." + ], + "answer": "c", + "explanation": "You can create a thread in Java by implementing the `Runnable` interface and passing an instance of the class to the `Thread` constructor. This approach separates the thread logic from the class definition and allows for better code" + }, + { + "id": 189, + "category": "Frameworks", + "question": "How do you run a thread in Java?", + "options": [ + "Los threads en Java no pueden compartir memoria.", + "There are two main ways to run a thread in Java:", + "Java no soporta programación concurrente nativa.", + "Synchronized solo funciona con métodos estáticos." + ], + "answer": "b", + "explanation": "There are two main ways to run a thread in Java: method. This approach allows you to define the behavior of the thread by implementing the `run` method. You can" + }, + { + "id": 190, + "category": "Frameworks", + "question": "What are the different states of a thread?", + "options": [ + "Los threads en Java no pueden compartir memoria.", + "Synchronized solo funciona con métodos estáticos.", + "Java no soporta programación concurrente nativa.", + "Threads in Java can be in different states during their lifecycle. The main states of a thread in Java are:" + ], + "answer": "d", + "explanation": "Threads in Java can be in different states during their lifecycle. The main states of a thread in Java are:" + }, + { + "id": 191, + "category": "Frameworks", + "question": "What is priority of a thread? How do you change the priority of a thread?", + "options": [ + "Java no soporta programación concurrente nativa.", + "Los threads en Java no pueden compartir memoria.", + "Synchronized solo funciona con métodos estáticos.", + "The priority of a thread in Java is an integer value that determines the scheduling priority of the thread." + ], + "answer": "d", + "explanation": "The priority of a thread in Java is an integer value that determines the scheduling priority of the thread. with higher priority values are given preference by the thread scheduler and are more likely." + }, + { + "id": 192, + "category": "Frameworks", + "question": "What is ExecutorService?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "`ExecutorService` is an interface in the Java Concurrency API that provides a higher-level abstraction for managing" + ], + "answer": "d", + "explanation": "`ExecutorService` is an interface in the Java Concurrency API that provides a higher-level abstraction for managing and executing tasks asynchronously using a pool of threads. `ExecutorService` extends the `Executor` interface and" + }, + { + "id": 193, + "category": "Frameworks", + "question": "Can you give an example for ExecutorService?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Here is an example of using `ExecutorService` to execute tasks asynchronously in Java:", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "b", + "explanation": "Here is an example of using `ExecutorService` to execute tasks asynchronously in Java: import java.util.concurrent.ExecutorService;" + }, + { + "id": 194, + "category": "Frameworks", + "question": "Explain different ways of creating executor services", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "There are several ways to create `ExecutorService` instances in Java using the `Executors` utility class. Some of the", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "c", + "explanation": "There are several ways to create `ExecutorService` instances in Java using the `Executors` utility class. Some of the common ways to create `ExecutorService` instances include:" + }, + { + "id": 195, + "category": "Frameworks", + "question": "How do you check whether an ExecutionService task executed successfully?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "The `Future` interface in the Java Concurrency API provides a way to check whether an `ExecutorService` task executed" + ], + "answer": "d", + "explanation": "The `Future` interface in the Java Concurrency API provides a way to check whether an `ExecutorService` task executed successfully and retrieve the result of the task. The `Future` interface represents the result of an asynchronous" + }, + { + "id": 196, + "category": "Advanced Topics", + "question": "What is callable? How do you execute a callable from executionservice?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "`Callable` is a functional interface in the Java Concurrency API that represents a task that can be executed", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java." + ], + "answer": "b", + "explanation": "`Callable` is a functional interface in the Java Concurrency API that represents a task that can be executed asynchronously and return a result. `Callable` is similar to `Runnable`, but it can return a result or throw an" + }, + { + "id": 197, + "category": "Advanced Topics", + "question": "What is synchronization of threads?", + "options": [ + "Synchronized solo funciona con métodos estáticos.", + "Los threads en Java no pueden compartir memoria.", + "Synchronization in Java is a mechanism that allows multiple threads to coordinate access to shared resources.", + "Java no soporta programación concurrente nativa." + ], + "answer": "c", + "explanation": "Synchronization in Java is a mechanism that allows multiple threads to coordinate access to shared resources." + }, + { + "id": 198, + "category": "Advanced Topics", + "question": "Can you give an example of a synchronized block?", + "options": [ + "Here is an example of using a synchronized block in Java to synchronize access to a shared resource:", + "Los threads en Java no pueden compartir memoria.", + "Synchronized solo funciona con métodos estáticos.", + "Java no soporta programación concurrente nativa." + ], + "answer": "a", + "explanation": "Here is an example of using a synchronized block in Java to synchronize access to a shared resource: public class Counter {" + }, + { + "id": 199, + "category": "Advanced Topics", + "question": "Can a static method be synchronized?", + "options": [ + "Yes, a static method can be synchronized in Java. When a static method is synchronized, the lock acquired is on the", + "Los threads en Java no pueden compartir memoria.", + "Synchronized solo funciona con métodos estáticos.", + "Java no soporta programación concurrente nativa." + ], + "answer": "a", + "explanation": "Yes, a static method can be synchronized in Java. When a static method is synchronized, the lock acquired is on the class object associated with the method's class. This means that only one thread can execute the synchronized static" + }, + { + "id": 200, + "category": "Advanced Topics", + "question": "What is the use of join method in threads?", + "options": [ + "The `join` method in Java is used to wait for a thread to complete its execution before continuing with the current", + "Los threads en Java no pueden compartir memoria.", + "Synchronized solo funciona con métodos estáticos.", + "Java no soporta programación concurrente nativa." + ], + "answer": "a", + "explanation": "The `join` method in Java is used to wait for a thread to complete its execution before continuing with the current thread. When the `join` method is called on a thread, the current thread will block and wait for the specified thread" + }, + { + "id": 201, + "category": "Advanced Topics", + "question": "Describe a few other important methods in threads?", + "options": [ + "Synchronized solo funciona con métodos estáticos.", + "Some other important methods in Java threads include:", + "Los threads en Java no pueden compartir memoria.", + "Java no soporta programación concurrente nativa." + ], + "answer": "b", + "explanation": "Some other important methods in Java threads include:" + }, + { + "id": 202, + "category": "Advanced Topics", + "question": "What is a deadlock? How can you avoid a deadlock?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "A deadlock is a situation in multi-threaded programming where two or more threads are blocked forever, waiting for" + ], + "answer": "d", + "explanation": "A deadlock is a situation in multi-threaded programming where two or more threads are blocked forever, waiting for other to release resources that they need to continue execution. Deadlocks can occur when multiple threads acquire" + }, + { + "id": 203, + "category": "Advanced Topics", + "question": "What are the important methods in Java for inter", + "options": [ + "Java provides several methods for inter-thread communication, including:", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "Java provides several methods for inter-thread communication, including: threads to wait for a condition to be met and notify other threads when the condition is satisfied." + }, + { + "id": 204, + "category": "Advanced Topics", + "question": "What is the use of wait method?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "The `wait` method in Java is used to make a thread wait until a condition is met. When a thread calls the `wait`" + ], + "answer": "d", + "explanation": "The `wait` method in Java is used to make a thread wait until a condition is met. When a thread calls the `wait` it releases the lock it holds and enters a waiting state until another thread calls the `notify` or `notifyAll` method" + }, + { + "id": 205, + "category": "Advanced Topics", + "question": "What is the use of notify method?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "The `notify` method in Java is used to wake up a single thread that is waiting on the same object. When a thread calls" + ], + "answer": "d", + "explanation": "The `notify` method in Java is used to wake up a single thread that is waiting on the same object. When a thread calls the `notify` method, it notifies a single waiting thread to wake up and continue execution. The `notify` method is" + }, + { + "id": 206, + "category": "Enterprise Development", + "question": "What is the use of notifyall method?", + "options": [ + "The `notifyAll` method in Java is used to wake up all threads that are waiting on the same object. When a thread calls", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "The `notifyAll` method in Java is used to wake up all threads that are waiting on the same object. When a thread calls the `notifyAll` method, it notifies all waiting threads to wake up and" + }, + { + "id": 207, + "category": "Enterprise Development", + "question": "Can you write a synchronized program with wait and notify methods?", + "options": [ + "Java no soporta programación concurrente nativa.", + "Synchronized solo funciona con métodos estáticos.", + "Here is an example of a synchronized program using the `wait` and `notify` methods for inter-thread communication in", + "Los threads en Java no pueden compartir memoria." + ], + "answer": "c", + "explanation": "Here is an example of a synchronized program using the `wait` and `notify` methods for inter-thread communication in" + }, + { + "id": 208, + "category": "Enterprise Development", + "question": "What is functional programming? How is it different from object", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data. Functional programming focuses on the use of pure functions, higher-order" + }, + { + "id": 209, + "category": "Enterprise Development", + "question": "Can you give an example of functional programming?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java." + ], + "answer": "b", + "explanation": "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data. Functional programming focuses on the use of pure functions, higher-order" + }, + { + "id": 211, + "category": "Enterprise Development", + "question": "Explain about streams with an example? what are intermediate operations in streams?", + "options": [ + "Streams in Java provide a way to process collections of elements in a functional and declarative manner. Streams", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java." + ], + "answer": "a", + "explanation": "Streams in Java provide a way to process collections of elements in a functional and declarative manner. Streams enable you to perform operations like filtering, mapping, sorting, and reducing on collections using a fluent and" + }, + { + "id": 212, + "category": "Enterprise Development", + "question": "What are terminal operations in streams?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Terminal operations in streams are operations that produce a result or a side effect and terminate the stream" + ], + "answer": "d", + "explanation": "Terminal operations in streams are operations that produce a result or a side effect and terminate the stream processing. Terminal operations are the final step in a stream pipeline and trigger the execution of intermediate" + }, + { + "id": 213, + "category": "Enterprise Development", + "question": "What are method references? How are they used in streams?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Method references in Java provide a way to refer to methods or constructors without invoking them. Method references" + ], + "answer": "d", + "explanation": "Method references in Java provide a way to refer to methods or constructors without invoking them. Method references are shorthand syntax for lambda expressions that call a single method or constructor. Method references can be used in" + }, + { + "id": 214, + "category": "Enterprise Development", + "question": "What are lambda expressions? How are they used in streams?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as" + ], + "answer": "d", + "explanation": "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent" + }, + { + "id": 215, + "category": "Enterprise Development", + "question": "Can you give an example of lambda expression?", + "options": [ + "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent" + }, + { + "id": 216, + "category": "Modern Java Features", + "question": "Can you explain the relationship between lambda expression and functional interfaces?", + "options": [ + "Lambda expressions in Java are closely related to functional interfaces, which are interfaces that have exactly one", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "Lambda expressions in Java are closely related to functional interfaces, which are interfaces that have exactly one abstract method. Lambda expressions can be used to provide an implementation for the abstract method of a functional" + }, + { + "id": 217, + "category": "Modern Java Features", + "question": "What is a predicate?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "A predicate in Java is a functional interface that represents a boolean-valued function of one argument. Predicates", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java." + ], + "answer": "b", + "explanation": "A predicate in Java is a functional interface that represents a boolean-valued function of one argument. Predicates commonly used in functional programming to define conditions or filters that can be applied to elements in a" + }, + { + "id": 218, + "category": "Modern Java Features", + "question": "What is the functional interface", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "The `Function` interface in Java is a functional interface that represents a function that accepts one argument and", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "The `Function` interface in Java is a functional interface that represents a function that accepts one argument and produces a result. The `Function` interface is commonly used in functional programming to define transformations or" + }, + { + "id": 219, + "category": "Modern Java Features", + "question": "What is a consumer?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "A consumer in Java is a functional interface that represents an operation that accepts a single input argument and" + ], + "answer": "d", + "explanation": "A consumer in Java is a functional interface that represents an operation that accepts a single input argument and returns no result. Consumers are commonly used in functional programming to perform side effects or actions on" + }, + { + "id": 220, + "category": "Modern Java Features", + "question": "Can you give examples of functional interfaces with multiple arguments?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Functional interfaces in Java can have multiple arguments by defining methods with multiple parameters. You can create", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java." + ], + "answer": "b", + "explanation": "Functional interfaces in Java can have multiple arguments by defining methods with multiple parameters. You can create functional interfaces with multiple arguments by specifying the number of input arguments in the method signature and" + }, + { + "id": 221, + "category": "Modern Java Features", + "question": "What are the new features in Java 5?", + "options": [ + "Java 5 introduced several new features and enhancements to the Java programming language, including:", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta funcionalidad no existe en Java." + ], + "answer": "a", + "explanation": "Java 5 introduced several new features and enhancements to the Java programming language, including: casting of objects. Generics allow you to define classes, interfaces, and methods with type parameters that can be" + }, + { + "id": 222, + "category": "Modern Java Features", + "question": "What are the new features in Java 6?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Java 6 introduced several new features and enhancements to the Java programming language, including:" + ], + "answer": "d", + "explanation": "Java 6 introduced several new features and enhancements to the Java programming language, including: execute scripts written in languages like JavaScript, Groovy, and Ruby within Java applications. Scripting support" + }, + { + "id": 223, + "category": "Modern Java Features", + "question": "What are the new features in Java 7?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java 7 introduced several new features and enhancements to the Java programming language, including:" + ], + "answer": "d", + "explanation": "Java 7 introduced several new features and enhancements to the Java programming language, including: type arguments from the context. The diamond operator allows you to create instances of generic classes without" + }, + { + "id": 224, + "category": "Modern Java Features", + "question": "What are the new features in Java", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Java 8 introduced several new features and enhancements to the Java programming language, including:", + "Esta funcionalidad no existe en Java." + ], + "answer": "c", + "explanation": "Java 8 introduced several new features and enhancements to the Java programming language, including: anonymous functions or blocks of code. Lambda expressions enable functional programming paradigms in Java and" + }, + { + "id": 225, + "category": "Modern Java Features", + "question": "What are the new features in Java 9?", + "options": [ + "Java 9 introduced several new features and enhancements to the Java programming language, including:", + "Esta funcionalidad no existe en Java.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "a", + "explanation": "Java 9 introduced several new features and enhancements to the Java programming language, including: encapsulate" + }, + { + "id": 226, + "category": "Modern Java Features", + "question": "What are the new features in Java 11?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Java 11 introduced several new features and enhancements to the Java programming language, including:" + ], + "answer": "d", + "explanation": "Java 11 introduced several new features and enhancements to the Java programming language, including: lambda parameters in lambda expressions. This feature allows you to use `var` to declare the type of lambda" + }, + { + "id": 227, + "category": "Modern Java Features", + "question": "What are the new features in Java 13?", + "options": [ + "Esta funcionalidad no existe en Java.", + "Java 13 introduced several new features and enhancements to the Java programming language, including:", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java no soporta esta característica hasta versiones muy recientes." + ], + "answer": "b", + "explanation": "Java 13 introduced several new features and enhancements to the Java programming language, including: and maintainable way to write multi-line strings in Java. Text blocks allow you to define multi-line strings with" + }, + { + "id": 228, + "category": "Modern Java Features", + "question": "What are the new features in Java 17?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Java 17 introduced several new features and enhancements to the Java programming language, including:", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java." + ], + "answer": "b", + "explanation": "Java 17 introduced several new features and enhancements to the Java programming language, including: restrict the subclasses of a class. Sealed classes allow you to define a limited set of subclasses that can extend" + }, + { + "id": 228, + "category": "Modern Java Features", + "question": "What are the new features in Java 21?", + "options": [ + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java 21 introduced several new features and enhancements to the Java programming language, including:" + ], + "answer": "d", + "explanation": "Java 21 introduced several new features and enhancements to the Java programming language, including: standard feature to provide a more concise and expressive way to write switch statements. Pattern matching for" + }, + { + "id": 229, + "category": "Modern Java Features", + "question": "What are the new features in Java 23?", + "options": [ + "This section previously contained incorrect and fabricated JEP references (e.g., JEP 425–429 with IBM platform/cloud claims).", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ], + "answer": "a", + "explanation": "This section previously contained incorrect and fabricated JEP references (e.g., JEP 425–429 with IBM platform/cloud claims). Remove misinformation. Update this answer once JDK 23 is officially released by consulting the OpenJDK Release Notes" + }, + { + "id": 230, + "category": "Modern Java Features", + "question": "What is a Hash Table as a data structure and how it is implemented?", + "options": [ + "Esta es una característica exclusiva de otros lenguajes de programación.", + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "A hash table is a data structure that stores data in a key-value pair format. The key is used to access the" + ], + "answer": "d", + "explanation": "A hash table is a data structure that stores data in a key-value pair format. The key is used to access the corresponding value. The hash table is used to store data in a more efficient way than a conventional array or" + } +] \ No newline at end of file diff --git a/generate_java_questions.py b/generate_java_questions.py new file mode 100644 index 0000000..ba2f60b --- /dev/null +++ b/generate_java_questions.py @@ -0,0 +1,317 @@ +#!/usr/bin/env python3 +""" +Programa para convertir preguntas de Java del archivo readme.md +al formato JSON de opción múltiple para react-certification-course +""" + +import json +import re +import random +import os + +def read_java_readme(): + """Lee el archivo readme.md con las preguntas de Java""" + readme_path = os.environ.get('README_PATH', os.path.join(os.getcwd(), 'readme.md')) + try: + with open(readme_path, 'r', encoding='utf-8') as file: + content = file.read() + return content + except FileNotFoundError: + print(f"Error: No se encontró el archivo {readme_path}") + return None + +def extract_questions_from_readme(content): + """Extrae todas las preguntas del contenido del readme""" + questions = [] + + # Patrón para encontrar preguntas con formato: **n . Pregunta** + question_pattern = r'-\s*\*\*(\d+)\s*\.\s*([^*]+?)\*\*' + + # Buscar todas las preguntas + question_matches = re.finditer(question_pattern, content, re.DOTALL) + + current_category = "Java Basics" + + for match in question_matches: + question_num = int(match.group(1)) + question_text = match.group(2).strip() + + # Determinar categoría basada en el número de pregunta y contenido + category = determine_category(question_num, question_text, content) + + # Extraer la respuesta de la pregunta + answer_content = extract_answer_content(content, match.end()) + + if answer_content: + question_data = { + "id": question_num, + "category": category, + "question": question_text, + "answer_content": answer_content + } + questions.append(question_data) + + return questions + +def determine_category(question_num, question_text, content): + """Determina la categoría de la pregunta basada en el número y contexto""" + categories_map = { + (1, 6): "Java Platform", + (7, 15): "Wrapper Classes", + (16, 25): "Strings", + (26, 35): "Object-Oriented Programming", + (36, 45): "Inheritance", + (46, 55): "Collections", + (56, 65): "Exception Handling", + (66, 75): "Multithreading", + (76, 85): "Generics", + (86, 95): "Java 8 Features", + (96, 105): "Spring Framework", + (106, 115): "Database Connectivity", + (116, 125): "Web Services", + (126, 135): "Design Patterns", + (136, 145): "JVM and Memory Management", + (146, 155): "Testing", + (156, 165): "Best Practices", + (166, 175): "Performance Optimization", + (176, 185): "Security", + (186, 195): "Frameworks", + (196, 205): "Advanced Topics", + (206, 215): "Enterprise Development", + (216, 230): "Modern Java Features" + } + + # Buscar la categoría apropiada + for (start, end), category in categories_map.items(): + if start <= question_num <= end: + return category + + # Categoría por defecto o basada en contenido + question_lower = question_text.lower() + if any(word in question_lower for word in ['string', 'immutable', 'stringbuilder']): + return "Strings" + elif any(word in question_lower for word in ['collection', 'list', 'set', 'map']): + return "Collections" + elif any(word in question_lower for word in ['thread', 'synchronized', 'concurrent']): + return "Multithreading" + elif any(word in question_lower for word in ['exception', 'try', 'catch', 'finally']): + return "Exception Handling" + elif any(word in question_lower for word in ['jvm', 'memory', 'garbage']): + return "JVM and Memory Management" + else: + return "Java Basics" + +def extract_answer_content(content, start_pos): + """Extrae el contenido de la respuesta después de una pregunta""" + # Buscar desde la posición actual hasta la siguiente pregunta + next_question_pattern = r'-\s*\*\*\d+\s*\.\s*[^*]+?\*\*' + next_match = re.search(next_question_pattern, content[start_pos:]) + + if next_match: + end_pos = start_pos + next_match.start() + answer_section = content[start_pos:end_pos] + else: + # Si no hay más preguntas, tomar hasta el final + answer_section = content[start_pos:] + + return answer_section.strip() + +def create_multiple_choice_question(question_data): + """Convierte una pregunta en formato de opción múltiple""" + question_text = question_data["question"] + answer_content = question_data["answer_content"] + + # Extraer la respuesta correcta del contenido + correct_answer = extract_correct_answer(answer_content) + + # Generar opciones incorrectas (distractores) + distractors = generate_distractors(question_text, correct_answer) + + # Mezclar opciones + all_options = [correct_answer] + distractors + random.shuffle(all_options) + + # Encontrar la posición de la respuesta correcta + correct_index = all_options.index(correct_answer) + answer_letter = chr(ord('a') + correct_index) + + # Generar explicación + explanation = generate_explanation(answer_content) + + return { + "id": question_data["id"], + "category": question_data["category"], + "question": question_text, + "options": all_options, + "answer": answer_letter, + "explanation": explanation + } + +def extract_correct_answer(answer_content): + """Extrae la respuesta correcta del contenido de la respuesta""" + # Buscar puntos clave en la respuesta + lines = answer_content.split('\n') + + # Tomar las primeras líneas más relevantes + relevant_lines = [] + for line in lines[:10]: # Primeras 10 líneas + line = line.strip() + if line and not line.startswith('-') and not line.startswith('*'): + if len(line) > 20 and len(line) < 200: # Longitud apropiada para opción + relevant_lines.append(line) + + if relevant_lines: + return relevant_lines[0] + else: + # Respuesta genérica si no se puede extraer + return "Esta es la respuesta correcta basada en el contenido de Java." + +def generate_distractors(question_text, correct_answer): + """Genera opciones incorrectas plausibles""" + question_lower = question_text.lower() + + # Distractores generales para diferentes tipos de preguntas + general_distractors = [ + "Esta opción es incorrecta para esta pregunta de Java.", + "Esta no es la respuesta correcta según los estándares de Java.", + "Esta opción no aplica a este concepto de programación Java." + ] + + # Distractores específicos por tema + if any(word in question_lower for word in ['jvm', 'platform', 'bytecode']): + specific_distractors = [ + "Java se compila directamente a código máquina específico de la plataforma.", + "Java requiere recompilación para cada sistema operativo diferente.", + "Java no puede ejecutarse en diferentes sistemas operativos." + ] + elif any(word in question_lower for word in ['string', 'immutable']): + specific_distractors = [ + "Los objetos String en Java son completamente mutables.", + "StringBuffer y StringBuilder son inmutables en Java.", + "Java no tiene soporte para cadenas de texto inmutables." + ] + elif any(word in question_lower for word in ['wrapper', 'boxing']): + specific_distractors = [ + "Java no soporta conversión automática entre primitivos y objetos.", + "Los tipos wrapper consumen menos memoria que los primitivos.", + "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + ] + elif any(word in question_lower for word in ['collection', 'list', 'set']): + specific_distractors = [ + "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", + "Set permite elementos duplicados en Java." + ] + elif any(word in question_lower for word in ['thread', 'synchronized']): + specific_distractors = [ + "Java no soporta programación concurrente nativa.", + "Synchronized solo funciona con métodos estáticos.", + "Los threads en Java no pueden compartir memoria." + ] + else: + specific_distractors = [ + "Esta funcionalidad no existe en Java.", + "Java no soporta esta característica hasta versiones muy recientes.", + "Esta es una característica exclusiva de otros lenguajes de programación." + ] + + # Combinar distractores y seleccionar 3 + all_distractors = specific_distractors + general_distractors + + # Asegurar que no repetimos la respuesta correcta + unique_distractors = [d for d in all_distractors if d != correct_answer] + + # Seleccionar 3 distractores únicos + selected_distractors = [] + for distractor in unique_distractors: + if len(selected_distractors) < 3: + selected_distractors.append(distractor) + + # Si necesitamos más distractores, generar algunos genéricos + while len(selected_distractors) < 3: + generic = f"Opción incorrecta número {len(selected_distractors) + 1} para esta pregunta." + selected_distractors.append(generic) + + return selected_distractors[:3] + +def generate_explanation(answer_content): + """Genera una explicación basada en el contenido de la respuesta""" + # Tomar las primeras líneas del contenido como explicación + lines = answer_content.split('\n') + explanation_parts = [] + + for line in lines[:5]: # Primeras 5 líneas + line = line.strip() + if line and not line.startswith('-') and not line.startswith('*'): + if len(line) > 10: + explanation_parts.append(line) + + if explanation_parts: + explanation = ' '.join(explanation_parts[:2]) # Tomar las dos primeras partes + # Limpiar la explicación + explanation = re.sub(r'\*\*([^*]+)\*\*', r'\1', explanation) # Remover markdown bold + explanation = re.sub(r'```[^`]*```', '', explanation) # Remover bloques de código + explanation = explanation.replace(' ', ' ').strip() + return explanation if len(explanation) < 500 else explanation[:500] + "..." + + return "Esta es la respuesta correcta basada en las mejores prácticas y estándares de Java." + +def main(): + """Función principal""" + print("Iniciando conversión de preguntas de Java...") + + # Leer el archivo readme + content = read_java_readme() + if not content: + return + + print("Archivo leído correctamente. Extrayendo preguntas...") + + # Extraer preguntas + questions_data = extract_questions_from_readme(content) + print(f"Encontradas {len(questions_data)} preguntas") + + # Convertir a formato de opción múltiple + java_questions = [] + for i, question_data in enumerate(questions_data): + print(f"Procesando pregunta {i+1}/{len(questions_data)}: {question_data['question'][:50]}...") + try: + mc_question = create_multiple_choice_question(question_data) + java_questions.append(mc_question) + except Exception as e: + print(f"Error procesando pregunta {question_data['id']}: {e}") + continue + + print(f"Procesadas {len(java_questions)} preguntas exitosamente") + + # Guardar en archivo JSON + script_dir = os.path.dirname(os.path.abspath(__file__)) + output_dir = os.path.join(script_dir, "./data") + output_path = os.path.join(output_dir, "java-questions.json") + + # Ensure output directory exists + os.makedirs(output_dir, exist_ok=True) + print(f"Guardando preguntas en {output_path}...") + + try: + with open(output_path, 'w', encoding='utf-8') as f: + json.dump(java_questions, f, ensure_ascii=False, indent=2) + + print(f"Archivo guardado exitosamente en: {output_path}") + print(f"Total de preguntas generadas: {len(java_questions)}") + + # Mostrar algunas estadísticas + categories = {} + for q in java_questions: + cat = q['category'] + categories[cat] = categories.get(cat, 0) + 1 + + print("\nDistribución por categorías:") + for cat, count in sorted(categories.items()): + print(f" {cat}: {count} preguntas") + + except Exception as e: + print(f"Error guardando el archivo: {e}") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/java_quiz_console.py b/java_quiz_console.py new file mode 100644 index 0000000..f074c1f --- /dev/null +++ b/java_quiz_console.py @@ -0,0 +1,119 @@ +import json +import random +import os +import matplotlib.pyplot as plt + +# Optional: YAML config support +try: + import yaml # type: ignore + YAML_AVAILABLE = True +except Exception: + YAML_AVAILABLE = False + +BASE_DIR = os.path.dirname(__file__) +QUESTIONS_FILE = os.path.join(BASE_DIR, 'data/java-questions.json') +CONFIG_FILE = os.path.join(BASE_DIR, 'config.yml') +BASE_DIR = os.path.dirname(__file__) +QUESTIONS_FILE_NAME = os.environ.get('QUESTIONS_FILE_NAME') +QUESTIONS_FILE = os.path.join(BASE_DIR, QUESTIONS_FILE_NAME or 'data/java-questions.json') +CONFIG_FILE = os.path.join(BASE_DIR, 'config.yml') +TEST_TITLE = 'Java Quiz (Windows)' + +PASS_THRESHOLD = 0.8 +MAX_QUESTIONS = 60 + + +def load_config(): + global PASS_THRESHOLD, MAX_QUESTIONS + if not os.path.exists(CONFIG_FILE): + return + try: + if YAML_AVAILABLE: + with open(CONFIG_FILE, 'r', encoding='utf-8') as f: + data = yaml.safe_load(f) or {} + else: + data = {} + with open(CONFIG_FILE, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + if not line or line.startswith('#') or ':' not in line: + continue + key, val = line.split(':', 1) + key = key.strip() + val = val.strip().strip('"\'') + try: + if '.' in val: + cast_val = float(val) + else: + cast_val = int(val) + data[key] = cast_val + except Exception: + data[key] = val + if isinstance(data, dict): + if 'pass_threshold' in data and data['pass_threshold'] is not None: + PASS_THRESHOLD = float(data['pass_threshold']) + if 'max_questions' in data and data['max_questions'] is not None: + MAX_QUESTIONS = int(data['max_questions']) + except Exception: + pass + +def load_questions(): + """Load questions from JSON and return a random subset up to the configured maximum. + + - If the JSON contains more than MAX_QUESTIONS, pick MAX_QUESTIONS unique questions at random. + - If it contains MAX_QUESTIONS or fewer, return them all. + """ + with open(QUESTIONS_FILE, 'r', encoding='utf-8') as f: + questions = json.load(f) + if len(questions) > MAX_QUESTIONS: + # Select MAX_QUESTIONS unique questions randomly + questions = random.sample(questions, k=MAX_QUESTIONS) + return questions + +def ask_question(q): + print(f"\nPregunta {q['id']}: {q['question']}") + for idx, opt in enumerate(q['options']): + print(f" {chr(97+idx)}. {opt}") + user_ans = input("Tu respuesta (a, b, c, d): ").strip().lower() + correct = user_ans == q['answer'] + if correct: + print("✅ ¡Correcto!") + else: + print(f"❌ Incorrecto. La respuesta correcta era '{q['answer']}'.") + print(f"Explicación: {q['explanation']}\n") + return correct + +def show_results(correct_count, total): + incorrect = total - correct_count + labels = ['Correctas', 'Incorrectas'] + values = [correct_count, incorrect] + colors = ['#4caf50', '#f44336'] + plt.bar(labels, values, color=colors) + plt.title('Resultados del Test') + plt.ylabel('Cantidad de respuestas') + plt.ylim(0, total) + plt.text(0, correct_count + 0.1, str(correct_count), ha='center') + plt.text(1, incorrect + 0.1, str(incorrect), ha='center') + plt.show() + porcentaje = correct_count / total + print(f"\nRespuestas correctas: {correct_count}/{total} ({porcentaje*100:.1f}%)") + if porcentaje >= PASS_THRESHOLD: + print("\n🎉 ¡Aprobaste el test de java!") + else: + print("\n❌ No aprobaste. ¡Sigue practicando!") + +def main(): + # Load configuration (if available) before proceeding + load_config() + + questions = load_questions() + random.shuffle(questions) + correct = 0 + for q in questions: + if ask_question(q): + correct += 1 + show_results(correct, len(questions)) + +if __name__ == '__main__': + main() + diff --git a/java_quiz_win.py b/java_quiz_win.py new file mode 100644 index 0000000..4239e37 --- /dev/null +++ b/java_quiz_win.py @@ -0,0 +1,308 @@ +import json +import os +import random +import tkinter as tk +from tkinter import messagebox +from tkinter import ttk + +from java_quiz_console import CONFIG_FILE, QUESTIONS_FILE, MAX_QUESTIONS, PASS_THRESHOLD, TEST_TITLE + + +# Optional: matplotlib for bar chart at the end (same spirit as console version) +try: + import matplotlib.pyplot as plt + MATPLOTLIB_AVAILABLE = True +except Exception: + MATPLOTLIB_AVAILABLE = False + +# Optional: YAML config support +try: + import yaml # type: ignore + YAML_AVAILABLE = True +except Exception: + YAML_AVAILABLE = False + + + +DEFAULT_FONTS = { + 'family': 'Segoe UI', + 'title': 16, + 'question': 12, + 'option': 12, + 'explanation': 10, + 'feedback': 10, +} +DEFAULT_FONT_SCALE = 2.0 # double by default +DEFAULT_WINDOW = { + 'title': 'Java Quiz (Windows)', + 'width': 900, + 'height': 600, + 'min_width': 720, + 'min_height': 520, +} + + +def load_questions(): + """Load questions from JSON and return a random subset of up to MAX_QUESTIONS. + + - If the JSON contains more than MAX_QUESTIONS, pick MAX_QUESTIONS unique questions at random. + - If it contains MAX_QUESTIONS or fewer, return them all. + """ + with open(QUESTIONS_FILE, 'r', encoding='utf-8') as f: + questions = json.load(f) + if len(questions) > MAX_QUESTIONS: + questions = random.sample(questions, k=MAX_QUESTIONS) + return questions + + +def load_config(): + """Load configuration from CONFIG_FILE if present. + Returns a dict with keys: fonts, font_scale, window, max_questions, pass_threshold. + """ + cfg = { + 'fonts': DEFAULT_FONTS.copy(), + 'font_scale': DEFAULT_FONT_SCALE, + 'window': DEFAULT_WINDOW.copy(), + 'max_questions': MAX_QUESTIONS, + 'pass_threshold': PASS_THRESHOLD, + } + if os.path.exists(CONFIG_FILE): + try: + if YAML_AVAILABLE: + with open(CONFIG_FILE, 'r', encoding='utf-8') as f: + data = yaml.safe_load(f) or {} + else: + # Very simple fallback parser: supports only top-level key: value numbers/strings + data = {} + with open(CONFIG_FILE, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + if not line or line.startswith('#') or ':' not in line: + continue + key, val = line.split(':', 1) + key = key.strip() + val = val.strip().strip('"\'') + # try to cast number + try: + if '.' in val: + cast_val = float(val) + else: + cast_val = int(val) + data[key] = cast_val + except Exception: + data[key] = val + # Merge + if isinstance(data, dict): + if 'fonts' in data and isinstance(data['fonts'], dict): + cfg['fonts'].update({k: v for k, v in data['fonts'].items() if v is not None}) + if 'window' in data and isinstance(data['window'], dict): + cfg['window'].update({k: v for k, v in data['window'].items() if v is not None}) + if 'font_scale' in data and data['font_scale'] is not None: + cfg['font_scale'] = float(data['font_scale']) + if 'max_questions' in data and data['max_questions'] is not None: + cfg['max_questions'] = int(data['max_questions']) + if 'pass_threshold' in data and data['pass_threshold'] is not None: + cfg['pass_threshold'] = float(data['pass_threshold']) + except Exception: + # Ignore config errors; fall back to defaults + pass + return cfg + + +def make_font_tuple(family, size, weight=None): + return (family, size, weight) if weight else (family, size) + + +class JavaQuizApp(tk.Tk): + def __init__(self): + super().__init__() + + # Load config and compute runtime settings + cfg = load_config() + # Override globals for thresholds and max questions + global PASS_THRESHOLD, MAX_QUESTIONS + PASS_THRESHOLD = cfg.get('pass_threshold', PASS_THRESHOLD) + MAX_QUESTIONS = cfg.get('max_questions', MAX_QUESTIONS) + + window = cfg.get('window', DEFAULT_WINDOW) + self.title(window.get('title', DEFAULT_WINDOW['title'])) + TEST_TITLE = window.get('title', DEFAULT_WINDOW['title']) + self.geometry(f"{window.get('width', DEFAULT_WINDOW['width'])}x{window.get('height', DEFAULT_WINDOW['height'])}") + self.minsize(window.get('min_width', DEFAULT_WINDOW['min_width']), window.get('min_height', DEFAULT_WINDOW['min_height'])) + + # Fonts + fonts = cfg.get('fonts', DEFAULT_FONTS) + scale = float(cfg.get('font_scale', DEFAULT_FONT_SCALE)) + family = fonts.get('family', 'Segoe UI') + self.font_title = make_font_tuple(family, int(round(fonts.get('title', 16) * scale)), 'bold') + self.font_question = make_font_tuple(family, int(round(fonts.get('question', 12) * scale))) + self.font_option = make_font_tuple(family, int(round(fonts.get('option', 12) * scale))) + self.font_expl_label = make_font_tuple(family, int(round(fonts.get('explanation', 10) * scale)), 'bold') + self.font_expl_text = make_font_tuple(family, int(round(fonts.get('explanation', 10) * scale))) + self.font_feedback = make_font_tuple(family, int(round(fonts.get('feedback', 10) * scale))) + + # Data + self.questions = load_questions() + random.shuffle(self.questions) + self.total = len(self.questions) + self.index = 0 + self.correct_count = 0 + + # UI elements + self.create_widgets() + self.load_current_question() + + def create_widgets(self): + # Top frame: title and progress + top_frame = ttk.Frame(self, padding=10) + top_frame.pack(side=tk.TOP, fill=tk.X) + + self.title_label = ttk.Label(top_frame, text=TEST_TITLE, font=self.font_title) + self.title_label.pack(side=tk.LEFT) + + self.progress_label = ttk.Label(top_frame, text='') + self.progress_label.pack(side=tk.RIGHT) + + # Question frame + q_frame = ttk.Frame(self, padding=(10, 0, 10, 10)) + q_frame.pack(fill=tk.BOTH, expand=True) + + # Style for option radio buttons + self.style = ttk.Style(self) + self.style.configure('Option.TRadiobutton', font=self.font_option) + + self.question_text = tk.Text(q_frame, wrap='word', height=5, font=self.font_question) + self.question_text.configure(state='disabled', background=self.cget('background'), relief='flat') + self.question_text.pack(fill=tk.X, padx=4, pady=(4, 8)) + + # Options + self.selected_var = tk.StringVar(value='') + self.option_buttons = [] + for i in range(4): + rb = ttk.Radiobutton(q_frame, text='', value=chr(97 + i), variable=self.selected_var) + rb.configure(style=f'Option.TRadiobutton') + rb.pack(anchor='w', pady=4) + self.option_buttons.append(rb) + + # Explanation area + self.expl_label = ttk.Label(q_frame, text='Explicación:', font=self.font_expl_label) + self.expl_text = tk.Text(q_frame, wrap='word', height=5, font=self.font_expl_text) + self.expl_text.configure(state='disabled', background=self.cget('background'), relief='sunken') + self.expl_label.pack(anchor='w', pady=(12, 0)) + self.expl_text.pack(fill=tk.BOTH, expand=True, padx=4, pady=(0, 8)) + + # Bottom buttons + bottom = ttk.Frame(self, padding=10) + bottom.pack(side=tk.BOTTOM, fill=tk.X) + + self.feedback_label = ttk.Label(bottom, text='', font=self.font_feedback) + self.feedback_label.pack(side=tk.LEFT) + + self.check_button = ttk.Button(bottom, text='Responder', command=self.on_submit) + self.check_button.pack(side=tk.RIGHT) + + self.next_button = ttk.Button(bottom, text='Siguiente', command=self.on_next, state='disabled') + self.next_button.pack(side=tk.RIGHT, padx=(0, 8)) + + def load_current_question(self): + q = self.questions[self.index] + # Update progress + self.progress_label.config(text=f"Pregunta {self.index + 1} de {self.total}") + + # Show question + self.question_text.configure(state='normal') + self.question_text.delete('1.0', tk.END) + self.question_text.insert(tk.END, f"{q['id']}. {q['question']}") + self.question_text.configure(state='disabled') + + # Show options + self.selected_var.set('') + for i, rb in enumerate(self.option_buttons): + try: + text = q['options'][i] + except IndexError: + text = '' + rb.config(text=f"{chr(97 + i)}. {text}") + + # Reset explanation and feedback + self.expl_text.configure(state='normal') + self.expl_text.delete('1.0', tk.END) + self.expl_text.configure(state='disabled') + self.feedback_label.config(text='') + + # Buttons state + self.check_button.config(state='normal') + self.next_button.config(state='disabled') + + def on_submit(self): + q = self.questions[self.index] + user_ans = self.selected_var.get() + if user_ans not in ('a', 'b', 'c', 'd'): + messagebox.showwarning('Respuesta requerida', 'Selecciona una opción (a, b, c o d).') + return + + correct = (user_ans == q['answer']) + if correct: + self.correct_count += 1 + self.feedback_label.config(text='✅ ¡Correcto!') + else: + self.feedback_label.config(text=f"❌ Incorrecto. La respuesta correcta era '{q['answer']}'.") + + # Show explanation + self.expl_text.configure(state='normal') + self.expl_text.delete('1.0', tk.END) + self.expl_text.insert(tk.END, q.get('explanation', '')) + self.expl_text.configure(state='disabled') + + # Disable submit, enable next + self.check_button.config(state='disabled') + self.next_button.config(state='normal') + + def on_next(self): + if self.index + 1 < self.total: + self.index += 1 + self.load_current_question() + else: + self.finish_quiz() + + def finish_quiz(self): + incorrect = self.total - self.correct_count + porcentaje = self.correct_count / self.total if self.total else 0.0 + + # Optional bar chart (mirrors the console version behavior) + if MATPLOTLIB_AVAILABLE: + try: + labels = ['Correctas', 'Incorrectas'] + values = [self.correct_count, incorrect] + colors = ['#4caf50', '#f44336'] + plt.figure(figsize=(5, 3)) + plt.bar(labels, values, color=colors) + plt.title('Resultados del Test') + plt.ylabel('Cantidad de respuestas') + plt.ylim(0, self.total) + plt.text(0, self.correct_count + 0.05, str(self.correct_count), ha='center') + plt.text(1, incorrect + 0.05, str(incorrect), ha='center') + plt.tight_layout() + plt.show() + except Exception: + # If plotting fails, we still show a dialog with results + pass + + aprobado = porcentaje >= PASS_THRESHOLD + msg = ( + f"Respuestas correctas: {self.correct_count}/{self.total} ({porcentaje*100:.1f}%)\n\n" + + ("🎉 ¡Aprobaste el test de React!" if aprobado else "❌ No aprobaste. ¡Sigue practicando!") + ) + messagebox.showinfo('Resultado', msg) + if self.winfo_exists(): + self.destroy() + + +if __name__ == '__main__': + app = JavaQuizApp() + # Aviso sobre límite de preguntas (hasta 60) + if len(app.questions) == MAX_QUESTIONS: + messagebox.showinfo('Información', f'Este test utilizará {MAX_QUESTIONS} preguntas aleatorias del total disponible.') + else: + messagebox.showinfo('Información', f'Este test utilizará {len(app.questions)} preguntas (no hay más de {MAX_QUESTIONS} disponibles).') + app.mainloop() diff --git a/pom.xml b/pom.xml index aba9b65..48b59f5 100644 --- a/pom.xml +++ b/pom.xml @@ -21,5 +21,15 @@ - + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + \ No newline at end of file diff --git a/readme.md b/readme.md index 90891d1..cb51828 100644 --- a/readme.md +++ b/readme.md @@ -5,36 +5,24 @@ This guide has the purpose of providing a wide set of Java interview questions a ## 200+ Interview Questions -* [Java Interview Questions and Answers](#java-interview-questions-and-answers) - * [200+ Interview Questions](#200-interview-questions) - * [Java Platform](#java-platform) - * [Wrapper Classes](#wrapper-classes) - * [Strings](#strings) - * [Object oriented programming basics](#object-oriented-programming-basics) - * [Advanced object oriented concepts](#advanced-object-oriented-concepts) - * [Modifiers](#modifiers) - * [conditions & loops](#conditions--loops) - * [Exception handling](#exception-handling) - * [Miscellaneous topics](#miscellaneous-topics) - * [Collections](#collections) - * [Advanced collections](#advanced-collections) - * [Generics](#generics) - * [Multi threading](#multi-threading) - * [Functional Programming - Lambda expressions and Streams](#functional-programming---lambda-expressions-and-streams) - * [New Features](#new-features) - * [1.- Counter Component (useState)](#1--counter-component-usestate) - * [2.- Toggle Button](#2--toggle-button) - * [3.- Fetch API Data](#3--fetch-api-data) - * [4.- Form Input Control](#4--form-input-control) - * [5.- Conditional Rendering](#5--conditional-rendering) - * [6.- Todo List](#6--todo-list) - * [7.- Theme Switcher (Dark/Light Mode)](#7--theme-switcher-darklight-mode) - * [8.- Stopwatch (Timer)](#8--stopwatch-timer) - * [9.- Search Filter](#9--search-filter) - * [10.- Custom Hook (useLocalStorage)](#10--custom-hook-uselocalstorage) - * [What you can do next?](#what-you-can-do-next) - * [Troubleshooting](#troubleshooting) - * [Youtube Playlists - 500+ Videos](#youtube-playlists---500-videos) +- [Java Interview Questions and Answers](#java-interview-questions-and-answers) + - [200+ Interview Questions](#200-interview-questions) + - [Java Platform](#java-platform) + - [Wrapper Classes](#wrapper-classes) + - [Strings](#strings) + - [Object oriented programming basics](#object-oriented-programming-basics) + - [Advanced object oriented concepts](#advanced-object-oriented-concepts) + - [Exception handling](#exception-handling) + - [Miscellaneous topics](#miscellaneous-topics) + - [Collections](#collections) + - [Advanced collections](#advanced-collections) + - [Generics](#generics) + - [Multi threading](#multi-threading) + - [Functional Programming - Lambda expressions and Streams](#functional-programming---lambda-expressions-and-streams) + - [New Features](#new-features) + - [What you can do next?](#what-you-can-do-next) + - [Troubleshooting](#troubleshooting) + - [Youtube Playlists - 500+ Videos](#youtube-playlists---500-videos) ### Java Platform @@ -5076,457 +5064,6 @@ public class Dog implements Animal { The hash function is used to calculate the index of the bucket where the data is stored. The hash function is responsible for mapping the key to the corresponding bucket index. -**Addendum: 10 coding challenge exercises**. - -Each exercise includes: - -* **Task description** -* **Starting code sample (incomplete or incorrect)** -* **Final expected solution** - ---- - -### 1.- Counter Component (useState) - -**Task:** Create a simple counter with increment and decrement buttons. - -**Starting Code:** - -```jsx -import React from "react"; - -function Counter() { - let count = 0; - - return ( -
    -

    Count: {count}

    - - -
    - ); -} - -export default Counter; -``` - -**Final Expected Code:** - -```jsx -import React, { useState } from "react"; - -function Counter() { - const [count, setCount] = useState(0); - - return ( -
    -

    Count: {count}

    - - -
    - ); -} - -export default Counter; -``` - ---- - -### 2.- Toggle Button - -**Task:** Implement a button that toggles between “ON” and “OFF”. - -**Starting Code:** - -```jsx -function Toggle() { - let state = "OFF"; - - return ( - - ); -} -``` - -**Final Expected Code:** - -```jsx -import React, { useState } from "react"; - -function Toggle() { - const [isOn, setIsOn] = useState(false); - - return ( - - ); -} - -export default Toggle; -``` - ---- - -### 3.- Fetch API Data - -**Task:** Fetch and display posts from JSONPlaceholder API. - -**Starting Code:** - -```jsx -function Posts() { - let posts = []; - - return ( -
    -

    Posts

    - {posts.map(p =>

    {p.title}

    )} -
    - ); -} -``` - -**Final Expected Code:** - -```jsx -import React, { useEffect, useState } from "react"; - -function Posts() { - const [posts, setPosts] = useState([]); - - useEffect(() => { - fetch("https://jsonplaceholder.typicode.com/posts") - .then(res => res.json()) - .then(data => setPosts(data.slice(0, 5))); - }, []); - - return ( -
    -

    Posts

    - {posts.map(p =>

    {p.title}

    )} -
    - ); -} - -export default Posts; -``` - ---- - -### 4.- Form Input Control - -**Task:** Capture and display input text in real-time. - -**Starting Code:** - -```jsx -function InputForm() { - let value = ""; - - return ( -
    - -

    You typed: {value}

    -
    - ); -} -``` - -**Final Expected Code:** - -```jsx -import React, { useState } from "react"; - -function InputForm() { - const [value, setValue] = useState(""); - - return ( -
    - setValue(e.target.value)} /> -

    You typed: {value}

    -
    - ); -} - -export default InputForm; -``` - ---- - -### 5.- Conditional Rendering - -**Task:** Show “Welcome, User!” if logged in, otherwise show “Please log in.” - -**Starting Code:** - -```jsx -function Greeting() { - let loggedIn = false; - - return ( -
    - Welcome! -
    - ); -} -``` - -**Final Expected Code:** - -```jsx -import React, { useState } from "react"; - -function Greeting() { - const [loggedIn, setLoggedIn] = useState(false); - - return ( -
    - {loggedIn ? "Welcome, User!" : "Please log in."} -
    - -
    - ); -} - -export default Greeting; -``` - ---- - -### 6.- Todo List - -**Task:** Build a simple todo list where users can add tasks. - -**Starting Code:** - -```jsx -function TodoApp() { - let todos = []; - - return ( -
    - - - {todos.map(t =>
  • {t}
  • )} -
    - ); -} -``` - -**Final Expected Code:** - -```jsx -import React, { useState } from "react"; - -function TodoApp() { - const [todos, setTodos] = useState([]); - const [input, setInput] = useState(""); - - const addTodo = () => { - if (input.trim() !== "") { - setTodos([...todos, input]); - setInput(""); - } - }; - - return ( -
    - setInput(e.target.value)} /> - -
      - {todos.map((t, i) =>
    • {t}
    • )} -
    -
    - ); -} - -export default TodoApp; -``` - ---- - -### 7.- Theme Switcher (Dark/Light Mode) - -**Task:** Toggle between dark and light theme. - -**Starting Code:** - -```jsx -function Theme() { - let theme = "light"; - - return ( -
    - -
    - ); -} -``` - -**Final Expected Code:** - -```jsx -import React, { useState } from "react"; - -function Theme() { - const [theme, setTheme] = useState("light"); - - return ( -
    -

    Current Theme: {theme}

    - -
    - ); -} - -export default Theme; -``` - ---- - -### 8.- Stopwatch (Timer) - -**Task:** Build a stopwatch with start and stop buttons. - -**Starting Code:** - -```jsx -function Stopwatch() { - let time = 0; - - return ( -
    -

    {time}

    - - -
    - ); -} -``` - -**Final Expected Code:** - -```jsx -import React, { useState, useEffect, useRef } from "react"; - -function Stopwatch() { - const [time, setTime] = useState(0); - const [running, setRunning] = useState(false); - const intervalRef = useRef(null); - - useEffect(() => { - if (running) { - intervalRef.current = setInterval(() => { - setTime(t => t + 1); - }, 1000); - } else { - clearInterval(intervalRef.current); - } - return () => clearInterval(intervalRef.current); - }, [running]); - - return ( -
    -

    {time} seconds

    - - -
    - ); -} - -export default Stopwatch; -``` - ---- - -### 9.- Search Filter - -**Task:** Filter a list of names as the user types. - -**Starting Code:** - -```jsx -function SearchList() { - const names = ["Alice", "Bob", "Charlie"]; - - return ( -
    - -
      - {names.map(n =>
    • {n}
    • )} -
    -
    - ); -} -``` - -**Final Expected Code:** - -```jsx -import React, { useState } from "react"; - -function SearchList() { - const names = ["Alice", "Bob", "Charlie", "David", "Eve"]; - const [query, setQuery] = useState(""); - - const filtered = names.filter(n => - n.toLowerCase().includes(query.toLowerCase()) - ); - - return ( -
    - setQuery(e.target.value)} placeholder="Search..." /> -
      - {filtered.map((n, i) =>
    • {n}
    • )} -
    -
    - ); -} - -export default SearchList; -``` - ---- - -### 10.- Custom Hook (useLocalStorage) - -**Task:** Create a custom hook to persist state in localStorage. - -**Starting Code:** - -```jsx -function useLocalStorage(key, value) { - return value; -} -``` - -**Final Expected Code:** - -```jsx -import { useState, useEffect } from "react"; - -function useLocalStorage(key, initialValue) { - const [stored, setStored] = useState(() => { - const item = localStorage.getItem(key); - return item ? JSON.parse(item) : initialValue; - }); - - useEffect(() => { - localStorage.setItem(key, JSON.stringify(stored)); - }, [key, stored]); - - return [stored, setStored]; -} - -export default useLocalStorage; -``` --- ### What you can do next? From 85f63e27e1e2b066a4eca20f0ba84faf497cf94a Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Wed, 1 Apr 2026 21:32:28 -0600 Subject: [PATCH 13/14] Changes on the questionarie and the program exam test. --- __pycache__/java_quiz_win.cpython-312.pyc | Bin 0 -> 18844 bytes _inspect.py | 16 + data/java-questions.json | 1498 ++++++++++----------- fix_truncated_options.py | 66 + java_quiz_win.py | 37 +- 5 files changed, 862 insertions(+), 755 deletions(-) create mode 100644 __pycache__/java_quiz_win.cpython-312.pyc create mode 100644 _inspect.py create mode 100644 fix_truncated_options.py diff --git a/__pycache__/java_quiz_win.cpython-312.pyc b/__pycache__/java_quiz_win.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..af4a9ecdb26c15729bec2c629d3e9d742172e930 GIT binary patch literal 18844 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
    NpwWLGSj1w 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 Hg8%;kENmX@ literal 0 HcmV?d00001 diff --git a/_inspect.py b/_inspect.py new file mode 100644 index 0000000..50fc3b4 --- /dev/null +++ b/_inspect.py @@ -0,0 +1,16 @@ +import json + +with open("data/java-questions.json", "r", encoding="utf-8") as f: + qs = json.load(f) + +ids_to_check = [5, 16, 20, 30, 46, 51, 207] +am = {"a": 0, "b": 1, "c": 2, "d": 3} + +for q in qs: + if q["id"] in ids_to_check: + idx = am[q["answer"]] + print(f"=== Q{q['id']} (ans={q['answer']}) ===") + print(f" Q: {q['question']}") + print(f" Opt[{idx}]: {q['options'][idx]}") + print(f" Expl: {q['explanation']}") + print() diff --git a/data/java-questions.json b/data/java-questions.json index 7e2286e..9d75bca 100644 --- a/data/java-questions.json +++ b/data/java-questions.json @@ -4,10 +4,10 @@ "category": "Java Platform", "question": "Why is Java so popular?", "options": [ - "1. **Platform Independence**: Java programs can run on any device that has the Java Virtual Machine (JVM),", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "1. Platform Independence: Java programs can run on any device that has the Java Virtual Machine (JVM), making it highly portable.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "1. Platform Independence: Java programs can run on any device that has the Java Virtual Machine (JVM), making it highly portable." @@ -17,10 +17,10 @@ "category": "Java Platform", "question": "What is platform independence?", "options": [ - "Java no puede ejecutarse en diferentes sistemas operativos.", + "Java cannot run on different operating systems.", "Java requires recompilation for each different operating system.", - "Java se compila directamente a código máquina específico de la plataforma.", - "Platform independence refers to the ability of a programming language or software to run on various types of computer" + "Java is compiled directly to platform-specific machine code.", + "Platform independence refers to the ability of a programming language or software to run on various types of computer systems without modification." ], "answer": "d", "explanation": "Platform independence refers to the ability of a programming language or software to run on various types of computer systems without modification. In the context of Java, platform independence is achieved through the use of the Java" @@ -30,10 +30,10 @@ "category": "Java Platform", "question": "What is bytecode?", "options": [ - "Java se compila directamente a código máquina específico de la plataforma.", - "Java requiere recompilación para cada sistema operativo diferente.", - "Bytecode is an intermediate representation of a Java program. When a Java program is compiled, it is converted into", - "Java no puede ejecutarse en diferentes sistemas operativos." + "Java is compiled directly to platform-specific machine code.", + "Java requires recompilation for each different operating system.", + "Bytecode is an intermediate representation of a Java program. When a Java program is compiled, it is converted into bytecode, which is a set of instructions that can be executed by the Java Virtual Machine (JVM).", + "Java cannot run on different operating systems." ], "answer": "c", "explanation": "Bytecode is an intermediate representation of a Java program. When a Java program is compiled, it is converted into bytecode, which is a set of instructions that can be executed by the Java Virtual Machine (JVM). Bytecode is" @@ -43,9 +43,9 @@ "category": "Java Platform", "question": "Compare JDK vs JVM vs JRE", "options": [ - "an interpreter/loader (Java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), and", - "Java no puede ejecutarse en diferentes sistemas operativos.", - "Java requiere recompilación para cada sistema operativo diferente.", + "an interpreter/loader (Java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), and other tools needed for Java development.", + "Java cannot run on different operating systems.", + "Java requires recompilation for each different operating system.", "Java is compiled directly to platform-specific machine code." ], "answer": "a", @@ -56,13 +56,13 @@ "category": "Java Platform", "question": "What are the important differences between C++ and Java?", "options": [ - "needs to be compiled for each platform.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "C++ need to be compiled for each platform, Java is platform independent.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", - "explanation": "collection. needs to be compiled for each platform." + "explanation": "C++ needs to be compiled for each platform, while Java is platform-independent and compiled to bytecode that runs on any JVM." }, { "id": 7, @@ -70,7 +70,7 @@ "question": "What are Wrapper classes?", "options": [ "Java does not support automatic conversion between primitives and objects.", - "Wrapper classes in Java are classes that encapsulate a primitive data type into an object. They provide a way to use", + "Wrapper classes in Java are classes that encapsulate a primitive data type into an object. They provide a way to use primitive data types (like `int`, `char`, etc.) as objects.", "Wrapper types consume less memory than primitives.", "Autoboxing only works with numeric types, not with boolean or char." ], @@ -82,10 +82,10 @@ "category": "Wrapper Classes", "question": "Why do we need Wrapper classes in Java?", "options": [ - "Los tipos wrapper consumen menos memoria que los primitivos.", - "Java no soporta conversión automática entre primitivos y objetos.", + "Wrapper types consume less memory than primitives.", + "Java does not support automatic conversion between primitives and objects.", "Wrapper classes in Java are needed for the following reasons:", - "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + "Autoboxing only works with numeric types, not with boolean or char." ], "answer": "c", "explanation": "Wrapper classes in Java are needed for the following reasons: enabling them to be used in object-oriented programming contexts." @@ -95,10 +95,10 @@ "category": "Wrapper Classes", "question": "What are the different ways of creating Wrapper class instances?", "options": [ - "Java no soporta conversión automática entre primitivos y objetos.", - "Los tipos wrapper consumen menos memoria que los primitivos.", + "Java does not support automatic conversion between primitives and objects.", + "Wrapper types consume less memory than primitives.", "There are two main ways to create instances of Wrapper classes in Java:", - "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + "Autoboxing only works with numeric types, not with boolean or char." ], "answer": "c", "explanation": "There are two main ways to create instances of Wrapper classes in Java: Each wrapper class has a constructor that takes a primitive type or a String as an argument." @@ -106,12 +106,12 @@ { "id": 10, "category": "Wrapper Classes", - "question": "What are differences in the two ways of creating Wrapper classes?", + "question": "What are the differences in the two ways of creating Wrapper classes?", "options": [ - "The two ways of creating Wrapper class instances in Java are using constructors and using static factory methods. Here", - "Los tipos wrapper consumen menos memoria que los primitivos.", - "Java no soporta conversión automática entre primitivos y objetos.", - "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + "The two ways of creating Wrapper class instances in Java are using constructors and using static factory methods.", + "Wrapper types consume less memory than primitives.", + "Java does not support automatic conversion between primitives and objects.", + "Autoboxing only works with numeric types, not with boolean or char." ], "answer": "a", "explanation": "The two ways of creating Wrapper class instances in Java are using constructors and using static factory methods. Here are the differences:" @@ -119,12 +119,12 @@ { "id": 11, "category": "Wrapper Classes", - "question": "What is auto boxing?", + "question": "What is autoboxing?", "options": [ - "Java no soporta conversión automática entre primitivos y objetos.", - "Autoboxing in Java is the automatic conversion that the Java compiler makes between the primitive types and their", - "Los tipos wrapper consumen menos memoria que los primitivos.", - "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + "Java does not support automatic conversion between primitives and objects.", + "Autoboxing in Java is the automatic conversion that the Java compiler makes between the primitive types and their corresponding object wrapper classes.", + "Wrapper types consume less memory than primitives.", + "Autoboxing only works with numeric types, not with boolean or char." ], "answer": "b", "explanation": "Autoboxing in Java is the automatic conversion that the Java compiler makes between the primitive types and their corresponding object wrapper classes. For example, converting an `int` to an `Integer`, a `double` to a `Double`, and" @@ -132,12 +132,12 @@ { "id": 12, "category": "Wrapper Classes", - "question": "What are the advantages of auto boxing?", + "question": "What are the advantages of autoboxing?", "options": [ "Autoboxing in Java provides several advantages:", - "Java no soporta conversión automática entre primitivos y objetos.", - "Los tipos wrapper consumen menos memoria que los primitivos.", - "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + "Java does not support automatic conversion between primitives and objects.", + "Wrapper types consume less memory than primitives.", + "Autoboxing only works with numeric types, not with boolean or char." ], "answer": "a", "explanation": "Autoboxing in Java provides several advantages: such as collections." @@ -148,22 +148,22 @@ "question": "What is casting?", "options": [ "Casting in Java is the process of converting a value of one data type to another. There are two types of casting:", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", - "explanation": "Casting in Java is the process of converting a value of one data type to another. There are two types of casting: conversion. For example, converting an `int` to a `double`." + "explanation": "Casting in Java is the process of converting a value of one data type to another. There are two types of casting: implicit casting (automatic) and explicit casting (manual)." }, { "id": 14, "category": "Wrapper Classes", "question": "What is implicit casting?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Implicit casting in Java is the automatic conversion of a smaller data type to a larger data type. Java performs", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "Implicit casting in Java is the automatic conversion of a smaller data type to a larger data type. Java performs implicit casting when the target data type can accommodate the source data type without loss of precision.", + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "Implicit casting in Java is the automatic conversion of a smaller data type to a larger data type. Java performs implicit casting when the target data type can accommodate the source data type without loss of precision. For" @@ -173,10 +173,10 @@ "category": "Wrapper Classes", "question": "What is explicit casting?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Explicit casting in Java is the manual conversion of a larger data type to a smaller data type, or when converting", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "Explicit casting in Java is the manual conversion of a larger data type to a smaller data type, or when converting between incompatible types.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "Explicit casting in Java is the manual conversion of a larger data type to a smaller data type, or when converting between incompatible types. Java requires explicit casting when the target data type may lose precision or range" @@ -184,25 +184,25 @@ { "id": 16, "category": "Strings", - "question": "Are all String", + "question": "Are all String objects immutable?", "options": [ - "No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String`", - "StringBuffer y StringBuilder son inmutables en Java.", - "Java no tiene soporte para cadenas de texto inmutables.", - "Los objetos String en Java son completamente mutables." + "String’s immutable?\\ No, not all `String` objects are immutable.", + "StringBuffer and StringBuilder are immutable in Java.", + "Java does not have support for immutable text strings.", + "String objects in Java are completely mutable." ], "answer": "a", - "explanation": "’s immutable?\\ No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String`" + "explanation": "String’s immutable?\\ No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String` object is created, its value cannot be changed. However, there are other classes like `StringBuilder` and `StringBuffer` that provide mutable alternatives to `String`." }, { "id": 17, "category": "Strings", "question": "Where are String values stored in memory?", "options": [ - "Los objetos String en Java son completamente mutables.", - "Java no tiene soporte para cadenas de texto inmutables.", - "In Java, `String` values are stored in a special memory area called the **String Pool**. The String Pool is part of", - "StringBuffer y StringBuilder son inmutables en Java." + "String objects in Java are completely mutable.", + "Java does not have support for immutable text strings.", + "In Java, `String` values are stored in a special memory area called the String Pool. The String Pool is part of the Java heap memory and is used to store unique `String` literals.", + "StringBuffer and StringBuilder are immutable in Java." ], "answer": "c", "explanation": "In Java, `String` values are stored in a special memory area called the String Pool. The String Pool is part of the Java heap memory and is used to store unique `String` literals. When a `String` literal is created, the JVM checks" @@ -210,11 +210,11 @@ { "id": 18, "category": "Strings", - "question": "Why should you be careful about String concatenation(+) operator in loops?", + "question": "Why should you be careful about String concatenation (+) operator in loops?", "options": [ - "StringBuffer y StringBuilder son inmutables en Java.", - "Java no tiene soporte para cadenas de texto inmutables.", - "Los objetos String en Java son completamente mutables.", + "StringBuffer and StringBuilder are immutable in Java.", + "Java does not have support for immutable text strings.", + "String objects in Java are completely mutable.", "String concatenation using the `+` operator in loops can be inefficient due to the immutability of `String` objects." ], "answer": "d", @@ -223,38 +223,38 @@ { "id": 19, "category": "Strings", - "question": "How do you solve above problem?", + "question": "How do you solve the problem of inefficient string concatenation in loops?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "To solve the problem of inefficient string concatenation using the `+` operator in loops, you should" + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "To solve the problem of inefficient string concatenation using the `+` operator in loops, you should use `StringBuilder` or `StringBuffer`." ], "answer": "d", - "explanation": "To solve the problem of inefficient string concatenation using the `+` operator in loops, you should use `StringBuilder` or `StringBuffer`. These classes provide mutable alternatives to `String` and are more efficient" + "explanation": "To solve the problem of inefficient string concatenation using the `+` operator in loops, you should use `StringBuilder` or `StringBuffer`. These classes provide mutable alternatives to `String` and are more efficient for concatenation operations, especially in loops. `StringBuilder` is generally preferred over `StringBuffer` when thread safety is not a concern, as it offers better performance." }, { "id": 20, "category": "Strings", "question": "What are the differences between `String` and `StringBuffer`?", "options": [ - "StringBuffer y StringBuilder son inmutables en Java.", - "Los objetos String en Java son completamente mutables.", - "created. `StringBuffer` objects are mutable, allowing their values to be modified.", - "Java no tiene soporte para cadenas de texto inmutables." + "StringBuffer and StringBuilder are immutable in Java.", + "String objects in Java are completely mutable.", + "`StringBuffer` objects are mutable, allowing their values to be modified. But `String` objects are immutable, meaning their values cannot be changed after they are created.", + "Java does not have support for immutable text strings." ], "answer": "c", - "explanation": "created. `StringBuffer` objects are mutable, allowing their values to be modified. is faster for concatenation and modification operations." + "explanation": "`StringBuffer` objects are mutable, allowing their values to be modified. `StringBuilder` is faster for concatenation and modification operations." }, { "id": 22, "category": "Strings", "question": "Can you give examples of different utility methods in String class?", "options": [ - "StringBuffer y StringBuilder son inmutables en Java.", + "StringBuffer and StringBuilder are immutable in Java.", "The `String` class in Java provides various utility methods. Here are some examples:", - "Java no tiene soporte para cadenas de texto inmutables.", - "Los objetos String en Java son completamente mutables." + "Java does not have support for immutable text strings.", + "String objects in Java are completely mutable." ], "answer": "b", "explanation": "The `String` class in Java provides various utility methods. Here are some examples: // Example of length() method" @@ -264,10 +264,10 @@ "category": "Strings", "question": "What is a class?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "A class in Java is a blueprint for creating objects. It defines a set of properties (fields) and methods that the", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "A class in Java is a blueprint for creating objects. It defines a set of properties (fields) and methods that the created objects will have. A class encapsulates data for the object and methods to manipulate that data.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "A class in Java is a blueprint for creating objects. It defines a set of properties (fields) and methods that the created objects will have. A class encapsulates data for the object and methods to manipulate that data. It serves as" @@ -275,12 +275,12 @@ { "id": 25, "category": "Strings", - "question": "What is state of an object?", + "question": "What is the state of an object?", "options": [ - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "The state of an object in Java refers to the data or values stored in its fields (instance variables) at any given", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "The state of an object in Java refers to the data or values stored in its fields (instance variables) at any given time.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "The state of an object in Java refers to the data or values stored in its fields (instance variables) at any given time. The state represents the current condition of the object, which can change over time as the values of its fields" @@ -288,12 +288,12 @@ { "id": 26, "category": "Object-Oriented Programming", - "question": "What is behavior of an object?", + "question": "What is the behavior of an object?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "The behavior of an object in Java refers to the actions or operations that the object can perform. These behaviors are", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Java does not support this feature until very recent versions.", + "The behavior of an object in Java refers to the actions or operations that the object can perform. These behaviors are defined by the methods in the object's class.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "The behavior of an object in Java refers to the actions or operations that the object can perform. These behaviors are defined by the methods in the object's class. The methods manipulate the object's state and can interact with other" @@ -301,12 +301,12 @@ { "id": 28, "category": "Object-Oriented Programming", - "question": "Explain about toString method ?", + "question": "Explain about the toString method.", "options": [ - "The `toString` method in Java is a method that returns a string representation of an object. It is defined in", - "Java no tiene soporte para cadenas de texto inmutables.", - "StringBuffer y StringBuilder son inmutables en Java.", - "Los objetos String en Java son completamente mutables." + "The `toString` method in Java is a method that returns a string representation of an object. It is defined in the `Object` class, which is the superclass of all Java classes.", + "Java does not have support for immutable text strings.", + "StringBuffer and StringBuilder are immutable in Java.", + "String objects in Java are completely mutable." ], "answer": "a", "explanation": "The `toString` method in Java is a method that returns a string representation of an object. It is defined in the `Object` class, which is the superclass of all Java classes. By default, the `toString` method returns a string" @@ -316,10 +316,10 @@ "category": "Object-Oriented Programming", "question": "What is the use of equals method in Java?", "options": [ - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "The `equals` method in Java is used to compare the equality of two objects. It is defined in the `Object` class and", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "The `equals` method in Java is used to compare the equality of two objects. It is defined in the `Object` class and can be overridden in subclasses to provide custom equality logic.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "The `equals` method in Java is used to compare the equality of two objects. It is defined in the `Object` class and can be overridden in subclasses to provide custom equality logic. By default, the `equals` method compares object" @@ -329,23 +329,23 @@ "category": "Object-Oriented Programming", "question": "What are the important things to consider when implementing `equals` method?", "options": [ - "This is the correct answer based on Java content.", + "The `equals` method should be reflexive, symmetric, transitive, consistent, and handle null values correctly.", "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java.", "Java does not support this feature until very recent versions." ], "answer": "a", - "explanation": "return `true`." + "explanation": "The `equals` method should be reflexive, symmetric, transitive, consistent, and handle null values correctly. This ensures that the method behaves as expected when comparing objects." }, { "id": 31, "category": "Object-Oriented Programming", "question": "What is the Hashcode method used for in Java?", "options": [ - "The `hashCode` method in Java is used to generate a unique integer value for an object. It is defined in the `Object`", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "The `hashCode` method in Java is used to generate a unique integer value for an object. It is defined in the `Object` class and can be overridden in subclasses to provide a custom hash code calculation.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "The `hashCode` method in Java is used to generate a unique integer value for an object. It is defined in the `Object` class and can be overridden in subclasses to provide a custom hash code calculation. The `hashCode` method is used" @@ -355,10 +355,10 @@ "category": "Object-Oriented Programming", "question": "Explain inheritance with examples", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Inheritance in Java is a mechanism where one class (subclass) inherits the fields and methods of another class (" + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "Inheritance in Java is a mechanism where one class (subclass) inherits the fields and methods of another class ( superclass). It allows for code reuse and establishes a relationship between classes." ], "answer": "d", "explanation": "Inheritance in Java is a mechanism where one class (subclass) inherits the fields and methods of another class ( superclass). It allows for code reuse and establishes a relationship between classes." @@ -368,10 +368,10 @@ "category": "Object-Oriented Programming", "question": "What is method overloading?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Method overloading in Java is a feature that allows a class to have more than one method with the same name, provided", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "Method overloading in Java is a feature that allows a class to have more than one method with the same name, provided their parameter lists are different.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "Method overloading in Java is a feature that allows a class to have more than one method with the same name, provided their parameter lists are different. This means that the methods must differ in the type, number, or order of their" @@ -381,10 +381,10 @@ "category": "Object-Oriented Programming", "question": "What is method overriding?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Method overriding in Java is a feature that allows a subclass to provide a specific implementation of a method that is" + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Method overriding in Java is a feature that allows a subclass to provide a specific implementation of a method that is already provided by its superclass." ], "answer": "d", "explanation": "Method overriding in Java is a feature that allows a subclass to provide a specific implementation of a method that is already provided by its superclass. When a method in a subclass has the same name, return type, and parameters as a" @@ -394,10 +394,10 @@ "category": "Object-Oriented Programming", "question": "Can super class reference variable can hold an object of sub class?", "options": [ - "Yes, a superclass reference variable can hold an object of a subclass in Java. This is known as polymorphism and is a", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "Yes, a superclass reference variable can hold an object of a subclass in Java. This is known as polymorphism and is a key feature of object-oriented programming.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Yes, a superclass reference variable can hold an object of a subclass in Java. This is known as polymorphism and is a key feature of object-oriented programming. When a superclass reference variable holds an object of a subclass, it can" @@ -408,9 +408,9 @@ "question": "Is multiple inheritance allowed in Java?", "options": [ "Java does not support multiple inheritance of classes, meaning a class cannot extend more than one class at a time.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Java does not support multiple inheritance of classes, meaning a class cannot extend more than one class at a time. This is to avoid the \"diamond problem,\" where conflicts can arise if two superclasses have methods with the same" @@ -420,10 +420,10 @@ "category": "Inheritance", "question": "What is an interface?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "An interface in Java is a reference type, similar to a class, that can contain only constants, method signatures,", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "An interface in Java is a reference type, similar to a class, that can contain only constants, method signatures, default methods, static methods, and nested types. Interfaces cannot contain instance fields or constructors.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "An interface in Java is a reference type, similar to a class, that can contain only constants, method signatures, default methods, static methods, and nested types. Interfaces cannot contain instance fields or constructors. They are" @@ -433,10 +433,10 @@ "category": "Inheritance", "question": "How do you define an interface?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "An interface in Java is defined using the `interface` keyword. It can contain abstract methods, default methods,", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Java does not support this feature until very recent versions.", + "An interface in Java is defined using the `interface` keyword. It can contain abstract methods, default methods, static methods, and constants.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "An interface in Java is defined using the `interface` keyword. It can contain abstract methods, default methods, static methods, and constants. Here is an example:" @@ -446,10 +446,10 @@ "category": "Inheritance", "question": "How do you implement an interface?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "To implement an interface in Java, a class must use the `implements` keyword and provide concrete implementations for" + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "To implement an interface in Java, a class must use the `implements` keyword and provide concrete implementations for all the methods declared in the interface." ], "answer": "d", "explanation": "To implement an interface in Java, a class must use the `implements` keyword and provide concrete implementations for all the methods declared in the interface. Here is an example:" @@ -460,9 +460,9 @@ "question": "Can you explain a few tricky things about interfaces?", "options": [ "Here are a few tricky things about interfaces in Java:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "Here are a few tricky things about interfaces in Java: 1. Default Methods: Interfaces can have default methods with a body. This allows adding new methods to" @@ -472,10 +472,10 @@ "category": "Inheritance", "question": "Can you extend an interface?", "options": [ - "Yes, in Java, an interface can extend another interface. This allows the extending interface to inherit the abstract", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "Yes, in Java, an interface can extend another interface. This allows the extending interface to inherit the abstract methods of the parent interface.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Yes, in Java, an interface can extend another interface. This allows the extending interface to inherit the abstract methods of the parent interface. Here is an example:" @@ -485,10 +485,10 @@ "category": "Inheritance", "question": "Can a class extend multiple interfaces?", "options": [ - "Esta funcionalidad no existe en Java.", - "Yes, in Java, a class can implement multiple interfaces. This allows the class to inherit the abstract methods of all", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Yes, in Java, a class can implement multiple interfaces. This allows the class to inherit the abstract methods of all the interfaces it implements.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "b", "explanation": "Yes, in Java, a class can implement multiple interfaces. This allows the class to inherit the abstract methods of all the interfaces it implements. Here is an example:" @@ -498,10 +498,10 @@ "category": "Inheritance", "question": "What is an abstract class?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "An abstract class in Java is a class that cannot be instantiated on its own and is meant to be subclassed by other" + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "An abstract class in Java is a class that cannot be instantiated on its own and is meant to be subclassed by other classes." ], "answer": "d", "explanation": "An abstract class in Java is a class that cannot be instantiated on its own and is meant to be subclassed by other classes. It can contain abstract methods, which are declared but not implemented, as well as concrete methods with" @@ -511,10 +511,10 @@ "category": "Inheritance", "question": "When do you use an abstract class?", "options": [ - "Esta funcionalidad no existe en Java.", - "You should use an abstract class in Java when you want to define a common interface for a group of subclasses and", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "You should use an abstract class in Java when you want to define a common interface for a group of subclasses and provide default behavior that can be overridden by the subclasses.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "You should use an abstract class in Java when you want to define a common interface for a group of subclasses and provide default behavior that can be overridden by the subclasses. Abstract classes are useful when you have a set of" @@ -524,10 +524,10 @@ "category": "Inheritance", "question": "How do you define an abstract method?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "An abstract method in Java is a method that is declared but not implemented in an abstract class. Abstract methods do", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "An abstract method in Java is a method that is declared but not implemented in an abstract class. Abstract methods do not have a body and are meant to be implemented by subclasses.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "An abstract method in Java is a method that is declared but not implemented in an abstract class. Abstract methods do not have a body and are meant to be implemented by subclasses. To define an abstract method, you use the `abstract`" @@ -537,10 +537,10 @@ "category": "Collections", "question": "Compare abstract class vs interface?", "options": [ - "Esta es la respuesta correcta basada en el contenido de Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "An abstract class in Java is a class that cannot be instantiated on its own and is meant to be subclassed by other classes. It can contain abstract methods, which are declared but not implemented, as well as concrete methods with implementation.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "This is the correct answer based on Java best practices and standards." @@ -550,10 +550,10 @@ "category": "Collections", "question": "What is a constructor?", "options": [ - "A constructor in Java is a special type of method that is used to initialize objects. It is called when an object of a", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "A constructor in Java is a special type of method that is used to initialize objects. It is called when an object of a class is created using the `new` keyword. Constructors have the same name as the class and do not have a return type.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "A constructor in Java is a special type of method that is used to initialize objects. It is called when an object of a class is created using the `new` keyword. Constructors have the same name as the class and do not have a return type." @@ -563,10 +563,10 @@ "category": "Collections", "question": "What is a default constructor?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "A default constructor in Java is a constructor that is automatically provided by the compiler if a class does not have" + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "A default constructor in Java is a constructor that is automatically provided by the compiler if a class does not have any constructor defined. It is a no-argument constructor that initializes the object with default values." ], "answer": "d", "explanation": "A default constructor in Java is a constructor that is automatically provided by the compiler if a class does not have any constructor defined. It is a no-argument constructor that initializes the object with default values. The default" @@ -577,9 +577,9 @@ "question": "Will this code compile?", "options": [ "Here is an example of a Java code segment that will not compile due to a missing semicolon:", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Here is an example of a Java code segment that will not compile due to a missing semicolon: public class Example {" @@ -589,10 +589,10 @@ "category": "Collections", "question": "How do you call a super class constructor from a constructor?", "options": [ - "In Java, you can call a superclass constructor from a subclass constructor using the `super` keyword. This is useful", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "In Java, you can call a superclass constructor from a subclass constructor using the `super` keyword. This is useful when you want to initialize the superclass part of the object before initializing the subclass part.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "In Java, you can call a superclass constructor from a subclass constructor using the `super` keyword. This is useful when you want to initialize the superclass part of the object before initializing the subclass part. The `super`" @@ -602,10 +602,10 @@ "category": "Collections", "question": "Will this code compile?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "public class Example {" + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "public class Example { public static void main(String[] args) {" ], "answer": "d", "explanation": "public class Example { public static void main(String[] args) {" @@ -615,10 +615,10 @@ "category": "Collections", "question": "What is the use of this() keyword in Java?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "The `this` keyword in Java is a reference to the current object within a method or constructor. It can be used to" + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "The `this` keyword in Java is a reference to the current object within a method or constructor. It can be used to access instance variables, call other constructors, or pass the current object as a parameter to other methods." ], "answer": "d", "explanation": "The `this` keyword in Java is a reference to the current object within a method or constructor. It can be used to access instance variables, call other constructors, or pass the current object as a parameter to other methods. The" @@ -628,10 +628,10 @@ "category": "Collections", "question": "Can a constructor be called directly from a method?", "options": [ - "No, a constructor cannot be called directly from a method. Constructors are special methods that are called only when", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "No, a constructor cannot be called directly from a method. Constructors are special methods that are called only when an object is created. However, you can call another constructor from a constructor using `this()` or `super()`.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "No, a constructor cannot be called directly from a method. Constructors are special methods that are called only when an object is created. However, you can call another constructor from a constructor using `this()` or `super()`. If you" @@ -641,7 +641,7 @@ "category": "Collections", "question": "Is a super class constructor called even when there is no explicit call from a sub class constructor?", "options": [ - "Yes, a superclass constructor is always called, even if there is no explicit call from a subclass constructor. If a", + "Yes, a superclass constructor is always called, even if there is no explicit call from a subclass constructor.", "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java." @@ -655,7 +655,7 @@ "question": "What is polymorphism?", "options": [ "This is a feature exclusive to other programming languages.", - "Polymorphism in Java is the ability of an object to take on many forms. It allows one interface to be used for a", + "Polymorphism in Java is the ability of an object to take on many forms. It allows one interface to be used for a general class of actions. The specific action is determined by the exact nature of the situation.", "Java does not support this feature until very recent versions.", "This functionality does not exist in Java." ], @@ -670,7 +670,7 @@ "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java.", - "The `instanceof` operator in Java is used to test whether an object is an instance of a specific class or implements a" + "The `instanceof` operator in Java is used to test whether an object is an instance of a specific class or implements a specific interface." ], "answer": "d", "explanation": "The `instanceof` operator in Java is used to test whether an object is an instance of a specific class or implements a specific interface. It returns `true` if the object is an instance of the specified class or interface, and `false`" @@ -681,9 +681,9 @@ "question": "What is coupling?", "options": [ "This functionality does not exist in Java.", - "Coupling in software engineering refers to the degree of direct knowledge that one module has about another. It", + "Coupling in software engineering refers to the degree of direct knowledge that one module has about another. It measures how closely connected two routines or modules are.", "This is a feature exclusive to other programming languages.", - "Java no soporta esta característica hasta versiones muy recientes." + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "Coupling in software engineering refers to the degree of direct knowledge that one module has about another. It measures how closely connected two routines or modules are. High coupling means that modules are highly dependent on" @@ -694,7 +694,7 @@ "question": "What is cohesion?", "options": [ "This functionality does not exist in Java.", - "Cohesion in software engineering refers to the degree to which the elements inside a module belong together. It", + "Cohesion in software engineering refers to the degree to which the elements inside a module belong together. It measures how closely related the responsibilities of a single module are.", "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages." ], @@ -709,7 +709,7 @@ "This is a feature exclusive to other programming languages.", "Java does not support this feature until very recent versions.", "This functionality does not exist in Java.", - "Encapsulation in Java is a fundamental object-oriented programming concept that involves bundling the data (fields)" + "Encapsulation in Java is a fundamental object-oriented programming concept that involves bundling the data (fields) and the methods (functions) that operate on the data into a single unit, called a class." ], "answer": "d", "explanation": "Encapsulation in Java is a fundamental object-oriented programming concept that involves bundling the data (fields) and the methods (functions) that operate on the data into a single unit, called a class. It restricts direct access to" @@ -722,7 +722,7 @@ "This functionality does not exist in Java.", "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages.", - "An inner class in Java is a class that is defined within another class. Inner classes can access the members (" + "An inner class in Java is a class that is defined within another class. Inner classes can access the members ( including private members) of the outer class." ], "answer": "d", "explanation": "An inner class in Java is a class that is defined within another class. Inner classes can access the members ( including private members) of the outer class. There are four types of inner classes in Java:" @@ -734,7 +734,7 @@ "options": [ "This is a feature exclusive to other programming languages.", "Java does not support this feature until very recent versions.", - "A static inner class in Java is a nested class that is defined as a static member of the outer class. It does not have", + "A static inner class in Java is a nested class that is defined as a static member of the outer class. It does not have access to the instance variables and methods of the outer class, but it can access static members of the outer class.", "This functionality does not exist in Java." ], "answer": "c", @@ -761,7 +761,7 @@ "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java.", "Java does not support this feature until very recent versions.", - "An anonymous class in Java is a class without a name that is defined and instantiated in a single statement. It is" + "An anonymous class in Java is a class without a name that is defined and instantiated in a single statement." ], "answer": "d", "explanation": "An anonymous class in Java is a class without a name that is defined and instantiated in a single statement. It is typically used for one-time use cases where a class needs to be defined and instantiated without creating a separate" @@ -772,7 +772,7 @@ "question": "What is default class modifier?", "options": [ "This functionality does not exist in Java.", - "The default class modifier in Java is package-private, which means that the class is only accessible within the same", + "The default class modifier in Java is package-private, which means that the class is only accessible within the same package. If no access modifier is specified for a class, it is considered to have default access.", "This is a feature exclusive to other programming languages.", "Java does not support this feature until very recent versions." ], @@ -786,7 +786,7 @@ "options": [ "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java.", - "The `private` access modifier in Java is the most restrictive access level. It is used to restrict access to members", + "The `private` access modifier in Java is the most restrictive access level. It is used to restrict access to members (fields, methods, constructors) of a class to only within the same class.", "Java does not support this feature until very recent versions." ], "answer": "c", @@ -800,7 +800,7 @@ "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java.", - "The default or package access modifier in Java is the absence of an access modifier. It is also known as" + "The default or package access modifier in Java is the absence of an access modifier." ], "answer": "d", "explanation": "The default or package access modifier in Java is the absence of an access modifier. It is also known as package-private" @@ -812,7 +812,7 @@ "options": [ "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java.", - "The `protected` access modifier in Java is used to restrict access to members (fields, methods, constructors) of a", + "The `protected` access modifier in Java is used to restrict access to members (fields, methods, constructors) of a class to only within the same package or subclasses of the class.", "Java does not support this feature until very recent versions." ], "answer": "c", @@ -825,7 +825,7 @@ "options": [ "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages.", - "The `public` access modifier in Java is the least restrictive access level. It allows a class, method, or field to be", + "The `public` access modifier in Java is the least restrictive access level. It allows a class, method, or field to be accessed by any other class in the same project or in other projects.", "This functionality does not exist in Java." ], "answer": "c", @@ -889,7 +889,7 @@ "question": "What is the use of a final modifier on a class?", "options": [ "Java does not support this feature until very recent versions.", - "The `final` modifier on a class in Java is used to prevent the class from being subclassed. This means that no other", + "The `final` modifier on a class in Java is used to prevent the class from being subclassed. This means that no other class can extend a `final` class.", "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java." ], @@ -901,7 +901,7 @@ "category": "Multithreading", "question": "What is the use of a final modifier on a method?", "options": [ - "The `final` modifier on a method in Java is used to prevent the method from being overridden by subclasses. This", + "The `final` modifier on a method in Java is used to prevent the method from being overridden by subclasses. This ensures that the implementation of the method remains unchanged in any subclass.", "This is a feature exclusive to other programming languages.", "Java does not support this feature until very recent versions.", "This functionality does not exist in Java." @@ -914,7 +914,7 @@ "category": "Multithreading", "question": "What is a final variable?", "options": [ - "A final variable in Java is a variable that cannot be reassigned once it has been initialized. The `final` keyword is", + "A final variable in Java is a variable that cannot be reassigned once it has been initialized. The `final` keyword is used to declare a variable as final.", "This functionality does not exist in Java.", "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages." @@ -930,7 +930,7 @@ "Java does not support this feature until very recent versions.", "This functionality does not exist in Java.", "This is a feature exclusive to other programming languages.", - "A final argument in Java is a method parameter that is declared with the `final` keyword. This means that once the" + "A final argument in Java is a method parameter that is declared with the `final` keyword. This means that once the parameter is assigned a value, it cannot be changed within the method." ], "answer": "d", "explanation": "A final argument in Java is a method parameter that is declared with the `final` keyword. This means that once the parameter is assigned a value, it cannot be changed within the method. This is useful for ensuring that the parameter" @@ -943,7 +943,7 @@ "Java does not support this feature until very recent versions.", "This functionality does not exist in Java.", "This is a feature exclusive to other programming languages.", - "When a variable is marked as `volatile` in Java, it ensures that the value of the variable is always read from and" + "When a variable is marked as `volatile` in Java, it ensures that the value of the variable is always read from and written to the main memory, rather than being cached in a thread's local memory." ], "answer": "d", "explanation": "When a variable is marked as `volatile` in Java, it ensures that the value of the variable is always read from and written to the main memory, rather than being cached in a thread's local memory. This guarantees visibility of changes" @@ -953,7 +953,7 @@ "category": "Generics", "question": "What is a static variable?", "options": [ - "A static variable in Java is a variable that is shared among all instances of a class. It is declared using the", + "A static variable in Java is a variable that is shared among all instances of a class. It is declared using the `static` keyword and belongs to the class rather than any specific instance.", "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java." @@ -968,7 +968,7 @@ "options": [ "This functionality does not exist in Java.", "Java does not support this feature until very recent versions.", - "It is a good practice to always use blocks around `if` statements in Java to improve code readability and avoid", + "It is a good practice to always use blocks around `if` statements in Java to improve code readability and avoid potential bugs.", "This is a feature exclusive to other programming languages." ], "answer": "c", @@ -1033,8 +1033,8 @@ "options": [ "This is a feature exclusive to other programming languages.", "Java does not support this feature until very recent versions.", - "No, the `default` case does not have to be the last case in a `switch` statement in Java. The `default` case is", - "Esta funcionalidad no existe en Java." + "No, the `default` case does not have to be the last case in a `switch` statement in Java. The `default` case is optional and can be placed anywhere within the `switch` statement.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "No, the `default` case does not have to be the last case in a `switch` statement in Java. The `default` case is optional and can be placed anywhere within the `switch` statement. It is typically used as a catch-all case for values" @@ -1044,7 +1044,7 @@ "category": "Generics", "question": "Can a switch statement be used around a String", "options": [ - "Yes, a `switch` statement can be used with a `String` in Java starting from Java 7. Prior to Java 7, `switch`", + "Yes, a `switch` statement can be used with a `String` in Java starting from Java 7. Prior to Java 7, `switch` statements only supported `int`, `byte`, `short`, `char`, and `enum` types.", "String objects in Java are completely mutable.", "Java does not support immutable text strings.", "StringBuffer and StringBuilder are immutable in Java." @@ -1058,9 +1058,9 @@ "question": "Guess the output of this for loop", "options": [ "Here is an example to guess the output:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Here is an example to guess the output: public class GuessOutput {" @@ -1071,7 +1071,7 @@ "question": "What is an enhanced for loop?", "options": [ "This is a feature exclusive to other programming languages.", - "An enhanced for loop, also known as a for-each loop, is a simplified way to iterate over elements in an array or a", + "An enhanced for loop, also known as a for-each loop, is a simplified way to iterate over elements in an array or a collection in Java.", "Java does not support this feature until very recent versions.", "This functionality does not exist in Java." ], @@ -1083,9 +1083,9 @@ "category": "Java 8 Features", "question": "What is the output of the for loop below?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", "Here is an example to guess the output:" ], "answer": "d", @@ -1097,9 +1097,9 @@ "question": "What is the output of the program below?", "options": [ "Here is an example to guess the output:", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Here is an example to guess the output: public class GuessOutput {" @@ -1110,9 +1110,9 @@ "question": "What is the output of the program below?", "options": [ "Here is an example to guess the output:", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Here is an example to guess the output: public class GuessOutput {" @@ -1122,10 +1122,10 @@ "category": "Java 8 Features", "question": "Why is exception handling important?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", + "This is a feature exclusive to other programming languages.", "Exception handling is important in Java for the following reasons:", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "Exception handling is important in Java for the following reasons: program execution. This helps prevent the program from crashing and provides a way to recover from unexpected" @@ -1135,10 +1135,10 @@ "category": "Java 8 Features", "question": "What design pattern is used to implement exception handling features in most languages?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "The most common design pattern used to implement exception handling features in most programming languages, including", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "The most common design pattern used to implement exception handling features in most programming languages, including Java, is the `try-catch-finally` pattern.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "The most common design pattern used to implement exception handling features in most programming languages, including Java, is the `try-catch-finally` pattern. This pattern consists of three main components:" @@ -1148,10 +1148,10 @@ "category": "Java 8 Features", "question": "What is the need for finally block?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", "The `finally` block in Java is used to execute code that should always run, regardless of whether an exception occurs.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "The `finally` block in Java is used to execute code that should always run, regardless of whether an exception occurs. It is typically used to release resources, close connections, or perform cleanup operations that need to be done" @@ -1162,9 +1162,9 @@ "question": "In what scenarios is code in finally not executed?", "options": [ "The code in a `finally` block is not executed in the following scenarios:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "The code in a `finally` block is not executed in the following scenarios: terminate immediately, and the code in the `finally` block will not be executed." @@ -1175,9 +1175,9 @@ "question": "Will finally be executed in the program below?", "options": [ "Here is an example to determine if the `finally` block will be executed:", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Here is an example to determine if the `finally` block will be executed: public class Example {" @@ -1187,10 +1187,10 @@ "category": "Spring Framework", "question": "Is try without a catch is allowed?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Yes, a `try` block without a `catch` block is allowed in Java. This is known as a try-with-resources statement and is" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "Yes, a `try` block without a `catch` block is allowed in Java. This is known as a try-with-resources statement and is used to automatically close resources that implement the `AutoCloseable` interface." ], "answer": "d", "explanation": "Yes, a `try` block without a `catch` block is allowed in Java. This is known as a try-with-resources statement and is used to automatically close resources that implement the `AutoCloseable` interface. The `try` block can be followed by" @@ -1200,10 +1200,10 @@ "category": "Spring Framework", "question": "Is try without catch and finally allowed?", "options": [ - "Yes, a `try` block without a `catch` or `finally` block is allowed in Java. This is known as a try-with-resources", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "Yes, a `try` block without a `catch` or `finally` block is allowed in Java. This is known as a try-with-resources statement and is used to automatically close resources that implement the `AutoCloseable` interface.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Yes, a `try` block without a `catch` or `finally` block is allowed in Java. This is known as a try-with-resources statement and is used to automatically close resources that implement the `AutoCloseable` interface. The `try` block" @@ -1213,10 +1213,10 @@ "category": "Spring Framework", "question": "Can you explain the hierarchy of exception handling classes?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "In Java, exception handling is based on a hierarchy of classes that extend the `Throwable` class. The main classes in" + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "In Java, exception handling is based on a hierarchy of classes that extend the `Throwable` class." ], "answer": "d", "explanation": "In Java, exception handling is based on a hierarchy of classes that extend the `Throwable` class. The main classes in the exception handling hierarchy are:" @@ -1226,10 +1226,10 @@ "category": "Spring Framework", "question": "What is the difference between error and exception?", "options": [ - "Errors and exceptions are both types of problems that can occur during the execution of a program, but they are", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Errors and exceptions are both types of problems that can occur during the execution of a program, but they are handled differently in Java:", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "Errors and exceptions are both types of problems that can occur during the execution of a program, but they are handled differently in Java:" @@ -1239,10 +1239,10 @@ "category": "Spring Framework", "question": "How do you throw an exception from a method?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "To throw an exception from a method in Java, you use the `throw` keyword followed by an instance of the exception", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "To throw an exception from a method in Java, you use the `throw` keyword followed by an instance of the exception This allows you to create and throw custom exceptions or to re-throw exceptions that were caught earlier.", + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "To throw an exception from a method in Java, you use the `throw` keyword followed by an instance of the exception This allows you to create and throw custom exceptions or to re-throw exceptions that were caught earlier. Here is an" @@ -1252,10 +1252,10 @@ "category": "Spring Framework", "question": "What happens when you throw a checked exception from a method?", "options": [ - "When you throw a checked exception from a method in Java, you must either catch the exception using a `try-catch`", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "When you throw a checked exception from a method in Java, you must either catch the exception using a `try-catch` block or declare the exception using the `throws` keyword in the method signature.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "When you throw a checked exception from a method in Java, you must either catch the exception using a `try-catch` block or declare the exception using the `throws` keyword in the method signature. If you throw a checked exception" @@ -1265,10 +1265,10 @@ "category": "Spring Framework", "question": "What are the options you have to eliminate compilation errors when handling checked exceptions?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", "When handling checked exceptions in Java, you have several options to eliminate compilation errors:", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "When handling checked exceptions in Java, you have several options to eliminate compilation errors: 1. Catch the Exception: Use a `try-catch` block to catch the exception and handle it within the method." @@ -1278,10 +1278,10 @@ "category": "Spring Framework", "question": "How do you create a custom exception?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "To create a custom exception in Java, you need to define a new class that extends the `Exception` class or one of its", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "To create a custom exception in Java, you need to define a new class that extends the `Exception` class or one of its subclasses.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "To create a custom exception in Java, you need to define a new class that extends the `Exception` class or one of its subclasses. You can add custom fields, constructors, and methods to the custom exception class to provide additional" @@ -1291,10 +1291,10 @@ "category": "Spring Framework", "question": "How do you handle multiple exception types with same exception handling block?", "options": [ - "Esta funcionalidad no existe en Java.", + "This functionality does not exist in Java.", "In Java, you can handle multiple exception types with the same exception handling block by using a multi-catch block.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "In Java, you can handle multiple exception types with the same exception handling block by using a multi-catch block. This allows you to catch multiple exceptions in a single `catch` block and handle them in a common way. The syntax for" @@ -1304,10 +1304,10 @@ "category": "Database Connectivity", "question": "Can you explain about try with resources?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Try-with-resources is a feature introduced in Java 7 that simplifies resource management by automatically closing", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Try-with-resources is a feature introduced in Java 7 that simplifies resource management by automatically closing resources that implement the `AutoCloseable` interface.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "Try-with-resources is a feature introduced in Java 7 that simplifies resource management by automatically closing resources that implement the `AutoCloseable` interface. It eliminates the need for explicit `finally` blocks to close" @@ -1317,10 +1317,10 @@ "category": "Database Connectivity", "question": "How does try with resources work?", "options": [ - "Try-with-resources in Java works by automatically closing resources that implement the `AutoCloseable` interface when", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "Try-with-resources in Java works by automatically closing resources that implement the `AutoCloseable` interface when the `try` block exits.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Try-with-resources in Java works by automatically closing resources that implement the `AutoCloseable` interface when the `try` block exits. It simplifies resource management by eliminating the need for explicit `finally` blocks to" @@ -1330,10 +1330,10 @@ "category": "Database Connectivity", "question": "Can you explain a few exception handling best practices?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", "Some exception handling best practices in Java include:", - "Java no soporta esta característica hasta versiones muy recientes." + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "Some exception handling best practices in Java include: allows you to handle different types of exceptions in a more targeted way." @@ -1343,10 +1343,10 @@ "category": "Database Connectivity", "question": "What are the default values in an array?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "In Java, when an array is created, the elements are initialized to default values based on the type of the array. The", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "In Java, when an array is created, the elements are initialized to default values based on the type of the array.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "In Java, when an array is created, the elements are initialized to default values based on the type of the array. The default values for primitive types are as follows:" @@ -1356,10 +1356,10 @@ "category": "Database Connectivity", "question": "How do you loop around an array using enhanced for loop?", "options": [ - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "You can loop around an array using an enhanced for loop in Java. The enhanced for loop, also known as the for-each" + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "You can loop around an array using an enhanced for loop in Java. The enhanced for loop, also known as the for-each loop, provides a more concise syntax for iterating over elements in an array or a collection." ], "answer": "d", "explanation": "You can loop around an array using an enhanced for loop in Java. The enhanced for loop, also known as the for-each loop, provides a more concise syntax for iterating over elements in an array or a collection. It eliminates the need" @@ -1369,10 +1369,10 @@ "category": "Database Connectivity", "question": "How do you print the content of an array?", "options": [ - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "You can print the content of an array in Java by iterating over the elements of the array and printing each element to" + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "You can print the content of an array in Java by iterating over the elements of the array and printing each element to the console." ], "answer": "d", "explanation": "You can print the content of an array in Java by iterating over the elements of the array and printing each element to the console. There are several ways to print the content of an array, including using a `for` loop, an enhanced `for`" @@ -1382,10 +1382,10 @@ "category": "Database Connectivity", "question": "How do you compare two arrays?", "options": [ - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method compares the contents of two arrays to determine if they are equal.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method compares the contents of two arrays to determine if they are equal. It takes two arrays as arguments and returns" @@ -1395,10 +1395,10 @@ "category": "Database Connectivity", "question": "What is an enum?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to", - "Esta funcionalidad no existe en Java." + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to define a set of named constants that can be used in place of integer values.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to define a set of named constants that can be used in place of integer values. Enumerations are defined using the" @@ -1408,10 +1408,10 @@ "category": "Database Connectivity", "question": "Can you use a switch statement around an enum?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to provide a more readable and type-safe alternative to using integer values.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to provide a more readable and type-safe alternative to using integer values. Each constant in the enum can be used as a" @@ -1421,10 +1421,10 @@ "category": "Database Connectivity", "question": "What are variable arguments or varargs?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This feature was introduced in Java 5 and is denoted by an ellipsis (`...", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This feature was introduced in Java 5 and is denoted by an ellipsis (`...`) after the type of the last parameter in the" @@ -1434,10 +1434,10 @@ "category": "Web Services", "question": "What are asserts used for?", "options": [ - "Asserts in Java are used to test assumptions in the code and validate conditions that should be true during program", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Asserts in Java are used to test assumptions in the code and validate conditions that should be true during program execution. They are typically used for debugging and testing purposes to catch errors and inconsistencies in the code.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Asserts in Java are used to test assumptions in the code and validate conditions that should be true during program execution. They are typically used for debugging and testing purposes to catch errors and inconsistencies in the code." @@ -1448,9 +1448,9 @@ "question": "When should asserts be used?", "options": [ "Asserts in Java should be used in the following scenarios:", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Asserts in Java should be used in the following scenarios:" @@ -1460,9 +1460,9 @@ "category": "Web Services", "question": "What is garbage collection?", "options": [ - "Set permite elementos duplicados en Java.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "Set allows duplicate elements in Java.", + "ArrayList and LinkedList have the same performance in all operations.", + "Collections in Java can only store primitive types.", "Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program." ], "answer": "d", @@ -1474,9 +1474,9 @@ "question": "Can you explain garbage collection with an example?", "options": [ "Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program.", - "Set permite elementos duplicados en Java.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Las colecciones en Java solo pueden almacenar tipos primitivos." + "Set allows duplicate elements in Java.", + "ArrayList and LinkedList have the same performance in all operations.", + "Collections in Java can only store primitive types." ], "answer": "a", "explanation": "Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program. It helps prevent memory leaks and ensures that memory is used efficiently by reclaiming unused memory and making it" @@ -1486,10 +1486,10 @@ "category": "Web Services", "question": "When is garbage collection run?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Garbage collection in Java is run by the JVM's garbage collector at specific intervals or when certain conditions are", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java." + "ArrayList and LinkedList have the same performance in all operations.", + "Garbage collection in Java is run by the JVM's garbage collector at specific intervals or when certain conditions are met. The garbage collector runs in the background and periodically checks for unused objects to reclaim memory.", + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java." ], "answer": "b", "explanation": "Garbage collection in Java is run by the JVM's garbage collector at specific intervals or when certain conditions are met. The garbage collector runs in the background and periodically checks for unused objects to reclaim memory. The" @@ -1500,9 +1500,9 @@ "question": "What are best practices on garbage collection?", "options": [ "Some best practices for garbage collection in Java include:", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "a", "explanation": "Some best practices for garbage collection in Java include: JVM's garbage collector manage memory automatically and optimize memory usage based on the application's" @@ -1512,10 +1512,10 @@ "category": "Web Services", "question": "What are initialization blocks?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Initialization blocks in Java are used to initialize instance variables of a class. There are two types of", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "Initialization blocks in Java are used to initialize instance variables of a class. There are two types of initialization blocks in Java: instance initializer blocks and static initializer blocks.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "Initialization blocks in Java are used to initialize instance variables of a class. There are two types of initialization blocks in Java: instance initializer blocks and static initializer blocks." @@ -1525,10 +1525,10 @@ "category": "Web Services", "question": "What is a static initializer?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "A static initializer in Java is used to initialize static variables of a class. It is executed when the class is" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "A static initializer in Java is used to initialize static variables of a class. It is executed when the class is by the JVM and can be used to perform one-time initialization tasks." ], "answer": "d", "explanation": "A static initializer in Java is used to initialize static variables of a class. It is executed when the class is by the JVM and can be used to perform one-time initialization tasks. Static initializer blocks are defined with the" @@ -1538,10 +1538,10 @@ "category": "Web Services", "question": "What is an instance initializer block?", "options": [ - "An instance initializer block in Java is used to initialize instance variables of a class. It is executed when an", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "An instance initializer block in Java is used to initialize instance variables of a class. It is executed when an instance of the class is created and can be used to perform complex initialization logic.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "An instance initializer block in Java is used to initialize instance variables of a class. It is executed when an instance of the class is created and can be used to perform complex initialization logic. Instance initializer blocks" @@ -1551,10 +1551,10 @@ "category": "Web Services", "question": "What is tokenizing?", "options": [ - "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing" @@ -1564,10 +1564,10 @@ "category": "Design Patterns", "question": "Can you give an example of tokenizing?", "options": [ - "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing" @@ -1577,10 +1577,10 @@ "category": "Design Patterns", "question": "What is serialization?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Serialization in Java is the process of converting an object into a stream of bytes that can be saved to a file,", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "Serialization in Java is the process of converting an object into a stream of bytes that can be saved to a file, sent over a network, or stored in a database.", + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "Serialization in Java is the process of converting an object into a stream of bytes that can be saved to a file, sent over a network, or stored in a database. Serialization allows objects to be persisted and transferred between" @@ -1590,10 +1590,10 @@ "category": "Design Patterns", "question": "How do you serialize an object using serializable interface?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", "To serialize an object in Java using the `Serializable` interface, follow these steps:", - "Esta funcionalidad no existe en Java." + "This functionality does not exist in Java." ], "answer": "c", "explanation": "To serialize an object in Java using the `Serializable` interface, follow these steps: 1. Implement the `Serializable` interface in the class that you want to serialize. The `Serializable` interface is a" @@ -1603,10 +1603,10 @@ "category": "Design Patterns", "question": "How do you de-serialize in Java?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", "To deserialize an object in Java, follow these steps:", - "Java no soporta esta característica hasta versiones muy recientes." + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "To deserialize an object in Java, follow these steps: 1. Create an instance of the `ObjectInputStream` class and pass it a `FileInputStream` or other input stream to read" @@ -1616,10 +1616,10 @@ "category": "Design Patterns", "question": "What do you do if only parts of the object have to be serialized?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "If only parts of an object need to be serialized in Java, you can use the `transient` keyword to mark fields that" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "If only parts of an object need to be serialized in Java, you can use the `transient` keyword to mark fields that should not be serialized." ], "answer": "d", "explanation": "If only parts of an object need to be serialized in Java, you can use the `transient` keyword to mark fields that should not be serialized. The `transient` keyword tells the JVM to skip the serialization of the marked field and" @@ -1630,9 +1630,9 @@ "question": "How do you serialize a hierarchy of objects?", "options": [ "To serialize a hierarchy of objects in Java, follow these steps:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "To serialize a hierarchy of objects in Java, follow these steps: 1. Implement the `Serializable` interface in all classes in the hierarchy that need to be serialized. The" @@ -1642,10 +1642,10 @@ "category": "Design Patterns", "question": "Are the constructors in an object invoked when it is de-serialized?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "When an object is deserialized in Java, the constructors of the object are not invoked. Instead, the object is", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "When an object is deserialized in Java, the constructors of the object are not invoked. Instead, the object is restored from the serialized form, and its state and properties are reconstructed based on the serialized data.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "When an object is deserialized in Java, the constructors of the object are not invoked. Instead, the object is restored from the serialized form, and its state and properties are reconstructed based on the serialized data. The" @@ -1655,10 +1655,10 @@ "category": "Design Patterns", "question": "Are the values of static variables stored when an object is serialized?", "options": [ - "Esta funcionalidad no existe en Java.", + "This functionality does not exist in Java.", "When an object is serialized in Java, the values of static variables are not stored as part of the serialized object.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "b", "explanation": "When an object is serialized in Java, the values of static variables are not stored as part of the serialized object. Static variables are associated with the class itself rather than individual instances of the class, so they are not" @@ -1668,10 +1668,10 @@ "category": "Design Patterns", "question": "Why do we need collections in Java?", "options": [ - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to", - "Set permite elementos duplicados en Java." + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to organize and manage data in a structured and efficient manner.", + "Set allows duplicate elements in Java." ], "answer": "c", "explanation": "Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to organize and manage data in a structured and efficient manner. Collections offer a wide range of data structures and" @@ -1681,10 +1681,10 @@ "category": "Design Patterns", "question": "What are the important interfaces in the collection hierarchy?", "options": [ - "Set permite elementos duplicados en Java.", - "The Java Collections Framework provides a set of interfaces that define the core functionality of collections in", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Set allows duplicate elements in Java.", + "The Java Collections Framework provides a set of interfaces that define the core functionality of collections in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "b", "explanation": "The Java Collections Framework provides a set of interfaces that define the core functionality of collections in Java. Some of the important interfaces in the collection hierarchy include:" @@ -1694,10 +1694,10 @@ "category": "JVM and Memory Management", "question": "What are the important methods that are declared in the collection interface?", "options": [ - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java.", - "The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java.", + "The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the interface.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "c", "explanation": "The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the interface. Some of the important methods declared in the `Collection` interface include:" @@ -1707,10 +1707,10 @@ "category": "JVM and Memory Management", "question": "Can you explain briefly about the List interface?", "options": [ - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Set permite elementos duplicados en Java." + "Collections in Java can only store primitive types.", + "The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements that allows duplicates.", + "ArrayList and LinkedList have the same performance in all operations.", + "Set allows duplicate elements in Java." ], "answer": "b", "explanation": "The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements that allows duplicates. Lists maintain the insertion order of elements and provide methods for accessing, adding," @@ -1720,10 +1720,10 @@ "category": "JVM and Memory Management", "question": "Explain about ArrayList with an example?", "options": [ - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic", - "Set permite elementos duplicados en Java." + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic resizing, fast random access, and efficient insertion and deletion of elements.", + "Set allows duplicate elements in Java." ], "answer": "c", "explanation": "The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic resizing, fast random access, and efficient insertion and deletion of elements. `ArrayList` is part of the Java" @@ -1733,10 +1733,10 @@ "category": "JVM and Memory Management", "question": "Can an ArrayList have duplicate elements?", "options": [ - "Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java." + "Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an `ArrayList` allows elements to be added multiple times.", + "ArrayList and LinkedList have the same performance in all operations.", + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java." ], "answer": "a", "explanation": "Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an `ArrayList` allows elements to be added multiple times. This means that an `ArrayList` can contain duplicate elements" @@ -1746,10 +1746,10 @@ "category": "JVM and Memory Management", "question": "How do you iterate around an ArrayList using iterator?", "options": [ - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the" + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the `ArrayList` class." ], "answer": "d", "explanation": "To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the `ArrayList` class. The `iterator` method returns an `Iterator` object that can be used to traverse the elements in the" @@ -1759,10 +1759,10 @@ "category": "JVM and Memory Management", "question": "How do you sort an ArrayList?", "options": [ - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections`", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Set permite elementos duplicados en Java." + "Collections in Java can only store primitive types.", + "To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections` class. The `Collections.", + "ArrayList and LinkedList have the same performance in all operations.", + "Set allows duplicate elements in Java." ], "answer": "b", "explanation": "To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections` class. The `Collections.sort` method sorts the elements in the list in ascending order based on their natural order or" @@ -1772,10 +1772,10 @@ "category": "JVM and Memory Management", "question": "How do you sort elements in an ArrayList using comparable interface?", "options": [ - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable`" + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable` interface in the class of the elements you want to sort." ], "answer": "d", "explanation": "To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable` interface in the class of the elements you want to sort. The `Comparable` interface defines a `compareTo` method that" @@ -1785,10 +1785,10 @@ "category": "JVM and Memory Management", "question": "How do you sort elements in an ArrayList using comparator interface?", "options": [ - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator" + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator class that implements the `Comparator` interface." ], "answer": "d", "explanation": "To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator class that implements the `Comparator` interface. The `Comparator` interface defines a `compare` method that compares" @@ -1798,10 +1798,10 @@ "category": "JVM and Memory Management", "question": "What is vector class? How is it different from an ArrayList?", "options": [ - "The `Vector` class in Java is a legacy collection class that is similar to an `ArrayList` but is synchronized. This", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "The `Vector` class in Java is a legacy collection class that is similar to an `ArrayList` but is synchronized. This means that access to a `Vector` is thread-safe, making it suitable for use in multi-threaded environments.", + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "a", "explanation": "The `Vector` class in Java is a legacy collection class that is similar to an `ArrayList` but is synchronized. This means that access to a `Vector` is thread-safe, making it suitable for use in multi-threaded environments. The" @@ -1811,10 +1811,10 @@ "category": "JVM and Memory Management", "question": "What is linkedList? What interfaces does it implement? How is it different from an ArrayList?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "The `LinkedList` class in Java is a doubly-linked list implementation of the `List` interface. It provides efficient", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java." + "ArrayList and LinkedList have the same performance in all operations.", + "The `LinkedList` class in Java is a doubly-linked list implementation of the `List` interface. It provides efficient insertion and deletion of elements at the beginning, middle, and end of the list.", + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java." ], "answer": "b", "explanation": "The `LinkedList` class in Java is a doubly-linked list implementation of the `List` interface. It provides efficient insertion and deletion of elements at the beginning, middle, and end of the list. `LinkedList` implements the `List`," @@ -1824,10 +1824,10 @@ "category": "Testing", "question": "Can you briefly explain about the Set interface?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "The `Set` interface in Java extends the `Collection` interface and represents a collection of unique elements with no", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos." + "ArrayList and LinkedList have the same performance in all operations.", + "The `Set` interface in Java extends the `Collection` interface and represents a collection of unique elements with no duplicates. Sets do not allow duplicate elements, and they maintain no specific order of elements.", + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types." ], "answer": "b", "explanation": "The `Set` interface in Java extends the `Collection` interface and represents a collection of unique elements with no duplicates. Sets do not allow duplicate elements, and they maintain no specific order of elements. The `Set`" @@ -1837,10 +1837,10 @@ "category": "Testing", "question": "What are the important interfaces related to the Set interface?", "options": [ - "Set permite elementos duplicados en Java.", - "The `Set` interface in Java is related to several other interfaces in the Java Collections Framework that provide", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Set allows duplicate elements in Java.", + "The `Set` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with sets of elements.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "b", "explanation": "The `Set` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with sets of elements. Some of the important interfaces related to the `Set`" @@ -1850,10 +1850,10 @@ "category": "Testing", "question": "What is the difference between Set and sortedSet interfaces?", "options": [ - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java.", - "The `Set` and `SortedSet` interfaces in Java are related interfaces in the Java Collections Framework that represent", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java.", + "The `Set` and `SortedSet` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of unique elements with no duplicates.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "c", "explanation": "The `Set` and `SortedSet` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of unique elements with no duplicates. The main difference between `Set` and `SortedSet` is the ordering" @@ -1863,10 +1863,10 @@ "category": "Testing", "question": "Can you give examples of classes that implement the Set interface?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "The `Set` interface in Java is implemented by several classes in the Java Collections Framework that provide", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos." + "ArrayList and LinkedList have the same performance in all operations.", + "The `Set` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of sets.", + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types." ], "answer": "b", "explanation": "The `Set` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of sets. Some of the common classes that implement the `Set` interface include:" @@ -1876,10 +1876,10 @@ "category": "Testing", "question": "What is a HashSet? How is it different from a TreeSet?", "options": [ - "`HashSet` and `TreeSet` are two common implementations of the `Set` interface in Java that provide different", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java." + "`HashSet` and `TreeSet` are two common implementations of the `Set` interface in Java that provide different characteristics for working with sets of elements.", + "ArrayList and LinkedList have the same performance in all operations.", + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java." ], "answer": "a", "explanation": "`HashSet` and `TreeSet` are two common implementations of the `Set` interface in Java that provide different characteristics for working with sets of elements. The main differences between `HashSet` and `TreeSet` include:" @@ -1889,10 +1889,10 @@ "category": "Testing", "question": "What is a linkedHashSet? How is different from a HashSet?", "options": [ - "`LinkedHashSet` is a class in Java that extends `HashSet` and maintains the order of elements based on their insertion", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Set permite elementos duplicados en Java." + "`LinkedHashSet` is a class in Java that extends `HashSet` and maintains the order of elements based on their insertion order.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "Set allows duplicate elements in Java." ], "answer": "a", "explanation": "`LinkedHashSet` is a class in Java that extends `HashSet` and maintains the order of elements based on their insertion order. Unlike `HashSet`, which does not maintain the order of elements, `LinkedHashSet` provides predictable iteration" @@ -1903,9 +1903,9 @@ "question": "What is a TreeSet? How is different from a HashSet?", "options": [ "`TreeSet` is a class in Java that implements the `SortedSet` interface using a red-black tree data structure.", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "a", "explanation": "`TreeSet` is a class in Java that implements the `SortedSet` interface using a red-black tree data structure. maintains the order of elements based on their natural ordering or a custom comparator, allowing elements to be sorted" @@ -1915,10 +1915,10 @@ "category": "Testing", "question": "Can you give examples of implementations of navigableSet?", "options": [ - "The `NavigableSet` interface in Java is implemented by the `TreeSet` and `ConcurrentSkipListSet` classes in the Java", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Set permite elementos duplicados en Java." + "The `NavigableSet` interface in Java is implemented by the `TreeSet` and `ConcurrentSkipListSet` classes in the Java Collections Framework.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "Set allows duplicate elements in Java." ], "answer": "a", "explanation": "The `NavigableSet` interface in Java is implemented by the `TreeSet` and `ConcurrentSkipListSet` classes in the Java Collections Framework. These classes provide implementations of navigable sets that support navigation methods for" @@ -1928,10 +1928,10 @@ "category": "Testing", "question": "Explain briefly about Queue interface?", "options": [ - "The `Queue` interface in Java represents a collection of elements in a specific order for processing. Queues follow", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "The `Queue` interface in Java represents a collection of elements in a specific order for processing.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "The `Queue` interface in Java represents a collection of elements in a specific order for processing. Queues follow the First-In-First-Out (FIFO) order, meaning that elements are added to the end of the queue and removed from the" @@ -1941,10 +1941,10 @@ "category": "Testing", "question": "What are the important interfaces related to the Queue interface?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "The `Queue` interface in Java is related to several other interfaces in the Java Collections Framework that provide", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "The `Queue` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with queues of elements.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "The `Queue` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with queues of elements. Some of the important interfaces related to the `Queue`" @@ -1954,10 +1954,10 @@ "category": "Best Practices", "question": "Explain about the Deque interface?", "options": [ - "The `Deque` interface in Java represents a double-ended queue that allows elements to be added or removed from both", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "The `Deque` interface in Java represents a double-ended queue that allows elements to be added or removed from both ends.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "The `Deque` interface in Java represents a double-ended queue that allows elements to be added or removed from both ends. Deques provide methods for adding, removing, and accessing elements at the front and back of the queue, making" @@ -1967,10 +1967,10 @@ "category": "Best Practices", "question": "Explain the BlockingQueue interface?", "options": [ - "The `BlockingQueue` interface in Java represents a queue that supports blocking operations for adding and removing", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "The `BlockingQueue` interface in Java represents a queue that supports blocking operations for adding and removing elements.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "The `BlockingQueue` interface in Java represents a queue that supports blocking operations for adding and removing elements. Blocking queues provide methods for waiting for elements to become available or space to become available in" @@ -1980,10 +1980,10 @@ "category": "Best Practices", "question": "What is a priorityQueue? How is it different from a normal queue?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "`PriorityQueue` is a class in Java that implements the `Queue` interface using a priority heap data structure. Unlike" + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "`PriorityQueue` is a class in Java that implements the `Queue` interface using a priority heap data structure." ], "answer": "d", "explanation": "`PriorityQueue` is a class in Java that implements the `Queue` interface using a priority heap data structure. Unlike a normal queue, which follows the First-In-First-Out (FIFO) order, a `PriorityQueue` maintains elements in a priority" @@ -1993,10 +1993,10 @@ "category": "Best Practices", "question": "Can you give example implementations of the BlockingQueue interface?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "The `BlockingQueue` interface in Java is implemented by several classes in the Java Collections Framework that provide" + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "The `BlockingQueue` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of blocking queues." ], "answer": "d", "explanation": "The `BlockingQueue` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of blocking queues. Some examples of implementations of `BlockingQueue` include:" @@ -2006,10 +2006,10 @@ "category": "Best Practices", "question": "Can you briefly explain about the Map interface?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "The `Map` interface in Java represents a collection of key-value pairs where each key is unique and maps to a single", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "The `Map` interface in Java represents a collection of key-value pairs where each key is unique and maps to a single value.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "The `Map` interface in Java represents a collection of key-value pairs where each key is unique and maps to a single value. Maps provide methods for adding, removing, and accessing key-value pairs, as well as for checking the presence" @@ -2019,10 +2019,10 @@ "category": "Best Practices", "question": "What is difference between Map and SortedMap?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "The `Map` and `SortedMap` interfaces in Java are related interfaces in the Java Collections Framework that represent" + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "The `Map` and `SortedMap` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of key-value pairs." ], "answer": "d", "explanation": "The `Map` and `SortedMap` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of key-value pairs. The main difference between `Map` and `SortedMap` is the ordering of keys:" @@ -2032,10 +2032,10 @@ "category": "Best Practices", "question": "What is a HashMap? How is it different from a TreeMap?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "`HashMap` and `TreeMap` are two common implementations of the `Map` interface in Java that provide different", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "`HashMap` and `TreeMap` are two common implementations of the `Map` interface in Java that provide different characteristics for working with key-value pairs.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "`HashMap` and `TreeMap` are two common implementations of the `Map` interface in Java that provide different characteristics for working with key-value pairs. The main differences between `HashMap` and `TreeMap` include:" @@ -2045,10 +2045,10 @@ "category": "Best Practices", "question": "What are the different methods in a Hash Map?", "options": [ - "The `HashMap` class in Java provides a variety of methods for working with key-value pairs stored in a hash table", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "The `HashMap` class in Java provides a variety of methods for working with key-value pairs stored in a hash table data structure.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "The `HashMap` class in Java provides a variety of methods for working with key-value pairs stored in a hash table data structure. Some of the common methods provided by the `HashMap` class include:" @@ -2058,10 +2058,10 @@ "category": "Best Practices", "question": "What is a TreeMap? How is different from a HashMap?", "options": [ - "Esta funcionalidad no existe en Java.", + "This functionality does not exist in Java.", "`TreeMap` is a class in Java that implements the `SortedMap` interface using a red-black tree data structure.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "b", "explanation": "`TreeMap` is a class in Java that implements the `SortedMap` interface using a red-black tree data structure. `TreeMap` maintains the order of keys based on their natural ordering or a custom comparator, allowing keys" @@ -2072,9 +2072,9 @@ "question": "Can you give an example of implementation of NavigableMap interface?", "options": [ "The `NavigableMap` interface in Java is implemented by the `TreeMap` class in the Java Collections Framework.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "The `NavigableMap` interface in Java is implemented by the `TreeMap` class in the Java Collections Framework. provides a navigable map of key-value pairs sorted in a specific order, allowing elements to be accessed, added, and" @@ -2084,10 +2084,10 @@ "category": "Performance Optimization", "question": "What are the static methods present in the collections class?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Set permite elementos duplicados en Java.", - "The `Collections` class in Java provides a variety of static methods for working with collections in the Java", - "Las colecciones en Java solo pueden almacenar tipos primitivos." + "ArrayList and LinkedList have the same performance in all operations.", + "Set allows duplicate elements in Java.", + "The `Collections` class in Java provides a variety of static methods for working with collections in the Java Collections Framework.", + "Collections in Java can only store primitive types." ], "answer": "c", "explanation": "The `Collections` class in Java provides a variety of static methods for working with collections in the Java Collections Framework. Some of the common static methods provided by the `Collections` class include:" @@ -2097,10 +2097,10 @@ "category": "Performance Optimization", "question": "What is the difference between synchronized and concurrent collections in Java?", "options": [ - "Synchronized collections and concurrent collections in Java are two approaches to handling thread safety in", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Synchronized collections and concurrent collections in Java are two approaches to handling thread safety in multi-threaded applications.", + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "a", "explanation": "Synchronized collections and concurrent collections in Java are two approaches to handling thread safety in multi-threaded applications. The main difference between synchronized and concurrent collections is how they achieve" @@ -2110,10 +2110,10 @@ "category": "Performance Optimization", "question": "Explain about the new concurrent collections in Java?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Java provides a set of concurrent collections in the `java.util.concurrent` package that are designed for high", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos." + "ArrayList and LinkedList have the same performance in all operations.", + "Java provides a set of concurrent collections in the `java.util.concurrent` package that are designed for high concurrency and thread safety in multi-threaded applications.", + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types." ], "answer": "b", "explanation": "Java provides a set of concurrent collections in the `java.util.concurrent` package that are designed for high concurrency and thread safety in multi-threaded applications. Some of the new concurrent collections introduced in" @@ -2123,10 +2123,10 @@ "category": "Performance Optimization", "question": "Explain about copyOnWrite concurrent collections approach?", "options": [ - "The copy-on-write (COW) approach is a concurrency control technique used in Java to provide thread-safe access to", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos." + "The copy-on-write (COW) approach is a concurrency control technique used in Java to provide thread-safe access to collections.", + "ArrayList and LinkedList have the same performance in all operations.", + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types." ], "answer": "a", "explanation": "The copy-on-write (COW) approach is a concurrency control technique used in Java to provide thread-safe access to collections. In the copy-on-write approach, a new copy of the collection is created whenever a modification is made," @@ -2136,10 +2136,10 @@ "category": "Performance Optimization", "question": "What is compareAndSwap approach?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "The compare-and-swap (CAS) operation is an atomic operation used in concurrent programming to implement lock-free" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "The compare-and-swap (CAS) operation is an atomic operation used in concurrent programming to implement lock-free algorithms and data structures." ], "answer": "d", "explanation": "The compare-and-swap (CAS) operation is an atomic operation used in concurrent programming to implement lock-free algorithms and data structures. The CAS operation allows a thread to update a value in memory if it matches an" @@ -2149,10 +2149,10 @@ "category": "Performance Optimization", "question": "What is a lock? How is it different from using synchronized approach?", "options": [ - "Los threads en Java no pueden compartir memoria.", - "Java no soporta programación concurrente nativa.", - "Synchronized solo funciona con métodos estáticos.", - "A lock is a synchronization mechanism used in Java to control access to shared resources in multi-threaded" + "Threads in Java cannot share memory.", + "Java does not support native concurrent programming.", + "Synchronized only works with static methods.", + "A lock is a synchronization mechanism used in Java to control access to shared resources in multi-threaded applications." ], "answer": "d", "explanation": "A lock is a synchronization mechanism used in Java to control access to shared resources in multi-threaded applications. Locks provide a way to coordinate the execution of threads and ensure that only one thread can access a" @@ -2162,10 +2162,10 @@ "category": "Performance Optimization", "question": "What is initial capacity of a Java collection?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "The initial capacity of a Java collection refers to the number of elements that the collection can initially store", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java." + "ArrayList and LinkedList have the same performance in all operations.", + "The initial capacity of a Java collection refers to the number of elements that the collection can initially store before resizing is required.", + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java." ], "answer": "b", "explanation": "The initial capacity of a Java collection refers to the number of elements that the collection can initially store before resizing is required. When a collection is created, an initial capacity is specified to allocate memory for" @@ -2175,10 +2175,10 @@ "category": "Performance Optimization", "question": "What is load factor?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "The load factor of a Java collection is a value that determines when the collection should be resized to accommodate" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "The load factor of a Java collection is a value that determines when the collection should be resized to accommodate additional elements." ], "answer": "d", "explanation": "The load factor of a Java collection is a value that determines when the collection should be resized to accommodate additional elements. The load factor is used in hash-based collections like `HashMap` and `HashSet` to control the" @@ -2188,10 +2188,10 @@ "category": "Performance Optimization", "question": "When does a Java collection throw `UnsupportedOperationException`?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "A Java collection throws an `UnsupportedOperationException` when an operation is not supported by the collection. This", - "Set permite elementos duplicados en Java." + "ArrayList and LinkedList have the same performance in all operations.", + "Collections in Java can only store primitive types.", + "A Java collection throws an `UnsupportedOperationException` when an operation is not supported by the collection.", + "Set allows duplicate elements in Java." ], "answer": "c", "explanation": "A Java collection throws an `UnsupportedOperationException` when an operation is not supported by the collection. This exception is typically thrown when an attempt is made to modify an immutable or read-only collection, or when an" @@ -2201,10 +2201,10 @@ "category": "Performance Optimization", "question": "What is difference between fail-safe and fail-fast iterators?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Fail-safe and fail-fast iterators are two different approaches to handling concurrent modifications to collections in", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "Fail-safe and fail-fast iterators are two different approaches to handling concurrent modifications to collections in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "Fail-safe and fail-fast iterators are two different approaches to handling concurrent modifications to collections in Java. The main difference between fail-safe and fail-fast iterators is how they respond to modifications made to a" @@ -2214,10 +2214,10 @@ "category": "Security", "question": "What are atomic operations in Java?", "options": [ - "Atomic operations in Java are operations that are performed atomically, meaning that they are indivisible and", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "Atomic operations in Java are operations that are performed atomically, meaning that they are indivisible and uninterruptible.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Atomic operations in Java are operations that are performed atomically, meaning that they are indivisible and uninterruptible. Atomic operations are used in concurrent programming to ensure that shared data is accessed and" @@ -2227,10 +2227,10 @@ "category": "Security", "question": "What is BlockingQueue in Java?", "options": [ - "A `BlockingQueue` in Java is a type of queue that supports blocking operations for adding and removing elements. A", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "A `BlockingQueue` in Java is a type of queue that supports blocking operations for adding and removing elements.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "A `BlockingQueue` in Java is a type of queue that supports blocking operations for adding and removing elements. A blocking queue provides methods for waiting for elements to become available or space to become available in the" @@ -2240,10 +2240,10 @@ "category": "Security", "question": "What are Generics? Why do we need Generics?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics" + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types." ], "answer": "d", "explanation": "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics provide a way to create reusable and type-safe code by allowing classes and methods to work with generic types that" @@ -2253,10 +2253,10 @@ "category": "Security", "question": "Why do we need Generics? Can you give an example of how Generics make a program more flexible?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "b", "explanation": "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics provide a way to create reusable and type-safe code by allowing classes and methods to work with generic types that" @@ -2266,10 +2266,10 @@ "category": "Security", "question": "How do you declare a generic class?", "options": [ - "A generic class in Java is declared by specifying one or more type parameters in angle brackets (`<>`) after the class", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "A generic class in Java is declared by specifying one or more type parameters in angle brackets (`<>`) after the class name.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "A generic class in Java is declared by specifying one or more type parameters in angle brackets (`<>`) after the class name. The type parameters are used to represent generic types that can be specified at compile time when creating" @@ -2279,10 +2279,10 @@ "category": "Security", "question": "What are the restrictions in using generic type that is declared in a class declaration?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "When using a generic type that is declared in a class declaration, there are some restrictions and limitations that" + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "When using a generic type that is declared in a class declaration, there are some restrictions and limitations that must be considered:" ], "answer": "d", "explanation": "When using a generic type that is declared in a class declaration, there are some restrictions and limitations that must be considered:" @@ -2292,10 +2292,10 @@ "category": "Security", "question": "How can we restrict Generics to a subclass of particular class?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "In Java, it is possible to restrict generics to a subclass of a particular class by using bounded type parameters. By", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "In Java, it is possible to restrict generics to a subclass of a particular class by using bounded type parameters.", + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "In Java, it is possible to restrict generics to a subclass of a particular class by using bounded type parameters. By specifying an upper bound for the generic type parameter, you can restrict the types that can be used with the generic" @@ -2305,10 +2305,10 @@ "category": "Security", "question": "How can we restrict Generics to a super class of particular class?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", + "This is a feature exclusive to other programming languages.", "In Java, it is possible to restrict generics to a super class of a particular class by using bounded type parameters.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "In Java, it is possible to restrict generics to a super class of a particular class by using bounded type parameters. By specifying a lower bound for the generic type parameter, you can restrict the types that can be used with the" @@ -2318,10 +2318,10 @@ "category": "Security", "question": "Can you give an example of a generic method?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "A generic method in Java is a method that is parameterized by one or more types. Generic methods provide a way to" + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "A generic method in Java is a method that is parameterized by one or more types. Generic methods provide a way to create methods that can work with different types of arguments without sacrificing type safety." ], "answer": "d", "explanation": "A generic method in Java is a method that is parameterized by one or more types. Generic methods provide a way to create methods that can work with different types of arguments without sacrificing type safety. Here is an example of" @@ -2331,10 +2331,10 @@ "category": "Security", "question": "What is the need for threads in Java?", "options": [ - "Synchronized solo funciona con métodos estáticos.", - "Threads in Java are used to achieve concurrent execution of tasks within a single process. Threads allow multiple", - "Java no soporta programación concurrente nativa.", - "Los threads en Java no pueden compartir memoria." + "Synchronized only works with static methods.", + "Threads in Java are used to achieve concurrent execution of tasks within a single process.", + "Java does not support native concurrent programming.", + "Threads in Java cannot share memory." ], "answer": "b", "explanation": "Threads in Java are used to achieve concurrent execution of tasks within a single process. Threads allow multiple operations to be performed simultaneously, enabling applications to take advantage of multi-core processors and" @@ -2345,9 +2345,9 @@ "question": "How do you create a thread?", "options": [ "There are two main ways to create a thread in Java:", - "Java no soporta programación concurrente nativa.", - "Synchronized solo funciona con métodos estáticos.", - "Los threads en Java no pueden compartir memoria." + "Java does not support native concurrent programming.", + "Synchronized only works with static methods.", + "Threads in Java cannot share memory." ], "answer": "a", "explanation": "There are two main ways to create a thread in Java: `run` method. This approach allows you to define the behavior of the thread by implementing the `run` method." @@ -2357,10 +2357,10 @@ "category": "Frameworks", "question": "How do you create a thread by extending thread class?", "options": [ - "You can create a thread in Java by extending the `Thread` class and overriding the `run` method. This approach allows", - "Los threads en Java no pueden compartir memoria.", - "Synchronized solo funciona con métodos estáticos.", - "Java no soporta programación concurrente nativa." + "You can create a thread in Java by extending the `Thread` class and overriding the `run` method. This approach allows you to define the behavior of the thread by implementing the `run` method.", + "Threads in Java cannot share memory.", + "Synchronized only works with static methods.", + "Java does not support native concurrent programming." ], "answer": "a", "explanation": "You can create a thread in Java by extending the `Thread` class and overriding the `run` method. This approach allows you to define the behavior of the thread by implementing the `run` method. Here is an example:" @@ -2370,10 +2370,10 @@ "category": "Frameworks", "question": "How do you create a thread by implementing runnable interface?", "options": [ - "Java no soporta programación concurrente nativa.", - "Los threads en Java no pueden compartir memoria.", - "You can create a thread in Java by implementing the `Runnable` interface and passing an instance of the class to the", - "Synchronized solo funciona con métodos estáticos." + "Java does not support native concurrent programming.", + "Threads in Java cannot share memory.", + "You can create a thread in Java by implementing the `Runnable` interface and passing an instance of the class to the `Thread` constructor.", + "Synchronized only works with static methods." ], "answer": "c", "explanation": "You can create a thread in Java by implementing the `Runnable` interface and passing an instance of the class to the `Thread` constructor. This approach separates the thread logic from the class definition and allows for better code" @@ -2383,10 +2383,10 @@ "category": "Frameworks", "question": "How do you run a thread in Java?", "options": [ - "Los threads en Java no pueden compartir memoria.", + "Threads in Java cannot share memory.", "There are two main ways to run a thread in Java:", - "Java no soporta programación concurrente nativa.", - "Synchronized solo funciona con métodos estáticos." + "Java does not support native concurrent programming.", + "Synchronized only works with static methods." ], "answer": "b", "explanation": "There are two main ways to run a thread in Java: method. This approach allows you to define the behavior of the thread by implementing the `run` method. You can" @@ -2396,9 +2396,9 @@ "category": "Frameworks", "question": "What are the different states of a thread?", "options": [ - "Los threads en Java no pueden compartir memoria.", - "Synchronized solo funciona con métodos estáticos.", - "Java no soporta programación concurrente nativa.", + "Threads in Java cannot share memory.", + "Synchronized only works with static methods.", + "Java does not support native concurrent programming.", "Threads in Java can be in different states during their lifecycle. The main states of a thread in Java are:" ], "answer": "d", @@ -2409,9 +2409,9 @@ "category": "Frameworks", "question": "What is priority of a thread? How do you change the priority of a thread?", "options": [ - "Java no soporta programación concurrente nativa.", - "Los threads en Java no pueden compartir memoria.", - "Synchronized solo funciona con métodos estáticos.", + "Java does not support native concurrent programming.", + "Threads in Java cannot share memory.", + "Synchronized only works with static methods.", "The priority of a thread in Java is an integer value that determines the scheduling priority of the thread." ], "answer": "d", @@ -2422,10 +2422,10 @@ "category": "Frameworks", "question": "What is ExecutorService?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "`ExecutorService` is an interface in the Java Concurrency API that provides a higher-level abstraction for managing" + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "`ExecutorService` is an interface in the Java Concurrency API that provides a higher-level abstraction for managing and executing tasks asynchronously using a pool of threads." ], "answer": "d", "explanation": "`ExecutorService` is an interface in the Java Concurrency API that provides a higher-level abstraction for managing and executing tasks asynchronously using a pool of threads. `ExecutorService` extends the `Executor` interface and" @@ -2435,10 +2435,10 @@ "category": "Frameworks", "question": "Can you give an example for ExecutorService?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", + "This is a feature exclusive to other programming languages.", "Here is an example of using `ExecutorService` to execute tasks asynchronously in Java:", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "Here is an example of using `ExecutorService` to execute tasks asynchronously in Java: import java.util.concurrent.ExecutorService;" @@ -2448,10 +2448,10 @@ "category": "Frameworks", "question": "Explain different ways of creating executor services", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "There are several ways to create `ExecutorService` instances in Java using the `Executors` utility class. Some of the", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "There are several ways to create `ExecutorService` instances in Java using the `Executors` utility class.", + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "There are several ways to create `ExecutorService` instances in Java using the `Executors` utility class. Some of the common ways to create `ExecutorService` instances include:" @@ -2461,10 +2461,10 @@ "category": "Frameworks", "question": "How do you check whether an ExecutionService task executed successfully?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "The `Future` interface in the Java Concurrency API provides a way to check whether an `ExecutorService` task executed" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "The `Future` interface in the Java Concurrency API provides a way to check whether an `ExecutorService` task executed successfully and retrieve the result of the task." ], "answer": "d", "explanation": "The `Future` interface in the Java Concurrency API provides a way to check whether an `ExecutorService` task executed successfully and retrieve the result of the task. The `Future` interface represents the result of an asynchronous" @@ -2474,10 +2474,10 @@ "category": "Advanced Topics", "question": "What is callable? How do you execute a callable from executionservice?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "`Callable` is a functional interface in the Java Concurrency API that represents a task that can be executed", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "`Callable` is a functional interface in the Java Concurrency API that represents a task that can be executed asynchronously and return a result.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "`Callable` is a functional interface in the Java Concurrency API that represents a task that can be executed asynchronously and return a result. `Callable` is similar to `Runnable`, but it can return a result or throw an" @@ -2487,10 +2487,10 @@ "category": "Advanced Topics", "question": "What is synchronization of threads?", "options": [ - "Synchronized solo funciona con métodos estáticos.", - "Los threads en Java no pueden compartir memoria.", + "Synchronized only works with static methods.", + "Threads in Java cannot share memory.", "Synchronization in Java is a mechanism that allows multiple threads to coordinate access to shared resources.", - "Java no soporta programación concurrente nativa." + "Java does not support native concurrent programming." ], "answer": "c", "explanation": "Synchronization in Java is a mechanism that allows multiple threads to coordinate access to shared resources." @@ -2501,9 +2501,9 @@ "question": "Can you give an example of a synchronized block?", "options": [ "Here is an example of using a synchronized block in Java to synchronize access to a shared resource:", - "Los threads en Java no pueden compartir memoria.", - "Synchronized solo funciona con métodos estáticos.", - "Java no soporta programación concurrente nativa." + "Threads in Java cannot share memory.", + "Synchronized only works with static methods.", + "Java does not support native concurrent programming." ], "answer": "a", "explanation": "Here is an example of using a synchronized block in Java to synchronize access to a shared resource: public class Counter {" @@ -2513,10 +2513,10 @@ "category": "Advanced Topics", "question": "Can a static method be synchronized?", "options": [ - "Yes, a static method can be synchronized in Java. When a static method is synchronized, the lock acquired is on the", - "Los threads en Java no pueden compartir memoria.", - "Synchronized solo funciona con métodos estáticos.", - "Java no soporta programación concurrente nativa." + "Yes, a static method can be synchronized in Java. When a static method is synchronized, the lock acquired is on the class object associated with the method's class.", + "Threads in Java cannot share memory.", + "Synchronized only works with static methods.", + "Java does not support native concurrent programming." ], "answer": "a", "explanation": "Yes, a static method can be synchronized in Java. When a static method is synchronized, the lock acquired is on the class object associated with the method's class. This means that only one thread can execute the synchronized static" @@ -2526,10 +2526,10 @@ "category": "Advanced Topics", "question": "What is the use of join method in threads?", "options": [ - "The `join` method in Java is used to wait for a thread to complete its execution before continuing with the current", - "Los threads en Java no pueden compartir memoria.", - "Synchronized solo funciona con métodos estáticos.", - "Java no soporta programación concurrente nativa." + "The `join` method in Java is used to wait for a thread to complete its execution before continuing with the current thread.", + "Threads in Java cannot share memory.", + "Synchronized only works with static methods.", + "Java does not support native concurrent programming." ], "answer": "a", "explanation": "The `join` method in Java is used to wait for a thread to complete its execution before continuing with the current thread. When the `join` method is called on a thread, the current thread will block and wait for the specified thread" @@ -2539,10 +2539,10 @@ "category": "Advanced Topics", "question": "Describe a few other important methods in threads?", "options": [ - "Synchronized solo funciona con métodos estáticos.", + "Synchronized only works with static methods.", "Some other important methods in Java threads include:", - "Los threads en Java no pueden compartir memoria.", - "Java no soporta programación concurrente nativa." + "Threads in Java cannot share memory.", + "Java does not support native concurrent programming." ], "answer": "b", "explanation": "Some other important methods in Java threads include:" @@ -2552,10 +2552,10 @@ "category": "Advanced Topics", "question": "What is a deadlock? How can you avoid a deadlock?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "A deadlock is a situation in multi-threaded programming where two or more threads are blocked forever, waiting for" + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "A deadlock is a situation in multi-threaded programming where two or more threads are blocked forever, waiting for other to release resources that they need to continue execution." ], "answer": "d", "explanation": "A deadlock is a situation in multi-threaded programming where two or more threads are blocked forever, waiting for other to release resources that they need to continue execution. Deadlocks can occur when multiple threads acquire" @@ -2566,9 +2566,9 @@ "question": "What are the important methods in Java for inter", "options": [ "Java provides several methods for inter-thread communication, including:", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Java provides several methods for inter-thread communication, including: threads to wait for a condition to be met and notify other threads when the condition is satisfied." @@ -2578,10 +2578,10 @@ "category": "Advanced Topics", "question": "What is the use of wait method?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "The `wait` method in Java is used to make a thread wait until a condition is met. When a thread calls the `wait`" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "The `wait` method in Java is used to make a thread wait until a condition is met." ], "answer": "d", "explanation": "The `wait` method in Java is used to make a thread wait until a condition is met. When a thread calls the `wait` it releases the lock it holds and enters a waiting state until another thread calls the `notify` or `notifyAll` method" @@ -2591,10 +2591,10 @@ "category": "Advanced Topics", "question": "What is the use of notify method?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "The `notify` method in Java is used to wake up a single thread that is waiting on the same object. When a thread calls" + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "The `notify` method in Java is used to wake up a single thread that is waiting on the same object. When a thread calls the `notify` method, it notifies a single waiting thread to wake up and continue execution." ], "answer": "d", "explanation": "The `notify` method in Java is used to wake up a single thread that is waiting on the same object. When a thread calls the `notify` method, it notifies a single waiting thread to wake up and continue execution. The `notify` method is" @@ -2604,10 +2604,10 @@ "category": "Enterprise Development", "question": "What is the use of notifyall method?", "options": [ - "The `notifyAll` method in Java is used to wake up all threads that are waiting on the same object. When a thread calls", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "The `notifyAll` method in Java is used to wake up all threads that are waiting on the same object.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "The `notifyAll` method in Java is used to wake up all threads that are waiting on the same object. When a thread calls the `notifyAll` method, it notifies all waiting threads to wake up and" @@ -2617,10 +2617,10 @@ "category": "Enterprise Development", "question": "Can you write a synchronized program with wait and notify methods?", "options": [ - "Java no soporta programación concurrente nativa.", - "Synchronized solo funciona con métodos estáticos.", + "Java does not support native concurrent programming.", + "Synchronized only works with static methods.", "Here is an example of a synchronized program using the `wait` and `notify` methods for inter-thread communication in", - "Los threads en Java no pueden compartir memoria." + "Threads in Java cannot share memory." ], "answer": "c", "explanation": "Here is an example of a synchronized program using the `wait` and `notify` methods for inter-thread communication in" @@ -2630,10 +2630,10 @@ "category": "Enterprise Development", "question": "What is functional programming? How is it different from object", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data. Functional programming focuses on the use of pure functions, higher-order" @@ -2643,10 +2643,10 @@ "category": "Enterprise Development", "question": "Can you give an example of functional programming?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data. Functional programming focuses on the use of pure functions, higher-order" @@ -2656,10 +2656,10 @@ "category": "Enterprise Development", "question": "Explain about streams with an example? what are intermediate operations in streams?", "options": [ - "Streams in Java provide a way to process collections of elements in a functional and declarative manner. Streams", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Streams in Java provide a way to process collections of elements in a functional and declarative manner.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "Streams in Java provide a way to process collections of elements in a functional and declarative manner. Streams enable you to perform operations like filtering, mapping, sorting, and reducing on collections using a fluent and" @@ -2669,10 +2669,10 @@ "category": "Enterprise Development", "question": "What are terminal operations in streams?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Terminal operations in streams are operations that produce a result or a side effect and terminate the stream" + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "Terminal operations in streams are operations that produce a result or a side effect and terminate the stream processing." ], "answer": "d", "explanation": "Terminal operations in streams are operations that produce a result or a side effect and terminate the stream processing. Terminal operations are the final step in a stream pipeline and trigger the execution of intermediate" @@ -2682,10 +2682,10 @@ "category": "Enterprise Development", "question": "What are method references? How are they used in streams?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Method references in Java provide a way to refer to methods or constructors without invoking them. Method references" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "Method references in Java provide a way to refer to methods or constructors without invoking them. Method references are shorthand syntax for lambda expressions that call a single method or constructor." ], "answer": "d", "explanation": "Method references in Java provide a way to refer to methods or constructors without invoking them. Method references are shorthand syntax for lambda expressions that call a single method or constructor. Method references can be used in" @@ -2695,10 +2695,10 @@ "category": "Enterprise Development", "question": "What are lambda expressions? How are they used in streams?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables." ], "answer": "d", "explanation": "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent" @@ -2708,10 +2708,10 @@ "category": "Enterprise Development", "question": "Can you give an example of lambda expression?", "options": [ - "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent" @@ -2721,10 +2721,10 @@ "category": "Modern Java Features", "question": "Can you explain the relationship between lambda expression and functional interfaces?", "options": [ - "Lambda expressions in Java are closely related to functional interfaces, which are interfaces that have exactly one", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Lambda expressions in Java are closely related to functional interfaces, which are interfaces that have exactly one abstract method.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Lambda expressions in Java are closely related to functional interfaces, which are interfaces that have exactly one abstract method. Lambda expressions can be used to provide an implementation for the abstract method of a functional" @@ -2734,10 +2734,10 @@ "category": "Modern Java Features", "question": "What is a predicate?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "A predicate in Java is a functional interface that represents a boolean-valued function of one argument. Predicates", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Java does not support this feature until very recent versions.", + "A predicate in Java is a functional interface that represents a boolean-valued function of one argument.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "A predicate in Java is a functional interface that represents a boolean-valued function of one argument. Predicates commonly used in functional programming to define conditions or filters that can be applied to elements in a" @@ -2747,10 +2747,10 @@ "category": "Modern Java Features", "question": "What is the functional interface", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "The `Function` interface in Java is a functional interface that represents a function that accepts one argument and", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "The `Function` interface in Java is a functional interface that represents a function that accepts one argument and produces a result.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "The `Function` interface in Java is a functional interface that represents a function that accepts one argument and produces a result. The `Function` interface is commonly used in functional programming to define transformations or" @@ -2760,10 +2760,10 @@ "category": "Modern Java Features", "question": "What is a consumer?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "A consumer in Java is a functional interface that represents an operation that accepts a single input argument and" + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "A consumer in Java is a functional interface that represents an operation that accepts a single input argument and returns no result." ], "answer": "d", "explanation": "A consumer in Java is a functional interface that represents an operation that accepts a single input argument and returns no result. Consumers are commonly used in functional programming to perform side effects or actions on" @@ -2773,10 +2773,10 @@ "category": "Modern Java Features", "question": "Can you give examples of functional interfaces with multiple arguments?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Functional interfaces in Java can have multiple arguments by defining methods with multiple parameters. You can create", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Java does not support this feature until very recent versions.", + "Functional interfaces in Java can have multiple arguments by defining methods with multiple parameters.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "Functional interfaces in Java can have multiple arguments by defining methods with multiple parameters. You can create functional interfaces with multiple arguments by specifying the number of input arguments in the method signature and" @@ -2787,9 +2787,9 @@ "question": "What are the new features in Java 5?", "options": [ "Java 5 introduced several new features and enhancements to the Java programming language, including:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "Java 5 introduced several new features and enhancements to the Java programming language, including: casting of objects. Generics allow you to define classes, interfaces, and methods with type parameters that can be" @@ -2799,9 +2799,9 @@ "category": "Modern Java Features", "question": "What are the new features in Java 6?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", "Java 6 introduced several new features and enhancements to the Java programming language, including:" ], "answer": "d", @@ -2812,9 +2812,9 @@ "category": "Modern Java Features", "question": "What are the new features in Java 7?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", "Java 7 introduced several new features and enhancements to the Java programming language, including:" ], "answer": "d", @@ -2825,10 +2825,10 @@ "category": "Modern Java Features", "question": "What are the new features in Java", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", "Java 8 introduced several new features and enhancements to the Java programming language, including:", - "Esta funcionalidad no existe en Java." + "This functionality does not exist in Java." ], "answer": "c", "explanation": "Java 8 introduced several new features and enhancements to the Java programming language, including: anonymous functions or blocks of code. Lambda expressions enable functional programming paradigms in Java and" @@ -2839,9 +2839,9 @@ "question": "What are the new features in Java 9?", "options": [ "Java 9 introduced several new features and enhancements to the Java programming language, including:", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Java 9 introduced several new features and enhancements to the Java programming language, including: encapsulate" @@ -2851,9 +2851,9 @@ "category": "Modern Java Features", "question": "What are the new features in Java 11?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", "Java 11 introduced several new features and enhancements to the Java programming language, including:" ], "answer": "d", @@ -2864,10 +2864,10 @@ "category": "Modern Java Features", "question": "What are the new features in Java 13?", "options": [ - "Esta funcionalidad no existe en Java.", + "This functionality does not exist in Java.", "Java 13 introduced several new features and enhancements to the Java programming language, including:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "Java 13 introduced several new features and enhancements to the Java programming language, including: and maintainable way to write multi-line strings in Java. Text blocks allow you to define multi-line strings with" @@ -2877,10 +2877,10 @@ "category": "Modern Java Features", "question": "What are the new features in Java 17?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", + "Java does not support this feature until very recent versions.", "Java 17 introduced several new features and enhancements to the Java programming language, including:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "Java 17 introduced several new features and enhancements to the Java programming language, including: restrict the subclasses of a class. Sealed classes allow you to define a limited set of subclasses that can extend" @@ -2890,9 +2890,9 @@ "category": "Modern Java Features", "question": "What are the new features in Java 21?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", "Java 21 introduced several new features and enhancements to the Java programming language, including:" ], "answer": "d", @@ -2904,9 +2904,9 @@ "question": "What are the new features in Java 23?", "options": [ "This section previously contained incorrect and fabricated JEP references (e.g., JEP 425–429 with IBM platform/cloud claims).", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "This section previously contained incorrect and fabricated JEP references (e.g., JEP 425–429 with IBM platform/cloud claims). Remove misinformation. Update this answer once JDK 23 is officially released by consulting the OpenJDK Release Notes" @@ -2916,10 +2916,10 @@ "category": "Modern Java Features", "question": "What is a Hash Table as a data structure and how it is implemented?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "A hash table is a data structure that stores data in a key-value pair format. The key is used to access the" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "A hash table is a data structure that stores data in a key-value pair format. The key is used to access the corresponding value." ], "answer": "d", "explanation": "A hash table is a data structure that stores data in a key-value pair format. The key is used to access the corresponding value. The hash table is used to store data in a more efficient way than a conventional array or" diff --git a/fix_truncated_options.py b/fix_truncated_options.py new file mode 100644 index 0000000..34b7611 --- /dev/null +++ b/fix_truncated_options.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 +"""Fix truncated correct-answer options in java-questions.json. + +For each question whose correct-answer option ends mid-sentence (no terminal +punctuation), replace it with the explanation text trimmed to the last +complete sentence. +""" +import json + +INPUT = "data/java-questions.json" +ANSWER_MAP = {"a": 0, "b": 1, "c": 2, "d": 3} + + +def ends_cleanly(text: str) -> bool: + """Return True if text ends with sentence-terminal punctuation.""" + t = text.strip() + return bool(t) and t[-1] in ".!?:" + + +def trim_to_sentence(text: str) -> str: + """Return text trimmed at the last sentence-ending character (. ! ?).""" + t = text.strip() + if not t: + return t + if t[-1] in ".!?": + return t + for i in range(len(t) - 1, 0, -1): + if t[i] in ".!?": + return t[: i + 1] + return t + + +def main(): + with open(INPUT, "r", encoding="utf-8") as f: + questions = json.load(f) + + updated = 0 + still_bad = [] + + for q in questions: + idx = ANSWER_MAP.get(q.get("answer")) + if idx is None or idx >= len(q.get("options", [])): + continue + + opt = q["options"][idx] + expl = q.get("explanation", "") + + if not ends_cleanly(opt) and expl: + new_opt = trim_to_sentence(expl) + if new_opt != opt: + q["options"][idx] = new_opt + updated += 1 + if not ends_cleanly(new_opt): + still_bad.append(q["id"]) + + with open(INPUT, "w", encoding="utf-8") as f: + json.dump(questions, f, indent=2, ensure_ascii=False) + f.write("\n") + + print(f"Total updated: {updated}") + if still_bad: + print(f"Still problematic IDs: {still_bad}") + + +if __name__ == "__main__": + main() diff --git a/java_quiz_win.py b/java_quiz_win.py index 4239e37..a50a4e0 100644 --- a/java_quiz_win.py +++ b/java_quiz_win.py @@ -167,23 +167,40 @@ def create_widgets(self): q_frame = ttk.Frame(self, padding=(10, 0, 10, 10)) q_frame.pack(fill=tk.BOTH, expand=True) - # Style for option radio buttons self.style = ttk.Style(self) - self.style.configure('Option.TRadiobutton', font=self.font_option) self.question_text = tk.Text(q_frame, wrap='word', height=5, font=self.font_question) self.question_text.configure(state='disabled', background=self.cget('background'), relief='flat') self.question_text.pack(fill=tk.X, padx=4, pady=(4, 8)) - # Options + # Options – use tk.Radiobutton (not ttk) so we can set wraplength + # for answers that span more than one line. self.selected_var = tk.StringVar(value='') self.option_buttons = [] + bg = self.cget('background') for i in range(4): - rb = ttk.Radiobutton(q_frame, text='', value=chr(97 + i), variable=self.selected_var) - rb.configure(style=f'Option.TRadiobutton') - rb.pack(anchor='w', pady=4) + rb = tk.Radiobutton( + q_frame, + text='', + value=chr(97 + i), + variable=self.selected_var, + font=self.font_option, + anchor='w', + justify='left', + wraplength=0, # will be set dynamically + bg=bg, + activebackground=bg, + selectcolor=bg, + borderwidth=0, + highlightthickness=0, + ) + rb.pack(anchor='w', fill=tk.X, pady=4, padx=4) self.option_buttons.append(rb) + # Keep a reference to q_frame so we can recalculate wraplength + self._q_frame = q_frame + q_frame.bind('', self._on_q_frame_configure) + # Explanation area self.expl_label = ttk.Label(q_frame, text='Explicación:', font=self.font_expl_label) self.expl_text = tk.Text(q_frame, wrap='word', height=5, font=self.font_expl_text) @@ -204,6 +221,14 @@ def create_widgets(self): self.next_button = ttk.Button(bottom, text='Siguiente', command=self.on_next, state='disabled') self.next_button.pack(side=tk.RIGHT, padx=(0, 8)) + def _on_q_frame_configure(self, event=None): + """Recalculate wraplength for option buttons when the frame is resized.""" + # Leave some horizontal margin for the radio indicator and padding + padding = 60 + new_wrap = max(200, self._q_frame.winfo_width() - padding) + for rb in self.option_buttons: + rb.configure(wraplength=new_wrap) + def load_current_question(self): q = self.questions[self.index] # Update progress From 5d5cfb5d522269c15e67f3c3d91b39dcb2fbd6c6 Mon Sep 17 00:00:00 2001 From: Isidro Leos Viscencio Date: Wed, 1 Apr 2026 21:32:28 -0600 Subject: [PATCH 14/14] Changes on the questionarie and the program exam test. --- __pycache__/java_quiz_win.cpython-312.pyc | Bin 0 -> 18844 bytes _inspect.py | 16 + data/java-questions.json | 1500 ++++++++++----------- fix_truncated_options.py | 66 + java_quiz_win.py | 37 +- readme.pdf | Bin 0 -> 699629 bytes 6 files changed, 863 insertions(+), 756 deletions(-) create mode 100644 __pycache__/java_quiz_win.cpython-312.pyc create mode 100644 _inspect.py create mode 100644 fix_truncated_options.py create mode 100644 readme.pdf diff --git a/__pycache__/java_quiz_win.cpython-312.pyc b/__pycache__/java_quiz_win.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..af4a9ecdb26c15729bec2c629d3e9d742172e930 GIT binary patch literal 18844 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 Hg8%;kENmX@ literal 0 HcmV?d00001 diff --git a/_inspect.py b/_inspect.py new file mode 100644 index 0000000..50fc3b4 --- /dev/null +++ b/_inspect.py @@ -0,0 +1,16 @@ +import json + +with open("data/java-questions.json", "r", encoding="utf-8") as f: + qs = json.load(f) + +ids_to_check = [5, 16, 20, 30, 46, 51, 207] +am = {"a": 0, "b": 1, "c": 2, "d": 3} + +for q in qs: + if q["id"] in ids_to_check: + idx = am[q["answer"]] + print(f"=== Q{q['id']} (ans={q['answer']}) ===") + print(f" Q: {q['question']}") + print(f" Opt[{idx}]: {q['options'][idx]}") + print(f" Expl: {q['explanation']}") + print() diff --git a/data/java-questions.json b/data/java-questions.json index 7e2286e..cee0736 100644 --- a/data/java-questions.json +++ b/data/java-questions.json @@ -4,10 +4,10 @@ "category": "Java Platform", "question": "Why is Java so popular?", "options": [ - "1. **Platform Independence**: Java programs can run on any device that has the Java Virtual Machine (JVM),", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "1. Platform Independence: Java programs can run on any device that has the Java Virtual Machine (JVM), making it highly portable.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "1. Platform Independence: Java programs can run on any device that has the Java Virtual Machine (JVM), making it highly portable." @@ -17,10 +17,10 @@ "category": "Java Platform", "question": "What is platform independence?", "options": [ - "Java no puede ejecutarse en diferentes sistemas operativos.", + "Java cannot run on different operating systems.", "Java requires recompilation for each different operating system.", - "Java se compila directamente a código máquina específico de la plataforma.", - "Platform independence refers to the ability of a programming language or software to run on various types of computer" + "Java is compiled directly to platform-specific machine code.", + "Platform independence refers to the ability of a programming language or software to run on various types of computer systems without modification." ], "answer": "d", "explanation": "Platform independence refers to the ability of a programming language or software to run on various types of computer systems without modification. In the context of Java, platform independence is achieved through the use of the Java" @@ -30,10 +30,10 @@ "category": "Java Platform", "question": "What is bytecode?", "options": [ - "Java se compila directamente a código máquina específico de la plataforma.", - "Java requiere recompilación para cada sistema operativo diferente.", - "Bytecode is an intermediate representation of a Java program. When a Java program is compiled, it is converted into", - "Java no puede ejecutarse en diferentes sistemas operativos." + "Java is compiled directly to platform-specific machine code.", + "Java requires recompilation for each different operating system.", + "Bytecode is an intermediate representation of a Java program. When a Java program is compiled, it is converted into bytecode, which is a set of instructions that can be executed by the Java Virtual Machine (JVM).", + "Java cannot run on different operating systems." ], "answer": "c", "explanation": "Bytecode is an intermediate representation of a Java program. When a Java program is compiled, it is converted into bytecode, which is a set of instructions that can be executed by the Java Virtual Machine (JVM). Bytecode is" @@ -43,9 +43,9 @@ "category": "Java Platform", "question": "Compare JDK vs JVM vs JRE", "options": [ - "an interpreter/loader (Java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), and", - "Java no puede ejecutarse en diferentes sistemas operativos.", - "Java requiere recompilación para cada sistema operativo diferente.", + "an interpreter/loader (Java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), and other tools needed for Java development.", + "Java cannot run on different operating systems.", + "Java requires recompilation for each different operating system.", "Java is compiled directly to platform-specific machine code." ], "answer": "a", @@ -56,13 +56,13 @@ "category": "Java Platform", "question": "What are the important differences between C++ and Java?", "options": [ - "needs to be compiled for each platform.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "C++ need to be compiled for each platform, Java is platform independent.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", - "explanation": "collection. needs to be compiled for each platform." + "explanation": "C++ needs to be compiled for each platform, while Java is platform-independent and compiled to bytecode that runs on any JVM." }, { "id": 7, @@ -70,7 +70,7 @@ "question": "What are Wrapper classes?", "options": [ "Java does not support automatic conversion between primitives and objects.", - "Wrapper classes in Java are classes that encapsulate a primitive data type into an object. They provide a way to use", + "Wrapper classes in Java are classes that encapsulate a primitive data type into an object. They provide a way to use primitive data types (like `int`, `char`, etc.) as objects.", "Wrapper types consume less memory than primitives.", "Autoboxing only works with numeric types, not with boolean or char." ], @@ -82,10 +82,10 @@ "category": "Wrapper Classes", "question": "Why do we need Wrapper classes in Java?", "options": [ - "Los tipos wrapper consumen menos memoria que los primitivos.", - "Java no soporta conversión automática entre primitivos y objetos.", + "Wrapper types consume less memory than primitives.", + "Java does not support automatic conversion between primitives and objects.", "Wrapper classes in Java are needed for the following reasons:", - "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + "Autoboxing only works with numeric types, not with boolean or char." ], "answer": "c", "explanation": "Wrapper classes in Java are needed for the following reasons: enabling them to be used in object-oriented programming contexts." @@ -95,10 +95,10 @@ "category": "Wrapper Classes", "question": "What are the different ways of creating Wrapper class instances?", "options": [ - "Java no soporta conversión automática entre primitivos y objetos.", - "Los tipos wrapper consumen menos memoria que los primitivos.", + "Java does not support automatic conversion between primitives and objects.", + "Wrapper types consume less memory than primitives.", "There are two main ways to create instances of Wrapper classes in Java:", - "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + "Autoboxing only works with numeric types, not with boolean or char." ], "answer": "c", "explanation": "There are two main ways to create instances of Wrapper classes in Java: Each wrapper class has a constructor that takes a primitive type or a String as an argument." @@ -106,12 +106,12 @@ { "id": 10, "category": "Wrapper Classes", - "question": "What are differences in the two ways of creating Wrapper classes?", + "question": "What are the differences in the two ways of creating Wrapper classes?", "options": [ - "The two ways of creating Wrapper class instances in Java are using constructors and using static factory methods. Here", - "Los tipos wrapper consumen menos memoria que los primitivos.", - "Java no soporta conversión automática entre primitivos y objetos.", - "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + "The two ways of creating Wrapper class instances in Java are using constructors and using static factory methods.", + "Wrapper types consume less memory than primitives.", + "Java does not support automatic conversion between primitives and objects.", + "Autoboxing only works with numeric types, not with boolean or char." ], "answer": "a", "explanation": "The two ways of creating Wrapper class instances in Java are using constructors and using static factory methods. Here are the differences:" @@ -119,12 +119,12 @@ { "id": 11, "category": "Wrapper Classes", - "question": "What is auto boxing?", + "question": "What is autoboxing?", "options": [ - "Java no soporta conversión automática entre primitivos y objetos.", - "Autoboxing in Java is the automatic conversion that the Java compiler makes between the primitive types and their", - "Los tipos wrapper consumen menos memoria que los primitivos.", - "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + "Java does not support automatic conversion between primitives and objects.", + "Autoboxing in Java is the automatic conversion that the Java compiler makes between the primitive types and their corresponding object wrapper classes.", + "Wrapper types consume less memory than primitives.", + "Autoboxing only works with numeric types, not with boolean or char." ], "answer": "b", "explanation": "Autoboxing in Java is the automatic conversion that the Java compiler makes between the primitive types and their corresponding object wrapper classes. For example, converting an `int` to an `Integer`, a `double` to a `Double`, and" @@ -132,12 +132,12 @@ { "id": 12, "category": "Wrapper Classes", - "question": "What are the advantages of auto boxing?", + "question": "What are the advantages of autoboxing?", "options": [ "Autoboxing in Java provides several advantages:", - "Java no soporta conversión automática entre primitivos y objetos.", - "Los tipos wrapper consumen menos memoria que los primitivos.", - "Autoboxing solo funciona con tipos numéricos, no con boolean o char." + "Java does not support automatic conversion between primitives and objects.", + "Wrapper types consume less memory than primitives.", + "Autoboxing only works with numeric types, not with boolean or char." ], "answer": "a", "explanation": "Autoboxing in Java provides several advantages: such as collections." @@ -148,22 +148,22 @@ "question": "What is casting?", "options": [ "Casting in Java is the process of converting a value of one data type to another. There are two types of casting:", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", - "explanation": "Casting in Java is the process of converting a value of one data type to another. There are two types of casting: conversion. For example, converting an `int` to a `double`." + "explanation": "Casting in Java is the process of converting a value of one data type to another. There are two types of casting: implicit casting (automatic) and explicit casting (manual)." }, { "id": 14, "category": "Wrapper Classes", "question": "What is implicit casting?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Implicit casting in Java is the automatic conversion of a smaller data type to a larger data type. Java performs", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "Implicit casting in Java is the automatic conversion of a smaller data type to a larger data type. Java performs implicit casting when the target data type can accommodate the source data type without loss of precision.", + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "Implicit casting in Java is the automatic conversion of a smaller data type to a larger data type. Java performs implicit casting when the target data type can accommodate the source data type without loss of precision. For" @@ -173,10 +173,10 @@ "category": "Wrapper Classes", "question": "What is explicit casting?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Explicit casting in Java is the manual conversion of a larger data type to a smaller data type, or when converting", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "Explicit casting in Java is the manual conversion of a larger data type to a smaller data type, or when converting between incompatible types.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "Explicit casting in Java is the manual conversion of a larger data type to a smaller data type, or when converting between incompatible types. Java requires explicit casting when the target data type may lose precision or range" @@ -184,25 +184,25 @@ { "id": 16, "category": "Strings", - "question": "Are all String", + "question": "Are all String objects immutable?", "options": [ - "No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String`", - "StringBuffer y StringBuilder son inmutables en Java.", - "Java no tiene soporte para cadenas de texto inmutables.", - "Los objetos String en Java son completamente mutables." + "String’s immutable?\\ No, not all `String` objects are immutable.", + "StringBuffer and StringBuilder are immutable in Java.", + "Java does not have support for immutable text strings.", + "String objects in Java are completely mutable." ], "answer": "a", - "explanation": "’s immutable?\\ No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String`" + "explanation": "String’s immutable?\\ No, not all `String` objects are immutable. In Java, `String` objects are immutable, meaning once a `String` object is created, its value cannot be changed. However, there are other classes like `StringBuilder` and `StringBuffer` that provide mutable alternatives to `String`." }, { "id": 17, "category": "Strings", "question": "Where are String values stored in memory?", "options": [ - "Los objetos String en Java son completamente mutables.", - "Java no tiene soporte para cadenas de texto inmutables.", - "In Java, `String` values are stored in a special memory area called the **String Pool**. The String Pool is part of", - "StringBuffer y StringBuilder son inmutables en Java." + "String objects in Java are completely mutable.", + "Java does not have support for immutable text strings.", + "In Java, `String` values are stored in a special memory area called the String Pool. The String Pool is part of the Java heap memory and is used to store unique `String` literals.", + "StringBuffer and StringBuilder are immutable in Java." ], "answer": "c", "explanation": "In Java, `String` values are stored in a special memory area called the String Pool. The String Pool is part of the Java heap memory and is used to store unique `String` literals. When a `String` literal is created, the JVM checks" @@ -210,11 +210,11 @@ { "id": 18, "category": "Strings", - "question": "Why should you be careful about String concatenation(+) operator in loops?", + "question": "Why should you be careful about String concatenation (+) operator in loops?", "options": [ - "StringBuffer y StringBuilder son inmutables en Java.", - "Java no tiene soporte para cadenas de texto inmutables.", - "Los objetos String en Java son completamente mutables.", + "StringBuffer and StringBuilder are immutable in Java.", + "Java does not have support for immutable text strings.", + "String objects in Java are completely mutable.", "String concatenation using the `+` operator in loops can be inefficient due to the immutability of `String` objects." ], "answer": "d", @@ -223,38 +223,38 @@ { "id": 19, "category": "Strings", - "question": "How do you solve above problem?", + "question": "How do you solve the problem of inefficient string concatenation in loops?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "To solve the problem of inefficient string concatenation using the `+` operator in loops, you should" + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "To solve the problem of inefficient string concatenation using the `+` operator in loops, you should use `StringBuilder` or `StringBuffer`." ], "answer": "d", - "explanation": "To solve the problem of inefficient string concatenation using the `+` operator in loops, you should use `StringBuilder` or `StringBuffer`. These classes provide mutable alternatives to `String` and are more efficient" + "explanation": "To solve the problem of inefficient string concatenation using the `+` operator in loops, you should use `StringBuilder` or `StringBuffer`. These classes provide mutable alternatives to `String` and are more efficient for concatenation operations, especially in loops. `StringBuilder` is generally preferred over `StringBuffer` when thread safety is not a concern, as it offers better performance." }, { "id": 20, "category": "Strings", "question": "What are the differences between `String` and `StringBuffer`?", "options": [ - "StringBuffer y StringBuilder son inmutables en Java.", - "Los objetos String en Java son completamente mutables.", - "created. `StringBuffer` objects are mutable, allowing their values to be modified.", - "Java no tiene soporte para cadenas de texto inmutables." + "StringBuffer and StringBuilder are immutable in Java.", + "String objects in Java are completely mutable.", + "`StringBuffer` objects are mutable, allowing their values to be modified. But `String` objects are immutable, meaning their values cannot be changed after they are created.", + "Java does not have support for immutable text strings." ], "answer": "c", - "explanation": "created. `StringBuffer` objects are mutable, allowing their values to be modified. is faster for concatenation and modification operations." + "explanation": "`StringBuffer` objects are mutable, allowing their values to be modified. `StringBuilder` is faster for concatenation and modification operations." }, { "id": 22, "category": "Strings", "question": "Can you give examples of different utility methods in String class?", "options": [ - "StringBuffer y StringBuilder son inmutables en Java.", + "StringBuffer and StringBuilder are immutable in Java.", "The `String` class in Java provides various utility methods. Here are some examples:", - "Java no tiene soporte para cadenas de texto inmutables.", - "Los objetos String en Java son completamente mutables." + "Java does not have support for immutable text strings.", + "String objects in Java are completely mutable." ], "answer": "b", "explanation": "The `String` class in Java provides various utility methods. Here are some examples: // Example of length() method" @@ -264,10 +264,10 @@ "category": "Strings", "question": "What is a class?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "A class in Java is a blueprint for creating objects. It defines a set of properties (fields) and methods that the", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "A class in Java is a blueprint for creating objects. It defines a set of properties (fields) and methods that the created objects will have. A class encapsulates data for the object and methods to manipulate that data.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "A class in Java is a blueprint for creating objects. It defines a set of properties (fields) and methods that the created objects will have. A class encapsulates data for the object and methods to manipulate that data. It serves as" @@ -275,12 +275,12 @@ { "id": 25, "category": "Strings", - "question": "What is state of an object?", + "question": "What is the state of an object?", "options": [ - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "The state of an object in Java refers to the data or values stored in its fields (instance variables) at any given", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "The state of an object in Java refers to the data or values stored in its fields (instance variables) at any given time.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "The state of an object in Java refers to the data or values stored in its fields (instance variables) at any given time. The state represents the current condition of the object, which can change over time as the values of its fields" @@ -288,12 +288,12 @@ { "id": 26, "category": "Object-Oriented Programming", - "question": "What is behavior of an object?", + "question": "What is the behavior of an object?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "The behavior of an object in Java refers to the actions or operations that the object can perform. These behaviors are", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Java does not support this feature until very recent versions.", + "The behavior of an object in Java refers to the actions or operations that the object can perform. These behaviors are defined by the methods in the object's class.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "The behavior of an object in Java refers to the actions or operations that the object can perform. These behaviors are defined by the methods in the object's class. The methods manipulate the object's state and can interact with other" @@ -301,12 +301,12 @@ { "id": 28, "category": "Object-Oriented Programming", - "question": "Explain about toString method ?", + "question": "Explain about the toString method.", "options": [ - "The `toString` method in Java is a method that returns a string representation of an object. It is defined in", - "Java no tiene soporte para cadenas de texto inmutables.", - "StringBuffer y StringBuilder son inmutables en Java.", - "Los objetos String en Java son completamente mutables." + "The `toString` method in Java is a method that returns a string representation of an object. It is defined in the `Object` class, which is the superclass of all Java classes.", + "Java does not have support for immutable text strings.", + "StringBuffer and StringBuilder are immutable in Java.", + "String objects in Java are completely mutable." ], "answer": "a", "explanation": "The `toString` method in Java is a method that returns a string representation of an object. It is defined in the `Object` class, which is the superclass of all Java classes. By default, the `toString` method returns a string" @@ -316,10 +316,10 @@ "category": "Object-Oriented Programming", "question": "What is the use of equals method in Java?", "options": [ - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "The `equals` method in Java is used to compare the equality of two objects. It is defined in the `Object` class and", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "The `equals` method in Java is used to compare the equality of two objects. It is defined in the `Object` class and can be overridden in subclasses to provide custom equality logic.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "The `equals` method in Java is used to compare the equality of two objects. It is defined in the `Object` class and can be overridden in subclasses to provide custom equality logic. By default, the `equals` method compares object" @@ -329,23 +329,23 @@ "category": "Object-Oriented Programming", "question": "What are the important things to consider when implementing `equals` method?", "options": [ - "This is the correct answer based on Java content.", + "The `equals` method should be reflexive, symmetric, transitive, consistent, and handle null values correctly.", "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java.", "Java does not support this feature until very recent versions." ], "answer": "a", - "explanation": "return `true`." + "explanation": "The `equals` method should be reflexive, symmetric, transitive, consistent, and handle null values correctly. This ensures that the method behaves as expected when comparing objects." }, { "id": 31, "category": "Object-Oriented Programming", "question": "What is the Hashcode method used for in Java?", "options": [ - "The `hashCode` method in Java is used to generate a unique integer value for an object. It is defined in the `Object`", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "The `hashCode` method in Java is used to generate a unique integer value for an object. It is defined in the `Object` class and can be overridden in subclasses to provide a custom hash code calculation.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "The `hashCode` method in Java is used to generate a unique integer value for an object. It is defined in the `Object` class and can be overridden in subclasses to provide a custom hash code calculation. The `hashCode` method is used" @@ -355,10 +355,10 @@ "category": "Object-Oriented Programming", "question": "Explain inheritance with examples", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Inheritance in Java is a mechanism where one class (subclass) inherits the fields and methods of another class (" + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "Inheritance in Java is a mechanism where one class (subclass) inherits the fields and methods of another class ( superclass). It allows for code reuse and establishes a relationship between classes." ], "answer": "d", "explanation": "Inheritance in Java is a mechanism where one class (subclass) inherits the fields and methods of another class ( superclass). It allows for code reuse and establishes a relationship between classes." @@ -368,10 +368,10 @@ "category": "Object-Oriented Programming", "question": "What is method overloading?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Method overloading in Java is a feature that allows a class to have more than one method with the same name, provided", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "Method overloading in Java is a feature that allows a class to have more than one method with the same name, provided their parameter lists are different.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "Method overloading in Java is a feature that allows a class to have more than one method with the same name, provided their parameter lists are different. This means that the methods must differ in the type, number, or order of their" @@ -381,10 +381,10 @@ "category": "Object-Oriented Programming", "question": "What is method overriding?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Method overriding in Java is a feature that allows a subclass to provide a specific implementation of a method that is" + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Method overriding in Java is a feature that allows a subclass to provide a specific implementation of a method that is already provided by its superclass." ], "answer": "d", "explanation": "Method overriding in Java is a feature that allows a subclass to provide a specific implementation of a method that is already provided by its superclass. When a method in a subclass has the same name, return type, and parameters as a" @@ -394,10 +394,10 @@ "category": "Object-Oriented Programming", "question": "Can super class reference variable can hold an object of sub class?", "options": [ - "Yes, a superclass reference variable can hold an object of a subclass in Java. This is known as polymorphism and is a", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "Yes, a superclass reference variable can hold an object of a subclass in Java. This is known as polymorphism and is a key feature of object-oriented programming.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Yes, a superclass reference variable can hold an object of a subclass in Java. This is known as polymorphism and is a key feature of object-oriented programming. When a superclass reference variable holds an object of a subclass, it can" @@ -408,9 +408,9 @@ "question": "Is multiple inheritance allowed in Java?", "options": [ "Java does not support multiple inheritance of classes, meaning a class cannot extend more than one class at a time.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Java does not support multiple inheritance of classes, meaning a class cannot extend more than one class at a time. This is to avoid the \"diamond problem,\" where conflicts can arise if two superclasses have methods with the same" @@ -420,10 +420,10 @@ "category": "Inheritance", "question": "What is an interface?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "An interface in Java is a reference type, similar to a class, that can contain only constants, method signatures,", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "An interface in Java is a reference type, similar to a class, that can contain only constants, method signatures, default methods, static methods, and nested types. Interfaces cannot contain instance fields or constructors.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "An interface in Java is a reference type, similar to a class, that can contain only constants, method signatures, default methods, static methods, and nested types. Interfaces cannot contain instance fields or constructors. They are" @@ -433,10 +433,10 @@ "category": "Inheritance", "question": "How do you define an interface?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "An interface in Java is defined using the `interface` keyword. It can contain abstract methods, default methods,", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Java does not support this feature until very recent versions.", + "An interface in Java is defined using the `interface` keyword. It can contain abstract methods, default methods, static methods, and constants.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "An interface in Java is defined using the `interface` keyword. It can contain abstract methods, default methods, static methods, and constants. Here is an example:" @@ -446,10 +446,10 @@ "category": "Inheritance", "question": "How do you implement an interface?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "To implement an interface in Java, a class must use the `implements` keyword and provide concrete implementations for" + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "To implement an interface in Java, a class must use the `implements` keyword and provide concrete implementations for all the methods declared in the interface." ], "answer": "d", "explanation": "To implement an interface in Java, a class must use the `implements` keyword and provide concrete implementations for all the methods declared in the interface. Here is an example:" @@ -460,9 +460,9 @@ "question": "Can you explain a few tricky things about interfaces?", "options": [ "Here are a few tricky things about interfaces in Java:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "Here are a few tricky things about interfaces in Java: 1. Default Methods: Interfaces can have default methods with a body. This allows adding new methods to" @@ -472,10 +472,10 @@ "category": "Inheritance", "question": "Can you extend an interface?", "options": [ - "Yes, in Java, an interface can extend another interface. This allows the extending interface to inherit the abstract", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "Yes, in Java, an interface can extend another interface. This allows the extending interface to inherit the abstract methods of the parent interface.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Yes, in Java, an interface can extend another interface. This allows the extending interface to inherit the abstract methods of the parent interface. Here is an example:" @@ -485,10 +485,10 @@ "category": "Inheritance", "question": "Can a class extend multiple interfaces?", "options": [ - "Esta funcionalidad no existe en Java.", - "Yes, in Java, a class can implement multiple interfaces. This allows the class to inherit the abstract methods of all", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Yes, in Java, a class can implement multiple interfaces. This allows the class to inherit the abstract methods of all the interfaces it implements.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "b", "explanation": "Yes, in Java, a class can implement multiple interfaces. This allows the class to inherit the abstract methods of all the interfaces it implements. Here is an example:" @@ -498,10 +498,10 @@ "category": "Inheritance", "question": "What is an abstract class?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "An abstract class in Java is a class that cannot be instantiated on its own and is meant to be subclassed by other" + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "An abstract class in Java is a class that cannot be instantiated on its own and is meant to be subclassed by other classes." ], "answer": "d", "explanation": "An abstract class in Java is a class that cannot be instantiated on its own and is meant to be subclassed by other classes. It can contain abstract methods, which are declared but not implemented, as well as concrete methods with" @@ -511,10 +511,10 @@ "category": "Inheritance", "question": "When do you use an abstract class?", "options": [ - "Esta funcionalidad no existe en Java.", - "You should use an abstract class in Java when you want to define a common interface for a group of subclasses and", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "You should use an abstract class in Java when you want to define a common interface for a group of subclasses and provide default behavior that can be overridden by the subclasses.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "You should use an abstract class in Java when you want to define a common interface for a group of subclasses and provide default behavior that can be overridden by the subclasses. Abstract classes are useful when you have a set of" @@ -524,10 +524,10 @@ "category": "Inheritance", "question": "How do you define an abstract method?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "An abstract method in Java is a method that is declared but not implemented in an abstract class. Abstract methods do", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "An abstract method in Java is a method that is declared but not implemented in an abstract class. Abstract methods do not have a body and are meant to be implemented by subclasses.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "An abstract method in Java is a method that is declared but not implemented in an abstract class. Abstract methods do not have a body and are meant to be implemented by subclasses. To define an abstract method, you use the `abstract`" @@ -537,10 +537,10 @@ "category": "Collections", "question": "Compare abstract class vs interface?", "options": [ - "Esta es la respuesta correcta basada en el contenido de Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "An abstract class in Java is a class that cannot be instantiated on its own and is meant to be subclassed by other classes. It can contain abstract methods, which are declared but not implemented, as well as concrete methods with implementation.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "This is the correct answer based on Java best practices and standards." @@ -550,10 +550,10 @@ "category": "Collections", "question": "What is a constructor?", "options": [ - "A constructor in Java is a special type of method that is used to initialize objects. It is called when an object of a", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "A constructor in Java is a special type of method that is used to initialize objects. It is called when an object of a class is created using the `new` keyword. Constructors have the same name as the class and do not have a return type.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "A constructor in Java is a special type of method that is used to initialize objects. It is called when an object of a class is created using the `new` keyword. Constructors have the same name as the class and do not have a return type." @@ -563,10 +563,10 @@ "category": "Collections", "question": "What is a default constructor?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "A default constructor in Java is a constructor that is automatically provided by the compiler if a class does not have" + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "A default constructor in Java is a constructor that is automatically provided by the compiler if a class does not have any constructor defined. It is a no-argument constructor that initializes the object with default values." ], "answer": "d", "explanation": "A default constructor in Java is a constructor that is automatically provided by the compiler if a class does not have any constructor defined. It is a no-argument constructor that initializes the object with default values. The default" @@ -577,9 +577,9 @@ "question": "Will this code compile?", "options": [ "Here is an example of a Java code segment that will not compile due to a missing semicolon:", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Here is an example of a Java code segment that will not compile due to a missing semicolon: public class Example {" @@ -589,10 +589,10 @@ "category": "Collections", "question": "How do you call a super class constructor from a constructor?", "options": [ - "In Java, you can call a superclass constructor from a subclass constructor using the `super` keyword. This is useful", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "In Java, you can call a superclass constructor from a subclass constructor using the `super` keyword. This is useful when you want to initialize the superclass part of the object before initializing the subclass part.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "In Java, you can call a superclass constructor from a subclass constructor using the `super` keyword. This is useful when you want to initialize the superclass part of the object before initializing the subclass part. The `super`" @@ -602,10 +602,10 @@ "category": "Collections", "question": "Will this code compile?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "public class Example {" + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "public class Example { public static void main(String[] args) {" ], "answer": "d", "explanation": "public class Example { public static void main(String[] args) {" @@ -615,10 +615,10 @@ "category": "Collections", "question": "What is the use of this() keyword in Java?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "The `this` keyword in Java is a reference to the current object within a method or constructor. It can be used to" + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "The `this` keyword in Java is a reference to the current object within a method or constructor. It can be used to access instance variables, call other constructors, or pass the current object as a parameter to other methods." ], "answer": "d", "explanation": "The `this` keyword in Java is a reference to the current object within a method or constructor. It can be used to access instance variables, call other constructors, or pass the current object as a parameter to other methods. The" @@ -628,10 +628,10 @@ "category": "Collections", "question": "Can a constructor be called directly from a method?", "options": [ - "No, a constructor cannot be called directly from a method. Constructors are special methods that are called only when", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "No, a constructor cannot be called directly from a method. Constructors are special methods that are called only when an object is created. However, you can call another constructor from a constructor using `this()` or `super()`.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "No, a constructor cannot be called directly from a method. Constructors are special methods that are called only when an object is created. However, you can call another constructor from a constructor using `this()` or `super()`. If you" @@ -641,7 +641,7 @@ "category": "Collections", "question": "Is a super class constructor called even when there is no explicit call from a sub class constructor?", "options": [ - "Yes, a superclass constructor is always called, even if there is no explicit call from a subclass constructor. If a", + "Yes, a superclass constructor is always called, even if there is no explicit call from a subclass constructor.", "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java." @@ -655,7 +655,7 @@ "question": "What is polymorphism?", "options": [ "This is a feature exclusive to other programming languages.", - "Polymorphism in Java is the ability of an object to take on many forms. It allows one interface to be used for a", + "Polymorphism in Java is the ability of an object to take on many forms. It allows one interface to be used for a general class of actions. The specific action is determined by the exact nature of the situation.", "Java does not support this feature until very recent versions.", "This functionality does not exist in Java." ], @@ -670,7 +670,7 @@ "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java.", - "The `instanceof` operator in Java is used to test whether an object is an instance of a specific class or implements a" + "The `instanceof` operator in Java is used to test whether an object is an instance of a specific class or implements a specific interface." ], "answer": "d", "explanation": "The `instanceof` operator in Java is used to test whether an object is an instance of a specific class or implements a specific interface. It returns `true` if the object is an instance of the specified class or interface, and `false`" @@ -681,9 +681,9 @@ "question": "What is coupling?", "options": [ "This functionality does not exist in Java.", - "Coupling in software engineering refers to the degree of direct knowledge that one module has about another. It", + "Coupling in software engineering refers to the degree of direct knowledge that one module has about another. It measures how closely connected two routines or modules are.", "This is a feature exclusive to other programming languages.", - "Java no soporta esta característica hasta versiones muy recientes." + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "Coupling in software engineering refers to the degree of direct knowledge that one module has about another. It measures how closely connected two routines or modules are. High coupling means that modules are highly dependent on" @@ -694,7 +694,7 @@ "question": "What is cohesion?", "options": [ "This functionality does not exist in Java.", - "Cohesion in software engineering refers to the degree to which the elements inside a module belong together. It", + "Cohesion in software engineering refers to the degree to which the elements inside a module belong together. It measures how closely related the responsibilities of a single module are.", "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages." ], @@ -709,7 +709,7 @@ "This is a feature exclusive to other programming languages.", "Java does not support this feature until very recent versions.", "This functionality does not exist in Java.", - "Encapsulation in Java is a fundamental object-oriented programming concept that involves bundling the data (fields)" + "Encapsulation in Java is a fundamental object-oriented programming concept that involves bundling the data (fields) and the methods (functions) that operate on the data into a single unit, called a class." ], "answer": "d", "explanation": "Encapsulation in Java is a fundamental object-oriented programming concept that involves bundling the data (fields) and the methods (functions) that operate on the data into a single unit, called a class. It restricts direct access to" @@ -722,7 +722,7 @@ "This functionality does not exist in Java.", "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages.", - "An inner class in Java is a class that is defined within another class. Inner classes can access the members (" + "An inner class in Java is a class that is defined within another class. Inner classes can access the members ( including private members) of the outer class." ], "answer": "d", "explanation": "An inner class in Java is a class that is defined within another class. Inner classes can access the members ( including private members) of the outer class. There are four types of inner classes in Java:" @@ -734,7 +734,7 @@ "options": [ "This is a feature exclusive to other programming languages.", "Java does not support this feature until very recent versions.", - "A static inner class in Java is a nested class that is defined as a static member of the outer class. It does not have", + "A static inner class in Java is a nested class that is defined as a static member of the outer class. It does not have access to the instance variables and methods of the outer class, but it can access static members of the outer class.", "This functionality does not exist in Java." ], "answer": "c", @@ -761,7 +761,7 @@ "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java.", "Java does not support this feature until very recent versions.", - "An anonymous class in Java is a class without a name that is defined and instantiated in a single statement. It is" + "An anonymous class in Java is a class without a name that is defined and instantiated in a single statement." ], "answer": "d", "explanation": "An anonymous class in Java is a class without a name that is defined and instantiated in a single statement. It is typically used for one-time use cases where a class needs to be defined and instantiated without creating a separate" @@ -772,7 +772,7 @@ "question": "What is default class modifier?", "options": [ "This functionality does not exist in Java.", - "The default class modifier in Java is package-private, which means that the class is only accessible within the same", + "The default class modifier in Java is package-private, which means that the class is only accessible within the same package. If no access modifier is specified for a class, it is considered to have default access.", "This is a feature exclusive to other programming languages.", "Java does not support this feature until very recent versions." ], @@ -786,7 +786,7 @@ "options": [ "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java.", - "The `private` access modifier in Java is the most restrictive access level. It is used to restrict access to members", + "The `private` access modifier in Java is the most restrictive access level. It is used to restrict access to members (fields, methods, constructors) of a class to only within the same class.", "Java does not support this feature until very recent versions." ], "answer": "c", @@ -800,7 +800,7 @@ "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java.", - "The default or package access modifier in Java is the absence of an access modifier. It is also known as" + "The default or package access modifier in Java is the absence of an access modifier." ], "answer": "d", "explanation": "The default or package access modifier in Java is the absence of an access modifier. It is also known as package-private" @@ -812,7 +812,7 @@ "options": [ "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java.", - "The `protected` access modifier in Java is used to restrict access to members (fields, methods, constructors) of a", + "The `protected` access modifier in Java is used to restrict access to members (fields, methods, constructors) of a class to only within the same package or subclasses of the class.", "Java does not support this feature until very recent versions." ], "answer": "c", @@ -825,7 +825,7 @@ "options": [ "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages.", - "The `public` access modifier in Java is the least restrictive access level. It allows a class, method, or field to be", + "The `public` access modifier in Java is the least restrictive access level. It allows a class, method, or field to be accessed by any other class in the same project or in other projects.", "This functionality does not exist in Java." ], "answer": "c", @@ -889,7 +889,7 @@ "question": "What is the use of a final modifier on a class?", "options": [ "Java does not support this feature until very recent versions.", - "The `final` modifier on a class in Java is used to prevent the class from being subclassed. This means that no other", + "The `final` modifier on a class in Java is used to prevent the class from being subclassed. This means that no other class can extend a `final` class.", "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java." ], @@ -901,7 +901,7 @@ "category": "Multithreading", "question": "What is the use of a final modifier on a method?", "options": [ - "The `final` modifier on a method in Java is used to prevent the method from being overridden by subclasses. This", + "The `final` modifier on a method in Java is used to prevent the method from being overridden by subclasses. This ensures that the implementation of the method remains unchanged in any subclass.", "This is a feature exclusive to other programming languages.", "Java does not support this feature until very recent versions.", "This functionality does not exist in Java." @@ -914,7 +914,7 @@ "category": "Multithreading", "question": "What is a final variable?", "options": [ - "A final variable in Java is a variable that cannot be reassigned once it has been initialized. The `final` keyword is", + "A final variable in Java is a variable that cannot be reassigned once it has been initialized. The `final` keyword is used to declare a variable as final.", "This functionality does not exist in Java.", "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages." @@ -930,7 +930,7 @@ "Java does not support this feature until very recent versions.", "This functionality does not exist in Java.", "This is a feature exclusive to other programming languages.", - "A final argument in Java is a method parameter that is declared with the `final` keyword. This means that once the" + "A final argument in Java is a method parameter that is declared with the `final` keyword. This means that once the parameter is assigned a value, it cannot be changed within the method." ], "answer": "d", "explanation": "A final argument in Java is a method parameter that is declared with the `final` keyword. This means that once the parameter is assigned a value, it cannot be changed within the method. This is useful for ensuring that the parameter" @@ -943,7 +943,7 @@ "Java does not support this feature until very recent versions.", "This functionality does not exist in Java.", "This is a feature exclusive to other programming languages.", - "When a variable is marked as `volatile` in Java, it ensures that the value of the variable is always read from and" + "When a variable is marked as `volatile` in Java, it ensures that the value of the variable is always read from and written to the main memory, rather than being cached in a thread's local memory." ], "answer": "d", "explanation": "When a variable is marked as `volatile` in Java, it ensures that the value of the variable is always read from and written to the main memory, rather than being cached in a thread's local memory. This guarantees visibility of changes" @@ -953,7 +953,7 @@ "category": "Generics", "question": "What is a static variable?", "options": [ - "A static variable in Java is a variable that is shared among all instances of a class. It is declared using the", + "A static variable in Java is a variable that is shared among all instances of a class. It is declared using the `static` keyword and belongs to the class rather than any specific instance.", "Java does not support this feature until very recent versions.", "This is a feature exclusive to other programming languages.", "This functionality does not exist in Java." @@ -968,7 +968,7 @@ "options": [ "This functionality does not exist in Java.", "Java does not support this feature until very recent versions.", - "It is a good practice to always use blocks around `if` statements in Java to improve code readability and avoid", + "It is a good practice to always use blocks around `if` statements in Java to improve code readability and avoid potential bugs.", "This is a feature exclusive to other programming languages." ], "answer": "c", @@ -1033,8 +1033,8 @@ "options": [ "This is a feature exclusive to other programming languages.", "Java does not support this feature until very recent versions.", - "No, the `default` case does not have to be the last case in a `switch` statement in Java. The `default` case is", - "Esta funcionalidad no existe en Java." + "No, the `default` case does not have to be the last case in a `switch` statement in Java. The `default` case is optional and can be placed anywhere within the `switch` statement.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "No, the `default` case does not have to be the last case in a `switch` statement in Java. The `default` case is optional and can be placed anywhere within the `switch` statement. It is typically used as a catch-all case for values" @@ -1044,7 +1044,7 @@ "category": "Generics", "question": "Can a switch statement be used around a String", "options": [ - "Yes, a `switch` statement can be used with a `String` in Java starting from Java 7. Prior to Java 7, `switch`", + "Yes, a `switch` statement can be used with a `String` in Java starting from Java 7. Prior to Java 7, `switch` statements only supported `int`, `byte`, `short`, `char`, and `enum` types.", "String objects in Java are completely mutable.", "Java does not support immutable text strings.", "StringBuffer and StringBuilder are immutable in Java." @@ -1058,9 +1058,9 @@ "question": "Guess the output of this for loop", "options": [ "Here is an example to guess the output:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Here is an example to guess the output: public class GuessOutput {" @@ -1071,7 +1071,7 @@ "question": "What is an enhanced for loop?", "options": [ "This is a feature exclusive to other programming languages.", - "An enhanced for loop, also known as a for-each loop, is a simplified way to iterate over elements in an array or a", + "An enhanced for loop, also known as a for-each loop, is a simplified way to iterate over elements in an array or a collection in Java.", "Java does not support this feature until very recent versions.", "This functionality does not exist in Java." ], @@ -1083,9 +1083,9 @@ "category": "Java 8 Features", "question": "What is the output of the for loop below?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", "Here is an example to guess the output:" ], "answer": "d", @@ -1097,9 +1097,9 @@ "question": "What is the output of the program below?", "options": [ "Here is an example to guess the output:", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Here is an example to guess the output: public class GuessOutput {" @@ -1110,9 +1110,9 @@ "question": "What is the output of the program below?", "options": [ "Here is an example to guess the output:", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Here is an example to guess the output: public class GuessOutput {" @@ -1122,10 +1122,10 @@ "category": "Java 8 Features", "question": "Why is exception handling important?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", + "This is a feature exclusive to other programming languages.", "Exception handling is important in Java for the following reasons:", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "Exception handling is important in Java for the following reasons: program execution. This helps prevent the program from crashing and provides a way to recover from unexpected" @@ -1135,10 +1135,10 @@ "category": "Java 8 Features", "question": "What design pattern is used to implement exception handling features in most languages?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "The most common design pattern used to implement exception handling features in most programming languages, including", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "The most common design pattern used to implement exception handling features in most programming languages, including Java, is the `try-catch-finally` pattern.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "The most common design pattern used to implement exception handling features in most programming languages, including Java, is the `try-catch-finally` pattern. This pattern consists of three main components:" @@ -1148,10 +1148,10 @@ "category": "Java 8 Features", "question": "What is the need for finally block?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", "The `finally` block in Java is used to execute code that should always run, regardless of whether an exception occurs.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "The `finally` block in Java is used to execute code that should always run, regardless of whether an exception occurs. It is typically used to release resources, close connections, or perform cleanup operations that need to be done" @@ -1162,9 +1162,9 @@ "question": "In what scenarios is code in finally not executed?", "options": [ "The code in a `finally` block is not executed in the following scenarios:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "The code in a `finally` block is not executed in the following scenarios: terminate immediately, and the code in the `finally` block will not be executed." @@ -1175,9 +1175,9 @@ "question": "Will finally be executed in the program below?", "options": [ "Here is an example to determine if the `finally` block will be executed:", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Here is an example to determine if the `finally` block will be executed: public class Example {" @@ -1187,10 +1187,10 @@ "category": "Spring Framework", "question": "Is try without a catch is allowed?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Yes, a `try` block without a `catch` block is allowed in Java. This is known as a try-with-resources statement and is" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "Yes, a `try` block without a `catch` block is allowed in Java. This is known as a try-with-resources statement and is used to automatically close resources that implement the `AutoCloseable` interface." ], "answer": "d", "explanation": "Yes, a `try` block without a `catch` block is allowed in Java. This is known as a try-with-resources statement and is used to automatically close resources that implement the `AutoCloseable` interface. The `try` block can be followed by" @@ -1200,10 +1200,10 @@ "category": "Spring Framework", "question": "Is try without catch and finally allowed?", "options": [ - "Yes, a `try` block without a `catch` or `finally` block is allowed in Java. This is known as a try-with-resources", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "Yes, a `try` block without a `catch` or `finally` block is allowed in Java. This is known as a try-with-resources statement and is used to automatically close resources that implement the `AutoCloseable` interface.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Yes, a `try` block without a `catch` or `finally` block is allowed in Java. This is known as a try-with-resources statement and is used to automatically close resources that implement the `AutoCloseable` interface. The `try` block" @@ -1213,10 +1213,10 @@ "category": "Spring Framework", "question": "Can you explain the hierarchy of exception handling classes?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "In Java, exception handling is based on a hierarchy of classes that extend the `Throwable` class. The main classes in" + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "In Java, exception handling is based on a hierarchy of classes that extend the `Throwable` class." ], "answer": "d", "explanation": "In Java, exception handling is based on a hierarchy of classes that extend the `Throwable` class. The main classes in the exception handling hierarchy are:" @@ -1226,10 +1226,10 @@ "category": "Spring Framework", "question": "What is the difference between error and exception?", "options": [ - "Errors and exceptions are both types of problems that can occur during the execution of a program, but they are", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Errors and exceptions are both types of problems that can occur during the execution of a program, but they are handled differently in Java:", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "Errors and exceptions are both types of problems that can occur during the execution of a program, but they are handled differently in Java:" @@ -1239,10 +1239,10 @@ "category": "Spring Framework", "question": "How do you throw an exception from a method?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "To throw an exception from a method in Java, you use the `throw` keyword followed by an instance of the exception", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "To throw an exception from a method in Java, you use the `throw` keyword followed by an instance of the exception This allows you to create and throw custom exceptions or to re-throw exceptions that were caught earlier.", + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "To throw an exception from a method in Java, you use the `throw` keyword followed by an instance of the exception This allows you to create and throw custom exceptions or to re-throw exceptions that were caught earlier. Here is an" @@ -1252,10 +1252,10 @@ "category": "Spring Framework", "question": "What happens when you throw a checked exception from a method?", "options": [ - "When you throw a checked exception from a method in Java, you must either catch the exception using a `try-catch`", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "When you throw a checked exception from a method in Java, you must either catch the exception using a `try-catch` block or declare the exception using the `throws` keyword in the method signature.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "When you throw a checked exception from a method in Java, you must either catch the exception using a `try-catch` block or declare the exception using the `throws` keyword in the method signature. If you throw a checked exception" @@ -1265,10 +1265,10 @@ "category": "Spring Framework", "question": "What are the options you have to eliminate compilation errors when handling checked exceptions?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", "When handling checked exceptions in Java, you have several options to eliminate compilation errors:", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "When handling checked exceptions in Java, you have several options to eliminate compilation errors: 1. Catch the Exception: Use a `try-catch` block to catch the exception and handle it within the method." @@ -1278,10 +1278,10 @@ "category": "Spring Framework", "question": "How do you create a custom exception?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "To create a custom exception in Java, you need to define a new class that extends the `Exception` class or one of its", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "To create a custom exception in Java, you need to define a new class that extends the `Exception` class or one of its subclasses.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "To create a custom exception in Java, you need to define a new class that extends the `Exception` class or one of its subclasses. You can add custom fields, constructors, and methods to the custom exception class to provide additional" @@ -1291,10 +1291,10 @@ "category": "Spring Framework", "question": "How do you handle multiple exception types with same exception handling block?", "options": [ - "Esta funcionalidad no existe en Java.", + "This functionality does not exist in Java.", "In Java, you can handle multiple exception types with the same exception handling block by using a multi-catch block.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "In Java, you can handle multiple exception types with the same exception handling block by using a multi-catch block. This allows you to catch multiple exceptions in a single `catch` block and handle them in a common way. The syntax for" @@ -1304,10 +1304,10 @@ "category": "Database Connectivity", "question": "Can you explain about try with resources?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Try-with-resources is a feature introduced in Java 7 that simplifies resource management by automatically closing", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Try-with-resources is a feature introduced in Java 7 that simplifies resource management by automatically closing resources that implement the `AutoCloseable` interface.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "Try-with-resources is a feature introduced in Java 7 that simplifies resource management by automatically closing resources that implement the `AutoCloseable` interface. It eliminates the need for explicit `finally` blocks to close" @@ -1317,10 +1317,10 @@ "category": "Database Connectivity", "question": "How does try with resources work?", "options": [ - "Try-with-resources in Java works by automatically closing resources that implement the `AutoCloseable` interface when", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "Try-with-resources in Java works by automatically closing resources that implement the `AutoCloseable` interface when the `try` block exits.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Try-with-resources in Java works by automatically closing resources that implement the `AutoCloseable` interface when the `try` block exits. It simplifies resource management by eliminating the need for explicit `finally` blocks to" @@ -1330,10 +1330,10 @@ "category": "Database Connectivity", "question": "Can you explain a few exception handling best practices?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", "Some exception handling best practices in Java include:", - "Java no soporta esta característica hasta versiones muy recientes." + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "Some exception handling best practices in Java include: allows you to handle different types of exceptions in a more targeted way." @@ -1343,10 +1343,10 @@ "category": "Database Connectivity", "question": "What are the default values in an array?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "In Java, when an array is created, the elements are initialized to default values based on the type of the array. The", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "In Java, when an array is created, the elements are initialized to default values based on the type of the array.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "In Java, when an array is created, the elements are initialized to default values based on the type of the array. The default values for primitive types are as follows:" @@ -1356,10 +1356,10 @@ "category": "Database Connectivity", "question": "How do you loop around an array using enhanced for loop?", "options": [ - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "You can loop around an array using an enhanced for loop in Java. The enhanced for loop, also known as the for-each" + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "You can loop around an array using an enhanced for loop in Java. The enhanced for loop, also known as the for-each loop, provides a more concise syntax for iterating over elements in an array or a collection." ], "answer": "d", "explanation": "You can loop around an array using an enhanced for loop in Java. The enhanced for loop, also known as the for-each loop, provides a more concise syntax for iterating over elements in an array or a collection. It eliminates the need" @@ -1369,10 +1369,10 @@ "category": "Database Connectivity", "question": "How do you print the content of an array?", "options": [ - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "You can print the content of an array in Java by iterating over the elements of the array and printing each element to" + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "You can print the content of an array in Java by iterating over the elements of the array and printing each element to the console." ], "answer": "d", "explanation": "You can print the content of an array in Java by iterating over the elements of the array and printing each element to the console. There are several ways to print the content of an array, including using a `for` loop, an enhanced `for`" @@ -1382,10 +1382,10 @@ "category": "Database Connectivity", "question": "How do you compare two arrays?", "options": [ - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method compares the contents of two arrays to determine if they are equal.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "In Java, you can compare two arrays using the `Arrays.equals` method from the `java.util` package. This method compares the contents of two arrays to determine if they are equal. It takes two arrays as arguments and returns" @@ -1395,10 +1395,10 @@ "category": "Database Connectivity", "question": "What is an enum?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to", - "Esta funcionalidad no existe en Java." + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to define a set of named constants that can be used in place of integer values.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "An enum in Java is a special data type that represents a group of constants (unchangeable variables). It is used to define a set of named constants that can be used in place of integer values. Enumerations are defined using the" @@ -1408,10 +1408,10 @@ "category": "Database Connectivity", "question": "Can you use a switch statement around an enum?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to provide a more readable and type-safe alternative to using integer values.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "Yes, you can use a switch statement around an enum in Java. Enumerations are often used with switch statements to provide a more readable and type-safe alternative to using integer values. Each constant in the enum can be used as a" @@ -1421,10 +1421,10 @@ "category": "Database Connectivity", "question": "What are variable arguments or varargs?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This feature was introduced in Java 5 and is denoted by an ellipsis (`...", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "Variable arguments, also known as varargs, allow you to pass a variable number of arguments to a method. This feature was introduced in Java 5 and is denoted by an ellipsis (`...`) after the type of the last parameter in the" @@ -1434,10 +1434,10 @@ "category": "Web Services", "question": "What are asserts used for?", "options": [ - "Asserts in Java are used to test assumptions in the code and validate conditions that should be true during program", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Asserts in Java are used to test assumptions in the code and validate conditions that should be true during program execution. They are typically used for debugging and testing purposes to catch errors and inconsistencies in the code.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Asserts in Java are used to test assumptions in the code and validate conditions that should be true during program execution. They are typically used for debugging and testing purposes to catch errors and inconsistencies in the code." @@ -1448,9 +1448,9 @@ "question": "When should asserts be used?", "options": [ "Asserts in Java should be used in the following scenarios:", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Asserts in Java should be used in the following scenarios:" @@ -1460,9 +1460,9 @@ "category": "Web Services", "question": "What is garbage collection?", "options": [ - "Set permite elementos duplicados en Java.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", + "Set allows duplicate elements in Java.", + "ArrayList and LinkedList have the same performance in all operations.", + "Collections in Java can only store primitive types.", "Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program." ], "answer": "d", @@ -1474,9 +1474,9 @@ "question": "Can you explain garbage collection with an example?", "options": [ "Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program.", - "Set permite elementos duplicados en Java.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Las colecciones en Java solo pueden almacenar tipos primitivos." + "Set allows duplicate elements in Java.", + "ArrayList and LinkedList have the same performance in all operations.", + "Collections in Java can only store primitive types." ], "answer": "a", "explanation": "Garbage collection in Java is the process of automatically reclaiming memory that is no longer in use by the program. It helps prevent memory leaks and ensures that memory is used efficiently by reclaiming unused memory and making it" @@ -1486,10 +1486,10 @@ "category": "Web Services", "question": "When is garbage collection run?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Garbage collection in Java is run by the JVM's garbage collector at specific intervals or when certain conditions are", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java." + "ArrayList and LinkedList have the same performance in all operations.", + "Garbage collection in Java is run by the JVM's garbage collector at specific intervals or when certain conditions are met. The garbage collector runs in the background and periodically checks for unused objects to reclaim memory.", + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java." ], "answer": "b", "explanation": "Garbage collection in Java is run by the JVM's garbage collector at specific intervals or when certain conditions are met. The garbage collector runs in the background and periodically checks for unused objects to reclaim memory. The" @@ -1500,9 +1500,9 @@ "question": "What are best practices on garbage collection?", "options": [ "Some best practices for garbage collection in Java include:", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "a", "explanation": "Some best practices for garbage collection in Java include: JVM's garbage collector manage memory automatically and optimize memory usage based on the application's" @@ -1512,10 +1512,10 @@ "category": "Web Services", "question": "What are initialization blocks?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Initialization blocks in Java are used to initialize instance variables of a class. There are two types of", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "Initialization blocks in Java are used to initialize instance variables of a class. There are two types of initialization blocks in Java: instance initializer blocks and static initializer blocks.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "Initialization blocks in Java are used to initialize instance variables of a class. There are two types of initialization blocks in Java: instance initializer blocks and static initializer blocks." @@ -1525,10 +1525,10 @@ "category": "Web Services", "question": "What is a static initializer?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "A static initializer in Java is used to initialize static variables of a class. It is executed when the class is" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "A static initializer in Java is used to initialize static variables of a class. It is executed when the class is by the JVM and can be used to perform one-time initialization tasks." ], "answer": "d", "explanation": "A static initializer in Java is used to initialize static variables of a class. It is executed when the class is by the JVM and can be used to perform one-time initialization tasks. Static initializer blocks are defined with the" @@ -1538,10 +1538,10 @@ "category": "Web Services", "question": "What is an instance initializer block?", "options": [ - "An instance initializer block in Java is used to initialize instance variables of a class. It is executed when an", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "An instance initializer block in Java is used to initialize instance variables of a class. It is executed when an instance of the class is created and can be used to perform complex initialization logic.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "An instance initializer block in Java is used to initialize instance variables of a class. It is executed when an instance of the class is created and can be used to perform complex initialization logic. Instance initializer blocks" @@ -1551,10 +1551,10 @@ "category": "Web Services", "question": "What is tokenizing?", "options": [ - "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing" @@ -1564,10 +1564,10 @@ "category": "Design Patterns", "question": "Can you give an example of tokenizing?", "options": [ - "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Tokenizing in Java refers to the process of breaking a string into smaller parts, called tokens. This is often done to extract individual words, numbers, or other elements from a larger string. Tokenizing is commonly used in parsing" @@ -1577,10 +1577,10 @@ "category": "Design Patterns", "question": "What is serialization?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Serialization in Java is the process of converting an object into a stream of bytes that can be saved to a file,", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "Serialization in Java is the process of converting an object into a stream of bytes that can be saved to a file, sent over a network, or stored in a database.", + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "Serialization in Java is the process of converting an object into a stream of bytes that can be saved to a file, sent over a network, or stored in a database. Serialization allows objects to be persisted and transferred between" @@ -1590,10 +1590,10 @@ "category": "Design Patterns", "question": "How do you serialize an object using serializable interface?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", "To serialize an object in Java using the `Serializable` interface, follow these steps:", - "Esta funcionalidad no existe en Java." + "This functionality does not exist in Java." ], "answer": "c", "explanation": "To serialize an object in Java using the `Serializable` interface, follow these steps: 1. Implement the `Serializable` interface in the class that you want to serialize. The `Serializable` interface is a" @@ -1603,10 +1603,10 @@ "category": "Design Patterns", "question": "How do you de-serialize in Java?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", "To deserialize an object in Java, follow these steps:", - "Java no soporta esta característica hasta versiones muy recientes." + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "To deserialize an object in Java, follow these steps: 1. Create an instance of the `ObjectInputStream` class and pass it a `FileInputStream` or other input stream to read" @@ -1616,10 +1616,10 @@ "category": "Design Patterns", "question": "What do you do if only parts of the object have to be serialized?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "If only parts of an object need to be serialized in Java, you can use the `transient` keyword to mark fields that" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "If only parts of an object need to be serialized in Java, you can use the `transient` keyword to mark fields that should not be serialized." ], "answer": "d", "explanation": "If only parts of an object need to be serialized in Java, you can use the `transient` keyword to mark fields that should not be serialized. The `transient` keyword tells the JVM to skip the serialization of the marked field and" @@ -1630,9 +1630,9 @@ "question": "How do you serialize a hierarchy of objects?", "options": [ "To serialize a hierarchy of objects in Java, follow these steps:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "To serialize a hierarchy of objects in Java, follow these steps: 1. Implement the `Serializable` interface in all classes in the hierarchy that need to be serialized. The" @@ -1642,10 +1642,10 @@ "category": "Design Patterns", "question": "Are the constructors in an object invoked when it is de-serialized?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "When an object is deserialized in Java, the constructors of the object are not invoked. Instead, the object is", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "When an object is deserialized in Java, the constructors of the object are not invoked. Instead, the object is restored from the serialized form, and its state and properties are reconstructed based on the serialized data.", + "Java does not support this feature until very recent versions." ], "answer": "c", "explanation": "When an object is deserialized in Java, the constructors of the object are not invoked. Instead, the object is restored from the serialized form, and its state and properties are reconstructed based on the serialized data. The" @@ -1655,10 +1655,10 @@ "category": "Design Patterns", "question": "Are the values of static variables stored when an object is serialized?", "options": [ - "Esta funcionalidad no existe en Java.", + "This functionality does not exist in Java.", "When an object is serialized in Java, the values of static variables are not stored as part of the serialized object.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "b", "explanation": "When an object is serialized in Java, the values of static variables are not stored as part of the serialized object. Static variables are associated with the class itself rather than individual instances of the class, so they are not" @@ -1668,10 +1668,10 @@ "category": "Design Patterns", "question": "Why do we need collections in Java?", "options": [ - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to", - "Set permite elementos duplicados en Java." + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to organize and manage data in a structured and efficient manner.", + "Set allows duplicate elements in Java." ], "answer": "c", "explanation": "Collections in Java are used to store, retrieve, manipulate, and process groups of objects. They provide a way to organize and manage data in a structured and efficient manner. Collections offer a wide range of data structures and" @@ -1681,10 +1681,10 @@ "category": "Design Patterns", "question": "What are the important interfaces in the collection hierarchy?", "options": [ - "Set permite elementos duplicados en Java.", - "The Java Collections Framework provides a set of interfaces that define the core functionality of collections in", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Set allows duplicate elements in Java.", + "The Java Collections Framework provides a set of interfaces that define the core functionality of collections in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "b", "explanation": "The Java Collections Framework provides a set of interfaces that define the core functionality of collections in Java. Some of the important interfaces in the collection hierarchy include:" @@ -1694,10 +1694,10 @@ "category": "JVM and Memory Management", "question": "What are the important methods that are declared in the collection interface?", "options": [ - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java.", - "The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java.", + "The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the interface.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "c", "explanation": "The `Collection` interface in Java defines a set of common methods that are shared by all classes that implement the interface. Some of the important methods declared in the `Collection` interface include:" @@ -1707,10 +1707,10 @@ "category": "JVM and Memory Management", "question": "Can you explain briefly about the List interface?", "options": [ - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Set permite elementos duplicados en Java." + "Collections in Java can only store primitive types.", + "The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements that allows duplicates.", + "ArrayList and LinkedList have the same performance in all operations.", + "Set allows duplicate elements in Java." ], "answer": "b", "explanation": "The `List` interface in Java extends the `Collection` interface and represents an ordered collection of elements that allows duplicates. Lists maintain the insertion order of elements and provide methods for accessing, adding," @@ -1720,10 +1720,10 @@ "category": "JVM and Memory Management", "question": "Explain about ArrayList with an example?", "options": [ - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic", - "Set permite elementos duplicados en Java." + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic resizing, fast random access, and efficient insertion and deletion of elements.", + "Set allows duplicate elements in Java." ], "answer": "c", "explanation": "The `ArrayList` class in Java is a resizable array implementation of the `List` interface. It provides dynamic resizing, fast random access, and efficient insertion and deletion of elements. `ArrayList` is part of the Java" @@ -1733,10 +1733,10 @@ "category": "JVM and Memory Management", "question": "Can an ArrayList have duplicate elements?", "options": [ - "Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java." + "Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an `ArrayList` allows elements to be added multiple times.", + "ArrayList and LinkedList have the same performance in all operations.", + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java." ], "answer": "a", "explanation": "Yes, an `ArrayList` in Java can have duplicate elements. Unlike a `Set`, which does not allow duplicates, an `ArrayList` allows elements to be added multiple times. This means that an `ArrayList` can contain duplicate elements" @@ -1746,10 +1746,10 @@ "category": "JVM and Memory Management", "question": "How do you iterate around an ArrayList using iterator?", "options": [ - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the" + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the `ArrayList` class." ], "answer": "d", "explanation": "To iterate over an `ArrayList` using an iterator in Java, you can use the `iterator` method provided by the `ArrayList` class. The `iterator` method returns an `Iterator` object that can be used to traverse the elements in the" @@ -1759,10 +1759,10 @@ "category": "JVM and Memory Management", "question": "How do you sort an ArrayList?", "options": [ - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections`", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Set permite elementos duplicados en Java." + "Collections in Java can only store primitive types.", + "To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections` class. The `Collections.", + "ArrayList and LinkedList have the same performance in all operations.", + "Set allows duplicate elements in Java." ], "answer": "b", "explanation": "To sort an `ArrayList` in Java, you can use the `Collections.sort` method provided by the `java.util.Collections` class. The `Collections.sort` method sorts the elements in the list in ascending order based on their natural order or" @@ -1772,10 +1772,10 @@ "category": "JVM and Memory Management", "question": "How do you sort elements in an ArrayList using comparable interface?", "options": [ - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable`" + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable` interface in the class of the elements you want to sort." ], "answer": "d", "explanation": "To sort elements in an `ArrayList` using the `Comparable` interface in Java, you need to implement the `Comparable` interface in the class of the elements you want to sort. The `Comparable` interface defines a `compareTo` method that" @@ -1785,10 +1785,10 @@ "category": "JVM and Memory Management", "question": "How do you sort elements in an ArrayList using comparator interface?", "options": [ - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator" + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator class that implements the `Comparator` interface." ], "answer": "d", "explanation": "To sort elements in an `ArrayList` using the `Comparator` interface in Java, you need to create a custom comparator class that implements the `Comparator` interface. The `Comparator` interface defines a `compare` method that compares" @@ -1798,10 +1798,10 @@ "category": "JVM and Memory Management", "question": "What is vector class? How is it different from an ArrayList?", "options": [ - "The `Vector` class in Java is a legacy collection class that is similar to an `ArrayList` but is synchronized. This", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "The `Vector` class in Java is a legacy collection class that is similar to an `ArrayList` but is synchronized. This means that access to a `Vector` is thread-safe, making it suitable for use in multi-threaded environments.", + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "a", "explanation": "The `Vector` class in Java is a legacy collection class that is similar to an `ArrayList` but is synchronized. This means that access to a `Vector` is thread-safe, making it suitable for use in multi-threaded environments. The" @@ -1811,10 +1811,10 @@ "category": "JVM and Memory Management", "question": "What is linkedList? What interfaces does it implement? How is it different from an ArrayList?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "The `LinkedList` class in Java is a doubly-linked list implementation of the `List` interface. It provides efficient", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java." + "ArrayList and LinkedList have the same performance in all operations.", + "The `LinkedList` class in Java is a doubly-linked list implementation of the `List` interface. It provides efficient insertion and deletion of elements at the beginning, middle, and end of the list.", + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java." ], "answer": "b", "explanation": "The `LinkedList` class in Java is a doubly-linked list implementation of the `List` interface. It provides efficient insertion and deletion of elements at the beginning, middle, and end of the list. `LinkedList` implements the `List`," @@ -1824,10 +1824,10 @@ "category": "Testing", "question": "Can you briefly explain about the Set interface?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "The `Set` interface in Java extends the `Collection` interface and represents a collection of unique elements with no", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos." + "ArrayList and LinkedList have the same performance in all operations.", + "The `Set` interface in Java extends the `Collection` interface and represents a collection of unique elements with no duplicates. Sets do not allow duplicate elements, and they maintain no specific order of elements.", + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types." ], "answer": "b", "explanation": "The `Set` interface in Java extends the `Collection` interface and represents a collection of unique elements with no duplicates. Sets do not allow duplicate elements, and they maintain no specific order of elements. The `Set`" @@ -1837,10 +1837,10 @@ "category": "Testing", "question": "What are the important interfaces related to the Set interface?", "options": [ - "Set permite elementos duplicados en Java.", - "The `Set` interface in Java is related to several other interfaces in the Java Collections Framework that provide", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Set allows duplicate elements in Java.", + "The `Set` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with sets of elements.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "b", "explanation": "The `Set` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with sets of elements. Some of the important interfaces related to the `Set`" @@ -1850,10 +1850,10 @@ "category": "Testing", "question": "What is the difference between Set and sortedSet interfaces?", "options": [ - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java.", - "The `Set` and `SortedSet` interfaces in Java are related interfaces in the Java Collections Framework that represent", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java.", + "The `Set` and `SortedSet` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of unique elements with no duplicates.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "c", "explanation": "The `Set` and `SortedSet` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of unique elements with no duplicates. The main difference between `Set` and `SortedSet` is the ordering" @@ -1863,10 +1863,10 @@ "category": "Testing", "question": "Can you give examples of classes that implement the Set interface?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "The `Set` interface in Java is implemented by several classes in the Java Collections Framework that provide", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos." + "ArrayList and LinkedList have the same performance in all operations.", + "The `Set` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of sets.", + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types." ], "answer": "b", "explanation": "The `Set` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of sets. Some of the common classes that implement the `Set` interface include:" @@ -1876,10 +1876,10 @@ "category": "Testing", "question": "What is a HashSet? How is it different from a TreeSet?", "options": [ - "`HashSet` and `TreeSet` are two common implementations of the `Set` interface in Java that provide different", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java." + "`HashSet` and `TreeSet` are two common implementations of the `Set` interface in Java that provide different characteristics for working with sets of elements.", + "ArrayList and LinkedList have the same performance in all operations.", + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java." ], "answer": "a", "explanation": "`HashSet` and `TreeSet` are two common implementations of the `Set` interface in Java that provide different characteristics for working with sets of elements. The main differences between `HashSet` and `TreeSet` include:" @@ -1889,10 +1889,10 @@ "category": "Testing", "question": "What is a linkedHashSet? How is different from a HashSet?", "options": [ - "`LinkedHashSet` is a class in Java that extends `HashSet` and maintains the order of elements based on their insertion", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Set permite elementos duplicados en Java." + "`LinkedHashSet` is a class in Java that extends `HashSet` and maintains the order of elements based on their insertion order.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "Set allows duplicate elements in Java." ], "answer": "a", "explanation": "`LinkedHashSet` is a class in Java that extends `HashSet` and maintains the order of elements based on their insertion order. Unlike `HashSet`, which does not maintain the order of elements, `LinkedHashSet` provides predictable iteration" @@ -1903,9 +1903,9 @@ "question": "What is a TreeSet? How is different from a HashSet?", "options": [ "`TreeSet` is a class in Java that implements the `SortedSet` interface using a red-black tree data structure.", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "a", "explanation": "`TreeSet` is a class in Java that implements the `SortedSet` interface using a red-black tree data structure. maintains the order of elements based on their natural ordering or a custom comparator, allowing elements to be sorted" @@ -1915,10 +1915,10 @@ "category": "Testing", "question": "Can you give examples of implementations of navigableSet?", "options": [ - "The `NavigableSet` interface in Java is implemented by the `TreeSet` and `ConcurrentSkipListSet` classes in the Java", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Set permite elementos duplicados en Java." + "The `NavigableSet` interface in Java is implemented by the `TreeSet` and `ConcurrentSkipListSet` classes in the Java Collections Framework.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations.", + "Set allows duplicate elements in Java." ], "answer": "a", "explanation": "The `NavigableSet` interface in Java is implemented by the `TreeSet` and `ConcurrentSkipListSet` classes in the Java Collections Framework. These classes provide implementations of navigable sets that support navigation methods for" @@ -1928,10 +1928,10 @@ "category": "Testing", "question": "Explain briefly about Queue interface?", "options": [ - "The `Queue` interface in Java represents a collection of elements in a specific order for processing. Queues follow", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "The `Queue` interface in Java represents a collection of elements in a specific order for processing.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "The `Queue` interface in Java represents a collection of elements in a specific order for processing. Queues follow the First-In-First-Out (FIFO) order, meaning that elements are added to the end of the queue and removed from the" @@ -1941,10 +1941,10 @@ "category": "Testing", "question": "What are the important interfaces related to the Queue interface?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "The `Queue` interface in Java is related to several other interfaces in the Java Collections Framework that provide", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "The `Queue` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with queues of elements.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "The `Queue` interface in Java is related to several other interfaces in the Java Collections Framework that provide additional functionality for working with queues of elements. Some of the important interfaces related to the `Queue`" @@ -1954,10 +1954,10 @@ "category": "Best Practices", "question": "Explain about the Deque interface?", "options": [ - "The `Deque` interface in Java represents a double-ended queue that allows elements to be added or removed from both", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "The `Deque` interface in Java represents a double-ended queue that allows elements to be added or removed from both ends.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "The `Deque` interface in Java represents a double-ended queue that allows elements to be added or removed from both ends. Deques provide methods for adding, removing, and accessing elements at the front and back of the queue, making" @@ -1967,10 +1967,10 @@ "category": "Best Practices", "question": "Explain the BlockingQueue interface?", "options": [ - "The `BlockingQueue` interface in Java represents a queue that supports blocking operations for adding and removing", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "The `BlockingQueue` interface in Java represents a queue that supports blocking operations for adding and removing elements.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "The `BlockingQueue` interface in Java represents a queue that supports blocking operations for adding and removing elements. Blocking queues provide methods for waiting for elements to become available or space to become available in" @@ -1980,10 +1980,10 @@ "category": "Best Practices", "question": "What is a priorityQueue? How is it different from a normal queue?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "`PriorityQueue` is a class in Java that implements the `Queue` interface using a priority heap data structure. Unlike" + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "`PriorityQueue` is a class in Java that implements the `Queue` interface using a priority heap data structure." ], "answer": "d", "explanation": "`PriorityQueue` is a class in Java that implements the `Queue` interface using a priority heap data structure. Unlike a normal queue, which follows the First-In-First-Out (FIFO) order, a `PriorityQueue` maintains elements in a priority" @@ -1993,10 +1993,10 @@ "category": "Best Practices", "question": "Can you give example implementations of the BlockingQueue interface?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "The `BlockingQueue` interface in Java is implemented by several classes in the Java Collections Framework that provide" + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "The `BlockingQueue` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of blocking queues." ], "answer": "d", "explanation": "The `BlockingQueue` interface in Java is implemented by several classes in the Java Collections Framework that provide different implementations of blocking queues. Some examples of implementations of `BlockingQueue` include:" @@ -2006,10 +2006,10 @@ "category": "Best Practices", "question": "Can you briefly explain about the Map interface?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "The `Map` interface in Java represents a collection of key-value pairs where each key is unique and maps to a single", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "The `Map` interface in Java represents a collection of key-value pairs where each key is unique and maps to a single value.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "The `Map` interface in Java represents a collection of key-value pairs where each key is unique and maps to a single value. Maps provide methods for adding, removing, and accessing key-value pairs, as well as for checking the presence" @@ -2019,10 +2019,10 @@ "category": "Best Practices", "question": "What is difference between Map and SortedMap?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "The `Map` and `SortedMap` interfaces in Java are related interfaces in the Java Collections Framework that represent" + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "The `Map` and `SortedMap` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of key-value pairs." ], "answer": "d", "explanation": "The `Map` and `SortedMap` interfaces in Java are related interfaces in the Java Collections Framework that represent collections of key-value pairs. The main difference between `Map` and `SortedMap` is the ordering of keys:" @@ -2032,10 +2032,10 @@ "category": "Best Practices", "question": "What is a HashMap? How is it different from a TreeMap?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "`HashMap` and `TreeMap` are two common implementations of the `Map` interface in Java that provide different", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "`HashMap` and `TreeMap` are two common implementations of the `Map` interface in Java that provide different characteristics for working with key-value pairs.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "`HashMap` and `TreeMap` are two common implementations of the `Map` interface in Java that provide different characteristics for working with key-value pairs. The main differences between `HashMap` and `TreeMap` include:" @@ -2045,10 +2045,10 @@ "category": "Best Practices", "question": "What are the different methods in a Hash Map?", "options": [ - "The `HashMap` class in Java provides a variety of methods for working with key-value pairs stored in a hash table", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "The `HashMap` class in Java provides a variety of methods for working with key-value pairs stored in a hash table data structure.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "The `HashMap` class in Java provides a variety of methods for working with key-value pairs stored in a hash table data structure. Some of the common methods provided by the `HashMap` class include:" @@ -2058,10 +2058,10 @@ "category": "Best Practices", "question": "What is a TreeMap? How is different from a HashMap?", "options": [ - "Esta funcionalidad no existe en Java.", + "This functionality does not exist in Java.", "`TreeMap` is a class in Java that implements the `SortedMap` interface using a red-black tree data structure.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "b", "explanation": "`TreeMap` is a class in Java that implements the `SortedMap` interface using a red-black tree data structure. `TreeMap` maintains the order of keys based on their natural ordering or a custom comparator, allowing keys" @@ -2072,9 +2072,9 @@ "question": "Can you give an example of implementation of NavigableMap interface?", "options": [ "The `NavigableMap` interface in Java is implemented by the `TreeMap` class in the Java Collections Framework.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "The `NavigableMap` interface in Java is implemented by the `TreeMap` class in the Java Collections Framework. provides a navigable map of key-value pairs sorted in a specific order, allowing elements to be accessed, added, and" @@ -2084,10 +2084,10 @@ "category": "Performance Optimization", "question": "What are the static methods present in the collections class?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Set permite elementos duplicados en Java.", - "The `Collections` class in Java provides a variety of static methods for working with collections in the Java", - "Las colecciones en Java solo pueden almacenar tipos primitivos." + "ArrayList and LinkedList have the same performance in all operations.", + "Set allows duplicate elements in Java.", + "The `Collections` class in Java provides a variety of static methods for working with collections in the Java Collections Framework.", + "Collections in Java can only store primitive types." ], "answer": "c", "explanation": "The `Collections` class in Java provides a variety of static methods for working with collections in the Java Collections Framework. Some of the common static methods provided by the `Collections` class include:" @@ -2097,10 +2097,10 @@ "category": "Performance Optimization", "question": "What is the difference between synchronized and concurrent collections in Java?", "options": [ - "Synchronized collections and concurrent collections in Java are two approaches to handling thread safety in", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones." + "Synchronized collections and concurrent collections in Java are two approaches to handling thread safety in multi-threaded applications.", + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types.", + "ArrayList and LinkedList have the same performance in all operations." ], "answer": "a", "explanation": "Synchronized collections and concurrent collections in Java are two approaches to handling thread safety in multi-threaded applications. The main difference between synchronized and concurrent collections is how they achieve" @@ -2110,10 +2110,10 @@ "category": "Performance Optimization", "question": "Explain about the new concurrent collections in Java?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Java provides a set of concurrent collections in the `java.util.concurrent` package that are designed for high", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos." + "ArrayList and LinkedList have the same performance in all operations.", + "Java provides a set of concurrent collections in the `java.util.concurrent` package that are designed for high concurrency and thread safety in multi-threaded applications.", + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types." ], "answer": "b", "explanation": "Java provides a set of concurrent collections in the `java.util.concurrent` package that are designed for high concurrency and thread safety in multi-threaded applications. Some of the new concurrent collections introduced in" @@ -2123,10 +2123,10 @@ "category": "Performance Optimization", "question": "Explain about copyOnWrite concurrent collections approach?", "options": [ - "The copy-on-write (COW) approach is a concurrency control technique used in Java to provide thread-safe access to", - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Set permite elementos duplicados en Java.", - "Las colecciones en Java solo pueden almacenar tipos primitivos." + "The copy-on-write (COW) approach is a concurrency control technique used in Java to provide thread-safe access to collections.", + "ArrayList and LinkedList have the same performance in all operations.", + "Set allows duplicate elements in Java.", + "Collections in Java can only store primitive types." ], "answer": "a", "explanation": "The copy-on-write (COW) approach is a concurrency control technique used in Java to provide thread-safe access to collections. In the copy-on-write approach, a new copy of the collection is created whenever a modification is made," @@ -2136,10 +2136,10 @@ "category": "Performance Optimization", "question": "What is compareAndSwap approach?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "The compare-and-swap (CAS) operation is an atomic operation used in concurrent programming to implement lock-free" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "The compare-and-swap (CAS) operation is an atomic operation used in concurrent programming to implement lock-free algorithms and data structures." ], "answer": "d", "explanation": "The compare-and-swap (CAS) operation is an atomic operation used in concurrent programming to implement lock-free algorithms and data structures. The CAS operation allows a thread to update a value in memory if it matches an" @@ -2149,10 +2149,10 @@ "category": "Performance Optimization", "question": "What is a lock? How is it different from using synchronized approach?", "options": [ - "Los threads en Java no pueden compartir memoria.", - "Java no soporta programación concurrente nativa.", - "Synchronized solo funciona con métodos estáticos.", - "A lock is a synchronization mechanism used in Java to control access to shared resources in multi-threaded" + "Threads in Java cannot share memory.", + "Java does not support native concurrent programming.", + "Synchronized only works with static methods.", + "A lock is a synchronization mechanism used in Java to control access to shared resources in multi-threaded applications." ], "answer": "d", "explanation": "A lock is a synchronization mechanism used in Java to control access to shared resources in multi-threaded applications. Locks provide a way to coordinate the execution of threads and ensure that only one thread can access a" @@ -2162,10 +2162,10 @@ "category": "Performance Optimization", "question": "What is initial capacity of a Java collection?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "The initial capacity of a Java collection refers to the number of elements that the collection can initially store", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "Set permite elementos duplicados en Java." + "ArrayList and LinkedList have the same performance in all operations.", + "The initial capacity of a Java collection refers to the number of elements that the collection can initially store before resizing is required.", + "Collections in Java can only store primitive types.", + "Set allows duplicate elements in Java." ], "answer": "b", "explanation": "The initial capacity of a Java collection refers to the number of elements that the collection can initially store before resizing is required. When a collection is created, an initial capacity is specified to allocate memory for" @@ -2175,10 +2175,10 @@ "category": "Performance Optimization", "question": "What is load factor?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "The load factor of a Java collection is a value that determines when the collection should be resized to accommodate" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "The load factor of a Java collection is a value that determines when the collection should be resized to accommodate additional elements." ], "answer": "d", "explanation": "The load factor of a Java collection is a value that determines when the collection should be resized to accommodate additional elements. The load factor is used in hash-based collections like `HashMap` and `HashSet` to control the" @@ -2188,10 +2188,10 @@ "category": "Performance Optimization", "question": "When does a Java collection throw `UnsupportedOperationException`?", "options": [ - "ArrayList y LinkedList tienen el mismo rendimiento en todas las operaciones.", - "Las colecciones en Java solo pueden almacenar tipos primitivos.", - "A Java collection throws an `UnsupportedOperationException` when an operation is not supported by the collection. This", - "Set permite elementos duplicados en Java." + "ArrayList and LinkedList have the same performance in all operations.", + "Collections in Java can only store primitive types.", + "A Java collection throws an `UnsupportedOperationException` when an operation is not supported by the collection.", + "Set allows duplicate elements in Java." ], "answer": "c", "explanation": "A Java collection throws an `UnsupportedOperationException` when an operation is not supported by the collection. This exception is typically thrown when an attempt is made to modify an immutable or read-only collection, or when an" @@ -2201,10 +2201,10 @@ "category": "Performance Optimization", "question": "What is difference between fail-safe and fail-fast iterators?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Fail-safe and fail-fast iterators are two different approaches to handling concurrent modifications to collections in", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "Fail-safe and fail-fast iterators are two different approaches to handling concurrent modifications to collections in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "Fail-safe and fail-fast iterators are two different approaches to handling concurrent modifications to collections in Java. The main difference between fail-safe and fail-fast iterators is how they respond to modifications made to a" @@ -2214,10 +2214,10 @@ "category": "Security", "question": "What are atomic operations in Java?", "options": [ - "Atomic operations in Java are operations that are performed atomically, meaning that they are indivisible and", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "Atomic operations in Java are operations that are performed atomically, meaning that they are indivisible and uninterruptible.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Atomic operations in Java are operations that are performed atomically, meaning that they are indivisible and uninterruptible. Atomic operations are used in concurrent programming to ensure that shared data is accessed and" @@ -2227,10 +2227,10 @@ "category": "Security", "question": "What is BlockingQueue in Java?", "options": [ - "A `BlockingQueue` in Java is a type of queue that supports blocking operations for adding and removing elements. A", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "A `BlockingQueue` in Java is a type of queue that supports blocking operations for adding and removing elements.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "A `BlockingQueue` in Java is a type of queue that supports blocking operations for adding and removing elements. A blocking queue provides methods for waiting for elements to become available or space to become available in the" @@ -2240,10 +2240,10 @@ "category": "Security", "question": "What are Generics? Why do we need Generics?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics" + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types." ], "answer": "d", "explanation": "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics provide a way to create reusable and type-safe code by allowing classes and methods to work with generic types that" @@ -2253,10 +2253,10 @@ "category": "Security", "question": "Why do we need Generics? Can you give an example of how Generics make a program more flexible?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "b", "explanation": "Generics in Java are a feature that allows classes and methods to be parameterized by one or more types. Generics provide a way to create reusable and type-safe code by allowing classes and methods to work with generic types that" @@ -2266,10 +2266,10 @@ "category": "Security", "question": "How do you declare a generic class?", "options": [ - "A generic class in Java is declared by specifying one or more type parameters in angle brackets (`<>`) after the class", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "A generic class in Java is declared by specifying one or more type parameters in angle brackets (`<>`) after the class name.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "A generic class in Java is declared by specifying one or more type parameters in angle brackets (`<>`) after the class name. The type parameters are used to represent generic types that can be specified at compile time when creating" @@ -2279,10 +2279,10 @@ "category": "Security", "question": "What are the restrictions in using generic type that is declared in a class declaration?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "When using a generic type that is declared in a class declaration, there are some restrictions and limitations that" + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "When using a generic type that is declared in a class declaration, there are some restrictions and limitations that must be considered:" ], "answer": "d", "explanation": "When using a generic type that is declared in a class declaration, there are some restrictions and limitations that must be considered:" @@ -2292,10 +2292,10 @@ "category": "Security", "question": "How can we restrict Generics to a subclass of particular class?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "In Java, it is possible to restrict generics to a subclass of a particular class by using bounded type parameters. By", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "In Java, it is possible to restrict generics to a subclass of a particular class by using bounded type parameters.", + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "In Java, it is possible to restrict generics to a subclass of a particular class by using bounded type parameters. By specifying an upper bound for the generic type parameter, you can restrict the types that can be used with the generic" @@ -2305,10 +2305,10 @@ "category": "Security", "question": "How can we restrict Generics to a super class of particular class?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", + "This is a feature exclusive to other programming languages.", "In Java, it is possible to restrict generics to a super class of a particular class by using bounded type parameters.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "In Java, it is possible to restrict generics to a super class of a particular class by using bounded type parameters. By specifying a lower bound for the generic type parameter, you can restrict the types that can be used with the" @@ -2318,10 +2318,10 @@ "category": "Security", "question": "Can you give an example of a generic method?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "A generic method in Java is a method that is parameterized by one or more types. Generic methods provide a way to" + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "A generic method in Java is a method that is parameterized by one or more types. Generic methods provide a way to create methods that can work with different types of arguments without sacrificing type safety." ], "answer": "d", "explanation": "A generic method in Java is a method that is parameterized by one or more types. Generic methods provide a way to create methods that can work with different types of arguments without sacrificing type safety. Here is an example of" @@ -2331,10 +2331,10 @@ "category": "Security", "question": "What is the need for threads in Java?", "options": [ - "Synchronized solo funciona con métodos estáticos.", - "Threads in Java are used to achieve concurrent execution of tasks within a single process. Threads allow multiple", - "Java no soporta programación concurrente nativa.", - "Los threads en Java no pueden compartir memoria." + "Synchronized only works with static methods.", + "Threads in Java are used to achieve concurrent execution of tasks within a single process.", + "Java does not support native concurrent programming.", + "Threads in Java cannot share memory." ], "answer": "b", "explanation": "Threads in Java are used to achieve concurrent execution of tasks within a single process. Threads allow multiple operations to be performed simultaneously, enabling applications to take advantage of multi-core processors and" @@ -2345,9 +2345,9 @@ "question": "How do you create a thread?", "options": [ "There are two main ways to create a thread in Java:", - "Java no soporta programación concurrente nativa.", - "Synchronized solo funciona con métodos estáticos.", - "Los threads en Java no pueden compartir memoria." + "Java does not support native concurrent programming.", + "Synchronized only works with static methods.", + "Threads in Java cannot share memory." ], "answer": "a", "explanation": "There are two main ways to create a thread in Java: `run` method. This approach allows you to define the behavior of the thread by implementing the `run` method." @@ -2357,10 +2357,10 @@ "category": "Frameworks", "question": "How do you create a thread by extending thread class?", "options": [ - "You can create a thread in Java by extending the `Thread` class and overriding the `run` method. This approach allows", - "Los threads en Java no pueden compartir memoria.", - "Synchronized solo funciona con métodos estáticos.", - "Java no soporta programación concurrente nativa." + "You can create a thread in Java by extending the `Thread` class and overriding the `run` method. This approach allows you to define the behavior of the thread by implementing the `run` method.", + "Threads in Java cannot share memory.", + "Synchronized only works with static methods.", + "Java does not support native concurrent programming." ], "answer": "a", "explanation": "You can create a thread in Java by extending the `Thread` class and overriding the `run` method. This approach allows you to define the behavior of the thread by implementing the `run` method. Here is an example:" @@ -2370,10 +2370,10 @@ "category": "Frameworks", "question": "How do you create a thread by implementing runnable interface?", "options": [ - "Java no soporta programación concurrente nativa.", - "Los threads en Java no pueden compartir memoria.", - "You can create a thread in Java by implementing the `Runnable` interface and passing an instance of the class to the", - "Synchronized solo funciona con métodos estáticos." + "Java does not support native concurrent programming.", + "Threads in Java cannot share memory.", + "You can create a thread in Java by implementing the `Runnable` interface and passing an instance of the class to the `Thread` constructor.", + "Synchronized only works with static methods." ], "answer": "c", "explanation": "You can create a thread in Java by implementing the `Runnable` interface and passing an instance of the class to the `Thread` constructor. This approach separates the thread logic from the class definition and allows for better code" @@ -2383,10 +2383,10 @@ "category": "Frameworks", "question": "How do you run a thread in Java?", "options": [ - "Los threads en Java no pueden compartir memoria.", + "Threads in Java cannot share memory.", "There are two main ways to run a thread in Java:", - "Java no soporta programación concurrente nativa.", - "Synchronized solo funciona con métodos estáticos." + "Java does not support native concurrent programming.", + "Synchronized only works with static methods." ], "answer": "b", "explanation": "There are two main ways to run a thread in Java: method. This approach allows you to define the behavior of the thread by implementing the `run` method. You can" @@ -2396,9 +2396,9 @@ "category": "Frameworks", "question": "What are the different states of a thread?", "options": [ - "Los threads en Java no pueden compartir memoria.", - "Synchronized solo funciona con métodos estáticos.", - "Java no soporta programación concurrente nativa.", + "Threads in Java cannot share memory.", + "Synchronized only works with static methods.", + "Java does not support native concurrent programming.", "Threads in Java can be in different states during their lifecycle. The main states of a thread in Java are:" ], "answer": "d", @@ -2409,9 +2409,9 @@ "category": "Frameworks", "question": "What is priority of a thread? How do you change the priority of a thread?", "options": [ - "Java no soporta programación concurrente nativa.", - "Los threads en Java no pueden compartir memoria.", - "Synchronized solo funciona con métodos estáticos.", + "Java does not support native concurrent programming.", + "Threads in Java cannot share memory.", + "Synchronized only works with static methods.", "The priority of a thread in Java is an integer value that determines the scheduling priority of the thread." ], "answer": "d", @@ -2422,10 +2422,10 @@ "category": "Frameworks", "question": "What is ExecutorService?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "`ExecutorService` is an interface in the Java Concurrency API that provides a higher-level abstraction for managing" + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "`ExecutorService` is an interface in the Java Concurrency API that provides a higher-level abstraction for managing and executing tasks asynchronously using a pool of threads." ], "answer": "d", "explanation": "`ExecutorService` is an interface in the Java Concurrency API that provides a higher-level abstraction for managing and executing tasks asynchronously using a pool of threads. `ExecutorService` extends the `Executor` interface and" @@ -2435,10 +2435,10 @@ "category": "Frameworks", "question": "Can you give an example for ExecutorService?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", + "This is a feature exclusive to other programming languages.", "Here is an example of using `ExecutorService` to execute tasks asynchronously in Java:", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "Here is an example of using `ExecutorService` to execute tasks asynchronously in Java: import java.util.concurrent.ExecutorService;" @@ -2448,10 +2448,10 @@ "category": "Frameworks", "question": "Explain different ways of creating executor services", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "There are several ways to create `ExecutorService` instances in Java using the `Executors` utility class. Some of the", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "There are several ways to create `ExecutorService` instances in Java using the `Executors` utility class.", + "This is a feature exclusive to other programming languages." ], "answer": "c", "explanation": "There are several ways to create `ExecutorService` instances in Java using the `Executors` utility class. Some of the common ways to create `ExecutorService` instances include:" @@ -2461,10 +2461,10 @@ "category": "Frameworks", "question": "How do you check whether an ExecutionService task executed successfully?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "The `Future` interface in the Java Concurrency API provides a way to check whether an `ExecutorService` task executed" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "The `Future` interface in the Java Concurrency API provides a way to check whether an `ExecutorService` task executed successfully and retrieve the result of the task." ], "answer": "d", "explanation": "The `Future` interface in the Java Concurrency API provides a way to check whether an `ExecutorService` task executed successfully and retrieve the result of the task. The `Future` interface represents the result of an asynchronous" @@ -2474,10 +2474,10 @@ "category": "Advanced Topics", "question": "What is callable? How do you execute a callable from executionservice?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "`Callable` is a functional interface in the Java Concurrency API that represents a task that can be executed", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "`Callable` is a functional interface in the Java Concurrency API that represents a task that can be executed asynchronously and return a result.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "`Callable` is a functional interface in the Java Concurrency API that represents a task that can be executed asynchronously and return a result. `Callable` is similar to `Runnable`, but it can return a result or throw an" @@ -2487,10 +2487,10 @@ "category": "Advanced Topics", "question": "What is synchronization of threads?", "options": [ - "Synchronized solo funciona con métodos estáticos.", - "Los threads en Java no pueden compartir memoria.", + "Synchronized only works with static methods.", + "Threads in Java cannot share memory.", "Synchronization in Java is a mechanism that allows multiple threads to coordinate access to shared resources.", - "Java no soporta programación concurrente nativa." + "Java does not support native concurrent programming." ], "answer": "c", "explanation": "Synchronization in Java is a mechanism that allows multiple threads to coordinate access to shared resources." @@ -2501,9 +2501,9 @@ "question": "Can you give an example of a synchronized block?", "options": [ "Here is an example of using a synchronized block in Java to synchronize access to a shared resource:", - "Los threads en Java no pueden compartir memoria.", - "Synchronized solo funciona con métodos estáticos.", - "Java no soporta programación concurrente nativa." + "Threads in Java cannot share memory.", + "Synchronized only works with static methods.", + "Java does not support native concurrent programming." ], "answer": "a", "explanation": "Here is an example of using a synchronized block in Java to synchronize access to a shared resource: public class Counter {" @@ -2513,10 +2513,10 @@ "category": "Advanced Topics", "question": "Can a static method be synchronized?", "options": [ - "Yes, a static method can be synchronized in Java. When a static method is synchronized, the lock acquired is on the", - "Los threads en Java no pueden compartir memoria.", - "Synchronized solo funciona con métodos estáticos.", - "Java no soporta programación concurrente nativa." + "Yes, a static method can be synchronized in Java. When a static method is synchronized, the lock acquired is on the class object associated with the method's class.", + "Threads in Java cannot share memory.", + "Synchronized only works with static methods.", + "Java does not support native concurrent programming." ], "answer": "a", "explanation": "Yes, a static method can be synchronized in Java. When a static method is synchronized, the lock acquired is on the class object associated with the method's class. This means that only one thread can execute the synchronized static" @@ -2526,10 +2526,10 @@ "category": "Advanced Topics", "question": "What is the use of join method in threads?", "options": [ - "The `join` method in Java is used to wait for a thread to complete its execution before continuing with the current", - "Los threads en Java no pueden compartir memoria.", - "Synchronized solo funciona con métodos estáticos.", - "Java no soporta programación concurrente nativa." + "The `join` method in Java is used to wait for a thread to complete its execution before continuing with the current thread.", + "Threads in Java cannot share memory.", + "Synchronized only works with static methods.", + "Java does not support native concurrent programming." ], "answer": "a", "explanation": "The `join` method in Java is used to wait for a thread to complete its execution before continuing with the current thread. When the `join` method is called on a thread, the current thread will block and wait for the specified thread" @@ -2539,10 +2539,10 @@ "category": "Advanced Topics", "question": "Describe a few other important methods in threads?", "options": [ - "Synchronized solo funciona con métodos estáticos.", + "Synchronized only works with static methods.", "Some other important methods in Java threads include:", - "Los threads en Java no pueden compartir memoria.", - "Java no soporta programación concurrente nativa." + "Threads in Java cannot share memory.", + "Java does not support native concurrent programming." ], "answer": "b", "explanation": "Some other important methods in Java threads include:" @@ -2552,10 +2552,10 @@ "category": "Advanced Topics", "question": "What is a deadlock? How can you avoid a deadlock?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "A deadlock is a situation in multi-threaded programming where two or more threads are blocked forever, waiting for" + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "A deadlock is a situation in multi-threaded programming where two or more threads are blocked forever, waiting for other to release resources that they need to continue execution." ], "answer": "d", "explanation": "A deadlock is a situation in multi-threaded programming where two or more threads are blocked forever, waiting for other to release resources that they need to continue execution. Deadlocks can occur when multiple threads acquire" @@ -2566,9 +2566,9 @@ "question": "What are the important methods in Java for inter", "options": [ "Java provides several methods for inter-thread communication, including:", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Java provides several methods for inter-thread communication, including: threads to wait for a condition to be met and notify other threads when the condition is satisfied." @@ -2578,10 +2578,10 @@ "category": "Advanced Topics", "question": "What is the use of wait method?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "The `wait` method in Java is used to make a thread wait until a condition is met. When a thread calls the `wait`" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "The `wait` method in Java is used to make a thread wait until a condition is met." ], "answer": "d", "explanation": "The `wait` method in Java is used to make a thread wait until a condition is met. When a thread calls the `wait` it releases the lock it holds and enters a waiting state until another thread calls the `notify` or `notifyAll` method" @@ -2591,10 +2591,10 @@ "category": "Advanced Topics", "question": "What is the use of notify method?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "The `notify` method in Java is used to wake up a single thread that is waiting on the same object. When a thread calls" + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "The `notify` method in Java is used to wake up a single thread that is waiting on the same object. When a thread calls the `notify` method, it notifies a single waiting thread to wake up and continue execution." ], "answer": "d", "explanation": "The `notify` method in Java is used to wake up a single thread that is waiting on the same object. When a thread calls the `notify` method, it notifies a single waiting thread to wake up and continue execution. The `notify` method is" @@ -2604,10 +2604,10 @@ "category": "Enterprise Development", "question": "What is the use of notifyall method?", "options": [ - "The `notifyAll` method in Java is used to wake up all threads that are waiting on the same object. When a thread calls", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "The `notifyAll` method in Java is used to wake up all threads that are waiting on the same object.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "The `notifyAll` method in Java is used to wake up all threads that are waiting on the same object. When a thread calls the `notifyAll` method, it notifies all waiting threads to wake up and" @@ -2617,10 +2617,10 @@ "category": "Enterprise Development", "question": "Can you write a synchronized program with wait and notify methods?", "options": [ - "Java no soporta programación concurrente nativa.", - "Synchronized solo funciona con métodos estáticos.", + "Java does not support native concurrent programming.", + "Synchronized only works with static methods.", "Here is an example of a synchronized program using the `wait` and `notify` methods for inter-thread communication in", - "Los threads en Java no pueden compartir memoria." + "Threads in Java cannot share memory." ], "answer": "c", "explanation": "Here is an example of a synchronized program using the `wait` and `notify` methods for inter-thread communication in" @@ -2630,10 +2630,10 @@ "category": "Enterprise Development", "question": "What is functional programming? How is it different from object", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data. Functional programming focuses on the use of pure functions, higher-order" @@ -2643,10 +2643,10 @@ "category": "Enterprise Development", "question": "Can you give an example of functional programming?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing state and mutable data. Functional programming focuses on the use of pure functions, higher-order" @@ -2656,10 +2656,10 @@ "category": "Enterprise Development", "question": "Explain about streams with an example? what are intermediate operations in streams?", "options": [ - "Streams in Java provide a way to process collections of elements in a functional and declarative manner. Streams", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Streams in Java provide a way to process collections of elements in a functional and declarative manner.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "a", "explanation": "Streams in Java provide a way to process collections of elements in a functional and declarative manner. Streams enable you to perform operations like filtering, mapping, sorting, and reducing on collections using a fluent and" @@ -2669,10 +2669,10 @@ "category": "Enterprise Development", "question": "What are terminal operations in streams?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Terminal operations in streams are operations that produce a result or a side effect and terminate the stream" + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "Terminal operations in streams are operations that produce a result or a side effect and terminate the stream processing." ], "answer": "d", "explanation": "Terminal operations in streams are operations that produce a result or a side effect and terminate the stream processing. Terminal operations are the final step in a stream pipeline and trigger the execution of intermediate" @@ -2682,10 +2682,10 @@ "category": "Enterprise Development", "question": "What are method references? How are they used in streams?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Method references in Java provide a way to refer to methods or constructors without invoking them. Method references" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "Method references in Java provide a way to refer to methods or constructors without invoking them. Method references are shorthand syntax for lambda expressions that call a single method or constructor." ], "answer": "d", "explanation": "Method references in Java provide a way to refer to methods or constructors without invoking them. Method references are shorthand syntax for lambda expressions that call a single method or constructor. Method references can be used in" @@ -2695,10 +2695,10 @@ "category": "Enterprise Development", "question": "What are lambda expressions? How are they used in streams?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables." ], "answer": "d", "explanation": "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent" @@ -2708,10 +2708,10 @@ "category": "Enterprise Development", "question": "Can you give an example of lambda expression?", "options": [ - "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Lambda expressions in Java provide a way to define anonymous functions or blocks of code that can be passed as arguments to methods or stored in variables. Lambda expressions are a concise and expressive way to represent" @@ -2721,10 +2721,10 @@ "category": "Modern Java Features", "question": "Can you explain the relationship between lambda expression and functional interfaces?", "options": [ - "Lambda expressions in Java are closely related to functional interfaces, which are interfaces that have exactly one", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "Lambda expressions in Java are closely related to functional interfaces, which are interfaces that have exactly one abstract method.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "Lambda expressions in Java are closely related to functional interfaces, which are interfaces that have exactly one abstract method. Lambda expressions can be used to provide an implementation for the abstract method of a functional" @@ -2734,10 +2734,10 @@ "category": "Modern Java Features", "question": "What is a predicate?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "A predicate in Java is a functional interface that represents a boolean-valued function of one argument. Predicates", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Java does not support this feature until very recent versions.", + "A predicate in Java is a functional interface that represents a boolean-valued function of one argument.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "A predicate in Java is a functional interface that represents a boolean-valued function of one argument. Predicates commonly used in functional programming to define conditions or filters that can be applied to elements in a" @@ -2747,10 +2747,10 @@ "category": "Modern Java Features", "question": "What is the functional interface", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "The `Function` interface in Java is a functional interface that represents a function that accepts one argument and", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "The `Function` interface in Java is a functional interface that represents a function that accepts one argument and produces a result.", + "This functionality does not exist in Java." ], "answer": "c", "explanation": "The `Function` interface in Java is a functional interface that represents a function that accepts one argument and produces a result. The `Function` interface is commonly used in functional programming to define transformations or" @@ -2760,10 +2760,10 @@ "category": "Modern Java Features", "question": "What is a consumer?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "A consumer in Java is a functional interface that represents an operation that accepts a single input argument and" + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "A consumer in Java is a functional interface that represents an operation that accepts a single input argument and returns no result." ], "answer": "d", "explanation": "A consumer in Java is a functional interface that represents an operation that accepts a single input argument and returns no result. Consumers are commonly used in functional programming to perform side effects or actions on" @@ -2773,10 +2773,10 @@ "category": "Modern Java Features", "question": "Can you give examples of functional interfaces with multiple arguments?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Functional interfaces in Java can have multiple arguments by defining methods with multiple parameters. You can create", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "Java does not support this feature until very recent versions.", + "Functional interfaces in Java can have multiple arguments by defining methods with multiple parameters.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "Functional interfaces in Java can have multiple arguments by defining methods with multiple parameters. You can create functional interfaces with multiple arguments by specifying the number of input arguments in the method signature and" @@ -2787,21 +2787,21 @@ "question": "What are the new features in Java 5?", "options": [ "Java 5 introduced several new features and enhancements to the Java programming language, including:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", + "This functionality does not exist in Java." ], "answer": "a", - "explanation": "Java 5 introduced several new features and enhancements to the Java programming language, including: casting of objects. Generics allow you to define classes, interfaces, and methods with type parameters that can be" + "explanation": "Java 5 introduced several new features and enhancements to the Java programming language, including: casting of objects. Generics allow you to define classes, interfaces, and methods with type parameters that can be specified at runtime. An example of this is List list = new ArrayList<>();" }, { "id": 222, "category": "Modern Java Features", "question": "What are the new features in Java 6?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", "Java 6 introduced several new features and enhancements to the Java programming language, including:" ], "answer": "d", @@ -2812,9 +2812,9 @@ "category": "Modern Java Features", "question": "What are the new features in Java 7?", "options": [ - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", "Java 7 introduced several new features and enhancements to the Java programming language, including:" ], "answer": "d", @@ -2825,10 +2825,10 @@ "category": "Modern Java Features", "question": "What are the new features in Java", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions.", "Java 8 introduced several new features and enhancements to the Java programming language, including:", - "Esta funcionalidad no existe en Java." + "This functionality does not exist in Java." ], "answer": "c", "explanation": "Java 8 introduced several new features and enhancements to the Java programming language, including: anonymous functions or blocks of code. Lambda expressions enable functional programming paradigms in Java and" @@ -2839,9 +2839,9 @@ "question": "What are the new features in Java 9?", "options": [ "Java 9 introduced several new features and enhancements to the Java programming language, including:", - "Esta funcionalidad no existe en Java.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "This functionality does not exist in Java.", + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "a", "explanation": "Java 9 introduced several new features and enhancements to the Java programming language, including: encapsulate" @@ -2851,9 +2851,9 @@ "category": "Modern Java Features", "question": "What are the new features in Java 11?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", "Java 11 introduced several new features and enhancements to the Java programming language, including:" ], "answer": "d", @@ -2864,10 +2864,10 @@ "category": "Modern Java Features", "question": "What are the new features in Java 13?", "options": [ - "Esta funcionalidad no existe en Java.", + "This functionality does not exist in Java.", "Java 13 introduced several new features and enhancements to the Java programming language, including:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Java no soporta esta característica hasta versiones muy recientes." + "This is a feature exclusive to other programming languages.", + "Java does not support this feature until very recent versions." ], "answer": "b", "explanation": "Java 13 introduced several new features and enhancements to the Java programming language, including: and maintainable way to write multi-line strings in Java. Text blocks allow you to define multi-line strings with" @@ -2877,10 +2877,10 @@ "category": "Modern Java Features", "question": "What are the new features in Java 17?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", + "Java does not support this feature until very recent versions.", "Java 17 introduced several new features and enhancements to the Java programming language, including:", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java." + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java." ], "answer": "b", "explanation": "Java 17 introduced several new features and enhancements to the Java programming language, including: restrict the subclasses of a class. Sealed classes allow you to define a limited set of subclasses that can extend" @@ -2890,9 +2890,9 @@ "category": "Modern Java Features", "question": "What are the new features in Java 21?", "options": [ - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", "Java 21 introduced several new features and enhancements to the Java programming language, including:" ], "answer": "d", @@ -2904,9 +2904,9 @@ "question": "What are the new features in Java 23?", "options": [ "This section previously contained incorrect and fabricated JEP references (e.g., JEP 425–429 with IBM platform/cloud claims).", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "Esta es una característica exclusiva de otros lenguajes de programación." + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "This is a feature exclusive to other programming languages." ], "answer": "a", "explanation": "This section previously contained incorrect and fabricated JEP references (e.g., JEP 425–429 with IBM platform/cloud claims). Remove misinformation. Update this answer once JDK 23 is officially released by consulting the OpenJDK Release Notes" @@ -2916,10 +2916,10 @@ "category": "Modern Java Features", "question": "What is a Hash Table as a data structure and how it is implemented?", "options": [ - "Esta es una característica exclusiva de otros lenguajes de programación.", - "Esta funcionalidad no existe en Java.", - "Java no soporta esta característica hasta versiones muy recientes.", - "A hash table is a data structure that stores data in a key-value pair format. The key is used to access the" + "This is a feature exclusive to other programming languages.", + "This functionality does not exist in Java.", + "Java does not support this feature until very recent versions.", + "A hash table is a data structure that stores data in a key-value pair format. The key is used to access the corresponding value." ], "answer": "d", "explanation": "A hash table is a data structure that stores data in a key-value pair format. The key is used to access the corresponding value. The hash table is used to store data in a more efficient way than a conventional array or" diff --git a/fix_truncated_options.py b/fix_truncated_options.py new file mode 100644 index 0000000..34b7611 --- /dev/null +++ b/fix_truncated_options.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 +"""Fix truncated correct-answer options in java-questions.json. + +For each question whose correct-answer option ends mid-sentence (no terminal +punctuation), replace it with the explanation text trimmed to the last +complete sentence. +""" +import json + +INPUT = "data/java-questions.json" +ANSWER_MAP = {"a": 0, "b": 1, "c": 2, "d": 3} + + +def ends_cleanly(text: str) -> bool: + """Return True if text ends with sentence-terminal punctuation.""" + t = text.strip() + return bool(t) and t[-1] in ".!?:" + + +def trim_to_sentence(text: str) -> str: + """Return text trimmed at the last sentence-ending character (. ! ?).""" + t = text.strip() + if not t: + return t + if t[-1] in ".!?": + return t + for i in range(len(t) - 1, 0, -1): + if t[i] in ".!?": + return t[: i + 1] + return t + + +def main(): + with open(INPUT, "r", encoding="utf-8") as f: + questions = json.load(f) + + updated = 0 + still_bad = [] + + for q in questions: + idx = ANSWER_MAP.get(q.get("answer")) + if idx is None or idx >= len(q.get("options", [])): + continue + + opt = q["options"][idx] + expl = q.get("explanation", "") + + if not ends_cleanly(opt) and expl: + new_opt = trim_to_sentence(expl) + if new_opt != opt: + q["options"][idx] = new_opt + updated += 1 + if not ends_cleanly(new_opt): + still_bad.append(q["id"]) + + with open(INPUT, "w", encoding="utf-8") as f: + json.dump(questions, f, indent=2, ensure_ascii=False) + f.write("\n") + + print(f"Total updated: {updated}") + if still_bad: + print(f"Still problematic IDs: {still_bad}") + + +if __name__ == "__main__": + main() diff --git a/java_quiz_win.py b/java_quiz_win.py index 4239e37..a50a4e0 100644 --- a/java_quiz_win.py +++ b/java_quiz_win.py @@ -167,23 +167,40 @@ def create_widgets(self): q_frame = ttk.Frame(self, padding=(10, 0, 10, 10)) q_frame.pack(fill=tk.BOTH, expand=True) - # Style for option radio buttons self.style = ttk.Style(self) - self.style.configure('Option.TRadiobutton', font=self.font_option) self.question_text = tk.Text(q_frame, wrap='word', height=5, font=self.font_question) self.question_text.configure(state='disabled', background=self.cget('background'), relief='flat') self.question_text.pack(fill=tk.X, padx=4, pady=(4, 8)) - # Options + # Options – use tk.Radiobutton (not ttk) so we can set wraplength + # for answers that span more than one line. self.selected_var = tk.StringVar(value='') self.option_buttons = [] + bg = self.cget('background') for i in range(4): - rb = ttk.Radiobutton(q_frame, text='', value=chr(97 + i), variable=self.selected_var) - rb.configure(style=f'Option.TRadiobutton') - rb.pack(anchor='w', pady=4) + rb = tk.Radiobutton( + q_frame, + text='', + value=chr(97 + i), + variable=self.selected_var, + font=self.font_option, + anchor='w', + justify='left', + wraplength=0, # will be set dynamically + bg=bg, + activebackground=bg, + selectcolor=bg, + borderwidth=0, + highlightthickness=0, + ) + rb.pack(anchor='w', fill=tk.X, pady=4, padx=4) self.option_buttons.append(rb) + # Keep a reference to q_frame so we can recalculate wraplength + self._q_frame = q_frame + q_frame.bind('', self._on_q_frame_configure) + # Explanation area self.expl_label = ttk.Label(q_frame, text='Explicación:', font=self.font_expl_label) self.expl_text = tk.Text(q_frame, wrap='word', height=5, font=self.font_expl_text) @@ -204,6 +221,14 @@ def create_widgets(self): self.next_button = ttk.Button(bottom, text='Siguiente', command=self.on_next, state='disabled') self.next_button.pack(side=tk.RIGHT, padx=(0, 8)) + def _on_q_frame_configure(self, event=None): + """Recalculate wraplength for option buttons when the frame is resized.""" + # Leave some horizontal margin for the radio indicator and padding + padding = 60 + new_wrap = max(200, self._q_frame.winfo_width() - padding) + for rb in self.option_buttons: + rb.configure(wraplength=new_wrap) + def load_current_question(self): q = self.questions[self.index] # Update progress diff --git a/readme.pdf b/readme.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6b0a7292612922520982d8e7e428bc03131a4cfb GIT binary patch literal 699629 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

    ^CXd5mD<$?=IMBV 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 z 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%0Aw>0b17V{_773U0egP*8dSvQAZj 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

    WCP12# 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

    _8#^9p{T`DCJuzU8^nn*_aB<8o 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 k%E

    xwxA821EIEBC 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%0Aj|?H5hm^0HeZOOjr|l}2m|`KnTnrXG17bY=#% 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