2021 0711 sql 第一次测试

2-1
SQL语句中,聚合函数COUNT(列名) 的功能是什么?(1分)
A.计算元组个数
B.计算属性个数
C.对一列中的非空值计算个数
D.对一列中的空值和非空值计算个数

答案: C
解析: count(具体字段)这种写法更容易理解的含义是:返回该具体字段在分组数据中不为空(null)的条数,有多少条不为空(null),就会返回多少。


以下代码的输出结果为( )。(2分)

public class Pass{
     static int j = 20;
     public void amethod(int x){
         x = x*2;
         j = j*2;
    }
    public static void main(String args[]){
        int i = 10;
        Pass p = new Pass();
        p.amethod(i);
        System.out.println(i+" and "+j);
  }
}

A.错误:方法参数与变量不匹配
B.20 and 40
C.10 and 40
D.10 and 20

答案 : C
解析: 虽然静态类不可以调用非静态类方法 但是如果要用 那就 必须先实例化一个对象,然后用 对象名.方法名()。


3-1(多选题)

java中Hashtable, Vector, TreeSet, LinkedList哪些线程是安全的?。(2分)

A.Hashtable
B.Vector
C.TreeSet
D.LinkedList

答案: AB
解析:
线程安全(Thread-safe)的集合对象:

Vector 
HashTable
StringBuffer

非线程安全的集合对象:

 ArrayList 
 LinkedListHashMap
 HashSet
 TreeMap 
 TreeSet
 StringBulider

相关集合对象比较


下面Java中关于List、Set的说法哪些是正确的?(2分)

A.
List是有序的,允许元素重复
B.
Set是无序的,允许元素重复
C.
List允许随机访问(下标访问)
D.
Set不允许元素重复

答案: A D
解析:
List有序可重复,Set无序不重复,这里指的是添加数据的顺序。

但这里说的顺序有两个概念,一是按添加的顺序排列,二是遍历结果按自然顺序a-z排列.Set并不是无序的,传统说的Set无序是指HashSet,它不能保证元素的添加顺序,更不能保证自然顺序,而Set的其他实现类是可以实现这两种顺序的。

  • 保证元素添加的顺序,不保证元素自然的顺序,可重复:List
  • 不保证元素添加的顺序,不保证元素自然的顺序,不可重复:HashSet
  • 保证元素添加的顺序,不可重复:LinkedHashSet
  • 保证元素自然的顺序,不可重复:TreeSet

关于抽象类与接口,下列说法正确的有?(3分)
A.
优先选用接口,尽量少用抽象类
B.
抽象类可以被声明使用,接口不可以被声明使用
C.
抽象类和接口都不能被实例化。
D.
以上说法都不对

答案: A C;

解析:(借他人总结)

含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。含有abstract方法的类必须定义为abstract

class,abstract class类中的方法不必是抽象的。abstract class

类中定义抽象方法必须在具体

(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。

接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public

abstract类型,接口中的成员变量类型默认为public static final。

下面比较一下两者的语法区别:

1.抽象类可以有构造方法,接口中不能有构造方法。

2.抽象类中可以有普通成员变量,接口中没有普通成员变量

3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为publicabstract类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public

static final类型,并且默认即为public static final类型。


java中,下面关于this()和super()说法错误的有?(3分)
A.
super()和this()类似,区别是,super从子类中调用父类的构造方法,this()在同一类内调用其它方法
B.
this和super可以同时出现在一个构造函数里面
C.
super()必须放在构造方法内第一行,this()不需要
D.
super()不能在static环境中使用,this()可以

答案: B C D
解析:

1,this()函数主要应用于同一类中从某个构造函数调用另一个重载版的构造函数。this()只能用在构造函数中,并且也只能在第一行。所以在同一个构造函数中this()和super()不能同时出现。
2,super()函数在子类构造函数中调用父类的构造函数时使用,而且必须要在构造函数的第一行


以下关于final关键字说法错误的是(1分)
A.
final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性
B.
final修饰的类肯定不能被继承
C.
final修饰的方法不能被重载
D.
final修饰的变量不允许被再次赋值
答案; AC
解析:

final不能修饰抽象类,接口。因为抽象类原本就是让子类继承,final修饰类则该类不能被继承。 final修饰的方法不能被子类重写


SQL编程题:
在这里插入图片描述
答案:

SELECT sno AS 学号 ,count(sno) AS 选课门数,
SUM(score) AS 考试总成绩 FROM sc GROUP BY sno;

AS 是用别名来修饰这一列,


在这里插入图片描述

答案;

SELECT students.sno,students.sname,sc.cno,sc.score
FROM students 
JOIN sc 
ON students.sno = sc.sno AND students.ssex='女' AND students.sdept = '信息学院' ; 
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值