Java综合练习01

选择题
  • 以下选项错误的是:( A )
    A、short s=1;s=s+1;
    B、short s=1;s+=1;
    C、int s=1;s=s+1;
    D、int s=1;s+=1;
  • 在MySQL数据库中下面哪个单词可以进行缩写:( C )
    A、SELECT;
    B、WHERE;
    C、DESCRIBE;
    D、HAVING;
  • JavaScript中原始的五种数据类型不包含:( B )
    A、String;
    B、Object;
    C、Number;
    D、Boolean;
  • 数据库SQL的六大子句的执行顺序是:( B )
    A、select--from--where--group by--having--order by;
    B、from--where--group by--having--select--order by;
    C、select--where--group by--having--from--order by;
    D、where--from--group by--having--select--order by;
  • 在java中,一个类可以同时定义许多同名的方法,这些方法的形式参数个数,类型或顺序各不相同,传回的值也可以不相同。这种特性称为:( C )
    A、隐藏
    B、覆盖
    C、重载
    D、java不支持此特性
  • 用于判断一个对象类型的关键字是:( B )
    A、equals()
    B、 instanceof
    C、 getType()
    D、new
  • 不允许作为类及类的成员的访问控制符的是:( D )
    A、public
    B、private
    C、protected
    D、static
  • JDBC中,用于表示数据库连接的对象是:( B )
    A、Statement
    B、Connection
    C、DriverManager
    D、PreparedStatement
  • 如果没有指定Cookie的时效,那么默认的时效是:( C )
    A、一天
    B、永不过期
    C、会话级别
    D、一分钟
  • Java 集合类里面最基本的接口不包含:( A )
    A、Collections
    B、Set
    C、List
    D、Map
问答题
  • 请简述在DAO开发中MVC设计模式:
    MVC软件分层
  • 请简述JDBC调用数据库的基本步骤:
    参考JDBC
编码题
  • 请用java编码实现您对数据库连接池原理的理解:
package com.neuedu.pool;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import javax.sql.DataSource;
import com.neuedu.util.DBUtil;

/**
* 数据库连接池类:
*     1. 这个类一加载需要产生30个数据库连接
*  2. 提供公共的获取连接的方法
*  3. 能够扩容(新增加5个连接)
*  4. 提供公共的归还连接的方法
* @author 清水三千尺
*
*/
public class DBPoor implements DataSource {
  // 注意:多态思想
  List list = new ArrayList();
  
  // 1. 这个类一加载需要产生30个数据库连接(两种方式)
  // 静态代码  、 构造方法
  public DBPoor() throws ClassNotFoundException {
      for(int i = 0;i < 30;i++) {
          Connection conn = DBUtil.getConn();
          list.add(conn);
      }       
  }

  
  // 2. 提供公共的获取连接的方法
  @Override
  public Connection getConnection() throws SQLException {
      // 对外提供连接:使用集合的什么方法获取集合的数据库连接
      // remove(0):代表永远移除集合中的第一个元素
      // 3. 能够扩容(新增加5个连接)(什么时候扩容?:连接不够用了)
      if(list.size() == 0) {
          // 扩容
          for(int i = 0;i < 5;i++) {
              Connection conn;
              try {
                  conn = DBUtil.getConn();
                  list.add(conn);
              } catch (ClassNotFoundException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
              
          }   
      }
      return list.remove(0);
  }
  
  
  // 4. 提供公共的归还连接的方法
  // true 成功
  // false 失败
  public boolean giveBackConn(Connection conn) {
      return list.add(conn);
  }
  

  // ------------------------------------------------------------

  @Override
  public PrintWriter getLogWriter() throws SQLException {
      // TODO Auto-generated method stub
      return null;
  }

  @Override
  public void setLogWriter(PrintWriter out) throws SQLException {
      // TODO Auto-generated method stub
      
  }

  @Override
  public void setLoginTimeout(int seconds) throws SQLException {
      // TODO Auto-generated method stub
      
  }

  @Override
  public int getLoginTimeout() throws SQLException {
      // TODO Auto-generated method stub
      return 0;
  }

  @Override
  public Logger getParentLogger() throws SQLFeatureNotSupportedException {
      // TODO Auto-generated method stub
      return null;
  }

  @Override
  public  T unwrap(Class iface) throws SQLException {
      // TODO Auto-generated method stub
      return null;
  }

  @Override
  public boolean isWrapperFor(Class iface) throws SQLException {
      // TODO Auto-generated method stub
      return false;
  }


  @Override
  public Connection getConnection(String username, String password) throws SQLException {
      // TODO Auto-generated method stub
      return null;
  }   
}

你可能感兴趣的:(Java综合练习01)