<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Harini</title>
    <description>The latest articles on DEV Community by Harini (@harini_magesh_fa40041cf8d).</description>
    <link>https://dev.to/harini_magesh_fa40041cf8d</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3615658%2F5676ec6e-b9c3-477c-9deb-cf76547e8ec1.png</url>
      <title>DEV Community: Harini</title>
      <link>https://dev.to/harini_magesh_fa40041cf8d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harini_magesh_fa40041cf8d"/>
    <language>en</language>
    <item>
      <title>Difference Between ArrayList and LinkedList in Java</title>
      <dc:creator>Harini</dc:creator>
      <pubDate>Wed, 10 Jun 2026 05:56:49 +0000</pubDate>
      <link>https://dev.to/harini_magesh_fa40041cf8d/difference-between-arraylist-and-linkedlist-in-java-2007</link>
      <guid>https://dev.to/harini_magesh_fa40041cf8d/difference-between-arraylist-and-linkedlist-in-java-2007</guid>
      <description>&lt;p&gt;ArrayList and LinkedList are two commonly used classes in the Java Collections Framework. Both implement the List interface and allow duplicate elements while maintaining insertion order. However, they differ in how data is stored and how operations are performed.&lt;/p&gt;




&lt;h2&gt;
  
  
  ArrayList
&lt;/h2&gt;

&lt;p&gt;ArrayList uses a &lt;strong&gt;dynamic array&lt;/strong&gt; to store elements. It provides fast access to elements using indexes and is suitable when data retrieval is performed frequently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features of ArrayList
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Uses a dynamic array internally.&lt;/li&gt;
&lt;li&gt;Maintains insertion order.&lt;/li&gt;
&lt;li&gt;Allows duplicate elements.&lt;/li&gt;
&lt;li&gt;Fast random access using indexes.&lt;/li&gt;
&lt;li&gt;Slower insertion and deletion in the middle of the list because elements need to be shifted.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  LinkedList
&lt;/h2&gt;

&lt;p&gt;LinkedList uses a &lt;strong&gt;doubly linked list&lt;/strong&gt; to store elements. Each element is stored as a node containing data and references to the previous and next nodes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features of LinkedList
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Uses a doubly linked list internally.&lt;/li&gt;
&lt;li&gt;Maintains insertion order.&lt;/li&gt;
&lt;li&gt;Allows duplicate elements.&lt;/li&gt;
&lt;li&gt;Fast insertion and deletion operations.&lt;/li&gt;
&lt;li&gt;Slower access to elements because it must traverse the list.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ArrayList vs LinkedList
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;ArrayList&lt;/th&gt;
&lt;th&gt;LinkedList&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Definition&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A dynamic array implementation of the List interface.&lt;/td&gt;
&lt;td&gt;A doubly linked list implementation of the List interface.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data Storage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Stores elements in a dynamic array.&lt;/td&gt;
&lt;td&gt;Stores elements as connected nodes.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Access Time&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fast access using index (&lt;strong&gt;O(1)&lt;/strong&gt;).&lt;/td&gt;
&lt;td&gt;Slower access because it traverses nodes (&lt;strong&gt;O(n)&lt;/strong&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Insertion/Deletion&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Slower in the beginning or middle because elements need to be shifted.&lt;/td&gt;
&lt;td&gt;Faster because nodes can be added or removed without shifting elements.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Memory Usage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Uses less memory.&lt;/td&gt;
&lt;td&gt;Uses more memory due to previous and next references.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Iteration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Generally faster for traversing elements.&lt;/td&gt;
&lt;td&gt;Slightly slower than ArrayList.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best Use Case&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Frequent searching and accessing of elements.&lt;/td&gt;
&lt;td&gt;Frequent insertion and deletion of elements.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  When to Use ArrayList?
&lt;/h2&gt;

&lt;p&gt;Use ArrayList when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You frequently access elements using indexes.&lt;/li&gt;
&lt;li&gt;Read operations are more common than insertions and deletions.&lt;/li&gt;
&lt;li&gt;Better performance for searching and retrieving data is required.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;ArrayList&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ArrayList&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Java"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;get&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  When to Use LinkedList?
&lt;/h2&gt;

&lt;p&gt;Use LinkedList when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You frequently insert or remove elements.&lt;/li&gt;
&lt;li&gt;Queue or Deque operations are required.&lt;/li&gt;
&lt;li&gt;The application performs more updates than searches.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;LinkedList&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;LinkedList&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addFirst&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Java"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;removeLast&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>java</category>
      <category>arraylist</category>
      <category>linkedlist</category>
      <category>beginners</category>
    </item>
    <item>
      <title>LinkedList in Java</title>
      <dc:creator>Harini</dc:creator>
      <pubDate>Wed, 10 Jun 2026 05:56:26 +0000</pubDate>
      <link>https://dev.to/harini_magesh_fa40041cf8d/linkedlist-in-java-okc</link>
      <guid>https://dev.to/harini_magesh_fa40041cf8d/linkedlist-in-java-okc</guid>
      <description>&lt;p&gt;LinkedList is a class in Java Collections Framework available in the java.util package.It stores data as nodes, where each node contains the element and links to the previous and next nodes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The size of a LinkedList can increase or decrease automatically while the program is running.&lt;/li&gt;
&lt;li&gt;It maintains the insertion order, meaning elements are stored in the order they are added.&lt;/li&gt;
&lt;li&gt;It allows duplicate elements.&lt;/li&gt;
&lt;li&gt;It provides faster insertion and deletion of elements compared to ArrayList, especially at the beginning or middle of the list.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why LinkedList is Used?&lt;/strong&gt;&lt;br&gt;
LinkedList is preferred when:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Frequent Insertion&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding elements in the middle or beginning is fast.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;addFirst&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Java"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;2. Frequent Deletion&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Removing elements does not require shifting other elements.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;remove&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;3. Queue and Deque Operations&lt;/strong&gt;&lt;br&gt;
LinkedList supports operations like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;addFirst()
addLast()
removeFirst()
removeLast()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hence it can be used as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Queue&lt;/li&gt;
&lt;li&gt;Deque&lt;/li&gt;
&lt;li&gt;Stack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What is a Doubly Linked List?&lt;/strong&gt;&lt;br&gt;
A Doubly Linked List is a type of linked list in which each node contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data – the actual value stored.&lt;/li&gt;
&lt;li&gt;Previous Reference (Prev) – points to the previous node.&lt;/li&gt;
&lt;li&gt;Next Reference (Next) – points to the next node.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because each node has links in both directions, we can traverse the list forward as well as backward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structure&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NULL ← [10] ⇄ [20] ⇄ [30] ⇄ [40] → NULL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each node contains:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ Prev | Data | Next ]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[NULL | 10 | Address of 20]
[Address of 10 | 20 | Address of 30]
[Address of 20 | 30 | Address of 40]
[Address of 30 | 40 | NULL]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Advantages of Doubly Linked List&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Supports forward and backward traversal.&lt;/li&gt;
&lt;li&gt;Faster insertion and deletion compared to arrays.&lt;/li&gt;
&lt;li&gt;Easy to implement Queue, Deque, and Browser History features.&lt;/li&gt;
&lt;li&gt;No need to shift elements during insertion or deletion.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages of Doubly Linked List&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requires extra memory to store the previous reference.&lt;/li&gt;
&lt;li&gt;More complex than a singly linked list.&lt;/li&gt;
&lt;li&gt;Accessing elements by index is slower because traversal is required.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>java</category>
      <category>linkedlist</category>
      <category>beginners</category>
      <category>basic</category>
    </item>
    <item>
      <title>ArrayList in Java</title>
      <dc:creator>Harini</dc:creator>
      <pubDate>Fri, 05 Jun 2026 12:31:09 +0000</pubDate>
      <link>https://dev.to/harini_magesh_fa40041cf8d/arraylist-in-java-nli</link>
      <guid>https://dev.to/harini_magesh_fa40041cf8d/arraylist-in-java-nli</guid>
      <description>&lt;p&gt;ArrayList is one of the most commonly used classes in Java's collections framework.It provides a dynamic array that can grow and shrink automatically as elements are added or removed. Unlike traditional arrays, you do not need to specify the size in advance.&lt;/p&gt;

&lt;p&gt;ArrayList is part of the &lt;code&gt;java.util&lt;/code&gt; package and implements the list interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why do we need ArrayList?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In Java,array have a fixed size.Once an array is created,its size cannot be changed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Limitations of Arrays&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed size.&lt;/li&gt;
&lt;li&gt;Insertion and deletion are difficult.&lt;/li&gt;
&lt;li&gt;No built-in methods for data manipulation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To overcome these limitations,Java provides ArrayList,which offers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dynamic resizing&lt;/li&gt;
&lt;li&gt;Easy insertion and deletion&lt;/li&gt;
&lt;li&gt;Built-in utility methods&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Features of ArrayList&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1.Dynamic size&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ArrayList automatically increases or decreases its capacity based on the number of elements.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2.Maintains insertion order&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Elements are stored in the same order in which they are inserted.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3.Allows duplicate elements&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple identical values can be stored.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4.Random access&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Elements can be accessed directly using their index.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5.Stores objects&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ArrayList stores objects rather than primitive datatypes.Wrapper classes are used for primitives.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int -&amp;gt; Integer
double -&amp;gt; Double
char -&amp;gt; Character
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>java</category>
      <category>arraylist</category>
      <category>basic</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Collections in Java</title>
      <dc:creator>Harini</dc:creator>
      <pubDate>Fri, 05 Jun 2026 05:23:58 +0000</pubDate>
      <link>https://dev.to/harini_magesh_fa40041cf8d/collections-in-java-4nc9</link>
      <guid>https://dev.to/harini_magesh_fa40041cf8d/collections-in-java-4nc9</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Collections Framework in Java?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Java Collections Framework (JCF)&lt;/strong&gt; is a set of classes and interfaces provided by Java to store, manage, and manipulate groups of objects efficiently.&lt;/p&gt;

