Skip to main content

Java interview questions


Matcher vs Pattern

Pattern: A compiled representation of a regular expression.
Matcher: An engine that performs match operations on a character sequence by interpreting a Pattern.
A regular expression, specified as a string, must first be compiled into an instance of this class. The resulting pattern can then be used to create a Matcher object that can match arbitrary character sequences against the regular expression. All of the state involved in performing a match resides in the matcher, so many matchers can share the same pattern. A typical invocation sequence is thus
 Pattern p = Pattern.compile("a*b");
 Matcher m = p.matcher("aaaaab");
 boolean b = m.matches();
A matches method is defined by this class as a convenience for when a regular expression is used just once. This method compiles an expression and matches an input sequence against it in a single invocation. The statement
 boolean b = Pattern.matches("a*b", "aaaaab"); 
is equivalent to the three statements above, though for repeated matches it is less efficient since it does not allow the compiled pattern to be reused. Instances of this class are immutable and are safe for use by multiple concurrent threads. Instances of the Matcher class are not safe for such use.

Immutable Object

An object is considered immutable if its state cannot change after it is constructed. Immutable objects are very useful in multithreaded applications because they can be shared between threads without synchronization. To create an immutable object you need to follow some simple rules:
  • Declare the class as final so it can’t be extended.
  • Make all fields private final so that direct access is not allowed and assigned only once
  • Don’t provide setter methods for variables
  • Initialize all the fields via a constructor performing deep copy.
  • Perform cloning of objects in the getter methods to return a copy rather than returning the actual object reference.

Comments

Popular posts from this blog

OOPS concepts Tutorial

OOPS concepts Tutorial Summary: By the end of this tutorial "OOPS concepts Tutorial", you will understand the meaning of OOPS concepts. Three basic concepts of OOPS Abstraction Encapsulation Polymorphism 1. Abstraction     Abstraction means using the equipment (or code) without knowing the details of working. For example, you are using your mobile phone without knowing how a mobile operates internally. Just a click on a button connects to your friend. This is abstraction. That is, the details of mobile mechanism are abstracted. Similarly we use the code of somebody to get the functionality without knowing how the code is written or working. For example, you are using printf() function to write to the DOS prompt without the awareness of what the code of printf(). One of the ways of achieving abstraction is inheritance. Through inheritance a subclass can use the super class methods as if they belong to it without caring their implementation details. 2. Encapsula...

Basic Definitions

Basic Definitions Class :     A class is a blueprint or prototype from which objects are created.                                                            (or) A Class is a template or Blue print is used to bind or group the related data members along with its related functionalities                                                            (or)     A class is a prototype that defines the variables and the methods common to all objects of a certain kind. Member Functions operate upon the member variables of the class. Object :  Objects is instance of a class it contains state and behaviors, State is nothing but variables and beha...
Struts Actions Forward Action :          In Struts MVC model, you have to go through the Action Controller to get a new view page. In some cases, you really just need to get a specified JSP page only, it's so stupid to create an action controller class which just forward the pate to you.        ForwardAction acts as bridge from the current view and pages it link to.ForwardAction uses the RequestDispatcher to forward to a specified web resource.This allow you to link to an action instead of directly to a jsp.  Used of Forward Action :- The ForwardAction class is useful when you’re trying to integrate Struts into an existing application that uses Servlets to perform business logic functions.  ForwardAction used to forward a request to another resource in your application, such as a Servlet that already does business logic processing or even another JSP page. Include Action :         Includ...