Java String and Wrapper Classes Explained
Java String and Wrapper Classes Explained
Agend
1. Introduction
1. [Link] class
2. [Link] class
2. Importance of String constant pool (SCP)
3. Interning of String objects
4. String class constructors
5. Important methods of String class
3. StringBuffer
6. Constructors
7. Important methods of StringBuffer
4. StringBuilder (1.5v)
8. StringBuffer Vs StringBuilder
9. String vs StringBuffer vs StringBuilder
5. Wrapper classes
10. Constructors
11. Wrapper class Constructor summery
6. Utility methods
12. valueOf() method
13. xxxValue() method
14. parseXxx() method
15. toString() method
7. Dancing between String, wrapper object and primitive
8. Partial Hierarchy of [Link] package
9. Autoboxing and Autounboxing
16. Autoboxing
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
17. Autounboxing
18. Conclusions
1. Object class
2. String class
3. StringBuffer class
5. Wrapper Classes
For writing any java program the most commonly required classes
and
[Link] package.
to import.
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
[Link] class:
object class.
2. As object class acts as a root (or) parent (or) super for all java
classes, by default
3. Note : If our class doesn't extends any other class then it is the
direct child class
of object
If our class extends any other class then it is the indirect child class of
Object.
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
7. public final void wait() throws InterruptedException;
toString( ) method :
will be executed.
4. Example:
6. Example 1:
7. class Student
8. {
9. String name;
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
12. {
13. [Link]=name;
14. [Link]=rollno;
15. }
19. [Link](s1);
20. [Link]([Link]());
21. [Link](s2);
22. }
23. }
24. Output:
25. Student@3e25a5
26. Student@3e25a5
27. Student@19821f
28.
in our class.
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
Ex : For example whenever we are try to print student reference to
print his a
38. }
40.
41. Example 2:
42.
46. }
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
50. Test t=new Test();
51. [Link](i);
52. [Link](s);
53. [Link](t);
54. }
55. }
56. Output:
57. 10
58. ashok
59. Test
hashCode() method :
hashCode.
2. Jvm will using hashCode while saving objects into hashing related
data
on hashCode).
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
4. If we didn't override hashCode() method then Object class
hashCode() method
equals() method:
Example 5:
class Student
String name;
int rollno;
[Link]=name;
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
[Link]=rollno;
Student s4=s1;
[Link]([Link](s2));
[Link]([Link](s3));
[Link]([Link](s4));
}}
Output:
False
False
True
Diagram:
In
the
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
above program Object class .equals() method got executed which is
always
reference comparison.
Diagram:
system
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
Note : In String class , Wrapper classes and all collection classes
.equals( ) method is
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
4. If [Link](r2) is false then r1==r2 is always false.
StringBuffer
[Link]([Link](sb)); //false
Note:
return false;
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
}
return false;
[Link]([Link](p2));
[Link]([Link](i));
Output:
True
False
Clone () method:
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
protected native object clone() throws CloneNotSupportedException;
Example:
int i=10;
int j=20;
CloneNotSupportedException
Test t2=(Test)[Link]();
t2.i=888;
t2.j=999;
[Link](t1.i+"---------------"+t1.j);
[Link](t2.i+"---------------"+t2.j);
Output:
10---------------20
888---------------999
Diagram:
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
We can perform cloning only for Cloneable objects.
[Link] class :
Case 1:
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
Case 2 :
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
Note :
1. Object creation in SCP is always optional 1st JVM will check is any
object
with same content on SCP that is duplicate objects are not allowed in
SCP.
2. Garbage collector can't access SCP area hence even though object
doesn't have
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
Example 1:
String s3="bhaskar";
String s4="bhaskar";
Note :
When ever we are using new operator compulsory a new object will
be created on the
Diagram :
Example 2:
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
[Link]("software");
s=[Link]("solutions");
s="bhaskarsoft";
Diagram :
For every String Constant one object will be created in SCP. Because
of runtime
Example 3:
[Link]("fall");
s1=s1+"winter";
String s2=[Link]("summer");
[Link](s1);
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
[Link](s2);
Diagram :
Example:
class StringDemo
[Link](s1==s2);//false
[Link](s1==s3);//false
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
[Link](s3==s4);//true
[Link](s3==s5);//true
[Link](s3==s7);//false
[Link](s3==s9);//true
[Link](s6==s8);//true
Diagram:
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
Diagram:
2. We can create only one copy and we can reuse the same object for
every
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
4. According to this once we creates a String object we can't perform
any changes
of scp.
FAQS :
6. What is SCP?
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
one object and we can reuse same object for every requirement. This
approach
9. Why SCP like concept available only for the String but not for the
StringBuffer?
performance.
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
In the case of String as several references pointing to the same object,
by using
11. Similar to String objects any other objects are immutable in java?
Yes.
13. Explain the process of creating our own immutable class with an
example?
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
15. What is interning of String objects?
Example 1:
class StringDemo {
String s2=[Link]();
[Link](s1==s2); //false
String s3="bhaskar";
[Link](s2==s3);//true
Diagram:
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
If the corresponding object is not there in SCP then intern() method
itself will create
Example 2:
class StringDemo {
String s2=[Link]("software");
String s3=[Link]();
String s4="bhaskarsoftware";
[Link](s3==s4);//true
Diagram 2:
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
Creates an empty String Object.
Example:
class StringDemo {
char[] ch={'a','b','c'} ;
[Link](ch);//abc
Example:
class StringDemo {
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
byte[] b={100,101,102};
[Link](s);//def
Example:
class StringDemo {
String s="ashok";
[Link]([Link](3));//o
[Link]([Link](100));// RE :
StringIndexOutOfBoundsException
3. Example:
4. class StringDemo {
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
5. public static void main(String[] args) {
6. String s="ashok";
7. s=[Link]("software");
8. //s=s+"software";
9. //s+="software";
10. [Link](s);//ashoksoftware
11. }
12. }
The overloaded "+" and "+=" operators also meant for concatenation
purpose
only.
Example:
class StringDemo {
String s="java";
[Link]([Link]("JAVA"));//false
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
[Link]([Link]("JAVA"));//true
Example:
class StringDemo {
String s="ashoksoft";
[Link]([Link](5));//soft
Example:
class StringDemo {
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
public static void main(String[] args) {
String s="ashoksoft";
[Link]([Link](5));//soft
[Link]([Link](3,7));//okso
Example:
class StringDemo {
String s="jobs4times";
[Link]([Link]());//10
/*
CE :
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
*/
Example:
class StringDemo {
String s="ababab";
[Link]([Link]('a','b'));//bbbbbb
Example:
class StringDemo {
String s="ASHOK";
[Link]([Link]());//ashok
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
}
Example :
class StringDemo {
String s="ashok";
[Link]([Link]());//ASHOK
the string but not blank spaces present at middle of the String.
Example:
class StringDemo {
[Link]([Link]());//sai charan
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
22. public int indexOf(char ch);
Example:
class StringDemo {
String s="saicharan";
[Link]([Link]('c')); // 3
[Link]([Link]('z')); // -1
Example:
class StringDemo {
String s="arunkumar";
[Link]([Link]('a'));//7
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
[Link]([Link]('z'));//-1
Note :
reused.
Example 1 :
class StringDemo {
String s1="bhaskar";
String s2=[Link]();
String s3=[Link]();
[Link](s1==s2);//false
[Link](s1==s3);//true
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
Diagram :
Example 2:
class StringDemo {
String s1="bhaskar";
String s2=[Link]();
[Link](s1==s2);//true
Diagram :
class StringDemo {
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
public static void main(String[] args) {
String s2=[Link]();
String s3=[Link]();
String s4=[Link]();
String s5=[Link]();
String s6=[Link]();
[Link](s1==s6); //false
[Link](s3==s5); //false
Final vs immutability :
for objects
object.
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
3. That is by declaring a reference variable as final we won't get any
immutability
nature .
Example:
class Test
[Link]("software");
[Link](sb);//ashoksoftware
In the above example even though "sb" is final we can perform any
type of change in
immutability nature.
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
1. final variable (valid)
StringBuffer :
new object)
Constructors :
Newcapacity=(currentcapacity+1)*2.
Example:
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
class StringBufferDemo {
[Link]([Link]());//16
[Link]("abcdefghijklmnop");
[Link]([Link]());//16
[Link]("q");
[Link]([Link]());//34
Example:
class StringBufferDemo {
[Link]([Link]());//19
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
Creates an equivalent StringBuffer object for the given String with
capacity=[Link]()+16;
Example:
class StringBufferDemo {
[Link]([Link]());//21
Example:
class StringBufferDemo {
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
[Link]([Link]());//18
[Link]([Link]());//34
[Link]([Link](14));//e
[Link]([Link](30));//RE :
StringIndexOutofBoundsException
Example:
class StringBufferDemo {
[Link](8,'A');
[Link](sb);
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
8. public StringBuffer append(boolean b); All these are overloaded
methods.
12. Example:
17. [Link](3.14);
19. [Link](true);
true
21. }
22. }
23.
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
27. public StringBuffer insert(int index,double d); All are
overloaded methods
32. Example :
37. [Link](11,"9");
38. [Link](sb);//abxyzcdefgh9
39. }
40. }
Example:
class StringBufferDemo {
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
public static void main(String[] args) {
[Link](sb);//saicharankumar
[Link](6,13);
[Link](sb);//saichar
[Link](5);
[Link](sb);//saichr
44. Example :
48. [Link](sb);//ashokkumar
49. [Link]([Link]());//ramukkohsa
50. }
51. }
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
characters.
Example:
class StringBufferDemo {
[Link](6);
[Link](sb);//ashokk
To deallocate the extra allocated free memory such that capacity and
size are
equal.
Example:
class StringBufferDemo {
[Link]([Link]());//1000
[Link]("ashok");
[Link]([Link]());//1000
[Link]();
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
[Link]([Link]());//5
Example:
class StringBufferDemo {
[Link]([Link]());//16
[Link](1000);
[Link]([Link]());//1000
Note :
StringBuilder.
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
StringBuilder (1.5v)
system.
StringBuffer Vs StringBuilder
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]
1. If the content is fixed and won't change frequently then we should
go for String.
50, Lakhanpur Housing Society, Near Lucky Restaurant, Vikas Nagar 208024
Contact: 9794687277, 8707276645
Web: [Link], email: bytecodeitsolutions@[Link]