0% acharam este documento útil (0 voto)
12 visualizações19 páginas

Introdução A Java1

Java para iniciantes

Enviado por

Sanito Vilichane
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
12 visualizações19 páginas

Introdução A Java1

Java para iniciantes

Enviado por

Sanito Vilichane
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 19

16/11/15

Introdução a Java

Mário Meireles Teixeira


UFMA – DEINF

Tecnologia Java
l Java = linguagem de programação de alto nível +
plataforma de execução de aplicações

l Java como linguagem de programação:


l Aplicativos locais (programas Java) e distribuídos (sockets, RMI)
l Aplicativos que executam em browsers (Applets)
l Aplicativos corporativos de grande porte e Páginas Web
dinâmicas (Servlets, JSP, JSF à WebApps)
l Aplicativos para dispositivos móveis (Java ME, Android)

l Java como ambiente de execução:


l ambiente neutro (JRE – Java Runtime Environment) para diferentes
plataformas: SO’s, browsers, celulares, tablets...
Introdução a Java
2
16/11/15

Linguagem Java
l Linguagem de programação orientada a objetos:
l Familiar (sintaxe parecida com C)
l Simples e robusta (minimiza bugs, aumenta produtividade)
l Suporte nativo a threads (+ simples, maior portabilidade)
l Dinâmica (módulos, acoplamento em tempo de execução)
l Com coleta de lixo (menos bugs, mais produtividade)
l Independente de plataforma
l Segura (vários mecanismos para controlar segurança)
l Código intermediário de máquina virtual interpretado
(compilação rápida, execução + “lenta”, + produtividade no
desenvolvimento)
l Sintaxe uniforme, rigorosa quanto a tipos (código mais
consistente)

Introdução a Java
3

Linguagens OO: genealogia


ALGOL
1960

SIMULA C
1967 1972
Pascal
1973 SmallTalk
1980

ADA C++
1983 1985
Java
ADA 1995
Introdução a Java
1995
4
16/11/15

Desenvolvimento de
programas

código código
compilação
fonte objeto

código
Link-edição
executável

Introdução a Java
5

Implementação de LP
l Compilação
l geração de código executável
l dependente da plataforma de execução
l tradução lenta X execução rápida
l Interpretação pura
l sem geração de código
l execução lenta, independente de plataforma
l Híbrida
l geração de código intermediário
l independente de plataforma de execução
l tradução rápida X execução não muito rápida
Introdução a Java
6
16/11/15

Compilação e Execução
v Compilação: Programa Java é compilado para um código
intermediário conhecido como bytecode

v Execução: Bytecodes executam em qualquer máquina que


possua uma JVM (Java Virtual Machine) à Independência de
plataforma!

bytecode
fonte Browser
{HTML}
Interpretador Interpretador
Compilador JAVA JAVA
JAVA
plataforma plataforma
Introdução a Java
local remota 7

Compilação x Interpretação
l Problema:
l Para ter flexibilidade e segurança, abre-se mão do tempo de
execução
l Um programa Java típico costumava ser 10 vezes mais lento que
um programa em C (na década de 90)

l Solução: Compiladores JIT (Just-in-time)


l Convertem bytecodes Java (.class) para linguagem de máquina
nativa otimizada à medida que os mesmos são lidos
l Penalidade: a primeira leitura dos programas é mais lenta
l Porém, execuções subsequentes são mais rápidas
l Atualmente, invocações de métodos Java almejam ser tão
rápidas quanto chamadas de funções virtuais puras em C++
(binding dinâmico)
Introdução a Java
8
16/11/15

Ambientes de execução e
desenvolvimento
l JSE (Java Platform; Standard Edition) - JDK
l Coleção de ferramentas para desenvolvimento, depuração
e execução de aplicações Java (JRE)
l Destinado a desenvolvedores

l Java Runtime Environment (JRE)


l Ambiente para execução de aplicações Java
l Voltado a usuários finais
l Faz parte do JDK e das principais distribuições Linux,
MacOS X, Windows 98/ME/2000/XP/7/8...

l Download: http://java.com
Introdução a Java
9

Plataformas Java
l Java possui diversas plataformas para desenvolvimento e execução
de aplicações (www.java.com), logo é importante conhecê-las e
entender qual delas deve ser utilizada em cada caso

l As principais APIs Java são distribuídas pela Oracle juntamente


com os kits para desenvolvimento de aplicações:
l Java Standard Edition (JSE): ferramentas e APIs para desenvol-
vimento de aplicações Java para PCs e servidores
l Java Enterprise Edition (JEE): ferramentas e APIs para aplicações
corporativas e de Internet (distribuídas, Web Services...)
l Java Micro Edition (Java ME): ferramentas e APIs para aplicações em
dispositivos móveis e embarcados
v Android SDK: API de propósito específico, para desenvolvimento de
aplicativos para dispositivos com sistema operacional Android (API do
Google, não da Oracle!)

Introdução a Java
10
16/11/15

Ambientes Integrados de
Desenvolvimento – IDEs
l Existem diversos IDEs construídos a partir das
ferramentas básicas de desenvolvimento:
l ambientes baseados em janelas
l editores, visualizadores de classes, prototipação ...

