SlideShare uma empresa Scribd logo
BEM-VINDO À JAVA
O que vamos ver
  hoje?




CONCEITOS BÁSICOS,
Introdução a linguagem Java;
Um pouco de História
Java Virtual Machine; Bytecode;
Método e Classe;
Garbage Collection
OBJETIVOS


    Apresentar o mundo java e um pouco de sua história.

    Compreender os aspectos que colaboraram para o
    crescimento da linguagem Java.

    Entender o processo de compilação.

    Compreender a anatomia de uma classe.

    Conhecer o Garbage Collection

    Criar programas usando o editor de texto com uma console de
    desenvolvimento.
O que é Java?
Java é uma linguagem de programação introduzida no mercado em 1995
pela Sun Microsystems, que provocou e ainda provoca entusiasmo em
programadores, analistas e projetistas de softwares.

Mas porque Java produz essa reação?
Simplesmente porque Java é resultado de um trabalho consistente de
pesquisa e desenvolvimento de mais do que uma simples linguagem de

                    programação, mas todo um ambiente de
                    desenvolvimento e execução de programas que exibe
                    as facilidades proporcionadas pela orientação à objetos,

                                    pela extrema portabilidade do código
                                    produzido, pelas características de
                                    segurança que esta plataforma
                                    oferece e finalmente pela facilidade
                                    de sua integração aos outros
                                    ambientes, destacando-se a internet.
Um pouco de História
A partir do século XIII quando os
Vikings exploraram e colonizaram
grandes áreas da Europa e das
ilhas do Atlântico Norte...


Ops! Não é preciso voltar tanto
assim...rs
Um pouco de História
Tudo começou em 1991, com um
pequeno grupo de projeto da Sun
Microsystem denominado green que
pretendia criar uma nova geração de
computadores portáteis e inteligentes,
capazes de se comunicar de várias
formas, ampliando suas potencialidades
de uso. Para tanto decidiram criar uma
nova plataforma para desenvolvimento
destes equipamentos de forma que seu
software pudesse ser portado para os
mais diferentes tipos de equipamentos.
A primeira escolha de uma linguagem
de programação para tal foi C++, mas
mesmo o C++ não permitia realizar tudo
aquilo que o grupo visionava...
James Gosling, coordenador do projeto,
                                        decidiu então pela criação de uma nova
                                        linguagem de programação que
                                        pudesse conter tudo aquilo que era
                                        considerado importante e que ainda
                                        assim fosse simples, portátil e fácil de
                                        programar.
                                        Surgiu assim a linguagem
                                        interpretada Oak
                                        (carvalho em inglês)
                                        Batizada assim dada a existência de
                                        uma destas árvores em frente ao
                                        escritório de Gosling. Para dar suporte
                                        também surgiu o Green OS e uma
                                        interface gráfica padronizada.

Mas tarde descobriu-se que já existia uma linguagem com esse nome, o
nome java foi sugerido por acaso quando a equipe visitava a cafeteria
(java era o nome de uma cidade de origem de um café importado).
Durante algum tempo o projeto passou por dificuldades por causa da falta de
mercado, pois o mercado produtos eletrônicos que era o principal foco da
linguagem não estava crescendo como esperado, porém apos a grande
popularidade alcançada pela internet em 1993, a Sun viu o grande potencial que o
java tinha para criar paginas mais dinâmicas. A Sun anunciou formalmente o Java
em 1995, e hoje é uma das linguagens mais populares do mundo, sendo usada
para construir páginas web, sistemas para PC, celulares e todo tipo de
dispositivos moveis.
Apesar de relativamente nova, a linguagem Java obteve uma espetacular aceitação
por programadores do mundo inteiro, tendo se difundido como nunca antes ocorreu
com uma linguagem de programação.

Características que colaboraram para grande aceitação da linguagem Java

        • simples
        • orientada a objetos
        • interpretada
        • robusta
        • portável e de arquitetura neutra
        • alta performance
        • distribuída e dinâmica
        • multithreaded
        • segura


                                   Com o advento da Internet, que tornou ainda
                          mais necessário a comunicação entre plataformas
                          heterogêneas, estes fatores fizeram com que o Java
                          fosse a tecnologia perfeita para este novo cenário.
Simples

Java foi idealizada para ser de fácil entendimento. Ela tem uma
sintaxe muito parecida com a do C e C++, facilitando a migração dos
programadores destas linguagens.
Orientada a objetos

