35~38

35. java.sql.Datejava.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构成构造方法的重载

posted @ 2020-11-23 09:07  xiaokai9527  阅读(74)  评论(0)    收藏  举报