<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[walkerwqp的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/walkerwqp</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; walkerwqp]]></copyright><item><title><![CDATA[如何判断一个产品该不该做]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/132192729</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/132192729</guid><author>walkerwqp</author><pubDate>Wed, 09 Aug 2023 17:17:55 +0800</pubDate><description><![CDATA[可以从行业报告、同类上市公司财报、行业市场经理等渠道获取数据，例如针对中小企业的考勤产品，需要关注中小企业的个数，每个中小企业对考勤的建设成本。例如产品开发期的研发资源数量、发布日期要求，例如需要申请到公司名义的微信公众号授权，例如需要产品推广时，渠道市场同事的协作等等。从某种程度上说，产品经理就是为新产品而生，如何让自己的产品能够保证更高概率的成功呢，我想核心是产品对多大范围的用户，有多大商业价值。市场需求：通过调研市场，了解目标群体的需求程度、竞争对手的产品等，判断市场是否需要这个产品。]]></description><category></category></item><item><title><![CDATA[C端产品和B端产品的区别]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/115798591</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/115798591</guid><author>walkerwqp</author><pubDate>Sat, 17 Apr 2021 17:28:12 +0800</pubDate><description><![CDATA[什么是B端产品？

 典型的B端产品有CRM、ERP、OA、中台等。

什么是C端产品？

 C端则是微信、抖音、京东淘宝等。





B端产品和C端产品的区别？

 

一、面向用户不同

B端客户是企业级用户，用户群是稳定的、统一的。

B端产品面向的客户是企业内员工，该类用户具备企业级的共同特征从而形成集体人格。B端产品的用户需求是企业级的，个性化需求通常被忽略，然而B端产品使用者通常可能有多种角色。

以数据中台为例，使用户可能包括业务人员、数据挖掘专家、运维人员、管理者等等，通常...]]></description><category></category></item><item><title><![CDATA[什么是三层交换机、网关、DNS、子网掩码、MAC地址]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/112392690</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/112392690</guid><author>walkerwqp</author><pubDate>Sat, 09 Jan 2021 15:46:49 +0800</pubDate><description><![CDATA[一、什么是vlan?
二、单臂路由与三层交换机
三、什么是网关
一、什么是网关
二、如何来理解网关
三、网关的ip地址
四、网关是如何实现通信？
五、什么是默认网关？
四、什么是DNS
五、MAC地址
六、子网掩码
很多朋友多次问到什么是网关、dns、子网掩码，三层交换机，它们定位的用途；确实，因为网络技术在弱电中确实应用非常广泛，我们平时在vip技术群中也是不断的讨论到网关、vlan、三层交换机或子网掩码等问题，今天我们就一起用通俗方式一次性了解清楚。
一、什么是vlan?
VLAN中文是“虚拟局域网”。]]></description><category></category></item><item><title><![CDATA[高并发场景下数据库的常见问题及解决方案]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/103660301</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/103660301</guid><author>walkerwqp</author><pubDate>Mon, 23 Dec 2019 09:41:05 +0800</pubDate><description><![CDATA[一、分库分表

（1）为什么要分库分表

随着系统访问量的增加，QPS越来越高，数据库磁盘容量不断增加，一般数据库服务器的QPS在800-1200的时候性能最佳，当超过2000的时候sql就会变得很慢并且很容易被请求打死，而单表数据量过大也会导致数据库执行sql很慢，为了应付这种场景产生了分库分表这种思想和技术。

分表就是把一个表的数据放到多个表中，然后查询的时候你就查一个表。可以按照某一个维度...]]></description><category></category></item><item><title><![CDATA[UIButton防止按钮和手势的暴力点击]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/98730359</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/98730359</guid><author>walkerwqp</author><pubDate>Wed, 07 Aug 2019 10:30:46 +0800</pubDate><description><![CDATA[首先理解下几个概念
1、IMP：它是指向一个方法具体实现的指针，每一个方法都有一个对应的IMP，当你发起一个消息之后，最终它会执行的那段代码，就是由IMP这个函数指针指向了这个方法实现的
2、SEL：方法名称的描述，只记录方法的编号不记录具体的方法，具体的方法是 IMP
3、Method：是一个类实例，里面的结构体有一个方法选标 SEL – 表示该方法的名称，一个types – 表示该方法参数的类...]]></description><category></category></item><item><title><![CDATA[Java Properties 类]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/94558668</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/94558668</guid><author>walkerwqp</author><pubDate>Wed, 03 Jul 2019 13:55:07 +0800</pubDate><description><![CDATA[Properties 继承于 Hashtable.表示一个持久的属性集.属性列表中每个键及其对应值都是一个字符串。

Properties 类被许多Java类使用。例如，在获取环境变量时它就作为System.getProperties()方法的返回值。

Properties 定义如下实例变量.这个变量持有一个Properties对象相关的默认属性列表。


Properties default...]]></description><category></category></item><item><title><![CDATA[Java Stack 类]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/94548237</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/94548237</guid><author>walkerwqp</author><pubDate>Wed, 03 Jul 2019 09:38:00 +0800</pubDate><description><![CDATA[import java.util.*;

public class StackDemo {
 
 static void showpush(Stack&lt;Integer&gt; st,int a) {
  st.push(new Integer(a));
  System.out.println("push(" + a + ")");
 Sy...]]></description><category></category></item><item><title><![CDATA[Java Vector 类]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/94547402</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/94547402</guid><author>walkerwqp</author><pubDate>Wed, 03 Jul 2019 09:27:33 +0800</pubDate><description><![CDATA[import java.util.*;

public class VectorDemo {
 
 public static void main(String[] args) {
  
  Vector v = new Vector(3, 2);
  System.out.println("Initial size: " + v.size());...]]></description><category></category></item><item><title><![CDATA[Java Bitset类]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/94546427</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/94546427</guid><author>walkerwqp</author><pubDate>Wed, 03 Jul 2019 09:14:52 +0800</pubDate><description><![CDATA[import java.util.BitSet;

public class BitSetDemo {
 
 public static void main(String[] args) {
  BitSet bits1 = new BitSet(16);
  BitSet bits2 = new BitSet(16);
  
  //...]]></description><category></category></item><item><title><![CDATA[Java Enumeration接口]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/94545840</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/94545840</guid><author>walkerwqp</author><pubDate>Wed, 03 Jul 2019 08:59:58 +0800</pubDate><description><![CDATA[import java.util.Vector;
import java.util.Enumeration;

/*
* Enumeration接口中定义了一些方法，通过这些方法可以枚举（一次获得一个）对象集合中的元素。
* 这种传统接口已被迭代器取代，虽然Enumeration 还未被遗弃，但在现代代码中已经被很少使用了。尽管如此，它还是使用在诸如Vector和Properties这些传统...]]></description><category></category></item><item><title><![CDATA[Java 抽象类]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/92615883</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/92615883</guid><author>walkerwqp</author><pubDate>Mon, 17 Jun 2019 14:01:28 +0800</pubDate><description><![CDATA[Employee.java

public abstract class Employee {
 
 private String name;
 private String address;
 private int number;
 
 public Employee(String name, String address, int number) ...]]></description><category></category></item><item><title><![CDATA[Java 多态]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/92575140</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/92575140</guid><author>walkerwqp</author><pubDate>Mon, 17 Jun 2019 10:24:05 +0800</pubDate><description><![CDATA[Test.java

/*
* 多态
* 多态是同一个行为具有多个不同表现形式或形态的能力
*/
/*
* 多态的优点
* 1. 消除类型之间的耦合关系
* 2. 可替换性
* 3. 可扩充性
* 4. 接口性
* 5. 灵活性
* 6. 简化性

多态存在的三个必要条件
 继承
 重写
 父类引用指向子类对象
*/
/*
* 当使用多态方式调用...]]></description><category></category></item><item><title><![CDATA[iOS-UIButton防止重复点击(三种办法)]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/92561515</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/92561515</guid><author>walkerwqp</author><pubDate>Mon, 17 Jun 2019 09:10:55 +0800</pubDate><description><![CDATA[目录


使用场景
	方法一 设置enabled或userInteractionEnabled属性
	方法二 借助cancelPreviousPerformRequestsWithTarget:selector:object实现
	方法三 通过runtime交换方法实现
	注意事项


一 使用场景

在实际应用场景中，有几个业务场景需要控制UIButton响应事件的时间间隔。

1 当点击按钮...]]></description><category></category></item><item><title><![CDATA[Java 重写(Override)与重载(Overload)]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/92560579</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/92560579</guid><author>walkerwqp</author><pubDate>Mon, 17 Jun 2019 09:05:25 +0800</pubDate><description><![CDATA[TestDog.java
/*
* 重写(Override)
* 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变，核心重写！
* 重写的好处在于子类可以根据需要，定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。
* 重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如： 父类的一个方法申明了一个检查异常 IOE...]]></description><category></category></item><item><title><![CDATA[OC指示符assign、atomic、nonatomic、copy、retain、strong、week的解释]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/92084658</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/92084658</guid><author>walkerwqp</author><pubDate>Sat, 15 Jun 2019 14:27:09 +0800</pubDate><description><![CDATA[在使用@property定义property时可以在@property与类型之间用括号添加一些额外的指示符，常用的指示符有assign、atomic、nonatomic、copy、retain、strong、week、等。详情如下：


assign： 简单赋值，不更改索引计数（Reference Counting）。

使用assign: 基础数据类型 （NSInteger，CGFloat）...]]></description><category></category></item><item><title><![CDATA[Java继承]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/92063713</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/92063713</guid><author>walkerwqp</author><pubDate>Sat, 15 Jun 2019 09:40:29 +0800</pubDate><description><![CDATA[Animal.java

public class Animal { //公共父类
 
 private String name; 
 private int id;
 public Animal(String myName, int myid) {
 name = myName;
 id = myid;
 }
 public v...]]></description><category></category></item><item><title><![CDATA[Java传输对象模式]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/91977407</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/91977407</guid><author>walkerwqp</author><pubDate>Fri, 14 Jun 2019 15:22:31 +0800</pubDate><description><![CDATA[传输对象模式（Transfer Object Pattern）用于从客户端向服务器一次性传递带有多个属性的数据。传输对象也被称为数值对象。传输对象是一个具有 getter/setter 方法的简单的 POJO 类，它是可序列化的，所以它可以通过网络传输。它没有任何的行为。服务器端的业务类通常从数据库读取数据，然后填充 POJO，并把它发送到客户端或按值传递它。对于客户端，传输对象是只读的。客户端...]]></description><category></category></item><item><title><![CDATA[Java服务定位器模式]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/91976355</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/91976355</guid><author>walkerwqp</author><pubDate>Fri, 14 Jun 2019 15:12:52 +0800</pubDate><description><![CDATA[服务定位器模式（Service Locator Pattern）用在我们想使用 JNDI 查询定位各种服务的时候。考虑到为某个服务查找 JNDI 的代价很高，服务定位器模式充分利用了缓存技术。在首次请求某个服务时，服务定位器在 JNDI 中查找服务，并缓存该服务对象。当再次请求相同的服务时，服务定位器会在它的缓存中查找，这样可以在很大程度上提高应用程序的性能。以下是这种设计模式的实体。

服务（...]]></description><category></category></item><item><title><![CDATA[Java拦截过滤器模式]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/91974967</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/91974967</guid><author>walkerwqp</author><pubDate>Fri, 14 Jun 2019 14:58:20 +0800</pubDate><description><![CDATA[拦截过滤器模式（Intercepting Filter Pattern）用于对应用程序的请求或响应做一些预处理/后处理。定义过滤器，并在把请求传给实际目标应用程序之前应用在请求上。过滤器可以做认证/授权/记录日志，或者跟踪请求，然后把请求传给相应的处理程序。以下是这种设计模式的实体。

过滤器（Filter） - 过滤器在请求处理程序执行请求之前或之后，执行某些任务。
	过滤器链（Filter ...]]></description><category></category></item><item><title><![CDATA[Java前端控制器模式]]></title><link>https://blog.youkuaiyun.com/walkerwqp/article/details/91972520</link><guid>https://blog.youkuaiyun.com/walkerwqp/article/details/91972520</guid><author>walkerwqp</author><pubDate>Fri, 14 Jun 2019 14:31:36 +0800</pubDate><description><![CDATA[前端控制器模式（Front Controller Pattern）是用来提供一个集中的请求处理机制，所有的请求都将由一个单一的处理程序处理。该处理程序可以做认证/授权/记录日志，或者跟踪请求，然后把请求传给相应的处理程序。以下是这种设计模式的实体。

前端控制器（Front Controller） - 处理应用程序所有类型请求的单个处理程序，应用程序可以是基于 web 的应用程序，也可以是基于桌...]]></description><category></category></item></channel></rss>