YY产品经理面试题(部分)

时间:2022-11-30 05:33:36 作者:Sxx3 综合材料 收藏本文 下载本文

“Sxx3”通过精心收集,向本站投稿了9篇YY产品经理面试题(部分),下面就是小编整理后的YY产品经理面试题(部分),希望大家喜欢。

篇1:YY产品经理面试题(部分)

最近一位朋友去YY面试在线直播游戏领域的产品经理岗位。且不论他是否成功与否,但是通过与他交流面经,了解到YY的面试题,很多是开放性题目、并跟最新的互联网资讯结合起来,所以如果你没有经常留意互联网资讯,多思考别人的产品策略,还真很难答上来。

一、单个微信红包为什么定在200元?

个人尝试解答:首先微信红包必须要有限额,否则就真变成转账功能了,这是微信红包的产品定位以及国家政策方面所不允许的。而为什么定在200元,是因为国内的真实红包最大额度也就在200元左右,所以才设定了这个数值。

(此题明显针对过年的抢红包热潮而出的题目,如果你过年没有参与收发红包,绝对发现不了这个门槛)

延伸问题: 为什么微信群要限制100人?100以上默认不展示群里的用户名?推荐朋友进入100人以上大群,需要捆绑手机号?

二、Apple Watch为什么出了好几个版本

个人尝试解答:从以往苹果公司发布产品的风格来说,这次的Apple Watch发布了多个版本(共38款),不同定价(普通版~4188、运动版~2588、定制版~74800),并配备了多款表带。个人认为首先是传统行业上的手表本身作为一款可佩戴产品,本身就需要迎合不同用户的偏好(商务型、运动型、高端型)。其次苹果公司为了包揽更多的用户(比如iPhone5C),业务能辐射高端、中端、低端人群,而做的一次试水之作。

(时事题,朋友在面试这个岗位时Apple Watch才刚发布,如果有关注发布会,问题应该不难答)

延伸问题:一贯苹果的产品主打只有黑白两色,为什么这次弄了那么多颜色的表链?

三、详细说一下你对在线游戏直播的看法

个人尝试解答: 本人对这块不太熟悉,但知道现在直播类产品很火。而在我看来,直播类产品主要包括了两类:真人秀直播、游戏直播。而游戏直播这块甚至吸引了王思聪等富二代的投资参与。相对于普通的视频直播,在线直播增加了用户的选择性和互动性。全国玩游戏的用户群体大概有5亿人,用户基数大,而电竞自从成为中国第78个正式开展的体育项目,在90后心中,也是占据了很大的位置,所以在线游戏直播这块是个价值达50亿美元大市场,个人非常看好。

(专业知识题,考验你对应聘的岗位的专业性的理解)

四、让你来设计一款打败Apple Watch的产品你要怎么做

个人解答:首先,我不认为Apple Watch会为整个互联网市场带来多大的影响,因为手表这种那么小的屏幕,能够做的交互和操作都很有限,它注定只能依附于智能手机,作为手机的辅助性工具(比如消息提醒之类的)而存在。如果我只能选择要在同类型产品的基础上打败Apple Watch,我想我会考虑做一款 屏幕可折叠的手表,可以有机会跟手机互相独立,同时可操作性会大很多(成为新一代的计算中心)。

(吐槽题,需要你看出Apple Watch的弊端、可改良处,并考验你对产品的想象力)

延伸问题:你认为苹果公司下一个要开发的开创新的新产品会是什么?

总结下来,其实我们可以看到产品经理平时除了要做好公司内的工作外,还需要紧追行业热点,广度涉猎,才可以做得更好,走的更远。

篇2:互联网产品经理面试题

不同的互联网公司的产品经理面试题也大有不同,关于互联网产品经理面试题主要是对产品经理从整体来测一下所具备的的一些产品经理必备能力,有助于公司很快掌握面试者的能力水平,互联网产品经理面试题基本可以归纳有这么几类。

第一,产品经理整体能力

作为一个产品经理要求必须拥有这几种能力:创新力主要有用于产品设计中、执行力在产品研发中、沟通能力在产品运营与各部门协调时、自我管理能力明确以产品为中心、承受压力能力在团队与部门中主导作用。

第二,产品经理的知识结构

对于产品经理所要掌握哪些知识,主要是从不同的需求中提取主要需求在产品设计有一定积累,还有就是要懂一些技术方面的知识能力和语言技巧善于沟通的知识,总体来说就是不要求一定知道的有多深,但是一定要求懂。

第三,产品经理的管理方面

产品经理一定要有能管理团队能力,在产品初期的需求收集到产品上线会接触到很多个不同的团队,从而要产品经理对于不同的团队有不同的管理方法,这样才能有效的保证产品按时上线。

第四,事件处理与分析才能

在做一款产品中会遇到很多事先没有想到的问题出现,这时就是考察一个产品经理对于突发事件的响应与处理的过程,并且在市场分析与数据分析,需求分析中能从海量数据中获得有价值的需求从而实现产品的商业价值。

第五,软件工具

这个就是多数产品经理要掌握的软件工具有哪些了一般有这么几种工具是常用的:

Adobe photoshop CS :设计工具,

效果图设计 Dreamweaver :页面制作工具,生成网页

思维导图工具MindManager :是一款用于进行知识管理的可视化通用软件,适合于进行思维导图的创建和管理。

OFFICE常用办公软:EXCEL表格制作、picture manager 页面架构流程制作、PPT演示工具、visio流程工具、业务流程、系统实现流程、工作流程等、WORD用于文档方案策划编写等功能。

原型工具:Axure 产品交互原型制作工具,产品原型设计,生成虚拟网页,高保真效果图。

基本可以分为以上这五类产品经理面试题,当然不同的公司是不一定全面都包括这五类产品面试题的,不同的公司同样类型的产品经理面试题也不一定都相同,但基本不会脱离这五种类型。

篇3:微信产品经理面试题

丁香园CTO冯大辉曾发过三道产品经理的面试题,题目是关于微信的,如下:

