SlideShare uma empresa Scribd logo
Unidade 1 Java – Visão Geral Regis Pires Magalhães [email_address]
Roteiro Histórico Mitos Principais características Componentes da plataforma Java
Histórico 1991 – O projeto Green Projeto conduzido por: Mike Sheridan (negócio), Patrick Naughton (sistema gráfico) and James Gosling (linguagem de programação). O objetivo do projeto descobrir a “nova onda” da computação. Eles chegaram a conclusão de que uma das ondas seria a convergência entre dispositivos eletrônicos “inteligentes” e computadores. O projeto vislumbrou a criação de um ambiente de execução flexível Capaz de rodar nos mais diversos tipos de dispositivos Primariamente em pequenos dispositivos (móveis ou não) A implementação inicial do runtime era em C++ James Gosling viu que C++ não era adequada para o projeto e suas extensões e modificações ao C++ foram os primeiros passos para o desenvolvimento de uma linguagem independente apropriada ao projeto. A linguagem foi inicialmente chamada Oak, mas o nome foi mudado devido à existência de uma patente já registrada para outra linguagem de programação. Para dispositivos com pouca memória era necessária uma linguagem pequena com código bastante otimizado para poupar espaço. Como os fabricantes de dispositivos poderiam usar diferentes CPUs era importante não ficar preso a nenhuma arquitetura em particular.
Histórico 1991 – O projeto Green Os requisitos de código pequeno e independente de plataforma fez a equipe ressuscitar o modelo de algumas implementações do Pascal dos primeiros dias do PC, baseadas em um código intermediário para uma máquina virtual. A inspiração do nome Java surgiu em uma cafeteria local, cujo conteúdo do café vinha de uma ilha da Indonésia chamada Java. O projeto Green ainda criou o personagem Duke, que seria o ajudante usado na interface gráfica. O projeto estava à beira do cancelamento. Não conseguiu vender nada em 93 e até metade de 94. O mercado de dispositivos “inteligentes” não estava se desenvolvendo como a Sun previa. O rápido crescimento da Internet por volta de 1994 deu um novo impulso ao projeto. A Sun voltou seus esforços para acelerar a conclusão da sua linguagem. O objetivo era aproveitar a flexibilidade da linguagem para prover maior dinamismo na Web. Não havia nenhum concorrente no horizonte na nova era digital que se abria com a Web.
Histórico 1994 – Browser Na metade de 94 a equipe percebeu que um browser independente de arquitetura, confiável e seguro seria importante e, então, construiu um browser. O browser HotJava foi feito para mostrar o poder do Java, mas os idealizadores também tinham em mente o poder do que chamamos applets. Assim, fizeram um browser capaz de executar código Java em páginas web. 1995 – Lançamento da tecnologia Java Em 23 de maio de 95 o browser com suporte a applets foi apresentado na SunWorld. Jan/1996 – Netscape decide dar suporte a Java ao seu browser Navigator 1996 – Disponibilização da primeira release Java Development Kit (JDK) 1.0 1997 – JDK 1.1
Histórico 1998 – Java Community Process (JCP) Especificação da tecnologia Java passa a ser conduzida através de processo aberto formado pela Sun e usuários Java 1999 Fevereiro Java 1.2, renomeado para Java 2. Junho Ramificação da plataforma: J2SE, J2ME e J2EE Dezembro Primeira release J2EE Primeira release J2SE para Linux 2000 – J2SE 1.3 2002 – J2SE 1.4 2004 – J2SE 1.5 – Java 5
Mitos Java é lento A distância entre Java e C/C++ está diminuindo graças a melhores máquinas virtuais e compiladores JIT que convertem bytecode para código nativo em tempo de execução. Java só serve para rodar em geladeira Java só serve para programação WEB Java só roda em browser Applets são programas Java executados em browsers. No entanto, Java permite aplicações empresariais robustas WEB (com ou sem o uso de applets) e desktop, bem como jogos e outras aplicações. Java e JavaScript são a mesma coisa São linguagens bem diferentes. JavaScript é uma linguagem de script que pode ser usada em páginas Web e tem uma sintaxe baseada na sintaxe de Java. Um applet pode ler o disco rígido e apagar arquivos Um applet comum não pode acessar o HD. Um applet com assinatura digital pode permitir tal acesso para usuários com esse privilégio.
Principais Características Orientada a Objetos Implementa os conceitos definidos no paradigma de Programação Orientada a Objetos (POO); Foco nos dados (objetos) e métodos utilizados para manipulá-los; Sintaxe e semântica herdadas de C e C++. Simples A linguagem possui apenas os mecanismos necessários para implementar seu conjunto de funcionalidades; A forma com que o código é escrito é muito clara e de fácil aprendizado; Omite características raramente usadas e/ou que causam confusão do C++  (arquivos header, aritmética de ponteiros, sobrecarga de operadores, etc.). Dinâmica Permite a carga de classes em tempo de execução; Permite a criação dinâmica de objetos.
Principais Características Robusta A tipagem de dados é forte, fazendo com que os tipos devam ser declarados no código fonte e checados em tempo de compilação; Também faz checagem dinâmica em tempo de execução. Não possui ponteiros, evitando a corrupção de dados em memória; Possui um mecanismo que libera automaticamente a memória que não é mais utilizada; Tem mecanismo para tratamento de exceções, evitando, por exemplo, términos abruptos da aplicação. Independente de arquitetura Qualquer que seja a plataforma em que o compilador Java é executado, o formato do código de bytes gerado é independente de arquitetura de hardware e software. O conjunto de instruções da máquina virtual Java funciona para a maioria das arquiteturas de computadores.
Principais Características Portável Tanto a sintaxe quanto a semântica da linguagem são muito bem definidas. Não existem comportamentos específicos da implementação do compilador ou do interpretador. Todas implementações devem seguir exatamente as regras da linguagem. Ter tamanhos fixos para os tipos evita muita dor de cabeça em termos de portabilidade.  Tipos inteiros byte, short, int, long => 8, 16, 32, 64 bits respectivamente Tipos de ponto flutuante float e double => 32 e 64 bits Seguem o padrão IEEE 754 Tipo caractere char é de 16 bits Unicode Strings usam um formato Unicode padrão.
Principais Características Multi-threaded Threads são uma parte integrante da linguagem Java; Permite a execução concorrente de código; Essencial para processamento em segundo plano; Implementação muitíssimo mais simples que em outras linguagens; Torna Java muito atrativa para desenvolvimento no lado servidor. Segura Java foi projetada tendo em mente a transmissão de código através de uma rede; O sistema de execução (runtime) faz as checagens necessárias para garantir a integridade do sistema; Pontos clássicos de vulnerabilidade explorados por vírus e cavalos de tróia não podem ser atingidos.
Principais Características Rápida O código de bytes Java pode ser traduzido em tempo de execução em código de máquina nativo. O compilador just-in-time pode monitorar código freqüentemente usado e otimizá-lo para ficar extremamente veloz.  Apesar de ser uma linguagem interpretada, Java possui um desempenho muito melhor do que outras linguagens interpretadas e de alto nível, como TCL e Perl. Existem compiladores de runtime que compilam o código de bytes Java, gerando um código nativo da plataforma em que a aplicação é executada. Com o uso de compiladores JIT, a performance é muito superior a um código exclusivamente interpretado. Com coleta de lixo automática A coleta de lixo permite que a memória alocada para objetos seja recuperada. Java faz isso automaticamente, aumentando a produtividade e reduzindo o número de  bugs .
Principais Características Distribuída A linguagem possui um vasto conjunto de classes para o gerenciamento de comunicação de rede de baixo nível; Permite o acesso a objetos remotos através da rede como se fossem objetos locais. Rica A linguagem possui um vasto conjunto de APIs padronizadas para as mais diversas funções. Acesso a bancos de dados; Interface gráfica; Acesso ao sistema de arquivos; Compressão, E-mail, ...
Plataformas Java Plataforma Ambiente de hardware e/ou software no qual um programa é executado A plataforma Java é somente de software Esta plataforma de execução funciona sobre outras plataformas de hardware e software Plataformas Java JME – Java Platform, Micro Edition Plataforma de desenvolvimento para dispositivos com suporte à Java como Palms, celulares, pagers, etc. JSE – Java Platform, Standard Edition Contém serviços padrão para aplicações e applets. JEE – Java Platform, Enterprise Edition Plataforma de desenvolvimento completa para aplicações empresariais robustas e escaláveis.
Plataformas Java *  Connected Limited Device Configuration ** Mobile Information Device * **
Componentes da plataforma Java Java Virtual Machine (Java VM ou JVM) Provê suporte para independência de plataforma Máquina virtual que interpreta código Java compilado Java é uma linguagem compilada e interpretada!!! Java Application Programming Interface (Java API) Provê suporte para programação de aplicações em geral Vasta gama de componentes de software prontos para uso para as mais diversas funcionalidades
Plataforma J2SE JRE – Java Runtime Environment SDK – Software Development Kit
Resumo Plataforma Java Principais Características Orientada a Objeto Simples Dinâmica Robusta Independente de Plataforma Portável Multi-threaded Segura Rápida Distribuída Rica Arquitetura JVM + Java API
Referências e Recursos Web The Source for Java Technology (Sun) http://java.sun.com http://java.sun.com/j2se http://java.sun.com/j2ee http://java.sun.com/j2me http://java.sun.com/features Tutorials & Short Courses by Sun http://developer.java.sun.com/developer/onlineTraining Documentation, Tutorials & Courses http://java.web.cern.ch/java/tutorials.html Jguru: Your view of the Java universe http://www.jguru.com argonavis.com.br http://www.argonavis.com.br Java Myths http://cdsmith.twu.net/professional/java/myths.html http://www.javacoffeebreak.com/articles/inside_java/insidejava-may00.html
Referências e Recursos Livros Core Java 2 – Volume I – Cay S. Horstmann e Gary Cornell. Thinking in Java (3rd Edition) http://www.bruceeckel.com Java in a Nutshell (4th Edition) – David Flanagan Java – Como Programar (4ª Edição) – Deitel & Deitel

