<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"><channel><title>MagicLen</title><link>https://magiclen.org/category/java/feed</link><description>多元化原創文章，內容包羅萬象，有程式語言、網站應用、軟體介紹、硬體介紹、作業系統、旅行遊記、專題採訪、益智問題、文學創作，以及作者們的知識分享和作品分享。</description><language>zh-TW</language><lastBuildDate>Sun, 5 Apr 2026 16:32:00 +0000</lastBuildDate><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>8</sy:updateFrequency><sy:updateBase>1970-01-01T00:00+00:00</sy:updateBase><item><title>如何寫程式判斷閏年並計算一個月有幾天？</title><link>https://magiclen.org/year-helper</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2023/01/calendar-660670_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2023/01/calendar-660670_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2023/01/calendar-660670_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2023/01/calendar-660670_1920-660x486.jpg 3x" alt="">
我們在小學階段都會學到平年(common year)和閏年(leap year)的判斷方式，以及這兩種年份是差在前者的二月有28天，後者則是有29天。所以平年整年一共有365天；閏年整年一共有366年。這是身為一個地球人的基本常識，但在小學的時候，老師可能只會告訴我們把西元年份的數字除以4，如果可以整除，那麼這年就是閏年，否則是平年。老師說的也不能說是錯的，只是不太完整，實際上，閏年的正確判斷方式...]]></description><category>Java</category><category>Rust</category><category>Go</category><category>JavaScript</category><category>JavaScript</category><category>Rust</category><category>TypeScript</category><category>year-helper</category><guid>https://magiclen.org/year-helper</guid><pubDate>Tue, 3 Jan 2023 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>在Java和JavaScript中，字串的字數就等於字元數量嗎？錯！</title><link>https://magiclen.org/java-count-characters</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/12/font-4646566_1920-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2022/12/font-4646566_1920-220x162.png 1x, https://magiclen.org/wp-content/uploads/2022/12/font-4646566_1920-440x324.png 2x, https://magiclen.org/wp-content/uploads/2022/12/font-4646566_1920-660x486.png 3x" alt="">
在Java和JavaScript中，我們經常會使用字串(String)提供的「length」成員(member)來抓取這個字串的字數。由於Java和JavaScript並不像Rust或是Golang程式語言這樣會直接抓到字串在經過編碼之後的位元組數量，而是會得到字元的數量，所以我們很直覺地就會在Java或JavaScript用這樣的方式來計算字串的字數。]]></description><category>研究分享</category><category>Java</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>TypeScript</category><category>爛Code</category><guid>https://magiclen.org/java-count-characters</guid><pubDate>Tue, 13 Dec 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>寫程式算階乘，關於階乘的三兩事</title><link>https://magiclen.org/factorial</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/08/factorial-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2022/08/factorial-220x162.png 1x, https://magiclen.org/wp-content/uploads/2022/08/factorial-440x324.png 2x, https://magiclen.org/wp-content/uploads/2022/08/factorial-660x486.png 3x" alt="">
正整數的階乘(Factorial)是小於或等於該數的所有正整數的乘積，若正整數為N，用N!來表示N的階乘。至於0!是階乘的特例，它被定義為1。階乘的運算具有遞迴(recursion)概念，常作為學習程式邏輯的材料，而這篇文章將會說明階乘相關的程式計算。]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>數學邏輯</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>Rust</category><category>TypeScript</category><category>階乘</category><category>Go</category><guid>https://magiclen.org/factorial</guid><pubDate>Thu, 27 Oct 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何寫程式來做等值的貨幣或是物品的數量換算？</title><link>https://magiclen.org/item-exchange</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/06/business-18107_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2022/06/business-18107_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2022/06/business-18107_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2022/06/business-18107_1920-660x486.jpg 3x" alt="">
不同國家有不同的貨幣流通，不同的貨幣也會有不同的價值。其實也不只貨幣，任何物品，無論實體的或是虛擬的都一樣，只要價值可以被衡量，就可以被等值換算。講到錢就傷感情，以蘋果和橘子來舉例好了，假設2顆蘋果等值於3粒橘子，那麼8顆蘋果就會等值於12粒橘子。]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>數學邏輯</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>Rust</category><category>TypeScript</category><guid>https://magiclen.org/item-exchange</guid><pubDate>Thu, 28 Jul 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何判斷兩個浮點數是否相等？是否能整除？相除後餘數是多少？</title><link>https://magiclen.org/float-precision</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2022/06/geometry-1044090_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2022/06/geometry-1044090_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2022/06/geometry-1044090_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2022/06/geometry-1044090_1920-660x486.jpg 3x" alt="">
使用電腦去進行浮點數運算的時候，在某些條件下會出現顯而易見的誤差，而這樣的誤差，就會導致與浮點數有關的計算或是邏輯判斷出現問題。]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>演算法</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>Rust</category><category>TypeScript</category><guid>https://magiclen.org/float-precision</guid><pubDate>Thu, 21 Jul 2022 12:00:00 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>用動態規劃解決問題：零壹背包問題(0/1 Knapsack Problem)</title><link>https://magiclen.org/dynamic-programming-0-1-knapsack-problem</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2020/04/technology-1283624_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2020/04/technology-1283624_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2020/04/technology-1283624_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2020/04/technology-1283624_1920-660x486.jpg 3x" alt="">
一個背著背包的小偷闖空門偷東西，他必須趁屋主回來之前把有價值的物品塞進包包內帶走。考慮到小偷自身的行動力，背包能裝的物品總重量有限，小偷要如何選擇物品才能獲得最高的總價值？]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>演算法</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>Rust</category><category>TypeScript</category><category>動態規劃</category><category>Go</category><guid>https://magiclen.org/dynamic-programming-0-1-knapsack-problem</guid><pubDate>Tue, 4 Aug 2020 12:00:41 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>用動態規劃解決問題：找零錢問題(Coin Change Problem)</title><link>https://magiclen.org/dynamic-programming-coin-change</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2020/04/technology-1283624_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2020/04/technology-1283624_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2020/04/technology-1283624_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2020/04/technology-1283624_1920-660x486.jpg 3x" alt="">
許多人認為身上如果帶太多的零錢會讓行動變得不方便，因此會希望商店店員在找零錢的時候能夠以最少的硬幣數來找，而不是全部都用1元塞給我們。]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>演算法</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>Rust</category><category>TypeScript</category><category>動態規劃</category><category>Go</category><guid>https://magiclen.org/dynamic-programming-coin-change</guid><pubDate>Tue, 28 Jul 2020 12:00:30 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>用動態規劃解決問題：基本觀念(有重疊子問題的問題)</title><link>https://magiclen.org/dynamic-programming-basic</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2020/04/technology-1283624_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2020/04/technology-1283624_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2020/04/technology-1283624_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2020/04/technology-1283624_1920-660x486.jpg 3x" alt="">
動態規劃(Dynamic Programming，簡稱DP)是一種解決問題的技巧，主要被用來優化那些「記不住自己過去曾解出來的答案所以只好重複再解」的演算法，讓它們可以「記憶」已經找出來的答案，從而不斷利用，以大大降低時間複雜度(從指數級降到線性)。]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>演算法</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>Rust</category><category>TypeScript</category><category>費氏數列</category><category>動態規劃</category><category>Go</category><guid>https://magiclen.org/dynamic-programming-basic</guid><pubDate>Tue, 21 Jul 2020 12:00:16 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>認識數字系統，進行任意進制的超長整數運算(加、減、乘、除)</title><link>https://magiclen.org/numeral-system-big-integer</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2020/05/big-number-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2020/05/big-number-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2020/05/big-number-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2020/05/big-number-660x486.jpg 3x" alt="">
電腦程式在進行整數數值計算的時候，會受到變數型別的記憶體空間使用大小而有數值表示範圍的限制，所以當遇到過長的數值時，就無法正常地運算出結果。]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>數學邏輯</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>Rust</category><category>大數運算</category><category>TypeScript</category><category>Go</category><guid>https://magiclen.org/numeral-system-big-integer</guid><pubDate>Tue, 14 Jul 2020 12:00:42 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何用程式進行質因數分解和尋找最大公因數與最小公倍數？</title><link>https://magiclen.org/prime-factorization-gcd-lcm</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/10/pay-819587_1920-220x162.jpg" srcset="https://magiclen.org/wp-content/uploads/2018/10/pay-819587_1920-220x162.jpg 1x, https://magiclen.org/wp-content/uploads/2018/10/pay-819587_1920-440x324.jpg 2x, https://magiclen.org/wp-content/uploads/2018/10/pay-819587_1920-660x486.jpg 3x" alt="">
若正整數a除以正整數b可以整除，則稱b為a的因數(Factor)，a為b的倍數(Multiple)，1是所有正整數最小的因數，任意正整數最大的因數就是該正整數本身。若a同時是x和y的因數，則稱a是x和y的公因數(Common Divisor)，如果a是x和y的公因數中最大的一個，則稱a是x和y的最大公因數(Greatest Common Divisor，簡稱GCD)。若a同時是x和y的倍數，則稱a...]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>數學邏輯</category><category>演算法</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>Rust</category><category>TypeScript</category><category>質因數分解</category><category>最大公因數</category><category>最小公倍數</category><category>輾轉相除法</category><category>Go</category><guid>https://magiclen.org/prime-factorization-gcd-lcm</guid><pubDate>Thu, 9 Jul 2020 12:00:35 +0800</pubDate><dc:creator>Magic Len</dc:creator></item></channel></rss>