其中第二题是一道偏技术的问题,出现在产品经理的面试中确实有点意外,但这题不失为一道很好的产品设计与系统分析的题目。系统分析也是我们“产品经理学技术”系列文章规划中的一个部分,也是将我们所讲的技术进行“升华”的一部分内容。

下面我们尝试回答一下这个问题,算是抛砖引玉了,大家有好的答案也可以给我们留言进行讨论。

朋友圈的基本数据结构设计是怎样的?既能做到完美阅读权限设置,又能兼顾性能?

关于消息的基础数据,比如文字、图片、时间、位置等这些咱就不表了。这些数据基本上与权限和性能没有多大关系,可以理解为单独存储,纯技术活。这里只讨论权限与性能相关的数据结构。

而在权限管理上,微信采用了给用户打“标签”来进行分组,这个标签的分组与微信通讯录一致。在数据上,就是给每个关系增加一个“标签”标记。

这里需要注意的是,虽然微信的关系在产品使用上给用户是双向的(即互相关注),但是在存储的时候,是给互相关的两个用户分别建立了关系数据,也就是每个人独有自己的一份“通讯录”。

这通过删除了自己的好友之后,自己并不从别人的通讯录删除就可以看得出来。标签分组的基础数据就是这样了,这也是后面朋友圈权限管理的基础。

对于个人朋友圈timeline所能看到的消息,按照一般的逻辑是先获取所有朋友的消息,然后剔除掉没有授权给自己看的消息、剔除掉自己屏蔽的用户消息,然后才得到自己当前看到的timeline。

如果是这样的逻辑的话,等于每次刷新朋友圈,都要跑到所有的消息池里面去找到上述通讯录中朋友们的消息,还要对找到的每条消息去判断用户是否有权限阅读。

这显然是效率低下的方式,更何况微信是这么大的一个访问量和数据量。所以,这种数据结构设计是行不通的了。

篇4:面试题:自我介绍部分

面试题:自我介绍部分

自我介绍

1、请你自我介绍一下?

1)这是面试的必考题目,2)介绍内容要与个人简历相一致。3)表述方式上尽量口语化。4)要切中要害,不谈无关、无用的内容。5)条理要清晰,层次要分明。6)事先最好以文字的形式写好背熟。

2、谈谈你的家庭情况?

1)况对于了解应聘者的性格、观念、心态等有一定的作用,这是招聘单位问该问题的主要原因。2)简单地罗列家庭人口。3)宜强调温馨和睦的家庭氛围。 4)宜强调父母对自己教育的重视。5)宜强调各位家庭成员的良好状况。6)宜强调家庭成员对自己工作的支持。7)宜强调自己对家庭的责任感。

3、请你简明地评价一下自己,你预备用哪些词形容?

大半人答出的都在3~4个词之间,同时缺少关于缺点的表述。一个较好的回答应该在8个词左右,这些词都应是词性比较强烈的,其中也应包括1~2个可以被称为缺点的中性词,例如完美主义,太过随和显得软弱等等。

4、你认为自己最大的弱点是什么?

1)不宜说自己没缺点,

2)不宜把那些明显的优点说成缺点。3)不宜说出严重影响所应聘工作的缺点。4)不宜说出令人不放心、不舒服的缺点。5)可以说出一些对于所应聘工作“无关紧要”的缺点,甚至是一些表面上看是缺点,从工作的角度看却是优点的缺点。

5、哪位人物对你影响最大?

