SlideShare uma empresa Scribd logo
1 de 43
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.
Parte II
Tá bom… Mas como o
Java funciona?
aaah! Eu acho que
estou entendendo.
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.
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

Mais procurados

Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Sérgio Souza Costa
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
munosai
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
Rodrigo Rodrigues
 

Mais procurados (20)

Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Apresentação java
Apresentação javaApresentação java
Apresentação java
 
Uml
UmlUml
Uml
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de Software
 
Algoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e MatrizesAlgoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e Matrizes
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Linguagem Dart (Google)
Linguagem Dart (Google)Linguagem Dart (Google)
Linguagem Dart (Google)
 
Visualg
VisualgVisualg
Visualg
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 

Destaque

Curso Básico de Java - Aula 4
Curso Básico de Java - Aula 4Curso Básico de Java - Aula 4
Curso Básico de Java - Aula 4
PeslPinguim
 
Mini Curso Java Day(Eliane Raquel)
Mini Curso Java Day(Eliane Raquel)Mini Curso Java Day(Eliane Raquel)
Mini Curso Java Day(Eliane Raquel)
raquelcarsi
 
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
Poo1   aula 3 - java - comentários instruções e blocos-palavras chavePoo1   aula 3 - java - comentários instruções e blocos-palavras chave
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
Denis Sobrenome
 
Aula 02 implementação objeto
Aula 02   implementação objetoAula 02   implementação objeto
Aula 02 implementação objeto
Danilo Alves
 
Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2
PeslPinguim
 

Destaque (20)

ApresentaçãO De Java
ApresentaçãO De JavaApresentaçãO De Java
ApresentaçãO De Java
 
Introdução ao JAVA (linguagem de programação WEB)
Introdução ao JAVA (linguagem de programação WEB)Introdução ao JAVA (linguagem de programação WEB)
Introdução ao JAVA (linguagem de programação WEB)
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
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 01: Conexão com bamco de...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 01: Conexão com bamco de...
 
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
 
Introdução a java
Introdução a javaIntrodução a java
Introdução a java
 
Ihm Aula 06 Gestalt 25.03.08 E
Ihm   Aula 06   Gestalt  25.03.08 EIhm   Aula 06   Gestalt  25.03.08 E
Ihm Aula 06 Gestalt 25.03.08 E
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Introdução à programação para web com Java - Módulo 01: Conceitos básicos
Introdução à programação para web com Java -  Módulo 01: Conceitos básicosIntrodução à programação para web com Java -  Módulo 01: Conceitos básicos
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
Apresentação do Curso Técnico em Informática para InternetApresentação do Curso Técnico em Informática para Internet
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...
Introdução à programação para web com Java -  Módulo 02: Conceitos básicos de...Introdução à programação para web com Java -  Módulo 02: Conceitos básicos de...
Introdução à programação para web com Java - Módulo 02: Conceitos básicos de...
 
Algoritmos 05 - Estruturas de repetição
Algoritmos 05 - Estruturas de repetiçãoAlgoritmos 05 - Estruturas de repetição
Algoritmos 05 - Estruturas de repetição
 
Algoritmo 04 - Estruturas de decisão
 Algoritmo 04 - Estruturas de decisão Algoritmo 04 - Estruturas de decisão
Algoritmo 04 - Estruturas de decisão
 
Curso Básico de Java - Aula 4
Curso Básico de Java - Aula 4Curso Básico de Java - Aula 4
Curso Básico de Java - Aula 4
 
Mini Curso Java Day(Eliane Raquel)
Mini Curso Java Day(Eliane Raquel)Mini Curso Java Day(Eliane Raquel)
Mini Curso Java Day(Eliane Raquel)
 
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
Poo1   aula 3 - java - comentários instruções e blocos-palavras chavePoo1   aula 3 - java - comentários instruções e blocos-palavras chave
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
 
Aula 02 implementação objeto
Aula 02   implementação objetoAula 02   implementação objeto
Aula 02 implementação objeto
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 

Semelhante a Java modulo 01 - Introdução

Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
Regis Magalhães
 
Java 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoJava 01 Java Visao Geral Resumo
Java 01 Java Visao Geral Resumo
Regis Magalhães
 
Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1
PeslPinguim
 
27072010221224.introdução a java aula 1
27072010221224.introdução a java   aula 127072010221224.introdução a java   aula 1
27072010221224.introdução a java aula 1
bibliotecadobarao
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introdução
Denis Sobrenome
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introdução
Denis Sobrenome
 
