<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mahendra Rao on JAVAPRO International</title><link>https://javapro-en.svenruppert.com/authors/mahendra-rao/</link><description>Recent content in Mahendra Rao on JAVAPRO International</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Thu, 27 Nov 2025 07:00:01 +0000</lastBuildDate><atom:link href="https://javapro-en.svenruppert.com/authors/mahendra-rao/index.xml" rel="self" type="application/rss+xml"/><item><title>Behind the Bytecode: Exploring Java Features with javap tool</title><link>https://javapro-en.svenruppert.com/behind-the-bytecode-exploring-java-features-with-javap-tool/</link><pubDate>Thu, 27 Nov 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/behind-the-bytecode-exploring-java-features-with-javap-tool/</guid><description>&lt;p&gt;When we develop applications, we often rely on a robust set of tools that the language&amp;rsquo;s development environment provides, which saves us from reinventing the wheel. In the case of Java also, the⁣ &lt;code&gt;Java Development Kit (&lt;/code&gt;&lt;strong&gt;&lt;code&gt;JDK&lt;/code&gt;&lt;/strong&gt;&lt;code&gt;)&lt;/code&gt; plays a vital role. It offers a comprehensive suite of tools, utilities, and commands that simplify the process of building, testing, and running Java applications, making our development faster and more efficient.&lt;/p&gt;
&lt;p&gt;As a Java developer, I&amp;rsquo;m always fascinated by what happens behind the scenes when we compile my code into bytecode. This bytecode reveals how we represent and manage our code internally through the different components of the⁣ &lt;code&gt;Java Virtual Machine (&lt;/code&gt;&lt;strong&gt;&lt;code&gt;JVM&lt;/code&gt;&lt;/strong&gt;&lt;code&gt;)&lt;/code&gt;. Exploring this process offers us deeper insights into Java&amp;rsquo;s architecture and helps us better understand memory management, performance, and runtime behavior.&lt;/p&gt;</description></item><item><title>Demystifying Software Architecture: Styles/Patterns – PART 2</title><link>https://javapro-en.svenruppert.com/demystifying-software-architecture-styles-patterns-part-2/</link><pubDate>Thu, 25 Sep 2025 07:00:00 +0000</pubDate><guid>https://javapro-en.svenruppert.com/demystifying-software-architecture-styles-patterns-part-2/</guid><description>&lt;p&gt;In my previous &lt;a href="https://javapro.io/2025/08/14/demystifying-software-architecture-styles-patterns-part-1/"&gt;article&lt;/a&gt;, I outlined the monolithic software architecture style, its types, challenges, and trade-offs. In this article, I will explore the fascinating features of the distributed architecture style, its types, and its use cases.&lt;/p&gt;
&lt;h2 id="distributed-architecture"&gt;&lt;strong&gt;Distributed Architecture&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Every architecture involves trade-offs, and monolithic architecture is no exception. To overcome its challenges and align with the principles of modern architecture styles, we have adopted distributed architecture patterns. These styles excel in delivering stronger architectural characteristics, such as &lt;strong&gt;higher performance, improved scalability, and better availability&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Demystifying Software Architecture: Styles/Patterns - PART 1</title><link>https://javapro-en.svenruppert.com/demystifying-software-architecture-styles-patterns-part-1/</link><pubDate>Thu, 14 Aug 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/demystifying-software-architecture-styles-patterns-part-1/</guid><description>&lt;p&gt;Whether you&amp;rsquo;re watching a gripping documentary on Netflix or any other OTT platform, witnessing a nail-biting Test match at Old Trafford, or placing an order on an e-commerce platform, you’re experiencing the result of great software architecture in action.&lt;/p&gt;
&lt;p&gt;I find it fascinating to explore the powerful software architectures that make modern applications so reliable and scalable.&lt;/p&gt;
&lt;p&gt;These real-time, large-scale systems handle pressure, recover from failures, and scale effortlessly because engineers design them with &lt;strong&gt;resilience, availability, fault tolerance, scalability, robustness, performance, recoverability, and continuity&lt;/strong&gt; in mind.&lt;/p&gt;</description></item></channel></rss>