Post on 16-Apr-2017
Java Bsico
Desenvolvimento Java
Serge Rehemserge.rehem@gmail.comJavaBahia JUG Leaderjavabahia.org
Esta obra est licenciada sob uma Licena Creative Commons
http://creativecommons.org/licenses/by-nc-sa/2.0/br/
Como tudo comeou...
3 - 13p / 18m
dez 90
a prxima onda do mundo digital?
computadores + eletrodomsticos
Sunmicrosystems
Sun. Dezembro, 1990 - Green ProjectPatrick Naughton, Mike Sheridan e James Gosling
A prxima onda do mundo digital
IdiaConvergncia dos computadores com os equipamentos e eletrodomsticos comumente usados pelas pessoas no seu dia-a-dia
13 pessoas durante 18 meses
*7
demoset 92
Oak Java
StarSeven (*7) - set/1992Demonstrao funcional da idia
Controle remoto com GUI touchscreen para diversos dispositivos e aplicaes
Duke: guia virtual
Oak (Carvalho) nova LP para o *7
1.0a2mar 95
10.000 downloads
Netscape Java
* StarSeven (*7) - set/1992Mercado: Controlar TV e vdeo por demanda
Necessidade de uma grande rede de cabos
Idia certa na poca errada!
BOOM da InternetInfra-estrutura de rede
Java - Oak adaptado para a Internet (Gosling)Maro, 1995 - verso 1.0a2 (alpha) na Internet
10.000 downloads, ateno de toda a mdia
Netscape anuncia browsers com Java embutido
The Green Team
James Gosling
= Linguagem Programao+Plataforma
JavaScript
Java uma linguagem de programao
Java uma plataforma
Java NO JavaScript
O_o SmallTalk / Simula67
C/C++familiar
Linguagem JavaPortabilidade Segurana
Rede/distribuio
API++++
Carga dinmica
Garbage Collector
Principais Caractersticas Orientao a objeto - Baseado no modelo de Smalltalk e Simula67
Portabilidade - Independncia de plataforma
Recursos de Rede - Extensa biblioteca de rotinas que facilitam a cooperao com protocolos TCP/IP, como HTTP e FTP
Segurana Execuo de programas via rede com restries de execuo
Interpretao Nx
Compilao - 1x
Linguagem Java
Java Virtual Machine (JVM)
Application Programming Interface (API)
Plataforma Java
Programa
JVM
SO
HW
Write Once Run Anywhere
Prog.java
Prog.classbytecode
You can think of Java bytecodes as the machine code instructions for the Java Virtual Machine (Java VM). Every Java interpreter, whether it's a development tool or a Web browser that can run applets, is an implementation of the Java VM. Java bytecodes help make "write once, run anywhere" possibleProgramas Java no so traduzidos para a linguagem de mquina como outras linguagens estaticamente compiladas e sim para uma representao intermediria, chamada de bytecodes.Os bytecodes so interpretados pela mquina virtual Java (JVM - Java Virtual Machine). Muitas pessoas acreditam que por causa desse processo, o cdigo interpretado Java tem baixo desempenho. Durante muito tempo esta foi uma afirmao verdadeira. Porm novos avanos tem tornado o compilador dinmico (a JVM), em muitos casos, mais eficiente que o compilador esttico.Java hoje j possuiu uma performace prxima do C++. Isto possvel graas a otimizaes como a compilao especulativa, que aproveita o tempo ocioso do processador para pr-compilar bytecode para cdigo nativo. Outros mecanismos ainda mais elaborados como o HotSpot da Sun, que guarda informaes disponveis somente em tempo de execuo (ex.: nmero de usurios, processamento usado, memria disponvel), para otimzar o funcionamento da JVM, possibilitando que a JVM v "aprendendo" e melhorando seu desempenho. Isto uma realidade to presente que hoje fcil encontrar programas corporativos e de misso crtica usando tecnologia Java. No Brasil, por exemplo, a maioria dos Bancos utiliza a tecnologia Java para construir seus home banks, que so acessados por milhares de usurios diariamente. Grandes sites como o eBay utilizam Java para garantir alta performace. E a cada ano Java tem se tornado mais rpido, na medida que se evolui o compilador dinmico.Os bytecodes produzidos pelos compiladores Java podem ser usados num processo de engenharia reversa para a recuperao do programa-fonte original. Esta uma caracterstica que atinge em menor grau todas as linguagens compiladas. No entanto j existem hoje tecnologias que "embaralham" e at mesmo criptografam os bytecodes praticamente impedindo a engenharia reversa.
JDKJava Development Kit
javac HelloWorld.java
JREJava Runtime Environment
java HelloWorld
Hello World Festival
App
App
App
Applet
Applet
Applet
Applet
App/Swing
App/Swing
App/Swing
Servlet
Servlet
JSP
JSP
MIDLethttp://www.roseindia.net/j2me/hello-world.shtml
IDE
X
Java/Web...
GlassFish
AppServer
Tomcat
JDBC
JDO
JPA
Persistncia
JSF
Java WebFramework
Hudson
Testes / Build /Integrao Contnua
Segurana
Relatrios
Agendamento
Validao
+ComponentesLogging
Utilitrios
Workflow
?
?
?
Demoiselle Frameworkwww.frameworkdemoiselle.gov.br
Java Editions
Java
jcp.org
Quero aprender +
Java User Groups
Grupos de Usurios
javabahia.org
Java Education and Development Initiative
http://www.dfjug.org/DFJUG/jedi
JEDI
Iniciativa JEDI
Por que Java?
https://meapplicationdevelopers.dev.java.net/fragmentation.html
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Java no roda s Java...
groovy.codehaus.org
www.jython.org
jruby.codehaus.org
sun.com/javafx
www.beanshell.org
Rhino: JavaScript for Java
www.mozilla.org/rhino
javafx.com
JavaFX
JavaFX Mobile
Learn Once
Reuse Anywhere
Serge Rehemserge.rehem@gmail.comtwitter.com/serge_rehemslideshare.net/serge_rehem
Obrigado!