JAVA


QUE ES JAVA 

Imagen relacionada
El nombre original de Java era Oak pero tuvo que ser cambiado por el nombre ya estaba registrado por otra compañia.

          Java es un lenguaje de programación de proposito general, orientado a objetos que fue diseñado especificamente para tener tan pocas dependencias de implementacion como fuera posible.

          Sun intencion es permitir que los desarroladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dipositivo. El lenguaje de programación Java fue originalmente desarrollado por James Gosling, de Sun Mircrosytems ( constituidad en 1982 y posteriomente adquirida el 27 de enero de 2010 por la compañia Orale), y publicando en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. 
          
            Su sintaxis deria en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son compiladas a bytecode ( clase java) que puede ejecutarse en cualquier maquina virtual Java ( JVM ) sin importar la arquitectura de la computadora subyacente.

OBJETVOS DEL LENGUAJE DE JAVA

  • Orientado a Objetos : este se refiere a un metodo de programacion y al diseño del lenguaje. El objetivo es hacer que grandes proyectos sean faciles de gestionar y manejar, mejorando como consecuencia su calidad y reduciendo el numero de proyectos fallidos.
  • Independencia : significa que programas escritos en el lenguaje Java pueden ejecutarse en cualquier tipo de hardware. 
  • Recolector de Basura : en Java el problema fugas de memoria se evita en gran medida gracias a la recoleccion de basura. El programador determina cuando se crean los objetos y el entorno en tiempo de ejecucion de Java ya que es el responsable de gestionar el ciclo de vida de los objetos.
  • Sintaxis : este se deriva a medida de C++. Pero a diferencia de este combina la sintaxis para programacion genetica, estructurada y orientada a objetos. Java fue construido desde el principio para ser completamente orientado a objetos.
Imagen relacionada

CARACTERISTICAS DEL LENGUAJE DE JAVA

  • Simple.
  • Orientado a Objetos.
  • Tipado estaticamente.
  • Distribuido.
  • Interpretado.
  • Robusto.
  • Seguro.
  • De Arquitectura Neutral.
  • Multihilo.
  • Con Recolector de Basura.
  • Portable.
  • De alto Rendimiento: sobre todo con la aparcion de hardware y software especializados.
  • Dinamico.
  • Interpretado y Compilado a la vez.
  • Produce Applets.

Imagen relacionada


Sun admite que lo dicho anteriomente son halagos por su parte, pero el hecho es que todas esas caracteristicas pueden servir para describir el lenguaje.  El codigo generado por el compilador Java es independiente de la arquitectura: podria ejecutarse en un entorno UNIX, MACo WINDOWS.
  


QUE ES UNA API

           Las Api son un conjunto de comandos, funciones y protocolos informaticos que permiten a los desarrolladores crear porgrmas especificos para ciertos sistemas operativo. Las Api simplifican en gran medida el trabajo de un creador de programas, ya que ni tiene "escribir" codigos desde cero.

            Estas permiten al informatico usar funciones predetminadas para interactuar con el sistema operativo o con otro progrma. Los usuarios pueden "ver" muchas Api en todos lados aunque no se percaten de ello.
Resultado de imagen para api



QUE ES UNA API DE JAVA

La Api Java es la interfaz de programcion de aplicaciones ( application programming interface ). Java da a los programadores medios para desarrollar aplicaciones Java. La Api esta organizada en paquetes logicos, donde cada paquete contiene un conjunto de clases relacionadas semanticamente.

Interfaces Api y Sistemas

        En la comunidad de desarrollo Java se suele identificar cada una de las diferentes bibliotecas existentes como interfaces Api de Java. 

Interfaces Api Existentes.

  • JAXP : para procesar XML.
  • Servlets : para facilitar la implementacion de soluciones web.
  • Hibernate : para facilitar la implementacion de persistencia.
Resultado de imagen para api de java

QUE ES UNA MAQUINA VIRTUAL DE JAVA

          Esta es una maquina de proceso nativo, es decir ejecutable en una plataforma especifica, capaz de interpretar y ejecutar instrucciones expresadas en un codigo binario ( bytecode java ) el cual es generado por el compilador java.

          La maquina virtual de Java puede estar implementada en Sofware, Hardware o una herramienta de desarrollo o un navegador web; lee y ejecuta codigo precompilando bytecode que es independiente de la plataforma multiforma. 
           
          Existen varias versiones, en orden cronologico, de la maquina virtual de Java. En lo general el bytecode no cambia significativamente entre versiones, y si lo hace los desarroladores del lenguaje procuran que exista compatibilidad hacia atras con los productos anteriores.

           La Java Virtual Machine al igual que so contrapartida real, ejecuta los programas con si fuera una computadora, para lo cual utiliza diversos componetes del mismo mod que los usuaria un procesador real. Entre los componetes mas importantes se encuentran los registros, pilas, recolectores de basura. 

Resultado de imagen para jvm java


