Java

Java es un lenguaje de programación de propósito general. Desde hace muchos años encabeza el ranking Tiobe de lenguajes de programación, con lo que tiene una buena acojida y podemos encontrarlo en numerosos sistemas. Su sintaxis deriva de C y C++, está fuertemente orientado a objetos (todo en Java son objetos), y su principal característica es ser multiplataforma.

Es decir, Java se caracteriza porque sus códigos fuentes son compilados a un código intermedio entre el fuente y el código máquina llamado bytecode. Dicho bytecode se ejecuta sobre la Máquina Virtual de Java (JVM), que está disponible en la gran mayoría de plataformas, con lo que conseguimos construir una vez y ejecutar en todos lados.

Dispone de librerías de todo tipo para programación de alto nivel. Y dado que corre sobre la capa de la JVM carece de librerías de bajo nivel. Esta capa intermedia que proporciona la multiplaforma merma su velocidad comparádose con otros lenguajes pero las últimas versiones de la máquina virtual ha mejorado mucho en rendimiento. Hay frameworks de Java que van desde la programación de entornos gráficos, pasando por microservicios, a desarrollo de grandes aplicaciones web.

Con Java puedes hacer casi de todo y para casi todo tipo de proyectos.


Java Spring Boot & Angular: cómo automatizar la compilación de un proyecto para desplegar en un servidor

2022-07-25 - Categorías: Angular / General / Java / Java Spring Boot
Spring Boot Angular Maven

Dejo aquí este codekata o howto de copia y pega para montar la estructura de un proyecto general con Maven, usando Spring Boot en el backend y Angular en el frontend. La idea de este post es automatizar el despliegue en producción de este tipo de proyectos, cómo comenzar a montar el despliegue continuo.

En líneas generales, consite en compilar el micro-servicio Spring Boot embebiendo todo el frontend en Angular dentro del mismo empaquetado .jar. Con unas configuraciones en los ficheros POM de Maven, y en el JSON de configuración Angular, podemos automatizarlo.

Vamos al grano..

Continuar leyendo..

Java: sincronización con señales entre procesos concurrentes

2022-07-16 - Categorías: Java

¡Hola de nuevo! Esto es un codekata, apunte o resumen en Java, sobre la sincronización entre procesos concurrentes que corren en paralelo en varios hilos de ejecución usando señales. Esta sincronización es un mecanismo habitual, para sincronizar procesos en tiempo real, optimizando el uso de recursos para que todo vaya lo más rápido posible.

El escenario de este post, es que tenemos 3 procesos concurrentes, que corren en paralelo. Tenemos un primer proceso que se va a encargar de lanzar otros dos, poniéndose a la espera sin consumir recursos en esta espera. El segundo proceso va a ser un productor de elementos cada cierto tiempo. Y el tercer proceso un consumidor de estos elementos.

Continuar leyendo..

Controlando el acceso exclusivo a memoria compartida en Java

2022-06-19 - Categorías: General / Java

Este post es continuación de este otro sobre paralelizar procesos para acelerarlos usando memoria compartida. Quedó en el aire la sincronización de los procesos. Esto se puede hacer de varias formas, pero si simplemente queremos evitar que dos procesos escriban a la vez en la misma zona de memoria compartida, lo podemos implementar con la palabra reservada synchronized.

Si dos procesos no deben escribir a la vez en la memoria compartida y lo hacen, se perderá información, habrá malfuncionamiento del sistema completo.

Vamos al grano que es más fácil leer el código que explicarlo..

Continuar leyendo..

Acelerando, paralelizando, concurrencia, memoria compartida entre procesos en Java

2022-06-19 - Categorías: General / Java

Hoy traigo otro codekata, un howto o resumen sobre Java, y el manejo de procesos. Se trata de un tema recurrente, para acelerar procesos paralelizándolos y coordinándolos entre sí. Este post se centra en cómo usar una memoria compartida, entre 30 procesos en paralelo, que van escribiendo información en dicha memoria compartida.

En Java se facilita mucho todo esto, tiene funcionalidades que ayudan como por ejemplo: la clase Thread, los parámetros por referencia, la palabra reservada synchronized, o el manejo de hilos en núcleos diferentes del procesador de forma transparente para el programador gracias al JRE.

Resumiendo, esto es un esqueleto para tratar de multiplicar x30 la velocidad de un programa, usando procesos concurrentes, y compartiendo los resultados en memoria.

A grano..

Continuar leyendo..


Java Spring Boot: cómo hacer un multi-proyecto con Maven

2022-06-14 - Categorías: Java / Java Spring Boot
Spring-boot

Hoy traigo un codekata o howto sobre Java, más en concreto sobre Spring Boot, y más en concreto sobre Maven. Se trata de un tutorial guiado para montar una estructura de proyecto con varios subproyectos, embebidos dentro de un mismo proyecto más grande.

La idea es montar esta estructura con ficheros Maven que se nombran como pom.xml, para que desde uno principal se recompilen, limpien, instalen.. todos los demás.

Continuar leyendo..


Java Spring Boot: empezando con JPA Hibernate y Mariadb

2022-04-30 - Categorías: General / Java / Java Spring Boot
Spring-boot

Este post es un codekata en Java usando el ORM Hibernate junto con Spring Boot. Spring Boot es una tecnología de desarrollo para Java que tenemos disponible en Spring, que orienta un proyecto a crear microservicios y se facilita mucho la programación.

Por otro lado, con Hibernate tenemos un ORM, en el que la creación de bases de datos, su manteniento y trabajo diario se facilita. Se puede llegar a mantener un proyecto con Hibernate sin tener que picar ninguna línea de código SQL. Esto facilita de nuevo mucho la programación.

Este post sirve de codekata de copia y pega para el caso de Mysql/Mariadb/Oracle, etc..

¡Vamos al grano con el codekata!

Continuar leyendo..

Java Spring Boot: montando un productor y consumidor de Kafka

2022-04-27 - Categorías: General / Java / Java Spring Boot
Spring-boot

Esto es un codekata en Java con el framework de desarrollo Spring, en concreto usando la tecnología Spring Boot, para usar Apache Kafka.

Con Spring Boot conseguimos que el proyecto esté orientado a ser un microservicio, teniendo el servidor web Tomcat embebido. Por otro lado, mediante Kafka podemos dividir las aplicaciones en microservicios, comunicarnos entre sistemas con mensajes, convertir en asíncronos procesos pesados para recibir altos picos de peticiones procesando en background después, etcétera.. ¡vamos al grano!

Continuar leyendo..

Java: diferencias entre usar Thread o Runnable

2022-03-29 - Categorías: Java

Esto es un pequeño codekata en Java para lanzar procesos concurrentes en Java. Lo podemos hacer con las clases Thread o Runnable. Por un lado tenemos la interfaz Runnable, que proporciona la base para correr procesos en hilos independientes. Y por otro lado tenemos también la clase Thread, que extiende de Runnable, que implementa los procesos a ejecutar más fácilmente.

Continuar leyendo..

El ABC con Spring Boot

2022-02-23 - Categorías: General / GNU/Linux / Java
Spring-boot

Pequeño howto o codekata para empezar rápido con Spring Boot en local. En este post vemos el SDK Man! que facilita mucho el trabajo. Es la herramienta que se recomienda desde la documentación oficial de Spring, es para entornos basados en UNIX, como GNU/Linux, Mac.. Se puede instalar siguiendo las instrucciones desde https://sdkman.io/. Podemos ejecutar el instalador con:

Continuar leyendo..

© 2022 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.