快捷搜索: 王者荣耀 脱发

字节跳动面试教训总结

整体流程及结果

整个面试只持续了80分钟,我就知道已经凉了,按照常理技术面之后是有HR面的。面试显示自我介绍,然后是项目介绍,之后是技术问题,最后做算法题。

技术问题

(1)谈谈你都Spring的理解。非常经典的问题,总能遇到。。。。但回答好不容易。 这位老兄总结的非常到位,算是比较好的回答了。 1)工作原理 spring是按照设计模式精心设计的一个框架,实现了工厂模式的共产类,这个类名叫BeanFactory(接口),在程序中往往使用它的子类ApplicationContext(也是接口)。

spring的核心是IOC容器,IOC也是一种编程思想,实现了模块之间的解耦,在Spring中的作用是对对象的创建,维护,销毁等生命周期的控制。实现控制反转。

spring是一个大的工厂类,spring的特点就是基于配置,在其配置文件中通过标签来创建实例对象。

根据业务逻辑,对象经常不是独立的,一个对象往往涉及另一个对象的创建,spring提供DI依赖注入,通过反射机制实现。有是那种注入方式:接口注入、构造器注入、Setter方法注入。

2)核心技术 IOC,AOP。系统中有很多不同功能的方法,在众多方法中加入某种系统功能的代码,如加入日志、权限判断等。实现AOP功能采用的是代理技术。

3)spring的优缺点 spring中避免了关键字new造成的耦合问题;spring本身就是一个工厂,不需要在编写工厂类;spring不需要进行明确的引用关系传递,直接通过配置完成;与其他框架整合方便

基于大量xml配置文件。

(2)进程和线程的理解。 从计算机系统的多任务出发,为了让计算机能同时干很多事,通过CPU让各个人物交替执行,其中每一个进程就是一个进程 进程是计算机中已运行的程序的实体,一个正在运行的程序就是一个进程,一个任务。例如,打来一个word,而word又可以做很多事,打字,拼音检查。在一个进程内部,要同时干很多事,就需要多个“子任务”。把进程中的这些“子任务”成为线程。

二者的本质区别是进程拥有一整套数据,线程之间却共享数据。有了线程非常有用,共享变量使得线程之间的通信更加有效和容易,并且创建、撤销一个线程也比进程效率高得多。

经验分享 程序员 微信小程序 职场和发展