Curso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação javaCurso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação java
Alex Braz
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!
Aécio Costa
 

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

Java 01 Java Visao Geral
Java 01 Java Visao GeralJava 01 Java Visao Geral
Java 01 Java Visao Geral
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
 
Java 01 Java Visao Geral Resumo
Java 01 Java Visao Geral ResumoJava 01 Java Visao Geral Resumo
Java 01 Java Visao Geral Resumo
 
Java
JavaJava
Java
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 
Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1
 
27072010221224.introdução a java aula 1
27072010221224.introdução a java   aula 127072010221224.introdução a java   aula 1
27072010221224.introdução a java aula 1
 
Programação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com JavaProgramação Desktop: Uma abordagem com Java
Programação Desktop: Uma abordagem com Java
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
Isc aula 7
Isc   aula 7Isc   aula 7
Isc aula 7
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introdução
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introdução
 
Cursos
CursosCursos
Cursos
 
Curso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação javaCurso Android - Dia 1 - Apresentação java
Curso Android - Dia 1 - Apresentação java
 
Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!Java: Muito mais que uma linguagem!
Java: Muito mais que uma linguagem!
 
Apostila Java
Apostila JavaApostila Java
Apostila Java
 
Apostila Java
Apostila JavaApostila Java
Apostila Java
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 

Mais de Professor Samuel Ribeiro

Mais de Professor Samuel Ribeiro (20)

Tecnologia, Inovação e uma pitada de Programação
Tecnologia, Inovação e uma pitada de ProgramaçãoTecnologia, Inovação e uma pitada de Programação
Tecnologia, Inovação e uma pitada de Programação
 
Informatica Básica - Sexta Básica
Informatica Básica - Sexta BásicaInformatica Básica - Sexta Básica
Informatica Básica - Sexta Básica
 
Java básico - Módulo 09: Introdução a programação orientada à objetos
Java básico - Módulo 09: Introdução a programação orientada à objetosJava básico - Módulo 09: Introdução a programação orientada à objetos
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 08 - Introdução à programação orientada à objetos oo - c...Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
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 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos
 
Java básico - Módulo 06: Array
Java básico - Módulo 06: ArrayJava básico - Módulo 06: Array
Java básico - Módulo 06: Array
 
Java básico - Módulo 05 - Estruturas de Repetição
Java  básico - Módulo 05 - Estruturas de RepetiçãoJava  básico - Módulo 05 - Estruturas de Repetição
Java básico - Módulo 05 - Estruturas de Repetição
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
Java básico - módulo 03: captura de dados
Java  básico - módulo 03: captura de dadosJava  básico - módulo 03: captura de dados
Java básico - módulo 03: captura de dados
 
Java m01 - Nomenclaturas
Java   m01 - NomenclaturasJava   m01 - Nomenclaturas
Java m01 - Nomenclaturas
 
OPC TWS – MODULO 06
OPC TWS – MODULO 06OPC TWS – MODULO 06
OPC TWS – MODULO 06
 
OPC TWS – MODULO 05
OPC TWS – MODULO 05OPC TWS – MODULO 05
OPC TWS – MODULO 05
 
OPC TWS – MODULO 04
OPC TWS – MODULO 04OPC TWS – MODULO 04
OPC TWS – MODULO 04
 
OPC TWS – MODULO 03
OPC TWS – MODULO 03OPC TWS – MODULO 03
OPC TWS – MODULO 03
 
OPC-TWS - modulo 02
OPC-TWS - modulo 02OPC-TWS - modulo 02
OPC-TWS - modulo 02
 
OPC-TWS - Módulo 01
OPC-TWS -  Módulo 01OPC-TWS -  Módulo 01
OPC-TWS - Módulo 01
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 
Aula 07 Css - Parte 1
Aula 07   Css - Parte 1Aula 07   Css - Parte 1
Aula 07 Css - Parte 1
 
Aula 03 - Mecanismos da Percepção Humana
Aula 03  - Mecanismos da Percepção HumanaAula 03  - Mecanismos da Percepção Humana
Aula 03 - Mecanismos da Percepção Humana
 
O Sistema Perceptual Humano
O Sistema Perceptual HumanoO Sistema Perceptual Humano
O Sistema Perceptual Humano
 

Último

SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
NarlaAquino
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 

Último (20)

SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 

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.
  • 19.
  • 21. Tá bom… Mas como o Java funciona?
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. aaah! Eu acho que estou entendendo.
  • 27.
  • 28.
  • 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.
  • 32.
  • 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