以結論來說,就是所撰寫的程式碼可以在不同的作業系統上執行。然而我要談的當然不是這麼簡單。
早期在接觸Java時,對於跨平台這個特色,感到很困惑,因為認為只要拿程式碼,在不同平台上再編譯一次,不就可以了,有什麼好拿出來大炫特炫的。後來才知道其實這是有許多旦書與可以討論的地方。
首先,在某些時候,因為種種因素,我們是拿不到原始碼的。因此是否可以僅靠著執行檔,就在不同的作業系統上執行相關的應用程式,是有差別的。
再者,有些應用程式會去使用到作業系統的一些元件。而有些作業系統有這個元件、有些沒有。例如windows上的「控制台」;麥金塔或是Linux上可沒這所謂的「控制台」。因此如果這個程式語言是可以跨平台的,也同時表示他也無法去操作windows 的控制台,或者執行windows 的控制台,是需要透過一些特殊的手法才能達成。所以Java在對硬體或是韌體的操作是相對弱,或甚至是不行。
第三,其實所謂的程式語言跨平台,其實並不算是真的跨平台,而是他的「執行環境」跨平台。Java廠商(以前叫Sun,現在叫Oracle) 為各種不同的作業系統提供了不同的「執行環境」;所有的Java程式都在這「執行環境」上執行。也同時因為有了這一「執行環境」與作業系統間接,這種跨平台的程式語言,效能硬是比非跨平台的程式語言低了一階。像這種跨平台的特色,為應用程式提昇了彈性,可是卻犧牲了效率。
這篇短短的文章,我大概介紹了Java不同於其他程式語言的特性,希望可以讓讀者對於Java有一些認識。
沒有留言 :
張貼留言