A programação orientada a objetos está baseada no conceito de
classes. Uma classe é um conjunto de dados e métodos para
manipulação destes. Os dados podem ser vistos como as
propriedades do objeto, enquanto os métodos são os
comportamentos do objeto.
Interpretada

O compilador Javac gera um código
("byte code") para uma máquina
Virtual (Java virtual Machine - JVM),
ao invés de um código de máquina
para uma plataforma específica.
Qualquer plataforma que possuir um
interpretador Java poderá executar o
programa compilado. Assim, o
programa compilado é independente
de plataforma .
Robusta

Java foi desenvolvida para garantir a criação
de programas altamente confiáveis. Ela não
dispensa uma programação cuidadosa, mas
elimina alguns tipos de erros de programação,
possíveis em outras linguagens. A ausência da
aritmética de ponteiros exclui toda uma classe
de erros relacionados a esse tipo de estrutura.
O acesso a arrays e strings e a conversão de
tipos são checados em tempo de execução para
assegurar a sua validade. A coleta de lixo
(garbage collection) faz a desalocação
automática de memória evitando erros de
referência (ponteiros nulos), e perda de área de
memória por não desalocação de objetos não
mais referidos (leakage). Finalmente, o recurso
de Exception Handling permite o tratamento de
erros em tempo de execução, por um mecanismo
robusto, análogo ao do C++.
Portável e de arquitetura neutra

O fato do compilador gerar um código neutro ("byte code") permite
que o mesmo programa possa ser executado em qualquer máquina e
sistema operacional que possua um interpretador Java. Mas isto não
basta para um programa ser portável. Java pretende garantir que
todos os aspectos da linguagem sejam independentes da plataforma.
Por exemplo, Java especifica o tamanho e comportamento de cada
tipo de dado. É diferente de C no qual um tipo int pode ter 16, 32 ou
64 bits dependendo da plataforma.
Alta performance

Por ser uma linguagem interpretada, Java não oferece a mesma
velocidade de programas escritos em C/C++. Mas a sua performance
é adequada para aplicações como interface gráfica de programas
interativos e para funcionar em rede, já que eles demandam algum
tempo para a entrada de dados. Para aplicações onde se pode abrir
mão da portabilidade, podemos usar Java na interface gráfica e nos
recursos de rede e integrar um pacote escrito em C/C++ para as
operações de cálculo. Também é importante salientar que existe um
projeto da Sun em parceria com grandes empresas para melhorar a
performance da linguagem o que pode trazer grandes benefícios a
curto prazo.
Distribuída e dinâmica

Java verifica o tipo de qualquer objeto em tempo de compilação e
dinamicamente em tempo de execução.
Imagine agora que criamos um programa para tratamento de imagens.
Com o tempo os padrões vão se alterando e o nosso programa
precisa de atualizações. Em java é possível que o próprio programa se
atualize, conectando um computador remoto e carregando a classe
necessária, tudo isso em tempo de execução. Isto permite que
tenhamos instalado um programa simples que busca as classes
necessárias em diversos computadores da rede. Esta é a razão de
chamá-la de uma linguagem distribuída.
Multithreaded

Um programa escrito em Java
pode realizar várias tarefas
assincronamente com o uso de
"Threads". Criar um "Thread" e
manipulá-lo é tão simples quanto
criar e trabalhar com qualquer
variável. Isto permite que uma
rotina possa ser executada sem
que o usuário tenha que esperar
para entrar um novo comando do
programa. Por exemplo, ao lançar
um thread para imprimir um
documento, o usuário estará
imediatamente livre para continuar
sua edição.
Segura

Como vimos Java é uma linguagem que pode manipular objetos
distribuídos pela rede. Para garantir a segurança do sistema contra
operações ilegais existe a classe Security Manager. O objetivo é
permitir a execução de um programa, monitorando as ações que
podem causar dano ao sistema. Por exemplo, podemos impedir que
um programa tenha acesso ao disco local ou a informações do nosso
sistema. Mas se temos certeza da origem do programa, podemos ser
menos rígidos dando mais acesso ao mesmo. Isto é possível através
de uma assinatura digital, recurso implementado nas versões mais
novas da linguagem.
Java modulo 01 - Introdução
Parte II
Tá bom… Mas como o
Java funciona?
Java modulo 01 - Introdução
Java modulo 01 - Introdução
Java modulo 01 - Introdução
Java modulo 01 - Introdução
aaah! Eu acho que
estou entendendo.
Java modulo 01 - Introdução
Java modulo 01 - Introdução
Public class OlaMundo {

      public static void main (string[ ] args) {
             System.out.println(“Olá!”);
             System.out.println(“Mundo”);
        }
}
Máquina Virtual Java - JVM