从这个问题的回答中,可以看出你将来的职业生涯路径有可能朝哪个方向发展,对你影响大的人物的职业发展路径,通常都成为你追求的目标。很早就崇拜比尔-盖茨的人可能会有进入计算机领域大展拳脚的`目标,或者希望自己也能靠创业发家致富。

一旦你被问到这个问题,那么你应及时想好与之密不可分的另外两个问题:“为什么你认为他们对你影响最大?”“他们在哪些方面对你影响最大?”此外,类 似的连环问题也可能是:“你最喜欢哪本书?其中的什么观点最能吸引你?为什么?”对此你一定要思而后言,脱口而出之后又不能自圆其说会很尴尬,也显得浮 躁。

6、说说你迄今为止最感失败的经验及对你的影响。

这个问题并非很常见,但能有效反映一个人生命历程的深度和广度。如你只能答出类似高考因未能考到满意的大学而痛哭了好几天,那就容易判断你是一个经历单纯未历逆境的人。接踵而至可以判断出你思想的深度和悟性。

篇5:部分面试题答案

部分面试题答案

一、你对MVC的理解,MVC有什么优缺点?结合Struts,说明在一个Web应用如何去使用?

答:

MVC设计模式(应用观察者模式的框架模式)

M: Model(Business process layer),模型,操作数据的业务处理层,并独立于表现层(Independent of presentation)。

V: View(Presentation layer),视图,通过客户端数据类型显示数据,并回显模型层的执行结果。 C: Controller(Control layer),控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图

MVC框架的一种实现模型

模型二(Servlet-centric):

JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,Sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。

StrutsMVC框架(Web application frameworks)

Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。

Struts提供了一些组件使用MVC开发应用程序:

Model:Struts没有提供model类。这个商业逻辑必须由Web应用程序的开发者以JavaBean或EJB的形式提供

View:Struts提供了action form创建form bean, 用于在controller和view间传输数据。此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。

Controller:Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定义Action规范,还需要在struts-config.xml的特定配置文件中进行配置,接收JSP输入字段形成Action form,然后调用一个Action控制器。Action控制器中提供了model的逻辑接口。

二、什么是WebService?

答:

WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。

WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web服务定义语言)/SOAP(简单请求协议)规范的。

WebService=WSDL+SOAP+UDDI(webservice的注册)

Soap是由Soap的part和0个或多个附件组成,一般只有part,在part中有Envelope和Body。

Web Service是通过提供标准的协议和接口,可以让不同的程序集成的一种SOA架构。

Web Service的优点

(1) 可以让异构的程序相互访问(跨平台)

(2) 松耦合

(3) 基于标准协议(通用语言,允许其他程序访问)

Web Service的基本原理

(1) Service Provider采用WSDL描述服务

(2) Service Provider 采用UDDI将服务的描述文件发布到UDDI服务器(Register server)

(3) Service Requestor在UDDI服务器上查询并 获取WSDL文件

(4) Service requestor将请求绑定到SOAP,并访问相应的服务。

三、什么是中间件?

中间件就是程序中可织入的,可重用的,与业务逻辑无关的各种组件。

中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。

在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

分类:数据访问中间件,远程调用中间件,消息中间件,交易中间件,对象中间件。 举例:

1,RMI(Remote Method Invocations, 远程调用)

2,Load Balancing(负载均衡,将访问负荷分散到各个服务器中)

3,Transparent Fail-over(透明的故障切换)

4,Clustering(集群,用多个小的服务器代替大型机)

5,Back-end-Integration(后端集成,用现有的、新开发的系统如何去集成遗留的系统) 6,Transaction事务(全局/局部)全局事务(分布式事务)局部事务(在同一数据库联接内的事务)

7,Dynamic Redeployment(动态重新部署,在不停止原系统的情况下,部署新的系统) 8,System Management(系统管理)

9,Threading(多线程处理)

10,Message-oriented Middleware面向消息的中间件(异步的调用编程)

11,Component Life Cycle(组件的生命周期管理)

12,Resource pooling(资源池)

13,Security(安全)

14,Caching(缓存)

四、什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处? 答:(1) Presentation layer(表示层)

(1) 表示逻辑(生成界面代码)

(2) 接收请求

(3) 处理业务层抛出的异常

(4) 负责规则验证(数据格式,数据非空等)

(5) 流程控制

(2) Service layer(服务层/业务层)

(1) 封装业务逻辑处理,并且对外暴露接口

(2) 负责事务,安全等服务

(3) Persistence layer(持久层)

(1) 封装数据访问的逻辑,暴露接口

(2) 提供方便的数据访问的方案(查询语言,API,映射机制等)

Domain layer(域层)

(1) 业务对象以及业务关系的表示

(2) 处理简单的业务逻辑

(3) 域层的对象可以穿越表示层,业务层,持久层

软件分层结构使得代码维护非常方便,设计明确,各层独立,专注自己擅长的领域。

五、什么是OOP?OOP相对于面向过程编程有哪些优点?

OOP,Object-Oriented Programming,面向对象编程不同于面向过程编程:

(1)OOP关注对象和角色,也就是事物的本质

1)OOP把客观世界中的对象抽象成对应的类;

2)通过类构造实例;

3)通过依赖、继承、实现等形式建立对象间的通信关系

(2)OOP易于扩展,增加或改变业务的功能,无需大幅改动改变源代码

(3)OOP易于建模,OOP就是软件架构师在计算机高级语言中对客观世界的抽象和再现,人们可以很好地理解和建立起计算机中的抽象模型

六、谈谈Overload和Override的区别。

答:

方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

七、谈谈HashMap和Hashtable的区别。

答: HashMap是轻量级的(线程不安全的,效率高的)集合,Hashtable是重量级的(线程安全的,效率低的)集合。

都属于Map接口的类,实现了将惟一键映射到特定的值上。

HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。

Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。

八、请问abstract class和interface有什么区别?

答:

1) 接口没有任何的实现,而抽象类它可以有部分的实现也可以没有;

2) 如果需要复用或者共享部分代码,应该用抽象类而不是接口;

3) 继承无法解决类型的转换问题,接口就是为了解决这一问题而产生的(Java的单继

承是接口产生的根本原因) 接口是一种抽象的第三方规范,跟对象没什么直接关系。

九、请问软件开发中的设计模式你会使用哪些?

答:我熟悉的设计模式有单例模式,DAO模式,模板方法,工厂模式,委托代理模式,MVC模式等。

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 Singleton模式一般形式:

定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

十、类的核心特性有哪些?

类具有封装性、继承性和多态性。

封装性:

类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。

继承性:

类的继承性提供从已存在的类创建新类的机制,继承(inheritance)使一个新类自动拥有被继承类(父类)的全部成员。

多态性:

类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。

十一、请问类与对象有什么区别?

类就是某一种事物的一般性的集合体,是相同或相似的各个事物共同特性的一种抽象。 对象

在面向对象概念中,对象(Object)是类的实例(instance)。对象与类的关系就像变量与数据类型的关系一样。

十二、写出生产者消费者模型的实现

十三、用软件工程和Java来叙述购物车(shopping cart)系统实现

十四、文件系统的几个类:FileInputStream、FileOutputStream、FileReader、FileWriter的区别 十五、请写出Java API中最常用的五个包,并且各举两个类加以说明。

十六、请问你在做过的项目中遇到了哪些问题?你是怎么解决的?做这个项目你最大的收获是什么?

十七、请说出几个常用的异常类

答:NullpointException(空指针异常)

ClassNotFoundException(类找不到异常)

ClassCastException(类型转换异常)

IllegalArgumentException(非法参数异常)

ArithmeticException(算术异常)

NumberFormatException(数据格式异常)

IndexOutOfBoundsException(数组下标越界异常)

IllegalStateException(非法语句异常)

十八、什么是进程和线程?两者的区别是什么?

十九、请简要描述一下你做的ShoppingCart项目。

二十、请问网络7层协议,tcp/ip4 层协议是什么?

二十一、Java面向对象的四大特点

二十二、public,private,protected,default访问权限(可见性)

答:

public:全局可见

protected:继承体系结构之间可见

default(或不写):同包可见

private:本类可见。

二十三、名词解释

CRM

[Customer Relationship Management, 客户关系管理]

ERP

[Enterprise Resource Planning, 企业资源规划]

OSS

[Operation Support System, 运营支撑系统]

BSS

[Business Support System, 数据定义语言]

BOSS

[Business Operation Support System, 数据定义语言]

OA

[Office Automatization, 办公自动化]

HTTP

OOP

SOA

GUI

DDL

[Data Definition Language, 数据定义语言]

DML

[Data Manipulation Language, 数据操作语言]

WYSIWYG

所见即所得 [What You See is What You Get]

CMP

CMT

B2B

C2C

B2C

IDE

DOM

Client/Server

CMM

ORM

MIS

MVC

MVC是Model-View-Controller的简写。“Model” 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), “View” 是应用的表示面(由JSP页面产生),“Controller” 是

提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

OLE

CORBA

CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture),由对象管理组织 (Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。 其目的为:

用不同的程序设计语言书写

在不同的进程中运行

为不同的操作系统开发。

UML

UML,标准建模语言,包含用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图等。

XML

CMMI

JRE

J2EE

J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。

JDK

AOP

OO

Container

W3C

JMS

Domain

POJO

JVM

JNDI

JTA

SOAP

[Simple Object Access Protocol,简单对象访问协议]

WSDL

JDO

JDO是Java对象持久化的新的规范,为Java Data Object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。

TDD

DAO

IoC

[Inversion of Control, 控制反转]

RMI

DNS

[Internet Domain Name System, 因特网域名系统]

URL

URI

二十四、数据库连接池的工作机制

二十五、互联网提供哪些服务?

二十六、请写出JSP的几个隐含内置对象

答:JSP中隐含内置对象

名称 类型 注释和范围

request javax.servlet.http.HttpServletRequest request

response javax.servlet.http.HttpServletResponse response

page javax.lang.Object page

Exception java.lang.Throwable page

pageContext javax.servlet.jsp.PageContext page

session javax.servlet.http.HttpSession session

application javax.servlet.ServletContext ServletContext

out javax.servlet.jsp.JspWriter OutputStream

config javax.servlet.ServletConfig ServletConfig

JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):

request 用户端请求,此请求会包含来自GET/POST请求的参数

response 网页传回用户端的回应

page JSP 网页本身

exception 针对错误网页,未捕捉的例外

pageContext 网页的属性是在这里管理

session 与请求有关的会话期

application servlet 正在执行的内容

out 用来传送回应的输出

config Servlet的构架部件

二十七、请你谈谈SSH整合

答:SSH:

Struts(表示层)+Spring(业务层)+Hibernate(持久层)

Struts:

Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。

在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。(View:沿用JSP,HTTP,Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)

Hibernate:

Hibernate是一个持久层框架,它只负责与关系数据库的操作。

Spring:

Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。 二十八、应用服务器与Web Server的区别

二十九、Java Servlet API中forward 与redirect()的区别

答:

前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。

三十、写一个简单的C/S结构程序,Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?

答:Server端程序:

package test;

import java.net.*;

import java.io.*;

public class Server

{

private ServerSocket ss;

private Socket socket;

private BufferedReader in;

private PrintWriter out;

public Server()

{

try

{

ss=new ServerSocket(10000);

while(true)

{

socket = ss.accept();

String RemoteIP = socket.getInetAddress().getHostAddress();

String RemotePort = “:”+socket.getLocalPort();

System.out.println(“A client come in!IP:”+RemoteIP+RemotePort);

in = new BufferedReader(new

InputStreamReader(socket.getInputStream()));

String line = in.readLine();

System.out.println(“Cleint send is :” + line);

out = new PrintWriter(socket.getOutputStream(),true);

out.println(“Your Message Received!”);

out.close();

in.close();

socket.close();

}

}catch (IOException e)

{

out.println(“wrong”);

}

}

public static void main(String[] args)

{

new Server();

}

};

Client端程序:

package test;

import java.io.*;

import java.net.*;

public class Client

{

Socket socket;

BufferedReader in;

PrintWriter out;

public Client()

{

try

{

System.out.println(“Try to Connect to 127.0.0.1:10000”);

socket = new Socket(“127.0.0.1”,10000);

System.out.println(“The Server Connected!”);

System.out.println(“Please enter some Character:”);

BufferedReader line = new BufferedReader(new

InputStreamReader(System.in));

out = new PrintWriter(socket.getOutputStream(),true);

out.println(line.readLine());

in = new BufferedReader(new InputStreamReader(socket.getInputStream())); System.out.println(in.readLine());

out.close();

in.close();

socket.close();

}catch(IOException e)

{

out.println(“Wrong”);

}

}

public static void main(String[] args)

{

new Client();

}

};

九、请问软件开发中的设计模式你会使用哪些?

答:我熟悉的设计模式有单例模式,DAO模式,模板方法,工厂模式,委托代理模式,MVC模式等。

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。

Singleton模式一般形式:

定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

十、类的核心特性有哪些?

类具有封装性、继承性和多态性。

封装性:

类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。

继承性:

类的继承性提供从已存在的类创建新类的机制,

继承(inheritance)使一个新类自动拥有被继承类(父类)的全部成员。

多态性:

类的多态性提供类中方法执行的多样性,多态性

有两种表现形式:重载和覆盖。

十一、请问类与对象有什么区别?

类就是某一种事物的一般性的集合体,是相同或

相似的各个事物共同特性的一种抽象。

对象

在面向对象概念中,对象(Object)是类的实例

(instance)。对象与类的`关系就像变量与数据类型的关系一样。

