Você está na página 1de 15

Questões Java – Como Programar

Fonte: Livro Java - Como Programar [10ª Ed][Deitel & Deitel][2016].pdf

Capítulo 1 e 2:

1) Qual orgão responsável mundialmente pela segurança em linguagens de programação?


CERT (Computer Emergency Response Team – Equipe de Resposta de Emergência Computacional). Uma
organização financiada pelo governo americano que publica e promove padrões de codificação segura para sistemas de
risco
.
2) Quais os paradigmas da programação JAVA?
Antes do JAVA SE 8, o JAVA suportava três paradigmas:
1- Programação Procedural;
2- Programação Orientada a Objetos;
3- Programação Genérica
Após o JAVA SE 8, o JAVA acrescenta a Programação Funcional que permite uma programação mais clara e precisa,
mais robusta e mais fácil de paralelizar.

3) O que é o JAVA Enterprise Edition?


É uma das versões das aplicações JAVA utilizada para desenvolver aplicativos em rede distribuida, em grande escala
e voltados para WEB. Lembrando que no passado as aplicações JAVA eram aplicadas localmente num mesmo
computador.

4) Para que serve o JAVA Micro Edition?


É um subconjunto do JAVA SE voltado para desenvolver aplicativos destinados para dispositivos embarcados como
smartwatches, MP3 players, decodificadores de TV e medidores inteligentes de energia elétrica.

5) Qual a situação da capacidade de processamento atualmente?


Celulares hoje em dia realizam cálculos milhões de vezes mais rápido que os primeiros computadores. O computador
mais potente atualmente (2016) é o Tianhe-2 do Departamento de Defesa na China e realiza 33 quatrilhões de cálculos por
segundo, equivalente a 3 milhões de cálculos por pessoas no planeta em um segundo.

6) O que são os programas de computador?


São conjuntos de instruções ordenadas baseada em linguagens de computador que ordenam o computador a realizar
operações matemáticas.

7) O que é a Lei de Moore?


George Moore, cofundador da Intel, elaborou uma teoria na década de 60 que previa a duplicação da capacidade de
armazenamento e processamento dos computadores a cada 18 meses em média.

8) O que é e o que promoveu a "revolução da informação"?


Essa revolução é o fenômeno ocorrido a partir do aumento na capacidade de processamento e armazenamento que
permitiu o crescimento, estimulado pela Lei de Moore, do acesso à informação. Assim como as tecnologias físicas
computacionais, a informação se tornou mais acessível e barata levando a uma "popularização" da informação bem como
um aumeto significativo na produção de novas informações.

9) Quais são as unidades lógicas básicas de um computador?


(1) Unidade de entrada, (2) de saída, (3) de memória, (4) Unidade secundária de armazenamento (5) ALU –
Unidade de Aritmética e Lógica, (6) CPU – Unidade de Processamento Central.

10) Quais os dispositivos de entrada mais recentes na computação?


Atualmente contamos com entrada de dados por meio da internet, GPS e acelerômetros em smartphones ou video-
games (kinect e controladores). Além disso, presenciamos dispositivos.de entrada e saída novos como telas sensíveis ao
toque.
11) Quais as novidades tecnológicas que se enquadram em unidades de saída?
Além dos tradicionais monitores, caixas de som e impressoras, existem alguns mais recentes como mini-projetores,
conectores HDMI, Bloototh para comunicação com outros dispositivos como robôs e eletrodomésticos inteligentes.

12) Qual a função e localização da ULA num computador?


ALU (Unidade de Lógica e Aritmética) e considerada como uma "seção de produção" e realiza cálculos simples e por
meio de decisão permite comparar dois itens da unidade de memória. Nos sistemas atuais a ALU fica implementada
fisicamente ao lado da CPU para tornar suas operações mais rápidas.

13) Como é e qual a função da CPU?


A CPU é considerada uma "seção administrativa" em um computador porque gerencia todos as outras unidades
dizendo quando e o quais funções realizar. Permite também que dispositivos E/S se comuniquem diretamente com a
memória. Atualmente contamos com computadores multicore que abrigam em um único circuíto integrado dois ou mais
processadores que processam dados em paralelo.

14) Quais são os constituintes da uma Hierarquia de Dados?


Em ordem de tamanho são: Bits, caracteres, campos, registros, arquivos, banco de dados e big data.

15) Qual a importância dos bits em um computador?


Os bits representam as unidades fundamentais na combutação e são divididos em apenas duas representações (0 e
1). Computadores manipulam fisicamente apenas bits e a ordem de bits regidos pelo tempo proporcionam todos os
cálculos possíveis bem como a conversão desses dados em hierarquias mais altas. Sendo assim, os bits representam a
linguagem de máquina.

16) Qual a importância dos caracteres na computação?


Os caracteres representam uma forma mais assimilável de informação e permitem que programas sejam escritos com
mais facilidade. Na linguagem JAVA temos caracteres Unicode que são compostos por 1, 2 ou 4 bytes (8, 16 e 32 bits).

17) Na hierarquia de dados, o que são campos?


Assim como caracteres são conjuntos de bits, os campos são conjuntos de caracteres sequenciais que representam
informações mais concretas para a compreensão humana como o nome de uma pessoa e sua idade.

18) Como são formados os registros?


Os registros são um conjunto de campos relacionais, não necessariamente sequenciais. Os campos podem estar em
localizações físicas bem distantes. Em JAVA os registros são implementados como "classes".

19) O que são arquivos em programação?


São conjuntos de registros ordenados com dados e organização arbitrários. Em alguns SO um arquivo é uma
sequência de bytes que podem abrigar até trilhões de caracteres de informações.

20) Qual a função e o que é um banco de dados?


Os bancos de dados representam um conjunto grande de arquivos e registros organizados em tabelas relacionadas.
Na hierarquia de dados ocupam a 6ª posição. Um sistema de banco de dados permite organizar, pesquisar e classificar as
informações individuais e relacionadas entre si.

21) O que é um Big Data?


Se trata do conjunto de toda informação disponível digitalmente. É um termo relativamente novo e representa as
informações de diversas fontes de armazenamento diferentes ao redor do mundo. Estima-se que 90% dos dados do
mundo foram criados nos últimos dois anos e atualmente estamos na casa dos trilhões de gigabytes (zettabytes) de
suprimento global de dados.

