blog.Ring.idv.tw

Java

徹底剖析JDK 5.0 Autoboxing/Unboxing

本文已刊於「#142  Run!PC 旗標資訊月刊」- 2005.11

簡介

經過前二期所介紹的「Varargs」和「Enhanced for loop」之後,我們可以看到從JDK 5.0所新增加的功能裡,擁有不少功能仰賴著Java Compiler在編譯時期幫我們加上「調味料」來處理,雖然更簡單易學易用,不過終究仍需了解底層的實作細節,才能徹底掌握程式本身的特性,尤其是本文所即將剖析的「Autoboxing/Unboxing」功能,常會使許多初學Java的朋友們產生「知其然而不知其所以然」的現象,正如俗話所說的「水能載舟亦能覆舟」,「Autoboxing/Unboxing」的確可以幫我們減少許多在敲打鍵盤上所需要的寶貴光陰,但若是沒能徹底掌握它,彷彿也為自己埋下了一顆不定時的炸彈,現在我們就來了解「Autoboxing/Unboxing」究竟是何方神聖。

在Java程式語言裡有分成兩種型別,一種是基本資料型別(Primitive Data Types),另一種則是物件參考型別(Object Reference Types),而本文的「Autoboxing/Unboxing」功能便是將針對基本資料型別(表1)來做轉換處理,所以當我們想將這八種基本資料型別轉換成物件來操作時,這時候我們就必須將它「裝箱」(Boxing),何謂「裝箱」呢?簡單的說法就是將Java所提供對應的Wrapper Class來加以包裝,當然既然有「裝箱」必然也會有「拆箱」(unboxing)的動作,那何謂「拆箱」呢?拆箱所指的就是呼叫其對應的Wrapper Class所各自擁有的「xxxxValue()」方法,諸如:intValue()、floatValue()、charValue()…,所以「Autoboxing/Unboxing」簡單地來說,也就是Java Compiler在編譯時期幫我們做這層的轉換處理。

下載:徹底剖析JDK 5.0 Autoboxing/Unboxing

2007-11-04 14:27:34 | Add Comment

徹底剖析JDK 5.0 Enhanced for loop

本文已刊於「#141  Run!PC 旗標資訊月刊」- 2005.10

簡介

在開始進入主題之前,筆者在此先介紹一些迴圈結構,相信許多學過程式語言的朋友們,在學習一門程式語言的過程之中,必然會碰到所謂的迴圈(loop)結構,而在Java裡的迴圈結構不外乎就是for loop、while loop 和 do/while loop,其中for loop和while loop 兩者算是「先判斷後執行的迴圈結構(pretest loop)」,而 do/while loop 則是「先執行然後再判斷是否持續執行的迴圈結構(post-test loop)」,基本上大部份的程式語言都擁有此三種迴圈結構。

談完了迴圈結構我們再回頭來看看本文的主題「Enhanced for loop」,在Flash ActionScript的語法中稱為for in,而在PHP也有稱為foreach 的說法,不過在這隻「老虎」的革新之下,我們也可稱它為「Enhanced for loop」,從它的字眼間我們不難看出它意謂著「增強型」的for loop,既然是「增強型」的for loop,想當然定有不同於for loop之處,不過筆者在此還是先向各位透露,其實Enhanced for loop的底層實作機制就是「for loop」迴圈結構而已,只是透過Java Compiler在編譯時期幫我們做一些「料理」,雖然從字面上看起來感覺很微妙,但是相信各位讀者咀嚼過本文之後,便能夠體會這其中的奧秘。

下載:徹底剖析JDK 5.0 Enhanced for loop

2007-11-04 14:24:08 | Add Comment

原來這就是「i++」和「++j」

這是一篇去年三月時寫的稿~ 當初是投稿到某雜誌社,不過由於題材並不是隨著潮流所趨,所以並沒有被接受刊登在雜誌上~ 剛好今天和朋友有聊到一些關於這方面的問題,希望這篇能帶給大家獲益良多的感受~

簡介

「i++」和「++i」在程式的撰寫上算是蠻常出現的一種寫法,然而或許我們知道他的觀念,但也許從未真正地了解並剖析它,此篇將從「組合語言」、「Java位元碼」和「Flash ActionModel」三種不同的角度來詮釋,希望透過此分享對於有興趣的朋友能有所助益~

下載:原來這就是「i++」和「++j」

2007-11-04 00:28:01 | Add Comment

WiiremoteJ - 用Wii來做互動

WiiRemoteJ is a free Java API and library for interacting with a 
Nintendo(R) Wii(tm) Remote through Bluetooth(R). WiiRemoteJ aims to do 
two things: first, it aims to create an easily accessible interface for 
Java developers wanting to work with the Wii Remote. Second, it aims to 
provide tools for developers using the Wii Remote to speed development. 
WiiRemoteJ comes with a complete (to my knowledge) javadoc, detailing 
every public class, field, and method. In addition, WiiRemoteJ aims to 
duplicate many of the same ideologies and methods used in the main Java 
libraries. This should allow developers to jump into the development 
process relatively quickly.

WiiremoteJ提供了一套Java API可以讓我們藉此來開發Wii的互動程式,而在這當中的傳輸必須仰賴Bluetooth,聽學弟說只有MSI的Bluetooth有支援而已~ 有興趣的人不妨玩玩看!

參考資源:

1.WiiremoteJ

2.WiiLi.org WiiremoteJ

2007-09-11 10:05:54 | Comments (2)

Working with the Java ME FileConnection API on Physical Devices

Working with the Java ME FileConnection API on Physical Devices

提供了一個利用FileConnection來存取本機照片並可藉由Servlet上傳至伺服端的範例,有興趣的人不妨研究研究~

2007-09-04 17:49:29 | Add Comment

Next Posts~:::~Previous Posts
Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: Ads :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment