QA Interview Handbook
  • ๐Ÿ Home Page
  • About Testing
    • ๐Ÿ’–Qualities of A Great Tester
  • Manual Testing
    • ๐Ÿ’กOverview
      • โœ‹Demand for Software Testing
      • ๐Ÿ˜„Tester's Role in Manual Testing
      • 7๏ธTesting Principles
      • ๐ŸšจV & V
      • โ”Interview Questions
    • โ™ป๏ธSDLC
      • ๐Ÿ“’Phase 1: Planning
      • ๐Ÿ”Phase 2: Requirement Analysis
      • ๐Ÿ‘”Phase 3: Design
      • โ›‘๏ธPhase 4: Development
      • ๐ŸงชPhase 5: Testing
      • ๐ŸššPhase 6: Deployment
      • ๐Ÿ–ฑ๏ธPhase 7: Maintenance
      • โš”๏ธCommon Challenges
      • โ”Interview Questions
    • ๐ŸŒ€STLC
    • ๐ŸŒŠWaterfall
    • โœณ๏ธAgile
      • ๐Ÿ˜Tester's Role in Scrum
    • ๐Ÿ”ขTypes
      • โฌœWhite Box Testing
      • โฌ›Black Box Testing
        • ๐Ÿ”ฐTechniques Used in Black Box Testing
        • ๐Ÿš˜Functional Testing
          • 1๏ธโƒฃUnit Testing
          • 2๏ธโƒฃIntegration Testing
            • ๐Ÿ”ฐTechniques Used in Integration Testing
          • 3๏ธโƒฃSystem Testing
            • ๐Ÿ“ผTypes of System Testing
            • ๐ŸŒŠPhases of System Testing
            • ๐ŸŒ€Regression Testing
            • ๐ŸŒซ๏ธSmoke Testing
          • 4๏ธโƒฃAcceptance Testing
            • โš™๏ธUser Acceptance Testing
            • ๐Ÿ…ฐ๏ธAlpha Testing
            • ๐Ÿ…ฑ๏ธBeta Testing
        • ๐Ÿ•ณ๏ธNon Functional Testing
      • ๐Ÿ“‘Grey Box Testing
    • ๐Ÿช„User Story
      • โบ๏ธSample User Stories
    • ๐Ÿ““Test Cases
      • โบ๏ธSample Test Cases
      • โ”Interview Questions
    • โœ–๏ธDefect Life Cycle
      • โ˜ฃ๏ธPriority + Severity
      • โบ๏ธSample Defect Reports
      • โ”Interview Questions
      • ๐Ÿ›Buggy Questions
    • ๐ŸŒAtlassian JIRA
      • ๐ŸžJIRA Issues
      • โ”Interview Questions
    • โ”Interview Questions
  • Accessibility Testing
    • ๐Ÿ’กOverview
    • ๐Ÿค“Tester's Role in Accessibility Testing
    • ๐Ÿ“šWCAG Principles
      • ๐Ÿ‘๏ธPerceivable
      • ๐ŸนOperable
      • ๐Ÿง Understandable
      • ๐Ÿค–Robust
    • ๐Ÿ”งAxe DevTools
      • โ”Interview Questions
    • ๐Ÿ““Test Cases
    • โ”Interview Questions
  • API Testing
    • ๐Ÿ’กOverview
    • ๐Ÿ˜€Tester's Role in API Testing
    • ๐ŸŠHTTP Methods & CRUD
      • ๐Ÿ‚HTTP Status Codes
    • ๐ŸAPI Tools
      • ๐ŸŸ Postman
        • โ˜„๏ธSending your first API request
        • ๐Ÿ”ฌHTTP Requests with Java
        • ๐ŸŽฒGitHub Sample
        • โ”Interview Questions
      • โ›‘๏ธREST Assured
        • ๐ŸŽ‡Dependency
        • โ”Interview Questions
    • ๐Ÿ““Test Cases
    • ๐ŸฆงAPI Cheatsheet
    • โ”Interview Questions
  • Database Testing
    • ๐Ÿ’กOverview
    • ๐Ÿ˜†Tester's Role in Database Testing
    • ๐Ÿ”ตSQL
      • โ›“๏ธConstraints
      • ๐Ÿ›ข๏ธReferencing a Column
      • ๐Ÿ”ผDDL Commands
      • ๐Ÿ”ผDML Commands
        • ๐Ÿ–Œ๏ธOperators
        • ๐Ÿ› ๏ธFunctions
          • โฏ๏ธAggregate Functions
        • ๐ŸŽ…Clauses
          • โซJoin Clauses
          • ๐Ÿ”ตFilter Clauses
          • โฌSet Operations
      • ๐ŸƒWildcard Character
      • โ”Interview Questions
    • ๐Ÿ““Test Cases
    • ๐ŸงคSQL Practice Sites
    • ๐ŸซSQL Cheatsheet
    • โ”Interview Questions
  • Java
    • โ›ฉ๏ธIntroduction
    • ๐Ÿ˜„Tester's Reason to Learn Java
    • โ“‚๏ธMain Method
      • โ”Interview Questions
    • ๐Ÿ“Variables & Types
      • ๐ŸชขSpecial Types
    • ๐ŸฅModifiers
    • ๐Ÿ…พ๏ธOperators
    • ๐ŸชกString
      • ๐ŸฉบString Methods
        • String Method Problems
      • ๐ŸšจDelimiter
      • โ”Interview Questions
    • ๐Ÿ–‡๏ธConditionals
      • ๐Ÿ’ŽCommon If Statements
      • ๐Ÿ’ŽCommon Ternary Operator Statements
    • โ“‚๏ธMath Class
    • ๐ŸŒŠLoops
      • ๐Ÿ’ŽCommon Loop Examples
      • ๐Ÿ”ƒNested For Loops
    • ๐ŸผOOPS
      • ๐Ÿ›๏ธClasses and Objects
        • โ”Interview Questions
      • ๐ŸŽƒConstructor
        • โšกStatic
          • โ”Interview Questions
        • ๐Ÿ“This() & Super()
          • โ”Interview Questions
        • ๐Ÿ€Finalization
      • ๐Ÿ”“Encapsulation
      • ๐ŸฅInheritance
      • ๐Ÿฆ‹Polymorphism
      • ๐Ÿ•ธ๏ธAbstraction
    • ๐ŸฎJava Practice Sites
    • โ˜‘๏ธData Structures + Algorithms
      • ๐Ÿ…พ๏ธBig O
      • โ˜‘๏ธData Structures
        • ๐Ÿ”ธArray
        • ๐Ÿ”ณArray Problems
        • Page
      • ๐ŸชŸSliding Window Technique
        • ๐ŸชŸSliding Window Problems
        • ๐ŸฅLeetCode #53
        • ๐ŸฅLeetCode #209
    • โ”Interview Questions
  • Automation Testing
    • ๐ŸšฐFlow
      • ๐Ÿ’กOverview
      • ๐ŸคฉTester's Role in Automation Testing
      • ๐Ÿ€Selenium
        • ๐Ÿ•ธ๏ธSelenium WebDriver
          • ๐Ÿ•ท๏ธWebDriver Commands
            • ๐ŸŒWebElement
              • ๐Ÿ”†HTML Tags
              • ๐Ÿ”ฌFind Element(s)
              • ๐ŸฆŽLocators
                • โŒXpath
                • ๐ŸฐCSS Selector
                • ๐Ÿ“€DOM
                • ๐Ÿ Quick Reference for XPath + CSS
            • โœ‹Waits
            • Browser Management
            • ๐ŸŽ๏ธNavigation
            • Alerts
          • ๐Ÿท๏ธAdvanced User Interactions
            • ๐Ÿ—ฏ๏ธAction vs. Actions
            • ๐Ÿ’งDrop Down
            • โœ…Check Box
            • ๐Ÿ–‡๏ธForms
          • โš ๏ธExceptions
        • ๐ŸOOPS + Selenium
        • ๐ŸšขFrameworks
          • โš“Module Based Framework
          • ๐ŸŽนKeyword Driven Framework
          • ๐ŸŽ‹Data Driven Framework
          • ๐ŸŒบHybrid Framework
          • ๐ŸŒดLog4j
          • ๐Ÿ“„Page Object Model
        • ๐ŸงชTesting Frameworks
          • ๐Ÿ’กTestNG
          • ๐Ÿ‰‘JUnit
          • ๐Ÿฅ’BDD
            • ๐Ÿฅ’Cucumber
        • ๐ŸŒ‰Selenium Grid
          • โœ–๏ธDesired Capabilities
        • โ”Interview Questions
      • ๐Ÿ”„API Testing with Selenium
      • โชDatabase Testing with Selenium
      • โ“‚๏ธMaven
      • ๐Ÿ™Git
        • โ”Interview Questions
      • ๐Ÿ•ต๏ธโ€โ™‚๏ธJenkins
        • โ”Interview Questions
      • ๐ŸณDocker
        • โ”Interview Questions
      • ๐Ÿ“™AWS
        • โ”Interview Questions
  • Behavioral
    • ๐Ÿ“ฃMixed Interview Questions
    • โญSTAR Method
      • ๐ŸŒŸSample Responses