A máquina virtual java (JVM) é uma máquina imaginária que emula
uma aplicação em uma máquina real. É a JVM que permite a
portabilidade do código Java, isto ocorre porque todo código Java é
compilado para um formato intermediário, bytecode, este formato é
então interpretado pela JVM.

Existem diversas JVMs cada uma delas destinada a um tipo de
sistema operacional (Windows, Linux, Mac e etc.), desta forma sendo o
código da aplicação Java, bytecode, um código interpretado pela JVM,
podemos desenvolver uma aplicação sem nos preocuparmos onde ela
será executada pois sabemos que existindo a JVM instalada nosso
código será executável.
BYTECODE

O bytecode é uma linguagem de máquina especial que pode
ser entendida pela Máquina Virtual Java (JVM). O
bytecode é independente de qualquer hardware de
computador particular. Assim, qualquer computador com o
interpretador Java pode executar um programa Java
compilado, não importando em que tipo de computador o
programa foi compilado.
Java modulo 01 - Introdução
Coletor de Lixo – Garbage Collection
Coletor de Lixo – Garbage Collection

Muitas linguagens de programação nos permitem alocar
espaço na memória em tempo de execução, uma vez
encerrado o programa deve haver uma maneira de
liberar este espaço para que outras aplicações possam
utilizá-lo. Em muitas das linguagens de programação,
inclusive C e C++, a responsabilidade pela liberação do
espaço que não mais será utilizado é do programador,
no entanto, nem sempre é fácil gerenciar
o que está e o que não está sendo
utilizado, a má gerência da memória
ocasiona muitas vezes o estouro de pilha
(stack overflow) entre outros problemas.
Na linguagem de programação Java a
responsabilidade pela gerência da memória é do
Coletor de lixo (Garbage Collector), desta forma,
programadores Java ficam livres da preocupação de
alocação e desalocação da memória.
O Coletor de lixo é um processo que roda em segundo
plano e é responsável pela liberação de memória
alocada por variáveis que não mais serão utilizadas
pela aplicação.
Exercícios

Criando a primeira aplicação console

Neste exercício utilizaremos um simples editor de texto, que pode ser
o gedit do Linux ou o notepad do Windows, para editar o código
fonte. Em seguida será necessário abrir uma janela
terminal para compilar e executar os programas.
Primeiro Programa Java


1º passo: digitar o código fonte


Digite as seguintes instruções no editor de textos:

public class Hello
{
   /**
    * Meu primeiro programa Java
    */
   public static void main(String[] args) {
// Mostra na tela o texto "Hello world"
       System.out.println("Hello world!");
   }
}
Primeiro Programa Java


2º passo: Salvar o programa Java


Chamaremos o programa de "Hello.java" e o
colocaremos em uma pasta denominada
"myJavaPrograms".

ATENÇÃO: Para o Notepad no Windows, mude o
Tipo para "All Files" (em Save as Type).
Primeiro Programa Java

3º passo: Abrir a janela de console


Para abrir o terminal no Linux, selecione
Applications ⇒ Accessories ⇒ Terminal.

Para abrir o terminal no Windows, selecione
Start ⇒ Run... e na janela que se apresenta, digite
cmd e pressione o botão OK
Primeiro Programa Java


4º passo: Compilar o programa


Para compilar o programa, utilizamos o comando:
javac [Nome do Arquivo]. Ou seja:
javac Hello.java

Durante a compilação, é criado o arquivo: [Nome do
Arquivo].class, neste caso, Hello.class,
que contém o código em linguagem de máquina
(chamado de bytecode).
Primeiro Programa Java


5º passo: Executar o programa


Assumindo que não ocorreu problemas na
compilação (caso tenha ocorrido qualquer problema
refaça os passos realizados), estamos prontos para
executar o programa.

Para executar o programa, utilizamos o comando:
java [nome do arquivo sem a extensão].
No caso do exemplo, digite:
java Hello
Exercícios
             1. Crie uma classe que imprima o seguinte texto “Bem-vindo
             ao mundo Java”.

             2. Compile e execute a classe desenvolvida no exercício
             anterior.

             3. Comente o trecho de código responsável pela execução
             da impressão, compile e execute.

             4. O que é o Garbage Collection e qual a sua função?
Pensamento



"Seja lá o que você fizer, seja bom nisso."

                                 Abraham Lincoln
Java modulo 01 - Introdução

Mais conteúdo relacionado

PPTX
Gestão do Tempo
PDF
Introdução ao desenvolvimento Web
PDF
Use a Cabeça Java - 2ª Edição.pdf
PPTX
Introdução a python
PDF
Aula UML - Unified Modeling Language
PDF
Introdução a Linguagem de Programação C
DOCX
Projeto de Rede Local (LAN)
Gestão do Tempo
Introdução ao desenvolvimento Web
Use a Cabeça Java - 2ª Edição.pdf
Introdução a python
Aula UML - Unified Modeling Language
Introdução a Linguagem de Programação C
Projeto de Rede Local (LAN)

Mais procurados (20)

PDF
Aula de Introdução - JAVA
PDF
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
PDF
Curso de HTML5 - Aula 01
PDF
Aula 2 - POO: Fundamentos da linguagem Java
PDF
Aula 1 - Introdução a POO
PDF
Introdução ao SQL
PDF
Aula 7 - Modelagem de Software
PDF
Curso HTML, CSS e JavaScript
PDF
1.Introdução Banco de Dados
PPTX
222097384 aulas-de-rede-tipos-de-servidores
PDF
Banco de Dados - MySQL Basico
PPTX
Arquitetura de computadores Módulo 4
KEY
Python 01
PPTX
Introdução ao desenvolvimento da web.pptx
PPTX
Modelagem de Dados
PDF
Montando o Computador
PDF
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
PDF
Introdução à Engenharia de Software
PPTX
Aula 11 banco de dados
Aula de Introdução - JAVA
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Curso de HTML5 - Aula 01
Aula 2 - POO: Fundamentos da linguagem Java
Aula 1 - Introdução a POO
Introdução ao SQL
Aula 7 - Modelagem de Software
Curso HTML, CSS e JavaScript
1.Introdução Banco de Dados
222097384 aulas-de-rede-tipos-de-servidores
Banco de Dados - MySQL Basico
Arquitetura de computadores Módulo 4
Python 01
Introdução ao desenvolvimento da web.pptx
Modelagem de Dados
Montando o Computador
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Introdução à Engenharia de Software
Aula 11 banco de dados
Anúncio

Destaque (20)

PPT
ApresentaçãO De Java
ODP
Apresentação java
PPT
Introdução ao JAVA (linguagem de programação WEB)
PDF
Linguagem de Programação Java para Iniciantes
PPT
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
PPT
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
KEY
Introdução a java
PPT
Ihm Aula 06 Gestalt 25.03.08 E
ODP
Algoritmo aula 01-f
PPT
Introdução à programação para web com Java - Módulo 01: Conceitos básicos
PPTX
Apresentação do Curso Técnico em Informática para Internet
PPT
Introdução à programação para web com Java - Módulo 02: Conceitos básicos de...
PPT
Algoritmos 05 - Estruturas de repetição
PDF
Introdução a Linguagem Java
PPT
Algoritmo 04 - Estruturas de decisão
PPTX
Curso Básico de Java - Aula 4
PDF
Mini Curso Java Day(Eliane Raquel)
PPTX
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
PPT
Aula 02 implementação objeto
PPTX
Curso Java Básico - Aula02
ApresentaçãO De Java
Apresentação java
Introdução ao JAVA (linguagem de programação WEB)
Linguagem de Programação Java para Iniciantes
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Introdução a java
Ihm Aula 06 Gestalt 25.03.08 E
Algoritmo aula 01-f
Introdução à programação para web com Java - Módulo 01: Conceitos básicos
Apresentação do Curso Técnico em Informática para Internet
Introdução à programação para web com Java - Módulo 02: Conceitos básicos de...
Algoritmos 05 - Estruturas de repetição
Introdução a Linguagem Java
Algoritmo 04 - Estruturas de decisão
Curso Básico de Java - Aula 4
Mini Curso Java Day(Eliane Raquel)
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
Aula 02 implementação objeto
Curso Java Básico - Aula02
Anúncio

Semelhante a Java modulo 01 - Introdução (20)

