user28219: Probably a simple question, but I believe it is important to state it clearly for the beginners like me out there.
What is the hash function used for the Bitcoin proof-of-work? What implementations are available? Any Java implementation?

user9382: From Bitcoin Wiki PoW and tangentially, HashCash:

SHA256(SHA256(Block_Header)) but you have to be careful about byte-order.

Specifically, it is SHA256d
Implementations are often standard libraries, like Python's hashlib.

user18196: Bitcoin uses SHA256d to hash block headers, which is sha256(sha256(x)). 
In anticipation of your next question, it uses a double hash to protect against length extension attacks (source). 

28219: <p>Probably a simple question, but I believe it is important to state it clearly for the beginners like me out there.</p>

<p>What is the hash function used for the Bitcoin proof-of-work? What implementations are available? Any Java implementation?</p>
 9382: <p>From <a href="https://en.bitcoin.it/wiki/Block_hashing_algorithm" rel="nofollow">Bitcoin Wiki PoW</a> and tangentially, <a href="https://en.bitcoin.it/wiki/Hashcash" rel="nofollow">HashCash</a>:</p>

<blockquote>
  <p>SHA256(SHA256(Block_Header)) but you have to be careful about byte-order.</p>
</blockquote>

<p>Specifically, <a href="https://en.bitcoin.it/wiki/Comparison_of_cryptocurrencies" rel="nofollow">it is <code>SHA256d</code></a></p>

<p>Implementations are often standard libraries, like Python's <code>hashlib</code>.</p>
 18196: <p>Bitcoin uses SHA256d to hash block headers, which is <code>sha256(sha256(x))</code>. </p>

<p>In anticipation of your next question, it uses a double hash to protect against length extension attacks (<a href="https://bitcoin.stackexchange.com/questions/4317/why-does-bitcoin-use-two-rounds-of-sha256">source</a>). </p>
