Sei sulla pagina 1di 8

08/07/2016

Java (linguagem de programao) Wikipdia, a enciclopdia livre

Java(linguagemdeprogramao)
Origem:Wikipdia,aenciclopdialivre.

Javaumalinguagemdeprogramaointerpretadaorientadaa
objetosdesenvolvidanadcadade90porumaequipede
programadoreschefiadaporJamesGosling,naempresaSun
Microsystems.Diferentedaslinguagensdeprogramao
convencionais,quesocompiladasparacdigonativo,a
linguagemJavacompiladaparaumbytecodequeexecutado
porumamquinavirtual.AlinguagemdeprogramaoJavaa
linguagemconvencionaldaPlataformaJava,masnoasua
nicalinguagem.

Java

ndice
1 Histria
1.1 Padronizao
1.2 AquisiopelaOracle
2 Caractersticas
2.1 Licena
3 Exemplosdecdigo
3.1 Mtodomain
3.2 Classes
3.2.1 Classesinternas
3.3 Interfaces
3.4 Objetosannimos
3.5 Programaofuncional
4 Ferramentas
4.1 Frameworks
4.2 Ambientesdedesenvolvimento
4.3 Extenses
5 Certificaes
6 Comunidade
7 Referncias
8 Vertambm
9 Bibliografia
10 Ligaesexternas

Histria

Duke,omascotedoJava

Paradigma

Orientaoaobjetos(baseada
emclasses),estruturada,
imperativa,genrica,
funcional,reflectiva,
concorrente

Surgidoem

1995

ltima
verso

8.0.77(23demarode2016)

Criadopor

JamesGoslingeSun
Microsystems

Estilode
tipagem:

esttica,forte

Compiladores GCJ,Javac
Influenciada
por

Ada83,C++,C,[1]Eiffel,
GenericJava,Mesa,Modula3,
ObjectPascal,ObjectiveC,
UCSDPascal,Smalltalk

Influenciou

Ada2005,BeanShell,C,[2]
Clojure,D,ECMAScript,
Fantom,Groovy,J#,
JavaScript,PHP,Python,Scala

Licena:
GNUGeneralPublic
Em1991,naSunMicrosystems,foiiniciadooGreenProject,o
License/JavaCommunity
berodoJava,umalinguagemdeprogramaoorientadaa
Process
objetos.OsmentoresdoprojetoeramPatrickNaughton,Mike
Pginaoficial https://www.java.com
Sheridan,eJamesGosling.Elesacreditavamque,eventualmente,
haveriaumaconvergnciadoscomputadorescomos
equipamentoseeletrodomsticosfrequentementeusadospelaspessoasnoseudiaadia.

https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)

1/8

08/07/2016

Java (linguagem de programao) Wikipdia, a enciclopdia livre

