<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Marcos</title>
    <description>The latest articles on Forem by Marcos (@malheiros).</description>
    <link>https://forem.com/malheiros</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1574923%2Fe82b157f-5a8f-486e-ae3b-a274fd11fe77.png</url>
      <title>Forem: Marcos</title>
      <link>https://forem.com/malheiros</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/malheiros"/>
    <language>en</language>
    <item>
      <title>Variables | Constants | Types in Swift</title>
      <dc:creator>Marcos</dc:creator>
      <pubDate>Thu, 28 Nov 2024 05:37:53 +0000</pubDate>
      <link>https://forem.com/malheiros/variables-constants-types-in-swift-2jgo</link>
      <guid>https://forem.com/malheiros/variables-constants-types-in-swift-2jgo</guid>
      <description>&lt;p&gt;Variables | Constants | Types in Swift are created using &lt;code&gt;var&lt;/code&gt; for variables and &lt;code&gt;let&lt;/code&gt; for constants.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="c1"&gt;// Creates a constant with an integer value&lt;/span&gt;

&lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;decimal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;3.0&lt;/span&gt; &lt;span class="c1"&gt;// Creates a variable with a Double value&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Swift has basic types such as &lt;code&gt;Int&lt;/code&gt;, &lt;code&gt;Float&lt;/code&gt;, &lt;code&gt;Double&lt;/code&gt;, &lt;code&gt;String&lt;/code&gt;, and &lt;code&gt;Bool&lt;/code&gt;, and it also allows you to create custom types, but this is more advanced content.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;integer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="c1"&gt;// Type Int&lt;/span&gt;

&lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;float&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.11111&lt;/span&gt; &lt;span class="c1"&gt;// Type Float, with up to 6 decimal places of precision&lt;/span&gt;

&lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;double&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.11111111111111&lt;/span&gt; &lt;span class="c1"&gt;// Type Double, with up to 15 decimal places of precision&lt;/span&gt;

&lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Marcos"&lt;/span&gt; &lt;span class="c1"&gt;// Type String, a single-line string&lt;/span&gt;

&lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;multiLineString&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"""
This is
a multi-line
string
"""&lt;/span&gt; &lt;span class="c1"&gt;// Type String, to create a multi-line string, we use triple quotes ("""") at the beginning and end&lt;/span&gt;

&lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;boolean&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="c1"&gt;// Type Boolean (Bool), which holds a true or false value&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you may notice, in Swift, most of the time we don't need to explicitly specify the type. This is due to &lt;strong&gt;Type Inference&lt;/strong&gt;, which automatically assigns the appropriate type to the variable or constant based on the value assigned to it.&lt;/p&gt;

</description>
      <category>swift</category>
      <category>beginners</category>
    </item>
    <item>
      <title>System.out.println("Introdução ao Java")</title>
      <dc:creator>Marcos</dc:creator>
      <pubDate>Thu, 27 Jun 2024 16:05:52 +0000</pubDate>
      <link>https://forem.com/malheiros/systemoutprintlnintroducao-ao-java-35k5</link>
      <guid>https://forem.com/malheiros/systemoutprintlnintroducao-ao-java-35k5</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;HelloWorld&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello, World!"&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Linguagem Verbosa?
&lt;/h2&gt;

&lt;p&gt;Ao começarmos a estudar Java e observarmos o código acima, podemos ficar um pouco assustados com a quantidade de palavras necessárias para imprimir um simples &lt;strong&gt;Hello, World!&lt;/strong&gt;. Isso às vezes pode dar a impressão de que é uma linguagem difícil, o que pode desmotivar os iniciantes a explorá-la mais a fundo logo de início, criando uma espécie de preconceito sem um entendimento mais profundo da linguagem.&lt;/p&gt;

&lt;h2&gt;
  
  
  O Que São Essas Palavras: public, class, static, void, main...
&lt;/h2&gt;

