title: What do << or >>> in java mean?
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/11255420/what-does-and-mean-in-java">What does &gt;&gt; and &gt;&gt;&gt; mean in Java?</a>  </p>
  </blockquote>
  
  
  
  <p>I ran across some unfamiliar symbols in some java code, and while the code compiles and functions correctly, I am confused as to what exactly the angle brackets are doing in this code.  I found the code in <a href="http://www.javadocexamples.com/java_source/com/sun/java/help/search/BitBuffer.java.html" rel="noreferrer">com.sun.java.help.search.BitBuffer</a>, a fragment of which is below:</p>
  
  <pre><code>public void append(int source, int kBits)
      {
          if (kBits &lt; _avail)
          {
              _word = (_word &lt;&lt; kBits) | source;
              _avail -= kBits;
          }
          else if (kBits &gt; _avail)
          {
              int leftover = kBits - _avail;
              store((_word &lt;&lt; _avail) | (source &gt;&gt;&gt; leftover));
              _word = source;
              _avail = NBits - leftover;
          }
          else
          {
              store((_word &lt;&lt; kBits) | source);
              _word = 0;
              _avail = NBits;
          }
      }
  </code></pre>
  
  <p>What do those mysterious looking brackets do?  It <em>almost</em> looks like c++ insertion/extraction, but I know that Java doesn't have anything like that.</p>
  
  <p>Also, I tried googling it, but for some reason Google seems to not see the angle brackets, even if I put them in quotes.</p>