ODP
Java 01 Java Visao Geral
ODP
Java 01 Java Visao Geral Detalhado
ODP
Java 01 Java Visao Geral Resumo
PPT
PDF
Conhecendo Java
PPTX
Curso Básico de Java - Aula 1
PPT
Apostila de Fundamentos Java
PPT
27072010221224.introdução a java aula 1
PDF
Programação Desktop: Uma abordagem com Java
PDF
Java programação orientada a objetos
PPTX
Isc aula 7
ODP
Linguagem de programação
PPTX
Poo1 aula 1 - java - história e introdução
PPTX
Poo1 aula 1 - java - história e introdução
PPTX
Curso de Java 1 - (Introdução Geral).pptx
DOCX
PPTX
Curso Android - Dia 1 - Apresentação java
PDF
Java: Muito mais que uma linguagem!
PPT
Apostila Java
PPT
Apostila Java
Java 01 Java Visao Geral
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Resumo
Conhecendo Java
Curso Básico de Java - Aula 1
Apostila de Fundamentos Java
27072010221224.introdução a java aula 1
Programação Desktop: Uma abordagem com Java
Java programação orientada a objetos
Isc aula 7
Linguagem de programação
Poo1 aula 1 - java - história e introdução
Poo1 aula 1 - java - história e introdução
Curso de Java 1 - (Introdução Geral).pptx
Curso Android - Dia 1 - Apresentação java
Java: Muito mais que uma linguagem!
Apostila Java
Apostila Java

Mais de Professor Samuel Ribeiro (20)

PPTX
Tecnologia, Inovação e uma pitada de Programação
PPTX
Informatica Básica - Sexta Básica
PPT
Java básico - Módulo 09: Introdução a programação orientada à objetos
PPT
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
PPT
Java Básico - Módulo 07: Introdução à programação orientada à objetos
PPT
Java básico - Módulo 06: Array
PPT
Java básico - Módulo 05 - Estruturas de Repetição
PPT
Java básico - Módulo 04: Estruturas de controle
PPT
Java básico - módulo 03: captura de dados
PPT
Java m01 - Nomenclaturas
PPTX
OPC TWS – MODULO 06
PPTX
OPC TWS – MODULO 05
PPTX
OPC TWS – MODULO 04
PPTX
OPC TWS – MODULO 03
PPTX
OPC-TWS - modulo 02
PPTX
OPC-TWS - Módulo 01
POT
Algoritmo 06 - Array e Matrizes
PPT
Algoritmo - tipos de dados
PPT
Aula 07 Css - Parte 1
PPT
Aula 03 - Mecanismos da Percepção Humana
Tecnologia, Inovação e uma pitada de Programação
Informatica Básica - Sexta Básica
Java básico - Módulo 09: Introdução a programação orientada à objetos
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java básico - Módulo 06: Array
Java básico - Módulo 05 - Estruturas de Repetição
Java básico - Módulo 04: Estruturas de controle
Java básico - módulo 03: captura de dados
Java m01 - Nomenclaturas
OPC TWS – MODULO 06
OPC TWS – MODULO 05
OPC TWS – MODULO 04
OPC TWS – MODULO 03
OPC-TWS - modulo 02
OPC-TWS - Módulo 01
Algoritmo 06 - Array e Matrizes
Algoritmo - tipos de dados
Aula 07 Css - Parte 1
Aula 03 - Mecanismos da Percepção Humana

Último (20)

PPTX
Ciências da Natureza e suas áreas de desenvolvimento
PPTX
Realismo e Naturalismo: Aluísio Azevedo.
PPTX
brasilcolnia2-101027184359-phpapp02.pptx
PPTX
A História da Europa na Baixa Idade Média.pptx
PDF
Células Introdução para as aulas de EJA.
PPTX
norma regulamentadora numero vinte nr 20
PDF
embriologia_animal_aula_share_2026_semestre
PDF
A Revolução Francesa de 1789 slides história
PPTX
biossegurança e segurança no trabalho (6).pptx
PPT
sistema reprodutor para turmas do oitavo ano
PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PPTX
Programa Nacional de Saúde do Adulto.pptx
PDF
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
PDF
BINGOS_DAS_PALAVRAS_bingo das palavras.pdf
PDF
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
PDF
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
PPTX
GUERRAFRIA.pptdddddddddddddddddddddddddx
PDF
A provisão de jojuador (ramadã) islamismo
PDF
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
PDF
Formação politica brasil_2017.pptx.pdf
Ciências da Natureza e suas áreas de desenvolvimento
Realismo e Naturalismo: Aluísio Azevedo.
brasilcolnia2-101027184359-phpapp02.pptx
A História da Europa na Baixa Idade Média.pptx
Células Introdução para as aulas de EJA.
norma regulamentadora numero vinte nr 20
embriologia_animal_aula_share_2026_semestre
A Revolução Francesa de 1789 slides história
biossegurança e segurança no trabalho (6).pptx
sistema reprodutor para turmas do oitavo ano
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
Programa Nacional de Saúde do Adulto.pptx
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
BINGOS_DAS_PALAVRAS_bingo das palavras.pdf
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
GUERRAFRIA.pptdddddddddddddddddddddddddx
A provisão de jojuador (ramadã) islamismo
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
Formação politica brasil_2017.pptx.pdf

