概述
考试范围:JavaSE、数据库
一 选择题
1 下面代码的执行结果是
public class SystemUtil{
public static boolean isAdmin(String userId){
return userId.toLowerCase()=="admin";
}
public static void main(String[] args){
System.out.println(isAdmin("Admin"));
}
}
A true B false C 编译错误 D 1
2 下面代码的执行结果是
class Base{
private String baseName = "base";
public Base(){ callName(); }
public void callName(){ System.out.println(baseName);}
}
class Sub extends Base {
private String baseName = "sub";
public void callName(){ System.out.println (baseName) ;}
public static void main(String[] args){
Base b = new Sub();
}
}
A base B sub
C null D 编译错误
new Sub();在创造子类的过程中首先创建父类对象,然后才能创建子类对象。
创建父类即默认调用Base()方法,在方法中调用callName()方法,由于子类中存在此方法,则被调用的callName()方法是子类中的方法,此时子类还未构造,所以变量baseName的值为null
3 在Java中,关于HashMap类的描述,以下正确的是 ACD
A HashMap使用键/值的形式保存数据
B HashMap 能够保证其中元素的顺序
C HashMap允许将null用作键
D HashMap允许将null用作值
Map集合类 | key | value |
HashMap | 允许为null | 允许为null |
TreeMap | 不允许为null | 允许为null |
ConcurrentMap | 不允许为null | 不允许为null |
HashTable | 不允许为null | 不允许为null |
HashMap 不按插入顺序排序,按照哈希值排序。所以无序。
但是不增删改键的情况下,输出是按照一定顺序不变的
4 下述说法中抽象类与接口的区别与联系正确的有哪些ABCD
A 抽象类中可以有普通成员变量,接口中没有普通成员变量。
B 抽象类和接口中都可以包含静态成员常量。
C 一个类可以实现多个接口,但只能继承一个抽象类
D 抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。
5 下列类型,被final关键字修饰的是BC
A HashMap B StringBuffer
C String D Hashtable
6 下面代码的执行结果是C
class B {
public static B t1 = new B();
public static B t2 = new B();
{System.out.println("构造块");}
static {System.out.println("静态块");}
public static void main(String[] args){
B t = new B();
}
}
A 静态块 静态块 静态块 构造块 构造块 构造块
B 静态块 构造块 构造块 构造块
C 构造块 构造块 静态块 构造块
D 构造块 静态块 构造块 静态块
7 在公司局域网上ping www.qq.com没有涉及到的网络协议是:A
A TCP B DNS
C ICMP D ARP
ping 使用的协议为icmp,通过域名解析,需要用到DNS,局域网中使用arp进行主机间的通信。TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接.故选择A
8 下面哪些项是TCP具有的能力ABD
A 有连接
B 数据可靠传输
C 数据按序到达
D 端到端流量控制
TCP发送的数据是有序的,但接受的顺序不一定是有序的,接收端会对其再次排序,从而保证结果的有序性。即TCP是有序提交,不是有序到达。
9 Java语言中,如果"xyz"没有被创建过,String s = new String(“xyz”);创建了几个String对象 B
A1 B2 C3 D4
两个,一个在堆中,一个在常量池中。
10 下面关于数据库唯一索引正确的是( )ABC
A 表可以包含多个唯一约束,但只能有一个主键
B 唯一约束列可以包含null值
C 唯一约束列可修改和更新
D 唯一约束不能用来定义外键
二 简答题
1 简述HashMap的实现原理
1 数据结构是数组加链表,jdk1.8之后又加入了红黑树;
2 当添加一个元素(key-value)时,首先计算元素的key的hash值,以此来确定插入数组中的位置;
3 如果hash值相同,这时就添加到同一个hash值(hashCode)的元素的后面,他们在数组的同一位置,于是形成了链表;
4 当链表长度大于8且元素(k-v)个数超过64时,链表就转换为红黑树,这样就提高了查找的效率;
5 当红黑树中的节点个数小于6时,红黑树又重新转换为链表﹔
2 简述String StringBuffer StringBuilder三者的区别
- 修改String对象的值,内存地址会发生改变;
- StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的对象,即内存地址不变;
- StringBuffer是线程安全的,StringBuilder是线程不安全的;
- StringBuilder的执行速度比StringBuffer快;
3 简述Java中权限修饰符有哪些,分别控制什么权限
4 jvm的类加载顺序
static > new > 代码块 > 构造方法
5 简述static关键字的用法
6 简述final关键字的用法
7 简述什么是序列化?什么是反序列化?
8 列举mysql数据库中的索引类型
单列索引 : 普通索引 唯一索引 主键索引
组合索引
全文索引
空间索引
9 mysql8.0数据库的默认引擎是
InnoDB
10 简述sql中having关键字的用法
having关键字配合group by分组使用,用于对分组之后的结果集进行筛选,可以使用聚合函数。
三 数据库
学生表student_info
字段 | 数据类型 | 备注 |
id | int | 主键 |
name | varchar | 学生姓名 |
age | int | 年龄 |
grade | int | 成绩 |
sex | int | 性别 1=男 0=女 |
c_id | int | 班级id,外键 |
班级表class_info
字段 | 数据类型 | 备注 |
id | int | 主键 |
c_name | varchar | 班级名称 |
t_name | varchar | 任课老师 |
1 统计每个班成绩最高的学生信息
select * from(
select * from student_info order by grade desc
) as t group by t.c_id;
2 查询tom老师的班级中年龄最小的女生信息
select * from student where age = (
select min(age) from student_info where c_id = (
select class_id from class_info where t_name = ‘tom’
) and sex = 0) and c_id = (
select class_id from class_info where t_name = ‘tom’
) and sex = 0;
3 统计每个班级的总人数
4 查询班级id为1的班级中成绩最好的前3个同学信息
select * from student_info where c_id = 1 order by grade desc limit 3;
5 统计男生人数和女生人数
最后
以上就是无奈百合为你收集整理的2112Java班笔试题02一 选择题二 简答题三 数据库的全部内容,希望文章能够帮你解决2112Java班笔试题02一 选择题二 简答题三 数据库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复