22) Quais os três tipos de linguagem em ordem hierárquica?


Linguagem de máquina (0 e 1), liguagem Assembly (intermediária) e linguagem de alto nível (Ex.: Java). A tradução
entre os níveis permite programarmos computadores por meio de linguagens de alto nível compreensíveis aos
programadores e usuários comuns.
23) Porque a linguagem de máquina é restrita?
Porque cada computador é projetado com uma programação específica nessa linguagem, ou seja, uma programação
de máquina não seria adaptável em outra máquina. No entanto, nos primórdios da computação, os primeiros programas
eram criados e manipulados nesse nível binário como por exemplo as primeiras folhas de pagamento.

24) Qual as vantagens da linguagem assembly?


Essa linguagem permitiu acelerar e tornar mais eficaz a programação de máquina. Os programadores manipulavam
strings de caracteres em inglês para representar operações elementares. Entretanto a programação assembly exigia a
tradução para linguagem de máquina, por isso programas tradutores assemblers foram criados para traduzir em
velocidades de máquina.

25) Como funciona e o que é a linguagem de alto nível?


A linguagem de alto nível surgiu da necessidade de realizar programações mais rápidas e mais compreensíveis para
atender a crescente demanda de computadores. Essa linguagem permite uma programação mais similar a linguagem
humana além abrigar notações matemáticas já conhecidas. Foi necessário desenvolver compiladores que traduzem essa
linguagem diretamente para a máquina.

26) Para que servem os interpretadores?


São programas que permitem executar programas de alto nível diretamente evitando o tempo de compilação. Apesar
de tornar a execução mais demorada é muitas vezes mais rápida que compilar e depois executar.

27) O que são objetos em POO?


Sâo substantivos que podem possuir atributos e comportamentos e que são componentes reutilizáveis das classes.

28) Qual a importância dos objetos em POO?


Tornam a programação mais produtiva porque são componentes de software reutilizáveis em POO fáceis de entender,
corrigir e modificar, ao contrário do que ocorre na programação estruturada.

29) Como os objetos tornam a programação mais eficiente?


Assim como um motorista dirige um carro facilmente sem compreender todo os mecanismos internos, os objetos
permitem que métodos, classes e instanciações sejam agrupados para descrevê-los.

30) O que são métodos em POO?


Métodos armazemam internamente as declarações do programa permitem a execução de tarefas e são baseados em
funções. Comparado a um carro, um método seria o mecanismo do acelerador, mas apenas o pedal fica acessível ao
motorista e seus mecanismos internos (declarações) ficam escondidos.

31) O que são as classes em POO?


As classes são unidades do programa que armazenam os métodos. Comparado a um carro seria o conjunto interno,
inacessível ao motorista, contendo os mecanismos do volante, dos pedais e do computador de bordo.
Objetos são componentes das classes, registros são implementados como classe em Java, todo programa Java tem
pelo menos uma classe. No código fonte, a palavra class intruduz uma declaração de classe que é imediatamente seguida
pelo nome da classe que deve ser o mesmo nome do arquivo .java.

32) Como ocorrem as instanciações em POO?


Objetos podem receber atributos (instanciação) assim como ele mesmo é uma instância de sua própria classe. A
instanciação é definida como parte dos objetos.

33) Qual a importância da reutilização em POO?


A reutilização de classes e componentes propiciadas pela tecnologia dos objetos permitem criar novas classes e
programas com economia de tempo, esforço e custo. Essas vantagens são garantidas devido ao fato das classes e suas
componetes serem constantemente testadas, depuradas e ajustadas para um melhor desempenho.

34) Como ocorre a comunicação entre os objetos na POO?


Através de mensagens, geradas pelas chamadas de método para se comunicar com os objetos. Uma chamada de
método envia uma mensagem para o método em uma classe do objeto.
35) O que são atributos e variáveis de instância?
Um objeto tem variáveis de instância denominadas atributos que são especificados como parte da classe de um objeto
que instancia seus próprios atributos e não tem ligação com atributos de outros objetos.

36) Como ocorre o encapsulamento em POO?


Classes e seus objetos são encapsulados em pacotes contendo seus atributos e métodos que estão intimamente
ligados. Esse encapsulamente torna sua implementação interna oculta a outros objetos e confere mais segurança e uma
boa engenharia de software.

37) O que são heranças em POO?


Heranças são dependências que classes tem com as outras porque compartilham parte de sua implementação.
Classes novas podem ser criadas a partir de classes mais gerais criando uma herança entre elas. Exemplo disso é uma
superclasse "veículo" que possui uma subclasse "conversível".

38) Como são implementadas as interfaces e para que servem?


As interfaces são coleções de métodos que uma nova classe pode ou não implementar. Uma classe tem um método e
o compartilha com outras classes através das interfaces. Mas a classe pode modificar esse método de acordo com sua
necessidade. Exemplo disso pode ocorrer em sistema de SW onde há uma interface backup com os métodos para "ler" ou
"gravar" dados que são especializados para gravar ou ler de dispositivos específicos.

39) Como garantir que um grande projeto de sistema POO seja concebível e seguro?
É necessário seguir um processo de análise detalhada para determinar os requisitos do sistema, seu código e seu
design antes de começar a digitar. Esse processo longo e minucioso é garantido pela ferramenta OOAD (Análise e Projetos
Orientados a Objeto). Todo o projeto é comumente revisado por vários profissionais de SW para garantir sua integridade.

40) Como garantir que os OOAD sejam padronizados?


Visto que há muitos processos OOAD diferentes, uma linguagem gráfica composta por diagramas denominada UML
(Unified Modeling Language) permite que os processos OOAD se comuniquem num esquema gráfico padronizado.

41) Qual a importância de um sistema operacional?


Sistemas operacionais são sistemas de software que facilitaram o uso de computadores por pessoas comuns,
tornaram a programação mais rápida e eficiente. Além disso, SO permitem que aplicativos executem concorrentemente de
maneira segura e eficiente. Neles há um núcleo chamado de kernel que realiza as funções mais importantes como
compilar, interpretar e se comunicar diretamente com os hardwares.

42) Como é o sistema operacional Windows?


É uma propriedade da empresa Microsoft, foi criado em meados da década de 80 baseado no MSDOS. Foi um dos
primeiros sistemas com interface gráfica entre os computadores. Atualmente é o sistema operacional mais usado no mundo
com estrutura monolítica. Apesar de seu sucesso, ele usou inovações criadas pela empresa Xerox PARC e conceitos como
ícones, menus e janelas de sua concorrente, a Apple Macintosh. Sua última versão no momento é o Windows 10.