Powered by GitBook
On this page
  • What are Strings in Java?
  • ๐Ÿ“œ Rules for Strings in Java ๐Ÿ“œ
  • ๐Ÿ’ฌ String Object Rules ๐Ÿ’ฌ
  • ๐Ÿ“ String Literal Rules ๐Ÿ“
  • ๐Ÿชข Escape Sequences ๐Ÿชข
  • How are Strings used in Java?
  • How are Strings stored in Java?
  • How do you use Strings in Java?
  • Why are Strings immutable (unchangeable) in Java? ๐Ÿค”

Was this helpful?

  1. Java

String

PreviousOperatorsNextString Methods

Last updated 1 year ago

Was this helpful?

What are Strings in Java?

In Java, a string is a type of variable that is used to store a sequence of characters, such as letters, numbers, and symbols. Strings are used to represent text and are a fundamental part of many Java programs.

๐Ÿ“œ Rules for Strings in Java ๐Ÿ“œ

Strings represent sequences of characters in Java. There are some key rules and facts to keep in mind when working with Strings.

๐Ÿ’ฌ String Object Rules ๐Ÿ’ฌ

  • Strings are immutable - their values cannot be changed after creation

  • Strings have a set of useful methods like length(), charAt(), etc.

  • Strings should be compared using equals() not ==

  • Concatenation is done with + operator or concat() method

