35~38
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.Timestamp,只会从数据库里读取某部分值,这有时会
导致丢失数据。例如一个包含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类精确度要高。
java.sql.Date 和 java.util.Date 最大的不同在于 java.sql.Date 只记录日期,而没有具体这一天的时间。所
以举例来说,如果当前是2009-12-24 23:20,你创建一个 java.sql.Date 将只记下2009-12-24这个信息。若你需要
保留时间进行JDBC操作,请使用 java.sql.Timestamp 代替。
总之,java.util.Date 就是Java的日期对象,而java.sql.Date 是针对SQL语句使用的,只包含日期而没有时间部
分。
36. 递归应用题
题目 : 使用递归算法输出某个目录下及其子目录下所有文件.
递归 : 自动调用自己 , 需要定义递归出口.
题目分析 : 参数为一个指定的目录 . 输出所有文件列表;
package test1;
import java.io.File;
public class test1 {
/*静态私有化方法的特点:
1. 方法只能在类内部使用。
2. 性能提高,静态的函数无需检测this指针是否为空。
(一般函数的第一个参数是对象本身,而静态的可以为null,不需要额外的检查)
*/
private static void test(String path) {
//list()方法是返回某个目录下的所有文件和目录的文件名,返回的是String数组
//listFiles()方法是返回某个目录下所有文件和目录的绝对路径,返回的是File数组
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());
}
}
}
public static void main(String[] args) {
String path = "C:\\Users\\16271\\Desktop\\毕业设计1\\后勤管理\\picture\\PPT北京";
test(path);
}
}
37. 关于Java编译,下面哪一个正确()
A: Java程序经编译后产生machine code (机器代码)
B: Java程序经编译后会产生byte code (字节码)
C: Java程序经编译后会产生DLL (动态链接库)
D: 以上都不正确
分析: Java是解释型语言,编译出来的是字节码; 因此A不正确,C是C/C++语言编译动态链接库的文件为.DLL; 正
确答案为B
38. 下列说法正确的有()
A: class中的construtor不可省略
B: construtor与class同名,但方法不能与class同名
C: construtor在一个对象被new时执行
D: 一个class只能定义一个construtor
答案:C
分析:A:如果class中的construtor省略不写,系统会默认提供一个无参构造
B:方法名可以与类名同名,只是不符合命名规范
D:一个class中可以定义N多个construtor,这些construtor构成构造方法的重载
浙公网安备 33010602011771号