43) Como é o sistema operacional Linux?


É um sistema operacional de código-fonte aberto, por isso gratuíto. Programadores de todo o mundo podem contribuir
no seu desenvolvimento e evolução. Ao contrário do Windows, o Linux é aplicado muito bem em servidores e sistemas
embarcados.

44) Quais as principais organizações de código-fonte aberto no mundo?


Além do Linux e suas variantes, temos empresas como a Eclipse Foundation (ambientes de programação), a Mozilla
Foundation (navegador Firefox), a Apache Software Foundation (navegadores e aplicativos), o Github e o SoundForge
(ferramentas para programação).

45) Porque o Linux não é tão popular quanto o Windows?


Devido ao poder de mercado do sistema Windows, ao pequeno número de aplicativos compatíveis e ao grande
números de variantes do sistema (Red Hat Linux, Ubuntu Linux, Minix, etc.).
46) Como é o sistema Android?
É um sistema operacional embarcado para celulares de grande aceitação no mercado porque possui plataforma aberta
em virtude de ser baseado no kernel do Linux. Além disso, a linguagem JAVA é utilizada. Esses dois fatores, plataforma
aberta e linguagem JAVA fizeram do Android um sistema interessante para consumidores e programadores.

47) Qual é a história por trás do Android?


Foi criado pela Android Inc.e adquirida pela Goole em 2005. Em 2007 o grupo Open Handset Alliance foi fundada para
dar suporte ao sistema Android melhorando-o e reduzindo custos. Em 2013 cerca de 1,5 milhão de celulares eram ativados
diariamente. No mesmo ano mais de 80% dos celulares no mundo executavam esse sistema. Atualmente, além dos
celulares, o Android é um sistema operacional para tablets, e-readres, smartwatches, televisores, geladeiras e até motores
a jato e satélites da NASA.

48) Quais as principais linguagens de programação que surgiram ao longo da história?


Fortran: Criada pela IBM na década de 50 para aplicações científicas e de engenharia. Ainda em uso.
COBOL: Criada pelo cientista americano Grace Hopper na década de 50 e usado por indústrias e governo.
Pascal: Uma evolução da programação estruturada da década de 60 e aplicada em universidades.
Ada: Baseado em Pascal e financiada pela Defesa Americana na década 70. Ada foi a 1ª programadora.
Basic: Desenvolvido na década de 70 no Dartmouth College e visava uma programação simplificada.
C: Criada na déc. 70 por Dennis Ritchie da Bell Laboratories e usada inicialmente em sistemas UNIX.
C++: Criada na déc. 80 por Bjarne Stroustrup baseando-se em C, mas orientada a objetos.
Objective-C: Criada no início da década de 80 e principal sistema de dispositivos da Apple.
Visual Basic: Criada pelo Windows início de 90 para simplificar o desenvolvimento de aplicativos.
Visual C#: Baseada em C++ e Java para integrar a internet aos aplicativos de computador. Windows.
PHP: Linguagem de script de código fonte aberto e independe da plataforma. Usado por vários SOs.
Perl: Linguagem de script orientada a objetos muito usada na programação Web. Criada em 1987.
Python: Também uma OOSL lançada em 1991 por Guido von Rossum em Amsterdã. É extensível.
JavaScript: Script mais usado para conferir dinanismo às páginas Web como animações mais interativas.
Ruby on Rails: Criado pela 37signals na década 90 é uma linguagem POO com sintaxes simples.

49) Qual a história por trás da Linguagem Java?


Criada pela Sun Microsystems em 1991 estimulada pela popularização considerável de computadores que incumbiu
James Gosling a criar uma liguagem que pudesse rodar em diversos sistemas computacionais diferentes. Seu sucesso na
prática foi devido à popularização da internet em 1993 quando essa linguagem foi aplicada em páginas Web para adicionar
dinamismo.

50) Qual é a aplicação atual da linguagem Java?


Hoje em dia, o Java é usado em aplicativos corporativos de grande porte, para aprimorar páginas Web, para criar
aplicativos em dispositivos portáteis e eletrônicos maiores. Mas seu principal leque de mercado são aplicativos para
sistema Android. Recentemente a Sun Microsystems foi comprada pela empresa Oracle.

51) Qual a principal vantagem das classes em Java?


Permitir uma interface com os objetos. Classes e seus métodos podem ser salvas em bibliotecas denominadas Java
API para serem implementadas em diversas aplicações e compartilhadas em vários sistemas principalmente nos
distribuidos. Os métodos API são bem testado antes de sua publicação. Por isso utilizá-los é uma boa decisão para
desenvolver rapidamente um aplicativo mais confiável.

52) Quais são os passos para criar e executar um aplicativo Java?


Editar, compilar, carregar, verificar e executar.

53) Quais são os aplicativos voltados para edição de programas OO e os tipos entre eles?
Há pequenos aplicativos apenas para editar códigos JAVA como o bloco de notas do Windows, o TextEdit do OS X, e
editores on-line como Notepad++, EditPlus, TextPad e jEdit. No entanto, uma programação completa pode ser realizada em
Ambientes de Deseolvolvimento Integrado (IDEs) que fornecem ferramentas de desenvolvimento de SW como editores e
depuradores para encontrar erros lógicos. Dentre os ambientes temos o Eclipse, o NetBeans e o Intellij IDEA.

54) Como compilar código Java sem uma IDE?


A compilação é uma etapa após a edição do código e principalmente após instalar a JDK (Kit de Desenvolvimento
Java) e configurar suas variáveis de ambiente (Classpath, Path e Java_Home).
Com esses requisitos prévios já efetuados, a compilação sem uma IDE ocorre por meio de uma janela de comandos
do sistema operacional. No Windows temos o "Command Prompt", no Mac OS X temos o "Terminal" e no Linux temos o
"Shell Linux" ou "Terminal" em algumas versões do Linux.
Com a janela de comandos aberta, o código digitado em editores e devidamente salvo, basta digitar (na janela): "javac
nomedoarquivo.java" para chamar o compilador e compilar o arquivo. Após a compilação um arquivo .class é gerado e
salvo no mesmo diretório do arquivo com o código Java.
Basicamente a ordem para atender uma compilação sem IDE segue essa ordem:
JDK / Configurar variáveis / Editor / Criar código / Salvar / Janela de Comandos / Digitar comando / Compilar /
arquivo .class gerado.

55) Como os aplicativos Java são executados em plataformas diferentes sem necessidade de recompilação?
A principal peça para essa possibilidade é a máquina virtual (VM) que é um aplicativo de software que simula um
computador, mas oculta o sistema operacional e os hardwares que interagem com ele. A VM é a base da plataforma Java e
parte do JDK. O compilador Java converte o código-fonte em bytecodes que são executados pelo Java VM, uma das
máquinas virtuais mais utilizadas.

56) O que são bytecodes?


Sâo instruções em fase de execução convertidas do código-fonte Java. São diferentes das instruções de linguagem de
máquina que dependem da plataforma e por isso são portáteis e executáveis em diversas plataformas que contenham o
JVM e não necessitam da recompilação do código-fonte.

57) Como ocorre a fase de carregar o programa para a memória?


Carregar o programa na memória é a terceira fase para criação de um aplicativo Java. (Editar, compilar, carregar,
verificar e executar). O "carregador da classe" do JVM transfere os bytecodes contidos em arquivos .class para a memória
principal

58) Como ocorre a verificação do bytecode?


Enquanto é carregado na memória, o bytecode é verificado quanto a sua segurança. Bytecodes podem causar danos
aos arquivos do sistema (como vírus, por exemplo).

59) Como ocorre a execução dos bytecodes pela JVM?


A última fase numa criação completa de aplicativo Java é a execução dos bytecodes por interpretadores realizando as
ações especificadas. Nas primeiras versões de Java, a JVM executava os bytecodes individualmente tornando a execução
demorada. Arquiteturas modernas de computadores permitem a execução de várias instruções em paralelo auxiliado pelo
compilador JIT que compila bytecodes mais recorrentes para a linguagem de máquina tornando a execução mais eficiente.

60) Qual a importância dos compiladores de tempo real (JIT )?


Os compiladores de tempo real (JIT – Just in Time) estão presentes em versões mais recentes de JVM e sua principal
função é analisar os bytecodes mais recorrentes para compilá-los em linguagem de máquina. As instruções nessa
linguagem são executadas mais rapidamente. Sendo assim, durante a execução de bytecodes, que são instruções
compiladas de código-fonte Java, são novamente compilados para linguagem de máquina. Apesar da segunda compilação,
o tempo na execução de bytecodes é reduzido.

61) O que ocorre com erros durante a execução de um aplicativo Java?


Erros podem ocorrer em qualquer uma das etapas de criação de aplicativos Java. Durante a execução, se um erro
ocorrer, uma mensagem é enviada para um dispositivo de saída (tela, impessora, discos, rede). Um exemplo seria uma
divisão por zero, uma operação ilegal na aritmética de número inteiro em Java). É necessário retornar ao código-fonte, ou
em alguma etapa anterior à execução, encontrar o erro, corrigí-lo e seguir para as etapas posteriores até executar
novamente e confirmar a correção.

62) Quais os tipos de erros que ocorrem durante a execução Java?


Erros durante a execução são chamados de runtime errors que podem ser fatais quando encerram o programa
imediatamente ou não fatais quando o programa termina sua execução e pode acarretar resultados incorretos.
63) Como surgiu a internet?
Surgiu nos anos 60 através da ARPA (Advanced Research Projects Agency) do departamento de defesa americana
que planejou uma conexão em rede dos principais sistemas computacionais das universidades e instituições de pesquisa
financiadas por ela numa velocidade de 50.000 bits/s e a chamou de ARPANET. Inicialmente apenas mensagens eram
trocadas e isso mostrou ser um grande benefício de comunicação rápida e denominada e-mail. O protocolo para
comunicação tornou-se conhecido como TCP que permitia a transmissão de pacotes de dados codificados que garantiam a
integridade da informação entre emissor e receptor.

64) Como foi o surgimento do IP e sua importância?


Ao mesmo tempo que a rede ARPANET ganhava espaço, outras redes paralelas também eram criadas para ligar
computadores dentro de uma organização ou entre elas. O IP (Internet Protocol) foi criado pela própria ARPA para que
essas novas redes se comunicassem entre si numa única rede chamada de internet. O protocolo de comunicação passou a
se chamar TCP/IP.

65) Qual foi a importância da internet para os negócios?


Com o advento da internet, as empresas perceberam o grande potencial de negócios e começaram a investir pesado
em divulgação de serviços nesse novo leque de mercado. Com isso outros setores foram aquecidos como a indústria de
hardware para fornecer suprimentos de rede. Assim a tecnologia de banda larga surgiu para atender o crescente tráfego de
informação que agora não transmitiam apenas mensagens, mas imagens e até vídeos.

66) O que é a World Wide Web e como surgiu?


Mesmo com a criação da internet e milhares de computadores se comunicando basicamente com troca de
mensagens, o acesso à ela era muito restrito e difícil. Em 1989, Tim Bernes-Lee do CERN começou a desenvolver uma
tecnologia composta de um conjunto de hardwares e softwares associados à internet que permitia a localização e
visualização de documentos baseados em multimídia de diversos assuntos e a chamou de WWW, um sistema de
imformação baseada em hipertexto também denomidado de Web.

67) Qual foi a importância do HTML na popularização da internet?


Para tornar a internet acessível através do WWW, Tim Bernes-Lee do CERN, criou a tecnologia de compartilhamento
de documentos de texto via "Hiperlink" chamada de Hiper Text Markup Language (HTML).

68) Quem criou o HTTP e para que serve?


Novamente Tim Bernes-Lee, criador do WWW e do HTML, também escreveu protocolos de comunicação de
hipertextos chamados de HTTP (Hipertext Transfer Procotcol), semelhante ao TCP/IP criado pelo ARPA.

69) O que significa a WC3 e qual sua origem e importância?


É uma organização fundada por Tim Bernes-Lee, criador da WWW, do H TTP e do HTML, em 1994 voltada à criação e
inovação de tecnologias Web com foco na popularização da internet tornando-a mais acessível.

70) Para que servem os Mashups e qual foi uma de suas primeiras aplicações?
São uma metodologia que permite desenvolver rapidamente aplicativos poderosos combinando serviços Web
complementares e outras formas de feed de informações. Um dos primeiros mashups combinava anúncio imobiliário com o
Google Maps.

71) Como é o sistema Ajax?


O Ajax é um conjunto complexo de componentes que ajuda aplicativos Web a terem desempenho comparáveis aos
aplicativos desktop, uma tarefa difícil porque a transferência de dados pela internet pode ser lenta. Mas o Ajax permitiu
bons resultados em vários aplicativos Web como aconteceu como o Google Maps.

72) O que é "internet das coisas"?


É um termo recente voltado à internet atual onde vários tipos de dispositivos podem se comunicar tornando a internet
mais que uma rede de computadores. Desde que possua um IP, dispositivos inteligentes trocam informações pela internet.
Exemplos são tranponder veículares com GPS, aplicatívos de celular com GPS, termostatos que se ajustam baseados em
previsões do tempo.

73) O que é "refatoração" em programação?


É uma técnica para aprimorar aplicativos e torná-los mais seguros, claros, fáceis de manter. Amplamente usado em
Desenvolvimento Ágil de Software, muitas IDEs possuem ferramentas de refatoração embutidas para realizar as principais
partes do trabalho automaticamente.

74) Quais são e para que servem as tecnologias de software?


Sevem para agilizar o desenvolvimento de softwares. Um conjunto de metodologias podem ser agrupadas em para
compor o Desenvolvimento Ágil de Software e reduzir a quantidade de recursos e tornar a implementação de software mais
rápida. Dentre as técnicas estão a Refatoração, Padrões de Design, LAMP, etc.

75) O que são "Padrões de Design"?


É uma das técnicas para agilizar o desenvolvimento de software que usa arquiteturas testadas para construir softwares
orientados a objetos flexíveis que podem ser mantidos. Padrões recorrentes são mantidos e usados em novos aplicativos.
É um exemplo de reúso de software.

76) O que significa LAMP e para que é usado?


É um acrônimo das tecnologias de código-fonte aberto (Linux, Apache, MySQL e PHP, Perl ou Python) usadas para
desenvolvimento de aplicativos Web. São aplicativos para Scripts, servidores e Banco de dados. O equivalente para
código-fonte proprietário é o WAMP onde o Linux é substituido pelo Windows.

77) Como funcionam os SaaS (Software como Serviço)?


Normalmente os softwares são adquiridos como produtos armazenados em mídeas digitais para serem
descompactados e instalados em computadores locais. Os SaaS permitem que aplicativos sejam executados diretamente
em navegadores conectados na internet e isso torna seu uso mais simplificado, pois permite que sejam atualizados no
próprio servidor e carregados em vários computadores logados com o cliente tornando o aplicatívo portátil e sem instalação
local.

77) Além de aplicativos, o que mais são oferecidos como serviço atualmente?
Plataformas são oferecidas como serviço denomiado PaaS e executadas que permitem desenvolver e executar
aplicativos via Web também. Exemplos de PaaS são Google App Engine, Amazon EC2, e Windows Azure.

78) Qual a importância da Computação em Nuvem como ferramenta para desenvolvimento de SW?
SaaS e PaaS são exemplos de computação em nuvem cujos dados estão hospedados em servidores conectados à
internet onde os clientes aproveitam as facilidades dos serviços on-line para suas necessidades específicas. Essa
tecnologia permite a economia em hardware, atualizações, softwares e seu gerenciamento, visto que boa parte do
processamente é realizado remotamente.

79) O que são SDKs?


São kits de desenvolvimento de softwares que possuem ferramentas e documentação para os desenvolvedores de
programas. A Java Development Kit é um exemplo de SDK.

80) Como e porque os desenvolvedores classificam seus produtos?


Existem alguns programas, geralmente os mais complexos que levam mais tempo para serem criados, que são
desenvolvidos em etapas de acordo com sua integridade e estabilidade. Temos programas na versão alfa, beta, candidatos
a lançamento, final e beta contínuos.

81) Quais são e quais as características dos programas em suas respectivas versões?
Alfa: Primeira versão com desenvolvimento ativo. Contém muitos erros que serão testados e reportados por um
pequeno números de desenvolvedores.
Beta: Boa parte dos erros foram corrigidos e recursos quase completos. Voltados a um número maior de
desenvolvedores. Mais estável e sujeito à atualização.
Candidatos a lançamento: Também chamados de "release cantidatos", possuem quase todos os recursos e
praticamente sem erros, portanto livre para teste ma comunidade.
Versão final: Últimos erros corrigidos, se existirem, e lançados para o público em geral que recebem, geralmente,
atualizações on-line.
Beta contímuo: São aplicativos hospedados em nuvem que não possuem versões e são atualizados constantemente
através de "evolução de software". Exemplos desse tipo de software é o software de pesquisa Google.
82) Como fazer comentários em código-fonte Java?
Usando delimitadores como barras ou barra com asterisco e o compilador ignora textos seguindo as delimitações
abaixo, exceto em comentários Javadoc.
// Comentário de fim de linha (Começa após as barras e termina na mesma linha)
/* Comentário tradicional */ (Distribuídos entre várias linhas)
//** Comentários Javadoc. */ (Permite incorporar documentação)
Essas delimitações funcionam em C e C++.

83) Como funcionam os comentários Javadoc. e qual a diferença entre os tipos comuns?
O comentário Javadoc. fazem parte do JDK e permite incorporar a documentação do programa diretamente aos
programas para aplicações HTML. São o formato de comentário preferido na indústria.

84) O que é um erro de sintaxe em Java?


O código-fonte Java é criado usando sintaxes. Esquecer um símbolo ou letra (exceto comentários) importante ao
código fonte viola as regras de linguagem Java e causa um "erro de sintaxe" que também são chamados de "erro de
compilador, erro em tempo de compilação ou erro de compilação" porque são detectados e informados durante a execução
do programa.

85) Como um programa pode ser bem identificado?


Algumas organizações exigem que todo programa seja iniciado com comentário que informa o objetivo, o autor, a data
e a hora em que foi criado ou modificado pela última vez.

86) O que pode acarretar a falta ou a desatualização de comentários em código-fonte Java?


Atualizar comentários ajuda que programadores saibam do que se trata o programa. A falta de comentário como
função, datas e autores no in~icio do programa levam os programadores a fazerem suposições incorretas sobre o código
causando erros de programação e até mesmo violações de segurança.

