Detailed Answers on Java Strings, StringBuffer, RMI, Servlets, JDBC, and
Distributed Computing
1. String class methods – split() and regionMatches()
A) split() Method
Definition:
The split() method divides a string into parts based on a delimiter and returns an array of
strings.
Syntax:
String[] arr = [Link]("delimiter");
Example:
class Demo {
public static void main(String args[]) {
String s = "Java,Python,C++";
String arr[] = [Link](",");
for(String x : arr)
[Link](x);
}
}
Output:
Java
Python
C++
Explanation:
The comma acts as a separator and the string is divided into multiple parts.
B) regionMatches() Method
Definition:
The regionMatches() method compares a specified region of two strings.
Syntax:
boolean result = [Link](startIndex, str2, startIndex2, length);
Example:
class Demo {
public static void main(String args[]) {
String s1 = "Programming";
String s2 = "gram";
boolean b = [Link](3, s2, 0, 4);
[Link](b);
}
}
Output:
true
Explanation:
The substring “gram” from s1 matches with s2.
2. String class methods – getChars() and replace()
A) getChars() Method
Definition:
Copies characters from a string into a character array.
Syntax:
void getChars(int srcBegin, int srcEnd, char dest[], int destBegin)
Example:
class Demo {
public static void main(String args[]) {
String s = "JavaProgramming";
char ch[] = new char[7];
[Link](0, 7, ch, 0);
[Link](ch);
}
}
Output:
JavaPro
B) replace() Method
Definition:
Replaces old characters or strings with new ones.
Syntax:
String replace(oldChar, newChar)
Example:
class Demo {
public static void main(String args[]) {
String s = "Java";
[Link]([Link]('a','o'));
}
}
Output:
Jovo
Use:
Used for modifying string content.
3. StringBuffer methods – insert() and deleteCharAt()
A) insert() Method
Definition:
Inserts data into a StringBuffer object at a specified position.
Syntax:
StringBuffer insert(int index, String str)
Example:
class Demo {
public static void main(String args[]) {
StringBuffer sb = new StringBuffer("Jva");
[Link](1,"a");
[Link](sb);
}
}
Output:
Java
B) deleteCharAt() Method
Definition:
Deletes a character at a specified position.
Syntax:
StringBuffer deleteCharAt(int index)
Example:
class Demo {
public static void main(String args[]) {
StringBuffer sb = new StringBuffer("Javaa");
[Link](4);
[Link](sb);
}
}
Output:
Java
4. StringBuffer methods – substring() and lastIndexOf()
A) substring() Method
Definition:
Returns part of a string from a StringBuffer object.
Syntax:
String substring(int start)
OR
String substring(int start, int end)
Example:
class Demo {
public static void main(String args[]) {
StringBuffer sb = new StringBuffer("Programming");
[Link]([Link](3,8));
}
}
Output:
gramm
B) lastIndexOf() Method
Definition:
Returns the last occurrence index of a character or string.
Syntax:
int lastIndexOf(String str)
Example:
class Demo {
public static void main(String args[]) {
StringBuffer sb = new StringBuffer("Java Java");
[Link]([Link]("Java"));
}
}
Output:
5
8. Difference between indexOf() and lastIndexOf()
indexOf():
Returns the first occurrence of a character/string.
Syntax:
int indexOf(String str)
Example:
String s = "Java Programming";
[Link]([Link]("a"));
Output:
1
lastIndexOf():
Returns the last occurrence.
Example:
String s = "Java Programming";
[Link]([Link]("a"));
Output:
3
Difference Table:
indexOf() -> First occurrence
lastIndexOf() -> Last occurrence
12. replace() Method
Definition:
The replace() method replaces characters or strings with another character/string.
Syntax:
String replace(oldChar, newChar)
Example:
class Demo {
public static void main(String args[]) {
String s = "banana";
[Link]([Link]('a','o'));
}
}
Output:
bonono
Uses:
1. Modifying text
2. Updating values
3. Formatting strings
13. Four methods of StringBuffer class
1. append()
Adds text at the end.
Example:
StringBuffer sb = new StringBuffer("Java");
[Link](" Programming");
2. insert()
Inserts text at specified position.
Example:
[Link](5,"Language ");
3. delete()
Deletes characters.
Example:
[Link](5,14);
4. reverse()
Reverses characters.
Example:
[Link]();
Output:
gnimmargorP avaJ
15. Method used by RMI client to connect to remote RMI servers
The RMI client uses the [Link]() method to connect to remote RMI servers.
Syntax:
RemoteInterface ref =
(RemoteInterface) [Link]("rmi://localhost/service");
Working:
1. Client contacts RMI Registry.
2. Registry returns remote object reference.
3. Client invokes remote methods.
Diagram:
Client ----> RMI Registry ----> Remote Object(Server)
Example:
Hello ref = (Hello) [Link]("rmi://localhost/HelloService");
[Link]([Link]());
19. Social Media platform as Distributed Computing System
A social media platform works as a distributed computing system because multiple
computers work together to provide services.
Key Components:
1. Client Devices – mobile phones, laptops.
2. Web Servers – handle requests.
3. Database Servers – store data.
4. Load Balancers – distribute traffic.
5. CDN – delivers images/videos.
6. Authentication Servers – login handling.
Diagram:
Users --> Load Balancer --> Web Servers --> Database Servers
|
CDN
Advantages:
1. Scalability
2. High availability
3. Faster performance
4. Fault tolerance
20. Remote Procedure Call (RPC)
Definition:
RPC allows a program to execute methods on another computer as if they were local
methods.
Working Mechanism:
1. Client calls procedure.
2. Client stub converts request.
3. Request sent over network.
4. Server stub receives request.
5. Procedure executed.
6. Response returned.
Five Key Elements:
1. Client
2. Client Stub
3. Server Stub
4. RPC Runtime
5. Server
Diagram:
Client -> Client Stub -> Network -> Server Stub -> Server
Advantages:
1. Transparency
2. Reusability
3. Distributed communication
21. RMI and its key components
Definition:
RMI (Remote Method Invocation) enables Java objects to invoke methods on remote
objects.
Key Components:
1. Remote Interface
2. Remote Object
3. Stub and Skeleton
4. RMI Registry
5. Client
6. Server
Diagram:
Client <----> Stub <----> Remote Object(Server)
Steps:
1. Create remote interface.
2. Implement interface.
3. Register object.
4. Client accesses object remotely.
Advantages:
1. Platform independence
2. Object-oriented communication
3. Distributed application support
22. RMI Registry
Definition:
RMI Registry is a naming service that stores remote object references.
Functions:
1. Register remote objects
2. Locate remote objects
3. Bind names with objects
Commands:
rmiregistry
Methods:
[Link]()
[Link]()
Diagram:
Client --> RMI Registry --> Remote Object
Advantages:
1. Easy object discovery
2. Centralized naming
3. Simplifies client-server communication
Servlet Lifecycle Methods
The servlet lifecycle contains three major methods:
1. init()
Called once when servlet is loaded.
Syntax:
public void init() throws ServletException
2. service()
Handles client requests.
Syntax:
public void service(ServletRequest req, ServletResponse res)
3. destroy()
Called before servlet removal.
Syntax:
public void destroy()
Lifecycle Diagram:
Client Request -> init() -> service() -> destroy()
Example:
public class DemoServlet extends HttpServlet {
public void init() {
[Link]("Initialized");
}
public void service(HttpServletRequest req,
HttpServletResponse res) {
[Link]("Request Processed");
}
public void destroy() {
[Link]("Destroyed");
}
}
9. Cookie handling using Servlet
Definition:
Cookies are small text files stored in browser to maintain session information.
Creating Cookie:
Cookie c = new Cookie("user","Ananya");
[Link](c);
Reading Cookie:
Cookie c[] = [Link]();
Example:
for(Cookie x : c) {
[Link]([Link]());
}
Uses:
1. Session tracking
2. User preferences
3. Login management
Diagram:
Browser <---- Cookie ----> Server
17. JDBC Driver and Types
Definition:
JDBC Driver is software that enables Java applications to communicate with databases.
Types of JDBC Drivers:
1. Type 1 – JDBC-ODBC Bridge Driver
Converts JDBC calls into ODBC calls.
2. Type 2 – Native API Driver
Uses database native libraries.
3. Type 3 – Network Protocol Driver
Uses middleware server.
4. Type 4 – Thin Driver
Direct communication with database.
Diagram:
Java Application -> JDBC Driver -> Database
Advantages of Type 4:
1. Fast performance
2. Platform independent
3. Direct database communication