面试题-广州信景技术有限公司
1.列举你开发中使用过的工具,以及简单描述他们的用途,除eclipse、Word、Excel、PPT。
自由发挥,Photoshop是技术栈。
2.说说你用过哪些JS的框架。
vue Bootstrap AngularJS
3.简述如何在浏览器中调试JS程序。
F12 打开浏览器的控制台
4.form中input可以设置为readonly和disabled,请问有什么区别?
readonly不可编辑,但可以选择和复制;值可以传递到后台
disabled不能编辑,不能复制,不能选择;值不可以传递到后台
5.请写出servlet的生命周期。
Servlet生命周期分为三个阶段:
1,初始化阶段 调用init()方法
2,响应客户请求阶段 调用service()方法
3,终止阶段 调用destroy()方法
6.谈谈final,finally,finalize的区别。
1.final:
修饰符,可以用来修饰类、方法、变量。断子绝孙的操作,被修饰的类无法被继承,抽象类因为abstract的存在 所以被修饰了也无法实现了,没有意义(报错),将变量和方法用final修饰,可以保证他们不被修改(只读)。被声明为final的方法也同样只能使用,不能重载。
2.finally :
捕获异常时出现,在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
3.finalize:
方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。
7.java中exception和error有什么区别,运行时异常和一般异常有什么区别,写出你常见的runtimeexception.
exception是程序正常运行中,可以预料的意外情况,并且应该被捕获,进行相应的处理.
error是指在正常情况下,不大可能出现的情况,绝大部分的error都会导致程序(比如jvm自身)处于非正常的、不可恢复的状态。既然是非正常情况,所以不便于也不需要捕获,常见的比如OutOfMemoryError之类,都是Error的子类.
算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未找到异常:FileNotFoundException 字符串转换为数字异常:NumberFormatException 操作数据库异常:SQLException 输入输出异常:IOException 方法未找到异常:NoSuchMethodException
8.写一个Singleton例子。
public class Singleton { //懒汉模式 private static Singleton instance; private Singleton (){} public static synchronized Singleton getInstance() { //加synchronized就是保证线程安全 if (instance == null) { instance = new Singleton(); } return instance; } }
9.MVC的各个部分都有哪些技术来实现?如何实现?
10.说一下hibernate的缓存机制,一级缓存和快照的区别?
一级缓存
Hibernate的一级缓存就是指Session缓存,Session缓存是一块内存空间,用来存放相互管理的java对象,在使用Hibernate查询对象的时候,首先会使用对象属性的OID值在Hibernate的一级缓存中进行查找,如果找到匹配OID值的对象,就直接将该对象从一级缓存中取出使用,不会再查询数据库;如果没有找到相同OID值的对象,则会去数据库中查找相应数据。当从数据库中查询到所需数据时,该数据信息也会放置到一级缓存中。Hibernate的一级缓存的作用就是减少对数据库的访问次数。
快照原理
ibernate的快照机制和session缓存机制一样也是为了提高程序的执行效率,session缓存是为了提高程序在获取数据时的效率,而快照则是为了提高程序在更新数据时的效率。在hibernate将数据封装成对象放入session缓存中时,同时也会复制一份数据放入session缓存的快照中,当程序调用uadateXXX()方法并提交事务之后,hibernate不会直接向数据库发送sql语句执行更新操作,而是会先清理缓存,比对缓存和快照中的对象属性是否一致,如果一致,则不执行update语句,即不会向数据库发送sql语句,如果不一致,则将数据同步更新到数据库中,并更新快照区。
7、8、9步就是区别。会先比对有没有,然后更改,一致就不改,不一致就改。
11.请说出项目的开发流程以及项目人员配置。
需求,设计,编码,测试,上线