好久没有面试,前天面试一家it企业,一上来部门老大接连问技术问题,无非是一些常用技术点,由于我生小孩之前一直做的讲师职业(有两年多),现在带小孩休息了好长时间,好些问题没用就遗忘了,反正就是感觉技术落了很久,一时想捡起来有些困难,然后,然后就没有然后了,总之被血洗了很惨,总的来说也是一次经历吧,成长的一部分,以后多总结吧
突然觉得,有了小孩之后自己的时间更少了,不知道这一次的选择是否正确,想要坚持走编程这条路,不知道自己是否有好的机遇,遇到自己想要的工作状态
废话不多说了,再过会 宝宝又醒了
1、 java中创建对象有哪几种方式
四种方式
New关键字
运用反射手段,调用java.lang.Class()或者java.lang.reflect.Constructor类的newInstance()实例方法
调用对象的clone方法
运用反序列化手段,调用java.io.ObjectInputStream的readObject方法
问题扩展:java的反射中有几种创建对象的方法
1、 通过Class对象的newInstance方法(getClass()或。Class),但只能去默认的构造方法
2、 通过class对象的getConstructor()取得构造对象,在通过Constructor类调用newInstance方法
3、 通过Array.newInstance(),不过仅限于数组对象
2、 抽象类与接口有什么区别,接口能继承抽象类吗
接口是公开的,不能有私有的方法,全部都是抽象方法,抽象类可以有私有方法,可以有抽象方法和非抽象方法
实现接口要实现所有的方法,继承抽象类可以有选择性的重写方法
一般的应用,最顶层是接口,然后是抽象类,其次才是实现类
接口可以实现多重继承(一个类可以实现多个接口,但是一个类只能继承一个类)
Java是单继承,多实现的机制
接口不能继承抽象类,因为接口中全是抽象方法,抽象类中有非抽象方法,这一点上有冲突
3、 序列化如何实现,有什么好处
序列化就是一种用来处理对象流的机制,对象流就是将对象的内容进行流话,方便网络传输,可以对流进行读写操作
实现序列化,首先将对象类实现Serializable接口(标注该对象可被序列化), 使用一个输出流FileOutPutStream构造出 ObjectOutPutStream ,其中有一个writeObject(obj)文件写入方法,如果是读对象流则被称做反序列化,FileInputStream,构造ObjectInputStream,readObject
方便在网络传输时,对象之前的传输,例如 网络传输时可以直接传字符串,但是如果传对象就需要用到序列化和反序列化,首先通过对象序列化将对象转成字节流,进行传输,接收方得到字节流之后,再反序列化转成对象
4、 Oracle中的分页如何实现,写sql语句
Select * from (
Select tb1.* ,rownum rn (
Select * from table1 --该处写查询条件 where 1=1
) tb1 where rownum<=20
) where rn>=10
SELECT* FROM
(
SELECTA.*, ROWNUM RN
FROM(SELECT* FROMTABLE_NAME) A
WHEREROWNUM <= 40
)
WHERERN >= 21
5、 文件递归表字段设计
常规应用,文件夹及文件的操作,菜单操作(从属关系)
表1 :id, parentid(父级id 顶级菜单为空) level (节点级别) path (菜单路径),remark 备注
6、 说出JQuery中有哪些选择器,至少说5种
# 根据id获取元素
. 根据class样式获取元素
* 选择所有元素
+ 相邻元素
》子元素
~ 同胞元素 例如$("#prev ~ div") 同胞选择器,该选择器返回的为id为prev的标签元素的所有的属于同一个父元素的div标签
$("#main > *") 选择id值为main的所有的子元素
基本过滤选择器 :
$("tr:first") 选择所有tr元素的第一个
$("tr:last") 选择所有tr元素的最后一个
$("input:not(:checked) + span")
过滤掉:checked的选择器的所有的input元素
$("tr:even") 选择所有的tr元素的第0,2,4... ...个元素(注意:因为所选择的多个元素时为数组,所以序号是从0开始)
$("tr:odd") 选择所有的tr元素的第1,3,5... ...个元素
$("td:eq(2)") 选择所有的td元素中序号为2的那个td元素
$("td:gt(4)") 选择td元素中序号大于4的所有td元素
$("td:lt(4)") 选择td元素中序号小于4的所有的td元素
$(":header") 选择h1、h2、h3之类的
内容过滤选择器:
$("div:contains('John')") 选择所有div中含有John文本的元素
$("td:empty") 选择所有的为空(也不包括文本节点)的td元素的数组
$("div:has(p)") 选择所有含有p标签的div元素
$("td:parent") 选择所有的以td为父节点的元素数组
可视化过滤选择器:
$("div:hidden") 选择所有的被hidden的div元素
$("div:visible") 选择所有的可视化的div元素
属性过滤选择器:
$("div[id]") 选择所有含有id属性的div元素
$("input[name='newsletter']") 选择所有的name属性等于'newsletter'的input元素
$("input[name!='newsletter']") 选择所有的name属性不等于'newsletter'的input元素
$("input[name^='news']") 选择所有的name属性以'news'开头的input元素
$("input[name$='news']") 选择所有的name属性以'news'结尾的input元素
$("input[name*='man']") 选择所有的name属性包含'news'的input元素
$("input[id][name$='man']") 可以使用多个属性进行联合选择,该选择器是得到所有的含有id属性并且那么属性以man结尾的元素
子元素过滤选择器:
$("ul li:nth-child(2)"),$("ul li:nth-child(odd)"),$("ul li:nth-child(3n + 1)")
$("div span:first-child") 返回所有的div元素的第一个子节点的数组
$("div span:last-child") 返回所有的div元素的最后一个节点的数组
$("div button:only-child") 返回所有的div中只有唯一一个子节点的所有子节点的数组
表单元素选择器:
$(":input") 选择所有的表单输入元素,包括input, textarea, select 和 button
$(":text") 选择所有的text input元素
$(":password") 选择所有的password input元素
$(":radio") 选择所有的radio input元素
$(":checkbox") 选择所有的checkbox input元素
$(":submit") 选择所有的submit input元素
$(":image") 选择所有的image input元素
$(":reset") 选择所有的reset input元素
$(":button") 选择所有的button input元素
$(":file") 选择所有的file input元素
$(":hidden") 选择所有类型为hidden的input元素或表单的隐藏域
表单元素过滤选择器:
$(":enabled") 选择所有的可操作的表单元素
$(":disabled") 选择所有的不可操作的表单元素
$(":checked") 选择所有的被checked的表单元素
$("select option:selected") 选择所有的select 的子元素中被selected的元素
7、 Hibernate与mybatis的区别?
Mybatis是半自动框架,主要思想是 sql mapping,而Hibernate是全自动,主要思想是OR Mapping
Mybatis对于sql调优更灵活,能直观看到sql,而Hibernate是通过对象自动生成sql,调优不方便,个人觉得mybatis好用一些
Hibernate优点 移植数据库比较方便,Mybatis麻烦,
8、 Struts2与springMVC的区别?
A、 Struts2是类级别的拦截 (由于Struts2的拦截器比较多,这块比较耗时),而springMVC是方法级别的拦截
B、 SpringMVC比Struts2稍快,Struts2是基于类,每一次请求都实例化一个Action,每个Action都注入属性,SpringMVC是方法级别拦截,每次拦截方法之后根据参数上的注解把request数据注入
C、 参数传递,Struts2在接受参数时,是用属性接受参数,说明参数让方法共享
D、 Struts更加符合OOP的思想,SpringMVC比较谨慎,是在servlet上扩展
E、 拦截器的实现机制,Struts是配置自己的拦截器,SpringMVC使用AOP的思想,Struts配置上多一些,SpringMVC更容易实现restful方式
F、 SpringMVC验证是个亮点,支持JSR303 ,处理Ajax请求更方便,只需一个注解@ResponseBody
@RequestMapping(value="/whitelists")
public String index(ModelMap map) {
Account account = accountManager.getByDigitId(SecurityContextHolder.get().getDigitId());
List<Group> groupList = groupManager.findAllGroup(account.getId());
map.put("account", account);
map.put("groupList", groupList);
return "/group/group-index";
}
// @ResponseBody ajax响应,处理Ajax请求也很方便
@RequestMapping(value="/whitelist/{whiteListId}/del")
@ResponseBody
public String delete(@PathVariable Integer whiteListId) {
whiteListManager.deleteWhiteList(whiteListId);
return "success
9、 Struts 在处理请求时,每次请求都重新创建对象(多例)还是只创建一个(单例)?
每次请求都创建一个新对象
10、 Spring中有哪些设计模式,你用过哪些?
最典型的 工厂模式,顶级类是BeanFactory
单例模式
适配器模式 Adapter
包装器
代理模式
观察者模式Observer
策略
11、 Spring中如何实现代理模式(AOP)?
12、 Spring中如何配置事务?
13、 分层中,事务是在哪一层,在service层吗,如果service层中有A,B两个方法,都是有事务的,A方法调用B方法,在Action中调用A方法,那么整个过程是几个事务
14、 Hibernate中能写sql语句吗,hql语句与sql语句有什么区别
Hql操作的是对象,Sql操作的是表字段,在Hibernate中也可以写sql语句
15、 数组和链表(List集合)有什么区别,哪个效率高?
数组 定义简单 是连续的变量存储,使用时必须分配实际大小,有可能浪费内存空间 删除 和添加 麻烦
链表 内部定西复杂 不连续存储,动态分配内存 随时加入或删除变量
16、 Map是有序的吗?Map中线程安全的是哪个?
Map是无序的,HashMap线程不安全 是Map接口的实现类
Hashtable是线程安全,是Collections的子类
17、 StringBuffer与StringBuilder的区别?
执行速度上StringBuilder》StringBuffer
StringBuilder是线程不安全的 StringBuffer是线程安全的
18、 什么是注解,注解有什么好处,如何使用?
19、 get和post提交方式的区别,当用get提交时,如何解决中文乱码问题
能回答上
20、 数据结构中 二分法查找有一个什么特点?
注意 被查找的对象必须是有序的
分享到:
相关推荐
学生面试问题汇总表
模拟电子技术基础面试问题汇总 模拟电子技术基础面试问题汇总是电子技术领域的基础知识点总结,涵盖了模拟电子技术的基础概念、半导体、PN结、晶体管、三极管、放大电路等方面的知识点。 一、半导体 * 半导体分类...
嵌入式软件面试问题汇总,通常会涉及到一系列与嵌入式系统、编程语言、硬件交互、操作系统、实时性以及项目经验等相关的话题。以下是对这些关键知识点的详细解释: 1. **嵌入式系统基础**:面试中可能会问及嵌入式...
"银行面试问题汇总.zip" 文件中的"银行面试问题汇总.pdf"为你提供了一份全面的指南,涵盖了银行面试的常见问题和关键知识点。以下是一些重要的面试主题和相关知识,它们可能会出现在你的面试过程中。 1. 自我介绍:...
物联网面试问题汇总.md
MySQL常见面试问题汇总
这个名为“JAVA面试问题汇总”的资源显然是为准备Java面试的候选人精心整理的。它包含了超过160个问题,涵盖了广泛的Java知识领域,旨在帮助求职者全面了解可能遇到的面试挑战。以下是基于这个主题的详细知识点讲解...
华为软件测试面试问题汇总.pdf
【标题】: "常见面试问题汇总" 【描述】: "JAVA程序员面试宝典,涵盖了面试中经常遇到的问题,包括mysql数据库的优化、mysql查询中limit的使用、索引的创建以及redis与mysql事务的对比。" 【标签】: "java 面试" ...
总的来说,计算机网络和数据库面试问题汇总涵盖了从基础到高级的各种知识点,包括网络协议、编程语言特性、数据库原理和SQL优化等。掌握这些知识点,对于应聘者在面试中展现自己的专业能力至关重要。在准备面试的...
《阿里面试问题汇总》 阿里云作为中国领先的云计算企业,其面试过程对于求职者来说具有一定的挑战性,旨在寻找具备专业技能、良好沟通能力和积极进取心态的人才。以下将详细解析这些面试要点,帮助你更好地准备阿里...
如"面试问题汇总",这表明文稿的内容是关于面试过程中可能遇到的问题集合。标题通常采用大号字体(如28pt Arial Regular),并使用黑色以保证高对比度和易读性。 2. **副标题和描述**:副标题可以提供更具体的信息...
考研复试面试问题汇总 在考研复试面试中,面临的问题可以分为多种类型,例如自我介绍、专业知识、兴趣爱好、职业规划等。以下是考研复试面试常见问题的总结: 一、自我介绍类问题 * 请你简单做个自我介绍。 * 你...
AI学习与面试问题汇总
java 面试问题汇总
考研复试面试问题汇总(含英语) 考研复试面试问题汇总是指在研究生入学考试中,面试部分的常见问题总结。这些问题涵盖了个人背景、学习经历、职业规划、兴趣爱好等多方面内容。 第一部分:个人背景 考研复试面试中...
计算机网络技术专业求职面试问题汇总 本文总结了计算机网络技术专业的求职面试问题,涵盖了无线网络、交换机、网络安全、VRRP、VLAN、生成树、Access口和Trunk口等多个方面的知识点,并提供了详细的解释和示例。 1...
【网络优化-LTE面试问题汇总】 在LTE网络优化过程中,面试者可能会遇到一系列与测试、性能指标、信号质量以及传输模式等相关的问题。以下是对这些关键点的详细解释: 1. **LTE测试工具与终端**: - 前台测试通常...