Paraprovaraviabilidadedestaideia,13pessoastrabalharamarduamentedurante18meses.Noverode1992
elesemergiramdeumescritriodeSandHillRoad,noMenloPark,comumademonstraofuncionaldaideia
inicial.Oprottiposechamava*7(lseStarSeven),umcontroleremotocomumainterfacegrfica
touchscreen.Parao*7,foicriadoummascote,hojeamplamenteconhecidonomundoJava,oDuke.Otrabalho
doDukeno*7eraserumguiavirtualajudandoeensinandoousurioautilizaroequipamento.O*7tinhaa
habilidadedecontrolardiversosdispositivoseaplicaes.JamesGoslingespecificouumanovalinguagemde
programaoparao*7.GoslingdecidiubatizladeOak,quequerdizercarvalho,umarvorequeelepodia
observarquandoolhavaatravsdasuajanela.
Oprximopassoeraencontrarummercadoparao*7.Aequipeachavaqueumaboaideiaseriacontrolar
televisesevdeopordemandacomoequipamento.Elesconstruramumademonstraochamadade
MovieWood,masinfelizmenteeramuitocedoparaqueovdeopordemandabemcomoasempresasdeTVa
cabopudessemviabilizaronegcio.Aideiaqueo*7tentavavender,hojejrealidadeemprogramas
interativosetambmnatelevisodigital.Permitiraotelespectadorinteragircomaemissoraecoma
programaoemumagranderededecabos,eraalgomuitovisionrioeestavamuitolongedoqueasempresas
deTVacabotinhamcapacidadedeentenderecomprar.Aideiacerta,napocaerrada.
Entretanto,oestourodainternetaconteceuerapidamenteumagranderedeinterativaestavaseestabelecendo.
Eraestetipoderedeinterativaqueaequipedo*7estavatentandovenderparaasempresasdeTVacabo.E,da
noiteparaodia,noeramaisnecessrioconstruirainfraestruturaparaarede,elasimplesmenteestaval.
GoslingfoiincumbidodeadaptaroOakparaainterneteemjaneiro1995foilanadaumanovaversodoOak
quefoirebatizadaparaJava.AtecnologiaJavatinhasidoprojetadaparasemoverpormeiodasredesde
dispositivosheterogneos,redescomoainternet.Agoraaplicaespoderiamserexecutadasdentrodos
navegadoresnosAppletsJavaetudoseriadisponibilizadopelainternetinstantaneamente.FoioestticoHTML
dosnavegadoresquepromoveuarpidadisseminaodadinmicatecnologiaJava.Avelocidadedos
acontecimentosseguintesfoiassustadora,onmerodeusurioscresceurapidamente,grandesfornecedoresde
tecnologia,comoaIBManunciaramsuporteparaatecnologiaJava.
Desdeseulanamento,emmaiode1995,aplataformaJavafoiadotadamaisrapidamentedoquequalquer
outralinguagemdeprogramaonahistriadacomputao.Em2004Javaatingiuamarcade3milhesde
desenvolvedoresemtodomundo.Javacontinuoucrescendoehojeumareferncianomercadode
desenvolvimentodesoftware.Javatornousepopularpeloseuusonainternetehojepossuiseuambientede
execuopresenteemnavegadores,mainframes,sistemasoperacionais,celulares,palmtops,cartesinteligentes
etc.

Padronizao
Em1997aSunMicrosystemstentousubmeteralinguagemapadronizaopelosrgosISO/IECeECMA,
masacaboudesistindo.[3][4][5]Javaaindaumpadrodefato,quecontroladaatravsdaJCPJava
CommunityProcess.[6]Em13denovembrode2006,aSunlanouamaiorpartedoJavacomoSoftwareLivre
sobostermosdaGNUGeneralPublicLicense(GPL).Em8demaiode2007aSunfinalizouoprocesso,
tornandopraticamentetodoocdigoJavacomosoftwaredecdigoaberto,menosumapequenaporodaqual
aSunnopossuicopyright.[7]

AquisiopelaOracle
Em2009aOracleCorporationadquireaempresaresponsvelpelalinguagemJava,aSunMicrosystems,por
US$7,4bilhes.ComoobjetivodelevaroJavaeoutrosprodutosdaSunaodispordosconsumidores.

Caractersticas
AlinguagemJavafoiprojetadatendoemvistaosseguintesobjetivos:
OrientaoaobjetosBaseadonomodelodeSimular
https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)

2/8

08/07/2016

Java (linguagem de programao) Wikipdia, a enciclopdia livre

PortabilidadeIndependnciadeplataforma"escrevaumavez,executeemqualquerlugar"("write
once,runanywhere")
RecursosdeRedePossuiextensabibliotecaderotinasquefacilitamacooperaocomprotocolos
TCP/IP,comoHTTPeFTP
SeguranaPodeexecutarprogramasviaredecomrestriesdeexecuo
Almdisso,podemsedestacaroutrasvantagensapresentadaspelalinguagem:
SintaxesimilaraC/C++/C#
FacilidadesdeInternacionalizaoSuportanativamentecaracteresUnicode
Simplicidadenaespecificao,tantodalinguagemcomodo"ambiente"deexecuo(JVM)
distribudacomumvastoconjuntodebibliotecas(ouAPIs)
Possuifacilidadesparacriaodeprogramasdistribudosemultitarefa(mltiplaslinhasdeexecuo
nummesmoprograma)
Desalocaodememriaautomticaporprocessodecoletordelixo
CargaDinmicadeCdigoProgramasemJavasoformadosporumacoleodeclassesarmazenadas
independentementeequepodemsercarregadasnomomentodeutilizao

Licena
ASundisponibilizaamaioriadasdistribuiesJavagratuitamenteeobtmreceitacomprogramasmais
especializadoscomooJavaEnterpriseSystem.Em13denovembrode2006,aSunliberoupartesdoJava
comosoftwarelivre,sobalicenaGNUGeneralPublicLicense.[8]Aliberaocompletadocdigofontesoba
GPLocorreuemmaiode2007.[9]

Exemplosdecdigo
Mtodomain
Omtodomainondeoprogramainicia.Podeestarpresenteemqualquerclasse.Osparmetrosdelinhade
comandosoenviadosparaoarraydeStringschamadoargs.
public class OlaMundo {
/**
* Mtodo que executa o programa
* public = visto em qualquer lugar da aplicao. o modificador de acesso
* static = iniciado automaticamente pela JVM, sem precisar de uma instncia
* void = Mtodo sem retorno (retorno vazio)
* main = Nome do mtodo, que obrigatrio ser este. Recebe como parmetro um array de String.
* String[] args = Array de argumentos que podem ser repassados na chamada do programa.
*/
public static void main(String[] args) {
System.out.println("Ol, Mundo!"); //Imprime na tela a frase
}
}

Classes
Exemplo:
public abstract class Animal {
public abstract void fazerBarulho();
}
public class Cachorro extends Animal {
public void fazerBarulho() {
System.out.println("AuAu!");
}
}

https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)

3/8

08/07/2016

Java (linguagem de programao) Wikipdia, a enciclopdia livre

public class Gato extends Animal {


public void fazerBarulho() {
System.out.println("Miau!");
}
}

OexemploacimacriaaclasseAnimaleduasclassesderivadasdeAnimal.importanteobservarquenas
classesderivadastemosaredefiniodomtodofazerBarulho().Estaredefinioclassificadacomouma
sobreposio(override)demtodos.Oconceitodesobreposiosomentepodeseridentificadoeutilizado
quandotemosclassesdispostasemumrelacionamentodeherana.
Javanosuportaheranamltipla,devidoapossibilidadedeumaclassepaiterummtodocomomesmonome
deoutraclassepai,egerarpossveisfalhasaochamaromtodo,etodasasclassesemJavaderivamdaclasse
Object.AnicapossibilidadedeseverheranamltiplaemJavanousodeinterfaces,poisumaclassepode
implementarvriasinterfaces.
Classesinternas
Javapodeterclassesinternas.Exemplos:
public class Cavalo extends Animal {
public void fazerBarulho() {
System.out.println("RIINCH!");
}

// Classe interna e privada. Existe s no contexto da classe "Cavalo".


private class Parasita extends Animal {
public void fazerBarulho() {
System.out.println("SQRRT");
}
}
}

<

Interfaces
Umainterfacemodelaumcomportamentoesperado.Podeseentendlacomoumaclassequecontenhaapenas
mtodosabstratos.Emboraumaclassenopossacontermaisdeumasuperclasse,aclassepodeimplementar
maisdeumainterface.Exemplo:
public interface Pesado {
double obterPeso();
}
public interface Colorido {
Color obterCor();
}
public class Porco extends Animal implements Pesado, Colorido {
public void fazerBarulho() {
System.out.println("inc!");
}

// Implementao da interface Pesado


public double obterPeso() {
return 50.00;
}
// Implementao da interface Colorido
public Color obterCor() {
return Color.BLACK;
}
// Uma propriedade s do porco
public boolean enlameado() {
https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)

4/8

08/07/2016

Java (linguagem de programao) Wikipdia, a enciclopdia livre

return true;
}
}

Objetosannimos
Podemostertambmobjetosannimos,ondenonecessrioinstanciaroobjetoemumavarivelparautiliz
lo.Exemplo:
public class MostraBarulho {
public static void main(String args[]) {
new Cavalo().fazerBarulho(); // Objeto annimo.

// Abaixo um objeto e classe annimos!


new Animal() {
public void fazerBarulho() {
System.out.println("QUAC!");
}
}.fazerBarulho();
}
}

Programaofuncional
Apartirdaverso8,oJavasetornaumafuncional,assimpermitindoqueseutilizefunesnasoperaesda
linguagem.Exemplo:
public class Main {
public static void main(String[] args) {
// Lista de paradigmas
List<String> paradigmas = new ArrayList<>();

// Adiciona paradigmas
paradigmas.add("Genrico (1.5)");
paradigmas.add("Funcional (8)");
// Abre uma stream
paradigmas.stream()
// Faz todos os textos na lista ficarem em maisculo
.map(String::toUpperCase);
// Faz loop em todos paradigmas em maisculo.
.forEach(paradigma -> System.out.println(paradigma)); // ou .forEach(System.out::println);
}
}

Ferramentas
Frameworks
possvelutilizarframeworksparafacilitarodesenvolvimentodeaplicaes,dosquaisosmaisutilizados
podemsedestacar:
HibernateferramentaparaORM
Junitferramentaparaauxiliarnacriaodetestesunitrios
Log4jferramentaparafacilitaracriaodelogsnaaplicao
Springferramentaqueauxiliaprincipalmenteimplementaodeinjeodedependnciaseinversode
controle
StrutscontroladorMVC(Model2)web
https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)

5/8

08/07/2016

Java (linguagem de programao) Wikipdia, a enciclopdia livre

Ambientesdedesenvolvimento
possveldesenvolveraplicaesemJavaatravsdevriosambientesdedesenvolvimentointegrado(IDEs).
Dentreasopesmaisutilizadaspodesedestacar:
BlueJumambientedesenvolvidoporumafaculdadeaustraliana(consideradomuitobompara
iniciantes)
JCreator(gratuito/shareware)umambientedesenvolvidopelaXinox(recomendadopara
programadoresiniciantes)
jEdit(recomendadoparaprogramadoresiniciantes)
Eclipse(recomendadoparaprogramadoresfluentes)
IDEscompletas(recomendadoparaprogramadores
profissionais)
EclipseumprojetoabertoiniciadopelaIBM
IntelliJIDEA(comercial)umaIDEdesenvolvidapela
JetBrains
JBuilderumambientedesenvolvidopelaempresaBorland
JDeveloper(gratuitoOTN)umaIDEdesenvolvidapela
empresaOracle
NetBeans(softwarelivre)umaIDEdesenvolvidapelaSun
Microsystems
OutrasIDEs(menospopulares)

EmuladordoAndroidnoEclipse,exibindo
umsimples"HelloWorld",escritoem
JAVAeXML

Gel(IDE)opensource
GreenfootbemparecidocomoBlueJ
JGRASPbomparaintermedirios,feitopelaequipedoProjetoGRASP
JavaStudioCreator/Enterprise(gratuitoSDN)umambientecriadopelaempresaSunMicrosystems
WorkshopforWebLogic(comercial/desenvolvedor)umambientecriadopelaempresaOracle
WebSphereStudioApplicationDeveloperumambientecriadopelaempresaIBM

Extenses
ExtensesemJava:
J2ME(MicroEditionforPDAsandcellular
phones)
J2SE(StandardEdition)
J3D(AhighlevelAPIfor3Dgraphics
programming)
JAAS(JavaAuthenticationandAuthorization
Service)
JAIN(JavaAPIforIntegratedNetworks)
JavaCard
JMX(JavaManagementExtensions)
JavaFX
JSF(JavaServerFaces)
JSP(JavaServerPages)
JavaSpaces
JCE(JavaCryptographyExtension)
JDBC(JavaDatabaseConnectivity)
JDMK(JavaDynamicManagementKit)
JDO(JavaDataObjects)
JEE(EnterpriseEdition)

JEE(EnterpriseEdition)
Jini(anetworkarchitecturefortheconstruction
ofdistributedsystems)
Jiro
JMF(JavaMediaFramework)
JMI(JavaMetadataInterface)
JMS(JavaMessageService)
JNDI(JavaNamingandDirectoryInterface)
JNI(JavaNativeInterface)
JOGL(AlowlevelAPIfor3Dgraphics
programming,usingOpenGL)
JSML(JavaSpeechAPIMarkupLanguage)
JXTA(opensourcebasedpeertopeer
infrastructure)
MARF(ModularAudioRecognition
Framework)
OSGi(DynamicServiceManagementand
RemoteMaintenance)
SuperWaba(JavaVMsforhandhelds)

https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)

6/8

08/07/2016

Java (linguagem de programao) Wikipdia, a enciclopdia livre

Certificaes
Existem8tiposdecertificaes[10]daOracleparaJava:
OracleCertifiedEnterpriseArchitect(OCEA)
OracleCertifiedMobileApplicationDeveloper(OCMAD)
OracleCertifiedDeveloperForJavaWebServices(OCDJWS)
OracleCertifiedBusinessComponentDeveloper(OCBCD)
OracleCertifiedWebComponentDeveloper(OCWCD)
OracleCertifiedJavaDeveloper(OCJD)
OracleCertifiedJavaProgrammer(OCJP)
OracleCertifiedJavaAssociate(OCJA)
CadacertificaotestaalgumtipodehabilidadedentrodaplataformaelinguagemJava.Todosostestesso
realizadospelaempresaPersonVUE[11]esoreconhecidosinternacionalmente.

