{"id":3004,"date":"2022-07-08T11:25:57","date_gmt":"2022-07-08T11:25:57","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/9-mistakes-to-avoid-while-programming-in-java\/"},"modified":"2026-03-09T13:13:14","modified_gmt":"2026-03-09T13:13:14","slug":"9-erros-a-evitar-ao-programar-em-java","status":"publish","type":"post","link":"https:\/\/thecodest.co\/pt\/blog\/9-mistakes-to-avoid-while-programming-in-java\/","title":{"rendered":"9 erros a evitar ao programar em Java"},"content":{"rendered":"<p><strong><a href=\"https:\/\/thecodest.co\/pt\/blog\/top-programming-languages-to-build-e-commerce\/\">Java<\/a><\/strong> \u00e9 uma l\u00edngua popular com uma posi\u00e7\u00e3o estabelecida no mundo da <strong><a href=\"https:\/\/thecodest.co\/pt\/blog\/8-key-questions-to-ask-your-software-development-outsourcing-partner\/\">desenvolvimento de software<\/a><\/strong>. \u00c9 uma linguagem de programa\u00e7\u00e3o forte e vers\u00e1til. Cerca de 3 mil milh\u00f5es de dispositivos em todo o mundo funcionam com <strong>Java<\/strong> e, por conseguinte, foram cometidos pelo menos 3 mil milh\u00f5es de erros ao utiliz\u00e1-lo. Neste artigo, vamos concentrar-nos em como n\u00e3o cometer mais nenhum.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Obter uma exce\u00e7\u00e3o de modifica\u00e7\u00e3o simult\u00e2nea<\/h2>\n\n\n\n<p>Este \u00e9, de longe, o erro mais comum com que me deparei. No in\u00edcio da minha carreira, tamb\u00e9m o cometi muitas vezes. Este erro ocorre quando se tenta modificar a cole\u00e7\u00e3o enquanto se itera atrav\u00e9s dela. O <code>ConcurrentModificationException<\/code> tamb\u00e9m pode ser levantada quando se trabalha com v\u00e1rias threads mas, por agora, vamos concentrar-nos num cen\u00e1rio b\u00e1sico.<\/p>\n\n\n\n<p>Suponha que tem um <code>Cole\u00e7\u00e3o<\/code> de utilizadores, alguns dos quais s\u00e3o adultos e outros n\u00e3o. A sua tarefa \u00e9 filtrar as crian\u00e7as.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"java\" class=\"language-java\">para (Utilizador : utilizadores) {\n\n   se (!user.isAdult()) {\n\n       users.remove(user);\n\n   }\n\n}\n<\/code><\/pre>\n\n\n\n<p>Executar o j\u00e1 referido <a href=\"https:\/\/thecodest.co\/pt\/dictionary\/what-is-code-refactoring\/\">c\u00f3digo<\/a> acaba por obter <code>ConcurrentModificationException<\/code>. Onde \u00e9 que err\u00e1mos? Antes de terminar a nossa itera\u00e7\u00e3o, tent\u00e1mos remover alguns elementos. \u00c9 isso que desencadeia a exce\u00e7\u00e3o.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como \u00e9 que o posso evitar?<\/h3>\n\n\n\n<p>H\u00e1 algumas abordagens que podem ajudar nesse caso. Em primeiro lugar, tirar partido de <strong>Java<\/strong> 8's goodness - <code>Fluxo<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"java\" class=\"language-java\">List adults = users.stream()\n\n       .filter(User::isAdult)\n\n       .toList();\n<\/code><\/pre>\n\n\n\n<p>Utilizar um <code>Predicado<\/code> fizemos o inverso da condi\u00e7\u00e3o anterior - agora determinamos os elementos a incluir. A vantagem desta abordagem \u00e9 que \u00e9 f\u00e1cil encadear outras fun\u00e7\u00f5es ap\u00f3s a remo\u00e7\u00e3o, por exemplo <code>mapa<\/code>. Mas, por amor de Deus, n\u00e3o tentem fazer algo como o que se segue:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"java\" class=\"language-java\">utilizadores.stream()\n\n       .filter(v -&gt; !v.isAdult())\n\n       .forEach(users::remove);\n<\/code><\/pre>\n\n\n\n<p>Tamb\u00e9m pode acabar no <code>ConcurrentModificationException<\/code> porque est\u00e1 a modificar a fonte do fluxo. Tamb\u00e9m pode dar origem a mais algumas excep\u00e7\u00f5es que n\u00e3o ser\u00e3o f\u00e1ceis de depurar.<\/p>\n\n\n\n<p>Para resolver <code>ConcurrentModificationException<\/code> num cen\u00e1rio de thread \u00fanico. pode tamb\u00e9m passar a utilizar diretamente <code>Iterador<\/code> e a sua <code>remover()<\/code> ou pode simplesmente n\u00e3o remover elementos durante a itera\u00e7\u00e3o. No entanto, a minha recomenda\u00e7\u00e3o \u00e9 utilizar o m\u00e9todo <code>Fluxos<\/code> - estamos em 2022.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Armazenamento de palavras-passe como cadeias de caracteres<\/h2>\n\n\n\n<p>Como estou cada vez mais envolvido com a ciberseguran\u00e7a, n\u00e3o estaria a ser fiel a mim pr\u00f3prio se n\u00e3o mencionasse pelo menos um <strong>Erro de Java<\/strong> que pode levar a um problema de seguran\u00e7a. Armazenar as palavras-passe recebidas dos utilizadores numa <code>Cordas<\/code> objeto \u00e9 exatamente algo de que se deve ter medo.<\/p>\n\n\n\n<p>O problema (ou talvez a vantagem) de <code>Cordas<\/code> \u00e9 o facto de ser imut\u00e1vel. No mundo cibern\u00e9tico, este facto cria uma amea\u00e7a potencial, uma vez que n\u00e3o \u00e9 poss\u00edvel apagar o valor de um valor criado uma vez <code>Cordas<\/code> objeto. Um atacante que tenha acesso \u00e0 mem\u00f3ria do seu computador pode encontrar a\u00ed palavras-passe em texto simples.<\/p>\n\n\n\n<p>Em segundo lugar, as cadeias de caracteres em <strong>Java<\/strong> s\u00e3o internados pela JVM e armazenados no espa\u00e7o PermGen ou no espa\u00e7o heap. Quando se cria um <code>Cordas<\/code> ele \u00e9 armazenado em cache e s\u00f3 \u00e9 removido quando o Coletor de Lixo come\u00e7a a fazer seu trabalho. N\u00e3o pode ter a certeza de quando a sua palavra-passe \u00e9 eliminada do conjunto de String, uma vez que o Coletor de Lixo funciona de forma n\u00e3o determin\u00edstica.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como evit\u00e1-lo?<\/h3>\n\n\n\n<p>A abordagem recomendada \u00e9 utilizar <code>char[]<\/code> ou, melhor ainda, a biblioteca que suporta o armazenamento de senhas como <code>char[]<\/code>, por exemplo<a href=\"https:\/\/github.com\/Password4j\/password4j\">Palavra-passe4j<\/a>. O <code>char[]<\/code> \u00e9 mut\u00e1vel e pode ser modificado depois de ter sido inicializado. Depois de processar uma senha, voc\u00ea pode simplesmente apagar o <code>char[]<\/code> escrevendo caracteres aleat\u00f3rios no array de senhas. No caso de os atacantes terem acesso \u00e0 mem\u00f3ria do computador, apenas ver\u00e3o alguns valores aleat\u00f3rios que n\u00e3o t\u00eam nada a ver com as palavras-passe dos utilizadores.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. (Des)tratamento das excep\u00e7\u00f5es<\/h2>\n\n\n\n<p>Os programadores novatos e tamb\u00e9m os mais avan\u00e7ados n\u00e3o sabem como lidar corretamente com as excep\u00e7\u00f5es. O seu principal pecado nesta mat\u00e9ria \u00e9 simplesmente ignor\u00e1-las. NUNCA \u00c9 UMA BOA ABORDAGEM.<\/p>\n\n\n\n<p>Infelizmente, n\u00e3o podemos oferecer-lhe uma solu\u00e7\u00e3o que se adapte a todas as situa\u00e7\u00f5es. <code>Exce\u00e7\u00e3o<\/code>s\" com que se depara. \u00c9 preciso pensar em cada caso separadamente. No entanto, podemos dar-lhe alguns conselhos sobre como come\u00e7ar a trabalhar nesse tema.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como \u00e9 que o posso evitar?<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\n<p>Ignorar <code>Exce\u00e7\u00e3o<\/code>s nunca \u00e9 uma boa pr\u00e1tica. <code>Exce\u00e7\u00e3o<\/code>s s\u00e3o introduzidos por alguma raz\u00e3o, pelo que n\u00e3o os deve ignorar.<\/p>\n<\/li>\n\n\n\n<li>\n<p><code>try {...} catch(Exception e) { log(e); }<\/code> raramente \u00e9 a abordagem correta para <code>Exce\u00e7\u00e3o<\/code> manuseamento.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Arremesso <code>Exce\u00e7\u00e3o<\/code>mostrar uma caixa de di\u00e1logo de erro ao utilizador ou, pelo menos, acrescentar uma mensagem exaustiva ao registo.<\/p>\n<\/li>\n\n\n\n<li>\n<p>Se deixou as excep\u00e7\u00f5es por tratar (o que n\u00e3o deve fazer), pelo menos explique-se no coment\u00e1rio.<\/p>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">4. Utilizar o nulo<\/h2>\n\n\n\n<p>Infelizmente, \u00e9 bastante comum encontrar uma fun\u00e7\u00e3o Java que, em alguns casos, retorna um <code>nulo<\/code>. O problema \u00e9 que essa fun\u00e7\u00e3o obriga o seu cliente a efetuar uma verifica\u00e7\u00e3o de nulidade no resultado. Sem isso, a fun\u00e7\u00e3o <code>NullPointerException<\/code> \u00e9 lan\u00e7ado.<\/p>\n\n\n\n<p>A outra coisa \u00e9 passar um <code>nulo<\/code> valor. Porque \u00e9 que pensou nisso? Nesse caso, a fun\u00e7\u00e3o tem de efetuar uma verifica\u00e7\u00e3o de nulidade. Quando se utilizam bibliotecas de terceiros, n\u00e3o se pode alterar o interior das fun\u00e7\u00f5es. E depois?<\/p>\n\n\n\n<p>Mais importante ainda, outros programadores que l\u00eaem o seu c\u00f3digo e v\u00eaem que passa <code>nulo<\/code> provavelmente ficar\u00e1 desorientado quanto \u00e0 raz\u00e3o de ter escolhido uma forma t\u00e3o bizarra para implementar a sua funcionalidade.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como \u00e9 que o posso evitar?<\/h3>\n\n\n\n<p>N\u00e3o devolver um <code>nulo<\/code> valor! Nunca! Caso a sua fun\u00e7\u00e3o devolva algum tipo de <code>Cole\u00e7\u00e3o<\/code>, pode simplesmente devolver um <code>Cole\u00e7\u00e3o<\/code>. Se o usu\u00e1rio lida com objetos individuais, pode utilizar o padr\u00e3o de projeto de objeto nulo. Desde que <strong>Java<\/strong> 8, \u00e9 implementado como <code>Opcional<\/code>. Para al\u00e9m disso, a abordagem menos recomendada consiste em apresentar um <code>Exce\u00e7\u00e3o<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Concatena\u00e7\u00e3o de cadeias de caracteres pesadas<\/h2>\n\n\n\n<p>Esperemos que n\u00e3o seja um erro que cometas, uma vez que \u00e9 a pergunta de entrevista mais popular (ou talvez a segunda mais popular depois do FizzBuzz). Como j\u00e1 deves saber, uma <code>Cordas<\/code> \u00e9 imut\u00e1vel em <strong>Java<\/strong> - uma vez criada, n\u00e3o pode ser modificada. Assim, a concatena\u00e7\u00e3o de <code>Cordas<\/code> significa uma grande quantidade de aloca\u00e7\u00e3o de mem\u00f3ria desnecess\u00e1ria. Concatenar <code>Cordas<\/code> requer a cria\u00e7\u00e3o de um ficheiro tempor\u00e1rio <code>StringBuilder<\/code> e alterando-o novamente para uma cadeia de caracteres. Por conseguinte, esta solu\u00e7\u00e3o n\u00e3o \u00e9 de todo adequada se quisermos combinar um grande n\u00famero de caracteres.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como \u00e9 que o posso evitar?<\/h3>\n\n\n\n<p>Para resolver esse problema, utilize <code>StringBuilder<\/code>. Cria um objeto mut\u00e1vel que pode ser facilmente manipulado. \u00c9 claro que voc\u00ea sempre pode usar <code>StringBuffer<\/code> se o seu <a href=\"https:\/\/thecodest.co\/pt\/dictionary\/why-do-projects-fail\/\">projeto<\/a> \u00e9 utilizado num contexto concorrente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. N\u00e3o utilizar as solu\u00e7\u00f5es existentes<\/h2>\n\n\n\n<p>Quando se desenvolve software, conhecer as bases da linguagem em que se escreve \u00e9 uma obriga\u00e7\u00e3o, mas n\u00e3o \u00e9 suficiente. Muitos dos problemas algor\u00edtmicos com que se deparou durante a implementa\u00e7\u00e3o de uma nova funcionalidade j\u00e1 foram resolvidos por outra pessoa. J\u00e1 vi demasiadas vezes algu\u00e9m implementar um algoritmo de seguran\u00e7a a partir do zero. Esta abordagem \u00e9 propensa a erros. Uma pessoa n\u00e3o pode testar exaustivamente uma solu\u00e7\u00e3o t\u00e3o complexa. O conhecimento coletivo da <a href=\"https:\/\/thecodest.co\/pt\/dictionary\/how-to-lead-software-development-team\/\">equipa<\/a> que consiste em programadores de n\u00edvel m\u00e9dio avan\u00e7ado \u00e9 quase sempre melhor do que a grandeza de um prod\u00edgio <strong><a href=\"https:\/\/thecodest.co\/pt\/dictionary\/java-developer\/\">Programador Java<\/a><\/strong>. N\u00e3o \u00e9 necess\u00e1rio reinventar a roda - basta adaptar a solu\u00e7\u00e3o existente \u00e0s suas necessidades.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como \u00e9 que o posso evitar?<\/h3>\n\n\n\n<p>Tente procurar bibliotecas que abordem o problema em que est\u00e1 a trabalhar. Tente encontrar solu\u00e7\u00f5es semelhantes. Muitas das bibliotecas que est\u00e3o dispon\u00edveis na <a href=\"https:\/\/thecodest.co\/pt\/blog\/find-your-ideal-stack-for-web-development\/\">web<\/a> s\u00e3o gratuitos e foram aperfei\u00e7oados e testados por programadores experientes e por toda a comunidade Java. N\u00e3o tenha medo de os utilizar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. N\u00e3o encontrar tempo suficiente para escrever testes<\/h2>\n\n\n\n<p>\u00c9 tentador acreditar que o nosso c\u00f3digo funcionar\u00e1 sempre na perfei\u00e7\u00e3o. N\u00e3o escrever testes para o c\u00f3digo \u00e9 o pior pecado de <strong>Java <a href=\"https:\/\/thecodest.co\/pt\/blog\/hire-software-developers\/\">programadores de software<\/a><\/strong>. Muitos dos <a href=\"https:\/\/thecodest.co\/pt\/blog\/why-us-companies-are-opting-for-polish-developers\/\">n\u00f3s<\/a> preferem testes manuais e explorat\u00f3rios em vez de testes unit\u00e1rios, o que \u00e9 uma loucura.  Porqu\u00ea perder tempo a escrever testes quando se pode concentrar em fornecer o melhor c\u00f3digo do mundo para o seu projeto, que DEFINITIVAMENTE n\u00e3o tem bugs?&amp;ltjoke&gt;. Acontece que a realidade \u00e9 brutal e n\u00e3o podemos fornecer c\u00f3digo de alta qualidade sem escrever testes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como \u00e9 que o posso evitar?<\/h3>\n\n\n\n<p>Deve sempre preparar testes para o seu c\u00f3digo. Eu sei que a abordagem TDD n\u00e3o \u00e9 t\u00e3o f\u00e1cil de manter, mas pelo menos deve fornecer testes que cubram todas as condi\u00e7\u00f5es em que o seu c\u00f3digo pode ser executado. Isto inclui testar situa\u00e7\u00f5es excepcionais. Os testes unit\u00e1rios s\u00e3o necess\u00e1rios. Tem de os fornecer para todas as funcionalidades do seu projeto se quiser garantir que o seu c\u00f3digo \u00e9 f\u00e1cil de refactorizar e extens\u00edvel em futuros desenvolvimentos.&nbsp;<\/p>\n\n\n\n<p>Mais uma coisa. Mantenham um elevado n\u00edvel de qualidade do vosso c\u00f3digo de teste - valer\u00e1 a pena. Este \u00e9 o conselho do tio Bob e eu concordo plenamente com ele.<\/p>\n\n\n\n<p>Al\u00e9m disso, n\u00e3o se esque\u00e7a de outros tipos de testes. Os testes de integra\u00e7\u00e3o s\u00e3o algo que deve considerar em todos os seus projectos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8. Esquecer os modificadores de acesso<\/h2>\n\n\n\n<p>Privado e p\u00fablico, certo? Como \u00e9 que nos podemos esquecer deles? Acontece que h\u00e1 mais. Quando come\u00e7ou a aprender <strong>Java<\/strong>No in\u00edcio do ano passado, o utilizador aprendeu definitivamente sobre os modificadores de acesso protegido. Estes podem ser \u00fateis nalguns casos, pelo que vale a pena conhecer a sua exist\u00eancia.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/thecodest.co\/pt\/blog\/the-right-way-to-find-top-java-developers\/\">Programadores Java<\/a><\/strong> muitas vezes parecem esquecer-se do \u00e2mbito do pacote. \u00c9 f\u00e1cil n\u00e3o se lembrar de o utilizar, uma vez que est\u00e1 impl\u00edcito e n\u00e3o requer qualquer <strong>Java<\/strong> palavras-chave. O escopo do pacote \u00e9 importante. Ele permite que voc\u00ea teste um m\u00e9todo protegido. Os itens protegidos s\u00e3o acess\u00edveis a partir do caminho da classe de teste, desde que o pacote seja o mesmo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como \u00e9 que o posso evitar?<\/h3>\n\n\n\n<p>Lembre-se do modificador protegido e de que o \u00e2mbito do pacote lhe permite test\u00e1-lo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">9. Utilizar JavaEE puro em vez de Spring<\/h2>\n\n\n\n<p>O pr\u00f3ximo passo depois de aprender <strong>Java<\/strong> SE \u00e9 aprender a gerir <strong>Java<\/strong> em servidores, como criar uma aplica\u00e7\u00e3o de n\u00edvel empresarial.<\/p>\n\n\n\n<p>Os principiantes caem frequentemente na armadilha de aprender JavaEE, uma vez que existe um grande n\u00famero de tutoriais sobre o assunto. At\u00e9 mesmo 'Thinking in Java', o <strong>Programadores de Java<\/strong>', menciona JavaEE e n\u00e3o diz nada sobre as outras op\u00e7\u00f5es.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como \u00e9 que o posso evitar?<\/h3>\n\n\n\n<p>Java EE \u00e9 uma can\u00e7\u00e3o do passado. Hoje em dia, o Spring \u00e9 uma coisa que se usa e o Java EE \u00e9 apenas bom de se ter. Todas as aplica\u00e7\u00f5es modernas de n\u00edvel empresarial utilizam Spring, pelo que deve considerar fortemente a possibilidade de aprender <a href=\"https:\/\/spring.io\/guides\">aqui<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/calendly.com\/the-codest-java-consulting\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/meeting_java_expert.png\" alt=\"Conhe\u00e7a o especialista em Java\"\/><\/a><\/figure>\n\n\n\n<p><strong>Ler mais:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-right-way-to-find-top-java-developers\">A forma correta de encontrar os melhores programadores Java<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-best-type-of-projects-for-java\">O melhor tipo de projectos para Java<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/top-programming-languages-for-fintech-companies\">Principais linguagens de programa\u00e7\u00e3o para empresas de fintech<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Que erros devem ser evitados ao programar em Java? No artigo seguinte, respondemos a esta pergunta.<\/p>","protected":false},"author":2,"featured_media":3005,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[15,8],"tags":[],"class_list":["post-3004","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fintech","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>9 Mistakes to Avoid While Programming in Java - The Codest<\/title>\n<meta name=\"description\" content=\"Explore 9 Java coding mistakes developers should avoid to improve code quality, security, and performance in modern Java applications.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/pt\/blogue\/9-erros-a-evitar-ao-programar-em-java\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"9 Mistakes to Avoid While Programming in Java\" \/>\n<meta property=\"og:description\" content=\"Explore 9 Java coding mistakes developers should avoid to improve code quality, security, and performance in modern Java applications.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/pt\/blogue\/9-erros-a-evitar-ao-programar-em-java\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-08T11:25:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-09T13:13:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/9_mistakes_to_avoid_while_programming_in_java.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"9 Mistakes to Avoid While Programming in Java\",\"datePublished\":\"2022-07-08T11:25:57+00:00\",\"dateModified\":\"2026-03-09T13:13:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/\"},\"wordCount\":1643,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/9_mistakes_to_avoid_while_programming_in_java.png\",\"articleSection\":[\"Fintech\",\"Software Development\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/\",\"name\":\"9 Mistakes to Avoid While Programming in Java - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/9_mistakes_to_avoid_while_programming_in_java.png\",\"datePublished\":\"2022-07-08T11:25:57+00:00\",\"dateModified\":\"2026-03-09T13:13:14+00:00\",\"description\":\"Explore 9 Java coding mistakes developers should avoid to improve code quality, security, and performance in modern Java applications.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/9_mistakes_to_avoid_while_programming_in_java.png\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/9_mistakes_to_avoid_while_programming_in_java.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/9-mistakes-to-avoid-while-programming-in-java\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"9 Mistakes to Avoid While Programming in Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/pt\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"9 erros a evitar ao programar em Java - The Codest","description":"Explore 9 erros de codifica\u00e7\u00e3o Java que os programadores devem evitar para melhorar a qualidade do c\u00f3digo, a seguran\u00e7a e o desempenho das aplica\u00e7\u00f5es Java modernas.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/pt\/blogue\/9-erros-a-evitar-ao-programar-em-java\/","og_locale":"pt_PT","og_type":"article","og_title":"9 Mistakes to Avoid While Programming in Java","og_description":"Explore 9 Java coding mistakes developers should avoid to improve code quality, security, and performance in modern Java applications.","og_url":"https:\/\/thecodest.co\/pt\/blogue\/9-erros-a-evitar-ao-programar-em-java\/","og_site_name":"The Codest","article_published_time":"2022-07-08T11:25:57+00:00","article_modified_time":"2026-03-09T13:13:14+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/9_mistakes_to_avoid_while_programming_in_java.png","type":"image\/png"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"9 Mistakes to Avoid While Programming in Java","datePublished":"2022-07-08T11:25:57+00:00","dateModified":"2026-03-09T13:13:14+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/"},"wordCount":1643,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/9_mistakes_to_avoid_while_programming_in_java.png","articleSection":["Fintech","Software Development"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/","url":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/","name":"9 erros a evitar ao programar em Java - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/9_mistakes_to_avoid_while_programming_in_java.png","datePublished":"2022-07-08T11:25:57+00:00","dateModified":"2026-03-09T13:13:14+00:00","description":"Explore 9 erros de codifica\u00e7\u00e3o Java que os programadores devem evitar para melhorar a qualidade do c\u00f3digo, a seguran\u00e7a e o desempenho das aplica\u00e7\u00f5es Java modernas.","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/9_mistakes_to_avoid_while_programming_in_java.png","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/9_mistakes_to_avoid_while_programming_in_java.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/9-mistakes-to-avoid-while-programming-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"9 Mistakes to Avoid While Programming in Java"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/pt\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/pt\/wp-json\/wp\/v2\/posts\/3004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/pt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/pt\/wp-json\/wp\/v2\/comments?post=3004"}],"version-history":[{"count":9,"href":"https:\/\/thecodest.co\/pt\/wp-json\/wp\/v2\/posts\/3004\/revisions"}],"predecessor-version":[{"id":7701,"href":"https:\/\/thecodest.co\/pt\/wp-json\/wp\/v2\/posts\/3004\/revisions\/7701"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/pt\/wp-json\/wp\/v2\/media\/3005"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/pt\/wp-json\/wp\/v2\/media?parent=3004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/pt\/wp-json\/wp\/v2\/categories?post=3004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/pt\/wp-json\/wp\/v2\/tags?post=3004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}