<?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>Forem: Varudhammal Abinaya</title>
    <description>The latest articles on Forem by Varudhammal Abinaya (@varudhammal_abinaya).</description>
    <link>https://forem.com/varudhammal_abinaya</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%2F3359569%2Ffd5c88b7-b6fc-46e3-b09f-4b06b4727a8c.jpg</url>
      <title>Forem: Varudhammal Abinaya</title>
      <link>https://forem.com/varudhammal_abinaya</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/varudhammal_abinaya"/>
    <language>en</language>
    <item>
      <title>AWS Cloud Training – Day 2</title>
      <dc:creator>Varudhammal Abinaya</dc:creator>
      <pubDate>Sat, 23 Aug 2025 06:26:24 +0000</pubDate>
      <link>https://forem.com/varudhammal_abinaya/aws-cloud-training-day-2-2791</link>
      <guid>https://forem.com/varudhammal_abinaya/aws-cloud-training-day-2-2791</guid>
      <description>&lt;p&gt;Following the first session, I successfully completed Day 2 of my AWS training! Today’s focus was on Networking concepts, VPC setup, and hosting applications with custom domains.&lt;br&gt;
🔹 Networking Basics&lt;br&gt;
Explored IP Address classes (A, B, C, D, E) and the concept of CIDR (Classless Inter-Domain Routing).&lt;br&gt;
Understood the difference between IPv4 (32-bit) and IPv6 (128-bit) addressing.&lt;br&gt;
Learned about subnets (public vs private) and their role in controlling access.&lt;br&gt;
🔹 VPC (Virtual Private Cloud)&lt;br&gt;
Created a VPC with a CIDR range, public and private subnets, and attached an Internet Gateway.&lt;br&gt;
Configured route tables to manage public and private traffic.&lt;br&gt;
Understood Security Groups (SGs) vs Network ACLs (NACLs).&lt;br&gt;
Explored NAT Gateways for enabling internet access from private subnets.&lt;br&gt;
🔹 S3 &amp;amp; IAM&lt;br&gt;
Created an S3 bucket, uploaded objects, and configured public access using ACLs.&lt;br&gt;
Assigned IAM roles to EC2 instances for secure access to S3 using CLI commands.&lt;br&gt;
🔹 Application Hosting with GoDaddy &amp;amp; Route 53&lt;br&gt;
Registered a custom domain with GoDaddy.&lt;br&gt;
Integrated it with AWS Route 53 by updating nameservers.&lt;br&gt;
Used AWS Certificate Manager (ACM) to enable HTTPS with SSL certificates.&lt;br&gt;
Validated domains using DNS records (A, CNAME).&lt;br&gt;
🔹 Databases (RDS)&lt;br&gt;
Set up Amazon RDS (MySQL) in a subnet group.&lt;br&gt;
Understood database endpoints, credentials, and connectivity.&lt;br&gt;
Compared monolithic vs microservices architectures.&lt;br&gt;
✨ Key Takeaway: Day 2 gave me a deeper understanding of how networking, domains, storage, and databases all come together in AWS to securely host and scale applications.&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS #CloudComputing #Networking #AWSTraining #LearningInPublic #Day2 this is what it gave
&lt;/h1&gt;

</description>
      <category>aws</category>
      <category>learning</category>
      <category>cloud</category>
    </item>
    <item>
      <title>🚀 AWS Cloud Training – Day 1: Getting Started with EC2 &amp; Environments</title>
      <dc:creator>Varudhammal Abinaya</dc:creator>
      <pubDate>Fri, 22 Aug 2025 06:32:43 +0000</pubDate>
      <link>https://forem.com/varudhammal_abinaya/aws-cloud-training-day-1-getting-started-with-ec2-environments-4kd9</link>
      <guid>https://forem.com/varudhammal_abinaya/aws-cloud-training-day-1-getting-started-with-ec2-environments-4kd9</guid>
      <description>&lt;p&gt;This week, I started my AWS training, and Day 1 was all about getting hands-on with EC2 instances, Linux basics, and web application deployment. In this post, I’ll share the key concepts I learned and how I practiced them step by step.&lt;/p&gt;

&lt;p&gt;🖥️ Environments in the Software Lifecycle&lt;/p&gt;

&lt;p&gt;Before working with servers, I learned about the different environments used in application development:&lt;/p&gt;

&lt;p&gt;Development → For coding &amp;amp; initial unit testing.&lt;/p&gt;

&lt;p&gt;Testing (QA) → Quality assurance checks.&lt;/p&gt;

&lt;p&gt;UAT (User Acceptance Testing) → End-user validation.&lt;/p&gt;

&lt;p&gt;CAT (Client Acceptance Testing) → Final client sign-off before production.&lt;/p&gt;

&lt;p&gt;These environments ensure that the application is thoroughly tested before going live.&lt;/p&gt;

&lt;p&gt;☁️ Launching an EC2 Instance&lt;/p&gt;

&lt;p&gt;Amazon EC2 (Elastic Compute Cloud) allows us to run virtual machines in the cloud. Here’s how I launched my first instance:&lt;/p&gt;

&lt;p&gt;Launch instance → Selected 1 instance and tagged it as abinaya-vm.&lt;/p&gt;

&lt;p&gt;Choose instance type → t2.micro (Free Tier).&lt;/p&gt;

&lt;p&gt;Select AMI → Linux AMI (preloaded with Python/Java).&lt;/p&gt;

&lt;p&gt;Secure access → Generated a key pair (.pem → converted to .ppk for PuTTY).&lt;/p&gt;

&lt;p&gt;Networking &amp;amp; Security → Configured Security Groups for:&lt;/p&gt;

