三星的面试流程:简历筛选 --- 技术面试 --- 综合面试 --- 智力测试 --- 入职 --- 内部程序员中级考试。
面试的总体问题,主要侧重于前端和数据库,后端侧重于底层框架的实现原理。面试的要求还是非常有水准的,可惜自己准备的不够充分。一次面试也算是一次学习的机会,希望这篇文章能帮助到你。
面试的总体感受:简历上写的东西和面试没有任何关系,好好复习基础东西,并且要清楚底层原理,工作的时间久了,应该更多的去关心底层的一些东西。
下面记录的部分问题,仅供参考,回答的内容有补充的欢迎评论中留言及时更新。
面试的主要问题:
1. 怎么隐藏一个div
答:
style="display: none;"
document.getElementById("typediv1").style.display="none";//隐藏
2.请求中乱码怎么处理
答:tomcat中server.xml 进行编码配置 ,大概格式为 <Connector port=”8082” protocol=”HTTP/1.1” URIEncoding=”utf-8”>
或者在参数传递的过程中进行转换
String param= URLDecoder.decode(param, "UTF-8");
3. 隔行变色怎么处理
答:
方法一 jQuery的基本过滤选择器:
$(document)。ready(function() {
//odd:匹配所有索引值为奇数的元素,从0开始计数
//even:匹配所有索引值为偶数的元素,从0开始计数
//$("tr:even")。css("background-color", "#CC0000"); //为双数行表格设置背颜色素
$("tr:odd")。css("background-color", "#CC0000"); //为单数行表格设置背颜色素
});
4.如何在div元素的尾部追加?
答:
append() - 在被选元素的结尾插入内容(元素内)
prepend() - 在被选元素的开头插入内容(元素内)
after() - 在被选元素之后插入内容(元素外)
before() - 在被选元素之前插入内容(元素外)
5. jsp内置对象
答:
输入输出对象:request对象、response对象、out对象
通信控制对象:pageContext对象、session对象、application对象
Servlet对象“page对象、config对象
错误处理对象:exception对象
6. jsp servlet 区别
答:参考https://www.zhihu.com/question/37962386
运行时:客户端在请求jsp时 先把jsp程序转换为servlet代码,直接将他编译为
类文件,但是如果使用servlet时,可以直接对编译好的类文件执行。
使用方式:
servlet 使用必须放在特定位置而且必须对其配置;
jsp可以放在和html同样的位置,而且不需要配置可以直接使用。
程序组成:
在html中内嵌java代码组成jsp文件;
servlet是由纯java代码编写。
职能不同:
jsp主要负责页面效果展现
servlet主要负责逻辑控制
7. 分页查询怎么写? 为什么要用三层嵌套?
答:三层嵌套
select * from (
select tmp.*,ROWNUM as tmpRownum from (select * from t_table_name)tmp where rownum <=20
)where tmpRownum>10
首先:在没有order by clause的情况下,oracle的查询结果的顺序会是不确定的。
所以order by的使用是应该的,以免因为index等的原因导致不确定的results order。
其次,在order by 和 ROWNUM同时使用时,oracle默认的策略是先为伪列rownum赋值,再order by。
引用rownum与order by同时存在的问题
当 where 后面有rownum的判断,并且存在order by时候,rownum的优先级高!
oracle会先执行rownum的判断,然后从结果中order by,很明显是错误的结果啦!就好像学校要取成绩最好的前10名同学
,结果这种方法一执行,成了取出10名同学,然后按照成绩的高低排序!
这点与SQL Server的TOP完全不同,TOP遇上order by,是先执行order by,在分页的;
解决办法就是先执行order by,然后嵌套执行rownum-----说白啦就是用()改变函数的优先级!
所以,第二层嵌套的目的就是:让结果先order by,再取rownum!
再次,因为rownum不可使用 >(=) 来判断的原因,所以需要最外围的第三层嵌套
8. union和union all的区别
答:union 在进行表链接后会筛选掉重复的记录;
union all 是对查询结果的合并。
9. Oracle 常用函数
答:lower(char):转小写;
upper(char):转大写;
length(char): 返回长度;
substr(char,n,m): 截取字符串;
replace(char,search_char,replace_char):替换
to_char(date,'类型格式'):转换
nvl():空值转换
decode():值条件替换
concat():字符连接
10. varchar char 区别,为什么varchar可变长?
答:CHAR的长度是固定的,而VARCHAR2的长度是可以变化的。
11. 函数和存储过程区别
答:
区别一:
函数总是向调用者返回数据,并且一般只返回一个值;
存储过程不直接返回数据,但可以该表输出参数的,且输出参数的个数没有限制。
区别二:
function的定义只能有ddl语句(select),procedure主要是dml语句(update、insert、delete)
12. 平时工作 Oracle 都做那些操作
答:https://blog.csdn.net/chenghui0317/article/details/7959680
13. java常用集合,并且说明区别和选择?
答:
map是顶层接口,不继承collection(List Set)接口
List set map
List:
ArrayList是一个非线程安全的类;
Vector的方法都是线程安全的
LinkedList是以双向列表存储的
set:不重复
HashSet:是讲存入Set中的元素以Hash链表的方式存储起来;
LinkedHashSet:双向列表来维护元素的顺序,所有访问是按顺序访问;
TreeSet:实现了一个顺序访问的不重复元素的Set,底层使用红黑树进行数据的存储,来加快访问的速度;
map:Map和Set的区别是Set只有值,而Map是一个键值对<key,value>,Set不存重复的元素,Map中的key不能相同
HashMap:和HashSet相似,用hash链表来存储,讲键值对作为一个元素存储;
LinkedHashMap:
类似于HashMap,但是迭代遍历它时,取得“键值对”的顺序是其插入次序,或者是最近最少使用(LRU)的次序。只比HashMap慢一点。而在迭代访问时发而更快,因为它使用链表维护内部次序;
14:List中元素的获取方式?
答:ArrayList a = new ArrayList();
方式1:
Iterator it = a.iterator();//把元素导入迭代器
while (it.hasNext()) {
Object o = it.next();
System.out.println(o);
}
方式2:
for (int i = 0; i < a.size(); i++) {
System.out.println(a.get(i));
}
15. spring中事务怎么管理的?
答:https://www.ibm.com/developerworks/cn/education/opensource/os-cn-spring-trans/index.html
16. Springmvc 请求流程:
17. Spring Springmvc区别
18. responsebody作用
19. ModelAndView解释? model里面存的是什么?
20. 平时工作中使用到的视图解析器有是什么。
InternalResourceViewResolver
<!-- jsp视图解析器 -->
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
21. 使用过哪些前端框架。
22. 谈谈自己多态的理解。