您的位置:首页 > 职场人生

面试遇到的问题小结

2018-03-22 16:39 555 查看

1.a=a+b 和 a+=b的区别

主要区别在于精度转换,a+=b自带类型转换效率更高,参考文章

2.servlet是线程安全的吗?

Servlet 默认是单例模式,在web 容器中只创建一个实例,所以多个线程同时访问servlet的时候,Servlet是线程不安全的。 

参考文章

3.递归分治排序数组

卧槽,先放一放。。。。

4.得到100-200的所有素数

参考文章,质数又称素数。。。

5.在spring里使用stringbuild还是stringbuffer

首先,stringbuild是线程不安全的但效率高,而stringbuffer是线程安全的效率低,参考文章
所以要考虑spring是不是线程安全的,在大多数情况下,spring bean是非线程安全的,所以用stringbuffer,参考文章

6.关于静态块,块,构造器和继承之间的加载顺序

这一块一直都比较模糊,学习下
demo class A {
A() {
System.out.println("构造器A");
}

static {
System.out.println("static A");
}

{
System.out.println("块A");
}

}

class B extends A {
B() {
System.out.println("构造器B");
}

static {
System.out.println("static B");
}

{
System.out.println("块B");
}

public static void main(String[] args) {
System.out.println("main");
new A();
// new B();
// new B();
}
}


输出结果:
static A
static B
main
块A
构造器A


------------------------------------------------------------------------------------
将mian变为public static void main(String[] args) {
System.out.println("main");
// new A();
new B();
// new B();
}输出结果:
static A
static B
main
块A
构造器A
块B
构造器B


------------------------------------------------------------------------------------
将mian变为 public static void main(String[] args) {
System.out.println("main");
// new A();
new B();
new B();
}
输出结果:
static A
static B
main
块A
构造器A
块B
构造器B
块A
构造器A
块B
构造器B
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: