Linguagem Java
Linguagem Java
Linguagem Java
nº 22
nº 24
nº 29
Tete
Setembro, 2024
2
Isabel Ramim
Ivanildo Narcísio
Lilien Xavier Assane
Linguagem Java
Tete
Setembro, 2024
3
Índice
1. Introdução...................................................................................................................... 4
2. Linguagem Java............................................................................................................. 6
3. Conclusão .................................................................................................................... 19
1. Introdução
A linguagem de programação Java emergiu na década de 1990 como uma solução versátil
e robusta para o desenvolvimento de software, consolidando-se rapidamente como uma das
linguagens mais utilizadas em todo o mundo. Seus conceitos básicos envolvem a objectividade na
construção de códigos e a portabilidade, características centrais que diferenciam Java de outras
linguagens. Desde sua criação por James Gosling e sua equipe na Sun Microsystems, Java tem
passado por um processo contínuo de evolução, adaptando-se às demandas do mercado e às
inovações tecnológicas.
A linguagem Java se destaca por suas características notáveis, como a Orientação a
Objectos, que permite a criação de sistemas mais organizados e reutilizáveis, e o gerenciamento
automático de memória, que minimiza erros comuns de programação. Sua sintaxe clara e
estruturada facilita a aprendizagem, atraindo novos programadores e contribuindo para a sua
popularidade entre desenvolvedores experientes. A capacidade de escrever “uma vez, executar em
qualquer lugar” permite que aplicações Java sejam executadas em diferentes plataformas, um
aspecto fundamental na era da computação distribuída.
As aplicações do Java são vastas e abrangem desde o desenvolvimento de aplicativos
desktop até sistemas corporativos complexos, aplicações web e desenvolvimento para dispositivos
móveis. Contudo, a manutenção do código Java e a implementação de boas práticas de
programação representam desafios significativos para desenvolvedores. Os objectivos da
linguagem incluem promover a simplicidade, a segurança e a robustez, aspectos que, por sua vez,
oferecem diversas vantagens, como a extensa biblioteca padrão e a grande comunidade de suporte.
Entretanto, Java não está isenta de desvantagens, como a sua performance em comparação com
linguagens compiladas, por exemplo.
A importância de Java no mundo da programação transcende a técnica, reflectindo um
impacto cultural significativo, uma vez que formou uma base sólida para a educação em
programação e influenciou a cultura de desenvolvimento de software. Este trabalho de investigação
científica busca explorar a linguagem Java em profundidade, abordando sua história,
características, aplicações, vantagens e desvantagens, bem como os desafios enfrentados por
programadores, destacando sua relevância na formação do cenário tecnológico actual.
5
1.1. Objectivos
1.1.1. Geral
1.1.2. Específicos
1.2. Metodologia
1.3. Estrutura
2. Linguagem Java
2.1. Conceitos básicos
2.1.1. Linguagem
2.1.2. Java
De acordo com Gosling & Holzschlag (2004) “Java é uma linguagem de programação
orientada a objectos que permite o desenvolvimento de aplicativos que podem ser executados em
uma variedade de plataformas devido à sua máquina virtual.”
Segundo Schildt (2011) “Java combina a robustez de C e a simplicidade de Python,
permitindo aos desenvolvedores criar aplicativos em um ambiente multiplataforma e seguro.”
7
Para Bloch (2018) “Java é uma linguagem de programação que promove práticas de
desenvolvimento de software eficazes, com ênfase em simplicidade e produtividade.”
Conforme Eckel (2006) “Java é uma linguagem que é simples, mas poderosa, e que suporta
a programação para grandes sistemas, mantendo a facilidade de uso.”
E por fim, Sierra e Bates (2005) ressaltam que “Java é uma linguagem projectada para ser
fácil de usar, difícil de errar e fácil de aprender, promovendo a programação orientada a objectos.”
Esses conceitos e referências oferecem uma visão abrangente sobre o que é Java e sua
relevância no desenvolvimento de software.
A linguagem Java foi criada no início da década de 1990 por uma equipe liderada por James
Gosling na Sun Microsystems. Inicialmente concebida para dispositivos electrónicos, Java evoluiu
rapidamente para se tornar uma linguagem de programação orientada a objectos amplamente
utilizada. Segundo Arnold et al. (2005), “Java foi projectada para ser simples, segura e portátil, o
que a torna ideal para o desenvolvimento de aplicações em rede.”
Em 1995, Java foi lançada oficialmente com a versão 1.0, oferecendo uma maneira
inovadora de escrever programas que poderiam ser executados em qualquer dispositivo com a
Máquina Virtual Java (JVM). De acordo com Bloch (2008), “a portabilidade e a robustez de Java
transformaram o panorama da programação, permitindo a criação de aplicativos bare-metal para a
web.”
Ao longo dos anos, várias versões do Java foram lançadas, incluindo a popular versão Java
2 em 1998, que introduziu a plataforma Java 2 Standard Edition (J2SE), ampliando seu uso em
ambientes corporativos. Segundo Gosling et al. (2000), “as inovações como Collections e Java 2D
foram fundamentais para a adopção do Java em empresas.”
Com a ascensão da mobilidade, o Java para Android, introduzido em 2008, solidificou ainda
mais seu lugar na indústria de software. Segundo Meier (2012), “a versatilidade do Java na criação
de aplicativos móveis contribuiu para seu domínio no desenvolvimento de software.”
Em 2014, o Oracle Corporation adquiriu a Sun Microsystems, continuando a evolução do
Java. A partir de então, o lançamento de actualizações semestrais trouxe melhorias contínuas.
Segundo Bloch (2018), “essa abordagem de entrega rápida melhorou tanto a eficiência quanto a
segurança da linguagem.”
Java continua a ser uma escolha popular em diversos domínios, incluindo enterprise, web e
mobile. Sua constante evolução e o suporte de uma vasta comunhão de desenvolvedores
solidificam seu papel como uma das linguagens de programação mais relevantes do século XXI.
principais atractivos do Java, uma vez que o código escrito em Java pode ser executado em qualquer
dispositivo que tenha a Java Virtual Machine (JVM).
Além disso, Eckel (2018) enfatiza a importância da modularidade e da reutilização de
código. Para ele, a orientação a objectos em Java não é apenas uma maneira de estruturar o código,
mas também uma forma de pensar na solução de problemas. Eckel sugere que a lógica da
programação orientada a objectos, que é um dos fundamentos do Java, auxilia os desenvolvedores
a criar aplicações mais robustas e fáceis de manter.
Por outro lado, Bloch e Bierman (2018) detalham os recursos avançados da linguagem e
como eles contribuem para o desenvolvimento eficiente de software. Eles abordam conceitos como
generics, collections e lambdas, explicando como esses elementos podem aumentar a produtividade
do programador.
Por fim, James Gosling, conhecido como o “pai do Java”, menciona que a linguagem foi
projectada para ser simples, segura e eficiente, permitindo a construção de aplicações tanto para o
lado do servidor quanto para o cliente. (GOSLING, 2000)
Esses autores oferecem uma base sólida para entender tanto os princípios fundamentais
quanto os avanços da programação em Java.
3. Programação Concorrente:
→ Lea, (2000), examina os conceitos de programação concorrente em Java. Ele
apresenta técnicas e ferramentas para desenvolver aplicações multi-threaded de
forma segura e eficiente.
Esses autores fornecem uma visão abrangente dos paradigmas de programação em Java,
contribuindo para uma melhor compreensão das suas abordagens e práticas modernas no
desenvolvimento de software.
O tratamento de erros em Java é uma parte essencial da programação, pois permite que os
desenvolvedores lidem com excepções de maneira controlada e eficiente. Aqui estão alguns autores
que discutem esse tema:
Eckel (2006) enfatiza a importância das excepções e como a linguagem Java utiliza um
modelo de tratamento de erros baseado em excepções, permitindo que os programadores capturem
e processem erros sem interromper o fluxo normal da aplicação.
Bloch (2018) discute práticas recomendadas para o uso de excepções. Ele aconselha que se
deve usar excepções para condições excepcionais e não para controle de fluxo, além de salientar a
importância de documentar excepções lançadas em métodos.
Schildt (2018) fornece uma introdução acessível ao tratamento de excepções, explicando
como usar `try`, `catch` e `finally`, além de discorrer sobre a diferenciação entre excepções
verificadas e não verificadas.
Subramaniam (2014) aborda o tratamento de erros no contexto das novas funcionalidades
introduzidas no Java 8 e discute como as expressões lambda podem interagir com as excepções.
Esses autores oferecem insights valiosos sobre o tratamento de erros em Java, cobrindo
desde conceitos básicos até melhores práticas para lidar com excepções de forma eficaz.
A linguagem Java, introduzida pela Sun Microsystems na década de 1990, possui diversos
objectivos que a tornaram uma das linguagens de programação mais populares e amplamente
utilizadas. Diversos autores apontam características e metas da linguagem que são fundamentais
para a sua aplicação.
15
Um dos principais objectivos do Java é a portabilidade. De acordo com Bloch (2008), “Java
foi projectado para ser executado em qualquer dispositivo que tenha uma Máquina Virtual Java
(JVM), o que facilita a execução de programas em diferentes plataformas.
Java também é focada em segurança. Segundo Lippert e Pentz (2004), “Java foi
desenvolvido com uma arquitectura de segurança robusta, permitindo que os aplicativos
sobrevivam a invasões e ataques externos, especialmente em ambientes de rede.” A segurança é
uma preocupação essencial, especialmente na era da internet.
A legibilidade e simplicidade da sintaxe do Java é um objectivo que Edsger W. Dijkstra
reforça: “A utilização de linguagens de programação deve se concentrar em garantir que possamos
pensar melhor, não que possamos escrever mais facilmente” (Dijkstra, 1989). Java busca facilitar
o entendimento e a usabilidade para programadores.
Embora o desempenho nativo das linguagens compiladas seja muitas vezes superior, Java
tenta minimizar essa diferença. De acordo com Arnold et al. (2005), “A execução de bytecode na
JVM permite optimizações que melhoram o desempenho da linguagem, buscando um equilíbrio
entre portabilidade e eficiência.”
Java foi projectado com suporte a múltiplos threads desde o início, permitindo que
desenvolvedores criem aplicações mais responsivas. Segundo Gosling et al. (2000), “O suporte a
multithreading permite que os programas Java aproveitem as capacidades de hardware modernos,
melhorando o desempenho em tarefas simultâneas.”
A linguagem Java, desenvolvida pela Sun Microsystems em 1995, destaca-se por sua
versatilidade, portabilidade e robustez, factores que atraem tanto desenvolvedores iniciantes quanto
profissionais experientes.
Segundo James Gosling, um dos criadores do Java, a linguagem foi projectada com o
princípio de “escreva uma vez, execute em qualquer lugar” (GOSLING, 1996). Isso significa que
o código Java pode ser executado em diferentes plataformas sem a necessidade de recompilação,
17
graças à Java Virtual Machine (JVM). Este aspecto é fundamental em um mundo onde a
interoperabilidade se torna cada vez mais necessária.
Adicionalmente, Bruce Eckel, autor de “Thinking in Java”, destaca que a linguagem é fácil
de aprender e oferece uma sintaxe limpa, o que a torna acessível para novos programadores.
Entretanto, ele também ressalta que sua grande comunidade e vasta biblioteca de recursos permitem
o desenvolvimento de aplicações complexas (ECKEL, 2006).
Margaret Smith, em seu artigo sobre as linguagens de programação, observa que Java é
amplamente utilizada em ambientes corporativos, especialmente para desenvolvimento de software
backend, devido à sua segurança e desempenho (SMITH, 2020). A linguagem também se destaca
pela sua robustez e gerenciamento automático de memória, facilitando a criação de aplicativos
escaláveis e seguros.
Por fim, Doug Lea, especialista em concorrência e programação paralela em Java, explica
que a linguagem foi evoluindo para suportar programação concorrente, o que é essencial para
aproveitar o poder dos processadores modernos (LEA, 2000).
Esses autores ajudam a entender a importância do Java em diversas áreas da tecnologia e
desenvolvimento de software.
colecta de lixo funciona para evitar problemas de desempenho e garantir que os recursos sejam
liberados correctamente.
Por fim, a falta de práticas de codificação consistentes pode ser um obstáculo. Martin
(2008), argumenta que muitos desenvolvedores Java não seguem princípios de design e boas
práticas, como legibilidade e manutenção do código, que são fundamentais para o sucesso de
projectos a longo prazo.
Esses autores oferecem uma visão abrangente dos desafios enfrentados por
desenvolvedores ao trabalhar com a linguagem Java, destacando a necessidade de compreensão
sólida dos seus conceitos e práticas.
3. Conclusão
A investigação sobre a linguagem Java revela sua importância e relevância no contexto da
programação moderna. Java, uma linguagem de programação orientada a objectos, foi
desenvolvida na década de 1990 e rapidamente se consolidou como um pilar no desenvolvimento
de software devido à sua portabilidade, robustez e segurança. A evolução de Java é marcada por
actualizações significativas que incorporaram novas funcionalidades, mantendo-a competitiva em
um ambiente tecnológico em contínua mudança.
As características fundamentais da linguagem, como a gestão automática de memória e o
suporte a multi-threading, facilitam o desenvolvimento de aplicações complexas, enquanto a sua
sintaxe, inspirada em C e C++, favorece a facilidade de aprendizado para novos programadores.
As aplicações de Java são vastas, abrangendo desde software corporativo até aplicativos móveis e
sistemas embarcados, reflectindo seu papel central na indústria de tecnologia.
A manutenção do código Java é simplificada por sua legibilidade e pelas ferramentas e
frameworks disponíveis, como o Spring e Hibernate, que promovem boas práticas de
desenvolvimento. Contudo, a linguagem não está isenta de desvantagens, como a sobrecarga de
desempenho em comparação com linguagens compiladas directamente para código de máquina.
Os objectivos principais de Java incluem a criação de um ambiente de desenvolvimento
seguro e escalável, o que se traduz em sua ampla adopção em organizações de diversos sectores.
A importância cultural da linguagem se evidencia na formação de comunidades robustas e
iniciativas educacionais, contribuindo para a democratização do acesso à programação.
Entretanto, desafios permanecem na compreensão e implementação de conceitos mais
complexos, como a programação funcional introduzida nas versões mais recentes de Java. Esses
desafios não apenas afectam novos programadores, mas também profissionais experientes que
buscam se adaptar às inovações.
Concluindo, a linguagem Java continua a ser uma força influente no mundo da tecnologia
da informação. Sua evolução, características e aplicação prática a tornam uma escolha preferencial
para desenvolvedores, enquanto sua rica cultura comunitária e seu impacto na formação
educacional ressaltam sua relevância contínua. Assim, Java não é apenas uma linguagem, mas um
verdadeiro legado na programação moderna.
20
4. Referências Bibliográficas
ALMEIDA, R. D. *Java para Desenvolvimento de Software*. Editora Programação. 2019.
ALUR, D.; HIBBARD, J.; KLEIN, D. *Designing Enterprise Applications with Java EE*.
Prentice Hall, 2001.
ARNOLD, K. et al. *The Java Programming Language*. Addison-Wesley. 2005.
ARNOLD, K., BRIK, J. & GOSLING, J. *The Java Programming Language*. Addison-
Wesley. 2005.
ARNOLD, Ken; GOSLING, James; WOODS, David. *The Java Programming
Language*. 4. ed. Addison-Wesley, 2005.
BAKHTIN, M. M. *The Dialogic Imagination: Four Essays*. University of Texas Press.
1981.
BLOCH, J., & BIERMAN, G. *Java: The Complete Reference*. McGraw-Hill Education.
2018.
BLOCH, J., & MEYER, B. *Effective Java*. Addison-Wesley. 2008.
BLOCH, Joshua. *Effective Java*. 3. ed. Addison-Wesley, 2018.
BLOCH, Joshua. *Effective Java*. Addison-Wesley, 2008.
CAMACHO, C.; MONTEIRO, J. *Spring Framework: Uma Abordagem Prática*.
Novatec Editora, 2016.
CHOMSKY, N. *Syntactic Structures*. Mouton. 1957.
DEITEL, P. J., & DEITEL, H. M. *Java: How to Program* (11ª ed.). Pearson. 2018.
DIJKSTRA, E. W. *The Humble Programmer*. ACM. 1989.
ECKEL, B. *Thinking in Java*. Prentice Hall. 2018.
ECKEL, Bruce. *Thinking in Java*. 4. ed. Prentice Hall, 2006.
ECKEL, Bruce. *Thinking in Java*. Prentice Hall, 2006.
FERREIRA, M. A. *Multithreading em Java: Teoria e Prática*. Editora Conexões. 2022.
FLANAGAN, David. *Java in a Nutshell*. O’Reilly Media, 2011.
FOWLER, M. *Refactoring: Improving the Design of Existing Code* (2ª ed.). Addison-
Wesley. 2018.
FOWLER, M. *Refactoring: Improving the Design of Existing Code*. Addison-Wesley.
2018.
FOWLER, M. *Patterns of Enterprise Application Architecture*. Addison-Wesley, 2004.
21