For example:

String message = "Hello";
message.concat(" World!"); // doesn't modify message

String newMessage = message + " World!";

๐Ÿ“ String Literal Rules ๐Ÿ“

Some rules for String literals are:

  • Created by surrounding characters with double quotes

  • Two literal Strings with same characters refer to same object

  • Literal strings are stored in string pool in Java memory

  • Should be avoided in loops due to repeated object creation

For example:

String text = "Hello";
String anotherText = "Hello"; // Refers to same "Hello" object

๐Ÿชข Escape Sequences ๐Ÿชข

  • Use backslash \ to encode special characters

  • for new line, for tab, \" for double quote etc.

  • Unicode escapes like \uFFFF can encode any character

For example:

String message = "Hello\nWorld"; // newline
String unicode = "\u263A"; // smiley face

So these rules help in efficiently and correctly handling Strings in Java.

How are Strings used in Java?

Strings are used in Java to perform many different tasks, such as:

  • Storing and manipulating text

  • Printing text to the console

  • Reading and writing text files

  • Communicating with databases and web services

How are Strings stored in Java?

In Java, strings are stored as objects, which means that they have properties and methods that can be used to manipulate them. When you create a string in Java, it is stored in memory as an object with its own unique properties and methods.

How do you use Strings in Java?

To use strings in Java, you first need to create a string variable and assign a value to it. For example, you can create a string variable called "name" and assign it the value "John":

String name = "Abc";

Once you have created a string variable, you can use it in your program to perform tasks such as printing text to the console or reading text from a file.

Why are Strings immutable (unchangeable) in Java? ๐Ÿค”

Answer: Strings are immutable in Java for several reasons: ๐Ÿ™‹โ€โ™‚๏ธ

Security ๐Ÿ›ก

  • If Strings were mutable, this could lead to security issues. For example, malicious code could potentially modify String variables and manipulate data.

Synchronization ๐Ÿ‘

  • Since Strings are immutable and cannot be changed, two threads can share String references without synchronization issues. String pooling also works because Strings don't change.

Memory optimization ๐Ÿ’ก

  • Since String objects are immutable, they can be placed in a string constant pool. This saves memory since multiple objects with the same value can refer to the same object in the pool.

String operations become easy๐Ÿ‘Œ

  • Immutability makes string operations like copying, comparing, etc very easy since we are actually working with the character array inside the String.

That's why whenever we perform operations that appear to modify a String, a new String object is actually created. For example:

String s = "Hello";
s.concat("World");
System.out.println(s); // Prints Hello

Here s.concat("World") returns a new String "HelloWorld", it doesn't modify s. So in summary, immutability brings security, performance, and easier implementation of String operations in Java.

๐Ÿชก