&lt;p&gt;Quando executamos o código acima, a Máquina Virtual Java (JVM) procura pelo bloco &lt;code&gt;main&lt;/code&gt; e o executa. Normalmente, as aplicações têm apenas um único método do tipo, como o próprio nome sugere: o método principal da aplicação, o ponto de partida.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;public&lt;/code&gt; é um modificador de acesso que indica o tipo da classe &lt;strong&gt;HelloWorld&lt;/strong&gt;, permitindo que ela seja acessada por qualquer outro pacote. Além dele, existem os modificadores &lt;code&gt;protected&lt;/code&gt; e &lt;code&gt;private&lt;/code&gt;, que serão abordados em outro momento.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;class&lt;/code&gt; é a palavra reservada usada para indicar uma classe, que neste caso é &lt;strong&gt;HelloWorld&lt;/strong&gt;. É importante lembrar que o nome da classe deve coincidir com o nome do arquivo Java onde está definida (neste caso, HelloWorld.java).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;static&lt;/code&gt; indica que o método &lt;code&gt;main&lt;/code&gt; pertence à própria classe HelloWorld e não a instâncias específicas dessa classe. Isso significa que o método pode ser chamado sem precisar criar um objeto da classe HelloWorld.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;void&lt;/code&gt; é o tipo de retorno do método &lt;code&gt;main&lt;/code&gt;, significando que o método não retorna nenhum valor.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;String[] args&lt;/code&gt; é o parâmetro do método &lt;code&gt;main&lt;/code&gt;. &lt;code&gt;args&lt;/code&gt; é uma matriz (array) de strings que permite passar argumentos de linha de comando para o programa Java quando ele é executado.&lt;/p&gt;

&lt;p&gt;Entendendo essas definições, podemos compreender que Java é uma linguagem &lt;strong&gt;imperativa&lt;/strong&gt;. Ao contrário de linguagens declarativas, onde dizemos o que queremos e a linguagem decide como realizar o processo, em linguagens imperativas precisamos fornecer instruções sobre como o processo deve ser executado. Isso nos proporciona alguns benefícios, como:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Controle detalhado do fluxo de execução: Em linguagens imperativas, temos controle explícito sobre como o programa executa cada passo. Isso é útil para que os programadores entendam exatamente o que está acontecendo e para otimizar o desempenho do código.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Facilidade na depuração de erros: Como especificamos cada passo do processo, é mais fácil identificar e corrigir erros quando eles ocorrem. Mensagens de erro geralmente indicam claramente onde um problema ocorreu no código imperativo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Desempenho: Em muitos casos, linguagens imperativas permitem otimizações mais diretas e eficientes, já que o programador tem controle sobre como os recursos do sistema são utilizados.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adaptabilidade a diferentes contextos: A programação imperativa é bastante flexível e pode ser adaptada para resolver uma ampla gama de problemas, desde os mais simples até aplicações complexas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Controle de estado: Em linguagens imperativas, o estado do programa é explicitamente manipulado por meio de variáveis e estruturas de dados. Isso facilita o gerenciamento de dados mutáveis e o controle do estado interno do programa.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;O quarto item nos leva a um conceito muito importante que abordaremos em outro momento: &lt;strong&gt;Orientação a Objetos&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;Neste artigo, exploramos como o simples ato de imprimir "Hello, World!" em Java nos introduz a conceitos fundamentais da linguagem. A análise das palavras-chave utilizadas no código revela a estrutura básica de um programa Java e seu significado dentro do contexto da programação imperativa.&lt;/p&gt;

&lt;p&gt;Ao compreender os princípios da programação imperativa apresentados aqui — controle de fluxo, facilidade na depuração de erros, otimização de desempenho, adaptabilidade e gerenciamento de estado — os programadores iniciantes estão equipados com ferramentas essenciais para construir e entender programas Java robustos e eficientes.&lt;/p&gt;

&lt;p&gt;Em futuros artigos, exploraremos conceitos mais avançados, como orientação a objetos, que expandem ainda mais as capacidades de Java e abrem portas para o desenvolvimento de aplicações complexas e escaláveis.&lt;/p&gt;

&lt;p&gt;Agora que você compreende os fundamentos, está preparado para explorar mais profundamente o vasto universo da programação Java. Mantenha-se motivado e continue explorando novos conceitos para aprimorar suas habilidades como desenvolvedor.&lt;/p&gt;

&lt;p&gt;Espero que este artigo tenha sido útil para você iniciar sua jornada na linguagem Java. Se tiver alguma dúvida ou sugestão, sinta-se à vontade para compartilhar nos comentários abaixo.&lt;/p&gt;

</description>
      <category>java</category>
      <category>programming</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
