Documente Academic
Documente Profesional
Documente Cultură
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
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
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
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!");
}
<
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!");
}
4/8
08/07/2016
return true;
}
}
Objetosannimos
Podemostertambmobjetosannimos,ondenonecessrioinstanciaroobjetoemumavarivelparautiliz
lo.Exemplo:
public class MostraBarulho {
public static void main(String args[]) {
new Cavalo().fazerBarulho(); // Objeto annimo.
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
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
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
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