Mais conteúdo relacionado

PDF
Java: Muito mais que uma linguagem!
DOCX
Introdução a linguagem java
ODP
Java 01 Java Visao Geral Resumo
PDF
Programação em java linguagem, ap is, boas práticas e eclipse
PDF
Java basico modulo_01
PDF
Introdução a Plataforma Java EE
PDF
Conhecendo Java
PDF
Apostila java completo
Java: Muito mais que uma linguagem!
Introdução a linguagem java
Java 01 Java Visao Geral Resumo
Programação em java linguagem, ap is, boas práticas e eclipse
Java basico modulo_01
Introdução a Plataforma Java EE
Conhecendo Java
Apostila java completo

Mais procurados (15)

PDF
Programação Desktop: Uma abordagem com Java
PPT
Apostila de Fundamentos Java
ODP
Java e Software Livre
PDF
Aula 02 Primeiro Cod Java
PPTX
Aula 01 O que é java
PDF
Introdução aos computadores e à World Wide Web
PDF
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
PPT
Conhecendo Java
PPT
27072010221224.introdução a java aula 1
PPTX
Programação Orientada a Objetos com Java
PDF
Java Fundamentos
PDF
PPT
PDF
Tutorial Java EE
PPT
Java, historico e futuro
Programação Desktop: Uma abordagem com Java
Apostila de Fundamentos Java
Java e Software Livre
Aula 02 Primeiro Cod Java
Aula 01 O que é java
Introdução aos computadores e à World Wide Web
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
Conhecendo Java
27072010221224.introdução a java aula 1
Programação Orientada a Objetos com Java
Java Fundamentos
Tutorial Java EE
Java, historico e futuro
Anúncio

