Upload
angel-angel
View
7
Download
0
Embed Size (px)
Citation preview
Paratodasasperguntas,consideraraverso6.0doJava.
1. Escolhaaalternativacomumadeclaraoerrada:a) inti=32;b) longj=32000;c) floatf=45.0;d) doubled=45.0;
Arespostacorretaaletra(c).Issoporqueaoutilizar45.0oJavaporpadroirdeduzirqueonmeroumdouble(enoumfloat).Comoodoubletemumarepresentaode64bitseofloatde32bits,colocarfloatf=45.0umatentativadearmazenarumvalorde64bits(onmero45.0)emumavarivelde32bits(float).
Paracorrigiroproblemautilizamosfloatf=45.0F;(essaletraFdizqueo45.0umfloatenoumdouble).
2. Oqueacontecequandotentamoscompilareexecutarocdigoabaixo?
public class Test {static int age;public static void main (String args []) {
age = age + 1;System.out.println("The age is " + age);
}}
a) Compila,rodaenoapresentanadanasadapadrob) Compila,rodaeapresentanasadapadroTheageisc) Compila,rodaeapresentanasadapadroTheageis1d) Compilaederrodeexecuoquandotentamosexecutar.
Arespostacorretaaletra(c).AquiimportantesaberalgumascoisasdoJava:a)quandovocrodaessaclasseovalorinicialdeage0(ageumatributo)b)mtodosestticos(nonossocasoomtodomain)somentepodemacessaroutrosatributosoumtodosestticos.Assim,dedentrodomainpodemosacessaroatributoageporqueageesttico(static).
3. Qualalternativaseguinteacorreta?a) 128>>1d64b) 128>>>1d32c) 128>>>1d32d) 128>>1d64
Ooperadorde>>fazodeslocamentodeparadireitaemumaposio. Comoo128representadopor0000000010000000(utilizeisomente16bitsnoJava,intrepresentadocom32bits).Umdeslocamentoparadireitode1bitfariaoseguinte
0000000010000000>>1 0000000001000000
Ouseja,64.Umamaneirafcildefazerissoqueodeslocamentode1bitparaadireitaem
binriodivideonmeropor2.Umdeslocamentode1bitparaaesquerdamultiplicapor2.Somentecuidadocomobitmenossignificativo(maisaesquerda)eomaissignificativo(maisaesquerda).
4. Qualdasseguintesalternativasretornaverdadeiro(true)?a) John==johnb) john.equals(john)c) john=johnd) john.equals(newjohn)
Aprimeiraalternativanoretornatruepoissorealmentevaloresdistintos(deendereo).Asegunda alternativa utiliza o mtodo equals para comparar Strings. O mtodo equals semprecomparaovalordaString.Portantoa(b)retornatrue.
Aalternativa(c)realizaatributio(=)enocomparao(==).Altimaalternativaestsintaticamenteincorreta.
Nomais,emJava,asseguintesopestambmretornariamtrue:john==johne"john".equals(newString("john"))
5. Qualdasseguintesalternativascorreta?a) Objecto=newButton(A);b) Framef=newPanel();c) Booleanflag=true;d) Booleanflag=false;
AquideveseconhecerumpoucodalinguagemJava.Arespostacorretaa(a).Masvamosinicialmentedescartarasoutras.EmJava,quandoprogramamosinterfacesgrficasutilizamosumclasseFrame(ouaJFramenoSwing).MasaclassePanelnoumaFrame,portantealetrabestincorreta.EmJavaexisteotipoprimitivobooleaneaclasse(Wrapper)Boolean.Noentanto,aletra(c)esterradapoisovalortruenodeveriaestarentreaspas.Ocorretoseria:
Booleanflag=true;
Amesmaidiavaleparaaletra(d).Aletra(a)est corretaporqueemJavaTODASasclassessofilhas(ounetas,oubisnetas)deObject.Portanto,podemosfazer:
Objecto=newButton(A);
AindaqueButtonsejaumaclasseutilizadaparacriarinterfacesgrficas(GUI).
6. Oqueiracontecerquandocompilareexecutaroseguintecdigo?
class Whitney{ private Whitney(){ System.out.println("zero param Whitney"); } protected Whitney(int i){ System.out.println("int param Whitney"); }
public Whitney(String s){ System.out.println("String param Whitney"); }}public class Andhilary{ public static void main(String argv[]){ new Andhilary().go(); } public static void go(){ hoe(new String("beans")); } protected void hoe(String s){ System.out.println(s); }}
a) Errodecompilaooconstrutornopodeserprivado.b) Errodecompilaoomtodomainestdeclaradodeformaincorreta.c) Errodecompilaoporproblemasencontradosnomtodogo().d) Compila,executaeapresentanasadapadrobeans
Bom,apesardetermosmtodoschamandomtodosessanoumaquestocomplicada.Bem,inicialmente,podemosSIMterumconstrutordeumaclassecomvisibilidadeprivate.Esse'ocasodaclasseWhitney.
Quanto a classe Andhilary o mtodo main cria um objeto da classe Andhilary (newAndhilary)echamaomtodogo(().Esseobjetosemnome(newAndhilary())chamadodeobjetoannimo(porquenofizemosalgocomoAndhilaryQ=newAndHilary())
Assim,outraformadeprogramaromtodomain()seria:public class Andhilary{ public static void main(String argv[]){ Andhilary Q = new Andhilary();
Q.go(); }
Oproblemaestomtodogo().Eleummtodoestdo(static)Eleatpodeserchamadopormeiodeinstnciasdaclasse(nonossocasopormeiodainstnciaannimanewAndhilary())masomtodogo()chamaomtodohoeinternamente.Omtodohoeestticoenopodeserchamadopelomtodogo().
Portanto,aalternativacorretaa(c).
7. Oqueiracontecerquandocompilareexecutaroseguintecdigo?
public class Phr{ public static void main(String argv[]){ System.out.print(Integer.parseInt("10",10)); System.out.print(Integer.parseInt("10")); System.out.print(Short.parseShort("10")); System.out.print(new Boolean(true)); }
}a) ErrodecompilaoporterchamadoomtodoparseIntdemaneiraincorreta.b) Errodecompilao,poisoconstrutorBooleanrequeraspasenvoltadetrue.c) Compila,executaeapresentanasada1000000000001010trued) Compila,executaeapresentanasada101010true
Arespostaaletra(d).Primeiroimportanteobservarqueocdigousaprintenoprintln.
OcomandoSystem.out.print(Integer.parseInt("10",10));
converteaString10dabase10(decimal)parainterirooqueresultaem10.Aquicabeumaobservao:
Porexemplo:System.out.print(Integer.parseInt("11",2));
ResultanaconversodaString11nabase2(binrio)parainteriro.Assim,(11)23,portantooresultadodaconverso3.
Jocomando:System.out.print(Integer.parseInt("10"));
ConverteaString10parainteiro.Opadroutilizarabase10.Portantoresultaem10
novamente.Oterceirocomando:System.out.print(Short.parseShort("10"));
ConverteaString10parashort(umtipoprimitivoemJavauminteirocomum16bits).Portanto,oresultado10(obviamente,podemosrepresentaro10com16bitscasocontrrio,teramosumerro).
Finalmente,ocomando: System.out.print(newBoolean(true));
imprimenatelaoobjetoBooleancomvalortrue.Oresultadotrue.
Concatenandoasrespostas(lembrandoqueusamosoprintenoprintln)teremos101010true.
8. Oqueaconteceuquandotentamoscompilareexecutaroseguintecdigo?
public class Anova{ public static void main(String argv[]){ Anova an = new Anova(); an.go(); } public void go(){ int z=0; for(int i=0;i
System.out.println(z); } for(;;){ System.out.println("go"); }
}}
a) Errodecompilaoporqueoprimeirolaoforestincorreto.b) Errodecompilaoporqueosegundolaoforestincorreto.c) Compila,executaeapresentanasadapadroosnmerosde0a9seguidopelapalavra
go.d) Compila,executaeapresentanasadapadroosnmerosde0a9seguidoporum
nmeroinfinitodepalavrasgo.
Nohnadadeerradonessecdigo.Portanto,elecompilaeexecuta.Portanto,descartamosasalternativas(a)e(b).Agoradevemosentenderasintaxedolao
for(;;)
IssofazumlaoINFINITO,poisacondioparadarcontinuidadenolao(aqueseencontranomeiodofor)noexistee,portanto,consideradaTRUE!
Portantoaalternativacorretaaletra(d).
9. Oqueiraconteceraotentarmoscompilareexecutaroseguintecdigo?
import java.util.*;public class VecOrder{ public static void main(String argv[]){ new VecOrder(); } VecOrder(){ Vector child = new Vector(); child.add("harry"); child.add("molly"); child.add("steven"); child.add("helen"); Collections.sort(child); for(String element : child){ System.out.print(element); } }}
a) ErrodecompilaoporproblemasnacriaodeumobjetodaclasseVector.b) Compilamasderrodeexecuo,poisomtodoCollections.sortpodeapenasordernar
objetosdaclasseList.c) Compila,executaaapresentanatela:HarryMollyStevenHelend) Nenhumadasanteriores.
Ocdigoprincipal(main)criaumobjetodaclasseatual(VecOrder).Portanto,oconstrutordaclassechamado.Nessecaso,oconstrutorcriaumVectordeobjetosString(Vector)e,
emseguida,adiciona4elementosnomesmo.Finalmente,aochamarCollections.sort(child);oVectorchildordenado.AordenaodeStringsfeitanaordemaltabtica,eportanto,oresultadoserharryhelenmollysteven.
Observarqueaalternativa(c)esterradapoisasprimeirasletrasdosnomesestoemcaixaalta.Assim,arespostacorretaaletra(d).
10.Considereoseguintecdigo.
public class Inkberrow{// aqui
}
Quaisdasalternativasseguintespoderiamsercolocadasdeformacorretanolugardocomentrio//aqui?IpublicclassAmbridge{}IIprivateclassAmbridge{}IIIstaticclassAmbridge{}IVpublicvoidclassAmbridge{}
a) somenteaIb) somenteaIeIIc) somenteI,IIeIIId) somenteI,IIIeIV
possvelcriarclassesdentrodasprpriasclasses.essasclassesinternassochamadasdeinnerclass.Vocpodecriarclassesinternasnormalmentecompublic,protected,privatenormalmente.Comoaclasseinterna,elaaindapodeteromodificadorstatic.TodasassintaxesdaI,IIeIIIestocorretas.AIVesterradaporusarvoid(queumtipoderetornoutilizadosomenteparamtodos).Portanto,aalternativacorretaaletra(c).
11.QualalternativaaseguirmelhordescreveoqueumJavaMap?a) Umvetorpararepresentaogeogrficasem2Db) Umaclassequecontmelementosdevetornicosc) Umaclassequecontmparesdenmerosnicosd) Umainterfacequegarantequeasclassesqueaimplementamnopodemcontem
duplicatas.
UmMapemJavaumaINTERFACEquegarantequeoselementosqueaimplementamnotenhamelementorepetidos.Ouseja,letra(d).
Verrefernciahttp://download.oracle.com/javase/1.4.2/docs/api/java/util/Map.html
12.Oqueacontecesetentarmosexecutarecompilaroseguintecdigo?
public class Dsr{ public static void maim(String argv[]){ Dsr d = new Dsr();
int _out = 19; d.scdig(_out); System.out.println(_out); } public void scdig(int _out){ _out= _out +10; _out=_out++; }}
a) Errodecompilaoporqueavriavel_outcomeacom_b) Compila,executaeapresentanasadapadro19c) Compila,executaeapresentanasadapadro29d) Nenhumadasanteriores.
AquidevemosterumaatenoENORME.Omtododaclasseomaimenomain.Portanto,essaclassecompilasemproblemasMASNOEXECUTA!!Portanto,alternativa(d).
SEEXECUTASSE,oresultadoapresentadoseria19.IssoporqueomtodoscdigrecebeumtipoprimitivoetiposprimitivosemJavasopassadoscomovalor.Issoquerdizerquesehouverqualquermodificaonovalordavariveldentrodomtodonomodificaovalororiginal(foradomtodo).
OsobjetosemJavasopassadosporreferncia.
13.Considereoseguintecdigo.QualalternativaapresentaumnomedemtododeacordocomasconvenesdoJavaBeans?Onomenomtodosercolocadonolugardocomentrio/*mtodoaqui*/.
class Person{ private int Age; /* mtodo aqui */ { return Age; }}
a) privateintthisAge()b) publicintthisage()c) publicintgetAge()d) publicintsetAge()
Nocaso a implementaodomtodo umreturn Age (retorna o valor do atributo) e,portanto,umget.PorconvenoonomeserpublicintgetAge(),ouseja,letra(c).Ainda,valeressaltarqueseoatributofosseage(enoAge)onomedomtodotambmseriagetAge().
14.Oqueacontecesevoctentarcompilareexecutaroseguintecdigo?
class MyWrapper { private Integer iw;
MyWrapper(int i){ iw = new Integer(i); } public int getInt(){ return iw.intValue(); } public double getDouble(){ return iw.doubleValue(); }}
public class Scd{ public static void main(String argv[]){ Scd sc = new Scd(); sc.uphampton("11"); } public void uphampton(String s){ int i = Integer.parseInt(s); MyWrapper mw = new MyWrapper(i); System.out.println(mw.getDouble()); }}
a) Compila,executaeapresentanatelao11.0b) Compila,executaeapresentanatelao11c) Errodecompilao,aclasseMyWrapperestcomproblemas.d) Errodeexecuo
Apesardaquantidadedecdigo,noherrosaqui.AclasseIntegerumaclasseWrapper,ouseja,elaservepararepresentarotipoprimitivointnaformadeObjetosJava.Comisso,elafornecealgunsrecursosinteressantescomoporexemplo,retornarovalorinteiroarmazenadonoObjetonaformadedoublepormeiodomtododoubleValue.Observeocdigo
publicdoublegetDouble(){returniw.doubleValue();}
AclasseMyWrappercriadaapenasutilizaosserviosdaInteger.
ObservandoomtodomaindaclasseScd,elechamaomtodouphamptonpassandocomoparmetroaString11.DentrodomtodouphamptonconvertemosaStringparainteiro(Integer.parseInt(s))e,emseguida,criamosumobjetoMyWrapperechamaomtodogetDouble().EssemtodochamaodoubleValuedaclasseInteger.Assim,oresultadoseronmero11noformatodouble,ouseja,11.0.Arespostacorretaaletra(a).
15.Qualoresultadoaosecompilarerodaroseguintecdigo?
public class Test {static int total = 10;public static void main (String args []) {
new Test();}
public Test () {System.out.println("In test");System.out.println(this);int temp = this.total;if (temp > 5) {
System.out.println(temp);}
}}
a) Aconteceumerrodecompilaob) Aconteceumerrodeexecuoc) Ovalor10umdosvaloresapresentadosnasadapadrod) Ovalor9umdosvaloresapresentadosnasadapadro
Ocdigoprincipal(main)apenascriaumobjetoannimodaclasseatual(Test).PortantooconstrutordaclasseTestchamado.OcdigodoconstrutorinicialmenteapresentanatelaaStringIntest.Emseguida,aoimprimirthis,elairapresentarnatelaoobjetoTestcriado.AofazerissooJavairchamaromtodotoString()daclasseTest,ouseja,
System.out.println(this);amesmacoisaque
System.out.println(this.toString());
ComoaclasseTestnopossuiomtodotoString(),omtododaclassepaichamado,nestecaso,omtodotoString()daclasseObject(queaclassepaideTest)apresentanatelaonomedaclasseseguidode@seguidodoendereodememriadoobjeto.
Finalmente,comotemprecebeovalordethis.total,ovalordetempser10eomesmoserimpressonatela.UmaPOSSVELsadadessecdigoseria:
IntestTest@19f953d10
Assim,arespostacorretaaletra(c)