
面试
文章平均质量分 67
Summer-夏天
Android开发工程师
展开
-
Java设计模式——策略设计模式
上一次我们聊了简单工厂模式,让大家了解到了如何使程序具备更高的解耦性,使每一个功能代码都独立出来,今天我们和大家聊一下另一种解耦的设计模式,它就是策略设计模式。什么是策略设计模式:它定义了算法家族,分别封装起来,让他们之间可以项目替换,此模式让算法的变化,不会影响到算法的客户。我们可以这样理解,工厂模式是让我们内部的构造变得高内聚低耦合,而策略模式是让我们的内部代码和外部客户端代码不直接进行联系,...原创 2018-05-22 10:29:40 · 12085 阅读 · 1 评论 -
Java设计模式——单例设计模式
我们一般在学习的第一个设计模式都是单例设计模式,因为单例设计模式广泛的应用在我们程序开发中。今天就和大家简单的聊一聊单例设计模式,因为在我们刚开始学习Java基础时,就了解了单例,有的同学在学习时非常困惑,不明白什么是单例,不明白在什么场景下会用到单例设计模式。我们先说一下单例的概念:保证一个类仅有一个实例,并提供一个访问它的全局访问点。通过概念我们可以简单的知道,所谓的单例模式就是保证我们定义的...原创 2018-05-25 10:13:31 · 8051 阅读 · 1 评论 -
Java设计模式——单一职责模式
今天和大家聊一聊单一职责模式,大家从名字应该就能想到这个设计模式的核心思想就是降低耦合性,强调一个类/整体只做一件事。今天就不给大家代码举例子了,因为这个会很好理解,你只要写一个类,强调一个方法,方法只实现一种功能举行啦!单一职责模式:就一个类而言,应该仅有一个引起它变化的原因。有的同学会问,一个类如果只是有且仅有一个因素来引起他的变化,岂不是我们的程序的代码会非常臃肿?这个情况我们要视情况而定,...原创 2018-05-23 10:22:20 · 8014 阅读 · 1 评论 -
Java设计模式——工厂设计模式
我们都知道面向对象编程有三大特征:封装,集成和多态,那我们如何在实际开发中去灵活运用它呢,今天我给大家聊一聊简单工厂设计模式。简单工厂设计模式的一个核心思想就是高内聚,低耦合,使具体的业务逻辑实现功能和效果展示分离开来。先给大家举一个没有应用到工厂设计模式的例子:题目:要求设计一个计算器程序,输入两个数和一个运算符号,计算出结果。我们先写一个没有用到简单工厂设计模式的代码:public class...原创 2018-05-21 17:59:06 · 8613 阅读 · 0 评论 -
Java设计模式——装饰者模式
今天和大家聊一聊装饰者设计模式,这个模式会经常在我们的代码中出现,所以我们分为两部分去讲,第一部分和大家聊一聊什么是装饰者模式,以及我们应用的场景。装饰者模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰者模式比生成子类更为灵活。我们先给大家展示一下装饰者模式的结构图:Compontent是定义了一个对象接口,可以给这些对象动态的添加职责。ConcreteConponent是定义了一个...原创 2018-05-21 17:19:37 · 7880 阅读 · 0 评论 -
Java设计模式——依赖倒转原则
今天和大家聊一个我们平常开发中会经常用,但是自己也意识不到的一个设计模式,就是依赖倒转原则,是不是听起来挺高大上,因为我自己一开始接触这个设计模式时也被它的名字给唬住了,以为这个很晦涩难懂,不过研究过后,后发现这个设计模式在我们的实际开发中用到地方会非常多,也很频繁。其实设计模式和面向对象结合起来理解就非常容易了,它们的核心思想就是使我们的代码高内聚,低耦合,面向对象的好处大体可以说有4点:可维护...原创 2018-05-04 17:56:48 · 7639 阅读 · 0 评论 -
Java设计模式——开放设计模式
我们聊过的这些设计模式都会遵循一个原则,就是面向对象的原则,高内聚低耦合使我们开发的核心思想,降低代码之间的耦合度使我们程序员的终极追求,今天和大家聊的是开放封闭设计模式。开放封闭设计模式:软件实体(类、模块、函数等)应该可以扩展,但是不可修改。大家通过概念可以看出,开放封闭设计模式的核心思想还是低耦合,大家的脑海里应该会有一种方式可以很好的实现这种设计原则,就是抽象函数,我们去定义一个功能相近类...原创 2018-04-13 16:22:17 · 7040 阅读 · 0 评论 -
最全名企笔算法题
·给一个由数字组成的字符串。写一个函数求出其可能恢复为的所有IP地址。格式:第一行输入一个由数字组成的字符串 T,最后由这个字符串所能形成的所有的 IP 地址的数组。样例输入T = "25525511135"样例输出[ "255.255.11.135", "255.255.111.35"] ·给定 n 个不同的正整数,整数 k(k< = n)以及一个目标数字。在这 n 个数里面找出...原创 2018-04-12 17:58:19 · 7259 阅读 · 0 评论 -
最全名企笔试题+算法题
·给定一颗二叉树,要求输出二叉树的深度以及中序遍历二叉树得到的序列。本题假设二叉树的结点数不超过1000。Input输入数据分为多组,第一行是测试数据的组数n,下面的n行分别代表一棵二叉树。每棵二叉树的结点均为正整数,数据为0代表当前结点为空,数据为-1代表二叉树数据输入结束,-1不作处理。二叉树的构造按照层次顺序(即第1层1个整数,第2层2个,第3层4个,第4层8个…….,如果某个结点不存在以0...原创 2018-04-04 10:57:55 · 8497 阅读 · 0 评论 -
【Bing2016搜索测试题】最短摘要问题
在搜索引擎中,会针对每一网站生成一段摘要,并展示在相应query的搜索结果中。给你两个字符串S和T,请设计并实现一个高效的最短摘要生成算法,该算法能找出S中包含所有T中的字符的最短子字符串,即最短摘要,如: S="ADOBECODEBANC"T="ABC" 最短摘要结果为"BANC"#include <string>#include <iostream>#include...原创 2018-04-04 10:21:23 · 6222 阅读 · 0 评论 -
【Facebook招聘笔试】查找相同URL
设计算法: 给你a、b两个文件,各存放50亿条url,每条url各占用64字节,内存限制是4G,找出a、b文件共同的url 第一步:对a中的每条URL记录,经过hash(URL)%2048处理分别放入a_file0,a_file1,.....a_file2047文件中。 对b中的记录进行同样的处理,放入b_file0, b_file1,................., b...原创 2018-04-03 17:29:54 · 5931 阅读 · 0 评论 -
【腾讯笔试题】1000亿条记录中查询内容
题目:有 1000 亿条记录,每条记录由 url、ip、时间 组成,设计一个系统能够快速查询以下内容:1、给定url和时间段(精确到分钟)统计url的访问次数2、给定ip和时间段(精确到分钟)统计ip的访问次数请描述你的解决方案!解答:首先,1000亿条记录全部放到内存肯定不够,那就是分成小文件了,然后整合;公共的时间段,因为精确到分钟,我们把这每一分钟建成一个小文件,每个小文件肯定会有许多重复的...原创 2018-04-03 17:18:31 · 7019 阅读 · 0 评论 -
String,intern()有关的那点事儿
String,是Java中除了基本数据类型以外,最为重要的一个类型了。很多人会认为他比较简单。但是和String有关的面试题有很多,下面我随便找两道面试题,看看你能不能都答对:Q1:String s = new String("hollis");定义了几个对象。Q2:如何理解String的intern方法?上面这两个是面试题和String相关的比较常考的,很多人一般都知道答案。A1...原创 2018-07-23 10:14:37 · 5369 阅读 · 0 评论