2009年3月23日 星期一

Java初探

好幾年前就想要用Java,只是工作上一直沒機會用上.
最近想要用Java applet加強web server的功能就著手來study囉

1.Java 既是編譯也是直譯式語言

編譯式語言的優點 : 較有效率及執行速度快
直譯式語言的優點 : 跨平台的可移植性佳

Java Source Code -> [ Compile ] -> Java Instruction Binary
Java Instruction Binary -> [ Interpreter ] -> Running on Java Virtual Machine

2.Java沒有指標 (pointer)

Java使用參考(reference)來達到指標的功能.
參考的好處是有型別處理的能力,因此安全性增加許多

3.Java會紀錄run time type

有了 run time type, Java 可以安全的做多型及強制轉型

4.Java具有真正的資料安全措施

在C++可以透過private宣告保護data / function member.
但這種保護可以透過指標便可輕易的存取.常聽到的溢位攻擊大致上就是運用這種惡意指標的方式

Java 有三層安全性保護
Byte-code verifier, class loader, security manager

其中Byte-code verifier就能防止溢位存取的發生
Security manager能限制程式的執行,例如不允許程式網路連線.

5.Java不支援運算子overload

6.Java中的陣列是特殊的物件型態

宣告型別為String的陣列變數 String [] arrayStr;
arrayStr此時還沒有陣列實體

Alloc陣列實體 arrayStr = new String [10];
陣列中的元素是該陣列型別的reference,並非實體
因此陣列初始的元素都是null reference

anonymous array

Func( new String [] { "string 0", "string 1", "string 2"});

7.Java中local variable必須明確賦值初始化



沒有留言:

張貼留言