&lt;p&gt;SSH (port 22) → Secure login&lt;/p&gt;

&lt;p&gt;HTTP (port 80) → Web traffic&lt;/p&gt;

&lt;p&gt;HTTPS (port 443) → Secure web apps&lt;/p&gt;

&lt;p&gt;Storage → Default 8GB EBS root volume.&lt;/p&gt;

&lt;p&gt;🐧 Linux Basics&lt;/p&gt;

&lt;p&gt;Once inside the instance, I practiced essential Linux commands:&lt;/p&gt;

&lt;p&gt;mkdir, ls, touch, rm → File/folder operations&lt;/p&gt;

&lt;p&gt;cd and cd .. → Navigation&lt;/p&gt;

&lt;p&gt;chmod → Manage permissions (read = 4, write = 2, execute = 1)&lt;/p&gt;

&lt;p&gt;history → Review past commands&lt;/p&gt;

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

&lt;p&gt;chmod 777 /var/www/html&lt;/p&gt;

&lt;p&gt;This command gives full access to all users (not secure for production but useful for learning).&lt;/p&gt;

&lt;p&gt;🌐 Hosting a Web Application&lt;/p&gt;

&lt;p&gt;To serve a simple web application:&lt;/p&gt;

&lt;h1&gt;
  
  
  Install Apache
&lt;/h1&gt;

&lt;p&gt;yum install httpd  &lt;/p&gt;

&lt;h1&gt;
  
  
  Start Apache
&lt;/h1&gt;

&lt;p&gt;service httpd start  &lt;/p&gt;

&lt;h1&gt;
  
  
  Check status
&lt;/h1&gt;

&lt;p&gt;service httpd status  &lt;/p&gt;

&lt;p&gt;Then I placed my HTML files into /var/www/html and accessed them via the public IP of my EC2 instance.&lt;/p&gt;

&lt;p&gt;For file transfer, I used WinSCP to copy files from my Windows machine to the server.&lt;/p&gt;

&lt;p&gt;✅ Key Takeaways&lt;/p&gt;

&lt;p&gt;Keep your key pairs safe — without them, you lose server access.&lt;/p&gt;

&lt;p&gt;Use Elastic IPs to keep a permanent public IP (since default ones reset on reboot).&lt;/p&gt;

&lt;p&gt;In production, always think of scaling and monitoring → Load Balancers, Auto Scaling, and CloudWatch.&lt;/p&gt;

&lt;p&gt;💡 Final Thoughts&lt;/p&gt;

&lt;p&gt;Day 1 gave me a strong foundation in EC2, Linux, and deploying a basic web app in the cloud. I’m excited to continue learning and will be documenting Day 2 &amp;amp; Day 3 as well. 🚀&lt;/p&gt;

&lt;p&gt;👉 If you’re also learning AWS, feel free to share your journey in the comments!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>training</category>
      <category>learning</category>
    </item>
    <item>
      <title>String</title>
      <dc:creator>Varudhammal Abinaya</dc:creator>
      <pubDate>Wed, 06 Aug 2025 13:55:03 +0000</pubDate>
      <link>https://forem.com/varudhammal_abinaya/string-42lb</link>
      <guid>https://forem.com/varudhammal_abinaya/string-42lb</guid>
      <description>&lt;h2&gt;
  
  
  1. Introduction: More Than Just Text
&lt;/h2&gt;

&lt;p&gt;Strings are everywhere in programming. From user inputs to storing data, from building web pages to handling commands—strings are the &lt;strong&gt;backbone of interaction&lt;/strong&gt; with computers.&lt;/p&gt;

&lt;p&gt;While strings may seem simple—just sequences of characters—&lt;strong&gt;mastering string manipulation&lt;/strong&gt; gives you the power to write more &lt;strong&gt;efficient, readable&lt;/strong&gt;, and &lt;strong&gt;robust programs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In this post, we'll explore &lt;strong&gt;essential string operations&lt;/strong&gt; through practical problems to strengthen your understanding of string handling in &lt;strong&gt;Java&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Strings in Java: A Quick Refresher
&lt;/h2&gt;

&lt;p&gt;In Java, &lt;strong&gt;strings are immutable&lt;/strong&gt;—once created, their contents cannot be changed. Instead, any operation that modifies a string returns a &lt;strong&gt;new string&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Useful things to remember:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access characters using &lt;code&gt;.charAt(index)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;.substring(start, end)&lt;/code&gt; for extracting parts&lt;/li&gt;
&lt;li&gt;Prefer &lt;code&gt;StringBuilder&lt;/code&gt; for dynamic string construction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Understanding these concepts will help you write cleaner and faster Java programs.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Problem 1: Palindrome Check
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;palindrome&lt;/strong&gt; is a word or phrase that reads the same forward and backward.&lt;br&gt;
Examples: &lt;code&gt;"madam"&lt;/code&gt;, &lt;code&gt;"racecar"&lt;/code&gt;, &lt;code&gt;"A man, a plan, a canal, Panama"&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  ✅ Approach
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Two-pointer technique&lt;/strong&gt;: Compare characters from both ends.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reverse and compare&lt;/strong&gt;: Reverse the string and check if it equals the original.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Normalize the string (remove punctuation, spaces, convert to lowercase).&lt;/p&gt;
&lt;h3&gt;
  
  
  💻 Code
