function A() {
this.do=function() {return ‘foo’;};
}
A.prototype=function() {
this.do=function() {return ‘bar’};
};
var x=new A().do();
最后输出的应该是foo,只有实例对象上不存在的属性和方法才会去原型上查找。
2.
public class Main {
public static void changeStr(String str) {
str = "welcome";
}
public static void main(String[] args) {
String str="1234";
changeStr(str);
System.out.println(str);
}
}
答案是1234,这道题考的是参数方法传递特性,网方法中传参,传的仅仅是地址,而不是实际的内存,在方法中一直是形参在更改指向,形参在跳出方法的时候会被销毁,所以值不变。
3.
public class foo {
public static void main(String sgf[]) {
StringBuffer a = new StringBuffer(“A”);
StringBuffer b = new StringBuffer(“B”);
operate(a, b);
System.out.println(a +”.”+b);
}
static void operate(StringBuffer x, StringBuffer y) {
x.append(y);
y = x;
}
}
输出AB.B
4. switch语句后的控制表达式只能是short, chat, int, long, 整数类型和枚举类型,不能是float, double, boolean类型。String 类型是jdk7开始支持。
5. 类B从类A中派生,则B可以访问A中的?
public,protected 而private,所以数据成员,所有函数成员不可以
因为类B与类A可能不同包。
6. 常见浏览器端存储技术有:
cookie, localStorge :比cookie存储更多,获取更方便,但是存储内容不会随请求发送;userDate是ie支持的,但很少需要用到,除非有很强兼容需求。
7. final,finally,finalize的区别:
final用于声明属性,方法和类,分表表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句的一部分,表示总是执行。
finalize是Object的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
引用变量被final修饰后,不能再指向其他对象,它指向的对象内容也是不可变的。