本编博文只是为了记录给学校一个公司的同学出的一些题目:
Java部分:
IO题:(可以只填写关键代码,即可省略类命名,主方法命名等。各变量命名符合规范,无特定要求。单一描述题在25-100字之间,多描述题每个描述部分10-30字。“附加: ”后为加分题。)
1. 利用IO类实现文件读写。条件:尽可能考虑性能。文件及地址无要求。
2. 读写随机访问文件。条件:在写入时修改第三行。文件内容为:
Test.txt:
29.1
72.3
53.2
5.663
235.75
.........
3. 画出你所知Java库中的IO类结构。并在结构图下简单描述3-8个类,包含各自命名以及作用或应用场景。同一类的输入输出算一个,比如inputStream 和 outputStream
4. InputStream和Reader的区别是什么?为什么要这样分?InputStreamReader类的作用又是为了什么?附加:
5. System.out以及System.in中的out和in ,返回的是哪个类?
6. 对单个文件进行压缩以及解压缩的过程。
7. ISO-8859-1, ASCII, GBK ,UNICODE ,UTF8分别指什么编码格式?有什么区别
8.
内部类题:
1. 内部类分为哪几种?
设计模式:
1. 懒汉和饿汉单例模式有什么区别?要怎么处理多并发情况懒汉模式的可能的多线程问题?
2.
3.
代码:
1.下列代码将输出什么
2. hashcode和equals的约定关系是什么?
3. Short s1 = 1; s1 = s1 +1; 和 Short s1 = 1; s1 += 1; 有什么区别?编译是否能成功?如果不成功又是因为什么?
4. Java的类可以继承多个类,但只能实现单个接口,那怎么样才能使一个类能拥有多个接口的特征并实现?
5. Final, finalize和finally的区别是什么?
6. Int可以转换成byte吗?会出现什么问题?
7. Set里的元素是不能重复的,那是怎么判断元素是否已存在?
8. Java要如果跳出多重嵌套循环?请举个例子。
多线程:
1. 你了解多少种创建线程的方式?请分别举例
2. 请举例简述活锁和死锁的区别。
3. 为什么要使用线程池?线程池的好处是什么?
4. 什么是乐观锁和悲观锁?
5.
异常处理:
1. throw和throws的区别?
2. 请列举四个你所了解的异常。并分别用10字左右进行简述。
3. 下列代码会输出什么?
1.
public class TryCatchFinally {
@SuppressWarnings("finally")
public static final String test() {
String t = "";
try {
t = "try";
return t;
} catch (Exception e) {
t = "catch";
return t;
} finally {
t = "finally";
}
}
public static void main(String[] args) {
System.out.print(TryCatchFinally.test());
}
}
2.
public class TryCatchFinally {
@SuppressWarnings("finally")
public static final String test() {
String t = "";
try {
t = "try";
return t;
} catch (Exception e) {
// result = "catch";
t = "catch";
return t;
} finally {
t = "finally";
return t;
}
}
public static void main(String[] args) {
System.out.print(TryCatchFinally.test());
}
}
3.
public class TryCatchFinally {
@SuppressWarnings("finally")
public static final String test() {
String t = "";
try {
t = "try";
Integer.parseInt(null);
return t;
} catch (Exception e) {
t = "catch";
Integer.parseInt(null);
return t;
} finally {
t = "finally";
}
}
public static void main(String[] args) {
System.out.print(TryCatchFinally.test());
}
}
4.
public class TryCatchFinally {
@SuppressWarnings("finally")
public static final String test() {
String t = "";
try {
t = "try";
Integer.parseInt(null);
return t;
} catch (NullPointerException e) {
t = "catch";
return t;
} finally {
t = "finally";
}
}
public static void main(String[] args) {
System.out.print(TryCatchFinally.test());
}
}
容器类:
1. 队列中poll()和remove()方法的区别?
2. LinkedHashMap和PriorityQueue的区别?
3. Comparator和Comparable的区别?
4. Collections和Collection的区别?
5. 你了解几种遍历集合的方式?分别是什么?哪种方式更好?为什么?
6.
7.
多态:
1. 对以下几种代码分别执行 SuperClass clz = new SubClass(); clz.doWork(); 会产生怎么样的结果?请分别描述。
1: Class SuperClass{
Public void doWork(){
System.out.println(“Super.doWork”);
}
}
Class SubClass extends SuperClass{
}
2: Class SuperClass{
}
Class SubClass extends SuperClass{
Public void doWork(){
System.out.println(“SubClass.doWork”);
}
}
3: Class SuperClass{
Public void doWork(){
System.out.println(“Super.doWork”);
}
}
Class SubClass extends SuperClass{
Public void doWork(){
System.out.println(“SubClass.doWork”);
}
}
4. Class SuperClass{
Static public void doWork(){
System.out.println(“Super.doWork”);
}
}
Class SubClass extends SuperClass{
Static public void doWork(){
System.out.println(“SubClass.doWork”);
}
}
网络编程:
1. URL和URI的全程以及区别?各自的应用场景。
2. 请详细的描述WEB浏览器向WEB服务器发送获取页面请求,服务器响应返回的过程。
3. 网络架构分层你习惯用哪种分层形式理解?请写下你的方式以及具体的分层。并描述各层的作用。
MYSQL:
现在有几张表分别是
user 用户表:
Id int(11), name varchar(30), username varchar(30), remarks varchar(255)
menu 权限表:
Id int(11), parent_id int(11), name varchar(30)
role 角色表:
Id int(11),name varchar(30),
user_role用户-角色表,:
Id int(11), user_id int(11), role_id int(11)
Role_menu 角色-权限表:
Id int(11), role_id int(11), menu_id int(11)
通过以上表写出下列问题的sql
1. 已知用户的id(用#{id}表示),查询该用户的所有权限。
2. 已知权限的id(用#{id}表示),查询拥有该权限的所有用户。
3. 已知用户的id(用#{id}表示),同时符合关联表条件的用户的名字,权限名字,角色名字。
即若“用户1”拥有身份“角色1”和“角色2”,“角色1”和“角色2”都拥有权限“权限1”。则查询结果为
“用户1” “角色1” “权限1”,
“用户2” “角色2” “权限1”
CREATE TABLE`employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));
INSERTINTO employees VALUES(10001,'1953-09-02','Georgi','Facello','M','1986-06-26');
INSERT INTO employeesVALUES(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21');
INSERT INTO employeesVALUES(10003,'1959-12-03','Parto','Bamford','M','1986-08-28');
INSERT INTO employeesVALUES(10004,'1954-05-01','Chirstian','Koblick','M','1986-12-01');
INSERT INTO employeesVALUES(10005,'1955-01-21','Kyoichi','Maliniak','M','1989-09-12');
INSERT INTO employees VALUES(10006,'1953-04-20','Anneke','Preusig','F','1989-06-02');
INSERT INTO employeesVALUES(10007,'1957-05-23','Tzvetan','Zielinski','F','1989-02-10');
INSERT INTO employeesVALUES(10008,'1958-02-19','Saniya','Kalloufi','M','1994-09-15');
INSERT INTO employees VALUES(10009,'1952-04-19','Sumant','Peac','F','1985-02-18');
INSERT INTO employeesVALUES(10010,'1963-06-01','Duangkaew','Piveteau','F','1989-08-24');
INSERT INTO employeesVALUES(10011,'1953-11-07','Mary','Sluis','F','1990-01-22');
CREATE TABLEIF NOT EXISTS "titles" (
`emp_no` int(11) NOT NULL,
`title` varchar(50) NOT NULL,
`from_date` date NOT NULL,
`to_date` date DEFAULT NULL);
INSERT INTO titles VALUES(10001,'SeniorEngineer','1986-06-26','9999-01-01'); INSERT INTO titles VALUES(10002,'Staff','1996-08-03','9999-01-01');INSERT INTO titles VALUES(10003,'Senior Engineer','1995-12-03','9999-01-01');INSERT INTO titles VALUES(10004,'Engineer','1986-12-01','1995-12-01'); INSERTINTO titles VALUES(10004,'Senior Engineer','1995-12-01','9999-01-01'); INSERTINTO titles VALUES(10005,'Senior Staff','1996-09-12','9999-01-01'); INSERT INTOtitles VALUES(10005,'Staff','1989-09-12','1996-09-12'); INSERT INTO titlesVALUES(10006,'Senior Engineer','1990-08-05','9999-01-01'); INSERT INTO titles VALUES(10007,'SeniorStaff','1996-02-11','9999-01-01'); INSERT INTO titlesVALUES(10007,'Staff','1989-02-10','1996-02-11'); INSERT INTO titlesVALUES(10008,'Assistant Engineer','1998-03-11','2000-07-31'); INSERT INTOtitles VALUES(10009,'Assistant Engineer','1985-02-18','1990-02-18'); INSERTINTO titles VALUES(10009,'Engineer','1990-02-18','1995-02-18'); INSERT INTOtitles VALUES(10009,'Senior Engineer','1995-02-18','9999-01-01'); INSERT INTOtitles VALUES(10010,'Engineer','1996-11-24','9999-01-01'); INSERT INTO titlesVALUES(10010,'Engineer','1996-11-24','9999-01-01');
CREATE TABLE`dept_manager` (
`dept_no` char(4) NOT NULL,
`emp_no` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
1.查找最晚入职员工的所有信息
select * from employees
where hire_date =
(select max(hire_date) from employees)
2.查找employees表所有emp_no为奇数,且last_name不为Mary的员工信息,并按照hire_date逆序排列
select * from employees
where emp_no % 2 = 1
and last_name != 'Mary'
order by hire_date desc
3.从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。
注意对于重复的emp_no进行忽略。
select title, count(distinct emp_no) as t from titles
group by title
having t>=2
4.查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no
select salaries.*,dept_manager.dept_no from salaries, dept_manager
where salaries.emp_no = dept_manager.emp_no
and salaries.to_date = "9999-01-01"
and dept_manager.to_date = "9999-01-01";
查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序
CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
DROP TABLE IFEXISTS `TabName`;
CREATE TABLE`TabName` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(20) DEFAULT NULL,
`Date` date DEFAULT NULL,
`Scount` int(11) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDBAUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
INSERT INTO`TabName` VALUES ('1', '小说','2013-09-01', '10000');
INSERT INTO`TabName` VALUES ('2', '微信','2013-09-01', '20000');
INSERT INTO`TabName` VALUES ('3', '小说','2013-09-02', '30000');
INSERT INTO`TabName` VALUES ('4', '微信','2013-09-02', '35000');
INSERT INTO`TabName` VALUES ('5', '小说','2013-09-03', '31000');
INSERT INTO`TabName` VALUES ('6', '微信','2013-09-03', '36000');
INSERT INTO`TabName` VALUES ('7', '小说','2013-09-04', '35000');
INSERT INTO`TabName` VALUES ('8', '微信','2013-09-04', '38000');
SELECT * fromTabName ;
SELECT Date ,
MAX(CASE NAME WHEN '小说' THEN Scount ELSE 0 END ) 小说,
MAX(CASE NAME WHEN '微信' THEN Scount ELSE 0 END ) 微信
FROM TabName
GROUP BY Date
列转行
Select Date, group_concat(NAME,'总量:',Scount) as b_str from TabName
group by Date
行转列
select Date,NAME, group_concat(NAME,'总量:',Scount) as b_str from TabName
group by Date ,NAME
Jquery
1. 如何隐藏id为abc的元素?
JS部分
1. 找出元素item 在给定数组 arr 中的位置 -----------5分
function(arr,item){
}
function indexOf(arr, item) {
if
(Array.prototype.indexOf){
return
arr.indexOf(item);
}
else
{
for
(var i =
0
; i < arr.length; i++){
if
(arr[i] === item){
return
i;
}
}
}
return
-
1
;
}
2.在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
找出元素item 在给定数组 arr 中的位置 -----------10分
function insert(arr, item, index) {
}
-
function insert(arr, item, index) {
-
var a=arr.slice(0);
-
a.splice(index,0,item);
-
return a;
-
}
-
3.在数组 arr 中,查找值与 item 相等的元素出现的所有位置 ------------10分
function findAllOccurrences(arr, target) {
}
In: 'abcdefabc'
Out: [0, 6]
function findAllOccurrences(arr, target) {
var arr1=[];
var j=0;
for(var i=0;i<arr.length;i++){
if(arr[i]===target){
arr1.push(arr.indexOf(arr[i],j));
j++;
}
}
return arr1;
}
完成函数createModule,调用之后满足如下要求:
1、返回一个对象 -------3分
2、对象的greeting 属性值等于str1,name 属性值等于str2
3、对象存在一个sayIt 方法,该方法返回的字符串为greeting属性值+ ', ' + name属性值
function createModule(str1, str2) {
}
function createModule(str1,str2) {
var newObj = {
greeting:str1,
name:str2,
sayIt:function(){
return this.greeting+', '+this.name; //注意this
}
}
return newObj;
JSP:
1. JSP有几种隐式对象?分别是什么?各自用10字左右简述。
2. Response有哪些常用的方法?请写出五个。各自用10字左右简述。
3. Servlet和JSP有什么区别?
4. JSP有哪些插入其他页面信息的方法?有什么区别?
5. Jsp有哪些弊端?
框架: (描述题要求25字以上)
1. 什么是aop?
2. 什么是IOC?
3. Spring和springmvc的区别是什么?
4. Springmvc用什么类装载数据传输?
5. 使用Mybatis有什么好处?
6.
设计模式:
1.单例模式分为哪几种?有什么区别?
2.懒汉式单例模式多并发的情况会出现“多例“的情况,要怎么解决?非“多例”情况又会出现什么问题?
3.请用工厂模式设计以下实例。 一位家长想从玩具厂中买玩具给他的孩子当生日礼物,该玩具厂主要生产拼凑型玩具,拼凑型玩具有很多种,该玩具厂则以高达类,乐高类,拼图类,该家长决定买乐高类。
4.请用应用事例制造一个抽象工厂模式。
5.将对某一实例对象的创建过程十分相似时,将创建过程统一交由一个类负责。-----建造者模式
6.原型模式的原理是不调用构造函数创建对象。clone()和serializable
7.适配器模式比如java中的jdbc,enumeration转化成iterator ,靠继承和依赖
8.桥接模式,将抽象和具体化分离,尽量不要继承,减少耦合
前端:
1.请用html制作下图
编程题:
1. 输入一个链表,输出该链表中倒数第k个结点。 --------10
https://blog.csdn.net/u013686654/article/details/73827816
2. 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
---------- 10