[收藏]常见小问题

来源:互联网 发布:网络蜜汁尴尬什么意思 编辑:程序博客网 时间:2024/04/28 06:09

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命令:数据定义语言命令,用于创建、更改、删除数据库对象;

  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>();


 

 

原创粉丝点击