十二、写出生产者消费者模型的实现

十三、用软件工程和Java来叙述购物车(shopping cart)系统实现

十四、文件系统的几个类:FileInputStream、

FileOutputStream、FileReader、FileWriter的区别

十五、请写出Java API中最常用的五个包,并且各举两个类加以说明。

十六、请问你在“电信运营支撑系统”中遇到了哪些问题?你是怎么解决的?做这个项目你最大的收获是什么?

十七、请说出几个常用的异常类

答:NullpointException(空指针异常)

ClassNotFoundException(类找不到异常) ClassCastException(类型转换异常)

IllegalArgumentException(非法参数异常) ArithmeticException(算术异常)

NumberFormatException(数据格式异常) IndexOutOfBoundsException(数组下标越界异常)

IllegalStateException(非法语句异常)

十八、什么是进程和线程?两者的区别是什么?

十九、请简要描述一下你做的ShoppingCart项目。 二十、请问网络7层协议,tcp/ip4 层协议是什么? 二十一、Java面向对象的四大特点

二十二、public,private,protected,default访问权限(可见性)

答:

public:全局可见

protected:继承体系结构之间可见

default(或不写):同包可见

private:本类可见。

二十三、名词解释

CRM

[Customer Relationship Management, 客户关系管

理]

ERP

