Skip to content

Instantly share code, notes, and snippets.

View jabrena's full-sized avatar

Juan Antonio Breña Moral jabrena

View GitHub Profile
@jabrena
jabrena / generics-review.md
Created November 29, 2025 12:09
Comprehensive Generics Comparison Table
Feature Java Scala Kotlin Rust Go Zig Python JavaScript TypeScript
Implementation Strategy Type erasure Type erasure (JVM) but with TypeTag/ClassTag Type erasure (JVM) but with reified for inline Monomorphization GCShape stenciling (hybrid) Monomorphization via comptime Runtime duck typing, optional static analysis No type system Structural type system, compiles to JS
Syntax <T> angle brackets [T] square brackets <T> angle brackets <T> angle brackets [T] square brackets comptime T: type parameter [T] square brackets (3.9+) N/A <T> angle brackets
Type Checking Compile-time, mandatory Compile-time, mandatory Compile-time, mandatory Compile-time, mandatory Compile-time, mandatory Compile-time, mandatory Optional via external tools (mypy) ❌ None Compile-time, optional enforcement
Runtime Type Enforcement
@jabrena
jabrena / gist:d541af0441c0c91fa20874cca68c9b84
Last active November 3, 2025 17:20
Question about the talk: 101 Cursor AI Learning to use for Java Enterprise projects in W-JAX 2025
Please, feel free to make any question.
Happy to help.
Juan Antonio
@jabrena
jabrena / HelloWorld.java
Created May 28, 2025 11:40
Hello World
//jbang --java 25 HelloWorld.java
void main() {
IO.println("Hello World");
}
@jabrena
jabrena / url.txt
Created February 27, 2025 09:23
Red hat Microservices areas
https://developers.redhat.com/blog/2016/12/09/spring-cloud-for-microservices-compared-to-kubernetes
@jabrena
jabrena / pom.xml
Created December 19, 2024 08:13
How to ban Lombok in your maven project
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<id>enforce</id>
<configuration>
<rules>
<dependencyConvergence />
https://github.com/gayanvoice/top-github-users/blob/main/markdown/public_contributions/spain.md
@jabrena
jabrena / emoji.txt
Created April 24, 2023 14:19
¯\_ (ツ)_/¯
¯\_ (ツ)_/¯
import java.util.stream.IntStream;
public class XDemo {
public static void main(String[] args) {
int r = 16;
IntStream.rangeClosed(-r, r)
.map(Math::abs)
.peek(i -> IntStream.rangeClosed(-r, r)
.map(Math::abs)
@jabrena
jabrena / ShiftDemo.java
Created December 30, 2021 08:23
1/3 = 1/4 + 1/4^2 + 1/4^3 + 1/4^N
import java.math.BigInteger;
import java.util.stream.Stream;
public class ShiftDemo {
public static void main(String[] args) {
System.out.println("Hello, World!");
int bignr = 1146423427;
int widthdiv = bignr / 3;