<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivo para Java - Bóson Treinamentos em Ciência e Tecnologia</title>
	<atom:link href="https://www.bosontreinamentos.com.br/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bosontreinamentos.com.br/tag/java/</link>
	<description>Artigos e Tutoriais sobre Desenvolvimento de Software, Bancos de Dados SQL, Linux, Lógica de Programação, Inteligência Artificial, Hardware, Eletrônica, Arduino, Técnicas e Teorias de Estudo e Aprendizagem, Carreira em TI, Ciências Cognitivas, e muito mais!</description>
	<lastBuildDate>Tue, 17 Aug 2021 22:49:55 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.8</generator>
	<item>
		<title>Tipo enum em Java e classe de teste</title>
		<link>https://www.bosontreinamentos.com.br/java/tipo-enum-em-java-e-classe-de-teste/</link>
					<comments>https://www.bosontreinamentos.com.br/java/tipo-enum-em-java-e-classe-de-teste/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Tue, 17 Aug 2021 22:43:27 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17918</guid>

					<description><![CDATA[<p>Tipo enum em Java e classe de teste Como vimos em um artigo anterior sobre o tipo enum em Java, uma enumeração habilita uma variável a ser configurada com valores constantes pré-definidos. Ao atribuir valores a essa variável durante a execução do programa, somente são aceitos valores presentes da lista definida da enumeração. Aplicação: usamos tipos de enumeração sempre que precisamos representas um conjunto fixo de constantes, valores que são totalmente conhecidos na hora da compilação do programa. Exemplos comuns de aplicação de enums são a criação de variáveis para armazenar meses do ano, dias da semana, pontos cardeais, estações do ano, planetas do sistema solar, etc. Importante notar que, por serem constantes, os nomes dos valores dentro de um tipo enum são escritos sempre em letras maiúsculas. Neste artigo vamos criar uma enumeração em Java, e também uma classe que será usada para interagir com a enumeração, contendo um campo do tipo enum, um método construtor e um método de uso geral para exibição de uma mensagem ao usuário, dependendo do valor da enum que for solicitado no programa principal. Crie um novo projeto Java em um IDE, criando uma classe principal main(). Meu projeto recebeu o nome de [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/tipo-enum-em-java-e-classe-de-teste/">Tipo enum em Java e classe de teste</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Tipo enum em Java e classe de teste</h2>
<p>Como vimos em um artigo anterior sobre o <a href="http://www.bosontreinamentos.com.br/java/como-trabalhar-com-o-tipo-enum-em-java-enumeracoes/">tipo enum em Java</a>, uma enumeração habilita uma variável a ser configurada com valores constantes pré-definidos. Ao atribuir valores a essa variável durante a execução do programa, somente são aceitos valores presentes da lista definida da enumeração.</p>
<p>Aplicação: usamos tipos de enumeração sempre que precisamos representas um conjunto fixo de constantes, valores que são totalmente conhecidos na hora da compilação do programa.</p>
<p>Exemplos comuns de aplicação de enums são a criação de variáveis para armazenar meses do ano, dias da semana, pontos cardeais, estações do ano, planetas do sistema solar, etc.</p>
<p>Importante notar que, por serem constantes, os nomes dos valores dentro de um tipo enum são escritos sempre em letras maiúsculas.</p>
<p>Neste artigo vamos criar uma enumeração em Java, e também uma classe que será usada para interagir com a enumeração, contendo um campo do tipo enum, um método construtor e um método de uso geral para exibição de uma mensagem ao usuário, dependendo do valor da enum que for solicitado no programa principal.</p>
<p>Crie um novo projeto Java em um IDE, criando uma classe principal <strong>main()</strong>. Meu projeto recebeu o nome de <em><strong>EnumsJava</strong></em>.</p>
<h3>Criar uma enum em Java</h3>
<p>Vamos criar primeiramente um tipo enum para armazenar os nomes dos planetas do Sistema Solar. Vamos chamar essa enum de <em><strong>EnumPlanetas</strong></em>. Para isso, crie um novo arquivo em seu IDE preferido e digite o código a seguir:</p>
<p><strong>Código:</strong></p>
<pre><strong>package enums;</strong>
<strong>public enum EnumPlanetas {</strong>
<strong>    MERCÚRIO,</strong>
<strong>    VÊNUS,</strong>
<strong>    TERRA,</strong>
<strong>    MARTE,</strong>
<strong>    JÚPITER,</strong>
<strong>    SATURNO,</strong>
<strong>    URANO,</strong>
<strong>    NETUNO</strong>
<strong>}</strong></pre>
<h3>Testar a enum no programa principal</h3>
<p>Vamos testar a enum criada no programa principal usando um laço de repetição para iterar pelos seus itens constituintes, exibindo cada nome da enum na tela.</p>
<p><strong>Código:</strong></p>
<pre><strong>package enums;</strong>
<strong>import java.util.Scanner;</strong>
<strong>public class EnumsJava {</strong>
<strong>  public static void main(String[] args) {</strong>
<span style="color: #339966;"><strong>    // listar os valores possíveis para a enumeração:</strong></span>
<strong>    for (EnumPlanetas p : EnumPlanetas.values()) {</strong>
<strong>      System.out.printf("%s%n", p);</strong>
<strong>    }</strong>
<strong>  }</strong>
<strong>}
</strong></pre>
<p>Devem ser exibidos na tela os nomes dos planetas, um por linha:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17921 size-full" title="Iteração por valores em uma enumeração Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-iterar-valores.jpg" alt="Iteração por valores em uma enumeração Java" width="397" height="317"></p>
<h3>Criar classe para manipulação da enum</h3>
<p>Agora vamos criar uma nova classe para trabalhar com a enumeração de planetas. Vamos batizar essa classe como <em><strong>ClasseTesteEnum</strong></em>. Crie um novo arquivo e digite o código a seguir.&nbsp;</p>
<p><strong>Código:</strong></p>
<pre><strong>package enums;</strong>
<strong>public class ClasseTesteEnum {</strong>
<strong>  EnumPlanetas planeta;</strong>
<strong>  ClasseTesteEnum(String planeta) {</strong>
<strong>    this.planeta = EnumPlanetas.valueOf(planeta); <span style="color: #339966;">// converte string para valor de enum</span></strong>
<strong>  }</strong>
<strong>  public void viajarPlaneta() {</strong>
<strong>    switch(planeta) {</strong>
<strong>      case MERCÚRIO:</strong>
<strong>        System.out.println("Muito quente por lá");</strong>
<strong>        break;</strong>
<strong>      case TERRA:</strong>
<strong>        System.out.println("Já estamos aqui");</strong>
<strong>        break;</strong>
<strong>      case SATURNO:</strong>
<strong>        System.out.println("Belíssimos anéis!");</strong>
<strong>        break;</strong>
<strong>     case URANO:</strong>
<strong>        System.out.println("Muito longe");</strong>
<strong>        break;</strong>
<strong>     default:</strong>
<strong>        System.out.println("Passagens esgotadas!");</strong>
<strong>        break;</strong>
<strong>    }</strong>
<strong>  }</strong>
<strong>}</strong></pre>
<p>Note que não criamos casos para todos os planetas listados na enumeração &#8211; esses serão tratados pelo caso <em>default</em> da declaração<em> switch</em>.</p>
<p>Salve o arquivo. Vamos testar o programa logo em seguida.</p>
<h3>Testar a classe no programa principal</h3>
<p>Vamos testar a classe criada instanciando-a no programa principal, e criando assim um objeto que chamaremos de <em><strong>pl</strong></em>.</p>
<p><strong>Código:</strong></p>
<pre><strong>package enums;</strong>
<strong>import java.util.Scanner;</strong>
<strong>public class EnumsJava {</strong>
<strong>  public static void main(String[] args) {</strong>
<strong>    Scanner entrada = new Scanner(System.in);</strong>
<strong>    String planeta;</strong>
<strong>    System.out.println("Para qual planeta deseja viajar?");</strong>
<strong>    planeta = entrada.next().toUpperCase(); <span style="color: #339966;">// converte para maiúsculas, pois os valores da enum são sempre maiúsculos</span></strong>
<strong>    entrada.close();</strong>
<strong><span style="color: #339966;">    // Criar o objeto pl</span>
    ClasseTesteEnum pl = new ClasseTesteEnum(planeta);</strong>
<strong>    pl.viajarPlaneta();</strong>
<strong>  }</strong>
<strong>}</strong></pre>
<p>Testando com o planeta Urano:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17922 size-full" title="Teste de tipo enum em Java com Urano" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Urano.jpg" alt="Teste de tipo enum em Java com Urano" width="464" height="160" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Urano.jpg 464w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Urano-420x145.jpg 420w" sizes="auto, (max-width: 464px) 100vw, 464px" /></p>
<p>Vamos testar agora com o planeta Marte:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17923 size-full" title="Teste de tipo enum em Java com Marte" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Marte.jpg" alt="Teste de tipo enum em Java com Marte" width="460" height="173" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Marte.jpg 460w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Marte-420x158.jpg 420w" sizes="auto, (max-width: 460px) 100vw, 460px" /></p>
<p>E, finalmente, um teste com o planeta-anão Ceres (este não existe na listagem da enumeração):</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17924" title="Teste de tipo enum em Java com Planeta-anão Ceres" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Ceres-1024x270.jpg" alt="Teste de tipo enum em Java com Planeta-anão Ceres" width="900" height="237" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Ceres-1024x270.jpg 1024w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Ceres-420x111.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Ceres-768x202.jpg 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/08/enum-java-teste-Ceres.jpg 1063w" sizes="auto, (max-width: 900px) 100vw, 900px" /></p>
<p>A o tentar rodar o programa passando o valor Ceres (um planeta-anão do Sistema Solar), é retornado um erro, pois esse valor não pertence à enumeração, que somente aceita os valores constantes que foram definidos em sua declaração. A exceção lançada é <em><strong>java.lang.IllegalArgumentException: No enum constant enumsJava.EnumPlanetas.CERES.<br />
</strong></em>Neste caso, devemos tratar a exceção de alguma forma para que o erro não prejudique a execução do programa.</p>
<p>Agora aproveite e assista ao vídeo do canal Bóson Treinamentos sobre o assunto:</p>
<p><iframe loading="lazy" title="YouTube video player" src="https://www.youtube.com/embed/ScPe4eWFTQ4" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/tipo-enum-em-java-e-classe-de-teste/">Tipo enum em Java e classe de teste</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/tipo-enum-em-java-e-classe-de-teste/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Como instalar o pacote AdoptOpenJDK no Linux Debian</title>
		<link>https://www.bosontreinamentos.com.br/linux/como-instalar-o-pacote-adoptopenjdk-no-linux-debian/</link>
					<comments>https://www.bosontreinamentos.com.br/linux/como-instalar-o-pacote-adoptopenjdk-no-linux-debian/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Tue, 30 Mar 2021 13:23:22 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17282</guid>

					<description><![CDATA[<p>Como instalar o pacote AdoptOpenJDK no Linux Debian Por conta de atualizações na política de licenciamento do Java pela Oracle, que incluem o fim de determinadas atualizações gratuitas, entre outras alterações, muitos tem buscado alternativas para o uso do Java em seus sistemas, seja usando uma máquina virtual Java, um ambiente de execução, ou ainda para desenvolvimento de software na linguagem. O AdoptOpenJDK é uma distribuição Java de código aberto, mantida por uma comunidade de desenvolvedores, que fornece binários pré-compilados da implementação de referência da plataforma Java a partir do OpenJDK, que por si é uma implementação livre e de código aberto da plataforma Java SE (Standard Edition). Com o AdoptOpenJDK, as atualizações do Java são disponibilizadas com rapidez e regularidade a todos que usem seus pacotes.&#160;Empresas que contribuem para esse projeto incluem a IBM, Microsoft e Azul, entre outras, o que ajuda a manter o padrão de qualidade do projeto em um patamar bastante elevado. O AdoptOpenJDK está disponível em diversas plataformas, como Windows, macOS e, claro, Linux, que será o objeto de nosso tutorial de hoje. Vou mostrar como instalar o AdoptOpenJDK no Linux Debian e seus derivados, como o Ubuntu, MX Linux e Linux Mint, entre outros. [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/linux/como-instalar-o-pacote-adoptopenjdk-no-linux-debian/">Como instalar o pacote AdoptOpenJDK no Linux Debian</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como instalar o pacote AdoptOpenJDK no Linux Debian</h2>
<p>Por conta de atualizações na política de licenciamento do Java pela Oracle, que incluem o fim de determinadas atualizações gratuitas, entre outras alterações, muitos tem buscado alternativas para o uso do Java em seus sistemas, seja usando uma máquina virtual Java, um ambiente de execução, ou ainda para desenvolvimento de software na linguagem.</p>
<p>O <strong>AdoptOpenJDK</strong> é uma distribuição Java de código aberto, mantida por uma comunidade de desenvolvedores, que fornece binários pré-compilados da implementação de referência da plataforma Java a partir do <strong>OpenJDK</strong>, que por si é uma implementação livre e de código aberto da plataforma Java SE (Standard Edition).</p>
<p>Com o AdoptOpenJDK, as atualizações do Java são disponibilizadas com rapidez e regularidade a todos que usem seus pacotes.&nbsp;Empresas que contribuem para esse projeto incluem a IBM, Microsoft e Azul, entre outras, o que ajuda a manter o padrão de qualidade do projeto em um patamar bastante elevado.</p>
<p>O AdoptOpenJDK está disponível em diversas plataformas, como Windows, macOS e, claro, Linux, que será o objeto de nosso tutorial de hoje.</p>
<p>Vou mostrar como instalar o AdoptOpenJDK no Linux Debian e seus derivados, como o Ubuntu, MX Linux e Linux Mint, entre outros.</p>
<p>O site oficial do projeto AdoptOpenJDK é o <a href="https://adoptopenjdk.net/" target="_blank" rel="noopener">https://adoptopenjdk.net/</a>.</p>
<p>Vamos aos procedimentos de instalação e configuração agora.</p>
<h3>Instalação do AdoptOpenJDK</h3>
<p>O primeiro passo é importar a chave GPG de criptografia. Abra o terminal e execute o comando a seguir:</p>
<pre><strong>$ wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -</strong></pre>
<p>Na sequência, adicione o repositório de pacotes do AdoptOpenJDK:</p>
<pre><strong>$ sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/</strong></pre>
<p>Atualizar a lista de pacotes dos repositórios no sistema:</p>
<pre><strong>$ sudo apt update</strong></pre>
<p>Finalmente, vamos instalar o AdoptOpenJDK no Linux:</p>
<pre><strong>$ sudo apt install adoptopenjdk-8-hotspot</strong></pre>
<p>Verifique no site do projeto as versões mais recentes do AdoptOpenJDK. Se preferir, você pode instalá-la simplesmente alterando o nome do pacote no comando anterior. Por exemplo, para a versão 11 você usa o pacote <strong>adopopenjdk-11-hotspot</strong>.</p>
<p>Após o término da instalação do pacote e suas dependências, podemos selecionar a alternativa Java a ser usada no sistema (qual JVM será usada), caso você tenha mais de uma JVM instalada (openJDK, Oracle JDK). Digite o número correspondente ao pacote desejado e pressione &lt;enter&gt;</p>
<pre><strong>$ sudo update-alternatives --config java</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17702" title="Escolher JVM para openJDK no linux Debian" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debina-instalar-boson-1024x262.jpg" alt="Escolher JVM para openJDK no linux Debian" width="802" height="205" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debina-instalar-boson-1024x262.jpg 1024w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debina-instalar-boson-420x107.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debina-instalar-boson-768x196.jpg 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debina-instalar-boson.jpg 1521w" sizes="auto, (max-width: 802px) 100vw, 802px" /></p>
<p>No meu caso possuo mais JVMs instaladas, e o AdoptOpenJDK é a opção número 1 na lista. Anote o caminho do executável do Java mostrado (/usr/bin/java), pois ele será necessário na próxima etapa, que é a configuração da variável de ambiente.</p>
<p>Agora vamos configurar a variável de ambiente <strong>JAVA_HOME</strong> no sistema. Para tal, abra o arquivo <em>/etc/environment</em> em um editor de textos qualquer. Este arquivo é o local padrão para a configuração de variáveis de ambiente em sistema Linux. Vou usar o nano para editá-lo:</p>
<pre><strong>$ sudo nano /etc/environment</strong></pre>
<p>Adicionar a linha a seguir, substituindo o caminho indicado em itálico pelo caminho do binário mostrado na saída do comando anterior (não se esqueça de incluir as aspas):</p>
<pre><span style="color: #800080;"><strong>JAVA_HOME="<em>caminho_obtido_no_comando_anterior_até_bin</em>"</strong></span></pre>
<p>No meu caso ficou assim:</p>
<pre><span style="color: #800080;"><strong>JAVA_HOME="/usr/bin/"</strong></span></pre>
<p>Salve o arquivo e feche-o. Logo após, faça logoff e logon no sistema novamente, para recarregar o arquivo para todos os usuários e processos (não é necessário reiniciar o computador).</p>
<p>Após logar novamente, abra o terminal e verifique a variável de ambiente configurada com o comando a seguir:</p>
<pre><strong>$ echo $JAVA_HOME</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17703" title="AdoptOpenJDK instalado no sistema Linux" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debian-instalado-boson.jpg" alt="AdoptOpenJDK instalado no sistema Linux" width="452" height="90" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debian-instalado-boson.jpg 507w, https://www.bosontreinamentos.com.br/wp-content/uploads/2021/03/openjdk-linux-debian-instalado-boson-420x84.jpg 420w" sizes="auto, (max-width: 452px) 100vw, 452px" /></p>
<p>Perfeito! JDK instalado e configurado com sucesso em seus sistema! Para testar, instale algum programa que necessite do Java para rodar, como por exemplo o Portugol Studio &#8211; e aproveite para estudar lógica de programação com ele!</p>
<p>Até!</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/linux/como-instalar-o-pacote-adoptopenjdk-no-linux-debian/">Como instalar o pacote AdoptOpenJDK no Linux Debian</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/linux/como-instalar-o-pacote-adoptopenjdk-no-linux-debian/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>5 Linguagens de Programação para aprender em 2021</title>
		<link>https://www.bosontreinamentos.com.br/carreira/5-linguagens-de-programacao-para-aprender-em-2021/</link>
					<comments>https://www.bosontreinamentos.com.br/carreira/5-linguagens-de-programacao-para-aprender-em-2021/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 18 Dec 2020 12:48:47 +0000</pubDate>
				<category><![CDATA[Carreira]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17357</guid>

					<description><![CDATA[<p>5 Linguagens de Programação para aprender em 2021 Finalmente chegamos ao final do ano de 2020. Para boa parte das pessoas, um ano para esquecer &#8211; para mim, sem dúvida, um dos piores períodos em diversos quesitos. Esperamos que o próximo ano seja melhor &#8211; e vamos trabalhar para que isso se concretize. Uma das melhores coisas que podemos fazer é nos prepararmos de forma metódica e planejada, e estudar para enriquecer nosso currículo profissional e avançar em nossas carreiras é o caminho a seguir. Por conta disso trago neste artigo algumas dicas de linguagens de programação que valem a pena estudar durante o ano vindouro, de forma bem objetiva e clara: apenas linguagens com real potencial de trazer benefícios ao estudante / profissional. Escolher uma linguagem de programação Aprender uma nova linguagem de programação não é uma tarefa simples, principalmente se você for iniciante. O processo pode ser demorado, complicado e frustrante &#8211; e no final você pode acabar usando seu tempo precioso para estudar uma linguagem de programação que não terá tanta utilidade em suas vida profissional. Por isso é importante saber escolher qual linguagem (ou quais) você irá estudar. As opções são muitas, e algumas linguagens que [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/carreira/5-linguagens-de-programacao-para-aprender-em-2021/">5 Linguagens de Programação para aprender em 2021</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>5 Linguagens de Programação para aprender em 2021</h2>
<p>Finalmente chegamos ao final do ano de 2020. Para boa parte das pessoas, um ano para esquecer &#8211; para mim, sem dúvida, um dos piores períodos em diversos quesitos.</p>
<p>Esperamos que o próximo ano seja melhor &#8211; e vamos trabalhar para que isso se concretize. Uma das melhores coisas que podemos fazer é nos prepararmos de forma metódica e planejada, e estudar para enriquecer nosso currículo profissional e avançar em nossas carreiras é o caminho a seguir.</p>
<p>Por conta disso trago neste artigo algumas dicas de linguagens de programação que valem a pena estudar durante o ano vindouro, de forma bem objetiva e clara: apenas linguagens com real potencial de trazer benefícios ao estudante / profissional.</p>
<h3>Escolher uma linguagem de programação</h3>
<p>Aprender uma nova linguagem de programação não é uma tarefa simples, principalmente se você for iniciante. O processo pode ser demorado, complicado e frustrante &#8211; e no final você pode acabar usando seu tempo precioso para estudar uma linguagem de programação que não terá tanta utilidade em suas vida profissional.</p>
<p>Por isso é importante saber escolher qual linguagem (ou quais) você irá estudar. As opções são muitas, e algumas linguagens que hoje parecem muito importantes talvez percam relevância no futuro, ao passo que linguagens mais &#8220;obscuras&#8221; podem se tornar de uso comum e muito procuradas pelos profissionais e pelas empresas.</p>
<p>Existem literalmente centenas de linguagens de programação disponíveis hoje, e a demanda por essas linguagens varia ano a ano, com novas linguagens surgindo, outras se tornando mais populares, e outras tantas sendo menos utilizadas até se tornarem praticamente obsoletas.</p>
<p>Escolher uma linguagem de programação pode ser complicado &#8211; afinal, você pode acabar usando seu precioso tempo para aprender uma linguagem que, daqui a um ano (ou alguns meses!) não será mais relevante no mercado. Então, como escolher a linguagem (ou linguagens) mais indicadas para aprendizado, que tenham maior potencial de retorno para sua carreira?</p>
<p>Se você é iniciante no mundo do desenvolvimento de sistemas, a dica é investir nas linguagens mais consagradas, que tem ampla aceitação no mercado e utilização profunda pelas empresas &#8211; levando em consideração alguns fatores como crescimento de sua popularidade, nichos de atuação, novos entrantes (novas linguagens) que as possam substituir, quantidade de frameworks e bibliotecas disponíveis, demanda no mercado de trabalho, e outros.</p>
<p>As primeiras linguagens de programação com as quais tive contato foram Delphi, C, Basic e Assembly. Destas, apenas a linguagem C ainda é relevante nos dias de hoje &#8211; e, curiosamente, uma das mais importantes e estudadas ainda!</p>
<p>Porém as outras três acabaram se tornando obsoletas (Basic, Delphi) ou sendo usadas apenas em nichos muito específicos (Assembly, de novo Delphi). O mesmo deve acontecer com a maioria das linguagens mais novas que temos disponíveis &#8211; algumas serão usadas de forma intensiva pelos próximos anos ou até décadas, ao passo que outras são deixadas de lado rapidamente, substituídas por outras linguagens com mais recursos, mais performáticas ou simplesmente mais fáceis de aprender.</p>
<p>Neste artigo listo algumas das linguagens de programação que eu, pessoalmente, acredito que sejam importantes em 2021, e nas quais pode valer a pena investir tempo de estudo (e dinheiro, em alguns casos).</p>
<p>Bem, sem mais delongas, vamos à lista de linguagens para aprender em 2021!</p>
<h3>JavaScript</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17380" title="Programação em Javascript" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/javascript-logo-bóson.png" alt="Programação em Javascript" width="290" height="163" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/javascript-logo-bóson.png 587w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/javascript-logo-bóson-420x236.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/javascript-logo-bóson-580x326.png 580w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/javascript-logo-bóson-174x98.png 174w" sizes="auto, (max-width: 290px) 100vw, 290px" /></p>
<p>O <a href="http://www.bosontreinamentos.com.br/category/programacao-em-javascript/">JavaScript</a> é uma das linguagens mais usadas no mundo, encontrando aplicação em dispositivos móveis, desenvolvimento de jogos, Internet das Coisas e, principalmente, desenvolvimento Web.</p>
<p>Amplamente empregada no desenvolvimento de aplicações front-end para websites, também pode ser usada em aplicações de back-end (lado servidor), com o ambiente de execução NodeJS.</p>
<p>Não é exatamente uma linguagem simples de se aprender, devido à sua sintaxe, comandos e integração com outras linguagens, mas sem dúvida é uma das mais importantes, e você deve estudar JavaScript com certeza absoluta se tem a mínima intenção de trabalhar com desenvolvimento para Web e afins. O JS é executado normalmente em um navegador, oferecendo uma interface bastante responsiva para as aplicações web, sem a necessidade de compilação de código.</p>
<h3>C++ (e C)</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17381" title="Linguagem de Programação C++" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-1024x1024.png" alt="Linguagem de Programação C++" width="270" height="270" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-1024x1024.png 1024w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-170x170.png 170w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-420x420.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao-768x768.png 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-c-programacao.png 1600w" sizes="auto, (max-width: 270px) 100vw, 270px" /></p>
<p>O <a href="http://www.bosontreinamentos.com.br/programacao-em-c/introducao-a-linguagem-de-programacao-c/">C++</a> é a linguagem mais antiga dessa minha lista, mas não por isso menos importante que as demais.</p>
<p>Na prática, eu listaria C/C++, pois as duas linguagens tem muitos pontos em comum &#8211; mas o paradigma orientado a objetos do C++ faz com que seja mais simples (menos complicado?) desenvolver sistemas nesta linguagem. Mas recomendo também a linguagem C, uma das mais usadas no mundo hoje e a mais importante da história da programação.</p>
<p>Desenvolvida por Bjarne Stroustrup em 1985, o C++ é uma das linguagens mais eficientes e flexíveis que existem, permitindo a criação de aplicações de alta performance e alta confiabilidade, sendo empregada em áreas diversas como Programação de Sistemas, Desenvolvimento de Jogos, Aplicações para Web e Desktop, Área Financeira, Sistemas Embarcados, Aplicações de Tempo Real, Veículos Autônomos e Inteligência Artificial, entre outras.</p>
<p>E é justamente essa demanda de sistemas autônomos, embarcados e jogos de alta performance que fazem com que o C/C++ esteja presente nesta lista. São linguagens antigas e ao mesmo tempo suportam as tecnologias do futuro!</p>
<p>Uma das grandes desvantagens do C++ é sua curva de aprendizado acentuada, pois possui uma sintaxe complexa, e seu sistema de orientação a objetos não é tão claro quanto, por exemplo, o da linguagem Java. Também peca em alguns pontos como a alocação de memória dinâmica ou coletor de lixo. Não é recomendada como linguagem de escolha para iniciantes em programação.<br />
Porém, aplicações escritas em C e C++ são extremamente rápidas, sendo insubstituíveis em muitos casos.</p>
<h3>Java</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17379" title="Linguagem Java da Oracle" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/java.png" alt="Linguagem Java da Oracle" width="250" height="250" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/java.png 512w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/java-170x170.png 170w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/java-420x420.png 420w" sizes="auto, (max-width: 250px) 100vw, 250px" /></p>
<p>Criada por James Gosling em 1995 na Sun Microsystems, é provavelmente a linguagem mais usada atualmente em ambiente empresarial. Totalmente orientada a objetos, aplicações escritas em <a href="http://www.bosontreinamentos.com.br/category/java/">Java</a> podem rodar em qualquer plataforma, bastando para isso ter alguma implementação de Máquina Virtual Java instalada (JVM). É ideal para aplicações de computação distribuída, além de suportar multithreading.</p>
<p>Suas principais aplicações são no desenvolvimento de aplicações Desktop (como o notório programa da Imposto de Renda!), aplicações Web e Mobile (para Android), e nas áreas de serviços Financeiros e aplicações Científicas, entre outras. O Java possui uma variedade enorme de bibliotecas open source e diversas APIs, que facilitam o desenvolvimento de aplicações que envolvam bancos de dados, conectividade à redes, manipulação de formatos variados de dados e muito mais.</p>
<p>Uma de suas desvantagens é o fato do ambiente Java se relativamente &#8220;pesado&#8221;, demandando recursos de hardware específicos, além de ser mais lenta (é interpretada) em comparação com aplicações escritas em linguagens como C/C++ (que são compiladas). O gerenciamento de memória também não é excelente.</p>
<h3>PHP</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-3570" title="Linguagem PHP" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/06/curso-php-mysql-mascote-elefante.png" alt="Curso de PHP com MySQL - Mascote" width="300" height="204" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/06/curso-php-mysql-mascote-elefante.png 438w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/06/curso-php-mysql-mascote-elefante-420x286.png 420w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>Podem fazer memes e falarem o que quiserem, mas o <a href="http://www.bosontreinamentos.com.br/curso-basico-de-programacao-web-com-php/">PHP</a> ainda é linguagem dominante em aplicações Web Back End. Quase 1/4 dos websites na Internet usam PHP de alguma forma, sendo empregada primariamente na criação de websites dinâmicos e blogs, como os criados usando a plataforma WordPress.</p>
<p>Linguagem multiparadigma (funcional, imperativa, orientada a objetos) lançada em 1995, o PHP possui um vasto ecossistema de aplicações e bibliotecas, e uma grande comunidade para suporte, alé de diversos frameworks que facilitam o desenvolvimento de aplicações na linguagem (como o Laravel).</p>
<p>O PHP hoje sofre competição de linguagens como o Python e o JavaScript (Node), mas ainda impera no quesito linguagem server-side para web. Sua facilidade de aprendizado e a grande quantidade de bibliotecas e frameworks a tornam uma linguagem ideal para quem está iniciando em desenvolvimento web e deseja se inserir no mercado de trabalho sem necessariamente trabalhar com front end (HTML/CSS).</p>
<p>As maiores criticas ao PHP recaem sobre características de segurança e gerenciamento de erros um pouco deficiente, que demandam um maior cuidado ao desenvolver sistemas e aplicações que tratam dados mais sensíveis. Além disso não é tão veloz quanto se espera de uma linguagem de back end.</p>
<h3>Python</h3>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17374" title="Logotipo Python" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/Python-logo-1024x1024.png" alt="Logotipo Python" width="250" height="250" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/Python-logo-1024x1024.png 1024w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/Python-logo-170x170.png 170w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/Python-logo-420x420.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/Python-logo-768x768.png 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/Python-logo.png 2000w" sizes="auto, (max-width: 250px) 100vw, 250px" /></p>
<p><a href="http://www.bosontreinamentos.com.br/category/programacao-em-python/">Python</a>, desenvolvida por Guido van Rossum em <a href="https://diariodonaturalista.com.br/passeio-pelo-parque-oosterpark-em-amsterdam-paises-baixos/" target="_blank" rel="noopener">Amsterdam, na Holanda</a> em 1990, é minha escolha número um para 2021. Uma das linguagens mais versáteis que existem atualmente, pode ser empregada no desenvolvimento de aplicações para inúmeras áreas, sendo dominante em <a href="http://www.bosontreinamentos.com.br/?s=ci%C3%AAncia+de+dados">Ciência de Dados</a>, Machine Learning e Automação em geral. Mas o Python também pode ser utilizado para desenvolver aplicações Web, Desktop, para servidores de Rede, IoT (Internet das Coisas) e muito mais.</p>
<p>Além disso, sua sintaxe muito clara e organizada permite que seja aprendida com bastante facilidade, e em menor tempo que as outras linguagens, sendo por isso muito recomendada para iniciantes em programação em geral. É uma das linguagens mais utilizadas no mundo atualmente, além de ser altamente extensível com o emprego de suas inúmeras bibliotecas, como Matplotlib, Pandas, NumPy e diversas outras.</p>
<p>De acordo com o índice TIOBE de linguagens de programação, o Python é a terceira linguagem mais popular no mundo, atrás apenas das linguagens C e Java (desta última por uma pequena margem de menos de 0,4%):</p>
<div id="attachment_17363" style="width: 810px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-17363" class="wp-image-17363" title="Índice TIOBE de linguagens de programação - dezembro de 2020" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/tiobe-index-dezembro-2020.jpg" alt="Índice TIOBE de linguagens de programação - dezembro de 2020" width="800" height="162" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/tiobe-index-dezembro-2020.jpg 885w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/tiobe-index-dezembro-2020-420x85.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/tiobe-index-dezembro-2020-768x155.jpg 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /><p id="caption-attachment-17363" class="wp-caption-text">Índice TIOBE &#8211; 12/2020. Fonte: <a href="https://www.tiobe.com/tiobe-index/" target="_blank" rel="noopener">www.tiobe.com/tiobe-index/</a></p></div>
<p>Sua maior desvantagem é que o Python é relativamente lento em comparação com outras linguagens, pois se trata de uma linguagem interpretada, de modo que para algumas aplicações, como sistemas de tempo real, não é a tecnologia mais indicada.</p>
<h3>Outras linguagens</h3>
<p>Além das cinco linguagens de programação citadas anteriormente, destaco mais duas (dessa vez, apostas) que podem ter impacto em seu currículo e em sua carreira. Uma delas é a linguagem Go (Golang), que vem crescendo paulatinamente, e a outra é a linguagem R, de nicho mais específico (ciência de dados / análise estatística), bastante utilizada no meio profissional.</p>
<h4>Linguagem Go</h4>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17377" title="Golang - Linguagem Go de Programação" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-go-google.png" alt="Golang - Linguagem Go de Programação" width="250" height="250" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-go-google.png 500w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-go-google-170x170.png 170w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/linguagem-go-google-420x420.png 420w" sizes="auto, (max-width: 250px) 100vw, 250px" /></p>
<p>Linguagem de programação criada pelo Google, também conhecida como Golang. Uma de suas principais características é o excelente suporte a multithreading, sendo ideal para o desenvolvimento de aplicações para sistemas distribuídos de grande porte.</p>
<p>É uma linguagem relativamente simples de aprender, devido à sua sintaxe clara e objetiva, mas ainda assim não tão fácil quanto o Python. Porém é bem rápida, sendo compilada em código de máquina, e se você trabalha em projetos de software de grande porte, que emprega processamento pesado em paralelizado, a linguagem Go é uma ótima escolha.</p>
<h4>Linguagem R</h4>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17376" title="Linguagem R" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/logo-linguagem-r.png" alt="Linguagem R" width="300" height="169" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/logo-linguagem-r.png 960w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/logo-linguagem-r-420x236.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/logo-linguagem-r-768x432.png 768w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/logo-linguagem-r-580x326.png 580w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/logo-linguagem-r-174x98.png 174w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>A <a href="http://www.bosontreinamentos.com.br/category/programacao-em-r/">linguagem R</a>, desenvolvida por Robert Gentleman e Ross Ihaka na Universidade de Auckland (Nova Zelândia) em 1992, é uma linguagem de código aberto para análise de dados estatística, amplamente empregada nas áreas de Ciência de Dados, Computação Estatística, Big Data e Aprendizado de Máquina. Seu aprendizado não é tão simples quanto o da linguagem Python, porém possui um rico ecossistema de pacotes, bibliotecas e ferramentas, incluindo bibliotecas para visualização gráfica de dados de alto padrão.</p>
<p>Permite o desenvolvimento de algoritmos para aprendizado de máquina altamente complexos e poderosos, e por conta dessas características é usada por muitas organizações atualmente.</p>
<p>Entre os pontos fracos do R podemos citar o gerenciamento de memória, não tão eficiente, e a falta de padrões de segurança mais elevados. Mas isso acaba não afetando o uso da linguagem, pois seu rico conjunto de ferramentas compensa facilmente essas deficiências.</p>
<h3>Conclusão</h3>
<p>Mostrei neste artigo cinco linguagens de programação para aprender em 2021 (que eu acredito serem relevantes em 2021), e nas quais vale a pena investir seu tempo de estudo. Não há nenhuma novidade ou grande surpresa na lista, pois afinal as linguagens apresentadas são as dominantes no mercado em seus nichos específicos, e todas tem grande potencial de te ajudar a alavancar sua carreira em tecnologia.&nbsp;</p>
<p>É evidente que, se você pretende trabalhar, por exemplo, com desenvolvimento Web, deve dar preferência ao estudo de JavaScript e PHP em vez de C/C++ ou R; já se pretende trabalhar com ciência de dados, deve focar seus esforços no Python e linguagem R (e outras, como a <a href="http://www.bosontreinamentos.com.br/julia/como-instalar-a-linguagem-julia-no-windows/">linguagem Julia</a> &#8211; assunto para um outro artigo!).</p>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/tPuqJXiNtXw" allowfullscreen="allowfullscreen" width="560" height="315" frameborder="0"></iframe></p>
<p>É isso aí! Bom final de ano a todos (e que o ano termine logo), e nos vemos em 2021. Abraço!</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/carreira/5-linguagens-de-programacao-para-aprender-em-2021/">5 Linguagens de Programação para aprender em 2021</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/carreira/5-linguagens-de-programacao-para-aprender-em-2021/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Como instalar o OpenJDK 11 no Linux Debian 10</title>
		<link>https://www.bosontreinamentos.com.br/linux/como-instalar-o-openjdk-11-no-linux-debian-10/</link>
					<comments>https://www.bosontreinamentos.com.br/linux/como-instalar-o-openjdk-11-no-linux-debian-10/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Thu, 10 Dec 2020 13:07:20 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=17275</guid>

					<description><![CDATA[<p>Como instalar o OpenJDK 11 no Linux Debian 10 Neste tutorial vamos mostrar como instalar a implementação Java OpenJDK no Debian Linux 10 e derivados, para desenvolvimento de aplicações e execução de software em Java e outras linguagens específicas. O que é JDK O Oracle JDK, abreviação de Java Development Kit (Kit de Desenvolvimento Java), é um conjunto de utilitários e bibliotecas que permitem criar e testar aplicações na plataforma Java e outras, como Scala. Além do JDK, outros dois componentes são empregados no desenvolvimento em Java: o JRE (Java Runtime Environment) e a JVM (Java Virtual Machine). Sendo assim, temos que a plataforma Java é composta de: JVM é o componente da plataforma Java que executa os programas JRE são os pacotes que criam o ambiente de execução Java (a JVM) e o JDK é o conjunto que permite aos desenvolvedores criar os programas que são executados pela JVM no JRE. O JDK foi desenvolvido inicialmente pela Sun Microsystem e e mantido atualmente pela Oracle Corporation e, portanto, é software proprietário, sendo distribuído sob licença comercial. O que é o OpenJDK O OpenJDK é uma implementação em software livre do JDK, na edição Standard (Java SE). Sendo assim, é [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/linux/como-instalar-o-openjdk-11-no-linux-debian-10/">Como instalar o OpenJDK 11 no Linux Debian 10</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como instalar o OpenJDK 11 no Linux Debian 10</h2>
<p>Neste tutorial vamos mostrar como instalar a implementação Java <a href="https://openjdk.java.net/" target="_blank" rel="noopener">OpenJDK</a> no Debian Linux 10 e derivados, para desenvolvimento de aplicações e execução de software em Java e outras linguagens específicas.</p>
<h3>O que é JDK</h3>
<p>O Oracle JDK, abreviação de <em><strong>Java Development Kit</strong></em> (Kit de Desenvolvimento Java), é um conjunto de utilitários e bibliotecas que permitem criar e testar aplicações na plataforma Java e outras, como Scala. Além do JDK, outros dois componentes são empregados no desenvolvimento em Java: o JRE (Java Runtime Environment) e a JVM (Java Virtual Machine).</p>
<p>Sendo assim, temos que a plataforma Java é composta de:</p>
<ul>
<li><strong>JVM</strong> é o componente da plataforma Java que executa os programas</li>
<li><strong>JRE</strong> são os pacotes que criam o ambiente de execução Java (a JVM)</li>
<li>e o <strong>JDK</strong> é o conjunto que permite aos desenvolvedores criar os programas que são executados pela JVM no JRE.</li>
</ul>
<p>O JDK foi desenvolvido inicialmente pela Sun Microsystem e e mantido atualmente pela Oracle Corporation e, portanto, é software proprietário, sendo distribuído sob licença comercial.</p>
<h3>O que é o OpenJDK</h3>
<p>O OpenJDK é uma implementação em software livre do JDK, na edição Standard (Java SE). Sendo assim, é distribuído sob licença GNU GPL e está disponível em inúmeras plataformas, como Linux, Unix, BSD, macOS e Windows.</p>
<p>A versão mais atual da implementação é a versão 11, e o site oficial do projeto OpenJDK é o&nbsp;<a href="https://openjdk.java.net/" target="_blank" rel="noopener">https://openjdk.java.net/</a></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-17344" title="OpenJDK no Debian Linux" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/openJDK.png" alt="OpenJDK no Debian Linux" width="300" height="300" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/openJDK.png 512w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/openJDK-170x170.png 170w, https://www.bosontreinamentos.com.br/wp-content/uploads/2020/12/openJDK-420x420.png 420w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<h3>Instalação do OpenJDK no Linux</h3>
<p>Iniciamos a instalação executando a atualização da lista de pacotes do sistema e rodando o gerenciador de pacotes APT para instalar o pacote <em><strong>default-jdk,</strong></em> como segue:</p>
<pre><strong>$ sudo apt update</strong>
<strong>$ sudo apt install default-jdk</strong></pre>
<p>Após instalar os pacotes necessários podemos verificar a instalação do OpenJDK com os comandos a seguir:</p>
<pre><strong>$ java --version</strong>
<strong>$ javac --version</strong></pre>
<p>O Java Runtime Environment está incluído no pacote JDK. Se for necessário apenas o ambiente de execução Java (JRE), instale somente o pacote JRE:</p>
<pre><strong>$ sudo apt install default-jre</strong></pre>
<h3>Como ajustar a variável de ambiente do Java</h3>
<p>Após instalar o OpenJDK em seu sistema é importante configurar a variável de ambiente <strong>$JAVA_HOME</strong>, para que o executável possa ser utilizado sem problemas a partir de qualquer diretório ou aplicação na máquina. Para tal, siga os passo abaixo:</p>
<p>Verificar caminho de instalação do Java</p>
<pre><strong>$ sudo update-alternatives --config java</strong></pre>
<p>Abra o arquivo <strong>/etc/environment</strong> para ajustar o caminho do ambiente de execução para todos os usuários:</p>
<pre><strong>$ sudo nano /etc/environment</strong></pre>
<p>Acrescente neste arquivo o caminho do Java consultado anteriormente, da seguinte forma (o arquivo executável em si não entra no caminho informado aqui):</p>
<pre><strong>JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/"</strong></pre>
<p>Salve e feche o arquivo.</p>
<p>Agora, recarregue o arquivo:</p>
<pre><strong>$ sudo source /etc/environment</strong></pre>
<p>Verifique se o caminho foi configurado corretamente, consultando a variável JAVA_HOME:</p>
<pre><strong>$ echo $JAVA_HOME</strong></pre>
<p>Para aplicar essa configuração aos outros usuários, execute esse comando em seus sistemas ou simplesmente faça logoff e login novamente em suas respectivas contas.</p>
<p>E se eu quiser instalar o JDK / JRE oficiais da Oracle (Oracle JDK 12)? Veremos como fazer isso no próximo tutorial.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/linux/como-instalar-o-openjdk-11-no-linux-debian-10/">Como instalar o OpenJDK 11 no Linux Debian 10</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/linux/como-instalar-o-openjdk-11-no-linux-debian-10/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Como abrir e ler arquivos de texto de acesso sequencial em Java</title>
		<link>https://www.bosontreinamentos.com.br/java/como-abrir-e-ler-arquivos-de-texto-de-acesso-sequencial-em-java/</link>
					<comments>https://www.bosontreinamentos.com.br/java/como-abrir-e-ler-arquivos-de-texto-de-acesso-sequencial-em-java/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Mon, 20 Apr 2020 18:13:50 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15978</guid>

					<description><![CDATA[<p>Como abrir e ler arquivos de texto de acesso sequencial em Java Na lição passada vimos como criar e editar arquivos de texto de acesso sequencial em Java. Agora vamos mostrar como abrir e ler esses arquivos. Usaremos o arquivo criado anteriormente, arquivo.txt, no exemplo. Note que vamos trabalhar com um arquivo cujo local de armazenamento no disco já é conhecido previamente, por isso o caminho do arquivo é hard-coded. Nas lições futuras mostraremos como escolher arquivos em locais aleatórios para leitura e edição. O exemplo que usaremos&#160;foi adaptado de Deitel –&#160;Java How to Program, 10ª edição. A seguir, temos o código completo da aplicação. Código import java.io.IOException; import java.lang.IllegalStateException; import java.util.NoSuchElementException; import java.util.Scanner; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class LerArquivoTexto { private static Scanner entrada; // programa principal public static void main(String[] args) { abrirArquivo(); lerDados(); fecharArquivo(); } // Método para abrir o arquivo arquivo.txt public static void abrirArquivo() { try { entrada = new Scanner(Paths.get("c:\\Java\\arquivo.txt")); // Abrir o arquivo, salvo em C:\Java\ } catch (IOException erroES) { System.err.println("Erro ao abrir o arquivo. Finalizando."); System.exit(1); // terminar o programa } } // Método para ler os registros do arquivo public static void lerDados() { System.out.printf("%-10s%-15s%n","Código","Produto"); try { [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/como-abrir-e-ler-arquivos-de-texto-de-acesso-sequencial-em-java/">Como abrir e ler arquivos de texto de acesso sequencial em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como abrir e ler arquivos de texto de acesso sequencial em Java</h2>
<p>Na lição passada vimos <a href="http://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/" target="_blank" rel="noopener">como criar e editar arquivos de texto de acesso sequencial em Java</a>. Agora vamos mostrar como abrir e ler esses arquivos. Usaremos o arquivo criado anteriormente, <em>arquivo.txt</em>, no exemplo.</p>
<p>Note que vamos trabalhar com um arquivo cujo local de armazenamento no disco já é conhecido previamente, por isso o caminho do arquivo é hard-coded. Nas lições futuras mostraremos como escolher arquivos em locais aleatórios para leitura e edição.</p>
<p>O exemplo que usaremos&nbsp;foi adaptado de Deitel –&nbsp;<strong><em>Java How to Program</em></strong>, 10ª edição. A seguir, temos o código completo da aplicação.</p>
<h3>Código</h3>
<pre><strong>import java.io.IOException;</strong>
<strong>import java.lang.IllegalStateException;</strong>
<strong>import java.util.NoSuchElementException;</strong>
<strong>import java.util.Scanner;</strong>
<strong>import java.nio.file.Files;</strong>
<strong>import java.nio.file.Path;</strong>
<strong>import java.nio.file.Paths;</strong>
<strong>public class LerArquivoTexto</strong>
<strong>{</strong>
<strong>  private static Scanner entrada;</strong>
<span style="color: #339966;"><strong>// programa principal</strong></span>
<strong>  public static void main(String[] args) {</strong>
<strong>    abrirArquivo();</strong>
<strong>    lerDados();</strong>
<strong>    fecharArquivo();</strong>
<strong>}</strong>
<span style="color: #339966;"><strong>// Método para abrir o arquivo arquivo.txt</strong></span>
<strong>  public static void abrirArquivo() {</strong>
<strong>    try {</strong>
<strong>      entrada = new Scanner(Paths.get("c:\\Java\\arquivo.txt")); <span style="color: #339966;">// Abrir o arquivo, salvo em C:\Java\</span></strong>
<strong>    }</strong>
<strong>    catch (IOException erroES) </strong><strong>{</strong>
<strong>      System.err.println("Erro ao abrir o arquivo. Finalizando.");</strong>
<strong>      System.exit(1); <span style="color: #339966;">// terminar o programa</span></strong>
<strong>    }</strong>
<strong>  }</strong>
<span style="color: #339966;"><strong>// Método para ler os registros do arquivo</strong></span>
<strong>  public static void lerDados() {</strong>
<strong>    System.out.printf("%-10s%-15s%n","Código","Produto");</strong>
<strong>    try {</strong>
<strong>      while (entrada.hasNext()) { <span style="color: #339966;">// enquanto houver dados para ler, </span></strong><span style="color: #339966;"><strong>mostrar os registros</strong></span>
<strong>        System.out.printf("%-10d%-12s%n",entrada.nextInt(),entrada.next());</strong>
<strong>      }</strong>
<strong>    }</strong>
<strong>    catch (NoSuchElementException erroElemento) </strong><strong>{</strong>
<strong>      System.err.println("Arquivo com problemas. Finalizando.");</strong>
<strong>      entrada.nextLine(); <span style="color: #339966;">// Descartar a entrada para que o usuário possa tentar de novo</span></strong>
<strong>    }</strong>
<strong>    catch (IllegalStateException erroEstado) </strong><strong>{</strong>
<strong>      System.err.println("Erro ao ler o arquivo. Finalizando.");</strong>
<strong>    }</strong>
<strong>  } <span style="color: #339966;">// fim do método lerDados</span></strong>
<span style="color: #339966;"><strong>// Método para fechar o arquivo aberto</strong></span>
<strong>  public static void fecharArquivo()&nbsp;{</strong>
<strong>    if (entrada != null)</strong>
<strong>      entrada.close();</strong>
<strong>  }</strong>
<strong>} <span style="color: #339966;">// Fim da classe LerArquivoTexto</span></strong></pre>
<p>Ao abrir o arquivo <em>arquivo.txt</em> usando o programa acima, vemos na tela o seguinte resultado:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15981 size-full" title="Ler arquivo de texto com Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/ler-arquivo-texto-Java.png" alt="Ler arquivo de texto com Java" width="212" height="140"></p>
<p>Note que no programa principal executamos apenas três métodos: <em>abrirArquivo</em>, <em>lerDados</em> e <em>fecharArquivo</em>, para realizar as operações correspondentes. Todo o processamento é executado dentro desses métodos.</p>
<p>Anterior:&nbsp;<a href="http://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/">Criar e editar arquivos de texto de acesso sequencial em Java</a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/como-abrir-e-ler-arquivos-de-texto-de-acesso-sequencial-em-java/">Como abrir e ler arquivos de texto de acesso sequencial em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/como-abrir-e-ler-arquivos-de-texto-de-acesso-sequencial-em-java/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>A Classe ArrayList e Collections em Java</title>
		<link>https://www.bosontreinamentos.com.br/java/a-classe-arraylist-e-collections-em-java/</link>
					<comments>https://www.bosontreinamentos.com.br/java/a-classe-arraylist-e-collections-em-java/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Mon, 13 Jan 2020 12:46:07 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15983</guid>

					<description><![CDATA[<p>A Classe ArrayList em Java As Collections são estruturas de dados pré-definidas, fornecidas pela API do Java, que são empregadas para armazenar grupos de objetos relacionados na memória durante a execução do programa. Com estas classes é possível organizar, armazenar e ler dados sem a necessidade de saber exatamente como os dados são armazenados (encapsulamento). Um array convencional não tem seu tamanho modificado automaticamente durante a execução do programa, por exemplo para armazenar novos elementos, o que pode ser um problema, principalmente se surge a necessidade de armazenar mais elementos após um array estar completo. O framework Collections em Java fornece diversas interfaces e classes para manipulação de grupos de objetos, como por exemplo: Interfaces List Set Queue Deque SortedSet Classes ArrayList LinkedList Vector HashSet PriorityQueue LinkedHashSet TreeSet Nesta lição vamos iniciar o estudo das Collections com a classe ArrayList. Classe ArrayList A classe de coleção (collections class) ArrayList&#60;T&#62;, pertencente ao pacote java.util, e que implementa a interface List, resolve o problema de modificação do tamanho de um array em tempo de execução, pois ela pode mudar seu tamanho de forma dinâmica &#8211; ou seja, permite criar um array dinâmico. A letra T indica um placeholder, que é substituído ao [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/a-classe-arraylist-e-collections-em-java/">A Classe ArrayList e Collections em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>A Classe ArrayList em Java</h2>
<p>As <em><strong>Collections</strong></em> são estruturas de dados pré-definidas, fornecidas pela API do Java, que são empregadas para armazenar grupos de objetos relacionados na memória durante a execução do programa. Com estas classes é possível organizar, armazenar e ler dados sem a necessidade de saber exatamente como os dados são armazenados (encapsulamento).</p>
<p>Um <a href="http://www.bosontreinamentos.com.br/java/como-usar-arrays-em-java/">array convencional</a> não tem seu tamanho modificado automaticamente durante a execução do programa, por exemplo para armazenar novos elementos, o que pode ser um problema, principalmente se surge a necessidade de armazenar mais elementos após um array estar completo.</p>
<p>O framework <strong>Collections</strong> em Java fornece diversas interfaces e classes para manipulação de grupos de objetos, como por exemplo:</p>
<ul>
<li>Interfaces
<ul>
<li>List</li>
<li>Set</li>
<li>Queue</li>
<li>Deque</li>
<li>SortedSet</li>
</ul>
</li>
<li>Classes
<ul>
<li>ArrayList</li>
<li>LinkedList</li>
<li>Vector</li>
<li>HashSet</li>
<li>PriorityQueue</li>
<li>LinkedHashSet</li>
<li>TreeSet</li>
</ul>
</li>
</ul>
<p>Nesta lição vamos iniciar o estudo das Collections com a classe <strong>ArrayList</strong>.</p>
<h3>Classe ArrayList</h3>
<p>A classe de coleção (collections class) <strong>ArrayList&lt;T&gt;</strong>, pertencente ao pacote <strong>java.util</strong>, e que implementa a <strong>interface List</strong>, resolve o problema de modificação do tamanho de um array em tempo de execução, pois ela pode mudar seu tamanho de forma dinâmica &#8211; ou seja, permite criar um array dinâmico. A letra <strong>T</strong> indica um <em>placeholder</em>, que é substituído ao declarar um ArrayList pelo tipo de elementos que a estrutura irá armazenar.<br />
Suponha que desejemos criar um ArrayList de <a href="http://www.bosontreinamentos.com.br/java/programacao-em-java-a-classe-string-introducao/">strings</a>, de nome produtos. Para tal, executamos a seguinte declaração:</p>
<pre><strong>ArrayList&lt;String&gt; produtos;</strong></pre>
<p>Note que somente tipos não-primitivos podem ser usados para declarar variáveis e criar objetos em classes genéricas &#8211; e o ArrayList é uma classe genérica. Ainda assim, em Java é possível usar tipos primitivos, desde que empacotados como se fossem objetos, em um processo denominado <strong>boxing</strong>. Desta forma, poderíamos criar um ArrayList de inteiros também, por exemplo:</p>
<pre><strong>ArrayList&lt;Integer&gt; numeros;</strong></pre>
<p>Ao ler um valor deste ArrayList o elemento (valor inteiro) é desempacotado (processo de <strong>unboxing</strong>).</p>
<h3>Métodos principais de um ArrayList</h3>
<p>A seguir listamos os principais métodos fornecidos por uma classe ArrayList:</p>
<ul>
<li>Método add &#8211; Adiciona um elemento no final do ArrayList.</li>
<li>Método clear &#8211; Remove todos os elementos da estrutura.</li>
<li>Método contains &#8211; Verifica se o ArrayList contém um elemento especificado, e retorna true em caso positivo, ou false caso contrário.</li>
<li>Método get &#8211; Retorna o item em uma posição de índice especificada.</li>
<li>Método indexOf &#8211; Retorna a posição de índice da primeira ocorrência de um elemento especificado.</li>
<li>Método remove &#8211; Remove a primeira ocorrência de um valor especificado ou de um elemento em um índice.</li>
<li>Método size &#8211; Informa o número de elementos que estão armazenados na estrutura.</li>
<li>Método trimToSize &#8211; Ajusta a capacidade do ArrayList de acordo com o número de elementos armazenados no momento.</li>
</ul>
<h3>Exemplo</h3>
<p>Vejamos um exemplo de uso de ArrayList.</p>
<pre><strong>import java.util.ArrayList;</strong>
<strong>public class ListaArrayList {

</strong><strong>public static void main(String[] args) {</strong>
<span style="color: #339966;"><strong>  // Criar um novo ArrayList de Strings com capacidade inicial de 10 elementos (padrão)</strong></span>
<strong>  ArrayList&lt;String&gt; frutas = new ArrayList&lt;&gt;();

</strong><strong>  frutas.add("Maçã"); <span style="color: #339966;">// Adicionar um item à lista</span></strong>
<strong>  frutas.add(0, "Uva"); <span style="color: #339966;">// Inserir a fruta Uva na posição de índice 0</span>
</strong><strong>  System.out.println("Mostrar o conteúdo do ArrayList usando laço for convencional:");

</strong><strong>  for (int i = 0; i &lt; frutas.size(); i++)</strong>
<strong>    System.out.printf(" %s", frutas.get(i));

</strong><span style="color: #339966;"><strong>  // Mostrar as frutas com o método mostrar(). Passamos a lista e um frase-cabeçalho</strong></span>
<strong>  mostrar(frutas,"%nMostrando a lista de frutas com o método mostrar:");

</strong><strong>  frutas.add("Tangerina"); <span style="color: #339966;">// Adicionar tangerina ao final da lista</span></strong>
<strong>  frutas.add("Morango"); <span style="color: #339966;">// Idem com Morango</span></strong>
<strong>  mostrar(frutas, "Nova visualização da lista após adicionar frutas:");

</strong><strong>  frutas.remove("Uva"); <span style="color: #339966;">// remover a fruta Uva"</span></strong>
<strong>  mostrar(frutas, "Nova visualização da lista após remover frutas:");

</strong><strong>  frutas.remove(1); <span style="color: #339966;">// Remover item na posição de índice 1</span></strong>
<strong>  mostrar(frutas, "Remover o segundo elemento da lista (índice 1):");

</strong><span style="color: #339966;"><strong>  // Verificar número de elementos na lista</strong></span>
<strong>  System.out.printf("Tamanho atual do ArrayList: %s itens%n", frutas.size());

</strong><span style="color: #339966;"><strong>  // Verificar se um item existe na lista</strong></span>
<strong>  System.out.printf("A fruta \"Tangerina\" %sestá na lista%n", frutas.contains("Tangerina") ? "": "não ");</strong>
<strong>}

</strong><span style="color: #339966;"><strong>// criar método para mostrar os elementos do ArrayList frutas</strong></span>
<strong>public static void mostrar(ArrayList&lt;String&gt; frutas, String cabecalho) {</strong>
<strong>  System.out.printf(cabecalho); // mostrar cabeçalho

</strong><strong>  for (String item : frutas)</strong>
<strong>    System.out.printf(" %s", item);</strong>
<strong>    System.out.println();</strong>
<strong>  }</strong>
<strong>}</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15988 size-full" title="Exemplo de ArrayList em Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/ArrayList-Java-exemplo.png" alt="Exemplo de ArrayList em Java" width="774" height="184" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/ArrayList-Java-exemplo.png 774w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/ArrayList-Java-exemplo-420x100.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/ArrayList-Java-exemplo-768x183.png 768w" sizes="auto, (max-width: 774px) 100vw, 774px" /></p>
<p>Neste exemplo criamos um ArrayList de String chamado de frutas, e adicionamos dois nomes de frutas a ele usando o método <em><strong>add</strong></em>.</p>
<p>Logo após, mostramos o conteúdo do ArrayList iterando pelos seus elementos com um laço for, e lendo cada item com o método <em><strong>get</strong></em>.</p>
<p>Também criamos um método especial para mostrar o conteúdo do ArrayList, de nome <em><strong>mostrar()</strong></em>, que recebe como argumentos o nome do ArrayList e uma mensagem a ser exibida juntamente com os elementos retornados.</p>
<p>Removemos um elemento usando o método <em><strong>remove</strong></em>, e verificamos o seu tamanho com o método <em><strong>size</strong></em>.</p>
<p>Finalmente, verificamos se um item está contido no ArrayList usando o método <em><strong>contains</strong></em>.</p>
<p>Na próxima lição vamos estudar as listas ligadas, implementadas com a classe LinkedList.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/a-classe-arraylist-e-collections-em-java/">A Classe ArrayList e Collections em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/a-classe-arraylist-e-collections-em-java/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Como criar e editar arquivos de texto de acesso sequencial em Java</title>
		<link>https://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/</link>
					<comments>https://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Sat, 14 Dec 2019 19:02:34 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15969</guid>

					<description><![CDATA[<p>Como criar e editar arquivos de texto de acesso sequencial em Java Um arquivo de acesso sequencial é um arquivo no qual os dados (registros) são armazenados em ordem, por um campo registro-chave. Vamos criar nesta lição um arquivo de texto, incluindo escrita, leitura e edição de seu conteúdo. Criar classe para manipular arquivo de texto Para nosso exemplo vamos criar a classe CriarArquivoTexto, que irá usar um objeto Formatter para gerar Strings formatadas, da mesma forma que o método System.out.printf trabalha. E com ele criaremos ou abriremos um arquivo de texto que nomearemos como &#8220;arquivo.txt&#8220;. Se o arquivo não existir, ele será criado; caso o arquivo já exista no sistema, ele será truncado, ou seja, todo o seu conteúdo será apagado e substituído pelo novo conteúdo digitado. Exemplo Vejamos um exemplo de criação e edição de arquivo de texto em Java, adaptado de Deitel &#8211; Java How to Program, 10ª edição: package criarArquivoTexto; import java.io.FileNotFoundException; import java.lang.SecurityException; import java.util.Formatter; import java.util.FormatterClosedException; import java.util.NoSuchElementException; import java.util.Scanner; public class CriarArquivoTexto { private static Formatter saida; // envia texto para um arquivo public static void main(String[] args) { abrirArquivo(); adicionarDados(); fecharArquivo(); } // Método para abrir (ou criar) o arquivo arquivo.txt public [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/">Como criar e editar arquivos de texto de acesso sequencial em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como criar e editar arquivos de texto de acesso sequencial em Java</h2>
<p>Um arquivo de acesso sequencial é um arquivo no qual os dados (registros) são armazenados em ordem, por um campo registro-chave. Vamos criar nesta lição um arquivo de texto, incluindo escrita, leitura e edição de seu conteúdo.</p>
<h3>Criar classe para manipular arquivo de texto</h3>
<p>Para nosso exemplo vamos criar a classe CriarArquivoTexto, que irá usar um objeto <strong>Formatter</strong> para gerar Strings formatadas, da mesma forma que o método System.out.printf trabalha. E com ele criaremos ou abriremos um arquivo de texto que nomearemos como &#8220;<strong>arquivo.txt</strong>&#8220;.</p>
<p>Se o arquivo não existir, ele será criado; caso o arquivo já exista no sistema, ele será truncado, ou seja, todo o seu conteúdo será apagado e substituído pelo novo conteúdo digitado.</p>
<h3>Exemplo</h3>
<p>Vejamos um exemplo de criação e edição de arquivo de texto em Java, adaptado de Deitel &#8211; <strong><em>Java How to Program</em></strong>, 10ª edição:</p>
<pre><strong>package criarArquivoTexto;</strong>
<strong>import java.io.FileNotFoundException;</strong>
<strong>import java.lang.SecurityException;</strong>
<strong>import java.util.Formatter;</strong>
<strong>import java.util.FormatterClosedException;</strong>
<strong>import java.util.NoSuchElementException;</strong>
<strong>import java.util.Scanner;

</strong><strong>public class CriarArquivoTexto {
</strong><strong>  private static Formatter saida; <span style="color: #339966;">// envia texto para um arquivo

</span></strong><strong>    public static void main(String[] args) {</strong>
<strong>      abrirArquivo();</strong>
<strong>      adicionarDados();</strong>
<strong>      fecharArquivo();</strong>
<strong>    }

</strong><span style="color: #339966;"><strong>    // Método para abrir (ou criar) o arquivo arquivo.txt</strong></span>
<strong>    public static void abrirArquivo() {</strong>
<strong>      try {</strong>
<strong>        saida = new Formatter("arquivo.txt"); <span style="color: #339966;">// Abrir o arquivo</span></strong>
<strong>      }</strong>
<strong>      catch (SecurityException securityException) {</strong>
<strong>        System.err.println("Não é possível escrever no arquivo. Finalizando.");</strong>
<strong>        System.exit(1); <span style="color: #339966;">// terminar o programa</span></strong>
<strong>      }</strong>
<strong>      catch (FileNotFoundException fileNotFoundException) {</strong>
<strong>        System.err.println("Erro ao abrir o arquivo. Finalizando.");</strong>
<strong>        System.exit(1); <span style="color: #339966;">// Finalizar o programa</span></strong>
<strong>      }</strong>
<strong>   }

</strong><span style="color: #339966;"><strong>    // Método para adicionar registros ao arquivo</strong></span>
<strong>    public static void adicionarDados() {</strong>
<strong>      Scanner entrada = new Scanner(System.in);</strong>
<strong>      System.out.printf("%s%n","Entre com o código do produto e nome do item para cadastro:");</strong>
<strong>      System.out.printf("%s%n","Para salvar os dados inseridos pressione Ctrl+Z:");</strong>
<strong>      while (entrada.hasNext()) { <span style="color: #339966;">// iterar até que seja encontrado o marcador de fim-de-arquivo</span></strong>
<strong>        try {</strong>
<span style="color: #339966;"><strong>          // Gravar novo registro no arquivo; não verifica se entrada é válida.</strong></span>
<strong>          saida.format("%d %s %n", entrada.nextInt(),entrada.next());</strong>
<strong>        }</strong>
<strong>        catch (FormatterClosedException formatterClosedException) {</strong>
<strong>          System.err.println("Erro ao escrever no arquivo. Finalizando.");</strong>
<strong>          break;</strong>
<strong>        }</strong>
<strong>        catch (NoSuchElementException elementException) {</strong>
<strong>          System.err.println("Entrada inválida. Tente novamente.");</strong>
<strong>          entrada.nextLine(); <span style="color: #339966;">// Descartar a entrada para que o usuário possa tentar de novo</span></strong>
<strong>        }</strong>
<strong>        System.out.print("Entre com o próximo código e item:\n");</strong>
<strong>      } <span style="color: #339966;">// Fim do laço while</span></strong>
<strong>    } <span style="color: #339966;">// Fim do método adicionarDados

</span></strong><span style="color: #339966;"><strong>    // Método para fechar o arquivo</strong></span>
<strong>    public static void fecharArquivo() {</strong>
<strong>      if (saida != null)</strong>
<strong>        saida.close();</strong>
<strong>    }</strong>
<strong>} <span style="color: #339966;">// Fim da classe CriarArquivoTexto</span></strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15973 size-full" title="Criar arquivo de texto com Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/criar-arquivo-texto-Java.png" alt="Criar arquivo de texto com Java" width="607" height="271" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/criar-arquivo-texto-Java.png 607w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/criar-arquivo-texto-Java-420x188.png 420w" sizes="auto, (max-width: 607px) 100vw, 607px" /></p>
<p>Note que para sinalizar o final de arquivo e sair do programa, usamos a combinação de teclas Ctrl+Z. Esse é o marcador EOF padrão no Windows. Se estiver usando outro sistema operacional, o marcador poderá ser diferente:</p>
<table style="border-collapse: collapse; width: 86.1139%; height: 79px;" border="1">
<thead>
<tr>
<td style="width: 50%; text-align: center;"><strong>Sistema Operacional</strong></td>
<td style="width: 50%; text-align: center;"><strong>Marcador EOF (Combinação de teclas)</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td style="width: 50%; text-align: center;">Microsoft Windows</td>
<td style="width: 50%; text-align: center;">Ctrl + Z</td>
</tr>
<tr>
<td style="width: 50%; text-align: center;">Unix / Linux / Mac OS X</td>
<td style="width: 50%; text-align: center;">&lt;Enter&gt; Ctrl + d</td>
</tr>
</tbody>
</table>
<p>Após a execução do programa, podemos entrar na pasta do projeto e lá encontraremos o arquivo gerado. Se o abrirmos usando o editor de texto padrão do sistema, veremos o conteúdo que foi fornecido à aplicação anteriormente:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15974 size-full" title="Arquivo de texto criado com Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/criar-arquivo-texto-Java-bloco-de-notas.png" alt="Arquivo de texto criado com Java" width="363" height="214"></p>
<p>Arquivo criado e dados salvos com sucesso! Na próxima lição vamos aprender a ler os dados armazenados em um arquivo de texto sequencial usando Java.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/">Como criar e editar arquivos de texto de acesso sequencial em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/como-criar-e-editar-arquivos-de-texto-de-acesso-sequencial-em-java/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Obter informações sobre arquivos e diretórios com Java e classes NIO</title>
		<link>https://www.bosontreinamentos.com.br/java/obter-informacoes-sobre-arquivos-e-diretorios-com-java-e-classes-nio/</link>
					<comments>https://www.bosontreinamentos.com.br/java/obter-informacoes-sobre-arquivos-e-diretorios-com-java-e-classes-nio/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 13 Dec 2019 13:38:35 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15943</guid>

					<description><![CDATA[<p>Obter informações sobre arquivos e diretórios com Java e classes NIO Os dados presentes na memória RAM do computador são temporários, o que significa que são perdidos em algum momento, por exemplo ao desligar a máquina. Isso inclui dados presentes nas variáveis dentro de um programa &#8211; como as aplicações Java &#8211; o que nos traz o seguinte problema: como armazenar dados de forma permanente, sem que haja perda de informação? A questão é muito importante, pois é muito comum que haja a necessidade de armazenar informação para uso posterior. Para tal fazemos uso de arquivos, que são conjuntos de dados estruturados armazenados em dispositivos de armazenamento secundários, como um disco rígido, SSD ou mídia óptica, por exemplo. Dados gravados nesses dispositivos são dados persistentes &#8211; continuam existindo mesmo após terminada a execução de um programa. Neste lição vamos introduzir a manipulação de arquivos em Java, mostrando como é possível obter informações sobre arquivos e diretórios existentes em uma mídia, como no HD do computador. O que veremos neste tutorial: Quais classes manipulam arquivos em Java? O que são Streams em Java? O que são Dispositivos Especiais? Para que servem os pacotes java.io e java.nio? Como usar as classes Paths [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/obter-informacoes-sobre-arquivos-e-diretorios-com-java-e-classes-nio/">Obter informações sobre arquivos e diretórios com Java e classes NIO</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Obter informações sobre arquivos e diretórios com Java e classes NIO</h2>
<p>Os dados presentes na memória RAM do computador são temporários, o que significa que são perdidos em algum momento, por exemplo ao desligar a máquina. Isso inclui dados presentes nas variáveis dentro de um programa &#8211; como as aplicações Java &#8211; o que nos traz o seguinte problema: como armazenar dados de forma permanente, sem que haja perda de informação?</p>
<p>A questão é muito importante, pois é muito comum que haja a necessidade de armazenar informação para uso posterior. Para tal fazemos uso de arquivos, que são conjuntos de dados estruturados armazenados em dispositivos de armazenamento secundários, como um disco rígido, SSD ou mídia óptica, por exemplo. Dados gravados nesses dispositivos são dados persistentes &#8211; continuam existindo mesmo após terminada a execução de um programa.</p>
<p>Neste lição vamos introduzir a manipulação de arquivos em Java, mostrando como é possível obter informações sobre arquivos e diretórios existentes em uma mídia, como no HD do computador.</p>
<p>O que veremos neste tutorial:</p>
<ul>
<li><a href="#classes-manipular-arquivos-java">Quais classes manipulam arquivos em Java?</a></li>
<li><a href="#streams-java-fluxos">O que são Streams em Java?</a></li>
<li><a href="#dispositivos-especiais-java">O que são Dispositivos Especiais?</a></li>
<li><a href="#pacotes-java.io-java.nio-java">Para que servem os pacotes java.io e java.nio?</a></li>
<li><a href="#classe-paths-classe-files-java">Como usar as classes Paths e Files em Java?</a></li>
</ul>
<h3 id="classes-manipular-arquivos-java">Classes para manipulação de arquivos em Java</h3>
<p>Existem diversas classes e interfaces que permitem a manipulação de arquivos e pastas em Java. Vamos estudar as seguintes neste tutorial:</p>
<ul>
<li>Pacote java.nio.file</li>
<li>Classe Paths</li>
<li>Classe Files</li>
<li>Interface Path</li>
<li>Interface DirectoryStream</li>
</ul>
<h3 id="streams-java-fluxos">Fluxos (Streams)</h3>
<p>Em Java, os arquivos são vistos como fluxos sequenciais de bytes (<em><strong>streams</strong></em>). Ao processar um arquivo, o Java processa um fluxo de bytes até encontrar um marcador especial que indica o final do fluxo &#8211; ou seja, o final do arquivo. Chamamos a esse marcados de Marcador de Fim-de-Arquivo (<strong>End-Of-File / EOF</strong>).</p>
<p>Os fluxos de dados podem ser de dois tipos:</p>
<ul>
<li><strong>Baseado em Bytes</strong> &#8211; Os dados são lidos e gravados em formato binário (bits), de modo que, por exemplo, um dado do tipo <em>int</em> ocupe quatro bytes, um do tipo <em>char</em>, dois bytes, e assim sucessivamente, dependendo do tipo de dado. Arquivos criados com fluxo baseado em bytes são denominados Arquivos Binários.<br />
Somente programas que entendam a organização dos bytes são capazes de ler esse tipo de arquivo.</li>
<li><strong>Baseado em Caracteres</strong> &#8211; Neste caso, os dados são lidos e gravados como <a href="http://www.bosontreinamentos.com.br/java/a-classe-character-em-java/">sequências de caracteres</a>, sendo que cada caractere tem dois bytes de tamanho, e o tamanho de um dado depende, assim, do número de caracteres que ele possui. Arquivos criados com fluxo baseado em caracteres são denominados Arquivos de Texto.<br />
Editores de texto são capazes de ler este tipo de arquivo.</li>
</ul>
<h3 id="dispositivos-especiais-java">Fluxos e dispositivos especiais</h3>
<p>Um fluxo de dados pode ser associado a diferentes dispositivos pelo Java. Ao iniciar um programa, o Java cria três objetos de fluxo, associados com dispositivos: <em><strong>System.in</strong></em>, <em><strong>System.out</strong></em> e <em><strong>System.err</strong></em>. Dois deles você provavelmente já viu em algum programa &#8211; lembra-se do System.in em um objeto Scanner, ou do System,out ao chamar um método printf ou println? Esses dispositivos representam o seguinte:</p>
<ul>
<li><strong>System.in</strong> &#8211; Dispositivo de entrada padrão, que habilita um programa a receber dados oriundos do teclado.</li>
<li><strong>System.out</strong> &#8211; Saída padrão. Habilita o programa a enviar dados de saída à tela.</li>
<li><strong>System.err</strong> &#8211; Erro padrão. Permite que um programa envie mensagens de erro para a tela.</li>
</ul>
<p>Esses fluxos de dados podem ser redirecionados, de modo que seja possível ler entrada de dados de outros dispositivos, por exemplo, ou enviá-los para outro local.</p>
<h3 id="pacotes-java.io-java.nio-java">Pacotes java.io e java.nio</h3>
<p>Esses pacotes possuem as classes e interfaces empregadas no processamento de fluxos de dados em Java. Vamos trabalhar com esses elementos em um programa simples, que irá mostrar dados sobre arquivos e diretórios especificados no console. Antes disso, vamos descrever as principais classes que serão empregadas:</p>
<ul>
<li><strong>Interface Path</strong> &#8211; Os objetos de classes que implementam esta interface permitem representar o local de um arquivo ou diretório no sistema. Porém, não permitem abrir ou editar arquivos.</li>
<li><strong>Interface DirectoryStream</strong> &#8211; Os objetos de classes que implementam esta interface permitem que a aplicação seja capaz de iterar pelo conteúdo de uma pasta no sistema.</li>
<li><strong>Classe Paths</strong> &#8211; Esta classe fornece métodos estáticos que são empregados para obter um objeto Path, que representa o local de um arquivo ou diretório no sistema. Um objeto <strong>Path</strong> é criado por meio do uso do método estático <strong>get</strong> desta classe, o qual converte uma String que representa o local de um arquivo ou diretório no objeto.</li>
<li><strong>Classe Files</strong> &#8211; Esta classe fornece métodos estáticos que podem ser usados para realizar manipulação de arquivos e diretórios, como criar, excluir ou copiar arquivos, obter dados sobre arquivos e diretórios, ler o conteúdo de um arquivo, entre outros.</li>
</ul>
<h3 id="classe-paths-classe-files-java">Exemplo</h3>
<p>No exemplo mostrado a seguir, usamos as classes e interfaces apresentadas para obter informações sobre um arquivo ou diretório, cujo caminho é fornecido pelo usuário e lido por um objeto Scanner.</p>
<pre><strong>package lerGravarArquivos;</strong>
<strong>import java.io.IOException;</strong>
<strong>import java.nio.file.DirectoryStream;</strong>
<strong>import java.nio.file.Files;</strong>
<strong>import java.nio.file.Path;</strong>
<strong>import java.nio.file.Paths;</strong>
<strong>import java.util.Scanner;</strong>
<strong>public class LerGravarArquivos {

</strong><strong>  public static void main(String[] args) throws IOException {

</strong><strong>    Scanner entrada = new Scanner(System.in);</strong>
<strong>    System.out.println("Entre com o nome do arquivo ou diretório:");

</strong><span style="color: #339966;"><strong>    // Criar objeto Path com a entrada fornecida pelo usuário</strong></span>
<strong>    Path caminho = Paths.get(entrada.nextLine());

</strong><span style="color: #339966;"><strong>    // Verificar se o caminho existe, e mostrar informações sobre ele em caso positivo:</strong></span>
<strong>    if (Files.exists(caminho)) {</strong>
<strong>      System.out.printf("Nome do arquivo: %s%n", caminho.getFileName());</strong>
<strong>      System.out.printf("É diretório? %s%n",Files.isDirectory(caminho)?"Sim":"Não");</strong>
<strong>      System.out.printf("Última modificação: %s%n",Files.getLastModifiedTime(caminho));</strong>
<strong>      System.out.printf("Tamanho: %s%n",Files.size(caminho));</strong>
<strong>      System.out.printf("Caminho: %s%n",caminho);

</strong><span style="color: #339966;"><strong>      //Se for diretório, mostrar seu conteúdo:</strong></span>
<strong>      if (Files.isDirectory(caminho)) {</strong>
<strong>        System.out.println("Conteúdo do diretório:\n");</strong>
<strong>        DirectoryStream&lt;Path&gt; directoryStream = Files.newDirectoryStream(caminho);</strong>
<strong>        for (Path cam : directoryStream) {</strong>
<strong>          System.out.println(cam);</strong>
<strong>        }</strong>
<strong>      }</strong>
<strong>    }</strong>
<strong>    else { <span style="color: #339966;">// Se o caminho não for arquivo ou diretório, apresentar mensagem de erro</span></strong>
<strong>      System.out.printf("%nO caminho %s não existe.",caminho);</strong>
<strong>    }</strong>
<strong>  }</strong>
<strong>}</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15945 size-full" title="obter dados sobre Arquivos e diretórios em Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/arquivos-diretorios-java-nio.png" alt="obter dados sobre Arquivos e diretórios em Java" width="525" height="487" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/arquivos-diretorios-java-nio.png 525w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/arquivos-diretorios-java-nio-420x390.png 420w" sizes="auto, (max-width: 525px) 100vw, 525px" /></p>
<p>Os métodos empregados são, basicamente, auto-explicativos. Note que é importante acrescentar a declaração <em><strong>throws IOException</strong></em> no método <em><strong>main</strong></em>, caso contrário alguns dos métodos empregados no programa não serão executados pelo compilador.</p>
<p>Nas próximas lições veremos como criar, editar e manipular arquivos de texto em Java.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/obter-informacoes-sobre-arquivos-e-diretorios-com-java-e-classes-nio/">Obter informações sobre arquivos e diretórios com Java e classes NIO</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/obter-informacoes-sobre-arquivos-e-diretorios-com-java-e-classes-nio/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Como tokenizar strings em Java com o método split</title>
		<link>https://www.bosontreinamentos.com.br/java/como-tokenizar-strings-em-java-com-o-metodo-split/</link>
					<comments>https://www.bosontreinamentos.com.br/java/como-tokenizar-strings-em-java-com-o-metodo-split/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Thu, 12 Dec 2019 12:44:59 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Análise de Dados]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15934</guid>

					<description><![CDATA[<p>Como tokenizar strings em Java com o método split da classe String Damos o nome de tokens às palavras individuais e marcas de pontuação (pontos, vírgulas, etc) que compõem e dão sentido a uma frase ou parágrafo de texto. Quando lemos um texto qualquer, nosso cérebro efetua a separação dessas palavras automaticamente, de modo a entendermos o significado do conteúdo lido. Não só nós realizamos esse processo &#8211; compiladores, por exemplo, também realizam a separação de sentença e comandos em partes individuais, como palavras-chave, operadores, nomes de objetos e outros elementos que compõem o código-fonte. Em outras palavras, os compiladores tokenizam o código para analisá-lo, antes de tentar executá-lo. Em Java, é possível realizar essa separação de elementos em uma string &#8211; ou seja, tokenizar &#8211; por meio do emprego do método split, pertencente à classe String. Método split &#8211; Divide um objeto String em seus tokens componentes, separados entre si por delimitadores especificados. Comumente, os delimitadores empregados são caracteres de espaço, tabulação, newline (quebra de linha), entre outros. Mas também é possível usar outros caracteres como delimitadores &#8211; por exemplo, é comum usar vírgulas em arquivos do tipo CSV (comma-separated values / valores separados por vírgulas). O método split [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/como-tokenizar-strings-em-java-com-o-metodo-split/">Como tokenizar strings em Java com o método split</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Como tokenizar strings em Java com o método split da classe String</h2>
<p>Damos o nome de <em><strong>tokens</strong></em> às palavras individuais e marcas de pontuação (pontos, vírgulas, etc) que compõem e dão sentido a uma frase ou parágrafo de texto. Quando lemos um texto qualquer, nosso cérebro efetua a separação dessas palavras automaticamente, de modo a entendermos o significado do conteúdo lido.</p>
<p>Não só nós realizamos esse processo &#8211; compiladores, por exemplo, também realizam a separação de sentença e comandos em partes individuais, como palavras-chave, operadores, nomes de objetos e outros elementos que compõem o código-fonte.<br />
Em outras palavras, os compiladores <strong>tokenizam</strong> o código para analisá-lo, antes de tentar executá-lo.</p>
<p>Em Java, é possível realizar essa separação de elementos em uma string &#8211; ou seja, tokenizar &#8211; por meio do emprego do método <em><strong>split</strong></em>, pertencente à <a href="http://www.bosontreinamentos.com.br/java/programacao-em-java-a-classe-string-introducao/">classe String</a>.</p>
<p>Método split &#8211; Divide um objeto String em seus tokens componentes, separados entre si por delimitadores especificados. Comumente, os delimitadores empregados são caracteres de espaço, tabulação, newline (quebra de linha), entre outros. Mas também é possível usar outros caracteres como delimitadores &#8211; por exemplo, é comum usar vírgulas em arquivos do tipo <strong>CSV</strong> (comma-separated values / valores separados por vírgulas).</p>
<p>O método split toma como argumento um caractere a ser considerado como delimitador.</p>
<h3>Exemplo</h3>
<p>Vejamos um exemplo de tokenização de uma String em Java.</p>
<pre><strong>Scanner entrada = new Scanner(System.in);</strong>
<strong>System.out.println("Digite um texto para ser dividido em seus tonkens constituintes, e pressione enter:");</strong>
<strong>String texto = entrada.nextLine();</strong>
<span style="color: #339966;"><strong>// Realizar o processamento da frase, separando seus tokens</strong></span>
<strong>String[] tokens = texto.split(" ");</strong>
<span style="color: #339966;"><strong>//Informar quantos tokens há na frase:</strong></span>
<strong>System.out.printf("%nA frase informada possui %d tokens.%n", tokens.length);</strong>
<span style="color: #339966;"><strong>//Mostrar os tokens obtidos</strong></span>
<strong>System.out.println("Os tokens da frase são:\n");</strong>
<strong>for (String item : tokens) {</strong>
<strong>  System.out.println(item);</strong>
<strong>}</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15938 size-full" title="como tokenizar strings em Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/token-strings-Java.png" alt="como tokenizar strings em Java" width="837" height="330" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/token-strings-Java.png 837w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/token-strings-Java-420x166.png 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/token-strings-Java-768x303.png 768w" sizes="auto, (max-width: 837px) 100vw, 837px" /></p>
<p>Neste exemplo, a frase informada é tokenizada pelo método split, que recebeu como argumento o delimitador espaço (&#8221; &#8220;), e os tokens individuais são armazenados em um array de String que chamamos de tokens. Assim, podemos acessar qualquer um dos tokens simplesmente lendo uma posição no array, ou imprimir todos eles, como fizemos no programa.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/como-tokenizar-strings-em-java-com-o-metodo-split/">Como tokenizar strings em Java com o método split</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/como-tokenizar-strings-em-java-com-o-metodo-split/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Converter caracteres e dígitos com digit e forDigit, métodos da classe Character em Java</title>
		<link>https://www.bosontreinamentos.com.br/java/converter-caracteres-e-digitos-com-digit-e-fordigit-metodos-da-classe-character-em-java/</link>
					<comments>https://www.bosontreinamentos.com.br/java/converter-caracteres-e-digitos-com-digit-e-fordigit-metodos-da-classe-character-em-java/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Thu, 12 Dec 2019 12:41:03 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Orientação a Objetos]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=15927</guid>

					<description><![CDATA[<p>Converter caracteres e dígitos com digit e forDigit Em Java é possível realizar conversão entre dados do tipo caractere e dígitos numéricos, em diversas bases, com o emprego de alguns métodos da classe Character. Neste tutorial veremos como fazer isso usando os métodos digit e forDigit. Método forDigit &#8211; Converte um dígito inteiro em caractere, na base (sistema de numeração) especificada pelo inteiro radix (base). Por exemplo, o valor inteiro decimal 15, ao ser convertido em seu caractere correspondente na base 16, é representado por &#8216;F&#8217; (sem distinção entre maiúsculas e minúsculas). Sua sintaxe é a seguinte: forDigit(numero,base) Método digit &#8211; Converte um valor de caractere em um número inteiro especificado por um valor de base inteiro (radix). Por exemplo, o caractere &#8216;B&#8217;, na base 16, é convertido para o valor 11 na base 10 (decimal). O valor de base (radix) deve ser um número entre 2 e 36, inclusive.&#160;Sua sintaxe é a seguinte: digit(caractere,base) Exemplo Vejamos dois exemplos de conversão usando esses métodos em Java. Scanner entrada = new Scanner(System.in); System.out.println("Digite o valor da base numérica, entre 2 e 36:"); int base = entrada.nextInt(); System.out.println("\nDigite o caractere desejado para conversão:"); char caractere = entrada.next().charAt(0); System.out.println("\nDigite o número desejado para [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/converter-caracteres-e-digitos-com-digit-e-fordigit-metodos-da-classe-character-em-java/">Converter caracteres e dígitos com digit e forDigit, métodos da classe Character em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Converter caracteres e dígitos com digit e forDigit</h2>
<p>Em Java é possível realizar conversão entre dados do tipo caractere e dígitos numéricos, em diversas bases, com o emprego de alguns métodos da classe Character. Neste tutorial veremos como fazer isso usando os métodos <strong>digit</strong> e <strong>forDigit</strong>.</p>
<ul>
<li><strong>Método forDigit</strong> &#8211; Converte um dígito inteiro em caractere, na base (sistema de numeração) especificada pelo inteiro radix (base). Por exemplo, o valor inteiro decimal 15, ao ser convertido em seu caractere correspondente na base 16, é representado por &#8216;F&#8217; (sem distinção entre maiúsculas e minúsculas). Sua sintaxe é a seguinte:
<pre>forDigit(numero,base)</pre>
</li>
<li><strong>Método digit</strong> &#8211; Converte um valor de caractere em um número inteiro especificado por um valor de base inteiro (radix). Por exemplo, o caractere &#8216;B&#8217;, na base 16, é convertido para o valor 11 na base 10 (decimal). O valor de base (radix) deve ser um número entre 2 e 36, inclusive.&nbsp;Sua sintaxe é a seguinte:
<pre>digit(caractere,base)</pre>
</li>
</ul>
<h3>Exemplo</h3>
<p>Vejamos dois exemplos de conversão usando esses métodos em Java.</p>
<pre><strong>Scanner entrada = new Scanner(System.in);

</strong><strong>System.out.println("Digite o valor da base numérica, entre 2 e 36:");</strong>
<strong>int base = entrada.nextInt();

</strong><strong>System.out.println("\nDigite o caractere desejado para conversão:");</strong>
<strong>char caractere = entrada.next().charAt(0);

</strong><strong>System.out.println("\nDigite o número desejado para conversão:");</strong>
<strong>int numero = entrada.nextInt();

</strong><strong>System.out.printf("%d convertido em caractere equivale a \'%s\'%n", numero, Character.forDigit(numero, base));</strong>
<strong>System.out.printf("\'%s\' convertido em dígito base %d equivale a %d%n", caractere, base, Character.digit(caractere, base));</strong></pre>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15931 size-full" title="Metodos digit e forDigit da classe Character em Java" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/digit-forDigit-classe-character-Java.png" alt="Metodos digit e forDigit da classe Character em Java" width="508" height="227" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/digit-forDigit-classe-character-Java.png 508w, https://www.bosontreinamentos.com.br/wp-content/uploads/2019/12/digit-forDigit-classe-character-Java-420x188.png 420w" sizes="auto, (max-width: 508px) 100vw, 508px" /></p>
<p>Neste exemplo, convertemos o valor numérico 14 em seu caractere correspondente no sistema hexadecimal (base 16), que é a letra &#8216;e&#8217;, e realizamos a conversão inversa &#8211; fornecemos o valor &#8216;A&#8221; em hexadecimal e o convertemos em seu valor correspondente no sistema decimal.</p>
<p>Anterior: A <a href="http://www.bosontreinamentos.com.br/java/a-classe-character-em-java/">Classe Character em Java</a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/java/converter-caracteres-e-digitos-com-digit-e-fordigit-metodos-da-classe-character-em-java/">Converter caracteres e dígitos com digit e forDigit, métodos da classe Character em Java</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/java/converter-caracteres-e-digitos-com-digit-e-fordigit-metodos-da-classe-character-em-java/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
