0

TH - Java Interview Questions #1

Samuel Costa
Samuel Costa

Com inúmeras vagas para desenvolvedor Java surgindo, o preparo (batman) é essencial para entrar nesse mercado. Esse é o primeiro de uma série de artigos que estão me ajudando a aumentar em conhecimento da linguagem e espero ajudar quem deseja aprender e se preparar para entrevistas de vagas para Dev Java. Sinta-se a vontade para comentar, corrigir e aprenda junto comigo!


Java- Questões de Entrevista #1


1- O que é JDK, JRE, JVM?

JDK (Java Development Kit): Responsável por transformar o código fonte .java em bytecode (.class)


JVM(Java Virtual Machine) Máquina virtual responsável por executar o bytecode .class


JRE (Java Runtime Environment) - Ambiente de Execução que fornece as bibliotecas padrões do Java para o JDK compilar o 

código e para a JVM executar o programa


Esses três componentes tornam o Java multiplataforma (capaz de ser executado em vários sistemas operacionais).


JVM é a responsável por executar os programas no formato bytecode, logo, desde que esteja instalada no sistema operacional

é capaz de interpretar e executar o programa em bytecode em qualquer s.o. Por executar bytecode, o programa não necessariamente

precisa ser escrito em java, apenas precisa ser convertido para bytecode.

Outro ponto importante é que a JVM é uma especificação, assim qualquer organização pode desenvolver sua versão JVM, desde que

siga as especificações para JVM


JRE provê os requisitos mínimos para executar um programa java, como uma JVM, os pacotes básicos e as ferramentas para executar

os programas java. 


JDK provê as ferramentas para o desenvolvimento de programas Java - Compilador, Depurador e o JRE. O JDK que fornece o 

programa javac.exe que compila os códigos .java em bytecode .class.


JDK>JRE>JVM, api core e ferramentas; JRE == Ferramenteas de desenvolvimento.


2 - Explique o que Abstração e Encapsulamento?

Abstração: Processo de Generalização, onde é fornecida uma implementação completa aplicável a diferentes tipos de dados

Pouco importa os dados recebidos, a implementação será sempre a mesma e não afetará outros módulos do programa.


Encapsulamento: oculta os detalhes da implementação , expondo apenas o necessário via métodos públicos 


Abstração e Encapsulamento andam juntas, implementando a forma de algo ser mantido ou criado,


3 - O que é Herança, Agregação e Associação


Herança: Caracteristícas que comuns a duas propriedadas. Em um sistema com o conceito de Herança uma classe filha pode herdar atributos e métodos

de uma classe pai.


Associação: Quando duas classes ou modelos se relacionam, ocorre quando uma classe possui um atributo de outra classe 


Agregação é um tipo de relacionamento parte-todo; algumas partes do relacionamento são realmente "partes" e ajudam a formar o "todo"


Composição e semelhante a agregação, porém um dos modelos relacionados não é independente; se um deixa de existir o outro também. O todo

é responsável pelo ciclo de vida da parte.


4 - O que é try-with resource no Java?

Antigamente o programador tinha de ter o cuidado de fechar blocos, conexões e tratar exceções corretamente (não que isso 

não é necessário atualmente), o que tornava o código extremamente verboso. Recursos e conexões não tratados/encerrados

podiam estourar erros e comprometer a segurança ou mesmo impedir a execução do código.

O try-with resources busca livrar o programador dessa responsabilidade fechando os recursos abertos.


A sintaxe do try-with-resources é assim:


1- A palavra-chave try

2- Um abre parênteses (.

3- Uma ou mais declarações de recursos separadas/terminadas por ponto-e-vírgula.

4- Um fecha parênteses ).

5- Um abre chaves {.

6- Várias instruções que são executadas dentro do bloco try.

7- Um fecha chaves }.

8- Opcionalmente um ou mais blocos catch.

9- Opcionalmente um bloco finally


Bibliografia:

https://pt.stackoverflow.com/questions/172909/como-funciona-o-try-with-resources


https://dicasdejava.com.br/qual-a-diferenca-entre-jdk-jre-e-jvm/


https://pt.stackoverflow.com/questions/172909/como-funciona-o-try-with-resources


0
0

Comentários (0)

Usar programação para otimizar e melhorar os sistemas para todos.

Brasil