设计模式

字节跳动、拼多多前端面经

非 Y 不嫁゛ 提交于 2021-01-10 15:15:25
字节跳动 一面 1.说出以下代码的原型关系,以及 Object 和 Function 的原型关系 Function; function test() { } var obj = new test(); __proto__ prototype 2.合并两个已排序的链表:递归解法、迭代解法 3.判断数组类型有哪些方法 4.webpack 常用 loader、plugin 5.Promise 中抛出异常能否被 catch 捕获? let promise = new Promise((resolve, reject) => { throw new Error() reject() }) promise.catch(err => { console.log(err) }) 6.冯诺依曼体系讲讲 7.线程与进程的区别 8.操作系统为什么要设计用户态和内核态? 二面 1.讲讲模块化规范 2.import 和 require 的区别 3.require 是如何解析路径的? 4.模拟实现 new 操作符 5.算法:找出字符串中第一个不重复的字符 6.promise 考察 /* 用 promise 实现以下功能。 具体: fn1和fn2都是异步函数,f1、fn2同时执行,并且fn1、fn2的结果是 fn3的参数。当fn1或者fn2发生错误时,fn3照常执行,此时的参数为空。 */ eg: fn1 =

关于裸辞,关于前端面试,你应该知道的

孤街醉人 提交于 2021-01-09 10:58:40
作者:xbl https://juejin.im/post/5cf3365ff265da1b9612ec78 先自我介绍一下,本人 3 年转行程序媛一枚,今年 4 月底裸辞。 5 月出去旅游一趟,回来找工作两周,面试 8 家,通过 4 家。 目前已经入职。 在这一个月的时间里,关于前端学习、裸辞、面试有些思考,希望和处于相同困境和疑惑的小伙伴们一起分享。 关于面试 先说说面试吧。 面试题就不分享了,掘金上有非常多优秀的面试题总结文章,文末我会将自己看过并且觉得有用的链接贴出来,刷面试题,让我们通过一面大概率是没有问题的。 由于我是转行做前端,而且之前的学习工作经历和IT一点关系都没有,深感自己的知识结构和基本功是非常欠缺的,例如数据结构、算法、设计模式、网络相关的技能需要在面试前好好准备下。面试的时候可以表达这些方面不太擅长,但是最好不要完全不懂不会不知道。 如何通过二面,甚至是三面,在我看来,就是反反复复审视自己的简历,上面所有提到的技术点、关键词,你是否了解如何使用,是否了解原理和相关知识点,是否有真实的项目经验支撑,这很重要。 所以,我们的简历既要有足够的亮点,能够通过招聘者的初步筛查,又不能在面试的时候把我们难倒。我遇到比较严格的一次面试,就是对着简历一行一行地问,有答的不会的或者不好的直接在简历的技术点上画✘,压力山大。 复习基础+看面试题+准备简历技术点/项目经验

了解一下Spring中用了哪些设计模式?这样回答面试官才稳

瘦欲@ 提交于 2021-01-09 10:47:14
一:简单工厂模式 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。如下配置,就是在 HelloItxxz 类中创建一个 itxxzBean。 二:工厂方法模式 通常由应用程序直接使用new创建新的对象,为了将对象的创建和使用相分离,采用工厂模式,即应用程序将对象的创建及初始化职责交给工厂对象。 一般情况下,应用程序有自己的工厂对象来创建bean.如果将应用程序自己的工厂对象交给Spring管理,那么Spring管理的就不是普通的bean,而是工厂Bean。 就以工厂方法中的静态方法为例讲解一下: 建一个config.xm配置文件,将其纳入Spring容器来管理,需要通过factory-method指定静态方法名称: 三:单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点。spring中的单例模式完成了后半句话,即提供了全局的访问点BeanFactory。但没有从构造器级别去控制单例,这是因为spring管理的是是任意的java对象。 核心提示点

面试官看完我手写的单例直接惊呆了!

