1 António Gonçalves Programação Na Web Visão geral sobre Java Introdução ao Java 2 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm Agenda • Vantagens em usar o Java • Versões do Java • Instalar e executar programas em Java • Aplicações básicas (Ola Java !) • Argumentos da linha de comando • Aplicações básica tipo Applet (Ola Java !)
17
Embed
4 Java Plataformas - IPSltodi.est.ips.pt/leonardo/ci/pdf/4 Java Plataformas.pdf · 7 13 Introdução ao Java Java é Simples • Java possui gestor de memória – Não existe ponteiros
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
1 António Gonçalves
ProgramaçãoNa Web
Visão geral sobre Java
Introdução ao Java2 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Agenda• Vantagens em usar o Java• Versões do Java • Instalar e executar programas em Java • Aplicações básicas (Ola Java !)• Argumentos da linha de comando • Aplicações básica tipo Applet (Ola Java !)
2
Introdução ao Java3 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Dispositivo Rube Goldberg
Introdução ao Java4 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Plataforma Java 2
• J2SE – Java 2 Standard Edition– Java para desktop / workstation– http://java.sun.com/j2se
• J2ME – Java 2 Micro Edition– Java para PalTop e Telemóveis– http://java.sun.com/j2me
• API - Conjunto de bibliotecas de classes que suportam: – Interfaces gráficas (AWT, Swing)– Imagem e Som (wav, jpeg, gif, zip, jar) – Redes de comunicação (Socket, URL, RMI)– Etc. (Stream, Beans, JDBC, ...)
Introdução ao Java10 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Entidades principais das OOPL• Interface Conduzível { virar, acelerar, tarvar }
– Define as acções (métodos) que devem ser implementadas para um determinado objectivo.
• Classe Automóvel { motor, Conduzivel, atestar }– Define as características (atributos) e as acções (métodos) de um
tipo de objectos.– Implementa os métodos.– Pode Implementar uma ou mais Interfaces.
• Objecto o meu carro { motor = 1300 }– É uma instância de uma Classe concreta.– Podem existir um ou mais objectos da mesma classe.– Cada objecto mantém os valores dos seus atributos.
6
Introdução ao Java11 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Herança nas OOPL
• Uma classe, para além de poder implementar interfaces, pode herdar atributos e métodos de outras classes.Fiat127 é também um AutomóvelAutomóvel é a super-classe ou a classe base de Fiat127Fiat127 é sub-classe ou classe derivada de Automóvel
• Uma classe derivada pode:– Acrescentar atributos e/ou métodos– Re-implementar métodos herdados
• Uma classe é abstracta senão implementar todosos métodos definidos. meu carro
<<Interface>>Conduzível
viraracelerartravar
Automóvelmotorvirar
acelerartravaratestar
Fiat127
motor = 1300
Introdução ao Java12 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Java é Multi-Plataforma• Compila para código máquina independente
dos sistemas operativos (bytecode)
• Windows, MacOS, OS/2, Solaris, …• Java possui uma biblioteca gráfica propria• Java avoids hard-to-port constructs
JavaCódigo Fonte
Java Bytecode
Compilador(javac)
Java Bytecode
Execution
JIT Compiladoror Interpretador
7
Introdução ao Java13 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Java é Simples• Java possui gestor de memória
– Não existe ponteiros soltos – Não é criado “lixo”
• Java simplifique a gestão de ponteiros – Não existe operações de referencia ou deferencia
• Não existe “makefiles” e ficheiros de include
• sintaxe identica ao C++
Introdução ao Java14 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Caracteristicas da Linguagem JAVA
• Reúne as características das linguagens Object Oriented
• C++ ( Sintaxe compacta e já muito divulgada)– Sintaxe das instruções, expressões
• classes, visibilidade, construtores, declaração de métodos, etc.
• Smalltalk– Modelo de objectos (herança simples) (Eficiência)– Acesso aos objectos apenas por referência (Segurança)– Código intermédio (Portabilidade)– Alojamento dinâmico com garbage collection (Simplicidade)
8
Introdução ao Java15 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Bibliotecas Standard• Threads (processos leves)• ADTs – “Java Foundation Classes”• Processamento de strings/streams
– JDK 1.4 suporto Expressões Regulares • Inteiros com precisão arbritária e aritmética
de ponto fixo • Serialização (armazenamento de objecto no
disco ou envio através de socket)• Invocar objectos remotos – RMI• Interface com DBA – JDBC• ETC …
Introdução ao Java16 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
java.applet Appletsjava.awt Graphics, window, GUIjava.awt.datatransfer Data transfer (copy,paste)java.awt.event Eventsjava.awt.image Image (jpg, gif)java.awt.peer GUI for platform independencejava.beans JavaBeansjava.io input outputjava.lang Core languagejava.lang.reflect Reflectionjava.math Arithmeticjava.net Networkingjava.rmi +3 Remote Method Invocationjava.security +2 Securityjava.sql JDBC Sql for Databasesjava.text Internationalizationjava.util Data typesjava.util.zip Compression
Packages
• No JAVA existem 23 packages com classes e interfaces
9
Introdução ao Java17 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Versões do Java • Java 1.0 disponibilizado em 1995
• Java 1.1 disponibilizado em 1997
• Java Standard Edition (JDK 1.2) disponibilizado em 1998
• JDK 1.3 disponibilizado em 2000
•
Introdução ao Java18 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Como começar1. Instalar Java
– JDK 1.4• http://java.sun.com/j2se/1.4/
– JDK 1.3• http://java.sun.com/j2se/1.3/
2. Instalar um Browser que suporta Java– Netscape Navigator
• http://home.netscape.com/download/– Microsoft Internet Explorer
• http://www.microsoft.com/ie/download/– Sun HotJava
• http://java.sun.com/products/hotjava/
10
Introdução ao Java19 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Como começar, cont.3. Marcar ou instalar a API do Java
– Java 2 SDK, Version 1.4 (JDK 1.4)• API Specification, http://java.sun.com/j2se/1.4/docs/api/• API Download, http://java.sun.com/j2se/1.4/docs.html
– Java 2 SDK, Version 1.3 (JDK 1.3)• API Specification,
http://java.sun.com/products/jdk/1.3/docs/api/• API Download,
4. Criar e executar um programa em Java– Criar o ficheiro– Compilar– Executar
Introdução ao Java20 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Como começar : Detalhes1. Criar o Ficheiro
– Escrever e guardar o ficheiro (exp Test.java) que define a classe Test
– O Nome da classe e do ficherio devem ser o mesmo (Atenção com maisculas e minusculas !)
2. Compilar o programa– Compilar Test.java pelo comando
javac Test.java
– Este passo cria o ficheiro Test.class
11
Introdução ao Java21 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Como começar : Detalhes, cont.3. Executar o programa
– Para executar um programa : java Test
– Nota O comando é java, e não javac, e deve ser feita referencia a Test, e não Test.class
– Para executar uma applet deve ser usado um browser e ser feito o carregamento da página na qual é referenciada
Introdução ao Java22 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Aplicação básica Hello World • “Aplicação” em Java significa uma
programa “ stand-alone” – Nota o nome da classe e o nome do ficheiro são idênticos – Cada ficheiro pode conter várias classes mas só uma pode
ser declarada publica e o nome desta deve ser idêntico ao nome do ficheiro
• Ficheiro HelloWorld.java:
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, world.");
}}
12
Introdução ao Java23 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Aplicação básica Hello World, cont.
• Compiar:– javac HelloWorld.java
• Executar:– java HelloWorld
• Saída:– Hello, world.
Introdução ao Java24 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Compilador de JAVA• Um programa em JAVA é compilado para código
intermédio.– O compilador tem como entrada um ficheiro de texto
• normalmente com extensão .java• em UNICODE ou ASCII.
– Por cada classe ou interface compilada é gerado um ficheiro com o código intermédio (byte-codes).
• normalmente com extensão .class• que podem ser transportados para qualquer plataforma onde exista
uma máquina virtual para os executar
public class Hello {public static void main(String[ ] args) {System.out.println(“Hello World!”);
}}
... getstatic #7ldc #1invokevirtual #8return...
javac
Hello.java Hello.class
13
Introdução ao Java25 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Máquina virtual JAVA
• A VM interpreta os byte-codes do código intermédio – A máquina virtual é uma máquina de stack.– A VM tem uma implementação para cada plataforma (arquitectura/SO).
• O ambiente de execução dos byte-codes é seguro (sandbox model).– Os byte-codes são verificados (tipos, visibilidade, overflow, underflow, ...)– A classe é carregada para a memória– Os acessos aos recursos do sistema (ficheiros, portos da rede, etc.) passam pela
verificação de um controlador de acessos.• A eficiencia é melhorada com o “Just In Time” compiler.
... getstatic #7ldc #1invokevirtual #8return
...
Hello.classHello world!
java.exe
RecursosRecursosdodo
SistemaSistemaAPIAPI
Verifier ClassLoader
Classes
SecurityManager
Introdução ao Java26 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Argumentos da Linha de Comando
• Diferenças do C– Em Java uma String é um tipo– Em Java as tabelas sabem qual é o número de elementos
guardados (length)– O nome do ficheiro não faz parte dos argumentos da linha
de comando
• ShowArgs.java:public class ShowArgs {
public static void main(String[] args) {for(int i=0; i<args.length; i++) {System.out.println("Arg " + i + " = " + args[i]);
}}
}
14
Introdução ao Java27 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm
Argumentos da Linha de Comando, Resultados
• Compilar e Executar:> javac ShowArgs.java> java ShowArgs fee fie foe fum
Arg 0 = feeArg 1 = fieArg 2 = foeArg 3 = fum
Introdução ao Java28 http://ltodi.est.ips.pt/leonardo/ci/MaterialApoio.htm