[Enterprise Resource Planning, 企业资源规划]

OSS

[Operation Support System, 运营支撑系统]

BSS

[Business Support System, 数据定义语言]

BOSS

[Business Operation Support System, 数据定义语言] OA

[Office Automatization, 办公自动化]

HTTP

OOP

SOA

GUI

DDL

[Data Definition Language, 数据定义语言]

DML

[Data Manipulation Language, 数据操作语言]

WYSIWYG

所见即所得 [What You See is What You Get]

CMP

CMT

B2B

C2C

B2C

IDE

DOM

Client/Server

CMM

ORM

MIS

MVC

MVC是Model-View-Controller的简写。“Model” 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), “View” 是应用的表示面(由JSP页面产生),“Controller” 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程

和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

OLE

CORBA

CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture),由对象管理组织 (Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。 其目的为: 用不同的程序设计语言书写

在不同的进程中运行

为不同的操作系统开发。

UML

UML,标准建模语言,包含用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图等。

XML

CMMI

JRE

J2EE

J2EE是Sun公司提出的多层(multi-diered),分布式

(distributed),基于组件(component-base)的企业级应用

模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组

件,Business层和组件,企业信息系统(EIS)层。

JDK

AOP

OO

Container

W3C

JMS

Domain

POJO

JVM

JNDI

JTA

SOAP

[Simple Object Access Protocol,简单对象访问协议] WSDL

JDO

JDO是Java对象持久化的新的规范,为Java Data Object的简称,也是一个用于存取某种数据仓库中的部分面试题答案对

象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。

TDD

DAO

IoC

[Inversion of Control, 控制反转]

RMI

DNS

[Internet Domain Name System, 因特网域名系统]

URL

URI

二十四、数据库连接池的工作机制

二十五、互联网提供哪些服务?

二十六、请写出JSP的几个隐含内置对象

答:JSP中隐含内置对象

名称 类型 注释和范围

request javax.servlet.http.HttpServletRequest request

response javax.servlet.http.HttpServletResponse response

page javax.lang.Object page

Exception java.lang.Throwable page

pageContext javax.servlet.jsp.PageContext page

session javax.servlet.http.HttpSession session

application javax.servlet.ServletContext ServletContext

out javax.servlet.jsp.JspWriter OutputStream

config javax.servlet.ServletConfig ServletConfig

JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):

request 用户端请求,此请求会包含来自GET/POST请求的参数

response 网页传回用户端的回应

page JSP 网页本身

exception 针对错误网页,未捕捉的例外 pageContext 网页的属性是在这里管理

session 与请求有关的会话期

application servlet 正在执行的内容

out 用来传送回应的输出

config Servlet的构架部件

二十七、请你谈谈SSH整合

答:SSH:

Struts(表示层)+Spring(业务层)+Hibernate(持久层)

Struts:

Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。

在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。(View:沿用JSP,HTTP,

Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)

Hibernate:

Hibernate是一个持久层框架,它只负责与关系数据库的操作。

Spring:

Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。

二十八、应用服务器与Web Server的区别

二十九、Java Servlet API中forward() 与redirect()的区别

答:

前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。

三十、写一个简单的C/S结构程序,Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?

答:Server端程序:

package test;

import java.net.*;

import java.io.*;

public class Server

{

private ServerSocket ss;

private Socket socket;

private BufferedReader in;

private PrintWriter out;

public Server()

{

try

{

ss=new ServerSocket(10000);

while(true)

{

socket = ss.accept();

String RemoteIP =

socket.getInetAddress().getHostAddress();

String RemotePort = “:”+socket.getLocalPort(); System.out.println(“A client come

in!IP:”+RemoteIP+RemotePort);

in = new BufferedReader(new

InputStreamReader(socket.getInputStream())); String line = in.readLine();

System.out.println(“Cleint send is :” + line); out = new

PrintWriter(socket.getOutputStream(),true); out.println(“Your Message Received!”); out.close();

in.close();

socket.close();

}

}catch (IOException e)

{

out.println(“wrong”);

}

}

public static void main(String[] args) {

new Server();

}

};

Client端程序:

package test;

import java.io.*;

import java.net.*;

public class Client

{

Socket socket;

BufferedReader in;

PrintWriter out;

public Client()

{

try

{

System.out.println(“Try to Connect to 127.0.0.1:10000”);

socket = new Socket(“127.0.0.1”,10000);

System.out.println(“The Server Connected!”); System.out.println(“Please enter some Character:”);

BufferedReader line = new BufferedReader(new

InputStreamReader(System.in));

out = new

PrintWriter(socket.getOutputStream(),true); out.println(line.readLine());

in = new BufferedReader(new

InputStreamReader(socket.getInputStream())); System.out.println(in.readLine());

out.close();

in.close();

socket.close();

}catch(IOException e)

{

out.println(“Wrong”);

}

}

public static void main(String[] args) {

new Client();

}

};

篇6:微信产品经理的面试题

1.朋友圈为什么不调整到首屏,为什么路径这么深?

了解产品,首先要了解产品的战略意图和方向,要不然会走不少弯路的。

我们来看一下微信(产品)的定位。

#1.1. 微信是面向熟人的重通讯的社交应用。

说到通讯,大家都会想到,手机的短信和联系人在整个手机通讯中的作用。人们在长时间的移动通讯的场景下,意识上也潜移默化了传统手机通讯中的用户习惯。所以微信中,聊天(传统的短信)模块放在首页。通讯录(传统的联系人)放在次要的位置。也符合社交通讯的高效率和便捷性。这也印证了微信的底栏导航布局的原则。

微信、通讯录、发现、我

#1.2. 微信的战略方向,连接一切。

发现版块是连接其他渠道的实验室。“朋友圈”只是其中一条探索的渠道。不是唯一的渠道。

