java面試真題分享34-36

34.Integer與int的區別

int是java提供的8種原始數據類型之一,Java為每個原始類型提供了封裝類,Integer是java為int提供的封裝類。

int是java提供的8種原始數據類型之一,Java為每個原始類型提供了封裝類,Integer是java為int提供的封裝類。

在Hibernate中,如果將OID定義為Integer類型,那麼Hibernate就可以根據其值是否為null而判斷一個對象是否是臨時的,如果將OID定義為了int類型,還需要在hbm映射文件中設置其unsaved-value屬性為0。

另外,Integer提供了多個與整數相關的操作方法,例如,將一個字符串轉換成整數,Integer中還定義了表示整數的最大值和最小值的常量。

35.java.sql.Date和java.util.Date的聯繫和區別

1) java.sql.Date是java.util.Date的子類,是一個包裝了毫秒值的瘦包裝器,允許 JDBC 將毫秒值標識為 SQL DATE 值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以來經過的毫秒數。 為了與 SQL DATE 的定義一致,由 java.sql.Date 實例包裝的毫秒值必須通過將時間、分鐘、秒和毫秒設置為與該實例相關的特定時區中的零來“規範化”。 說白了,java.sql.Date就是與數據庫Date相對應的一個類型,而java.util.Date是純java的Date。

2)JAVA裡提供的日期和時間類,java.sql.Date和java.sql.Time,只會從數據庫裡讀取某部分值,這有時會導致丟失數據。例如一個包含2002/05/22 5:00:57 PM的字段,讀取日期時得到的是2002/05/22,而讀取時間時得到的是5:00:57 PM. 你需要了解數據庫裡存儲時間的精度。有些數據庫,比如MySQL,精度為毫秒,然而另一些數據庫,包括Oracle,存儲SQL DATE類型數據時,毫秒部分的數據是不保存的。以下操作中容易出現不易被發現的BUG:獲得一個JAVA裡的日期對象。 從數據庫裡讀取日期 試圖比較兩個日期對象是否相等。如果毫秒部分丟失,本來認為相等的兩個日期對象用Equals方法可能返回false。.sql.Timestamp類比java.util.Date類精確度要高。這個類包了一個getTime()方法,但是它不會返回額外精度部分的數據,因此必須使用...

總之,java.util.Date 就是Java的日期對象,而java.sql.Date 是針對SQL語句使用的,只包含日期而沒有時間部分。

36.使用遞歸算法輸出某個目錄下所有文件和子目錄列表

java面試真題分享34-36

package com.bjsxt;

import java.io.File;

public class $ {

public static void main(String[] args) {

String path = "D:/301SXT";

test(path);

}

private static void test(String path) {

File f = new File(path);

File[] fs = f.listFiles();

if (fs == null) {

return;

}

for (File file : fs) {

if (file.isFile()) {

System.out.println(file.getPath());

} else {

test(file.getPath());

}

}

}


分享到:


相關文章: