今天去公司面试,做了一套试卷。下面是面试的题
1.写出一个singleton模式的类,并阐述起作用
答:Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收。
//Singleton模式通常有几种形式 public class Singleton { //定义一个私有的构造器 private Singleton(){} //定义一个私有的静态的成员变量或对象 private static Singleton ins = new Singleton(); //这里提供了一个共有的class的静态方法,可以直接访问 public static Singleton getIns() { return ins; } } // 第二种形式: public class Singleton { private static Singleton ins = null; public static synchronized Singleton getIns() { if (instance==null) instance=new Singleton(); return instance; } }
2.在javascript中k=0;for(var i=0,j=0;i<10,j<6;i++,j++){k=i+j;}alert(k);页面中显示的是多少?
答案是10.
因为js中for循环也要遵循for循环的特性但碰到了条件不符时就不运算了。但是如果是两个条件也是一样的,如果第一个符合,第二个不符也要跳出。
3. Math.floor(Math.random())*7
Math.floor(Math.random()*7)
Math.floor(Math.random()*8)
Math.ceil(Math.random()*8)
上面几个代码分别取值为多少之间?
答:因为Math.random()是随机产生的伪随机数,返回0和1之间的伪随机数,可能为0,但总是小于1。
然而Math.ceil()是返回大于等于自身的最小整数。Math.floor()是返回小于等于自身的最大整数。
Math.floor(Math.random())*7是0-0之间
Math.floor(Math.random()*7)是0-6之间
Math.floor(Math.random()*8)是0-7之间
Math.ceil(Math.random()*8)是0-8之间