QUE ES UN COMPILADOR DE JAVA

           Un compilador de Java es un programa informatico que traduce un programa escrito a un lenguaje de programacion a otro lenguaje de programacion, generando un programa equivalente que la maquina es capaz de interpretar. Usualmente el segundo lenguaje es un lenguaje de de maquina.

                Java nos permite traducir el codigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior ( tipicamente lenguaje de maquina ). De esta manera un programador puede diseñar un programa en un lenguaje muchoo mas cercano a como piensa un ser humano para luego compilarlo a un programa mas manejable por una computadora.

Resultado de imagen para compilador java
Resultado de imagen para compilador java


CUALES SON LAS VERSIONES DE JAVA

Versiones de Java (1.0 -1.2)

Java aparece en 1995 como un nuevo lenguaje de programación con soporte multiplataforma desarrollado por James Gosling y Sun MicroSystems.
Versiones De Java
Versión 1.0: La primera versión del lenguaje contiene las clases principales , la maquina virtual y el API gráfico de AWT es un lenguaje que acaba de nacer.
Versión 1.1: Aparece en 1997 e incorpora al lenguaje varias clases que faltaban como Readers /Writers  ,Calendars y Bundles . Pero sin ningún lugar a duda su mayor aportación es la inclusión del estandar de JavaBeans y el API de JDBC para conexión a bases de datos. Este último supone un salto importante en cuando a la utilización del lenguaje.
Versión 1.2: En 1998 aparece otra evolución importante con la llegada del framework de Collections y el API de Swing que permite desarrollar interfaces de ventanas más complejos.

Versiones de Java (1.3 -1.5)

Java en estos momentos ya es una plataforma madura a la cual el fabricante va añadiendo nuevas características.
VersionesDeJavaAvance
Versión 1.3: Avances pequeños en cuanto a APIs , se añade soporte JNDI. Sin embargo el avance en cuento a la arquitectura de la maquina virtual es importante ya que aparece la máquina HotSpot con compilación JIT (Just-in Time).
Versión 1.4: Se produce un salto importante en cuanto a nuevas APIs. Se incorpora un fuerte soporte de XML , Expresiones Regulares , Criptografía etc.
Versión 1.5: También denomina Java 5 se producen dos saltos importantes a nivel del core del lenguaje. Por una parte la inclusión de tipos Genéricos que se echaban en falta en el mundo de las colecciones. Por el otro lado la inclusión del concepto de metadatos con el uso de anotaciones. Se amplía el soporte de APIs orientadas a programación concurrente.

Versiones de Java (1.6 -1.8)

Java ha madurado mucho y es una de las plataforma de referencia.
VersionesDeJavaUltimas
Versión 1.6: Esta versión contiene avances muy puntuales con la inclusión de un API de compilación “on-the-fly” que permitirá gestionar servicios web de forma cómoda.
Versión 1.7: Otra versión cuyos cambios a nivel del lenguaje son limitados. Se produce una mejora de la máquina virtual incluyendo nuevos recolectores de basura.
Versión 1.8: Llega Java 8 el gran salto en cuanto al lenguaje se refiere. Se abren las puerta a la programación funcional con el uso de expresiones Lambda y Streams. Se realiza una revisión de APIS y se actualiza de forma importante la gestión de fechas.

REQUERIMIENTOS PARA PROGRAMAR EN JAVA


  1. Java JDK
  2. JVM 
  3. IDE Para Desarrollo

Requisitos del Sistema Java 8


La información detallada sobre los requisitos de Java 8 está disponible en Configuraciones de Java 8 soportadas.

Windows

  • Windows 10 (8u51 y superiores)
  • Windows 8.x (escritorio)
  • Windows 7 SP1
  • Windows Vista SP2
  • Windows Server 2008 R2 SP1 (64 bits)
  • Windows Server 2012 y 2012 R2 (64 bits)
  • RAM: 128 MB
  • Espacio en disco: 124 MB para JRE; 2 MB para Java Update
  • Procesador: Mínimo Pentium 2 a 266 MHz
  • Exploradores: Internet Explorer 9 y superior, Firefox

Mac OS X

  • Mac con Intel que ejecuta Mac OS X 10.8.3+, 10.9+
  • Privilegios de administrador para la instalación
  • Explorador de 64 bits
Se requiere un explorador de 64 bits (Safari, por ejemplo) para ejecutar Oracle Java en Mac.

Linux

  • Oracle Linux 5.5+1
  • Oracle Linux 6.x (32 bits), 6.x (64 bits)2
  • Oracle Linux 7.x (64 bits)2 (8u20 y superiores)
  • Red Hat Enterprise Linux 5.5+1, 6.x (32 bits), 6.x (64 bits)2
  • Red Hat Enterprise Linux 7.x (64 bits)2 (8u20 y superiores)
  • Suse Linux Enterprise Server 10 SP2+, 11.x
  • Suse Linux Enterprise Server 12.x (64 bits)2 (8u31 y superiores)
  • Ubuntu Linux 12.04 LTS, 13.x
  • Ubuntu Linux 14.x (8u25 y superiores)
  • Ubuntu Linux 15.04 (8u45 y superiores)
  • Ubuntu Linux 15.10 (8u65 y superiores)
  • Exploradores: Firefox

