面试java开发岗位收到面试邀请,一般都会有笔试题。以下是本人面试的一些笔试题目记录一下
2月26日面试题·················································
一、Java
1.以下不属于面向对象特征的基本特点的是( B)
A封装性 B模块性 C多态性 D继承性
2.在java中,表示换行符的转义字符是(A)
A /n B /f C 'n' D /dd
3.下列关于栈道描述错误的是(B)
A 栈是先进后出的线性表
B 栈只能顺序存储
C 栈具有记忆作用
D 对栈的插入与删除操作中,不需要改变栈底指针
解析:栈的存储结构是顺序存储和链式存储,故B错
4.在java中,能实现多重继承效果的方式是( C)
A 内部类 B 适配器 C 接口 D 同步
解析:类可以实现多个接口从而达到多重继承的效果
5.下列关于线程优先级的说法中,正确的是( C)
A 线程的优先级是不能改变的
B 线程的优先级是在创建线程时设置的
C 在创建线程后的任何时候都可以设置
D B和C
6.为了使模块尽可能独立,要求(B)
A 模块的内聚程度尽可能高,且各模块间的耦合程度要尽可能强
B 模块的内聚程度尽可能高,且各模块间的耦合程度要尽可能弱
C 模块的内聚程度尽可能低,且各模块间的耦合程度要尽可能强
D 模块的内聚程度尽可能低,且各模块间的耦合程度要尽可能弱
二、数据库
班级表 t_class
班级代码 班级名称
1 一年级
2 二年级
分数表 t_scores
班级代码 学生 科目 分数
1 小明 数学 90
1 小明 语文 60
2 小红 数学 80
2 小红 语文 70
2 小刚 数学 60
2 小刚 语文 50
1.统计查询每个学生的总分?
select name as 学生,
sum(case when subject='语文' then grade else 0 end) as 语文,
sum(case when subject='数学' then grade else 0 end) as 数学,
sum(grade) as 总分
from t_scores group by name
或者
select name as 学生,
sum(grade) as 总分
from t_scores group by name
2.统计查询总分大于150分的学生?
select name as 学生,sum(grade) as 总分
from t_scores group by name having sum(grade)>150;
注: 学生的总分最大是150所以查不到数据可以在后面加个等于就有2条了
3.统计多少个学生?
select count(distinct name) as 学生个数 from t_scores ;
4.统计每个班级多少个学生?
select c.code as 班级id,c.codeName as 班级名称,count(distinct s.name) as 个数 from
t_scores s
LEFT JOIN
t_class c
on s.code =c.code
group by c.code;
2月27日上午面试···························································
1.请列举一下你所熟悉的JAVA的基本数据类型?
整型:byte、short、int、long 浮点型:float、double 字符型:char 布尔型:bolean
2.请简述一下hibernate的原理?
hibernate是对jdbc进一步封装,简化了数据库访问层的重复代码。
工作原理:1.通过Configuration config = new Configuration.configure(); //读取并解析Hibernate.cfg.xml配置文件
--2.由hibernate.cfg.xml中的<mapping resource ="com/xx/user.hbm.xml"/>; //读取并解析映射信息
--3.通过SessionFactory sf = config.buildSessionFactory(); //创建SessionFactory;
--4.Session session = sf.openSession(); //打开Session
--5.Transaction tx = session.beginTransaction(); //创建并开启事物Transaction
--6.persistent operate //操作数据,持久化操作
--7.tx.commint(); //提交事物
--8.关闭Session
--9.关闭sessionFactory
3.请简述list、set、map的区别?
list、set实现了Collection接口
list:1.可以允许重复的对象。2.可以插入多个null元素。3.是一个有序容器,怎么插入就怎么输出。4.实现类有ArrayList、LinkedList和Vector。ArrayList最流行,它提供了使用索引随意访问,而LinkedList则对经常从list中添加或删除元素的场景更适合。
set:1.不允许重复元素。2无序的容器,你无法保证每个元素的存储顺序,Treeset通过Comparator或者Comparable维护了一个排序顺序。3.只允许一个null元素4.set实现了Hashset、LinkedHashset以及Treeset。最流行的是基于HashMap实现的Hashset;TreeSet实现了SortedSet接口,因