java小白的第五周周考

选择题

单选题

  1. Map集合的添加元素的方法
    A. add(elements)
    B. put(key,value)
    C. put(key)
    D. addAll()
正确答案:B,
Map是键值对映射关系的集合,向map里面插入元素的方法时put(key , value)
  1. MYSQL默认服务端口号是
    A. 80
    B. 3306
    C. 3307
    D. 8080
正确答案:B
mysql的默认端口是 3306
  1. 如何将数组转换成集合
    A. asLsit方法
    B. toLsit方法
    C. toArray方法
    D. toArrays方法
正确答案:A
Arrays.asList( Object[] ) 将数组转化成列表集合
toList() 我在词典里找了半天没发现这个方法 哪位大佬知道的麻烦指点一下
ArrayListObject.toArray() 将列表转化成数组
toArrays() 这个我也没找到

  1. 哪个不是MySQL的数据类型
    A、int
    B、double
    C、char
    D、String

varchar和char的区别请看这位大佬的

正确答案:D
int 整数 double浮点数 char字符串 
  1. 以下关于where字句说法错误的是
    A: where可以搭配insert语句
    B. where可以搭配update语句
    C. where可以搭配delete语句
    D: where可以搭配select语句
正确答案:A
insert 是向表中插入数据 只需要指定表以及属性名就好了 , 不需要再筛选
  1. 下面代码的结果是
public class Example {
 public static void main(String[] args) {
  List<String> al = new ArrayList<String>();
  al.add("1");
  al.add("2");
  al.add("2");
  al.add("3");
  System.out.println(al);
 }
}
A: [1,2,3]
B: [1,2,3,3]
C: [1,2,2,3]
D: [2,1,3,2]
答案是:C 
ArrayList 是可扩展的有序数组集合,可以存入重复的元素
  1. 下面代码结果是
public static void main(String[] args){
 List list = new ArrayList();
 list.add(1);
 list.add(2);
 list.add(3);
 Collections.reverse(list);
 System.out.print(list);
}

A、3,2,1
B、1,2,3
C、编译失败
D、运行时抛异常

答案:A
Collections类 提供了大量的静态方法用来操作集合,Collections.reverse()是翻转集合里的元素
  1. 下面的输出结果是
HashSet<String> set = new HashSet<String>();
  String s1 = "abc";
  String s2 = "def";
  String s3 = "";
  set.add(s1);
  set.add(s2);
  set.add(s1);
  set.add(s2);
  Iterator<String> i = set.iterator();
  while (i.hasNext()) {
   s3 += i.next();
  }
  System.out.println(s3);
 }

A、abcdefabcdef
B、defabcdefabc
C、abcdef
D、defabc

答案是:C
set集合的特点是 无序、不重复、没有索引
所以set的集合里的元素有两个:abc,def
当使用 Iterator 进行迭代时按照存入的顺序输出
结果是 abcdef
  1. 下列代码在运行时
TreeMap map = new TreeMap();
map.put("A",null);

A、编译失败
B、运行时抛出异常
C、正常运行
D、以上皆不对

答案是:C
TreeMap 是自然顺序的映射集合,值可以是null所以正常运行
  1. mysql的表连接不包括
    A、内连接inner join
    B、左外联结left join
    C、右外联结right join
    D、完整联结full join
答案是:D
完整链接 MySQL暂时还不支持 可以用其他的方法代替
  1. 在JDBC编程中执行完下列SQL语句,select name,age,hiredate from emp;能得到rs的第一列数据的代码是
    A、rs.getString(0);
    B、rs.getString(“age”);
    C、rs.getString(1);
    D、rs.getString(“emp”);
rs是结果集 
rs.getString(n) :为获取结果集当前行的第n列数据。
ResultSet rs = conn.createStatement().executeQuery(sql);
while(rs!=null && rs.next()){
    rs.getString(1);//获取当前记录的第1列数据
}

多选题

  1. 关于Collections类说法正确的是
    A、提供了对集合进行操作的静态工具方法
    B、实现了Collection接口
    C、可以使用静态引入的方式使用静态方法
    D、sort方法可以对任意List进行排序操作
答案:AC
Collections是单独的一个类里面有很多操作集合的方法
sort方法 列表中的所有元素必须实现 Comparable接口。
  1. 关于Collection接口说法正确的是
    A、Collection接口下有Set、List、Map等子接口
    B、Collection接口的父接口是Iterable,表示可用forEach进行迭代操作
    C、Collection提供了基本的如add、remove、contains等集合操作
    D、集合只允许存放引用类型元素
答案:BCD
Map接口没有继承Collection接口
public interface Map<K,V>

判断题

  1. select * from student中,*号的含义是所有列信息
答案:对
select语法:
select 展示的列名(*表示展示所有) from 表名;
  1. drop用于删除表内的数据,表结构依然存在
答案:错
删除数据使用DELETE
语法:DELETE FROM 表名 [WHERE Clause];
  1. truncate和delete删除表数据,前者无法回滚,后者可以回滚。
答案:对
在MySQL中删除数据有两种方式:

truncate(截短)属于粗暴型的清空
delete属于精细化的删除

语法:
delete from tablename;
truncate table tablename;

执行效率
truncate不扫描表,相当于重新创建了表,只保留了表的结构,然后删除掉原有表,效率非常高。
delete会扫描全表,根据where语句做判断,因此效率低。

操作日志
truncate不写服务器日志,无法恢复。
delete会写服务器日志。

  1. sql中分组后的筛选使用having
答案:对
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。
HAVING 子句可以让我们筛选分组后的各组数据。
语法:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;
  1. LinkedList由于是双向链表结构,查询效率优先ArrayList
答案:错误
LinkedList 相较于 ArrayList 来说优势是对元素的增删,以为是双向链表结构 
只需要需要改变per和next的指向就好了
  1. Set接口的特点是元素不重复,不保证迭代顺序。
答案:错误
不保证迭代顺序是HashSet的特点
  1. HashMap可以使用Collections.synchronizedSortedMap方法“包装”,以到达线程安全
答案:B
这个方法是包装sorteMap的。
正确的是Map newMap = Collections.synchronizedMap(new HashMap<>());

在这里插入图片描述
21. ArrayList和LinkedList和Vector区别(10分,回答至少5点)

不同点:
①ArrayList和Vector是基于动态数组的数据结构,LinkedList是基于链表的数据结构;
②LinkedList新增了操作链表头部和尾部的方法,模拟堆栈和队列操作
③对于随机访问get(index)/se(index,值),ArrayList更擅长,因为ArrayList内部实现是基于数组的使用
get方法通过索引可以随机访问列表中的任意一个元素。
而LinkedList中的get方法是按照顺序从链表的一端开始检查,直到另外一端。
④对于add添加和remove删除操作,LinkedList更擅长,因为LinkedList只需要对指针指向进行修改,而
ArrayList需要移动列表中的元素。
⑤ArrayList和LinkedList都是不同步,Vector是同步的。ArrayList和LinkedList都是不同步,线程不安全。
如果多个线程同时访问一个List,则必须自己实现访问同步,列表应该使用Collections.synchronizedList
方法“包装”。  
  1. actor表结构如下:
    id name sex age
    1 乔丹 男 18
    2 baby 女 26
    3 大力 男 26
    完成以下查询(10分,每题2分)
    1.查询年龄在20到30之间的明星信息,显示id,name和sex
    2.查询男明星和女明星分别有几个,显示性别及数量
    3.修改乔丹的年龄为50。
    4.查询男明星,按照年龄从高到低输出,显示id,name,age
    5.删除乔丹
1、select id,name,sex from actor where age between 20 and 30;
2、select sex,count(*) from actor group by sex;
3、update actor set age = 50 where name = '乔丹';
4、select id,name,age from actor where sex  = '男' order by age desc;
5、delete from actor where name = '乔丹';
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值