&lt;p&gt;Before Collections, developers mainly used arrays. Arrays have a fixed size and limited functionality. Collections provide dynamic storage and many built-in methods for handling data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Package&lt;/strong&gt;: java.util&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is Collections Used?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Collections are used to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store multiple objects dynamically.&lt;/li&gt;
&lt;li&gt;Perform searching, sorting, insertion, and deletion easily.&lt;/li&gt;
&lt;li&gt;Reduce coding effort through built-in methods.&lt;/li&gt;
&lt;li&gt;Improve code reusability and maintainability.&lt;/li&gt;
&lt;li&gt;Handle large amounts of data efficiently.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Without Collections&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="o"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Fixed size&lt;/li&gt;
&lt;li&gt;Difficult to resize&lt;/li&gt;
&lt;li&gt;Limited operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;With Collections&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;ArrayList&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Integer&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ArrayList&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Dynamic size&lt;/li&gt;
&lt;li&gt;Easy insertion and deletion&lt;/li&gt;
&lt;li&gt;Rich utility methods&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dynamic Size&lt;/li&gt;
&lt;li&gt;Ready-Made Data Structures&lt;/li&gt;
&lt;li&gt;Better Performance&lt;/li&gt;
&lt;li&gt;Reusability and Maintainability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;List Interface&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A List stores elements in insertion order and allows duplicates.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ordered&lt;/li&gt;
&lt;li&gt;Duplicate elements allowed&lt;/li&gt;
&lt;li&gt;Index-based access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Set Interface&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Set stores unique elements only.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No duplicates&lt;/li&gt;
&lt;li&gt;Usually unordered&lt;/li&gt;
&lt;li&gt;Faster searching&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Map Interface&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Map stores data as Key-Value pairs.&lt;/li&gt;
&lt;li&gt;A key must be unique.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Key-Value storage&lt;/li&gt;
&lt;li&gt;Duplicate keys not allowed&lt;/li&gt;
&lt;li&gt;Values can be duplicated&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>java</category>
      <category>coding</category>
      <category>beginners</category>
    </item>
    <item>
      <title>File Handling in Java</title>
      <dc:creator>Harini</dc:creator>
      <pubDate>Thu, 04 Jun 2026 07:11:29 +0000</pubDate>
      <link>https://dev.to/harini_magesh_fa40041cf8d/file-handling-in-java-56lj</link>
      <guid>https://dev.to/harini_magesh_fa40041cf8d/file-handling-in-java-56lj</guid>
      <description>&lt;h2&gt;
  
  
  What is File Handling?
&lt;/h2&gt;

&lt;p&gt;File Handling in Java is the process of creating, reading, writing, updating, and deleting files stored on a storage device such as a hard disk, SSD, or external drive.&lt;/p&gt;

&lt;p&gt;Normally, data stored in variables exists only while the program is running. Once the program terminates, that data is lost. File handling enables applications to store data permanently so that it can be accessed even after the program has ended.&lt;/p&gt;

&lt;p&gt;Java provides file handling support mainly through the &lt;code&gt;java.io&lt;/code&gt; package and the modern &lt;code&gt;java.nio.file&lt;/code&gt; package.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why is File Handling Important?
&lt;/h1&gt;

&lt;p&gt;File handling is used to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store application data permanently&lt;/li&gt;
&lt;li&gt;Save user information&lt;/li&gt;
&lt;li&gt;Generate reports&lt;/li&gt;
&lt;li&gt;Maintain logs&lt;/li&gt;
&lt;li&gt;Store configuration settings&lt;/li&gt;
&lt;li&gt;Transfer data between applications&lt;/li&gt;
&lt;li&gt;Read existing records from files&lt;/li&gt;
&lt;li&gt;Backup important information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without file handling, applications would have to rely solely on memory, causing all data to be lost when the application closes.&lt;/p&gt;




&lt;h1&gt;
  
  
  File Class in Java
&lt;/h1&gt;

&lt;p&gt;The &lt;code&gt;File&lt;/code&gt; class is the foundation of file handling in Java.&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;File&lt;/code&gt; object represents a file or directory path in the file system. It provides methods to create, delete, rename, and retrieve information about files and directories.&lt;/p&gt;

&lt;p&gt;Creating a &lt;code&gt;File&lt;/code&gt; object does not create the actual file on disk. It simply creates an object that represents the path.&lt;/p&gt;




&lt;h1&gt;
  
  
  Common Methods of the File Class
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. createNewFile()
&lt;/h2&gt;

&lt;p&gt;Creates a new empty file in the specified location.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;boolean&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Returns
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;true&lt;/code&gt; if the file is created successfully.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;false&lt;/code&gt; if the file already exists.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Exception
&lt;/h3&gt;

&lt;p&gt;Throws &lt;code&gt;IOException&lt;/code&gt; if an error occurs during file creation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Used when an application needs to create a new file before storing data.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. exists()
&lt;/h2&gt;

&lt;p&gt;Checks whether a file or directory exists.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;boolean&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Returns
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;true&lt;/code&gt; if the file exists.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;false&lt;/code&gt; if the file does not exist.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Used before performing operations such as reading, writing, or deleting a file.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. delete()
&lt;/h2&gt;