87) Como tornar os programas mais legíveis?


É importante usar linhas em branco, caracteres de espaço e tabulações (Identações) para tornar o código-fonte mais
legível. IDEs geralmente estruturam o código com identações e linhas em branco automaticamente ou com comandos
específicos que organizam todo o código.

88) O que é e como criar nomes de classes corretamente?


O nome de uma classe é o seu identificador, uma série de caracteres que não permitem espaços e nem iniciar com um
número e devem começar com letra maiúscula. O início com letra maiúscula em cada palavra seguinte a primeira é
recomendável para padronizar os nomes de classe e tornar seu nome mais legível já que não são permitidos espaços entre
as palavras.
89) O Java faz distinção entre letras maiúsculas e minúsculas?
Sim. Value é diferente de value. São identificadores diferentes e ambos válidos.

90) O que é o "corpo de uma classe"?


É o espaço compreendido entre duas chaves "abre e fecha". Neste corpo fica compreendida a declaração da classe
com seus métodos.

91) O que significa "main" em "public static void main (String [] args)" ?
É o identificador do método contido em uma classe que inicia a execução do aplicativo Java. Pelo menos um dos
métodos em aplicativos Java deve ser chamado "main".

92) O que significa "(String [] args)"?


Significa que o identificador "main" é um bloco de construção do programa chamado "método", uma parte necessária
do método "main".

93) O que significa "void" em "public static void main (String [] args)"?
Os métodos podem retornar algum valor, mas quando são definidos com "void" eles não retornam nenhum.
94) O que é o corpo da declaração do método?
Assim como a classe tem seu corpo e dentro dele um ou mais métodos, cada método possui seu corpo que também
inicia e termina com chaves e dentro dele uma instrução para o computador executar uma ação.

95) O que são "strings" em programação Java?


São sequências de caracteres. A função "System.out.printl" possui uma string entre aspas que permite compilar os
espaços também ali contidos. Strings, também chamadas de "string de caracteres" ou "string literal" não permitem várias
linhas de código.

96) O que é System.out?


É conhecido como "objeto de saída padrão". Permite que informações sejam exibidas em janelas de comando nas
quais são executadas.

97) Qual o nome da janela onde são inseridas ou exibidas informações da execução de programas Java?
No Windows se chama "prompt de comando". No Unix, Linux e Mac OS X se chama "terminal" ou "shell".
Muitos programadores chamam simplesmente de "linha de comando".

98) O que faz o método "System.out.println"?


Imprime, ou exibe, uma linha de texto na janela de comando.

99) Qual o argumento em um método "System.out.println"?


É a expressão String que fica entre aspas, que por sua vez entre parênteses e após o método "System.out.prinln".

100) O que é uma instrução em um método?


É a linha que compreende a chamada de método até seu final indicado por "ponto e vírgula".

\n : Pula linha durante uma exibição de string


\ : Caractere de escape
\t : Tabulação horizontal
\r : Caractere de retorno, retorno de carro. Posiciona o cursor de volta na linha e sobrescreve.
\" : Para imprimir aspas

101) Para que serve o método System.out.printf?


O "f" no final do método indica uma impressão formatada e uma das suas funções é permitir que o argumento possa
ser dividido em várias linhas, indicado para grandes argumentos. Além disso, o método "printf" possui no seu primeiro
argumento, uma string de formato que consitui principalmente de especificadores de formato e pode incluir textos fixos
também. O segundo argumento contém variáveis regidas pelos especificadores de formato e pode abrigar também uma
expressão matemática como soma de variáveis.

102) Como é composto um método para exibição de dados formatados?


O método é invocado por "System.out.printf" seguido do argumento.
O argumento possui uma ou mais strings.
O primeiro argumento é constituído de uma "string literal" ou um "string de formato" ou a mistura dos dois. Os demais
argumentos subsequêntes são regidos pels especificadores e constituem "strings literais" e outros tipos de dados.

103) O que é um especificador de formato?


É o primeiro argumento de um método de impressão formatada composto por um ou mais especificadores de formato
que definem o "lugar" de um valor e seu tipo de saída de dados. Especificadores de formato também podem incluir
informações opcionais de formatação. O segundo argumento em diante respondem aos especificadores de formatação que
definiram seu tipo e posição no método de impressão.

104) Como são compostos os especificadores de formato?


São iniciados pelo caractere "%" seguidos por um caractere que representa o tipo de dado. Por exemplo: "%s"
representa um argumento do tipo "string". Podem haver nenhuma, uma ou mais especificadores de formato em um único
argumento de uma única chamada de método para impressão formatada que definirão os próximos argumentos em ordem
de escrita.
105) O que significa "%n"?
É um especificador que compõe o primeiro argumento denominado de string de formato em uma impressão que envia
o cursor para a linha de baixo na janela de comando semelhante ao "\n" em impressões do tipo "println".

106) O que é um "pacote" em Java?


É um conjunto de classes relacionadas e predefinidas que podem ser reutilizadas e tornar a programação Java mais
rápida e eficiente. Vários pacotes formam uma biblioteca de classes Java (API – Application Programming Interface). As
classes devem ser importadas antes de primeira declaração de classe no código e devem ser capitalizadas na palavra do
método.

107) Quais os métodos utilizados para capturar o teclado armazenar na memória?


Import java.util.Scanner; (Carrega pacote de classes voltadas à captura de unidades de entrada).
Scanner imput = new Scanner (System.in); (Prepara o leitor para entrada de dados).
x = imput.nextInt(); (alimenta a variável com o dado inserido).

108) Como identificar APIs obsoletas?


A cada nova versão Java, as APIs são atualizadas para corrigir erros, aprimorar seu desempenho e oferecer novos
métodos. É conveniente sempre ter o JDK atualizado. Mas é possível identificar recursos obsoletos durante a compilação
adotando o argumento de linha de comando "-deprecation" que fará o compilador informar quais recursos usados estão
obsoletos. A partir daí é necessário ir até a documentação on-line para atualizar o recurso.

109) O que são variáveis?


É uma posição na memória do computador ao qual um valor pode ser armazenado para uso posterior em um
programa. Devem ser declaradas com um tipo e um nome que não pode começar com números ou que contenha espaços.

110) O que representa uma variável?


Representa o tipo de informação armazenada nela.