Destaque (20)

ODP
Prog web 00-modelo-cliente_servidor_web
ODP
Prog web 07-pdo
PDF
Web Scale Data Management
ODP
Java 14 Javadoc
ODP
Prog web 01-php-introducao
ODP
Java 15 Jar
ODP
Prog web 02-php-primeiros-passos
ODP
Pascal Tipos
ODP
Prog web 06-php-oo
PDF
Easy Rails
PDF
Coding Dojo
PDF
Linked Data Tutorial - Conferencia W3C Brasil 2011
PDF
Linked Data - Minicurso - SBBD 2011
PPT
Prog web 03-php-sessoes-cookies_cabecalhos
ODP
Curso Ruby
ODP
Prog web 08-php-mvc
PDF
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
PPTX
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
PPTX
Responsive web design
PDF
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Prog web 00-modelo-cliente_servidor_web
Prog web 07-pdo
Web Scale Data Management
Java 14 Javadoc
Prog web 01-php-introducao
Java 15 Jar
Prog web 02-php-primeiros-passos
Pascal Tipos
Prog web 06-php-oo
Easy Rails
Coding Dojo
Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data - Minicurso - SBBD 2011
Prog web 03-php-sessoes-cookies_cabecalhos
Curso Ruby
Prog web 08-php-mvc
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Responsive web design
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Anúncio