&lt;p&gt;Deletes a file or an empty directory.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;boolean&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Returns
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;true&lt;/code&gt; if deletion is successful.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;false&lt;/code&gt; if deletion fails.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Used to remove unnecessary files from the system.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. getName()
&lt;/h2&gt;

&lt;p&gt;Returns the name of the file or directory.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;String&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Used when displaying or processing file names.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. getAbsolutePath()
&lt;/h2&gt;

&lt;p&gt;Returns the complete path of a file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;String&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Helps identify the exact location of a file in the system.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. getCanonicalPath()
&lt;/h2&gt;

&lt;p&gt;Returns the canonical path of a file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;String&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Provides the unique and standardized file path after resolving relative references such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;..&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It removes ambiguities from the path.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. length()
&lt;/h2&gt;

&lt;p&gt;Returns the size of a file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;long&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Used to determine file size in bytes.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. canRead()
&lt;/h2&gt;

&lt;p&gt;Checks whether the file has read permission.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;boolean&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Returns
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;true&lt;/code&gt; if readable.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;false&lt;/code&gt; otherwise.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Used before reading file contents.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. canWrite()
&lt;/h2&gt;

&lt;p&gt;Checks whether the file has write permission.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;boolean&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Returns
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;true&lt;/code&gt; if writable.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;false&lt;/code&gt; otherwise.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Used before writing data into a file.&lt;/p&gt;




&lt;h2&gt;
  
  
  10. canExecute()
&lt;/h2&gt;

&lt;p&gt;Checks whether the file can be executed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;boolean&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Commonly used for executable files and scripts.&lt;/p&gt;




&lt;h2&gt;
  
  
  11. isFile()
&lt;/h2&gt;

&lt;p&gt;Checks whether the path represents a file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;boolean&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Returns
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;true&lt;/code&gt; if it is a file.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;false&lt;/code&gt; otherwise.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Helps distinguish files from directories.&lt;/p&gt;




&lt;h2&gt;
  
  
  12. isDirectory()
&lt;/h2&gt;

&lt;p&gt;Checks whether the path represents a directory.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;boolean&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Returns
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;true&lt;/code&gt; if it is a directory.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;false&lt;/code&gt; otherwise.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Used when working with folders.&lt;/p&gt;




&lt;h2&gt;
  
  
  13. mkdir()
&lt;/h2&gt;

&lt;p&gt;Creates a single directory.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;boolean&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Used to create one folder.&lt;/p&gt;




&lt;h2&gt;
  
  
  14. mkdirs()
&lt;/h2&gt;

&lt;p&gt;Creates multiple nested directories.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;boolean&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Creates all required parent directories automatically.&lt;/p&gt;




&lt;h2&gt;
  
  
  15. renameTo()
&lt;/h2&gt;

&lt;p&gt;Renames a file or directory.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kt"&gt;boolean&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Used when changing file or folder names.&lt;/p&gt;




&lt;h2&gt;
  
  
  16. list()
&lt;/h2&gt;

&lt;p&gt;Returns all files and folders inside a directory.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Purpose
&lt;/h3&gt;

&lt;p&gt;Used to retrieve directory contents.&lt;/p&gt;




&lt;h2&gt;
  
  
  17. listFiles()
&lt;/h2&gt;

&lt;p&gt;Returns file objects representing all files and directories inside a folder.&lt;/p&gt;

&lt;h3&gt;
  
  
  Return Type
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;File&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>java</category>
      <category>basic</category>
      <category>beginners</category>
    </item>
    <item>
      <title>throw and throws in Java</title>
      <dc:creator>Harini</dc:creator>
      <pubDate>Tue, 02 Jun 2026 06:11:22 +0000</pubDate>
      <link>https://dev.to/harini_magesh_fa40041cf8d/throw-and-throws-in-java-46na</link>
      <guid>https://dev.to/harini_magesh_fa40041cf8d/throw-and-throws-in-java-46na</guid>
      <description>&lt;p&gt;Exception handling is an important feature in Java that helps developers manage runtime errors gracefully.&lt;/p&gt;

&lt;p&gt;Two commonly used keywords in exception handling are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;throw&lt;/li&gt;
&lt;li&gt;throws&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Although they look similar, they serve different purposes.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is &lt;code&gt;throw&lt;/code&gt; in Java?
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;throw&lt;/code&gt; keyword is used to explicitly create and throw an exception from a method or block of code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Syntax
&lt;/h3&gt;