微信并不是纯粹的社交通讯应用。腾讯这么大体量的用户基数+,也为微信的拓展创造了得天独厚的优势。微信提出链接一切的战略方向也不会变。朋友圈只是链接用户的沟通的一种途径。这条道路也是对腾讯用户体量的继承和发展。朋友圈在形式上继承和延续了用户的习惯和沟通方式。在前期也许用户觉得比较重要,应该摆在举足轻重的位置。但是从整个战略上来讲,路径深也是微信战略布局的考量。在用户频繁用到的朋友圈功能页,不停的实验性的添加“附近的人”“购物”“游戏”“扫一扫”“摇一摇”来利用巨大的流量入口来带动“连接一起”的战略实验和探索。

2.第二题个人不加评论

3.如果你是微信的产品经理,你会最优先做哪一个功能的改进?简述理由。

朋友圈提出来一层:在保障战略方向和不影响架构的前提下,我会把朋友圈提出来。

从三个方面考量(1.操作频率2.操作步骤3.商业引流)

#3.1 .从操作频率上考虑。

朋友圈的动态和互动性,在发现页面的权重是很高的。这也是朋友圈在最顶端的原因,方便查找和操作。

#3.2.从操作步骤上减少操作步骤:

点击进入朋友圈需要点击进入“发现”页面,随后进入“朋友圈”。需要两步。提高一个层级,只需在“发现”页面直接查找“朋友圈”动态。

#3.3.从引流方面考量:

朋友圈提高一层并不会,减少用户引流。进入“发现”页面还是会先看到,其他项。在目标上,没有多大关系,就是在视觉上。不是很高大上。

其实,对这个面试题目。鄙人自我感觉:题目是对产品的思考维度上的考量。做产品,不单单是做产品,还有很多维度上的考虑。

了解战略层

划分范围层

分析结构层

实现框架层

体验表现层

这些也就是前人总结 的产品要素,但是随着社会意识形态的变化。产品人很难再循规蹈矩的利用这些规矩来规划产品。大方向是不会错的,中间的变化也是丰富多彩的,要不然也不会有很多意外火起来的产品。

对于用户来说,产品只要有这三样就足以:

1、好用(结构)

2、好看(表现)

3、好玩(体验)

理解好战略层才能更好的结合用户期待做出成功的商业产品

这也就是我对,这两道题目的思考。不足之处还敬请谅解。

有什么想法和建议欢迎跟我交流

篇7:Google产品经理笔试题&面试题

以下内容整理于网路,可能有些问题并不是来自Google,当时的话很值得思考。~

1、一辆校车能装下多少个高尔夫球?

2、如果让你清洗西雅图市所有的窗户,你会对此索价多少?

3、在一个重男轻女的国家里,每家每户都想生男孩。若一户人家生了一个女孩,便会再生一个,直到生下的是男孩为止。请问这个国家的男女比例是多少?

4、全世界共有多少位钢琴调音师?

5、下水道井盖为什么是圆的?

6、为旧金山市设计一个紧急疏散方案。

7、时钟的指针一天内总共会重合多少次?

8、你有8个大小一样的球,其中7个重量相同,只有一个略重一些。给你一个天平,而且只准称两次,如何找出重量不同的那个球?

9、向你8岁的侄子或外甥解释什么是数据库,只能用三个句子。

10、你缩小到只有一枚五分硬币那么高,你的质量也成比例缩小以保持原有密度不变。随后你被扔到一个空的玻璃搅拌器里,搅拌刀片将在60秒后开始运 转,你该怎么办?

11、假设在一段高速公路上,30分钟之内见到汽车经过的概率是95%。那么,在10分钟内见到汽车经过的概率是多少?

12、有四个人要在夜里穿过一条悬索桥回到宿营地。可是他们只有一支手电,电池只够再亮17分钟。过桥必须要有手电,否则太危险。桥最多只能承受两 个人同时通过的重量。这四个人的过桥速度都不一样:一个需要1分钟,一个需要2分钟,一个需要5分钟,还有一个需要10分钟。他们如何才能在17分钟之内 全部过桥?

13、如果你看到时钟上面的时间是3:15,那么其时针和分针之间的角度是多少?

14、将一根木条折成3段之后,可以形成一个三角形的概率有多大?

15、有两位盲人,他们都各自买了两对黑袜和两对白袜,八对袜了的布质、大小完全相同,而每对袜了都有一张商标纸连着。两位盲人不小心将八对袜了混 在一起。 他们每人怎样才能取回黑袜和白袜各两对呢?

16、有三个人去住旅馆,住三间房,每一间房$10元,于是他们一共付给老板$30,第二天,老板觉得三间房只需要$25元就够了于是叫小弟退 回$5给三位客人,谁知小弟贪心,只退回每人$1,自己偷偷拿了$2,这样一来便等于那三位客人每人各花了九元,于是三个人一共花了$27,再加上小弟独 吞了不$2,总共是$29。可是当初他们三个人一共付出$30那么还有$1呢?

17、有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以每小时20公里的速度从纽约开往洛杉矶。如果有一只鸟,以30公里每小时 的速度和两辆火车同时启动,从洛杉矶出发,碰到另一辆车后返回,依次在两辆火车来回飞行,直到两辆火车相遇,请问,这只小鸟飞行了多长距离?

18、一个经理有三个女儿,三个女儿的年龄加起来等于13,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属已知道经理的年龄,但仍不能确定经 理三个女儿的年龄,这时经理说只有一个女儿的头发是黑的,然后这个下属就知道了经理三个女儿的年龄。请问三个女儿的年龄分别是多少?为什么?

19、你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划 中,得到红球的准确几率是多少?

20、你有一桶果冻,其中有黄色,绿色,红色三种,闭上眼睛,抓取两个同种颜色的果冻。抓取多少个就可以确定你肯定有两个同一颜色的果冻?

21、对一批编号为1~100,全部开关朝上(开)的灯进行以下操作:凡是1的倍数反方向拨一次开关;2的倍数反方向又拨一次开关;3的倍数反方向 又拨一次开关……问:最后为关熄状态的灯的编号。

22、想象你在镜子前,请问,为什么镜子中的影像可以颠倒左右,却不能颠倒上下?