Semelhante a Java 01 Java Visao Geral Detalhado (20)

PPT
Java modulo 01 - Introdução
PDF
Aula 2 - POO: Fundamentos da linguagem Java
PPTX
Java -aula_01
PPTX
Curso de Java 1 - (Introdução Geral).pptx
PDF
Java basico modulo_01
PDF
Java basico modulo_01
PDF
Java basico modulo_01
PPTX
Poo1 aula 1 - java - história e introdução
PPTX
Poo1 aula 1 - java - história e introdução
PPTX
Aula 01 o que é java
PDF
Slides 04 - A Linguagem Java.pdf
PPT
Apostila Java
PPT
Apostila Java
ODP
Tecnologia Java
PDF
Introdução a Linguagem Java
PPT
Capacitacao java aula-01-01-conceitos
PPTX
Curso Android - Dia 1 - Apresentação java
PPTX
Java virtual machine quantas linguas fala a jvm2
PPT
Jugday - Java Básico
PDF
JavaME - Aula 1
Java modulo 01 - Introdução
Aula 2 - POO: Fundamentos da linguagem Java
Java -aula_01
Curso de Java 1 - (Introdução Geral).pptx
Java basico modulo_01
Java basico modulo_01
Java basico modulo_01
Poo1 aula 1 - java - história e introdução
Poo1 aula 1 - java - história e introdução
Aula 01 o que é java
Slides 04 - A Linguagem Java.pdf
Apostila Java
Apostila Java
Tecnologia Java
Introdução a Linguagem Java
Capacitacao java aula-01-01-conceitos
Curso Android - Dia 1 - Apresentação java
Java virtual machine quantas linguas fala a jvm2
Jugday - Java Básico
JavaME - Aula 1

Mais de Regis Magalhães (16)

