<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NullPointerException on [Lou's lab]</title><link>/tags/nullpointerexception/</link><description>Recent content in NullPointerException on [Lou's lab]</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><copyright>Copyright ©2020 Lou</copyright><lastBuildDate>Tue, 22 Jul 2025 20:04:32 +0800</lastBuildDate><atom:link href="/tags/nullpointerexception/index.xml" rel="self" type="application/rss+xml"/><item><title>Effective Java Item 61：能用原始型別就不要用 boxed primitives</title><link>/posts/book/effective-java-item61/</link><pubDate>Tue, 22 Jul 2025 20:04:32 +0800</pubDate><guid>/posts/book/effective-java-item61/</guid><description>&lt;h2 id="主旨">主旨&lt;/h2>
&lt;p>Java 有兩套型別系統：原始型別（primitive）與其對應的物件型別（boxed primitive）。例如：&lt;/p>
&lt;ul>
&lt;li>&lt;code>int&lt;/code> ↔ &lt;code>Integer&lt;/code>&lt;/li>
&lt;li>&lt;code>double&lt;/code> ↔ &lt;code>Double&lt;/code>&lt;/li>
&lt;li>&lt;code>boolean&lt;/code> ↔ &lt;code>Boolean&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>雖然 autoboxing 看似無縫，但事實上這兩種型別在「效能、null 安全性、== 比較」上都有重大差異。&lt;br>
原則很簡單：&lt;strong>如果可以用 primitive，就不要用 boxed。&lt;/strong>&lt;/p></description></item></channel></rss>