23、一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其它人帽子的颜色,却看不到自己的。主持人先让大 家看看别人头上戴的是什幺帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍 然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?

24、有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?

25、两个圆环,半径分别是1和2,小圆在大圆内部绕大圆圆周一周,问小圆自身转了几周?如果在大圆的外部,小圆自身转几周呢?

26、1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到几瓶汽水?

27、100白球100黑球,每次拿出两个,如白+白,则放一个黑球进去,黑+黑,也放个黑球进去,白+黑,放个白球进去,直到只剩下一个球为止, 问剩下黑球的概率。

28、10个人排队戴帽子,10个黄帽子,9个蓝帽子,戴好后后面的人可以看见前面所有人的帽子,然后从后面问起,问自己头上的帽子,结果一直问了 9个人都说不知道,而最前面的人却知道自己头上的帽子的颜色,问是什么颜色,为什么。

29、正方形边长为1,以各个顶点半径为1做弧,在正方形中间有一个公共区域,求面积。

30、1000!有几位数,为什么 3.11的三次方是1331,12的三次方是1728,请问哪个数的三次方是1442897?

31、在一次酒会上有人作了如下统计:参加酒会的人彼此都碰了杯子,此次酒会共碰杯子45 次,请问有多少人参加了酒会?

32、一个人的假期有13天下雨,12天上午晴天,11天下午晴天,任何一天上午下午不会同时下雨,请问这个人的假期有多少天?

33、一只蜗牛从井底爬到井口,每天白天蜗牛要睡觉,晚上才出来活动,一个晚上蜗牛可以向上爬3尺,但是白天睡觉的时候会往下滑2尺,井深10尺, 问蜗牛几天可以爬出来?

34、在一个平面上画1999条直线最多能将这一平面划分成多少个部分?

35、在太平洋的一个小岛上生活着土人,他们不愿意被外人打扰,一天,一个探险家到了岛上,被土人抓住,土人的祭司告诉他,你临死前还可以有一个机 会留下一句话,如果这句话是真的,你将被烧死,是假的,你将被五马分尸,可怜的探险家如何才能活下来?

36、怎样种四棵树使得任意两棵树的距离相等。

37、27个小运动员在参加完比赛后,口渴难耐,去小店买饮料,饮料店搞促销,凭三个空瓶可以再换一瓶,他们最少买多少瓶饮料才能保证一人一瓶?

38、有两根不均匀分布的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?

39、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如 何给你的工人付费?

40、5个囚犯,分别按1-5号在装有100颗绿豆的麻袋抓绿豆,规定每人至少抓一颗,而抓得最多和最少的人将被处死,而且,他们之间不能交流,但在抓的时候,可以摸出剩下的豆子数。问他们中谁的存活几率最大?

41、据说有人给酒肆的老板娘出了一个难题:此人明明知道店里只有两个舀酒的勺子,分别能舀7两和11两酒,却硬要老板娘卖给他2两酒。聪明的老板 娘毫不含糊,用这两个勺子在酒缸里舀酒,并倒来倒去,居然量出了2两酒,聪明的你能做到吗?

42、已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈, 问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没 有飞机场)

43、门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现在只允许进门一次,确定开关和灯的对应关系?

44、一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说 谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问?

45、在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?

篇8:腾讯微信产品经理面试题

其中第二题是一道偏技术的问题,出现在产品经理的面试中确实有点意外,但这题不失为一道很好的产品设计与系统分析的题目。系统分析也是我们“产品经理学技术”系列文章规划中的一个部分,也是将我们所讲的技术进行“升华”的一部分内容。

下面我们尝试回答一下这个问题,算是抛砖引玉了,大家有好的答案也可以给我们留言进行讨论。

朋友圈的基本数据结构设计是怎样的?既能做到完美阅读权限设置,又能兼顾性能?

关于消息的基础数据,比如文字、图片、时间、位置等这些咱就不表了。这些数据基本上与权限和性能没有多大关系,可以理解为单独存储,纯技术活。这里只讨论权限与性能相关的数据结构。

而在权限管理上,微信采用了给用户打“标签”来进行分组,这个标签的分组与微信通讯录一致。在数据上,就是给每个关系增加一个“标签”标记。这里需要注意的是,虽然微信的关系在产品使用上给用户是双向的(即互相关注),但是在存储的时候,是给互相关的两个用户分别建立了关系数据,也就是每个人独有自己的一份“通讯录”。这通过删除了自己的好友之后,自己并不从别人的通讯录删除就可以看得出来。标签分组的基础数据就是这样了,这也是后面朋友圈权限管理的基础。

对于个人朋友圈timeline所能看到的消息,按照一般的逻辑是先获取所有朋友的消息,然后剔除掉没有授权给自己看的消息、剔除掉自己屏蔽的用户消息,然后才得到自己当前看到的timeline。如果是这样的逻辑的话,等于每次刷新朋友圈,都要跑到所有的消息池里面去找到上述通讯录中朋友们的消息,还要对找到的每条消息去判断用户是否有权限阅读。这显然是效率低下的方式,更何况微信是这么大的一个访问量和数据量。所以,这种数据结构设计是行不通的了。

一般逻辑下朋友圈每次读取的过程

解决这种性能问题一般的思路就是把需要大计算量的过程分散到平时零散的时间去做。在这里的思路就是:平时就把每个用户需要的timeline数据按照权限设置准备好,等到用的时候(刷新朋友圈)就直接读取准备好的内容。那么答案就出来了:除了存储一份上面讲到的文字,图片等基本信息外,还需要给每个用户存储一份timeline数据,注意,是每个用户一份。当然,这里的“每份”不需要存储完整信息,只需要存储消息的ID和时间(可能需要)。每个人刷新自己的朋友圈时,读取自己的那份数据就行了,既不用去消息池子里面筛选,也不用判断用户权限。

那是怎么实现权限控制呢?

当一个用户发布一条消息时会按照上面讲的标签设置相关的权限,服务器就会给每个有权限接收这条消息的用户的timeline中写入这条消息。也就是在用户发布的这一刻,就做好了权限安排,而不是等到读取的时候。这样就自然减少了读取的时候的计算量,提高了效率。