111) Como é implementado o método Scanner?


Inicialmente é carregado da APIs pelo comando "import". Posteriormente é necessário criar uma variável do tipo
Scanner e inicializá-la com a expressão "new Scanner" que cria um novo objeto Scanner através do objeto de entrada
padrão "System.in" que captura os dados externos vindos de uma unidade de entrada do computador.

112) Qual a função do "System in"?


Comando que permite aplicativos lerem dados em bytes de informação digitados pelo usuário e traduzí-los em tipos
para serem usados pelo programa.

113) O que são tipos primitivos?


São tipos de variáveis e palavras chave que iniciam com letra minúscula como boolean, int, double, byte, char e float.

114) Porque é importante nomear variáveis e métodos com palavras sugestivas?


Ajuda o programa ser autodocumentado, ou seja, a simples leitura do seu código-fonte fornece informação suficiente
para compreendê-lo. Além disso, evita o excesso de comentários ao logo do código.

115) O que é uma "notação camelo"?


É uma prática de programação onde os nomes das variáveis são criadas com a primeira palavra iniciando com letra
minúscula e as demais com letras maiúsculas a fim de padronizar e tornar o programa mais legível.

116) Dentro de um código-fonte, o que é "prompt"?


É um argumento em forma de mensagem dentro de métodos de impressão que direciona o usuário para uma ação
específica.

117) Qual a única classe API que não precisa ser importada no código-fonte?
É a classe java.lang que permite implementar a classe "System.out" seguida do método "print". O Java importa essa
classe toda vez que um programa é iniciado.
118) O que é e o que faz o declaração "imput.nextInt()"?
Essa declaração, também chamada de expressão porque tem um valor associado (é um inteiro digitado pelo usuário),
é uma instrução de atribuição. A parte "nextInt" é um método do objeto "Scanner" para aguardar e inseir numa variável
(imput) um inteiro digitado pelo usário após apertar "enter" no teclado.

120) Qual erro ocorre se um usuário digitar um tipo de dado não solicitado?
Ocorre um "erro de lógica em tempo de execução" e o programa encerra. Um "tratamento de exceção" pode pode lidar
com esse erro e tornar o programa mais tolerante às falhas.

121) Como é definido o símbolo "=" num código Java?


Esse símbolo confere a uma variável à esquerda um valor vindo da direita da igualdade, por isso é um operador de
atribuição ao mesmo tempo que é considerado um operador binário porque tem dois operando, à direita e à esquerda. O
dado à direita desse operador sempre é avaliando antes da atribuição ser realizada.1

122) O que significa a pequena expressão "%d" e a expressão "sum is %d"?


"%d" é um especificador de formato denominado marcador de lugar para um valor "inteiro decimal" enquanto que "sum
is %d" é uma string de formato com um texto fixo "sum is" sendo o especificador "%d" que irá conferir um tipo à uma
variável delcarada após a vírgula em uma mesma declaração.

123) Como funcionam as classes API?


API significa Application Programming Interface (Biblioteca de Interface do Java ou Interface de Programação de
Aplicativo). É uma bilbioteca que contém classes organizadas em pacotes que agilizam a programação porque as classes
contém métodos de qualidade garantida que ficam ocultos durante a programação. Informar o pacote que detém a classe
durante a importação ajuda a encontrar as descrições de cada pacote e classe na documentação do Java API.

124)Quais os atributos de uma variável e o que ela representa?


Cada variável tem um tipo, um nome, um valor e um tamanho. O nome de uma variável representa sua posição na
memória e seu tamnho o espaço ocupado na mesma.

125) Porque armazenar uma variável na memória pode ser considerado um processo "destrutivo"?
Porque um dado na memória precisa ser apagado para dar lugar a outro dado, como uma variável criada durante a
execução de um programa.

126) Quais são as "regras de precedência" de operadores em java?


Os operadores aritmáticos segue a seguinte ordem de precedência: (*, /, %) , (+, -), =. Cada conjunto entre parênteses
contém operadores com precedência entre si por associatividade, ou seja, se associam esquerda para direita, com exeção
do operador de atribuição "=" onde sua atribuição associativa ocorre da direita para a esquerca.

127) Como fazer um computador tomar uma decisão baseada na linguagem Java?
Através de operadores de igualdade e relacionais que permitem o computador tomar decisões baseados em
resultados booleanos como "verdadeiro" ou "falso". Um dos métodos que usam operadores desses tipos é o método "if" em
Java que sempre inicia com essa palavra chave (if).

128) Quais são os operadores relacionais e de igualdade?


Operadores relacionais: >, <, ≤, ≥ / Operadores de igualdade: ≠ e =
Operadores relacionais tem nível de precedência maior que os de igualdade. E os operadores do mesmo conjunto,
relacionais ou de igualdade, tem mesmo nível de precedência associativa.

129) Quais são os tipos de operadores e sua associatividade?


Com associatividade da esquerda para a direita:
Multiplicativo: *, / e % .
Aditivo: + e - .
Relacional: <, >, <= e >=.
Igualdade: == e !=.
Atribuição: = (único operador com associatividade invertida, da direita para a esquerda).
130) O que sâo palavras chave em programação Java?
São termos reservados para uso pelo Java e possuem todas as letras minúsculascomo boolean, int, double, byte, char,
float (tipos de variáveis) e "if" (uma instrução para verificar uma condição).

131) Qual é uma das principais restrições de uma classe declarada como "public"?
Essa declaração deve ser salva em um arquivo .java com mesmo nome da classe.

Capítulo 3:

132) O que uma nova classe permite?


Cada nova classe torna-se um novo tipo que pode ser usado para definir variáveis e delinear objetos permitindo uma
linguagem extensível.

133) O que é um modificador de acesso?


A palavra "public" que antecede o nome de uma classe ou um método. Quando antecede a classe determina que o
arquivo .java deve ter o mesmo nome da classe. Caso contrário haverá um erro de compilação.

134) Como declarar identificadores?


Nomes de classes, métodos e variáveis são identificadores que devem ter seus nomes padronizados na "notação
camelo", sendo o nome da classe iniciada com letra maiúscula, tudo para melhorar a legibilidade.

135) Objetos tem variáveis que são cópias das variáveis da classe. Objetos são instâncias das classes.
136) As classes acessam e manipulam as instâncias de seus objetos.
137) Variáveis de instância são declaradas dentro do corpo da classe, mas fora do corpo do método.
138) Variáveis de instância podem ser manipuladas por cada um dos métodos da classe.