PDF
High Dimensional Data
PPTX
PHP 10 CodeIgniter
ODP
Prog web 09-php-crud-mvc
ODP
Prog web 05-php-mysql
ODP
Prog web 04-php-gd
ODP
Prog web 03-php-sessoes-cookies_cabecalhos
PPT
Prog web 02-php-primeiros-passos
ODP
Prog web 02-php-primeiros-passos
ODP
Prog web 00-modelo-cliente_servidor_web
ODP
Prog web 01-php-introducao
PDF
Merci 10 Completo
ODP
php 01 introducao
ODP
java 00 Introducao
DOC
POO Plano de Curso
ODP
Php 04 Mysql
ODP
Php 08 Oo
High Dimensional Data
PHP 10 CodeIgniter
Prog web 09-php-crud-mvc
Prog web 05-php-mysql
Prog web 04-php-gd
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
Prog web 00-modelo-cliente_servidor_web
Prog web 01-php-introducao
Merci 10 Completo
php 01 introducao
java 00 Introducao
POO Plano de Curso
Php 04 Mysql
Php 08 Oo

Último (20)

PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Aula sobre desenvolvimento de aplicativos
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
Émile Durkheim slide elaborado muito bom
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Aula sobre desenvolvimento de aplicativos
COBITxITIL-Entenda as diferença em uso governança TI
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Aula 18 - Manipulacao De Arquivos python
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Émile Durkheim slide elaborado muito bom
Apple Pippin Uma breve introdução. - David Glotz
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Processos na gestão de transportes, TM100 Col18
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26