l Exemplos:
l Eclipse, NetBeans (Oracle)
l Visual Studio (Microsoft), BlueJ, GreenFoot, Alice
l JBuilder (Borland), Visual Café (Symantec)...

Introdução a Java
11

Programa Java = Classe


• Uma classe contém código-fonte em Java (texto simples)

CLASSE Nome1

CLASSE
Teste class
Nome1

class
Teste.java Nome2

Um arquivo .java pode conter várias


classes, porém deve ter o mesmo
nome de uma de suas classes. Nome1.java
12
16/11/15

Arquivos fonte e executáveis

Arquivo fonte : Escola.java Arquivos executáveis: class

Escola.class

public class Escola {{ bytecodes

Aluno.class
class Aluno { bytecodes

Introdução a Java
13

Convenção para Nomes


l Java, como C/C++, distingue entre letras maiúsculas e
minúsculas
l Exemplo: escola é diferente de Escola
l Nomes de classes iniciam com maiúscula
l Exemplo: class Bemvindo
l Nomes de variáveis iniciam com minúsculas
l Exemplo: int peso;
l Nomes de métodos são verbos que iniciam com minúscula e
depois usam maiúsculas
l Exemplo: alteraPeso
l Representação: Unicode (16 bits - 65.536 caracteres)

Introdução a Java
14
16/11/15

Compilação e Execução:
JDK – linha de comando
l Compilação: javac l Execução: java
l A partir do diretório local: l A partir do diretório local:
javac Nome.java java Nome
onde: Nome = arquivo .class que
contém main()
l Vai produzir:
l arquivos .class separados para l Executa a partir de main()
cada classe no arquivo .java l ou com argumentos:
l coloca arquivos no diretório
java Nome arg1,arg2, ...
corrente

Introdução a Java
15

Execução de programas Java


HelloWorld.java

javac

Introdução a Java
16
16/11/15

Verificação de bytecode
l Etapa que antecede a execução do código em
classes carregadas através da rede
l Class Loader distingue classes locais (seguras) de classes
remotas (potencialmente inseguras)

l Verificação garante:
l Aderência à especificação da JVM
l Não-violação de políticas de acesso estabelecidas pela
aplicação
l Não-violação da integridade do sistema
l Ausência de estouros de pilha
l Tipos de parâmetros corretamente especificados
l Ausência de conversões ilegais de tipos
Introdução a Java
17

Programa é criado em um
Editor editor e armazenado no
disco
disco
Processo de Autoria de

Compilador gera os
Compilador bytecodes e os armazena no
disco
disco

_________ O carregador de classes –


Carregador de _________
Aplicativos Java

Class Loader – coloca os


classes _________ bytecodes na memória
___

memória
disco

O verificador de bytecodes –
_________ Bytecodes Verifier – confirma
Verificador de _________ se todos os bytecodes estão
bytecodes _________ corretos e não violam as
___ restrições de segurança da
linguagem Java

memória

_________
Interpretador _________ O interpretador (ou compilador
_________ JIT) lê os bytecodes e executa
___ o programa

Introdução a Java memória


18
16/11/15

Programas JAVA
l Aplicações (puras)
l são programas carregados e executados localmente
pelo interpretador Java
l possuem acesso a todos os recursos do ambiente
local: diretórios, arquivos
l sempre contêm um método principal main(), de onde
se inicia a execução do programa
l podem fazer chamadas a programas em código
nativo (outras linguagens, como C, C++)

Introdução a Java
19

Programas Cliente/Servidor
l Applets: cliente
l são programas inseridos em páginas HTML e executados pelo
browser (interpretador Java)
l programas (classes) podem ser carregados remotamente
l restrições de segurança: não podem acessar recursos locais, só
podem comunicar-se com o servidor de onde foram “baixados”

l Servlets: servidor
l executados no ambiente do servidor de aplicações (p.ex., TomCat)
l classe Java carregada no servidor, dinamicamente, por requisição
do cliente
l permite páginas web dinâmicas

Introdução a Java
20
16/11/15

Applets Java X JavaScript


l Ambos são códigos executáveis inseridos em páginas
HTML
l Código Java: classes compiladas e carregadas
remotamente
l Código JavaScript: instruções fisicamente dispersas ao
longo da página HTML
l Java é uma LP de uso geral, orientada a objetos:
classes, objetos, encapsulamento, herança e
polimorfismo
l JavaScript: linguagem script não OO, sem suporte à
herança ou polimorfismo

Introdução a Java
21

Primeiros passos
16/11/15

Classe Java: apenas o método


main()
Atenção a maiúsculas
e minúsculas!

class Bemvindo {
public static void main (String[] args) {
System.out.println(“Bem-vindo!”);
}
}

Método main(): onde se inicia a execução


Introdução a Java
23

Exemplo de chamada de
métodos

System.out.println (“Bem-vindo!”);
objeto método parâmetro

System.out.print (“Bem-vindo!”);
objeto método parâmetro

Introdução a Java
24
16/11/15

Chamada parametrizada

class Bemvindo {
public static void main(String[] args) {
System.out.println(“Bem-vindo ” + args[0]);
}
}

Linha de comando: java Bemvindo Pedro

Método main(): aceita argumentos para execução


Introdução a Java
25

Classe Java: usando um


método estático

class Bemvindo2 {
static void imprime() {
System.out.println(“Bem-vindo!”);
Não
recomendável
}

public static void main(String[] args) {


imprime();
}
}

Método static: método de classe, não aplicável sobre objetos


Introdução a Java
26
16/11/15

Classe Java: instanciando um


objeto
class Bemvindo3 {
void imprime() {
System.out.println(“Bem-vindo!”);
} Criação do
objeto

public static void main(String[] args) {


Bemvindo3 obj = new Bemvindo3();
obj.imprime();
}
} Chamada do
método

Método de instância, acessado somente através de um objeto


Introdução a Java
27

Duas classes: composição


class Bemvindo3{
void imprime(){
System.out.println("Bem-vindo!");
}
public static void main(String[] args){
Bemvindo3 obj=new Bemvindo3();
Welcome outro=new Welcome();
obj.imprime();
outro.imprime();
}} class Bemvindo3{ class Welcome{
imprime() imprime()
main(...) } }

class Welcome{
void imprime(){
System.out.println("Welcome!");
Introdução a Java
}} 28
16/11/15

Streams de entrada/saída
l Em um programa, dados são lidos/gravados através de
streams (fluxos) de E/S
l Fontes e destinos: console, arquivos, rede...
l Um programa pode gerenciar diversos streams

Introdução a Java
29

Chamada Parametrizada X
Entrada/Saída via Console
l Chamada parametrizada:
l programa inicia com valores armazenados em um array
de Strings
l não é uma forma usual de entrada de dados

l Ao iniciar a execução de um programa, são criados


automaticamente os seguintes streams:
l System.in - standard input (teclado)
l System.out - standard output (vídeo)
l System.err - standard error (vídeo)
l Podem ser redirecionados para disco, por exemplo
Introdução a Java
30
16/11/15

Entrada via Console


l Classe BufferedReader
l usada para leitura de um stream de caracteres para um
buffer
l definida no pacote java.io

l Método readLine()
l definido em BufferedReader
l faz a leitura de uma linha de texto até um caracter ‘\n’
l causa uma exceção se ocorrer um erro enquanto lê os
dados da entrada

Introdução a Java
31

Entendendo Entrada via


Console
String msg = stdin.readLine();
72 101 108 108 111 13
InputStream
leitura de bytes
72 101 108 108 111 13
InputStreamReader

buffer de caracteres msg


H e l l o \n Hello
BufferedReader String

Introdução a Java
32
16/11/15

Entendendo Saída via Console

System.out.println(“Linha informada = ”+ msg);


L i n h a i n f o r m a d a = H e l l o
PrintStream

vídeo

Introdução a Java
33

Entrada via Console: String


import java.io.*;

class Leitura {
public static void main(String[] args) throws
IOException{

BufferedReader stdin = new BufferedReader(


new InputStreamReader(System.in));

System.out.println(“Entre uma linha:”);


String msg = stdin.readLine();
System.out.println(“Linha informada = ”+ msg);
}
} Introdução a Java
34
16/11/15

Entrada via Console: int


import java.io.*;

class Leitura {
public static void main(String[] args) throws
IOException{

BufferedReader stdin = new BufferedReader(


new InputStreamReader(System.in));

System.out.println(“Entre um número:”);
int i = Integer.parseInt(stdin.readLine());
System.out.println(“Número = ”+ i);
}
} Introdução a Java
35

Usando Scanner() e printf()


import java.io.*;
import java.util.Scanner;

public class LeScanner {


public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Digite seu nome: ");
String nome = input.next();
System.out.print("Digite sua idade: ");
int idade = input.nextInt();

System.out.printf("%s tem %d anos\n", nome, idade);


}}
Introdução a Java
36
16/11/15

Usando Caixas de Diálogo


public class Addition
{
public static void main( String args[] )
{
// obtain user input from JOptionPane input dialogs
String firstNumber =
JOptionPane.showInputDialog( "Enter first integer" );
String secondNumber =
JOptionPane.showInputDialog( "Enter second integer" );

// convert String inputs to int values for use in a calculation


int number1 = Integer.parseInt( firstNumber );
int number2 = Integer.parseInt( secondNumber );

int sum = number1 + number2; // add numbers

// display result in a JOptionPane message dialog


JOptionPane.showMessageDialog( null, "The sum is " + sum,
"Sum of Two Integers", JOptionPane.INFORMATION_MESSAGE );
} // end method main
} // end class Addition

Introdução a Java
37

Tutoriais de Java
l Para quem está começando e além:
l The Java Tutorials (Sun/Oracle oficial)
Ø https://docs.oracle.com/javase/tutorial/

l Learn Java Programming (Tutorials Point)


Ø http://www.tutorialspoint.com/java/

l Eclipse and Java (Vídeo-aulas)


Ø http://eclipsetutorial.sourceforge.net/totalbeginner.html

Introdução a Java 38

Você também pode gostar