139) O modificador de acesso "public" permite que objetos de outras classes tenham acesso às variáveis e métodos
dessa classe "public", porém o modificador "private" permite que apenas métodos da mesma classe tenham acesso as
suas variáveis.
140) "Tipo de retorno" é declarado imediatamente antes do nome do método e define a qualidade dos dados
retornados ao chamador quando terminar a tarefa.

141) "Void" é um tipo de retorno que não permite ao método Scanner e nextInt retornarem valor.
142) Métodos set e get geralmente não retornam valores e por isso usam retorno do tipo "void".
143) Parâmetros são informações contidas entre parênteses na chamada de método.
144) Lista de parâmetros são parâmetros e seus respectivos tipos na chamada de método.
145) Variáveis locais são especificadas no corpo do método e somente acessíveis a ele.

146) Parâmetros locais são variáveis locais de um método.


147) Quando um método acaba, suas variáveis e parâmetros locais se perdem.
148) Um aplicativo Java tem Classe, nas classes há métodos, nos métodos há instruções.
149) O método "set" atribui valor de parâmetro a uma variável local na chamada de método.
150) A variável local se associa à variável de instância simulando-a através da palavra chave "this".

151) Usar "this" não é obrigatório, mas evita o acúmulo de nomes de identificadores.
152) Os métodos "set" e "get" configuram e obtem valores respectivamente.
153) this.name = name → Armazena nome e associa com sua variável de instância pela chave "this".
154) return name → Retorna valor de "name" ao chamador do método "set" ou "get".
155) Classe condutora (class driver) contém um método main que acessa métodos de outras classes.

156) new Account → Novo objeto da classe Account


157) Account myAccount = new Account () → Novo objeto da classe Account com variável myAccount do tipo Account.
158) new Account () → Parênteses associam-se ao nome da classe e representam chamada ao construtor.
159) Contrutor é semelhante a um método e é chamado implicitamente pelo operador new.
160) () do novo objeto → Inicializa as variáveis de instância de um objeto quando este é criado.
161) System.in inicializa o Scanner.
162) System.out é um objeto que tem métodos print, println e printf.
163) myAccount é um objeto que pode chamar os métodos get e set.
164) Variáveis locais devem ser iniciadas. Variáveis de instância começam com "null" por padrão.
165) javac *.java → Compila todos os arquivos código fonte .java no diretório de uma vez.

166) Diagramas UML permitem que especificar um sistema de maneira gráfica independente da linguagem.
167) Um diagrama de classe UML contém partes: Compartimentos superior, intermediário e inferior.
168) Compartimento superior: Nome da classe, centralizado e em negrito.
169) Compart. Intermed.: Contém o sinal do tipo, o tipo e o nome da variável de instância, nessa ordem.
170) Compart. Inferior: Contém as operações e métodos. Sinal + nome método + nome variável + tipo retorno.

171) "static" permite ao "main" executar o aplicativo sem criar o objeto da classe no qual o "main" está.
172) String e System são classes contidas no pacote java.lang do API importados implicitamente.
173) Classes compiladas num mesmo diretório formam um pacote padrão importado implicitamente.
174) Classes podem ser importadas junto com suas declarações: java.util.Scanner = new java.util.Scanner (System.in);
175) Declarar variáveis de instância com modificador private é "ocultar os dados ou informações".

176) Os tipos do Java são definidos como "primitivos" ou "por referência".


177) Os tipos primitivos são "int, double, float, byte, char, short e long (iniciados com 0) e boolean (false).
178) Classes que especificam objetos são do tipo "por referência" como o objeto Scanner.
179) Variáveis de instância com tipo "por referência" não iniciadas tem valor padrão "null".
180) Valor "null" em uma variável de instância "por referência" fazer uma "referência à nada".

181) Variáveis do tipo primitivo não fazem referência a métodos, por isso não os invocam.
182) Construtor permite uma inicialização personalizada de um objeto de uma classe.
183) O construtor deve ter nome da classe "condutora", mas valor inserido no método main.
184) O construtor deve associar sua variável local à variável de instância pela chave "this".
185) Construtores não retornam valores, por isso não possuem tipo de retorno, nem mesmo "void".

186) Construtores são geralmente "public", mas também "private".


187) Construtor padrão é carregado implicitamente quando não é criado para inicializar objetos.
188) Se for declarado um construtor, não será mais possível um construtor padrão para novo objeto criado.
189) Se o construtor criado não receber nenhum valor, é possível o Java carregar o construtor padrão.
190) Métodos que completam sua tarefa não retornam dados. Possuem tipo de retorno "void".

191) O método "get" permite aos clientes (classes explicitas) acessarem valores das variáveis.
192) Importante inicializar valor somente "se" obedecer regra (>0) no construtor. Senão valor padrão.
193) Para exibir valor do tipo double e float em saídas formadadas usamos o espedificador de formato %f.
194) Para determinar a quantidade de casas decimais em saídas formatadas declaramos % + .ncasas + f.
195) O truncamento do %f arredonda para a casa final mais próxima.

196) Variáveis locais podem ser inicializadas por valores inseridos pelo usuário (Scanner).
197) Haverá um erro de compilação quando for usar variável local não inicializada.
198) É sempre melhor haver um erro de compilação do que de execução.
199) displayNomeClasse é um método que recebe como parâmetro um objeto e permite chamadas.
200) JoptionPane é um pacote API que permite criar janelas de diálogo no Java.

201) import javax.swing.JOptionPane é o comando para importar JoptionPane e criar janelas de diálogo.
202) O pacote javax.swing contém muitos pacotes que permitem criar GUIs para aplicativos.
203) Estruturas de controle (Instruções de Controle) são de 3 tipos:
a) Instrução de Sequência:
i) Instruções realizadas sequencialmente, é o padrão de programação.
b) Instrução de Seleção (3 tipos);
i) Métodos if, if ...else e switch (seleção única, dupla e múltipla, respectivamente).
c) Instrução de Repetição (3 tipos);
i) Contém iterações ou instruções de loop;
ii) Métodos while, do ... while e for (pode ser for aprimorado);
iii) While (executa instruções 0+ vezes);
iiii) Do ... while (executa instruções 1+ vezes).

Você também pode gostar