Java Promoção tipos Primitivos cast Pass by value

Java Promoção tipos Primitivos cast Pass by value. Linguagem Java. Sumário:Cast, Promoção, Pass by Value

Regra básica:
1-
Em Tipos Primitivos Inteiros , int é Default.
2- Em Tipos Primitivos Ponto – Flutuante, double é Default.


Por facilidade trabalharemos nesse tutorial com os valores em decimal, Porem lembre-se que tipos primitivos em java trabalham com bits em si, oque seria:

Exemplos Java,Linguagem Java, Programação, JavaNo caso, o tipo int tem 32 bits, so representei 8 porque antes dele será adicionado somente 0 para chegar em 32 ou seja:
0000 0000 0000 0000 0000 0000 0001 0100, e eu coloquei: 0001 0100

<p>
  </font>
</p>

<p>
  <font style="font-weight: bold;" size="4">Princípios Básicos de Acontecimento de erros:</p> 

  <p>
    </font><font face="arial"> <font style="font-weight: bold;"> A Atribuição de valores de uma expressão a outra pode</font> dar incompatibilidade de dados entre os dados da expressão e os dados armazenados. Para Resolver esse problema, Podemos ou promover(Promotion) os dados da expressão ou converter(cast) os dados da expressão.</font>
  </p>

  <p>
    <font style="font-weight: bold;" face="arial">Exemplo:</font>
  </p>

  <p>
    <font face="arial">int a = 2;</font><br /><font face="arial">int b = 5;</font><br /><font face="arial"><font style="font-weight: bold;">byte c </font>= a + b; -> Dará um Erro de compilação.</font>
  </p>

  <p>
    <font style="font-weight: bold;" face="arial">Ilustrando:</font>
  </p>

  <p>
    </font><font style="color: rgb(0, 0, 0);" size="3"><a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_CdmD2AaXIBs/Sp-tfsBBCQI/AAAAAAAAALU/b3J3BZ6_10c/s1600-h/ErroCompilacao.png"><img style="cursor: pointer; width: 303px; height: 320px;" src="http://1.bp.blogspot.com/_CdmD2AaXIBs/Sp-tfsBBCQI/AAAAAAAAALU/b3J3BZ6_10c/s320/ErroCompilacao.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377207240006633730" border="0" /></a></font><font style="color: rgb(0, 0, 0);" size="3"><br /><font style="font-weight: bold;">Clique na imagem para ampliar</font></p> 

    <p>
      <font style="font-weight: bold;" size="5" face="arial">Como arrumar este problema?</font>
    </p>

    <p>
      <font style="font-weight: bold;">1- </font><br /><font face="arial">int a = 2;</font><br /><font face="arial">int b = 5;</font><br /><font face="arial"><font style="font-weight: bold;">int c </font>= a + b; // Temos um int recebendo a soma de int</font>
    </p>

    <p>
      <font style="font-weight: bold;" face="arial">ou</font>
    </p>

    <p>
      <font style="font-weight: bold;">2- </font><br /><font face="arial">int a = 2;</font><br /><font face="arial">int b = 5;</font><br /><font face="arial">byte c = <font style="font-weight: bold;">(byte)</font>(a + b); // Temos um byte recebendo o cast de uma expressão para byte</font>
    </p>

    <p>
    </p>

    <h2>
      Java Promoção tipos Primitivos cast Pass by value
    </h2>

    <p>
      <font style="font-weight: bold;" size="5" face="arial">Promoção:</font>
    </p>

    <p>
      <font face="arial"> Em algunas casos, o compilador Promove , a expressão ou o Operando em um tipo Maior(do mesmo tipo da Variavel de atribuição)Isso é referênciado como Promoção, <font style="font-weight: bold;">ocorre automaticamente pelo compilador se não houver perda de dados.</font></font>
    </p>

    <p>
      <font face="arial"> O local de Armazenamento em memória, sempre tem o tamanho igual ao tipo Armazenado, Se tenho a Declaração de uma variável Local, ela terá o tamanho do tipo Declarado, ex:</font>
    </p>

    <p>
      <font face="arial"><font style="font-weight: bold;">byte </font>minhaVariavel; -> Aqui o espaço de memoria aguenta no máximo <font style="font-weight: bold;">8 bytes</font></font>
    </p>

    <p>
      <font face="arial"><font style="font-weight: bold;">Vamos a um exemplo:</font></p> 

      <p>
        </font><font face="arial"> <font style="font-weight: bold;">Declaro uma variavel local:</p> 

        <p>
          </font></font><font face="arial"> <font style="font-weight: bold;">int</font> <font style="font-weight: bold;">minhaVariavel</font> = 20;</font>
        </p>

        <p>
          <font face="arial"> <font style="font-weight: bold;">No mesmo escopo, atribuo o valor da minha variavel a Outra:</font></p> 

          <p>
            </font><font face="arial"> <font style="font-weight: bold;">float</font> minhaOutraVariavel = <font style="font-weight: bold;">minhaVariavel</font>;</font>
          </p>

          <p>
            <font face="arial">Acabou de ocorrer Promoção, de <font style="font-weight: bold;">int</font>(Tipo <font style="font-weight: bold;">Inteiro</font>) para <font style="font-weight: bold;">float</font>(Tipo <font style="font-weight: bold;">Ponto- Flutuante</font>), So que o valor da &#8211;<font style="font-weight: bold;"> minhaOutraVariavel &#8211; Será 20.0 e não 20</font>, pois agora ela é um Ponto-Flutuante;</font>
          </p>

          <p>
            </font><font style="color: rgb(0, 0, 0);" size="3"><br /></font><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CdmD2AaXIBs/Sp-zWtJi90I/AAAAAAAAAL0/-ZMcL3aEbH4/s1600-h/coube01.png"><img style="cursor: pointer; width: 306px; height: 241px;" src="http://2.bp.blogspot.com/_CdmD2AaXIBs/Sp-zWtJi90I/AAAAAAAAAL0/-ZMcL3aEbH4/s320/coube01.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377213682761791298" border="0" /></a><br /><font style="font-weight: bold;" face="arial">Clique na imagem para ampliar</font><br /><font style="color: rgb(0, 0, 0);" size="3"></p> 

            <p>
              <font style="font-weight: bold;" size="5" face="arial">Tipo Casting:</font><br /><font face="arial"> É quando um valor maior é convertido a um menor, ou o resultado de uma expressão é convertido.</font><br /><font face="arial"> <font style="font-weight: bold;">Use:</font> (tipo_cast)</p> 

              <p>
                </font><font face="arial"> <font style="font-weight: bold;">Cuidado ao usar cast,</font> a Conversão de dados é um contrato que você faz com o compilador dizendo:</font><br /><font face="arial"> &#8211; Olha compilador, eu me garanto pelo oque vier como resultado, eu sei oque estou fazendo.</font>
              </p>

              <p>
                <font style="font-weight: bold;" face="arial">Exemplo:</font>
              </p>

              <p>
                <font face="arial">int a = 2;</font><br /><font face="arial">int b = 5;</font><br /><font face="arial"><font style="font-weight: bold;">byte</font> c = <font style="font-weight: bold;">(byte)</font>(a + b);</p> 

                <p>
                  <font style="font-weight: bold;">Em bytecode temos:</p> 

                  <p>
                    </font></font></font><font style="font-weight: bold;" size="3"> Code:<br /></font><font size="3"> 0: iconst_2<br />1: istore_1 //</font><font style="color: rgb(0, 0, 0);" size="3"><font face="arial">int a = 2;</font></font><br /><font size="3"> 2: iconst_5<br />3: istore_2 //</font><font style="color: rgb(0, 0, 0);" size="3"><font face="arial">int b = 5;</font></font><br /><font size="3"> 4: iload_1 //2<br />5: iload_2 //5<br />6: iadd<br />7: i2b<br />8: istore_3</font><font style="font-weight: bold;" size="3"><br /></font><font style="color: rgb(0, 0, 0);" size="3"><font face="arial"></p> 

                    <p>
                      Vamos partir do ponto: </font></font><font style="color: rgb(0, 0, 0);" size="3"><font face="arial"><font style="font-weight: bold;">byte</font> c = <font style="font-weight: bold;">(byte)</font>(a + b) , Teremos isso em memória quando chegar nesse ponto,</font></font> e no bytecode acima estamos em iadd<br /><font style="color: rgb(0, 0, 0);" size="3"><font face="arial"><br /></font></font><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sp-8eWkJKOI/AAAAAAAAAM8/osujnHbZrRU/s1600-h/cast.png"><img style="cursor: pointer; width: 320px; height: 131px;" src="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sp-8eWkJKOI/AAAAAAAAAM8/osujnHbZrRU/s320/cast.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377223709742934242" border="0" /></a><br /><font style="font-weight: bold;">Clique na imagem para ampliar</font><br /><font style="color: rgb(0, 0, 0);" size="3"><br /><font style="font-weight: bold;">Após a soma de a e b :<br /></font></font><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CdmD2AaXIBs/Sp--G-Z6fzI/AAAAAAAAANM/cHSmuXDT-oE/s1600-h/cast3.png"><img style="cursor: pointer; width: 320px; height: 151px;" src="http://3.bp.blogspot.com/_CdmD2AaXIBs/Sp--G-Z6fzI/AAAAAAAAANM/cHSmuXDT-oE/s320/cast3.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377225507143843634" border="0" /></a><br /><font style="font-weight: bold;">Clique na imagem para ampliar</font>
                    </p>

                    <p>
                      <font style="color: rgb(0, 0, 0);" size="3"><font style="font-weight: bold;"><br />Agora sim vamos para o cast do RESULTADO:<br /></font><br /></font><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sp-9BoScYsI/AAAAAAAAANE/Qr_zyZMXpU8/s1600-h/cast2.png"><img style="cursor: pointer; width: 320px; height: 157px;" src="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sp-9BoScYsI/AAAAAAAAANE/Qr_zyZMXpU8/s320/cast2.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377224315795956418" border="0" /></a><font style="font-weight: bold;"><br />Clique na imagem para ampliar</p> 

                      <p>
                        E finalmente o armazenamento:<br /></font><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CdmD2AaXIBs/Sp--032JoEI/AAAAAAAAANU/t-g-c2Awp14/s1600-h/cast4.png"><img style="cursor: pointer; width: 320px; height: 231px;" src="http://2.bp.blogspot.com/_CdmD2AaXIBs/Sp--032JoEI/AAAAAAAAANU/t-g-c2Awp14/s320/cast4.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377226295657209922" border="0" /></a><br /><font style="font-weight: bold;">Clique na imagem para ampliar</font>, ou seja c = 0000 0111 em decimal o valor 7
                      </p>

                      <p>
                        <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sp-_RknseTI/AAAAAAAAANc/jqfRPV4fnKM/s1600-h/cast5.png"><img style="cursor: pointer; width: 320px; height: 169px;" src="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sp-_RknseTI/AAAAAAAAANc/jqfRPV4fnKM/s320/cast5.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377226788712511794" border="0" /></a><br /><font style="font-weight: bold;"><br /></font><font style="font-weight: bold;">Clique na imagem para ampliar</font><br /><font style="font-weight: bold;"></p> 

                        <p>
                          </font><font style="color: rgb(0, 0, 0);" size="3"><font style="font-weight: bold;" size="5" face="arial">Outro exemplo:</font></p> 

                          <p>
                            <font face="arial">float f = 20.0002F;</font><br /><font face="arial">int i =<font style="font-weight: bold;"> (int) </font>f; //int i terá o valor de 20, Pois agora se tornou tipo Inteiro.</font>
                          </p>

                          <p>
                            <font style="font-weight: bold;" size="4" face="arial">Importante:</font><br /><font face="arial"> <font style="font-weight: bold;">É sempre bom colocar entre -( ) Parênteses &#8211; Toda a Expressão que será convertida:</font></font>
                          </p>

                          <p>
                            <font face="arial"> int x = 10;</font><br /><font face="arial"> int y = 20;</font><br /><font face="arial"> byte c = (byte) <font style="font-weight: bold;">(x + y);</font> -> <font style="font-weight: bold;">Compilação OK</font></font>
                          </p>

                          <p>
                            <font style="font-weight: bold;" face="arial">Sem parênteses:</font>
                          </p>

                          <p>
                            <font face="arial"> int x = 10;</font><br /><font face="arial"> int y = 20;</font><br /><font face="arial"> byte c = <font style="font-weight: bold;">(byte)x </font>+ y; -> <font style="font-weight: bold;">Erro de Compilação</font></font>
                          </p>

                          <p>
                            <font face="arial">Os operadores usam os valores como valor Default, oque ocorre nessa expressão é:</font><br /><font face="arial"><font style="font-weight: bold;">1 &#8211;</font> x é convertido para byte</font><br /><font face="arial"><font style="font-weight: bold;">2 &#8211;</font> É avaliado o operador(+), então x e y virão Default de Inteiros(int)</font><br /><font face="arial"><font style="font-weight: bold;">3 &#8211;</font> Soma-se x + y</font><br /><font face="arial"><font style="font-weight: bold;">4 &#8211;</font> <font style="font-style: italic;">Tenta-se Armazenar int em byte,</font> oque não é possível, <font style="font-weight: bold;">erro de Compilação.</font></font>
                          </p>

                          <p>
                            <font style="font-weight: bold;" size="5" face="arial">ATENÇÃO em Tipos Inteiros e Operadores:</font>
                          </p>

                          <p>
                            <font face="arial">Lembre-se e tenha atenção, OPERADORES(*,/,+,-,%) ELEVAM O TIPO DOS OPERANDOS EM int ou em tipos maiores se necessário ou se estiverem na expressão,</font><font face="arial">isso significa que se tivermos 2 Operandos em meio a um operador, Eles são convertidos<font style="font-weight: bold;"> a int antes mesmo de fazer o operador:</font></font>
                          </p>

                          <p>
                            <font face="arial">byte a = 2;</font><br /><font face="arial">byte c = 3;</font><br /><font face="arial">byte d = <font style="font-weight: bold;">a + c; -> Erro de Compilação, a e c serão convertidos a int antes do Operador.</font></font>
                          </p>

                          <p>
                            <font face="arial"><font style="font-weight: bold;">Nesse Exemplo, os Operandos a e c são convertidos para int por causa do Operador(+) </font>depois com o operador(= igual) tenta-se armazenar em um tipo byte(byte b) oque não é possível.</font>
                          </p>

                          <p>
                            <font style="font-weight: bold;" face="arial">Outro exemplo:</font>
                          </p>

                          <p>
                            <font face="arial"> <font style="font-weight: bold;">long x</font> = 10 + <font style="font-weight: bold;">24L</font> + 5;</font>
                          </p>

                          <p>
                            <font face="arial">Nesse caso os operadores não podem elevar os inteiros para int, sendo que um deles é long(24 L), sendo assim todos os Operadores <font style="font-weight: bold;">são avaliados para valores Maiores ou seja todos viram long.</font></font>
                          </p>

                          <p>
                            <font style="font-weight: bold;" size="5" face="arial">ATENÇÃO em Pontos Flutuantes:</font><br /><font face="arial"> Toda vez que se declara um valor do tipo float, deve-se especificar o f(ou F) ou fazer cast.</font>
                          </p>

                          <p>
                            <font face="arial"> float f = 0.0; -> <font style="font-weight: bold;">Erro de compilação, 0.0 é double(Default)</font></font>
                          </p>

                          <p>
                            <font face="arial"> float f = (float) 0.0 -> <font style="font-weight: bold;">cast, compilação OK</font></font>
                          </p>

                          <p>
                            <font face="arial"> float f = 0.0f -><font style="font-weight: bold;"> cast, compilação OK</font></font>
                          </p>

                          <p>
                            <font face="arial"> float f = 0.0F -> <font style="font-weight: bold;">cast, compilação OK</font></font>
                          </p>

                          <p>
                            <font style="font-weight: bold;" size="4" face="arial">Copia de valores(Pass &#8211; by &#8211; value):</font><br /><font face="arial"> Java trabalha com cópia de valores, isso significa que nenhum valor é retirado e sim COPIADO:</font>
                          </p>

                          <p>
                            <font face="arial">int x = 2;</font><br /><font face="arial">int c = x; -> <font style="font-weight: bold;">Os bits de 2 são copiados para &#8211; int c &#8211; e não retirados de &#8211; int x-</font></font>
                          </p>

                          <p>
                            <font style="font-weight: bold;" size="5" face="arial">Curiosidade:</font>
                          </p>

                          <p>
                            <font face="arial">&#8211; Quando usamos:</font>
                          </p>

                          <p>
                            <font face="arial">long l = 20;</font><br /><font face="arial">Isso é possível de ocorrer por causa da Promoção, 20 é do tipo int por Default dos valores Inteiros, long é maior que int, logo Promoção.</font>
                          </p>

                          <p>
                            <font style="font-weight: bold;" face="arial">Um Exemplo prático:</font>
                          </p>

                          <p>
                            <font face="arial">public class <font style="font-weight: bold;">MinhaClasse</font>{</font>
                          </p>

                          <p>
                            <font face="arial"> public static voi <font style="font-weight: bold;">main</font>(String array[]){</font><br /><font face="arial"> <font style="font-weight: bold;">int minhaInt</font> = 10;</font><br /><font face="arial"> <font style="font-weight: bold;">byte</font> minhaVariavel = <font style="font-weight: bold;">minhaInt</font>;</font>
                          </p>

                          <p>
                            <font face="arial"> }</font><br /><font face="arial">}</font>
                          </p>

                          <p>
                            <font style="font-weight: bold;" face="arial">Porque isso da erro de Compilação?<br />Pois estamos tentado armazenar um int em um byte, Esse int ja existe e ja foi armazenado portanto você esta carregando um valor com tamanho em bits já definido.</p> 

                            <p>
                              Vejamos mais a fundo:<br /></font><font face="arial"> O main será um frame em Runtime, então demonstramos Local Variable e Operand Stack do Frame dele.</font>
                            </p>

                            <p>
                              <font style="font-weight: bold;" face="arial">Você esta tentando fazer isso, Desenhando:</font>
                            </p>

                            <p>
                              </font><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_CdmD2AaXIBs/Sp-2LHbPGHI/AAAAAAAAAME/0yTWpur0y5g/s1600-h/LocalVariableHeap2.png"><img style="cursor: pointer; width: 320px; height: 191px;" src="http://1.bp.blogspot.com/_CdmD2AaXIBs/Sp-2LHbPGHI/AAAAAAAAAME/0yTWpur0y5g/s320/LocalVariableHeap2.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377216782191761522" border="0" /></a><br /><font style="font-weight: bold;">Clique na imagem para ampliar</font><br /><font style="color: rgb(0, 0, 0);" size="3"></p> 

                              <p>
                                <font style="font-weight: bold;" size="5" face="arial">Oque é totalmente diferente disso:</font>
                              </p>

                              <p>
                                <font face="arial">public class <font style="font-weight: bold;">MinhaClasse</font>{</font>
                              </p>

                              <p>
                                <font face="arial"> public static voi main(String array[]){</font><br /><font face="arial"> byte <font style="font-weight: bold;">minhaVariavel</font> = 10;</font>
                              </p>

                              <p>
                                <font face="arial"> }</font><br /><font face="arial">}</font>
                              </p>

                              <p>
                                <font style="font-weight: bold;" face="arial">Agora você fez isso:</font></font>
                              </p>

                              <p>
                                <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_CdmD2AaXIBs/Sp_Abgo9HAI/AAAAAAAAANk/e_8sqElB4s8/s1600-h/LocalVariableHeap.png"><img style="cursor: pointer; width: 320px; height: 126px;" src="http://1.bp.blogspot.com/_CdmD2AaXIBs/Sp_Abgo9HAI/AAAAAAAAANk/e_8sqElB4s8/s320/LocalVariableHeap.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377228058954374146" border="0" /></a><font style="color: rgb(0, 0, 0);" size="3"><br /></font><font style="color: rgb(0, 0, 0);" size="3"><font style="font-weight: bold;" face="arial">Clique na imagem para Ampliar</p> 

                                <p>
                                  </font></font><font style="color: rgb(0, 0, 0);" size="3"><br /><font style="font-weight: bold;" size="5" face="arial">Resultando nisso:</font></p> 

                                  <p>
                                    </font><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sp_Aga0tYJI/AAAAAAAAANs/8CbWKkfuXhY/s1600-h/LocalVariableHeap01.png"><img style="cursor: pointer; width: 320px; height: 136px;" src="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sp_Aga0tYJI/AAAAAAAAANs/8CbWKkfuXhY/s320/LocalVariableHeap01.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377228143292407954" border="0" /></a><font style="color: rgb(0, 0, 0);" size="3"><br /><font style="font-weight: bold;" face="arial">Sendo index 1 da Local Variable a minhaVariavel.Clique na imagem para Ampliar</font></p> 

                                    <p>
                                      <font style="font-weight: bold;" size="5" face="arial">É hora da Revisão:</p> 

                                      <p>
                                        </font><font face="arial">&#8211; Em Tipos Primitivos, os valores são armazenado em bits</font><br /><font face="arial">&#8211; Em Tipos Primitivos Inteiros, int é Default</font><br /><font face="arial">&#8211; Em tipos Primitivos Ponto-Flutuante, double é Default</font><br /><font face="arial">&#8211; O tipo que estiver antes do (= igual) é o local que vai armazenar oque estiver depois do (= igual),<br /></font></font><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sp_Bqhd8gPI/AAAAAAAAAN8/lG3AOtw_YSY/s1600-h/esquerdadireita.png"><img style="cursor: pointer; width: 260px; height: 148px;" src="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sp_Bqhd8gPI/AAAAAAAAAN8/lG3AOtw_YSY/s320/esquerdadireita.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377229416386298098" border="0" /></a>
                                      </p>

                                      <p>
                                        <font style="color: rgb(0, 0, 0);" size="3"><font face="arial">&#8211; Quando o valor que estiver a direita do igual(Operador = ) for menor que o da esquerda do igual(Operador = ) ocorre Promoção<br /></font></font><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CdmD2AaXIBs/Sp_CzB3l5YI/AAAAAAAAAOE/xUWyaftOq0M/s1600-h/promocao.png"><img style="cursor: pointer; width: 306px; height: 163px;" src="http://3.bp.blogspot.com/_CdmD2AaXIBs/Sp_CzB3l5YI/AAAAAAAAAOE/xUWyaftOq0M/s320/promocao.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377230662034384258" border="0" /></a>
                                      </p>

                                      <p>
                                        <font style="color: rgb(0, 0, 0);" size="3" face="arial">&#8211; Quando o valor que estiver a direita do igual(Operador = ) for maior que o da esquerda do igual(Operador = ) deve-se fazer cast<br /></font><a style="color: rgb(0, 0, 0); font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sp_C6HqCzkI/AAAAAAAAAOM/GqSQEfGoYWY/s1600-h/castrevisao.png"><img style="cursor: pointer; width: 320px; height: 155px;" src="http://4.bp.blogspot.com/_CdmD2AaXIBs/Sp_C6HqCzkI/AAAAAAAAAOM/GqSQEfGoYWY/s320/castrevisao.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377230783847255618" border="0" /></a><br /><font style="font-weight: bold; color: rgb(0, 0, 0);" face="arial">Clique na imagem para ampliar</font>
                                      </p>

                                      <p>
                                        <font style="color: rgb(0, 0, 0);" face="arial">&#8211; Cuidado ao fazer cast, o valor pode perder o sentido, Lembre-se trabalhamos com bits ou seja são &ldquo;cortados&rdquo; para encaixar no outro tipo, vejamos:</font>
                                      </p>

                                      <p>
                                        <a style="color: rgb(0, 0, 0); font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_CdmD2AaXIBs/Sp_EaQ2qYNI/AAAAAAAAAOU/oajsz5beqsA/s1600-h/castrevisao2.png"><img style="cursor: pointer; width: 320px; height: 267px;" src="http://1.bp.blogspot.com/_CdmD2AaXIBs/Sp_EaQ2qYNI/AAAAAAAAAOU/oajsz5beqsA/s320/castrevisao2.png" alt="Exemplos Java,Linguagem Java, Programação, Java" id="BLOGGER_PHOTO_ID_5377232435583541458" border="0" /></a><br /><font style="font-weight: bold; color: rgb(0, 0, 0);" face="arial">Clique na imagem para ampliar</font>
                                      </p>

                                      <p>
                                        <font style="color: rgb(0, 0, 0);" face="arial">&#8211; Em cast de expressões use Parênteses &#8211; </font><font style="font-weight: bold; color: rgb(0, 0, 0);" face="arial">( ) &#8211; NA EXPRESSÃO:</font>
                                      </p>

                                      <p>
                                        <font style="color: rgb(0, 0, 0);" face="arial">byte a = 2, b = 3;</font><br /><font style="color: rgb(0, 0, 0);" face="arial">byte c =</font><font style="font-weight: bold; color: rgb(0, 0, 0);" face="arial"> (byte) a</font><font style="color: rgb(0, 0, 0);" face="arial"> + b; -> Erro de compilação, por causa da Precedência e Do Operador SOMA(+) que faz com que a e b sejam int</font>
                                      </p>

                                      <p>
                                        <font style="color: rgb(0, 0, 0);" face="arial">byte a = 2, b = 3;</font><br /><font style="color: rgb(0, 0, 0);" face="arial">byte c = </font><font style="font-weight: bold; color: rgb(0, 0, 0);" face="arial">(byte) (a + b)</font><font style="color: rgb(0, 0, 0);" face="arial">; -> Compilação OK</font>
                                      </p>

                                      <p>
                                        <font style="color: rgb(0, 0, 0);" face="arial">&#8211; Importanção de variável ja armazenada é totalmente diferente de declarar um novo valor:</font>
                                      </p>

                                      <p>
                                        <font style="color: rgb(0, 0, 0);" face="arial">int c = 3;</font><br /><font style="font-weight: bold; color: rgb(0, 0, 0);" face="arial">byte d = c;</font><font style="color: rgb(0, 0, 0);" face="arial"> -> erro de compilação</font>
                                      </p>

                                      <p>
                                        <font style="color: rgb(0, 0, 0);" face="arial">byte </font><font style="font-weight: bold; color: rgb(0, 0, 0);" face="arial">d = 3; </font><font style="color: rgb(0, 0, 0);" face="arial">-> O valor será realmente definido com 8 bits após ser armazenado</font>
                                      </p>

                                      <p>
                                        <font style="color: rgb(0, 0, 0);" size="3"><font style="color: rgb(0, 0, 0);" face="arial">&#8211; Toda vez que tiver Operadores(+,-,%,*,/) Tome cuidado nos tipos Inteiros pois,Os Operandos são transformados em int ou se necessário em tipos Maiores</p> 

                                        <p>
                                          </font><font style="color: rgb(0, 0, 0);" face="arial">&#8211; Em tipos Ponto-Flutuantes float, sempre faça cast, com (f ou F) ou (float) pois double é Default</p> 

                                          <p>
                                            </font><font style="color: rgb(0, 0, 0);" face="arial">&#8211; Java trabalha com Pass-by-value ou seja, O valor é Copiado e não substituido</font>
                                          </p>

                                          <p>
                                            <font style="color: rgb(0, 0, 0);" face="arial">Bom é só isso, Próximo Post Variáveis de Referência.</font><br /><font style="font-weight: bold; color: rgb(0, 0, 0);" face="arial">Cya Dudes!!!</font>
                                          </p>

                                          <p>
                                            </font>
                                          </p>