隐身守侯 提交于 2021-01-09 10:41:07
单例模式应该算是 23 种设计模式中,最常见最容易考察的知识点了。经常会有面试官让手写单例模式,别到时候傻乎乎的说我不会。 之前,我有介绍过单例模式的几种常见写法。还不知道的,传送门看这里: 设计模式之单例模式 本篇文章将展开一些不太容易想到的问题。带着你思考一下,传统的单例模式有哪些问题,并给出解决方案。让面试官眼中一亮,心道,小伙子有点东西啊! 以下,以 DCL 单例模式为例。 DCL 单例模式 DCL 就是 D ouble C heck L ock 的缩写,即双重检查的同步锁。代码如下, public class Singleton { //注意,此变量需要用volatile修饰以防止指令重排序 private static volatile Singleton singleton = null ; private Singleton () { } public static Singleton getInstance () { //进入方法内,先判断实例是否为空,以确定是否需要进入同步代码块 if (singleton == null ){ synchronized (Singleton.class){ //进入同步代码块时再次判断实例是否为空 if (singleton == null ){ singleton = new Singleton(); } } }

年底面试不知所措?项目经理:做好这3点,轻松拿offer

烂漫一生 提交于 2021-01-09 05:49:05
后台回复“ 送书 ”,免费参与送书活动 年底了,很多公司都在裁员,许多朋友都在被迫找工作,年底应聘小浪潮来临,老李我最近也在负责我们公司的招聘,但是面试过程大部分前端面试者给我的感觉思维比较窄,以及陈述问题时候比较乱,整体给人感觉不是理想。 下面是我作为一个面试官从三个维度给面试者建议和思考吧。 一.自我介绍 1.自我介绍 ,可以简单介绍你毕业什么学校,什么专业 2.出来负责的项目 ,每个项目自己充当的角色 3.每个项目使用前端技术+后端技术 简单大概的说出来就可以了,不要详细到你哪年进入公司,哪年离开公司,负责项目做什么的,说一大通。这个对我们面试官来说,想让你自我简单介绍,其实考察点有两方面: A.面试者的表达能力和概括能力 B.面试者目前掌握什么技术,做过什么项目,在项目中的角色来初步判定这个人的能力 二.问题回答 在本人问他们做过项目中,自己感觉挑战最大的项目是什么,你在这个项目中做了什么,遇到什么问题,怎么解决这些问题的 1.有些面试者给我的答案直接说没有比较大的挑战;这个让我感觉这个人可能没有听懂我的问题,工作那么多年,难道没有一个项目可以拿来说的,那我拿什么来判定你的能力呢?难道凭你几句话,说我很牛逼的,没有什么困难难得到我?我就信任你了,伯乐寻找千里马都要知道几个千里马的特征吧。所以没有你也要在面试前准备好自己做过的项目和总结,在项目中自己做了什么,充当什么觉得。

做好这3点,面试轻松拿offer

旧城冷巷雨未停 提交于 2021-01-09 05:39:30
后台回复“ 面试题 ”,免费领取前端开发面试题 虽然金三银四已经过去了,但是前端开发工程师的招聘需求热度一直不减,我们前几天还要好几位朋友成功拿到过万的前端开发offer。 下面是我作为一个面试官从三个维度给面试者建议和思考吧。 一.自我介绍 1.自我介绍 ,可以简单介绍你毕业什么学校,什么专业 2.出来负责的项目 ,每个项目自己充当的角色 3.每个项目使用前端技术+后端技术 简单大概的说出来就可以了,不要详细到你哪年进入公司,哪年离开公司,负责项目做什么的,说一大通。这个对我们面试官来说,想让你自我简单介绍,其实考察点有两方面: A.面试者的表达能力和概括能力 B.面试者目前掌握什么技术,做过什么项目,在项目中的角色来初步判定这个人的能力 二.问题回答 在本人问他们做过项目中,自己感觉挑战最大的项目是什么,你在这个项目中做了什么,遇到什么问题,怎么解决这些问题的 1.有些面试者给我的答案直接说没有比较大的挑战;这个让我感觉这个人可能没有听懂我的问题,工作那么多年,难道没有一个项目可以拿来说的,那我拿什么来判定你的能力呢?难道凭你几句话,说我很牛逼的,没有什么困难难得到我?我就信任你了,伯乐寻找千里马都要知道几个千里马的特征吧。所以没有你也要在面试前准备好自己做过的项目和总结,在项目中自己做了什么,充当什么觉得。 2.有些面试者回答这个问题,在介绍项目的时候,很大概的说

Spring中用了哪些设计模式

…衆ロ難τιáo~ 提交于 2021-01-09 05:07:00
1 简单工厂模式 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。如下配置,就是在 HelloItxxz 类中创建一个 itxxzBean。 <beans> <bean id="singletonBean" class="com.itxxz.HelloItxxz"> <constructor-arg> <value>Hello! 这是singletonBean</value> </constructor-arg> </ bean> <bean id="itxxzBean" class="com.itxxz.HelloItxxz" singleton="false"> <constructor-arg> <value>Hello! 这是itxxzBean! </value> </constructor-arg> </bean> </beans> 2 工厂方法模式 通常由应用程序直接使用new创建新的对象,为了将对象的创建和使用相分离,采用工厂模式

Java面向对象之单例模式

吃可爱长大的小学妹 提交于 2021-01-09 01:25:09
设计模式: 反复使用、经过分类编目、代码设计经验、多数人知晓的总结。众多的软件开发人员在 软件开发过程中 面临的 一般问题的解决方案。 借鉴前辈的套路,稍加变化,就可以完成构建了。 桥接模式、适配器模式、状态模式、抽象工厂模式、备忘录模式、工厂方法模式、代理模式、责任链模式、观察者模式、模板方法模式、策略模式、建造者模式、解释器模式、组合模式、享元模式、中介者模式、外观模式、单例模式、命令模式、访问这模式、迭代子模式、原型模式、装饰器模式。 关注对象创建过程的设计模式:创建型模式。 设计模式是基于场景的解决方案。 如果某个新场景的解决方案被认可,那我们就可以定义一个新的设计模式。 关注类和对象组合的模式:结构型模式。 关注对象之间的通信过程:行为型模式。 2.在计算机系统中,无论这台机器连接了多少台打印机,后台处理程序只有唯一的程序在工作。这样才不会出现,混乱的交错的情况。包括各种驱动程序,线程池,缓存,日志,很多时候都只需要有且只有一个实例在工作。 单例模式 目的:使得类的一个对象成为该类系统中的唯一实例。 定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供。 要点:1.某个类只能有一个实例。2.必须自行创建实例 3.必须自行向整个系统提供这个实例。 实现: 1.只提供 私有 的构造方法。(限制了在类外实例化对象的渠道)。 2.含有一个该类的 静态 私有对象。 3

程序员到底要不要学习框架、库和工具

岁酱吖の 提交于 2021-01-08 20:23:08
老孟导读: 昨天看了一篇文章,文章名称叫做《STOP LEARNING FRAMEWORKS》(停止学习框架),文章发布时间时间是2018年,感叹为什么没有早一点看到这一篇文章,看过我《对Flutter初学者的一些建议》这篇文章的都知道,里面建议少使用第三方库,但仅仅是从生态发展的角度考虑的,这篇文章或者可以给你一些不一样的启发。 以下为译文: 作为开发人员,我们需要与时俱进,跟上技术的步伐,我们每天都在学习编程语言、框架和库,因为我们知道越现代的工具越好。 跟随Angular, React, Vue, Riot, Ember, Knockout 的脚步是一件多么有趣的事啊。(这应该是一句反话) 但这是在浪费时间 时间是我们拥有的最宝贵的资源。它是有限的,不可再生的,用钱也买不到它。 技术就像时尚一样,以光速变化。为了赶上它,我们需要跑的非常快。但 这场比赛没有赢家,因为它没有终点。 我的导师曾经这样教我: 导师:Ed(作者,下同),你在做什么? 我(骄傲地说):我正在读一本关于如何用 GWT 构建现代 Java 应用的书。 导师:读它做什么? 我:作为一个开发者,我应该紧跟潮流,GWT现在非常流行。 导师:在读GWT之前,你读过其他技术书籍吗? 我:我读了一本关于Apache Tapestry的书籍,这本书有500页,那时这本书也非常流行。 导师:那现在这本书还流行吗? 我:不

.net必问的面试题系列之面向对象

孤街浪徒 提交于 2021-01-08 18:54:39
上个月离职了,这几天整理了一些常见的面试题,整理成一个系列给大家分享一下,机会是给有准备的人,面试造火箭,工作拧螺丝,不慌,共勉。 1.net必问的面试题系列之基本概念和语法 2.net必问的面试题系列之面向对象 3.net必问的面试题系列之设计模式 4.net必问的面试题系列之集合、异常、泛型 5.net必问的面试题系列之简单算法 6.net必问的面试题系列之数据库 7.net必问的面试题系列之web前端 .net打杂工程师的面试感想和总结 ####问题目录 1.通常采用的访问修饰符有哪五种 2.多态的理解 3.什么是构造函数 4.重写和重载的区别 5.class和struct的异同 6.构造函数是否能被重写? 7.简述一下面向对象的三大特性 8.抽象类和接口有什么区别? 9.类的执行顺序 10.接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实现类(concrete class)? 11.继承最大的好处? 12.请说说引用和对象? 13.什么是匿名类,有什么好处 14.有哪些引用类型,有哪些值类型,有什么区别 15.C#中有没有静态构造函数,如果有是做什么用的? 16.怎样理解静态变量?静态成员和非静态成员的区别? 17.在项目中为什么使用接口?接口的好处是什么?什么是面向接口开发? 18.属性能在接口中声明吗? 19.什么时候用重载