&lt;/h3&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;static&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;isPalindrome&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;input&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;sanitized&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;replaceAll&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"[^a-zA-Z0-9]"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;toLowerCase&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;left&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="n"&gt;right&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sanitized&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sanitized&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;charAt&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;sanitized&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;charAt&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;right&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="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
        &lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;++;&lt;/span&gt;
        &lt;span class="n"&gt;right&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="kc"&gt;true&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;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;isPalindrome&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Madam"&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;   &lt;span class="c1"&gt;// true&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;isPalindrome&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="c1"&gt;// false&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Problem 2: Reverse Each Word in a String
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Reverse every word in a sentence, but keep the word order unchanged.&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 plaintext"&gt;&lt;code&gt;Input:  "Hello World"
Output: "olleH dlroW"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  💻 Code
&lt;/h3&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;static&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;reverseWords&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;sentence&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="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;words&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sentence&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;split&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="nc"&gt;StringBuilder&lt;/span&gt; &lt;span class="n"&gt;result&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;StringBuilder&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

    &lt;span class="k"&gt;for&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;word&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;words&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;StringBuilder&lt;/span&gt; &lt;span class="n"&gt;reversed&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;StringBuilder&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;reverse&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reversed&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;" "&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;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;toString&lt;/span&gt;&lt;span class="o"&gt;().&lt;/span&gt;&lt;span class="na"&gt;trim&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;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;reverseWords&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World"&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// olleH dlroW&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  5. Problem 3: Printing All Substrings
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What’s a substring?&lt;/strong&gt; A contiguous portion of a string.&lt;br&gt;
Example: &lt;code&gt;"ell"&lt;/code&gt; is a substring of &lt;code&gt;"Hello"&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  ✅ Approach
&lt;/h3&gt;

&lt;p&gt;Use nested loops with &lt;code&gt;.substring(i, j)&lt;/code&gt; to generate and print all substrings.&lt;/p&gt;
&lt;h3&gt;
  
  
  💻 Code
&lt;/h3&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;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;printAllSubstrings&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;str&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;for&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;i&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="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&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;length&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;for&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;j&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&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;length&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; &lt;span class="n"&gt;j&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="n"&gt;str&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;substring&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;j&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="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="n"&gt;printAllSubstrings&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"abc"&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;🔽 Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a
ab
abc
b
bc
c
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  6. Problem 4: Remove Consecutive Duplicate Characters
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Remove characters that appear consecutively more than once.&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 plaintext"&gt;&lt;code&gt;Input:  "aaabbcdeeff"
Output: "abcdef"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  💻 Code
&lt;/h3&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;static&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;removeConsecutiveDuplicates&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;input&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;isEmpty&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;input&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

    &lt;span class="nc"&gt;StringBuilder&lt;/span&gt; &lt;span class="n"&gt;result&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;StringBuilder&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;prev&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;charAt&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="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prev&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;for&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;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;curr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;charAt&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;curr&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;prev&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;curr&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
        &lt;span class="n"&gt;prev&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;curr&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;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;toString&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;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;removeConsecutiveDuplicates&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"aaabbcdeeff"&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// abcdef&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  7. Problem 5: Remove a Specific Character
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Remove all instances of a specific character.&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 plaintext"&gt;&lt;code&gt;Input:  "programming", remove 'g'
Output: "prorammin"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  💻 Code
&lt;/h3&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;static&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;removeCharacter&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;str&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="nc"&gt;StringBuilder&lt;/span&gt; &lt;span class="n"&gt;result&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;StringBuilder&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;for&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;i&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="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&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;length&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if&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;charAt&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&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;charAt&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&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="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;toString&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;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;removeCharacter&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"programming"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="sc"&gt;'g'&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// prorammin&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  8. Problem 6: Check If Two Strings Are Permutations
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Determine if two strings are permutations (contain the same characters in any order).&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 plaintext"&gt;&lt;code&gt;"listen" and "silent" → true
"hello" and "world" → false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ✅ Approach
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sort both strings and compare character arrays.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💻 Code
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;java.util.Arrays&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;boolean&lt;/span&gt; &lt;span class="nf"&gt;arePermutations&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="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="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&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;length&lt;/span&gt;&lt;span class="o"&gt;()&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="na"&gt;length&lt;/span&gt;&lt;span class="o"&gt;())&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

    &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;arr1&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;toCharArray&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;arr2&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="na"&gt;toCharArray&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="nc"&gt;Arrays&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sort&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr1&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="nc"&gt;Arrays&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sort&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arr2&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;Arrays&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;arr1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;arr2&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;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;arePermutations&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"listen"&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"silent"&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// true&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;arePermutations&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="s"&gt;"world"&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;   &lt;span class="c1"&gt;// false&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  9. Problem 7: String Compression
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Compress a string by replacing repeated characters with the character followed by the count.&lt;br&gt;
Return the original string if the compressed one isn't shorter.&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 plaintext"&gt;&lt;code&gt;Input:  "aaabbccca"
Output: "a3b2c3a1"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  💻 Code
&lt;/h3&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;static&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;compressString&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;input&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;isEmpty&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;input&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

    &lt;span class="nc"&gt;StringBuilder&lt;/span&gt; &lt;span class="n"&gt;compressed&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;StringBuilder&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;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;for&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;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;charAt&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;charAt&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;++;&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;compressed&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;charAt&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;)).&lt;/span&gt;&lt;span class="na"&gt;append&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
            &lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&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="nc"&gt;String&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;compressed&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;toString&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;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;input&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;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;compressString&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"aaabbccca"&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt; &lt;span class="c1"&gt;// a3b2c3a1&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  10. Conclusion: The Foundation for Advanced Text Processing
&lt;/h2&gt;

&lt;p&gt;These problems are not just coding exercises—they are the &lt;strong&gt;foundation for advanced text processing&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;By mastering string operations, you’re preparing yourself to handle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;File parsing&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Text analysis&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Input validation&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data transformation&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stay curious and keep practicing!&lt;/p&gt;

