VariaveisPrimitivas: sao as tradicionais, como int, float, double, etc. Uma vez declarado seu tipo, jamais pode ser modificado.Variaveis de referencia: sao usadas para se referirem a um objeto e seu tipo nunca pode ser modificado. Lembrando que podem se referir a um objeto que passa no teste E-um. Exemplo: Cachorro extends Animal{} posso referenciar minha variavel de referencia para Cachorro e para Animal ja que cachorro passa no teste E-UM. Class Animal{} Class Cachorro extends Animal{ public static void main(String[] args) { Animal s = new Cachorro(); } // minha variavel de referencia s, E-UM objeto cachorro do tipo Animal.Variaveis de instancia: Elas estao dentro de uma class, porem fora de qualquer metodo e sao inicializadas com o valor padrao.Arrays: Sao nada mais que objetos de um tipo que armazena elementos de um determinado tipo, mas no fundo sempre sao objetos. //instancie meu array que vai receber elemento do tipo int int array[] = new int[3]; int []outro;//aqui e declaracao e nao cria o array propriamente dito.Variaveis transient: a variavel e ignorada para serializacao do objeto. Transient = = ignore essa variavel. Somente aplicadas a variaveis de instancia.Variaveis volatile: aplicadas tambem somente a variaveis de instancia. Apenas public, protected, private e default (sem modificador de acesso) sao legais quando se declara construtores.Veja as questoes abaixo:1.Can a constructor be declared static? No.AnswersCorrect1Yes2No2.What is the expected output? 01.public class Profile {02. 03.private Profile(int w) { // line 104.System.out.println(w);05.}06. 07.public static Profile() { // line 508.System.out.println(10);09.}10. 11.public static void main(String args[]) {12.Profile obj = new Profile(50);13. 14.}15.}1Won't compile because of line (1) constructor can't be private210503504Won't compile because of line (5) constructor can't be staticConstrutores nao podem ser static.3.What is the expected output? 01.public class Profile {02. 03.private Profile(int w) { // line 104.System.out.println(w);05.}06. 07.public final Profile() { // line 508.System.out.println(10);09.}10. 11.public static void main(String args[]) {12.Profile obj = new Profile(50);13. 14.}15.}1Won't compile because of line (1) constructor can't be private2Won't compile because of line (5) constructor can't be final35041050Construtores nao podem ser final 4.What is the expected output? 01.import java.io.IOException;02. 03.class AirPlane {04.public AirPlane() throws IOException {05.System.out.print("AirPlane");06.throw new IOException();07.}08.}09. 10.class AirJet extends AirPlane {11.public AirJet() throws IOException {12.try {13.super();14.} catch (IOException e) {15.System.out.print("IOException is thrown in AirJet");16.}17.}18.}19. 20.public class Tester {21.public static void main(String args[]) {22.try {23.new AirJet();24.} catch (IOException e) {25.System.out.print("IOException is thrown in Tester");26.}27.}28.}1"AirPlaneIOException is thrown in AirJet" will be printed2"AirPlaneIOException is thrown in AirJetIOException is thrown in Tester" will be printed3"AirPlaneIOException is thrown in Tester" will be printed4Compile error Chamada super() deve ser a primeira instrucao no construtorAirJet 4.The following code contains one compilation error, where could it be? 01.public class Tester {02. 03.Tester() { } // line 104.static void Tester() { this(); } // line 2 05. 06.public static void main(String[] args) { // line 307.Tester(); // line 408.}09.}1At line 1, constructor Tester must be marked public like its class2At line 2, constructor call this() can only be called inside constructors3At line 3, compilation error, ambiguity problem, compiler cant determine wether a constructorTester or method Tester is calledUma chamada de construtor (super() ou this()) deve ser a primeira instrucao dentro