Comunidade
AcomunidadededesenvolvedoresJavareneseemgrupodenominadosJUGs(JavaUserGroups).NoBrasil
omovimentodegruposdeusuriosexpandiusebastanteetemformadoalgunsdosmaioresgruposdeusurios
Javadomundo[12],comoporexemplooPortalJava,GUJeoJavaFree.

Referncias
1.Java5catchesupwithC#(http://www.barrycorneli
us.com/papers/java5/onefile/)(emingls).
UniversidadedeOxford.Consultadoem10dejaneiro
de2010.
2.WhyMicrosoft'sC#isn't(http://news.cnet.com/20
081082817522.html)(emingls).CNET.
Consultadoem10dejaneirode2010.
3.JavaStudyGroup(http://www.openstd.org/JTC1/SC
22/JSG/)
4.WhyJavaWasNotStandardizedTwice(http://c
sdl2.computer.org/comp/proceedings/hicss/2001/098
1/05/09815015.pdf)
5.WhatisECMAandwhyMicrosoftcares(http://tech
update.zdnet.com/techupdate/stories/main/0,14179,28
32719,00.html)
6.JavaCommunityProcesswebsite(http://www.jcp.or
g/en/home/index)
7.open.itworld.comJAVAONE:SunThebulkof

7.open.itworld.comJAVAONE:SunThebulkof
Javaisopensourced(http://open.itworld.com/4915/0
70508opsjava/page_1.html)
8.SunbeginsreleasingJavaundertheGPL(http://w
ww.fsf.org/news/fsfwelcomesgpljava.html)(em
ingls).Consultadoem6dejulhode2010.
9.JavaOneopeningkeynotenotesandcomments(htt
p://rollerweblogger.org/roller/entry/javaone_opening_
keynote_notes)(emingls).Consultadoem6dejulho
de2010.
10.JavaCertification(http://www.sun.com/training/certif
ication/java/index.xml)
11.PersonVUE(http://www.pearsonvue.com).
12.ProfissaoJavaPgina13JavanoBrasil(http://ww
w.profissaojava.com.br/arquivos/ProfissaoJavaAbert
ura.pdf)

Vertambm
C
Microsoft.NET
PlataformaJava

Bibliografia
HarveyM.Deitel(2005).Java:ComoProgramar6ed.PearsoneducationdoBrasil[S.l.]Parmetro
desconhecido|Pginas=ignorado(|pginas=)(Ajuda)
ApostilaJavaeOrientaoaObjetos(http://www.caelum.com.br/apostilajavaorientacaoobjetos/),
https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)

7/8

08/07/2016

Java (linguagem de programao) Wikipdia, a enciclopdia livre

licenaCreativeCommons,7edio,pelaCaelumEnsinoeInovao.
PatrickNaughton,DominandooJava,GuiaAutorizadodaSunMicrosystems,EditoraMakronBooks,
1997,Osborne,ISBN8002575540
BrianJepson,JavaDatabaseProgrammingMasterNextGenerationWebDatabaseTechniques,1997,
Editora:WileyComputerPublishing,ISBN0471165182

Ligaesexternas
Websiteoficial(http://www.oracle.com/technetwork/java/index.html)(emingls)
Websiteoficial(http://www.oracle.com/br/technologies/java/index.html)(emportugus)
Tutoriaisoficiais(http://download.oracle.com/javase/tutorial/)(emingls)
Java(http://www.dmoz.org/Computers/Programming/Languages/Java/)noOpenDirectoryProject
Obtidade"https://pt.wikipedia.org/w/index.php?title=Java_(linguagem_de_programao)&oldid=46079622"
Categorias: Linguagensdeprogramaoconcorrentes Linguagensdeprogramaoorientadasaobjetos
Linguagensdeprogramaobaseadasemclasses Java(linguagemdeprogramao) PlataformaJava Web
Linguagensdeprogramaocriadasem1995
Estapginafoimodificadapelaltimavez(s)17h36minde4dejulhode2016.
EstetextodisponibilizadonostermosdalicenaCreativeCommonsAtribuioCompartilhaIgual
3.0NoAdaptada(CCBYSA3.0)podeestarsujeitoacondiesadicionais.Paramaisdetalhes,
consulteasCondiesdeUso.

https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)

8/8

Potrebbero piacerti anche