公司笔试题答案汇总(三)

三、第三间公司(辰宜)
1.hibernate的get和load有什么区别。
答:使用session.get()方法去得到一个对象,不管我们是否使用这个对象,都会发出sql语句去数据库中查询出来;
使用session.load()方法加载对象时,不会马上执行sql查询,会先得到该对象的代理对象,该代理对象中只有实体对象的id值,只有当我们要使用这个对象除id外的其他属性时,才会发出sql语句查询。

2.Spring的bean在什么时候实例化?
答:第一:如果你使用BeanFactory作为SpringBean的工厂类,则所有bean都是在第一次使用该bean的时候实例化;
第二:如果你使用ApplicationContext作为Spring bean的工厂类,分情况:
1)bean是单例,lazy-init为false,则ApplicationContext启动的时候就实例化该bean并存在一个map的缓存中;如果该bean实现了FactoryBean接口,则ApplicationContext启动的时候先实例化对应的FactoryBean,第一次使用bean的时候通过getObject方法实例化
2)bean是单例,lazy-init是true,实例化是在第一次使用时进行实例化
3)bean是多例时,也是第一次使用时进行实例化

3.AOP使用什么模式实现?
答:jdk的动态代理模式实现的面向切面编程

4.你使用过哪些前端技术?
答:html,css,JS,ajax,jquery,EasyUI,Ztree

5.java中,怎样克隆?
答:java中克隆有两种
1)浅克隆:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍然指向原有属性所指向的对象的内存地址。
2)深克隆:创建一个新对象,属性中的引用其他对象也会被克隆,不再指向原有对象地址。
要进行克隆,该类要实现Cloneable的接口,重写clone()方法,在这个方法中加上自己的克隆逻辑。
补充:clone()是object的方法

6.javascript中,怎样获取,设置,删除一个属性?
答:原生Js:获取属性.getAttribute(“属性”),设置属性.setAttribute(“属性”,“值”),删除属性.remoteAttribute(“属性”)
jQuery:获取属性.attr(“属性”);设置属性.attr(“属性”,“值”);删除属性.removeAttr(“属性”)

7.javascript中,call,apply,bind的区别?
答:a.都可以在函数调用时传递参数。call,bind方法需要直接传入,而apply方法需要以数组的形式传入。
b.call.apply方法是在调用之后立即执行函数,而bind方法没有立即执行,需要将函数再执行一遍。

8.静态方法,构造方法的执行顺序?
答:初始化顺序(依次是静态变量、静态构造函数、实例变量、实例构造函数)
子类静态变量初始化>子类静态构造函数>父类静态变量初始化 > 父类静态构造函数 > 父类实例变量初始化>父类实例构造函数 > 子类实例变量初始化>本身实例构造函数。

9.多线程的实现方法?
答:a.继承Thread类,重写run方法
b.实现runnable接口,重写run方法,实现runnable接口的实现类的实例对象 作为Thread构造函数的target
c.通过callable,和FutureTask创建线程
public class ThreadDemo03 {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Callable oneCallable = new Tickets();
    FutureTask oneTask = new FutureTask(oneCallable);
   Thread t = new Thread(oneTask);
    System.out.println(Thread.currentThread().getName());
    t.start();
}
 
  

}
class Tickets implements Callable{

//重写call方法
@Override
public Object call() throws Exception {
    // TODO Auto-generated method stub
    System.out.println(Thread.currentThread().getName()+"-->我是通过实现Callable接口通过FutureTask包装器来实现的线程");
    return null;
}   

d.通过线程池创建线程

public class ThreadDemo05{
    private static int POOL_NUM = 10;     //线程池数量
    /**
     * @param args
     * @throws InterruptedException 
     */
    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub
        ExecutorService executorService = Executors.newFixedThreadPool(5);  
        for(int i = 0; i

10.javascript中,什么是闭包?
答:闭包就是能够读取其他函数内部变量的函数。跨作用域访问变量。指可以访问另一个函数作用域变量的函数。

function user () {
 var name = 'xixi'
 return function getName () {
 return name
 }
}
var userName = user()()
console.log(userName) // xixi

11.javascript中,函数怎么样定义?
答:a.function 函数名(参数){}
b.(function(){}).()
c.var fname = function(参数){};

12.spring mvc 的 @RequestMapping 是什么?
答:这个注释是用于映射url到控制器类或一个特定的处理程序方法。多不同的URL请求映射不同的处理方法。

13.AOP能实现什么功能?
答:日志记录,权限控制,事务管理

你可能感兴趣的:(笔试题答案)