Java 01 Java Visao Geral Detalhado

  • 1. Unidade 1 Java – Visão Geral Regis Pires Magalhães [email_address]
  • 2. Roteiro Histórico Mitos Principais características Componentes da plataforma Java
  • 3. Histórico 1991 – O projeto Green Projeto conduzido por: Mike Sheridan (negócio), Patrick Naughton (sistema gráfico) and James Gosling (linguagem de programação). O objetivo do projeto descobrir a “nova onda” da computação. Eles chegaram a conclusão de que uma das ondas seria a convergência entre dispositivos eletrônicos “inteligentes” e computadores. O projeto vislumbrou a criação de um ambiente de execução flexível Capaz de rodar nos mais diversos tipos de dispositivos Primariamente em pequenos dispositivos (móveis ou não) A implementação inicial do runtime era em C++ James Gosling viu que C++ não era adequada para o projeto e suas extensões e modificações ao C++ foram os primeiros passos para o desenvolvimento de uma linguagem independente apropriada ao projeto. A linguagem foi inicialmente chamada Oak, mas o nome foi mudado devido à existência de uma patente já registrada para outra linguagem de programação. Para dispositivos com pouca memória era necessária uma linguagem pequena com código bastante otimizado para poupar espaço. Como os fabricantes de dispositivos poderiam usar diferentes CPUs era importante não ficar preso a nenhuma arquitetura em particular.
  • 4. Histórico 1991 – O projeto Green Os requisitos de código pequeno e independente de plataforma fez a equipe ressuscitar o modelo de algumas implementações do Pascal dos primeiros dias do PC, baseadas em um código intermediário para uma máquina virtual. A inspiração do nome Java surgiu em uma cafeteria local, cujo conteúdo do café vinha de uma ilha da Indonésia chamada Java. O projeto Green ainda criou o personagem Duke, que seria o ajudante usado na interface gráfica. O projeto estava à beira do cancelamento. Não conseguiu vender nada em 93 e até metade de 94. O mercado de dispositivos “inteligentes” não estava se desenvolvendo como a Sun previa. O rápido crescimento da Internet por volta de 1994 deu um novo impulso ao projeto. A Sun voltou seus esforços para acelerar a conclusão da sua linguagem. O objetivo era aproveitar a flexibilidade da linguagem para prover maior dinamismo na Web. Não havia nenhum concorrente no horizonte na nova era digital que se abria com a Web.
  • 5. Histórico 1994 – Browser Na metade de 94 a equipe percebeu que um browser independente de arquitetura, confiável e seguro seria importante e, então, construiu um browser. O browser HotJava foi feito para mostrar o poder do Java, mas os idealizadores também tinham em mente o poder do que chamamos applets. Assim, fizeram um browser capaz de executar código Java em páginas web. 1995 – Lançamento da tecnologia Java Em 23 de maio de 95 o browser com suporte a applets foi apresentado na SunWorld. Jan/1996 – Netscape decide dar suporte a Java ao seu browser Navigator 1996 – Disponibilização da primeira release Java Development Kit (JDK) 1.0 1997 – JDK 1.1
  • 6. Histórico 1998 – Java Community Process (JCP) Especificação da tecnologia Java passa a ser conduzida através de processo aberto formado pela Sun e usuários Java 1999 Fevereiro Java 1.2, renomeado para Java 2. Junho Ramificação da plataforma: J2SE, J2ME e J2EE Dezembro Primeira release J2EE Primeira release J2SE para Linux 2000 – J2SE 1.3 2002 – J2SE 1.4 2004 – J2SE 1.5 – Java 5
  • 7. Mitos Java é lento A distância entre Java e C/C++ está diminuindo graças a melhores máquinas virtuais e compiladores JIT que convertem bytecode para código nativo em tempo de execução. Java só serve para rodar em geladeira Java só serve para programação WEB Java só roda em browser Applets são programas Java executados em browsers. No entanto, Java permite aplicações empresariais robustas WEB (com ou sem o uso de applets) e desktop, bem como jogos e outras aplicações. Java e JavaScript são a mesma coisa São linguagens bem diferentes. JavaScript é uma linguagem de script que pode ser usada em páginas Web e tem uma sintaxe baseada na sintaxe de Java. Um applet pode ler o disco rígido e apagar arquivos Um applet comum não pode acessar o HD. Um applet com assinatura digital pode permitir tal acesso para usuários com esse privilégio.
  • 8. Principais Características Orientada a Objetos Implementa os conceitos definidos no paradigma de Programação Orientada a Objetos (POO); Foco nos dados (objetos) e métodos utilizados para manipulá-los; Sintaxe e semântica herdadas de C e C++. Simples A linguagem possui apenas os mecanismos necessários para implementar seu conjunto de funcionalidades; A forma com que o código é escrito é muito clara e de fácil aprendizado; Omite características raramente usadas e/ou que causam confusão do C++ (arquivos header, aritmética de ponteiros, sobrecarga de operadores, etc.). Dinâmica Permite a carga de classes em tempo de execução; Permite a criação dinâmica de objetos.
  • 9. Principais Características Robusta A tipagem de dados é forte, fazendo com que os tipos devam ser declarados no código fonte e checados em tempo de compilação; Também faz checagem dinâmica em tempo de execução. Não possui ponteiros, evitando a corrupção de dados em memória; Possui um mecanismo que libera automaticamente a memória que não é mais utilizada; Tem mecanismo para tratamento de exceções, evitando, por exemplo, términos abruptos da aplicação. Independente de arquitetura Qualquer que seja a plataforma em que o compilador Java é executado, o formato do código de bytes gerado é independente de arquitetura de hardware e software. O conjunto de instruções da máquina virtual Java funciona para a maioria das arquiteturas de computadores.
  • 10. Principais Características Portável Tanto a sintaxe quanto a semântica da linguagem são muito bem definidas. Não existem comportamentos específicos da implementação do compilador ou do interpretador. Todas implementações devem seguir exatamente as regras da linguagem. Ter tamanhos fixos para os tipos evita muita dor de cabeça em termos de portabilidade. Tipos inteiros byte, short, int, long => 8, 16, 32, 64 bits respectivamente Tipos de ponto flutuante float e double => 32 e 64 bits Seguem o padrão IEEE 754 Tipo caractere char é de 16 bits Unicode Strings usam um formato Unicode padrão.
  • 11. Principais Características Multi-threaded Threads são uma parte integrante da linguagem Java; Permite a execução concorrente de código; Essencial para processamento em segundo plano; Implementação muitíssimo mais simples que em outras linguagens; Torna Java muito atrativa para desenvolvimento no lado servidor. Segura Java foi projetada tendo em mente a transmissão de código através de uma rede; O sistema de execução (runtime) faz as checagens necessárias para garantir a integridade do sistema; Pontos clássicos de vulnerabilidade explorados por vírus e cavalos de tróia não podem ser atingidos.
  • 12. Principais Características Rápida O código de bytes Java pode ser traduzido em tempo de execução em código de máquina nativo. O compilador just-in-time pode monitorar código freqüentemente usado e otimizá-lo para ficar extremamente veloz. Apesar de ser uma linguagem interpretada, Java possui um desempenho muito melhor do que outras linguagens interpretadas e de alto nível, como TCL e Perl. Existem compiladores de runtime que compilam o código de bytes Java, gerando um código nativo da plataforma em que a aplicação é executada. Com o uso de compiladores JIT, a performance é muito superior a um código exclusivamente interpretado. Com coleta de lixo automática A coleta de lixo permite que a memória alocada para objetos seja recuperada. Java faz isso automaticamente, aumentando a produtividade e reduzindo o número de bugs .
  • 13. Principais Características Distribuída A linguagem possui um vasto conjunto de classes para o gerenciamento de comunicação de rede de baixo nível; Permite o acesso a objetos remotos através da rede como se fossem objetos locais. Rica A linguagem possui um vasto conjunto de APIs padronizadas para as mais diversas funções. Acesso a bancos de dados; Interface gráfica; Acesso ao sistema de arquivos; Compressão, E-mail, ...
  • 14. Plataformas Java Plataforma Ambiente de hardware e/ou software no qual um programa é executado A plataforma Java é somente de software Esta plataforma de execução funciona sobre outras plataformas de hardware e software Plataformas Java JME – Java Platform, Micro Edition Plataforma de desenvolvimento para dispositivos com suporte à Java como Palms, celulares, pagers, etc. JSE – Java Platform, Standard Edition Contém serviços padrão para aplicações e applets. JEE – Java Platform, Enterprise Edition Plataforma de desenvolvimento completa para aplicações empresariais robustas e escaláveis.
  • 15. Plataformas Java * Connected Limited Device Configuration ** Mobile Information Device * **
  • 16. Componentes da plataforma Java Java Virtual Machine (Java VM ou JVM) Provê suporte para independência de plataforma Máquina virtual que interpreta código Java compilado Java é uma linguagem compilada e interpretada!!! Java Application Programming Interface (Java API) Provê suporte para programação de aplicações em geral Vasta gama de componentes de software prontos para uso para as mais diversas funcionalidades
  • 17. Plataforma J2SE JRE – Java Runtime Environment SDK – Software Development Kit
  • 18. Resumo Plataforma Java Principais Características Orientada a Objeto Simples Dinâmica Robusta Independente de Plataforma Portável Multi-threaded Segura Rápida Distribuída Rica Arquitetura JVM + Java API
  • 19. Referências e Recursos Web The Source for Java Technology (Sun) http://java.sun.com http://java.sun.com/j2se http://java.sun.com/j2ee http://java.sun.com/j2me http://java.sun.com/features Tutorials & Short Courses by Sun http://developer.java.sun.com/developer/onlineTraining Documentation, Tutorials & Courses http://java.web.cern.ch/java/tutorials.html Jguru: Your view of the Java universe http://www.jguru.com argonavis.com.br http://www.argonavis.com.br Java Myths http://cdsmith.twu.net/professional/java/myths.html http://www.javacoffeebreak.com/articles/inside_java/insidejava-may00.html
  • 20. Referências e Recursos Livros Core Java 2 – Volume I – Cay S. Horstmann e Gary Cornell. Thinking in Java (3rd Edition) http://www.bruceeckel.com Java in a Nutshell (4th Edition) – David Flanagan Java – Como Programar (4ª Edição) – Deitel & Deitel