</description>
      <category>java</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>Looping Statements in Java</title>
      <dc:creator>Varudhammal Abinaya</dc:creator>
      <pubDate>Sun, 03 Aug 2025 14:55:38 +0000</pubDate>
      <link>https://forem.com/varudhammal_abinaya/looping-statements-in-java-2ha0</link>
      <guid>https://forem.com/varudhammal_abinaya/looping-statements-in-java-2ha0</guid>
      <description>&lt;h2&gt;
  
  
  1. Introduction: Why Do We Need Loops?
&lt;/h2&gt;

&lt;p&gt;Have you ever needed to do something over and over in your code—like print “Hello World” 100 times?&lt;/p&gt;

&lt;p&gt;Would you really sit there and write this line 100 times?&lt;/p&gt;

&lt;p&gt;&lt;code&gt;java&lt;br&gt;
System.out.println("Hello World");&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Of course not! That’s where &lt;em&gt;loops&lt;/em&gt; come to your rescue. &lt;strong&gt;Loops&lt;/strong&gt; help you repeat tasks quickly and efficiently, saving time and effort.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The &lt;code&gt;for&lt;/code&gt; Loop: The Workhorse of Repetition
&lt;/h2&gt;

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

&lt;p&gt;Use a &lt;code&gt;for&lt;/code&gt; loop when you know exactly &lt;em&gt;how many times&lt;/em&gt; you want something to repeat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax Breakdown:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;java&lt;br&gt;
for (initialization; condition; increment) {&lt;br&gt;
    *// code block*&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Initialization&lt;/em&gt;: Start a counter—usually &lt;code&gt;int i = 0;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Condition&lt;/em&gt;: Keep going while &lt;code&gt;condition&lt;/code&gt; is true—like &lt;code&gt;i &amp;lt; 5&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Increment&lt;/em&gt;: Move to the next step—like &lt;code&gt;i++&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example: Print numbers from 1 to 5&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;java&lt;br&gt;
for (int i = 1; i &amp;lt;= 5; i++) {&lt;br&gt;
    System.out.println(i);&lt;br&gt;
}&lt;br&gt;
*// Output: 1 2 3 4 5*&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Easy, right? No matter how many times you need, just adjust the numbers!&lt;/p&gt;

&lt;h2&gt;
  
  
  3. The &lt;code&gt;while&lt;/code&gt; Loop: Condition-Based Repetition
&lt;/h2&gt;

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

&lt;p&gt;Use a &lt;code&gt;while&lt;/code&gt; loop when you &lt;em&gt;don’t know beforehand&lt;/em&gt; how many times you'll need to repeat something, but you have a condition to check.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax Breakdown:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;java&lt;br&gt;
while (condition) {&lt;br&gt;
    *// code block*&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example: Keep asking a user for the number 5&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;`java&lt;br&gt;
Scanner scanner = new Scanner(System.in);&lt;br&gt;
int number;&lt;br&gt;
do {&lt;br&gt;
    System.out.print("Enter the number 5 to continue: ");&lt;br&gt;
    number = scanner.nextInt();&lt;br&gt;
} while (number != 5);&lt;/p&gt;

&lt;p&gt;System.out.println("Thank you!");`&lt;/p&gt;

&lt;p&gt;The loop repeats until the user finally enters 5.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. The &lt;code&gt;do-while&lt;/code&gt; Loop: Guaranteed to Run Once
&lt;/h2&gt;

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

&lt;p&gt;A &lt;code&gt;do-while&lt;/code&gt; loop always runs &lt;em&gt;at least once&lt;/em&gt;, because it checks the condition &lt;em&gt;after&lt;/em&gt; running the code block.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax Breakdown:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;java&lt;br&gt;
do {&lt;br&gt;
    *// code block*&lt;br&gt;
} while (condition);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example: Menu Program&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;`java&lt;br&gt;
int choice;&lt;br&gt;
do {&lt;br&gt;
    System.out.println("1. Say Hello");&lt;br&gt;
    System.out.println("2. Exit");&lt;br&gt;
    Scanner scanner = new Scanner(System.in);&lt;br&gt;
    choice = scanner.nextInt();&lt;br&gt;
    if (choice == 1) {&lt;br&gt;
        System.out.println("Hello!");&lt;br&gt;
    }&lt;br&gt;
} while (choice != 2);&lt;/p&gt;

&lt;p&gt;System.out.println("Goodbye!");`&lt;/p&gt;

&lt;p&gt;Even if the user wants to exit, they see the menu once first!&lt;/p&gt;

&lt;h2&gt;
  
  
  5. The Enhanced &lt;code&gt;for-each&lt;/code&gt; Loop
&lt;/h2&gt;

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

&lt;p&gt;When you want to &lt;em&gt;visit every element&lt;/em&gt; of an array or collection, use the &lt;code&gt;for-each&lt;/code&gt; loop.&lt;/p&gt;

&lt;p&gt;No more worrying about indexes!&lt;/p&gt;

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

&lt;p&gt;&lt;code&gt;java&lt;br&gt;
for (Type element : collection) {&lt;br&gt;
    *// use element*&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example: Print all elements of an array&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;java&lt;br&gt;
int[] numbers = {1, 2, 3, 4, 5};&lt;br&gt;
for (int num : numbers) {&lt;br&gt;
    System.out.println(num);&lt;br&gt;
}&lt;br&gt;
*// Output: 1 2 3 4 5*&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;So clean and easy!&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Keywords that Control Loops: &lt;code&gt;break&lt;/code&gt; and &lt;code&gt;continue&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;break&lt;/strong&gt;: Instantly stops the entire loop.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Example: Looking for a value in an array—leave as soon as you find it!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;java&lt;br&gt;
int[] arr = {2, 4, 6, 8, 10};&lt;br&gt;
for (int num : arr) {&lt;br&gt;
    if (num == 6) {&lt;br&gt;
        System.out.println("Found 6!");&lt;br&gt;
        break;&lt;br&gt;
    }&lt;br&gt;
}&lt;br&gt;
*// Output: Found 6!*&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;continue&lt;/strong&gt;: Jumps to the next round, skipping the rest of the loop’s body this time.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Example: Print only even numbers from 1-5&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;java&lt;br&gt;
for (int i = 1; i &amp;lt;= 5; i++) {&lt;br&gt;
    if (i % 2 != 0) {&lt;br&gt;
        continue; *// Skip odd numbers!*&lt;br&gt;
    }&lt;br&gt;
    System.out.println(i);&lt;br&gt;
}&lt;br&gt;
*// Output: 2 4*&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Conclusion: Choose the Right Loop
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use a for loop&lt;/strong&gt; when you &lt;em&gt;know how many times&lt;/em&gt; you want to repeat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a while loop&lt;/strong&gt; when it depends on a &lt;em&gt;condition&lt;/em&gt; (don’t know how many times).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a do-while loop&lt;/strong&gt; when you &lt;em&gt;always want the code inside to run at least once&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use for-each&lt;/strong&gt; for &lt;em&gt;collections and arrays&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;break&lt;/code&gt; and &lt;code&gt;continue&lt;/code&gt; to control what’s happening in your loops (but don’t over-use them—they can make code harder to read if used everywhere).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Try this out&lt;/strong&gt; in your code! Experiment, make mistakes, see what happens—that’s the fastest way to learn and grow. And if you ever get confused, don’t worry: everyone did at some point, including me. I’m always here to help you untangle any loop, big or small! 😊🌻&lt;/p&gt;

</description>
      <category>programming</category>
      <category>java</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Methods &amp; Array</title>
      <dc:creator>Varudhammal Abinaya</dc:creator>
      <pubDate>Fri, 25 Jul 2025 15:18:41 +0000</pubDate>
      <link>https://forem.com/varudhammal_abinaya/methods-array-2e17</link>
      <guid>https://forem.com/varudhammal_abinaya/methods-array-2e17</guid>
      <description>&lt;p&gt;Hey everyone!  In today’s post, I’m sharing what I learned about methods and arrays from my notes . Let’s dive in! 🚀&lt;/p&gt;

&lt;h3&gt;
  
  
  🧩 What are Methods?
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;method&lt;/strong&gt; is a reusable block of code that performs a specific task. It helps make your code modular and readable.&lt;/p&gt;

&lt;h4&gt;
  
  
  ✅ Method Declaration:
&lt;/h4&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;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;greet&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;"Hello!"&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="n"&gt;greet&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Method call&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;strong&gt;&lt;code&gt;public static void&lt;/code&gt;&lt;/strong&gt; – standard structure for defining a method.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reusability&lt;/strong&gt; – call &lt;code&gt;greet()&lt;/code&gt; whenever needed.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🛠️ Methods with Arguments
&lt;/h3&gt;

&lt;p&gt;You can pass data to methods using parameters.&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;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;add&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="kt"&gt;int&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="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="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="n"&gt;add&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Outputs 8&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  🔁 Return Types in Methods
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;void&lt;/code&gt; – no return value&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;int&lt;/code&gt;, &lt;code&gt;boolean&lt;/code&gt;, &lt;code&gt;String&lt;/code&gt;, etc. – return types&lt;/li&gt;
&lt;li&gt;Use the &lt;code&gt;return&lt;/code&gt; statement to return a value from a method.
&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;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;square&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;x&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;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;x&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;h3&gt;
  
  
  📌 Pass by Value
&lt;/h3&gt;

&lt;p&gt;Java uses &lt;strong&gt;pass-by-value&lt;/strong&gt;, which means a copy of the variable is passed to the method.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔄 Method Overloading
&lt;/h3&gt;

&lt;p&gt;Method overloading lets you define multiple methods with the same name but different parameters.&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;static&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;multiply&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="kt"&gt;int&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="k"&gt;return&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="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;double&lt;/span&gt; &lt;span class="nf"&gt;multiply&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;double&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;double&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="k"&gt;return&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📍Java will choose the correct method based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Number of parameters&lt;/li&gt;
&lt;li&gt;Data types&lt;/li&gt;
&lt;li&gt;Order of parameters&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔢 Example: Fibonacci Check
&lt;/h3&gt;

&lt;p&gt;Check if a number is part of the Fibonacci sequence:&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;static&lt;/span&gt; &lt;span class="kt"&gt;boolean&lt;/span&gt; &lt;span class="nf"&gt;isFibonacci&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;n&lt;/span&gt;&lt;span class="o"&gt;)&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;0&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="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;while&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;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if&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;n&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;true&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;next&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="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="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;next&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="kc"&gt;false&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;h3&gt;
  
  
  📦 Arrays in Java
&lt;/h3&gt;

&lt;p&gt;An &lt;strong&gt;array&lt;/strong&gt; is a collection of elements of the same data type.&lt;/p&gt;

&lt;h4&gt;
  
  
  Declaring an Array:
&lt;/h4&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;numbers&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;5&lt;/span&gt;&lt;span class="o"&gt;];&lt;/span&gt; &lt;span class="c1"&gt;// default values: 0, 0, 0, 0, 0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Assigning Values:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="n"&gt;numbers&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="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or directly:&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;nums&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&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;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="o"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Accessing Array Elements:
&lt;/h4&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;nums&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;span class="c1"&gt;// Outputs 3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Array Length:
&lt;/h4&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;nums&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;length&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Outputs 5&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  For-Each Loop:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="k"&gt;for&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;num&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;nums&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="n"&gt;num&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;h3&gt;
  
  
  🧪 Default Values in Arrays
&lt;/h3&gt;

&lt;p&gt;When you create an array without assigning values, Java sets &lt;em&gt;default values&lt;/em&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Data Type&lt;/th&gt;
&lt;th&gt;Default Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;float&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;char&lt;/td&gt;
&lt;td&gt;'\u0000'&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;String&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  🔁 Arrays in Methods (Example: Intersection)
&lt;/h3&gt;

&lt;p&gt;You can pass arrays to methods too! Here's a simple array intersection:&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;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;printIntersection&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;arr1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;arr2&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;for&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;i&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;arr1&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;for&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;j&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;arr2&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;j&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;print&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
                &lt;span class="k"&gt;break&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="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;Input:&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;arr1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;6&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;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="o"&gt;};&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;arr2&lt;/span&gt; &lt;span class="o"&gt;=&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;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;9&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2 3 8 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  🧠 Final Thoughts
&lt;/h3&gt;

&lt;p&gt;Today’s post covered two foundational Java concepts — &lt;strong&gt;methods and arrays&lt;/strong&gt;. Understanding how they work and interact is crucial for writing clean, efficient code.&lt;/p&gt;

&lt;p&gt;Next, I’ll be exploring what i learned . If you're also learning Java, let me know your favorite concept or where you struggled the most! Let's grow together! 🌱&lt;br&gt;
Happy Learning!!!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>java</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Rewinding to the Basics</title>
      <dc:creator>Varudhammal Abinaya</dc:creator>
      <pubDate>Mon, 21 Jul 2025 07:25:46 +0000</pubDate>
      <link>https://forem.com/varudhammal_abinaya/rewinding-to-the-basics-2n70</link>
      <guid>https://forem.com/varudhammal_abinaya/rewinding-to-the-basics-2n70</guid>
      <description>&lt;p&gt;Hey everyone! 👋&lt;br&gt;
This blog post is a summary of what I learned in my very first Java class. Whether you're starting Java or need a quick refresher, this post will walk you through the key concepts in a beginner-friendly way.&lt;/p&gt;

&lt;p&gt;🧠 Evolution of Java&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Java was conceived by James Gosling and a team at Sun Microsystems in 1991.&lt;/li&gt;
&lt;li&gt;Initially named "OAK", it was later renamed to Java.&lt;/li&gt;
&lt;li&gt;Java was designed with the principle of Write Once, Run Anywhere, making it a platform-independent language.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚙️ How Java Works&lt;/p&gt;

&lt;p&gt;🔁 Compiler&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Converts high-level source code into bytecode.&lt;/li&gt;
&lt;li&gt;Unlike C/C++, Java doesn't compile to machine-specific code.&lt;/li&gt;
&lt;li&gt;The bytecode is portable and can run on any machine with a Java Virtual Machine (JVM).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 Platform Independence&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Source Code &lt;/li&gt;
&lt;li&gt;Compiled into Bytecode
&lt;/li&gt;
&lt;li&gt;Executed by JVM
&lt;/li&gt;
&lt;li&gt;Runs on any machine &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🧰 Java Ecosystem&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JDK (Java Development Kit): Includes compiler + JRE + tools&lt;/li&gt;
&lt;li&gt;JRE (Java Runtime Environment): Includes JVM + libraries to run Java apps&lt;/li&gt;
&lt;li&gt;JVM (Java Virtual Machine): Executes bytecode&lt;/li&gt;
&lt;li&gt;JavaFX: A library to build rich user interfaces&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Structure of a Java Program&lt;br&gt;
Coding:x&lt;br&gt;
class First {&lt;br&gt;
    public static void main(String[] args) {&lt;br&gt;
        // Code here&lt;br&gt;
    }&lt;br&gt;
}&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First is the class name.&lt;/li&gt;
&lt;li&gt;public static void main(String[] args) is the main method – the entry point of every Java program.&lt;/li&gt;
&lt;li&gt;If a class is marked public, your file name must match the class name (e.g., First.java).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Types of Errors&lt;/p&gt;

&lt;p&gt;Type                     Description&lt;br&gt;
Compilation Error   Happens during compilation (syntax/structure issues)&lt;br&gt;
Runtime Error           Occurs while running (e.g., int num = 10/0;)&lt;br&gt;
Logical Error           Produces incorrect results due to wrong logic&lt;/p&gt;

&lt;p&gt;Comments in java&lt;br&gt;
// Single-line comment&lt;/p&gt;

&lt;p&gt;/*&lt;br&gt;
  Multi-line comment&lt;br&gt;
*/&lt;/p&gt;

&lt;p&gt;Variables &amp;amp; Naming Conventions&lt;br&gt;
Rules:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Can include letters (A-Z, a-z), digits (0-9), _, $&lt;/li&gt;
&lt;li&gt;Cannot begin with a digit&lt;/li&gt;
&lt;li&gt;Case-sensitive&lt;/li&gt;
&lt;li&gt;Cannot use Java reserved keyword
📊 Data Types in Java&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🧩 Primitive Data Types&lt;br&gt;
 Type           Size               Example&lt;br&gt;
byte           1 byte           byte a = 127; &lt;br&gt;
short          2 bytes          short s = 32000;&lt;br&gt;
int        4 bytes          int i = 1000;&lt;br&gt;
long           8 bytes          long l = 100000L;&lt;br&gt;
float          4 bytes          float f = 10.5f;&lt;br&gt;
double         8 bytes          double d = 10.5;&lt;br&gt;
char           2 bytes           'A'&lt;br&gt;
boolean     1 bit           true/false&lt;/p&gt;

&lt;p&gt;✍️ Note:&lt;br&gt;
Use L or l for long, f or F for float.&lt;/p&gt;

&lt;p&gt;🧮 Operators&lt;br&gt;
➕ Arithmetic Operators&lt;/p&gt;

&lt;p&gt;Operator    Description&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;          Addition&lt;/li&gt;
&lt;li&gt;          Subtraction&lt;/li&gt;
&lt;li&gt;          Multiplication
/           Division
%           Modulus&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;➕ Augmented Assignment&lt;br&gt;
int num = 3;&lt;br&gt;
num += 3; // same as num = num + 3;&lt;/p&gt;

&lt;p&gt;🔄 Type Casting&lt;br&gt;
Implicit (Widening)&lt;br&gt;
int x = 10;&lt;br&gt;
double y = x; // Automatic&lt;/p&gt;

&lt;p&gt;Explicit (Narrowing)&lt;br&gt;
double d = 9.85;&lt;br&gt;
int i = (int) d; // Output: 9&lt;/p&gt;

&lt;p&gt;⚙️ Unary Operators&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;++a (pre-increment)&lt;/li&gt;
&lt;li&gt;a++ (post-increment)&lt;/li&gt;
&lt;li&gt;--a, a-- (decrement)&lt;/li&gt;
&lt;li&gt;! (logical NOT)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;✅ Relational &amp;amp; Logical Operators&lt;br&gt;
Relational&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;==, !=, &amp;lt;, &amp;lt;=, &amp;gt;, &amp;gt;=&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Logical&lt;br&gt;
Expression  Result&lt;br&gt;
true &amp;amp;&amp;amp; true    true&lt;br&gt;
true &amp;amp;&amp;amp; false   false&lt;br&gt;
&lt;code&gt;true  &lt;br&gt;
&lt;/code&gt;false  &lt;/p&gt;

&lt;p&gt;🧪 Literal Representations&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Decimal → int a = 10;&lt;/li&gt;
&lt;li&gt;Binary → int b = 0b1010;&lt;/li&gt;
&lt;li&gt;Octal → int o = 012;&lt;/li&gt;
&lt;li&gt;Hexadecimal → int h = 0xA;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bitwise Operator&lt;br&gt;
Operator---Description&lt;br&gt;
(&amp;lt;&amp;lt;)-------left shift&lt;br&gt;
(&amp;gt;&amp;gt;)-------signed right shift&lt;br&gt;
(&amp;gt;&amp;gt;&amp;gt;)------unsigned right shift&lt;/p&gt;

&lt;p&gt;Wrapper Classes &amp;amp; Methods&lt;br&gt;
Every primitive data type has a wrapper class: int → Integer, char → Character, etc.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
String myName = "Abi";&lt;br&gt;
System.out.print(myName); // Abi&lt;/p&gt;

&lt;p&gt;Finally&lt;br&gt;
This was a quick walkthrough of everything I learned in my first Java class — from how Java works under the hood to basic building blocks like data types and operators. These fundamentals are the stepping stones for deeper concepts ahead. I’ll continue sharing what I learn, one topic at a time, so stay tuned! 🚀&lt;/p&gt;

&lt;p&gt;Are you also learning Java? Share your favorite learning tip or resource in the comments — let’s grow together! 💬👩‍💻&lt;/p&gt;

</description>
      <category>java</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Understanding Priority Queues in Java</title>
      <dc:creator>Varudhammal Abinaya</dc:creator>
      <pubDate>Thu, 17 Jul 2025 10:18:41 +0000</pubDate>
      <link>https://forem.com/varudhammal_abinaya/understanding-priority-queues-in-java-3bhd</link>
      <guid>https://forem.com/varudhammal_abinaya/understanding-priority-queues-in-java-3bhd</guid>
      <description>&lt;p&gt;Hey everyone!&lt;br&gt;
In this post, I’m sharing what I learned about Priority Queues from my Coding Ninjas course. I’m keeping it simple and using my own words.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a Priority Queue?&lt;/strong&gt;&lt;br&gt;
A priority queue is a data structure where each element has a priority.&lt;br&gt;
The element with the highest priority is removed first.&lt;br&gt;
If two elements have the same priority, they are served in the order they were inserted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time Complexity of Priority Queue Operations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Insertion: O(log N)&lt;/li&gt;
&lt;li&gt;Deletion: O(log N)&lt;/li&gt;
&lt;li&gt;Access Min/Max (peek): O(1)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Implement Priority Queue in Java&lt;/strong&gt;&lt;br&gt;
Java provides a built-in class PriorityQueue which is based on a heap — a special kind of binary tree.&lt;/p&gt;

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

&lt;p&gt;PriorityQueue pq = new PriorityQueue&amp;lt;&amp;gt;(); // min heap by default&lt;br&gt;
PriorityQueue maxHeap = new PriorityQueue&amp;lt;&amp;gt;(Collections.reverseOrder()); // max heap&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Basic Operations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;peek() — returns the top element without removing it&lt;/li&gt;
&lt;li&gt;poll() — removes and returns the top element&lt;/li&gt;
&lt;li&gt;add() — inserts an element&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Max Heap and Min Heap&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Min heap: The smallest number is at the root.&lt;/p&gt;

&lt;p&gt;Max heap: The largest number is at the root.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Priority Queue Operations Summary&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Insert&lt;/li&gt;
&lt;li&gt;Get Max or Get Min&lt;/li&gt;
&lt;li&gt;Remove Max or Remove Min&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How a Heap Works&lt;/strong&gt;&lt;br&gt;
A heap is a complete binary tree — all levels are filled except maybe the last, which is filled from left to right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The heap order property means:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In a min heap, every parent is less than or equal to its children.&lt;/li&gt;
&lt;li&gt;In a max heap, every parent is greater than or equal to its children.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Array Representation of a Heap&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Parent index = (i - 1) / 2&lt;/li&gt;
&lt;li&gt;Left child index = 2 * i + 1&lt;/li&gt;
&lt;li&gt;Right child index = 2 * i + 2&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Insertion and Heapify&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New elements are added at the end of the heap (array).&lt;/li&gt;
&lt;li&gt;To maintain the heap property, we heapify:

&lt;ul&gt;
&lt;li&gt;Compare the new element with its parent.&lt;/li&gt;
&lt;li&gt;If the heap property is broken, swap and repeat up the tree.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Heap Sort and Complexity&lt;/strong&gt;&lt;br&gt;
Heap sort uses a heap to sort elements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build a heap from the data (O(n))&lt;/li&gt;
&lt;li&gt;Repeatedly extract the max or min element and place it at the end&lt;/li&gt;
&lt;li&gt;Total time complexity: O(n log n)&lt;/li&gt;
&lt;li&gt;Space complexity: O(1) (in-place sorting)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Java PriorityQueue Functionalities&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add()/offer() — add elements (O(log n))&lt;/li&gt;
&lt;li&gt;peek() — look at the smallest element without removing it (O(1))&lt;/li&gt;
&lt;li&gt;poll() — remove and return the smallest element (O(log n))&lt;/li&gt;
&lt;li&gt;isEmpty() — check if the queue is empty (O(1))&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example Problem: K Largest Elements&lt;/strong&gt;&lt;br&gt;
Here is a simple Java program using a min heap to find the k largest elements in an array:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coding:&lt;/strong&gt;&lt;br&gt;
import java.util.*;&lt;/p&gt;

&lt;p&gt;public class Solution {&lt;br&gt;
    public static ArrayList kLargest(int input[], int k) {&lt;br&gt;
        PriorityQueue pq = new PriorityQueue&amp;lt;&amp;gt;();&lt;br&gt;
        for (int num : input) {&lt;br&gt;
            pq.add(num);&lt;br&gt;
            if (pq.size() &amp;gt; k) {&lt;br&gt;
                pq.poll();&lt;br&gt;
            }&lt;br&gt;
        }&lt;br&gt;
        ArrayList result = new ArrayList&amp;lt;&amp;gt;(pq);&lt;br&gt;
        Collections.sort(result);&lt;br&gt;
        return result;&lt;br&gt;
    }&lt;br&gt;
}&lt;br&gt;
&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;br&gt;
     The goal is to find the k largest numbers from an array of numbers.&lt;br&gt;
&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Input array: [3, 1, 5, 12, 2, 11]&lt;br&gt;
k = 3&lt;/p&gt;

&lt;p&gt;Start with an empty min heap.&lt;/p&gt;

&lt;p&gt;Add 3 → heap = [3]&lt;/p&gt;

&lt;p&gt;Add 1 → heap = [1, 3]&lt;/p&gt;

&lt;p&gt;Add 5 → heap = [1, 3, 5]&lt;/p&gt;

&lt;p&gt;Add 12 → heap = [1, 3, 5, 12] → size &amp;gt; 3, remove smallest (1) → heap = [3, 12, 5]&lt;/p&gt;

&lt;p&gt;Add 2 → heap = [2, 3, 5, 12] → size &amp;gt; 3, remove smallest (2) → heap = [3, 12, 5]&lt;/p&gt;

&lt;p&gt;Add 11 → heap = [3, 11, 5, 12] → size &amp;gt; 3, remove smallest (3) → heap = [5, 11, 12]&lt;/p&gt;

&lt;p&gt;At the end, the heap contains [5, 11, 12] — the 3 largest numbers.&lt;/p&gt;

&lt;p&gt;That’s all for now! Hope I have did my best in understanding this concept .This simple explanation helps you understand priority queues better.&lt;br&gt;
Thanks for reading!!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>java</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>My Tech Learning Journey</title>
      <dc:creator>Varudhammal Abinaya</dc:creator>
      <pubDate>Wed, 16 Jul 2025 11:58:29 +0000</pubDate>
      <link>https://forem.com/varudhammal_abinaya/my-tech-learning-journey-1e6f</link>
      <guid>https://forem.com/varudhammal_abinaya/my-tech-learning-journey-1e6f</guid>
      <description>&lt;p&gt;Hey there!&lt;br&gt;
I'm excited to write my first blog post here !&lt;/p&gt;

&lt;p&gt;I’ve recently started my journey into the world of Data Structures &amp;amp; Algorithms (DSA) using Java, and I’m also preparing for the AWS Cloud Practitioner Certification — so I thought, why not share what I’m learning along the way?&lt;/p&gt;

&lt;p&gt;This blog will be my little space on the internet to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Document my learning process,&lt;/li&gt;
&lt;li&gt;Share simple explanations in my own words,&lt;/li&gt;
&lt;li&gt;Stay consistent and disciplined with my goals.
## Why I Started Learning DSA in Java&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learning Java helps improve my problem-solving skills.&lt;/p&gt;

&lt;p&gt;I’m learning through Coding Ninjas, and it’s honestly been a great place to start.&lt;br&gt;
The structure is beginner-friendly, and I’m enjoying the pace so far. Made me to understand the concepts more than before.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Purpose of Blogging Here
&lt;/h2&gt;

&lt;p&gt;I used to take notes just for myself…&lt;br&gt;
But I recently realized: when I write to teach, I learn better.&lt;/p&gt;

&lt;p&gt;So yeah, here I am — starting small.&lt;br&gt;
I’ll begin sharing whatever I’m learning.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>java</category>
      <category>learning</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