发布时进行权限控制(示意图,实际比这复杂)

至于分库分表这些就不展开了,知道有这么回事就行。有时候这种技术上的设计也是会限制产品的设计。

那怎么证明上面说的合理呢?

感兴趣的同学可以去测试下:先发一条带阅读权限的消息,比如允许某个标签的人看。然后再给这个标签添加一个新人。结果是这个新人是看不到这条消息的,因为权限划分是在发布的时候就划分好了,新人加入标签的时间是在发布之后,所以没法获得这条消息的权限分配机会,虽然他后来在标签组中,但是仍然没有办法看到这条消息。

这就是上面问题的答案,其实主要考察的是在产品设计时是否能够考虑到技术方案的限制。我把上面的答案贴在知乎上,有人就问了:微信产品团队是在一开始设计就考虑到了这个问题,还是经过不断的迭代成现在这样的?这是个好问题,好的产品经理应该在设计的时候就考虑到这种情况,或者至少应该有相应的预案,而不至于在出现问题或者被研发发难时束手无策。在这个案例中,微信是一开始考虑到了还是迭代过来的并不重要,对于微信“朋友圈”来说,本来就是一个迭代产品,最早的权限管理是单独于通讯录的,那个时候是纯插件的模式,现在才与通讯录共用了分组模式进行权限管理。

如果对于上面的技术对产品设计的影响还不是很清晰的话,那么就再跟两个问题(好的产品经理除了能回答问题外,还要能提出问题^_^):

1、朋友圈的消息为啥不能编辑,只能删除?

我理解这是产品设计和技术实现平衡的结果。编辑功能对于主要以发布照片和即时消息的朋友圈来说,并不是刚性的需求。但是在上面的技术框架下,编辑功能在技术上,就不好实现。具体来说就是:前面我们讲了,权限的控制是在发布的时候确定了,如果增加编辑功能的话,意味着一旦用户在编辑的时候调整了阅读权限的话,就需要将之前写入到有权限的用户timeline的数据删除掉,重新写入一遍,这对于技术实现来说,也是一个很大的成本,需要更新的数据很多(该条消息所有涉及到的用户的timeline数据都要更新)。所以,平衡的结果是宁愿让用户删除了重新发布,也不提供编辑的功能。你可能又要问了,删除时就不用更新相关人的timeline吗?首先删除比写入简单多了,第二个是用户timeline的数据可能还真不用删除。具体原因就不解释了,想知道的给我们留言单独解释。

2、上述发布时的权限分配规则中会考虑屏蔽的人吗?也就是问,如果一个用户A屏蔽了某个人B的朋友圈,B发布的消息会进入A的timeline的准备数据中吗(不是指用户微信里看到的)?

先说一下我的答案:在发布时的权限控制是不会考虑屏蔽的人的。前面我们讲了,在消息发布的时候,服务器会根据用户设置的权限信息,将消息有选择的放到有权限阅读人的timeline中。如果这个时候需要考虑屏蔽的人的话,那就还要去读取每个有权限阅读的人的屏蔽人清单,然后根据每个人的清单去决定是不是放到这个人的timeline中,显然这又会增加多大的计算量。那么有人就要问了,那怎么实现屏蔽的功能呢?两种方法实现,一种是在这个用户刷新朋友圈时,将读取到的自己的那份timeline数据(含屏蔽人的消息),在服务器端过滤掉屏蔽人的消息;另外一种则是读取的时候,服务器端按照原样下发给客户端,客户端根据存储的屏蔽清单来过滤,被屏蔽的则不显示给用户。两种方法在实现效率上几乎没有差别,通过对于微信的使用体验来看,我倾向于这个是由客户端来过滤的。实际这也可以有方法去验证,这里就不做了。这种屏蔽方案也是基于上面提到的“把需要大计算量的过程分散到平时零散的时间去做”。

那么怎么验证上述关于屏蔽的逻辑是对的呢?上面我们在验证“发布时进行权限分配”中讲到了,后添加标签分组的人,是看不到之前发布的分组权限消息的。这里我们也可以通过类似的方法验证:把用户屏蔽后,该用户的消息全部看不到,但是取消屏蔽之后,又立即能在朋友圈中看到,包括之前发布的消息但没有看过的消息。

最后要说的是,作为一个微信设计的旁观者,以上答案是作为一个用户从系统分析的角度去考虑的,并不代表微信确实是这样的一个设计思路,但答案中的方案已经尽可能做到了可以验证。答案中也没有涉及到具体的技术,仅仅是一个系统分析的思路。

很高兴看到越来越多的产品经理招聘开始注重技术能力了。前段时间各大互联网公司的产品经理校招也出现了不少“技术”相关的试题,说明业内开始意识到技术能力对于产品设计的辅助作用。还是那句话,技术并不是产品设计必须的,但是能有的话效率会提升很多。

篇9:产品助理面试题

下面是我应聘“产品助理”的时候我经理给我的面试题。

1、说出你的手机里最常用的3~5款app挑选一款讲讲你对它的认识,包括他的用途,解决了那些需求、使用环境,优缺点,等等。

2、说出你平时经常上的3~5个网站,挑选一个讲讲你对它的认识,包括他的介绍。解决了哪些需求、使用环境、优缺点,等等。

3、讲讲你对互联网站、产品开发的流程认识和了解。

4、根据你的认识和了解,讲讲产品设计这一岗位的工作职责。

5、讲讲你以前参与研发、设计的一款产品,包括他的诞生、流程、解决了那些需求、使用环境、优缺点等等。

6、发一个以前设计的原型图。并作简单介绍。

[产品助理面试题]

微信产品经理面试题

产品经理职责

产品经理工作计划

产品经理年度总结

产品经理总结

产品经理如何自我介绍

产品经理岗位职责

产品经理工作总结

产品经理岗位说明书模版

产品经理季度总结

YY产品经理面试题(部分)(精选9篇)

欢迎下载DOC格式的YY产品经理面试题(部分),但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档