QUE ES UN IDE

          Un entorno de desarrollo integrado es una aplicacion informatica que nos proporciona servicios integrales para facilitarle al desarrollador o programador el desarrollo de software. Normalmente un IDE consiste de un editor de codigo fuente, herramientas de construccion automaticas y un deputardor. La mayoria de los IDE´s tienen un auto-completado inteligente de codigo. Algunos IDE´s contienen un compilador, un interprete o ambos tales como NetBeans y Eclipse. 

Un IDE debe tener las siguientes caracteristicas.
  • Multiplataforma
  • Soporte para diversos lenguajes de programación
  • Integración con Sistemas de Control de Versiones
  • Reconocimiento de Sintaxis
  • Extensiones y Componentes para el IDE
  • Integración con Framework populares
  • Depurador
  • Importar y Exportar proyectos
  • Múltiples idiomas
  • Manual de Usuarios y Ayuda

Un IDe debe tener los siguientes componentes.
  • Editor de texto.
  • Compilador.
  • Intérprete.
  • Herramientas de automatización.
  • Depurador.
  • Posibilidad de ofrecer un sistema de control de versiones.
  • Factibilidad para ayudar en la construcción de interfaces gráficas de usuarios.

Imagen relacionada

IDE´S MAS UTILIZADOS PARA PROGRAMAR CON JAVA

NetBeans

alternativas-ide-para-java-NetBeans
NetBeans es un entorno integrado de desarrollo para Java que se emplea ampliamente para desarrollo de software. NetBeans funciona en base a módulos, de modo que se puede extender de manera sencilla. Además se puede integrar fácilmente con controladores de versiones. Con ayuda de NetBeans puedes crear aplicaciones web o para ordenadores y móviles que funcionen en diversas plataformas.
NetBeans es un proyecto de código abierto de modo que cualquier desarrollador interesado puede colaborar con este software. Se puede descargar de manera gratuita para Windows, Mac OS y Linux.

Eclipse

alternativas-ide-para-java-Eclipse
Eclipse es una IDE que te permite crear aplicaciones en Java para móviles, web y ordenadores. Entre algunas de su útiles características tenemos la función autocompletar código, explorador remoto de sistema , editor XML, integración con Maven y una gran librería de plugins para extender las funciones de Eclipse.
Eclipse, al igual que NetBeans, es un proyecto de código abierto de modo que puedes contribuir con la comunidad al crear tu propio plugin. También puedes usar Eclipse para desarrollar aplicaciones en C++ y PHP.

Intellij Idea

alternativas-ide-para-java-IntellijIdea
IntelliJ Idea es un IDE que se emplea principalmente para desarrollo de aplicaciones Android y también para lenguajes de programación como Scala, Groovy, Kotlin, etc. Posee útiles herramientas para inspeccionar tu código y verificar que no haya errores ni funciones duplicadas. También puedes realizar búsquedas rápidas en base a palabras clave en su moderna interfaz de usuario.
Intellij Idea se puede integrar con populares frameworks como AngularJS, Grails, Velocity, React, etc. Puedes adquirir esta IDE desde $149 anuales, aunque si estás desarrollando un proyecto de código abierto sin fines de lucro puedes postular para obtener la licencia de manera gratuita. También ofrecen un descuento del 50% a startups.

Android Studio

alternativas-ide-para-java-AndroidStudio
Android Studio es una IDE desarrollada por Google que ha sido basada en Intellij Idea. Como su nombre indica, ha sido diseñada para hacerle la vida más sencilla a los desarrolladores de Android. Entre algunas de sus características tenemos plantillas de código, integración con GitHub, editor de código inteligente, emuladores de dispositivos, posibilidad de crear diversas APKs para una sola aplicación, etc.
Android Studio se puede descargar de manera gratuita para Windows, Mac OS y Linux.

BlueJ

alternativas-ide-para-java-BlueJ
BlueJ es una IDE perfecta para aquellos que desean aprender Java. Posee un depurador de errores, máquina virtual, compilador, generador interactivo de objetos, editor integrado, etc. BlueJ tiene una interfaz sencilla que optimiza el aprendizaje del lenguaje y permite crear pequeños proyectos de desarrollo de software.
BlueJ es un proyecto de código abierto y se encuentra disponible para Windows, Mac OS y Ubuntu.

JGrasp

alternativas-ide-para-java-JGrasp
jGrasp es una IDE ligera creada principalmente para la generación automática de visualizaciones de software como manera de mejorar la legibilidad del software. Puede generar visualizaciones estáticas de la estructura de código fuente, diagramas de estructuras de control (CSD) para Java, C, C++, Objective-C, Python, Ada y VHL. También genera gráficos de complejidad perfiles (CPGs) para Java y Ada.