Java modulo 01 - Introdução

  • 2. O que vamos ver hoje? CONCEITOS BÁSICOS, Introdução a linguagem Java; Um pouco de História Java Virtual Machine; Bytecode; Método e Classe; Garbage Collection
  • 3. OBJETIVOS Apresentar o mundo java e um pouco de sua história. Compreender os aspectos que colaboraram para o crescimento da linguagem Java. Entender o processo de compilação. Compreender a anatomia de uma classe. Conhecer o Garbage Collection Criar programas usando o editor de texto com uma console de desenvolvimento.
  • 4. O que é Java? Java é uma linguagem de programação introduzida no mercado em 1995 pela Sun Microsystems, que provocou e ainda provoca entusiasmo em programadores, analistas e projetistas de softwares. Mas porque Java produz essa reação? Simplesmente porque Java é resultado de um trabalho consistente de pesquisa e desenvolvimento de mais do que uma simples linguagem de programação, mas todo um ambiente de desenvolvimento e execução de programas que exibe as facilidades proporcionadas pela orientação à objetos, pela extrema portabilidade do código produzido, pelas características de segurança que esta plataforma oferece e finalmente pela facilidade de sua integração aos outros ambientes, destacando-se a internet.
  • 5. Um pouco de História A partir do século XIII quando os Vikings exploraram e colonizaram grandes áreas da Europa e das ilhas do Atlântico Norte... Ops! Não é preciso voltar tanto assim...rs
  • 6. Um pouco de História Tudo começou em 1991, com um pequeno grupo de projeto da Sun Microsystem denominado green que pretendia criar uma nova geração de computadores portáteis e inteligentes, capazes de se comunicar de várias formas, ampliando suas potencialidades de uso. Para tanto decidiram criar uma nova plataforma para desenvolvimento destes equipamentos de forma que seu software pudesse ser portado para os mais diferentes tipos de equipamentos. A primeira escolha de uma linguagem de programação para tal foi C++, mas mesmo o C++ não permitia realizar tudo aquilo que o grupo visionava...
  • 7. James Gosling, coordenador do projeto, decidiu então pela criação de uma nova linguagem de programação que pudesse conter tudo aquilo que era considerado importante e que ainda assim fosse simples, portátil e fácil de programar. Surgiu assim a linguagem interpretada Oak (carvalho em inglês) Batizada assim dada a existência de uma destas árvores em frente ao escritório de Gosling. Para dar suporte também surgiu o Green OS e uma interface gráfica padronizada. Mas tarde descobriu-se que já existia uma linguagem com esse nome, o nome java foi sugerido por acaso quando a equipe visitava a cafeteria (java era o nome de uma cidade de origem de um café importado).
  • 8. Durante algum tempo o projeto passou por dificuldades por causa da falta de mercado, pois o mercado produtos eletrônicos que era o principal foco da linguagem não estava crescendo como esperado, porém apos a grande popularidade alcançada pela internet em 1993, a Sun viu o grande potencial que o java tinha para criar paginas mais dinâmicas. A Sun anunciou formalmente o Java em 1995, e hoje é uma das linguagens mais populares do mundo, sendo usada para construir páginas web, sistemas para PC, celulares e todo tipo de dispositivos moveis.
  • 9. Apesar de relativamente nova, a linguagem Java obteve uma espetacular aceitação por programadores do mundo inteiro, tendo se difundido como nunca antes ocorreu com uma linguagem de programação. Características que colaboraram para grande aceitação da linguagem Java • simples • orientada a objetos • interpretada • robusta • portável e de arquitetura neutra • alta performance • distribuída e dinâmica • multithreaded • segura Com o advento da Internet, que tornou ainda mais necessário a comunicação entre plataformas heterogêneas, estes fatores fizeram com que o Java fosse a tecnologia perfeita para este novo cenário.
  • 10. Simples Java foi idealizada para ser de fácil entendimento. Ela tem uma sintaxe muito parecida com a do C e C++, facilitando a migração dos programadores destas linguagens.
  • 11. Orientada a objetos A programação orientada a objetos está baseada no conceito de classes. Uma classe é um conjunto de dados e métodos para manipulação destes. Os dados podem ser vistos como as propriedades do objeto, enquanto os métodos são os comportamentos do objeto.
  • 12. Interpretada O compilador Javac gera um código ("byte code") para uma máquina Virtual (Java virtual Machine - JVM), ao invés de um código de máquina para uma plataforma específica. Qualquer plataforma que possuir um interpretador Java poderá executar o programa compilado. Assim, o programa compilado é independente de plataforma .
  • 13. Robusta Java foi desenvolvida para garantir a criação de programas altamente confiáveis. Ela não dispensa uma programação cuidadosa, mas elimina alguns tipos de erros de programação, possíveis em outras linguagens. A ausência da aritmética de ponteiros exclui toda uma classe de erros relacionados a esse tipo de estrutura. O acesso a arrays e strings e a conversão de tipos são checados em tempo de execução para assegurar a sua validade. A coleta de lixo (garbage collection) faz a desalocação automática de memória evitando erros de referência (ponteiros nulos), e perda de área de memória por não desalocação de objetos não mais referidos (leakage). Finalmente, o recurso de Exception Handling permite o tratamento de erros em tempo de execução, por um mecanismo robusto, análogo ao do C++.
  • 14. Portável e de arquitetura neutra O fato do compilador gerar um código neutro ("byte code") permite que o mesmo programa possa ser executado em qualquer máquina e sistema operacional que possua um interpretador Java. Mas isto não basta para um programa ser portável. Java pretende garantir que todos os aspectos da linguagem sejam independentes da plataforma. Por exemplo, Java especifica o tamanho e comportamento de cada tipo de dado. É diferente de C no qual um tipo int pode ter 16, 32 ou 64 bits dependendo da plataforma.
  • 15. Alta performance Por ser uma linguagem interpretada, Java não oferece a mesma velocidade de programas escritos em C/C++. Mas a sua performance é adequada para aplicações como interface gráfica de programas interativos e para funcionar em rede, já que eles demandam algum tempo para a entrada de dados. Para aplicações onde se pode abrir mão da portabilidade, podemos usar Java na interface gráfica e nos recursos de rede e integrar um pacote escrito em C/C++ para as operações de cálculo. Também é importante salientar que existe um projeto da Sun em parceria com grandes empresas para melhorar a performance da linguagem o que pode trazer grandes benefícios a curto prazo.
  • 16. Distribuída e dinâmica Java verifica o tipo de qualquer objeto em tempo de compilação e dinamicamente em tempo de execução. Imagine agora que criamos um programa para tratamento de imagens. Com o tempo os padrões vão se alterando e o nosso programa precisa de atualizações. Em java é possível que o próprio programa se atualize, conectando um computador remoto e carregando a classe necessária, tudo isso em tempo de execução. Isto permite que tenhamos instalado um programa simples que busca as classes necessárias em diversos computadores da rede. Esta é a razão de chamá-la de uma linguagem distribuída.
  • 17. Multithreaded Um programa escrito em Java pode realizar várias tarefas assincronamente com o uso de "Threads". Criar um "Thread" e manipulá-lo é tão simples quanto criar e trabalhar com qualquer variável. Isto permite que uma rotina possa ser executada sem que o usuário tenha que esperar para entrar um novo comando do programa. Por exemplo, ao lançar um thread para imprimir um documento, o usuário estará imediatamente livre para continuar sua edição.
  • 18. Segura Como vimos Java é uma linguagem que pode manipular objetos distribuídos pela rede. Para garantir a segurança do sistema contra operações ilegais existe a classe Security Manager. O objetivo é permitir a execução de um programa, monitorando as ações que podem causar dano ao sistema. Por exemplo, podemos impedir que um programa tenha acesso ao disco local ou a informações do nosso sistema. Mas se temos certeza da origem do programa, podemos ser menos rígidos dando mais acesso ao mesmo. Isto é possível através de uma assinatura digital, recurso implementado nas versões mais novas da linguagem.
  • 21. Tá bom… Mas como o Java funciona?
  • 26. aaah! Eu acho que estou entendendo.
  • 29. Public class OlaMundo { public static void main (string[ ] args) { System.out.println(“Olá!”); System.out.println(“Mundo”); } }
  • 30. Máquina Virtual Java - JVM A máquina virtual java (JVM) é uma máquina imaginária que emula uma aplicação em uma máquina real. É a JVM que permite a portabilidade do código Java, isto ocorre porque todo código Java é compilado para um formato intermediário, bytecode, este formato é então interpretado pela JVM. Existem diversas JVMs cada uma delas destinada a um tipo de sistema operacional (Windows, Linux, Mac e etc.), desta forma sendo o código da aplicação Java, bytecode, um código interpretado pela JVM, podemos desenvolver uma aplicação sem nos preocuparmos onde ela será executada pois sabemos que existindo a JVM instalada nosso código será executável.
  • 31. BYTECODE O bytecode é uma linguagem de máquina especial que pode ser entendida pela Máquina Virtual Java (JVM). O bytecode é independente de qualquer hardware de computador particular. Assim, qualquer computador com o interpretador Java pode executar um programa Java compilado, não importando em que tipo de computador o programa foi compilado.
  • 33. Coletor de Lixo – Garbage Collection
  • 34. Coletor de Lixo – Garbage Collection Muitas linguagens de programação nos permitem alocar espaço na memória em tempo de execução, uma vez encerrado o programa deve haver uma maneira de liberar este espaço para que outras aplicações possam utilizá-lo. Em muitas das linguagens de programação, inclusive C e C++, a responsabilidade pela liberação do espaço que não mais será utilizado é do programador, no entanto, nem sempre é fácil gerenciar o que está e o que não está sendo utilizado, a má gerência da memória ocasiona muitas vezes o estouro de pilha (stack overflow) entre outros problemas. Na linguagem de programação Java a responsabilidade pela gerência da memória é do Coletor de lixo (Garbage Collector), desta forma, programadores Java ficam livres da preocupação de alocação e desalocação da memória. O Coletor de lixo é um processo que roda em segundo plano e é responsável pela liberação de memória alocada por variáveis que não mais serão utilizadas pela aplicação.
  • 35. Exercícios Criando a primeira aplicação console Neste exercício utilizaremos um simples editor de texto, que pode ser o gedit do Linux ou o notepad do Windows, para editar o código fonte. Em seguida será necessário abrir uma janela terminal para compilar e executar os programas.
  • 36. Primeiro Programa Java 1º passo: digitar o código fonte Digite as seguintes instruções no editor de textos: public class Hello { /** * Meu primeiro programa Java */ public static void main(String[] args) { // Mostra na tela o texto "Hello world" System.out.println("Hello world!"); } }
  • 37. Primeiro Programa Java 2º passo: Salvar o programa Java Chamaremos o programa de "Hello.java" e o colocaremos em uma pasta denominada "myJavaPrograms". ATENÇÃO: Para o Notepad no Windows, mude o Tipo para "All Files" (em Save as Type).
  • 38. Primeiro Programa Java 3º passo: Abrir a janela de console Para abrir o terminal no Linux, selecione Applications ⇒ Accessories ⇒ Terminal. Para abrir o terminal no Windows, selecione Start ⇒ Run... e na janela que se apresenta, digite cmd e pressione o botão OK
  • 39. Primeiro Programa Java 4º passo: Compilar o programa Para compilar o programa, utilizamos o comando: javac [Nome do Arquivo]. Ou seja: javac Hello.java Durante a compilação, é criado o arquivo: [Nome do Arquivo].class, neste caso, Hello.class, que contém o código em linguagem de máquina (chamado de bytecode).
  • 40. Primeiro Programa Java 5º passo: Executar o programa Assumindo que não ocorreu problemas na compilação (caso tenha ocorrido qualquer problema refaça os passos realizados), estamos prontos para executar o programa. Para executar o programa, utilizamos o comando: java [nome do arquivo sem a extensão]. No caso do exemplo, digite: java Hello
  • 41. Exercícios 1. Crie uma classe que imprima o seguinte texto “Bem-vindo ao mundo Java”. 2. Compile e execute a classe desenvolvida no exercício anterior. 3. Comente o trecho de código responsável pela execução da impressão, compile e execute. 4. O que é o Garbage Collection e qual a sua função?
  • 42. Pensamento "Seja lá o que você fizer, seja bom nisso." Abraham Lincoln