---
title: "Tag: java | Shreyas Patil's Blog"
description: "Senior Android Engineer @ Deliveroo. Google Developer Expert for Android. Writing about Android, Kotlin, and AI."
image: "https://blog.shreyaspatil.dev/og.png"
---

# Tag:java

All the articles with the tag "java".

# Tag:java

- [![](https://blog.shreyaspatil.dev/_astro/cover-kotlin-exception-handling-why-singleton-exceptions-are-a-bad-idea.97gvJmqw_Z21we6P.webp)](https://blog.shreyaspatil.dev/kotlin-exception-handling-why-singleton-exceptions-are-a-bad-idea)[## Kotlin Exception Handling: Why Singleton Exceptions are a bad idea](https://blog.shreyaspatil.dev/kotlin-exception-handling-why-singleton-exceptions-are-a-bad-idea)18 Sep, 2024Understand why using singleton exceptions in Kotlin can be a bad practice and how it affects stack traces and debugging in your applications.
- [![](https://blog.shreyaspatil.dev/_astro/cover-runtime-surprise-kotlin-breaks-non-nullability-promise-on-developer-cheating-in-field-initialization.BuZpygJw_Z23E48N.webp)](https://blog.shreyaspatil.dev/runtime-surprise-kotlin-breaks-non-nullability-promise-on-developer-cheating-in-field-initialization)[## Runtime Surprise: Kotlin Breaks Non-Nullability Promise on Developer Cheating in Field Initialization](https://blog.shreyaspatil.dev/runtime-surprise-kotlin-breaks-non-nullability-promise-on-developer-cheating-in-field-initialization)20 Sep, 2023A cautionary tale about Kotlin's non-nullability. Discover how incorrect field initialization can lead to unexpected NullPointerExceptions at runtime.
- [![](https://blog.shreyaspatil.dev/_astro/cover-sleepless-concurrency-delay-vs-threadsleep.qFiypeQo_Z1xK0Mt.webp)](https://blog.shreyaspatil.dev/sleepless-concurrency-delay-vs-threadsleep)[## Sleepless Concurrency: delay() vs. Thread.sleep()](https://blog.shreyaspatil.dev/sleepless-concurrency-delay-vs-threadsleep)31 Jul, 2023Explore the difference between delay() and Thread.sleep() in Kotlin. Understand how non-blocking concurrency works from a platform perspective.
- [![](https://blog.shreyaspatil.dev/_astro/cover-leveraging-the-semaphore-concept-in-coroutines-to-limit-the-parallelism.DCItG-S0_1idvxP.webp)](https://blog.shreyaspatil.dev/leveraging-the-semaphore-concept-in-coroutines-to-limit-the-parallelism)[## Leveraging the Semaphore concept in Coroutines to limit the parallelism 🔀](https://blog.shreyaspatil.dev/leveraging-the-semaphore-concept-in-coroutines-to-limit-the-parallelism)1 Apr, 2022Explore the concept of Semaphores in Kotlin Coroutines. Learn how to limit parallelism and manage resource access in concurrent programming.
- [![](https://blog.shreyaspatil.dev/_astro/cover-automate-library-publishing-to-maven-central-with-github-actions-workflow-dispatch.hDWG6EWY_ZTO7S6.webp)](https://blog.shreyaspatil.dev/automate-library-publishing-to-maven-central-with-github-actions-workflow-dispatch)[## Automate library publishing to Maven Central with GitHub Actions Workflow Dispatch 🤖](https://blog.shreyaspatil.dev/automate-library-publishing-to-maven-central-with-github-actions-workflow-dispatch)21 Jan, 2022Step-by-step guide to automating JVM library publishing to Maven Central using GitHub Actions and Workflow Dispatch for one-click releases.
- [![](https://blog.shreyaspatil.dev/_astro/cover-providing-assistedinject-supported-viewmodel-for-composable-using-hilt.GljQ6Sts_Z1PSQz0.webp)](https://blog.shreyaspatil.dev/providing-assistedinject-supported-viewmodel-for-composable-using-hilt)[## Providing AssistedInject supported ViewModel for Composable using Hilt](https://blog.shreyaspatil.dev/providing-assistedinject-supported-viewmodel-for-composable-using-hilt)29 Jun, 2021Learn how to provide Hilt ViewModels with AssistedInject to Jetpack Compose Composables for dynamic dependency injection with runtime parameters.
- [![](https://blog.shreyaspatil.dev/_astro/cover-hide-internal-members-of-kotlin-module-from-jvm.DlxpwfRU_14QGnt.webp)](https://blog.shreyaspatil.dev/hide-internal-members-of-kotlin-module-from-jvm)[## Hide internal members of Kotlin Module from JVM 🔐](https://blog.shreyaspatil.dev/hide-internal-members-of-kotlin-module-from-jvm)17 May, 2021Learn how to properly hide internal Kotlin members from JVM to maintain a clean API for Java consumers when developing libraries.

```json
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Shreyas Patil's Blog",
  "url": "https://blog.shreyaspatil.dev/",
  "description": "Senior Android Engineer @ Deliveroo. Google Developer Expert for Android. Writing about Android, Kotlin, and AI.",
  "author": {
    "@type": "Person",
    "name": "Shreyas Patil",
    "url": "https://shreyaspatil.dev/"
  }
}
```