&lt;p&gt;throw new ExceptionType("Error Message");&lt;/p&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;public class ThrowExample {&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public static void main(String[] args) {

    int marks = -10;

    if (marks &amp;lt; 0) {
        throw new ArithmeticException("Marks cannot be negative");
    }

    System.out.println("Valid Marks");
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h3&gt;
  
  
  Output
&lt;/h3&gt;

&lt;p&gt;Exception in thread "main"&lt;br&gt;
java.lang.ArithmeticException: Marks cannot be negative&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Points of &lt;code&gt;throw&lt;/code&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Used to explicitly throw an exception.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Followed by an exception object.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Throws only one exception at a time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can throw both checked and unchecked exceptions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Used inside method body.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What is &lt;code&gt;throws&lt;/code&gt; in Java?
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;throws&lt;/code&gt; keyword is used in a method declaration to indicate that the method may throw one or more exceptions.&lt;/p&gt;

&lt;p&gt;It informs the caller of the method that exception handling is required.&lt;/p&gt;

&lt;h3&gt;
  
  
  Syntax
&lt;/h3&gt;

&lt;p&gt;returnType methodName() throws ExceptionType {&lt;br&gt;
    // code&lt;br&gt;
}&lt;/p&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;import java.io.IOException;&lt;/p&gt;

&lt;p&gt;public class ThrowsExample {&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;static void readFile() throws IOException {
    throw new IOException("File not found");
}

public static void main(String[] args) {

    try {
        readFile();
    }
    catch(IOException e) {
        System.out.println(e.getMessage());
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h3&gt;
  
  
  Output
&lt;/h3&gt;

&lt;p&gt;File not found&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Points of &lt;code&gt;throws&lt;/code&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Used in method declaration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Declares possible exceptions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can declare multiple exceptions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mainly used for checked exceptions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Responsibility is passed to the caller.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Example Using Both &lt;code&gt;throw&lt;/code&gt; and &lt;code&gt;throws&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;import java.io.IOException;&lt;/p&gt;

&lt;p&gt;public class Demo {&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;static void validateAge(int age) throws IOException {

    if(age &amp;lt; 18) {
        throw new IOException("Not eligible to vote");
    }

    System.out.println("Eligible to vote");
}

public static void main(String[] args) {

    try {
        validateAge(15);
    }
    catch(IOException e) {
        System.out.println(e.getMessage());
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h3&gt;
  
  
  Output
&lt;/h3&gt;

&lt;p&gt;Not eligible to vote&lt;/p&gt;

&lt;h3&gt;
  
  
  Explanation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;throws IOException&lt;/code&gt; declares that the method may throw an IOException.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;throw new IOException()&lt;/code&gt; actually creates and throws the exception.&lt;/li&gt;
&lt;li&gt;The caller handles it using try-catch.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Difference Between &lt;code&gt;throw&lt;/code&gt; and &lt;code&gt;throws&lt;/code&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;throw&lt;/th&gt;
&lt;th&gt;throws&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Purpose&lt;/td&gt;
&lt;td&gt;Explicitly throws an exception&lt;/td&gt;
&lt;td&gt;Declares exceptions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Location&lt;/td&gt;
&lt;td&gt;Inside method body&lt;/td&gt;
&lt;td&gt;Method declaration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Followed By&lt;/td&gt;
&lt;td&gt;Exception object&lt;/td&gt;
&lt;td&gt;Exception class name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Number of Exceptions&lt;/td&gt;
&lt;td&gt;One at a time&lt;/td&gt;
&lt;td&gt;Multiple exceptions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Usage&lt;/td&gt;
&lt;td&gt;To generate exception&lt;/td&gt;
&lt;td&gt;To delegate exception handling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keyword Type&lt;/td&gt;
&lt;td&gt;Statement&lt;/td&gt;
&lt;td&gt;Clause&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>java</category>
      <category>basic</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Why Objects Are Passed as Arguments in Java – Complete Guide for Beginners</title>
      <dc:creator>Harini</dc:creator>
      <pubDate>Fri, 29 May 2026 05:00:55 +0000</pubDate>
      <link>https://dev.to/harini_magesh_fa40041cf8d/why-objects-are-passed-as-arguments-in-java-complete-guide-for-beginners-2kib</link>
      <guid>https://dev.to/harini_magesh_fa40041cf8d/why-objects-are-passed-as-arguments-in-java-complete-guide-for-beginners-2kib</guid>
      <description>&lt;p&gt;In Java, objects are often passed as arguments to methods. This is an important concept in Object-Oriented Programming (OOP) because it helps methods work with real-world data efficiently.&lt;/p&gt;

&lt;p&gt;Before understanding why objects are passed as arguments, let us first understand what an object is.&lt;/p&gt;




&lt;h1&gt;
  
  
  What is an Object in Java?
&lt;/h1&gt;

&lt;p&gt;An object is an instance of a class.&lt;/p&gt;

&lt;p&gt;A class is like a blueprint, and an object is the real implementation created from that blueprint.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Harini"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;mark&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Student&lt;/code&gt; is a class&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;name&lt;/code&gt; and &lt;code&gt;mark&lt;/code&gt; are data members&lt;/li&gt;
&lt;li&gt;An object can be created using the &lt;code&gt;new&lt;/code&gt; keyword
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;Student&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now &lt;code&gt;obj&lt;/code&gt; contains the data and behavior of the &lt;code&gt;Student&lt;/code&gt; class.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why Do We Pass Objects as Arguments?
&lt;/h1&gt;

&lt;p&gt;Objects are passed as arguments mainly for the following reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;To access object data inside another method&lt;/li&gt;
&lt;li&gt;To reduce code complexity&lt;/li&gt;
&lt;li&gt;To modify object values&lt;/li&gt;
&lt;li&gt;To achieve code reusability&lt;/li&gt;
&lt;li&gt;To work with real-world applications efficiently&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let us understand each point in detail.&lt;/p&gt;




&lt;h1&gt;
  
  
  1. To Access Object Data Inside Another Method
&lt;/h1&gt;

&lt;p&gt;When an object is passed to a method, the method can access all the variables and methods of that object.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

    &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Harini"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;mark&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Main&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

    &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;display&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Student&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Student Name: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Student Mark: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;mark&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

        &lt;span class="nc"&gt;Student&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

        &lt;span class="nc"&gt;Main&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Main&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

        &lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;display&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Output
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;Student&lt;/span&gt; &lt;span class="nl"&gt;Name:&lt;/span&gt; &lt;span class="nc"&gt;Harini&lt;/span&gt;
&lt;span class="nc"&gt;Student&lt;/span&gt; &lt;span class="nl"&gt;Mark:&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Explanation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;obj&lt;/code&gt; is an object of the &lt;code&gt;Student&lt;/code&gt; class&lt;/li&gt;
&lt;li&gt;The object is passed to the &lt;code&gt;display()&lt;/code&gt; method&lt;/li&gt;
&lt;li&gt;Inside the method, &lt;code&gt;s&lt;/code&gt; receives the object reference&lt;/li&gt;
&lt;li&gt;Using &lt;code&gt;s.name&lt;/code&gt; and &lt;code&gt;s.mark&lt;/code&gt;, we access the object's data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allows methods to work directly with object information.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. To Reduce Code Complexity
&lt;/h1&gt;

&lt;p&gt;Instead of passing many individual variables, we can pass a single object.&lt;/p&gt;

&lt;h2&gt;
  
  
  Without Passing Object
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Harini"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Chennai"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;12345&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the class contains many fields, the method becomes difficult to manage.&lt;/p&gt;

&lt;h2&gt;
  
  
  With Passing Object
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;studentObj&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The entire data is available through the object.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Cleaner code&lt;/li&gt;
&lt;li&gt;Easy to read&lt;/li&gt;
&lt;li&gt;Easy to maintain&lt;/li&gt;
&lt;li&gt;Reduces parameter list size&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  3. To Modify Object Values
&lt;/h1&gt;

&lt;p&gt;When an object is passed to a method, the method can modify the object's data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;salary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20000&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Main&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

    &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;increaseSalary&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Employee&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

        &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;salary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;30000&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

        &lt;span class="nc"&gt;Employee&lt;/span&gt; &lt;span class="n"&gt;emp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

        &lt;span class="nc"&gt;Main&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Main&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Before Increment: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;emp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;salary&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

        &lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;increaseSalary&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;emp&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"After Increment: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;emp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;salary&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Output
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;Before&lt;/span&gt; &lt;span class="nl"&gt;Increment:&lt;/span&gt; &lt;span class="mi"&gt;20000&lt;/span&gt;
&lt;span class="nc"&gt;After&lt;/span&gt; &lt;span class="nl"&gt;Increment:&lt;/span&gt; &lt;span class="mi"&gt;30000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Explanation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The original object is passed to the method&lt;/li&gt;
&lt;li&gt;The method changes the &lt;code&gt;salary&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Since both references point to the same object, the original value changes&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  How Java Passes Objects
&lt;/h1&gt;

&lt;p&gt;This is one of the most important interview concepts.&lt;/p&gt;

&lt;p&gt;Java does NOT pass the actual object.&lt;/p&gt;

&lt;p&gt;Java passes the &lt;strong&gt;reference of the object by value&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  What Does "Reference by Value" Mean?
&lt;/h1&gt;

&lt;p&gt;When an object is created:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;Student&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;obj&lt;/code&gt; stores the memory address (reference) of the object&lt;/li&gt;
&lt;li&gt;When passed to a method, Java copies this reference&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;obj&lt;/code&gt; and method parameter &lt;code&gt;s&lt;/code&gt; point to the same object in memory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why object data can be modified inside methods.&lt;/p&gt;




&lt;h1&gt;
  
  
  Memory Representation
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;obj  ---------&amp;gt;  Student Object
                     name = Harini
                     mark = 90

s    ---------&amp;gt;  Same Student Object
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both references point to the same object.&lt;/p&gt;




</description>
      <category>java</category>
      <category>beginners</category>
      <category>basic</category>
    </item>
    <item>
      <title>Exception Handling in Java</title>
      <dc:creator>Harini</dc:creator>
      <pubDate>Fri, 22 May 2026 04:45:21 +0000</pubDate>
      <link>https://dev.to/harini_magesh_fa40041cf8d/exception-handling-in-java-2mk3</link>
      <guid>https://dev.to/harini_magesh_fa40041cf8d/exception-handling-in-java-2mk3</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is an Exception?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An exception is an event that disrupts the normal execution of a program.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ArithmeticException&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here, dividing by zero causes an exception.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exception Handling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Exception handling is a mechanism used to handle runtime errors so the program does not terminate suddenly.&lt;/p&gt;

&lt;p&gt;It allows the program to continue execution normally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Exception Handling is Used&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Without exception handling:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Program stops immediately when an error occurs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With exception handling:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error can be handled properly.&lt;/li&gt;
&lt;li&gt;Remaining code can continue executing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Test&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Start"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

        &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"End"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Start&lt;br&gt;
Exception in thread "main" java.lang.ArithmeticException&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;End will not execute.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;try-catch in Java&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;try-catch is used to handle exceptions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Syntax&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// risky code&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExceptionType&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// handling code&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Example of try-catch&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Test&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

        &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;

        &lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ArithmeticException&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Cannot divide by zero"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Program continues"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Cannot divide by zero&lt;br&gt;
Program continues&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-Time Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ATM application:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If wrong PIN is entered,program should show error message instead of stopping.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Banking apps, websites, and mobile apps use exception handling to avoid crashes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>java</category>
      <category>basic</category>
      <category>coding</category>
      <category>programming</category>
    </item>
    <item>
      <title>String in Java</title>
      <dc:creator>Harini</dc:creator>
      <pubDate>Tue, 19 May 2026 13:22:05 +0000</pubDate>
      <link>https://dev.to/harini_magesh_fa40041cf8d/string-in-java-32nn</link>
      <guid>https://dev.to/harini_magesh_fa40041cf8d/string-in-java-32nn</guid>
      <description>&lt;p&gt;The String in Java is a sequence of characters used to store and manipulate text.It is one of the most used classes in Java.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each character in a string is stored using 16-bit Unicode (UTF-16) encoding.&lt;/li&gt;
&lt;li&gt;Strings are immutable, meaning their value cannot be changed after creation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Hello"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;concat&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;" World"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

&lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Hello&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Because concat() creates a new string instead of modifying the old one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ways to Create String&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. String Literal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:1&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Demo&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Harini"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Harini&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is this called String Literal?&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Harini"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;"Harini" → String literal&lt;/li&gt;
&lt;li&gt;It is directly written inside double quotes.&lt;/li&gt;
&lt;li&gt;Java stores it inside the String Constant Pool.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example: 2&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Test&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Java"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Java"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;true&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Because both a and b point to the same object in the String pool.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;String Pool&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Java stores string literals in a special memory area called the String Constant Pool.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Using new Keyword&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Demo&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;s1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Java"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;s2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Java"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s1&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s2&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s1&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;s2&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;equals&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s2&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;Java&lt;br&gt;
Java&lt;br&gt;
false&lt;br&gt;
true&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating String using new&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;s1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Java"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;new keyword creates a new object&lt;/li&gt;
&lt;li&gt;Object is created in heap memory&lt;/li&gt;
&lt;li&gt;Even if "Java" already exists, Java creates another new object&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Same for:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;s2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Java"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So s1 and s2 are different objects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why s1 == s2 is false?&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s1&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;s2&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;false&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;== compares memory address/reference&lt;/li&gt;
&lt;li&gt;s1 and s2 are different objects in memory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why s1.equals(s2) is true?&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;equals&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s2&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;true&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;equals() compares actual content&lt;/li&gt;
&lt;li&gt;Both strings contain "Java"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Memory Representation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;String s1 = new String("Java");&lt;/li&gt;
&lt;li&gt;String s2 = new String("Java");&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Heap Memory&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;s1  ---&amp;gt;  "Java"   (Object 1)&lt;/p&gt;

&lt;p&gt;s2  ---&amp;gt;  "Java"   (Object 2)&lt;/p&gt;

&lt;p&gt;Two separate objects are created.&lt;/p&gt;

</description>
      <category>java</category>
      <category>basic</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Abstraction in Java</title>
      <dc:creator>Harini</dc:creator>
      <pubDate>Thu, 14 May 2026 05:46:50 +0000</pubDate>
      <link>https://dev.to/harini_magesh_fa40041cf8d/abstraction-in-java-56n8</link>
      <guid>https://dev.to/harini_magesh_fa40041cf8d/abstraction-in-java-56n8</guid>
      <description>&lt;p&gt;Abstraction in Java is a core concept of Object-Oriented Programming (OOP). It means hiding unnecessary implementation details and showing only the essential features of an object.&lt;/p&gt;

&lt;p&gt;Abstraction focuses on what an object does instead of how it does it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;
When you drive a car, you use the steering wheel, accelerator, and brakes — you don’t need to know how the engine works internally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Abstraction is Achieved in Java&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In Java, abstraction is implemented using:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Abstract Classes

&lt;ul&gt;
&lt;li&gt;Declared using the keyword abstract&lt;/li&gt;
&lt;li&gt;Can have:&lt;/li&gt;
&lt;li&gt;Abstract methods (no body)&lt;/li&gt;
&lt;li&gt;Concrete methods (with body)
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;abstract&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Animal&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;abstract&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;sound&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// abstract method&lt;/span&gt;

    &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;eat&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"This animal eats food"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Dog&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Animal&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;sound&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Dog barks"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Interfaces&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used for 100% abstraction (traditionally)&lt;/li&gt;
&lt;li&gt;All methods are abstract by default (until Java 8 added default methods)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;interface&lt;/span&gt; &lt;span class="nc"&gt;Vehicle&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Car&lt;/span&gt; &lt;span class="kd"&gt;implements&lt;/span&gt; &lt;span class="nc"&gt;Vehicle&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Car starts with a key"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key Points&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You cannot create objects of abstract classes directly.&lt;/li&gt;
&lt;li&gt;Interfaces support multiple inheritance, while classes do not.&lt;/li&gt;
&lt;li&gt;Abstraction helps in:

&lt;ul&gt;
&lt;li&gt;Reducing complexity&lt;/li&gt;
&lt;li&gt;Increasing code reusability&lt;/li&gt;
&lt;li&gt;Improving security (hiding data)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Difference from Encapsulation&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Abstraction → Hides implementation details&lt;/li&gt;
&lt;li&gt;Encapsulation → Hides data (using private variables and getters/setters)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>java</category>
      <category>beginners</category>
      <category>basic</category>
    </item>
    <item>
      <title>Final Keyword in java</title>
      <dc:creator>Harini</dc:creator>
      <pubDate>Thu, 14 May 2026 05:30:02 +0000</pubDate>
      <link>https://dev.to/harini_magesh_fa40041cf8d/final-keyword-in-java-1n5n</link>
      <guid>https://dev.to/harini_magesh_fa40041cf8d/final-keyword-in-java-1n5n</guid>
      <description>&lt;p&gt;In Java, the final keyword is used to restrict changes. Once something is marked as final, it cannot be modified further. It can be applied in three main places: variables, methods, and classes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Final Variable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A final variable acts like a constant — its value cannot be changed once assigned.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;GRT&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;price&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;15000&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;display&lt;/span&gt;&lt;span class="o"&gt;(){&lt;/span&gt;
        &lt;span class="no"&gt;GRT&lt;/span&gt; &lt;span class="n"&gt;grt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="no"&gt;GRT&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
        &lt;span class="n"&gt;grt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;price&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;grt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;price&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8l19cmkcf72sj3yg0jbb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8l19cmkcf72sj3yg0jbb.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key point:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You must assign value once&lt;/li&gt;
&lt;li&gt;After that, no reassignment allowed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Final Method&lt;/strong&gt;&lt;br&gt;
A final method cannot be overridden by subclasses.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Parent&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;show&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"This is final method"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Child&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Parent&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// void show() { } ❌ Error: cannot override final method&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key point:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used when you want to prevent method overriding&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Final Class&lt;/strong&gt;&lt;br&gt;
A final class cannot be extended (inherited).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;A&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;display&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Final class"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// class B extends A { } ❌ Error: cannot inherit final class&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key point:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used when you want to stop inheritance&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>java</category>
      <category>beginners</category>
      <category>basic</category>
    </item>
    <item>
      <title>POJO in Java</title>
      <dc:creator>Harini</dc:creator>
      <pubDate>Tue, 12 May 2026 05:09:47 +0000</pubDate>
      <link>https://dev.to/harini_magesh_fa40041cf8d/pojo-in-java-pgp</link>
      <guid>https://dev.to/harini_magesh_fa40041cf8d/pojo-in-java-pgp</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is a POJO?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;POJO stands for Plain Old Java Object. It is a term used to describe a simple Java class that follows basic coding conventions and does not depend on any specific frameworks or external libraries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In simple words, a POJO is just a normal Java object created to hold and manage data in a clean and straightforward way.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key Features of a POJO&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A typical POJO usually includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Private variables (fields) to store data&lt;/li&gt;
&lt;li&gt;Public getter and setter methods to access and update those fields&lt;/li&gt;
&lt;li&gt;Optional methods for additional behavior (like toString())&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It may also have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A no-argument constructor&lt;/li&gt;
&lt;li&gt;A parameterized constructor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Properties of a POJO&lt;/strong&gt;&lt;br&gt;
A class is considered a POJO if it does not:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extend any predefined class (e.g., HttpServlet, EntityBean, etc.)&lt;/li&gt;
&lt;li&gt;Implement any predefined interface (e.g., javax.ejb.EntityBean)&lt;/li&gt;
&lt;li&gt;Contain framework-specific annotations (e.g., &lt;a class="mentioned-user" href="https://dev.to/entity"&gt;@entity&lt;/a&gt;, @Component)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// Default constructor&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;Employee&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt;

    &lt;span class="c1"&gt;// Parameterized constructor&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;Employee&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;// Getter&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;getId&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;// Setter&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setId&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;// Getter&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;getName&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;// Setter&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setName&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What is a JavaBean?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A JavaBean is a special type of POJO that follows a set of strict rules (conventions). It is mainly used to encapsulate data and make it reusable across applications.&lt;/p&gt;

&lt;p&gt;Every JavaBean is a POJO, but not every POJO is a JavaBean.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rules for a JavaBean&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Must implement the Serializable interface.&lt;/li&gt;
&lt;li&gt;Must have a no-argument constructor.&lt;/li&gt;
&lt;li&gt;All fields must be private.&lt;/li&gt;
&lt;li&gt;Each property should have corresponding getter and setter methods.&lt;/li&gt;
&lt;li&gt;Fields must be accessed only through these methods (not directly).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This design provides encapsulation and controlled access to object properties.&lt;/p&gt;

</description>
      <category>java</category>
      <category>basic</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
