Using StringBuilder to build a greeting step by step.
Java
String name = "Alice";
StringBuilder sb = newStringBuilder();
sb.append("Hello, ").append(name).append("!");
Sample Program
This program shows how String creates a new text when adding, while StringBuilder changes the same object.
Java
publicclass Main {
publicstaticvoid main(String[] args) {
String text = "Start";
text = text + " and continue";
System.out.println("Using String: " + text);
StringBuilder builder = newStringBuilder("Start");
builder.append(" and continue");
System.out.println("Using StringBuilder: " + builder.toString());
}
}
OutputSuccess
Important Notes
String objects are immutable, meaning they cannot change once created.
StringBuilder is mutable, so it can change without making new objects.
Use StringBuilder when you need to change text many times for better speed and memory use.
Summary
String is good for fixed text that does not change.
StringBuilder is better for building or changing text many times.
Choosing the right one helps your program run faster and use less memory.
Practice
(1/5)
1. Which statement best describes when to use StringBuilder instead of String in Java?
easy
A. Use StringBuilder when you need to change text many times efficiently.
B. Use StringBuilder for fixed text that never changes.
C. Use String when you want faster text modifications.
D. Use String to save memory when changing text repeatedly.
Solution
Step 1: Understand the nature of String and StringBuilder
String objects are immutable, meaning they cannot be changed once created. Changing text creates new objects, which is slow and uses more memory.
Step 2: Identify when StringBuilder is better
StringBuilder allows changing text without creating new objects, making it efficient for many modifications.
Final Answer:
Use StringBuilder when you need to change text many times efficiently. -> Option A
Quick Check:
Many changes = StringBuilder [OK]
Hint: Use StringBuilder for many text changes, String for fixed text [OK]
Common Mistakes:
Thinking String is better for many changes
Confusing immutability of String
Assuming StringBuilder uses more memory always
2. Which of the following is the correct way to create a StringBuilder object with initial text "Hello"?
easy
A. StringBuilder sb = StringBuilder("Hello");
B. StringBuilder sb = "Hello";
C. StringBuilder sb = new StringBuilder[] {"Hello"};
D. StringBuilder sb = new StringBuilder("Hello");
Solution
Step 1: Recall the correct constructor syntax for StringBuilder
The StringBuilder class requires the new keyword and parentheses with the initial string inside.
Step 2: Check each option for syntax correctness
StringBuilder sb = new StringBuilder("Hello"); uses new StringBuilder("Hello"), which is correct. Options A, B, and D have syntax errors or wrong usage.
Final Answer:
StringBuilder sb = new StringBuilder("Hello"); -> Option D
Quick Check:
Use new + constructor for StringBuilder [OK]
Hint: Always use 'new StringBuilder("text")' to create StringBuilder [OK]
Common Mistakes:
Omitting 'new' keyword
Using assignment without constructor
Using array syntax mistakenly
3. What is the output of this Java code?
StringBuilder sb = new StringBuilder("Hi");
sb.append("!");
sb.append(" How are you?");
System.out.println(sb.toString());
medium
A. Hi!How are you?
B. Hi How are you?
C. Hi! How are you?
D. Hi
Solution
Step 1: Understand what append() does on StringBuilder
Each append() adds the given text to the end of the current StringBuilder content without spaces unless explicitly added.
Step 2: Trace the code execution
Initial text is "Hi". First append adds "!" making "Hi!". Second append adds " How are you?" (with leading space), resulting in "Hi! How are you?".
Final Answer:
Hi! How are you? -> Option C
Quick Check:
Appends add text exactly as given [OK]
Hint: Append adds text exactly; watch spaces carefully [OK]
Common Mistakes:
Ignoring spaces in appended strings
Assuming append replaces text
Printing StringBuilder object directly without toString()