1.如何判斷閏年
if(year % 4 ==0) && (year %100 != 0) || (year % 400 ==0)
cout<<"是閏年";
即:如果年份不是整百年的要能被4整除,整百年的必須能被400整除才是閏年!
2. 資料庫中的幾個概念:許可權、角色、資料庫物件
許可權允許使用者執行特定的SQL語句。在Oracle9i中存在兩種許可權:系統許可權和對象許可權。“系統許可權”允許訪問Oracle9i資料庫,並且允許使用者對資料庫物件(如表、視圖)執行DDL操作;“對象許可權”允許使用者對資料庫中包含的資料執行DML操作。
Oracle9i中共有13種對象許可權:SELECT、INSERT、UPDATE、DELETE、INDEX、ALTER、REFERENCES等,大約有140種系統許可權。通過資料字典視圖SYSTEM_PRIVILEGE_MAP查看Oracle9i中所有可用的系統許可權。
角色就是一組許可權或者說是許可權的一個集合。為避免向需要相同許可權的使用者反覆指定相同的許可權,更簡單的方法是向角色指定許可權,然後向使用者指定角色。
ROLE_SYS_PRIVS資料字典視圖列出了已經向角色授予的所有系統許可權;SESSION_PRIVS視圖列出了目前使用者僱用了哪些許可權。
資料庫物件就是具有一個名稱和一種已定義結構的任何元素。Oracle9i中常用的資料庫物件有:表、約束、視圖、序列、索引和同義字。
DDL命令:資料定義語言 (Data Definition Language)命令,用於建立、更改、刪除資料庫物件;
DML命令:資料操縱語言命令,用於修改表內的資料,並不更改表的實際資料;
3. FormBean和普通JavaBean的區別:前者除了具有JavaBean的常規方法,還有兩種特殊方法:validate()---用於表單驗證和reset()----用於將屬性重新設定為預設值。
4. Java 5.0泛型程式設計之泛型型別
即使被重寫的Java集合類帶來了泛型的好處,在使用他們的時候您也不被要求說明類型變數。一個不帶類型變數的泛型型別被認為是一個未經處理的類型(raw type)。這樣,5.0版本以前的java代碼仍然能夠運行,但用5.0編譯器時常會見到一些編譯警告。如下代碼向Vector中加入一個對象:
BusinessEntity bEntity = new BusinessEntity();
Entity.setDefaultName(new Name("ABC"));
Vector busVector = new Vector();
busVector.add(bEntity);
這段代碼在java1.4下運行得很好。如果您用java5.0來編譯它,javac編譯了,但是會列印出這樣的“抱怨”:
Note: Test.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
如果我們加入-Xlint參數後重新編譯,我們會看到這些警告:
unchecked call to add(E) as a member of the raw type java.util.Vector
編譯在add()方法的調用上給出了警告,因為它不能夠確信加入到Vector中的值具有正確的類型。 它告訴我們說我們使用了一個未經處理的類型,它不能驗證我們的代碼是型別安全的。注意,get()方法的調用是沒有問題的,因為能夠被獲得的元素已經安全的存在於Vector中了。
如果您不想使用任何的java5.0的新特性,您可以簡單的通過帶-source1.4標記來編譯他們,這樣編譯器就不會再“抱怨”了。如果您不能這樣做,您可以忽略這些警告,通過使用一個“@SuppressWarnings("unchecked")”註解隱瞞這些警告資訊或者升級您的代碼,加入類型變數描述。下列範例程式碼,編譯的時候不再會有警告但仍然允許您往list中放入不同的類型的對象。
Vector<Object> busVector = new Vector<Object>();