平安科技面经

平安科技面经 2018.12.3

一面(电话面试45min)

1、自我介绍(简单提到项目)

2~3 min

2、spring启动时的容器启动流程(对配置的加载顺序)?

容器启动流程中涉及的主要类——

ContextLoaderListener:注册在web.xml中,web应用启动时,会创建它,并回调它的initWebApplicationContext()方法,从而创建并启动spring容器。必须继承ServletContextListener。

WebApplicationContext:用于web应用的spring容器上下文,它代表了spring容器,继承自ApplicationContext。是一个接口,ContextLoader.properties配置文件中可以声明它的实现类。默认实现类为XmlWebApplicationContext。 ApplicationContext继承自BeanFactory,并扩展了它的很多功能。

ServletContext:web容器(如tomcat)的上下文,不要和ApplicationContext搞混了。

3、spring使用到的设计模式?最好说出在什么地方使用,举例说明。

 

4、手撕设计模式,写一种你熟悉的设计模式的demo。

写了简单工厂模式demo(包含测试类)

无代码提示,所以在平时书写时注意代码的格式以及细节处,避免出现小问题。

 

5、String s=new String(“abc”),包含几个对象?

(两个或一个都有可能,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。NewString每写一遍,就创建一个新的对象,它使用常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,那么这里就不会创建”xyz”了,直接从缓冲区拿,这时创建了一个StringObject;但如果以前没有用过"xyz",那么此时就会创建一个对象并放入缓冲区,这种情况它创建两个对象。)

创建了两个对象,一个是new  String 创建的一个新的对象,一个是常量“abc”对象的内容创建出的一个新的String对象。

创建过程分析:当执行String s = new String(“abc”);时,JVM首先在String Pool中查看是否存在字符串对象“abc”,如果不存在该对象,则先在String Pool中创建一个新的字符串对象“abc”,然后执行new String(“abc”)构造方法,在Heap里又创建一个新的字符串对象“abc”(new出来的对象都放在Heap堆里面),并将引用s指向Heap中创建的新对象;如果已存在该对象,则不用创建新的字符串对象“abc”,而直接使用String Pool中已存在的对象“abc”, 然后执行new String(“abc”)构造方法,在Heap里又创建一个新的字符串对象“abc”,并将引用s指向Heap中创建的新对象。

 

注意:使用new String(“”)创建的字符串对象时,会在运行期创建新对象存储到Heap中。因此,new String(“abc”)创建字符串对象时,会创建2个对象,编译期在String Pool(字符串常量池)中创建一个,运行时Heap中创建一个。

 

6、static可以修饰什么?有什么作用?

作用于方法上:方法属于类,不属于类的实例对象;Static方法不需要实例对象就可以通过类名调用,且Static方法中不能有实例成员。

作用于变量上:……

作用于类上:……

在什么时候执行:……

 

注:非static——

作用于方法上:属于类的实例对象,可以有static成员。

作用于变量上:属于实例对象或者是局部变量,创建类的实例对象才能引用。

作用于类上:可以有Static成员也可以有非Static成员。

static是在编译的时候被绑定,加载的时候就会被执行的。按顺序执行static变量和static代码块。

Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。 

 

7、HashMap的源码简述。

8、Hashtable与HashMap的区别?

HashMap和Hashtable的相同点——

HashMap和Hashtable都是存储“键值对(key-value)”的散列表,而且都是采用拉链法实现的。

存储的思想都是:通过table数组存储,数组的每一个元素都是一个Entry;而一个Entry就是一个单向链表,Entry链表中的每一个节点就保存了key-value键值对数据。

添加key-value键值对:首先,根据key值计算出哈希值,再计算出数组索引(即,该key-value在tab

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值