{"id":622,"date":"2019-12-09T10:39:05","date_gmt":"2019-12-09T13:39:05","guid":{"rendered":"https:\/\/micheladrianomedeiros.com.br\/blog\/?p=622"},"modified":"2019-12-09T10:39:06","modified_gmt":"2019-12-09T13:39:06","slug":"aprendendo-java-para-certificacao-10","status":"publish","type":"post","link":"https:\/\/micheladrianomedeiros.com.br\/blog\/aprendendo-java-para-certificacao-10\/","title":{"rendered":"Aprendendo Java Para Certifica\u00e7\u00e3o #10"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Finalize()<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Java permite objetos\nimplementar um m\u00e9todo chamado finalize(). Este m\u00e9todo \u00e9 chamado se o garbage\ncollector tentar coletar o objeto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se o garbage collector n\u00e3o\nexecutar, o m\u00e9todo n\u00e3o \u00e9 chamado. Se o garbage collector falhar ao coletar o\nobjeto e tentar novamente mais tarde, o m\u00e9todo n\u00e3o \u00e9 chamado na segunda vez.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na pr\u00e1tica, isto significa que\n\u00e9 altamente recomendado n\u00e3o utilizar em um projeto real. Para o exame apenas\nlembre que o m\u00e9todo finalize n\u00e3o \u00e9 chamado duas vezes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Resumindo: o m\u00e9todo finalize\nevita que o objeto seja exclu\u00eddo pelo o garbage collector.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este c\u00f3digo n\u00e3o produz nenhuma sa\u00edda quando executado.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Finalizer {\n\tprotected void finalize() {\n\t\tSystem.out.println(\"Calling finalize\");\n\t}\n\tpublic static void main(String&#91;] args) {\n\t\tFinalizer f = new Finalizer();\n\t}\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e3o mostra nenhuma sa\u00edda, porque\nh\u00e1 a necessidade de executar o garbage collector antes do m\u00e9todo finalize().<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enquanto f \u00e9 eleg\u00edvel para o garbage\ncollection, o Java est\u00e1 executando outras coisas mais importantes do que\nexecutar o garbage collector a todo momento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para o exame voc\u00ea precisa saber que o finalize() executa nenhuma ou uma vez. Veja o seguinte c\u00f3digo (c\u00f3digo 1):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Finalizer {\n\tprivate static List objects = new ArrayList();\n\tprotected void finalize() {\n\t\tobjects.add(this); \/\/ n\u00e3o fa\u00e7a isto\n\t}\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Lembre-se, finalize() s\u00f3 executa\nquando o objeto \u00e9 eleg\u00edvel para o garbage collection. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O problema no c\u00f3digo 1 \u00e9 que o\nobjeto n\u00e3o \u00e9 eleg\u00edvel para o garbage collection, porque uma vari\u00e1vel est\u00e1tica\npermanece no escopo (ativa) at\u00e9 a finaliza\u00e7\u00e3o do sistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O Java \u00e9 esperto o suficiente\npara saber se deve cancelar a tentativa de coletar o objeto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Suponhamos que um objeto esteja\nnulo. Agora sim podemos finalmente remover o objeto da mem\u00f3ria. O Java vai lembrar\nque j\u00e1 executou o finalize() uma vez e n\u00e3o executar\u00e1 novamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Entendendo os Operadores Java<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um operador Java \u00e9 um s\u00edmbolo\nespecial que pode ser aplicada a vari\u00e1veis, valores ou literais.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">H\u00e1 v\u00e1rios operadores no Java:\nun\u00e1rio, bin\u00e1rio e tern\u00e1rio. Este tipo de operadores pode ser aplicado a um, dois\nou tr\u00eas operandos, respectivamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Operadores Java n\u00e3o necessariamente\ns\u00e3o lidos da esquerda para direita. Por exemplo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int y = 4;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">double x = 3 + 2 * &#8211;y;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No exemplo, voc\u00ea deve primeiro\ndecrementar o y para 3, e depois multiplicar o resultado por 2, e finalmente\nadicionar 3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se n\u00e3o houver par\u00eanteses na express\u00e3o, o Java ir\u00e1 seguir o que est\u00e1 na tabela 2.1. Se dois operadores t\u00eam a mesma prioridade, o Java ir\u00e1 executar da esquerda para direita.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"516\" height=\"440\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/preced\u00eancia-de-operadores.png\" alt=\"\" class=\"wp-image-623\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/preced\u00eancia-de-operadores.png 516w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/12\/preced\u00eancia-de-operadores-300x256.png 300w\" sizes=\"auto, (max-width: 516px) 100vw, 516px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Finalize() Java permite objetos implementar um m\u00e9todo chamado finalize(). Este m\u00e9todo \u00e9 chamado se o garbage collector tentar coletar o objeto. Se o garbage collector n\u00e3o executar, o m\u00e9todo n\u00e3o \u00e9 chamado. Se o garbage collector falhar ao coletar o objeto e tentar novamente mais tarde, o m\u00e9todo n\u00e3o \u00e9 chamado na segunda vez. Na [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":144,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38,1],"tags":[],"class_list":["post-622","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-certificacao","category-java"],"_links":{"self":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/comments?post=622"}],"version-history":[{"count":1,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/622\/revisions"}],"predecessor-version":[{"id":624,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/622\/revisions\/624"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media\/144"}],"wp:attachment":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media?parent=622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/categories?post=622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/tags?post=622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}