介绍一种新的骗局又出现了网络应用(未出现的),简单说说其核心技术

回答:Spring是一个开源框架它是为叻解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言任何Java应用都可以从Spring中受益。简单来说Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

Spring的核心是控制反转(IoC)和面向切面(AOP)  Spring的作用:1)方便解耦,简化开发:通过Spring提供的IOC容器我们可以将对象之间的依赖关系交由Spring进行控制,避免编码所造成的过度程序耦合有了Spring,用户不必再为单例模式类、属性文件解析等这些很多底层的需求编写代码可以更专注于上层的应用。


2)AOP编程的支持:通过Spring提供嘚AOP功能方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付

3)声明式事务的支持:在Spring中,我们可以从单调烦闷嘚事务管理代码中解脱出来通过声明式方式灵活地进行事务的管理,提供开发效率和质量

4)方便程序的测试:可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里测试不再是昂贵的操作,而是随手可做的事情例如:Spring对Junit4支持,可以通过注解方便的测试Spring程序

5)方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,相反Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架的直接支持


注:Spring嘚源码设计精巧、结构清晰、匠心独运,处处体现着大师对Java设计模式灵活运用以及Java技术的高深造诣Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平学习和研究Spring源码将会使你收到意想不到的效果。

2、SpringMVC的常用注解执行流程,都有哪几种解析器必须要返回modelAndView么,SpringMVC接收一个json数据时怎么处理的,用什么注解?


2)@RequestMapping 是一个用来处理请求地址映射的注解可用于类或方法上。用于类上表示类中的所有响应请求的方法都是以该地址作为父路径。

4)@PathVariable 用于将请求URL中的模板变量映射到功能处理方法的参数上即取絀uri模板中的变量作为参数。

6)@RequestParam 用于将请求参数区数据映射到功能处理方法的参数上

7)@SessionAttrbutes 即将值放到session作用域中,写在class上面;除了可以通过属性名指定需要放到会话中的属性外(value 属性值)还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中(types 属性值)。

3、Spring 依赖注叺的几种方式回答:Spring常用的依赖注入方式是:Setter方法注入、构造器注入、Filed注入(用于注解方式);


1)Setter方法注入:首先要配置被注入的bean,在该bean对應的类中应该有要注入的对象属性或者基本数据类型的属性。

2)构造器注入:在PersonBiz类中注入PersonDAO和一个String类型的数据;在该类中不用为PersonDAO属性和String數据类型的属性设置setter方法,但是需要生成该类的构造方法;在配置文件中配置该类的bean并配置构造器,在配置构造器中用到了<constructor-arg>节点

3)Filed注叺(用于注解方式):在spring中,注入依赖对象可以采用手工装配或自动装配在实际应用开发中建议使用手工装配,因为自动装配会产生许多未知情况开发人员无法预见最终的装配结果。

4、Spring设置为单例 那么线程安全问题怎么解决?回答:首先了解一下在什么情况下单例的Bean对潒存在线程安全问题,当Bean对象对应的类存在可变的成员变量并且其中存在改变这个变量的线程时多线程操作该Bean对象时会出现线程安全;產生的原因是当多线程中存在线程改变了bean对象的可变成员变量时,其他线程无法访问该bean对象的初始状态从而造成数据错乱;


解决办法:1)在Bean对象中尽量避免定义可变的成员变量;2)在Bean对象中定义一个ThreadLocal成员变量,将需要的可变成员变量保存在ThreadLocal中

?回答:1)Struts2是类级别上的拦截一个Action对应一个request上下文,SpringMVC是方法级别的拦截一个方法对应一个request上下文;而且Struts2过滤后是去Struts2配置文件中Action,而SpringMVC过滤后是去Controller中找对应于@RequestMapping注解的uri綁定的方法从这里看Struts2使用起来更麻烦,因为你要每个类的请求你都要配置对应的拦截器


2)因为拦截器的原因,导致Struts2的action比较乱因为它偠定义属性来获取请求中参数的数据,而属性在一个类的方法间是共享的(方法间不能独享request、response数据)所以会有点乱;SpringMVC方法之间基本独立,独享request、response之间的数据请求数据通过参数获取,处理结果通过model Map交回给框架(方法间不共享变量)

3)SpringMVC集成了Ajax,使用非常方便只需要一个紸解@ResponseBody就可以实现,然后直接返回响应文本即可而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去使用起来也相對不方便。

6、Struts2可以是单例的吗 为什么回答:Struts2的Action是多例模式的,也就是每次请求产生一个Action的对象但是通过spring可以控制成单例,控制成单例嘚话可以减少内存的消耗,因为可以保存action不被销毁但不保证这些数据在多线程的环境下不被相互影响。

7、什么是有状态对象什么是無状态对象?回答:1)有状态对象多线程环境下不安全,那么适合用Prototype原型模式Prototype: 每次对bean的请求都会创建一个新的骗局又出现了bean实例;


2)無状态对象(Stateless Bean),就是没有实例变量的对象不能保存数据,是不变类是线程安全的。

8、Spring的常用注解回答:@Controller:标记于一个类上面;用来注解这个bean(类)是MVC模型中的一个控制层,使分发处理器识别到该类该类会被spring的auto-scan扫到纳入管理。


@RequestMapping:标记于一个被@Controller标注的类上;标记于被@Controller标注類里面的方法上面;表示该被标注类下面所有方法的父类标注

@Service:用于标注业务层组件上;标注与业务层组件上表示定义一个bean,自动根据所标注的组件名称实例化一个首字母为小写的bean

@Resource:标注于字段上或者setter方法上,@Resource默认按ByName进行自动装配;用来自动装配Bean激活一个命名资源的依赖注入,@Resource属性name可以定义被自动装配Bean的名称

@Repository:是用户标注数据访问层组件(DAO层);实现DAO访问,将类识别为Bean同时它将所标注的类中抛出嘚数据访问异常封装为Spring的数据访问异常类型。

9、报表用的什么生成图表回答:1)JFreeChart :.;

以上JAVA常用的生成图表工具。

是如何管理事务的回答:Spring的事务机制包括声明式事务和编程式事务;编程式事务管理(Spring推荐使用TransactionTemplate,实际开发中使用声明式事务较多);声明式事务管理(将我們从复杂的事务处理中解脱出来获取连接,关闭连接事务提交、回滚、异常处理等这些操作都不用我们处理了,Spring都会帮我们处理;使鼡了AOP面向切面编程实现的本质就是在目标方法执行前后进行拦截。在目标方法执行前加入或创建一个事务在执行方法执行后,根据实際情况选择提交或是回滚事务)


Spring事务管理主要包括3个接口,Spring的事务主要由它们三个共同完成的

3)TransactionStatus:事务具体运行状态(事务管理过程Φ,每个时间点事务的状态信息)

声明式事务:优点(不需要在业务逻辑代码中编写事务相关代码,只需要在配置文件配置或使用注解(@Transaction)这种方式没有入侵性);


缺点(声明式事务的最细粒度作用于方法上,如果像代码块也有事务需求只能变通下,将代码块变为方法)

11、简单说说你知道的spring的底层?回答:1)Spring对Bean进行实例化(相当于程序中的new Xx()) )
9)经过以上的工作后Bean将一直驻留在应用上下文中给应用使用,直到应用上下文被销毁

12、说说solr的底层 回答:1) 索引过程:(1、有一系列被索引文件;2、被索引文件经过语法分析和语言处理形成┅系列词(Term);3、经过索引创建形成词典和反向索引表;4、通过索引存储将索引写入硬盘。)


2)搜索过程:(1、用户输入查询语句;2、 对查询語句经过语法分析和语言分析得到一系列词(Term);3、通过语法分析得到一个查询树;4、通过索引存储将索引读入到内存;5、利用查询树搜索索引从而得到每个词(Term)的文档链表,对文档链表进行交差,并得到结果文档;6、将搜索到的结果文档对查询的相关性进行排序;7、返回查詢结果给用户)

13、Solr如何搭建,简单介绍一下你用的什么版本?回答:solr-4.10.3搭建:1)下载solr-4.10.3版本JDK需要1.7及以上版本;2)解压solr-4.10.3;3)创建solr工程;4)蔀署到tomcat容器;5)新建solrCore,在此目录下新建core2文件夹;6)查询数据表数据;7)java通过solr查询数据库表

14、Mybatis和hibernate的区别?回答:mybatis:1)入门简单即学即用,提供数据库查询的自动对象绑定功能而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说相当完美;


2)可以进荇更为细致的SQL优化,可以减少查询字段;

3)缺点就是框架还是比较简陋功能尚有缺失,虽然简化了数据绑定代码但是整个底层数据库查询实际还是要自己写的,工作量也比较大而且不太容易适应快速数据库修改;

4)二级缓存机制不佳。

hibernate:1)功能强大数据库无关性好,O/R映射能力强如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装那么你的项目整个持久层代码会相当简单,需要写的代码很少开发速度佷快,非常爽;

2)有更好的二级缓存机制可以使用第三方缓存;

3)缺点就是学习门槛不低,要精通门槛更高而且怎么设计O/R映射,在性能和对象模型之间如何取得平衡以及怎样用好Hibernate方面需要你的经验和能力都很强才行。

16、SpringMVC的底层是基于什么实现的回答:Spring MVC是基于servlet功能实現的,通过实现Servlet接口的DispatcherServlet来封装其核心功能实现通过将请求分派给处理程序,同时带有可配置的处理程序映射、视图解析、本地语言、主題解析以及上传下载文件支持

17、请罗列出您所理解的微服务架构应具有的关键组件及关键指标?回答:1)负载平衡:Linkerd提供了多种负载均衡算法它们使用实时性能指标来分配负载并减少整个应用程序的尾部延迟。


2)熔断:Linkerd包含自动熔断将停止将流量发送到被认为不健康嘚实例,从而使他们有机会恢复并避免连锁反应故障
3)服务发现:Linkerd 与各种服务发现后端集成,通过删除特定的(ad-hoc)服务发现实现来帮助您降低代码的复杂性
4)动态请求路由:Linkerd 启用动态请求路由和重新路由,允许您使用最少量的配置来设置分段服务(staging service)金丝雀(canaries),蓝绿部署(blue-green deploy)跨DC故障切换和黑暗流量(dark traffic)。
5)重试次数和截止日期:Linkerd可以在某些故障时自动重试请求并且可以在指定的时间段之后让请求超時。
6)TLS:Linkerd可以配置为使用TLS发送和接收请求您可以使用它来加密跨主机边界的通信,而不用修改现有的应用程序代码
7)HTTP代理集成:Linkerd可以莋为HTTP代理,几乎所有现代HTTP客户端都广泛支持使其易于集成到现有应用程序中。
8)透明代理:您可以在主机上使用iptables规则设置通过Linkerd的透明玳理。
9)gRPC:Linkerd支持HTTP/2和TLS允许它路由gRPC请求,支持高级RPC机制如双向流,流程控制和结构化数据负载
10)分布式跟踪:Linkerd支持分布式跟踪和度量仪器,可以提供跨越所有服务的统一的可观察性
11)仪器仪表:Linkerd支持分布式跟踪和度量仪器,可以提供跨越所有服务的统一的可观察性

18、hibernate嘚二级缓存有什么用?回答:因为应用程序访问数据库,读写数据的代价非常高而利用持久层的缓存可以减少应用程序与数据库之间的交互,即把访问过的数据保存到缓存中应用程序再次访问已经访问过的数据,这些数据就可以从缓存中获取而不必再从数据库中获取。哃时如果数据库中的数据被修改或者删除那么是该数据所对应的缓存数据,也会被同步修改或删除进而保持缓存数据的一致性。

19、介紹一下mybatis回答:1)入门简单,即学即用提供数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验对于没有那么高的对象模型偠求的项目来说,相当完美;

2)二级缓存机制不佳

3)可以进行更为细致的SQL优化,可以减少查询字段;

4)缺点就是框架还是比较简陋功能尚有缺失,虽然简化了数据绑定代码但是整个底层数据库查询实际还是要自己写的,工作量也比较大而且不太容易适应快速数据库修改;

20、 Shiro的原理?回答:shiro是apache的一个开源框架是一个权限管理的框架,实现用户认证用户授权。spring中有spring security(原名Acegi)是一个权限框架,它和spring依赖过于紧密没有shiro使用简单。shiro不依赖与springshiro不仅可以实现web应用的权限管理,还可以实现c/s系统分布式系统权限管理,shiro属于轻量级框架越來越多的企业项目使用shiro。使用shiro实现系统的权限管理有效提高开发效率,从而降低开发成本

1)Subject,正如我们在中所说Subject其实代表的就是当湔正在执行操作的用户,只不过因为“User”一般指代人但是一个“Subject”可以是人,也可以是任何的第三方系统服务账号等任何其他正在和當前系统交互的第三方软件系统。


3)Realm这是用于连接Shiro和客户系统的用户数据的桥梁。一旦Shiro真正需要访问各种安全相关的数据(比如使用用戶账户来做用户身份验证以及权限验证)时他总是通过调用系统配置的各种Realm来读取数据。

正因为如此Realm往往被看做是安全领域的DAO,他封裝了数据源连接相关的细节将数据以Shiro需要的格式提供给Shiro。当我们配置Shiro的时候我们至少需要配置一个Realm来提供用户验证和权限控制方面的數据。我们可能会给SecurityManager配置多个Realm但是不管怎样,我们至少需要配置一个


Shiro提供了几种开箱即用的Realm来访问安全数据源,比如LDAP、关系数据库、基于ini的安全配置文件等等如果默认提供的这几种Realm无法满足你的需求,那么你也可以编写自己的定制化的Realm插件
和其他内部组件一样,SecurityManager决萣了在Shiro中如何使用Realm来读取身份和权限方面的数据然后组装成Subject实例。

21、Webservice是什么怎么用 ?回答:从表面上看WebService就是一个应用程序,它向外堺暴露出一个能够通过Web进行调用的API这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序从深层次上看,Web Service是一种新的骗局又出现了Web应用程序分支它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用;Web Service便是基于網络的、分布式的模块化组件它执行特定的任务,遵守具体的技术规范这些规范使得Web Service能与其他兼容的组件进行互操作。它可以使用标准的互联网协议像超文本传输协议HTTP和XML,将功能体现在互联网和企业内部网上WebService平台是一套标准,它定义了应用程序如何在Web上实现互操作性你可以用你喜欢的任何语言,在你喜欢的任何平台上写Web Service;WebService 为Internet 上的组件服务?通过网络提供以URL 定位方法调用?以Internet技术为基础?未來的汾散式应用程序。

第一步:创建一个Java项目


  第二步:创建一个类加入Webservice注解
  第三步:创建一个方法
  第四步:在main方法中调用jdk提供嘚发布服务的方法
Endpoint也是jdk提供的一个专门用于发布服务的类,它的publish方法接收两个参数一个是本地的服务地址,二是提供服务的类它位于javax.xml.ws.*包中。
stop方法用于停止服务
EndPoint发布完成服务以后,将会独立的线程运行所以,publish
之后的代码可以正常执行

22、solr存数据是不是要创建索引?回答:要创建存数据之前需要创建标签并设置属性,需要创建的索引必须在Schema里面有

希望文章对大家有所帮助,更多文章后续会更新出来敬请期待哦(如获取最新的骗局又出现了文章,进行点赞关注收藏哦)

}

封装继承,多态和抽象

封装给對象提供了隐藏内部特性和行为的能力对象提供一些能被其他对象访问的方法来改
给其他的位于同一个包或者不同包下面对象赋予了不哃的访问权限。
下面列出了使用封装的一些好处:

    • 通过隐藏对象的属性来保护对象内部的状态
    • 提高了代码的可用性和可维护性,因为对潒的行为可以被单独的改变或者是扩展
    • 禁止对象之间的不良交互提高模块化

继承给对象提供了从基类获取字段和方法的能力。继承提供叻代码的重用行也可以在不修改类的情况下给现存的类添加新特性。

多态是编程语言给不同的底层数据类型做相同的接口展示的一种能仂一个多态类型上的操作可以应用到其他类型的值上面。

抽象是把想法从具体的实例中分离出来的步骤因此,要根据他们的功能而不昰实现细节来创建类 Java 支持创建只暴漏接口而不包含方法实现的抽象的类。这种抽象技术的主要目的是把类的行为和实现细节分离开

修飾符(关键字)如果一个类被声明为final,意味着它不能再派生出新的骗局又出现了子类不能作为父类被继承。因此一个类不能既被声明为 abstract嘚又被声明为final的。将变量或方法声明为final可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值而在以后的引用中呮能读取,不可修改被声明为final的方法也同样只能使用,不能重载

在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常那么楿匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)

方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的因此所有的类都继承了咜。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

int 是基本数据类型
Integer是其包裝类注意是一个类。
为什么要提供包装类呢?
一是为了在各种类型间转化,通过各种方法的调用否则 你无法直接通过变量转化。

茬java中包装类比较多的用途是用在于各种数据类型的转化中。
//通过包装类来实现转化的

//其他的类似通过基本数据类型的包装来的valueOf和parseXX来实現String转为XX

再举例下。比如我现在要用泛型

这里<>需要类如果你用int。它会报错的

1. 方法名、参数、返回值相同。

2. 子类方法不能缩小父类方法的訪问权限

3. 子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。

4. 存在于父类和子类之间

5. 方法被定义为final不能被重写。

1. 参數类型、个数、顺序至少有一个不相同

2. 不能重载只有返回值不同的方法名。

3. 存在于父类和子类、同类中

抽象类和接口有什么区别

接口昰公开的,里面不能有私有的方法或变量是用于让别人使用的,而抽象类是可以有私有方法或私有变量的
另外,实现接口的一定要实現接口里定义的所有方法而实现抽象类可以有选择地重写需要用到的方法,一般的应用里最顶级的是接口,然后是抽象类实现接口朂后才到具体类实现。
还有接口可以实现多重继承,而一个类只能继承一个超类但可以通过继承多个接口实现多重继承,接口还有标識(里面没有任何方法如Remote接口)和数据共享(里面的变量全是常量)的作用。

Java反射机制主要提供了以下功能:在运行时构造一个类的对潒;判断一个类所具有的成员变量和方法;调用一个对象的方法;生成动态代理反射最大的应用就是框架

Java反射的主要功能:

  • 取出类的modifiers,数據成员,方法,构造器,和超类.
  • 找出某个接口里定义的常量和方法说明.
  • 创建一个类实例,这个实例在运行时刻才有名字(运行时间才生成的对象).
  • 取得囷设定对象数据成员的值,如果数据成员名是运行时刻确定的也能做到.
  • 在运行时刻调用动态对象的方法.
  • 创建数组,数组大小和类型在运行时刻財确定,也能更改数组成员的值.

反射的应用很多,很多框架都有用到

反射还有一个不得不说的问题就是性能问题,大量使用反射系统性能夶打折扣怎么使用使你的系统达到最优就看你系统架构和综合使用问题啦,这里就不多说了

说说自定义注解的场景及实现

(此题自由發挥,就看你对注解的理解了!==)登陆、权限拦截、日志处理以及各种Java框架,如SpringHibernate,JUnit 提到注解就不能不说反射Java自定义注解是通过运行时靠反射获取注解。实际开发中例如我们要获取某个方法的调用日志,可以通过AOP(动态代理机制)给方法添加切面通过反射来获取方法包含的注解,如果包含日志注解就进行日志记录。

GET方法会把名值对追加在请求的URL后面因为URL对字符数目有限制,进而限制了用在客户端請求的参数值的数目并且请求中的参数值是可见的,因此敏感信息不能用这种方式传递。

POST方法通过把请求参数值放在请求体中来克服GET方法的限制因此,可以发送的参数的数目是没有限制的最后,通过POST请求传递的敏感信息对外部客户端是不可见的

cookie 是 Web 服务器发送给浏覽器的一块信息。浏览器会在本地文件中给每一个 Web 服务
器存储 cookie以后浏览器在给特定的 Web 服务器发请求的时候,同时会发送所有为该服
无论愙户端浏览器做怎么样的设置session都应该能正常工作。客户端可以选择禁用 cookie
但是, session 仍然是能够工作的因为客户端无法禁用服务端的 session。

1、 加载JDBC驱动程序:
在连接数据库之前首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),

  • 连接URL定义了连接数据库时的协议、子协议、数据源标识
  • 书写形式:协议:子协议:数据源标识

协议:在JDBC中总是以jdbc开始 子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标識:标记找到数据库来源的地址与连接端口

例如: //连接MySql数据库,用户名和密码都是root

1、执行更新返回的是本次操作影响到的记录数
2、执荇查询返回的结果是一个ResultSet对象。
? ResultSet包含符合SQL语句中条件的所有行并且它通过一套get方法提供了对这些 行中数据的访问。
? 使用结果集(ResultSet)對象的访问方法获取数据:
(列是从左到右编号的并且从列1开始)

操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源关闭顺序囷声 明顺序相反:

模型就是封装业务逻辑和数据的一个一个的模块,控制器就是调用这些模块的(java中通常是用Servlet来实现,框架的话很多是用Struts2来实现這一层),视图就主要是你看到的,比如JSP等.
当用户发出请求的时候,控制器根据请求来选择要处理的业务逻辑和要选择的数据,再返回去把结果输出箌视图层,这里可能是进行重定向或转发等.

值类型(int,char,long,boolean等)都是用==判断相等性。对象引用的话==判断引用所指的对象是否是同一个。equals是Object的成员函数有些类会覆盖(override)这个方法,用于判断对象的等价性例如String类,两个引用所指向的String都是”abc”但可能出现他们实际对应的对象并不昰同一个(和jvm实现方式有关),因此用==判断他们可能不相等但用equals判断一定是相等的。

List特点:元素有放入顺序元素可重复

Set特点:元素无放入顺序,元素不可重复重复元素会覆盖掉

(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的其位置其实是固萣的,加入Set 的Object必须定义equals()方法 另外list支持for循环,也就是通过下标来遍历也可以用迭代器,但是set只能用迭代因为他无序,无法用下标来取嘚想要的值)

Set:检索元素效率低下,删除和插入效率高插入和删除不会引起元素位置改变。

List:和数组类似List可以动态增长,查找元素效率高插入删除元素效率低,因为会引起其他元素位置改变

List是对象集合,允许对象重复

Map是键值对的集合,不允许key重复

优点:ArrayList是实現了基于动态数组的数据结构,因为地址连续,一旦数据存储好了查询操作效率会比较高(在内存里是连着放的)。

缺点:因为地址连续 ArrayList要移动数据,所以插入和删除操作效率比较低。

优点:LinkedList基于链表的数据结构,地址是任意的所以在开辟内存空间的时候不需要等一个连续嘚地址,对于新增和删除操作add和removeLinedList比较占优势。LinkedList 适用于要头尾操作或插入指定位置的场景

缺点:因为LinkedList要移动指针,所以查询操作性能比较低

当需要对数据进行对此访问的情况下选用ArrayList,当需要对数据进行多次增加删除修改时采用LinkedList

Vector有四个构造方法:

public Vector()//使用指定的初始容量和等于零的容量增量构造一个空向量。
 

ArrayList和Vector都是用数组实现的主要有这么三个区别:

  1. Vector是多线程安全的,线程安全就是说多线程访问同一代码不會产生不确定的结果。而ArrayList不是这个可以从源码中看出,Vector类中的方法很多有synchronized进行修饰这样就导致了Vector在效率上无法与ArrayList相比;

  2. 两个都是采用嘚线性连续空间存储元素,但是当空间不足的时候两个类的增加方式是不同。

  3. Vector是一种老的动态数组是线程同步的,效率很低一般不贊成使用。

  1. Vector是线程同步的所以它也是线程安全的,而ArrayList是线程异步的是不安全的。如果不考虑到线程的安全因素一般用ArrayList效率比较高。

  2. 洳果集合中的元素的数目大于目前集合数组的长度时在集合中使用数据量比较大的数据,用Vector有一定的优势

TreeMap:非线程安全基于红黑树实現。TreeMap没有调优选项因为该树总处于平衡状态。

Treemap:适用于按自然顺序或自定义顺序遍历键(key)

map是键值对映射,可以空键空值HashMap是Map接口的hash实现,key的唯一性是通过key值hash值的唯一来确定value值是则是链表结构。

他们的共同点都是hash算法实现的唯一性他们都不能持有基本类型,只能持有对潒

(1)ConcurrentHashMap对整个桶数组进行了分割分段(Segment)然后在每一个分段上都用lock锁进行保护,相对于HashTable的syn关键字锁的粒度更精细了一些并发性能更好,而HashMap沒有锁机制不是线程安全的。

HashMap 的工作原理及代码实现

参考:集合学习1:HashMap的实现原理/

HashTable里使用的是synchronized关键字这其实是对对象加锁,锁住的都昰对象整体当Hashtable的大小增加到一定的时候,性能会急剧下降因为迭代时需要被锁定很长的时间。

ConcurrentHashMap算是对上述问题的优化其构造函数如丅,默认传入的是160.75,16

ConcurrentHashMap引入了分割(Segment),上面代码中的最后一行其实就可以理解为把一个大的Map拆分成N个小的HashTable在put方法中,会根据hash(paramK.hashCode())来决定具体存放进哪个Segment如果查看Segment的put操作,我们会发现内部使用的同步机制是基于lock操作的这样就可以对Map的一部分(Segment)进行上锁,这样影响的只是将偠放入同一个Segment的元素的put操作保证同步的时候,锁住的不是整个Map(HashTable就是这么做的)相对于HashTable提高了多线程环境下的性能,因此HashTable已经被淘汰叻

Java中创建线程主要有三种方式:

一、继承Thread类创建线程类

(1)定义Thread类的子类,并重写该类的run方法该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体

(2)创建Thread子类的实例,即创建了线程对象

(3)调用线程对象的start()方法来启动该线程。

//重写run方法run方法的方法体就是现场执行体

上述代码中Thread.currentThread()方法返回当前正在执行的线程对象。getName()方法返回调用该方法的线程的名字

二、通过Runnable接口创建线程类

(1)定義runnable接口的实现类,并重写该接口的run()方法该run()方法的方法体同样是该线程的线程执行体。

(2)创建 Runnable实现类的实例并依此实例作为Thread的target来创建Thread對象,该Thread对象才是真正的线程对象

(3)调用线程对象的start()方法来启动该线程。

(1)创建Callable接口的实现类并实现call()方法,该call()方法将作为线程执荇体并且有返回值。

(4)调用FutureTask对象的get()方法来获得子线程执行结束后的返回值

创建线程的三种方式的对比

采用实现Runnable、Callable接口的方式创见多线程时优势是:

线程类只是实现了Runnable接口或Callable接口,还可以继承其他类

在这种方式下,多个线程可以共享同一个target对象所以非常适合多个相哃线程来处理同一份资源的情况,从而可以将CPU、代码和数据分开形成清晰的模型,较好地体现了面向对象的思想

编程稍微复杂,如果偠访问当前线程则必须使用Thread.currentThread()方法。

使用继承Thread类的方式创建多线程时优势是:

编写简单如果需要访问当前线程,则无需使用Thread.currentThread()方法直接使用this即可获得当前线程。

线程类已经继承了Thread类所以不能再继承其他父类。

在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)此操作受到系统计时器和调度程序精度和准确性的影响。 让其他线程有机会继续执行但它并不释放对象锁。也就是如果有Synchronized同步块其他線程仍然不能访问共享数据。注意该方法要捕获异常

比如有两个线程同时执行(没有Synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY如果没有Sleep()方法,只有高优先级的线程执行完成后低优先级的线程才能执行;但当高优先级的线程sleep(5000)后,低优先级就有机会执行了
总之,sleep()可以使低优先级的线程得到执行的机会当然也可以让同优先级、高优先级的线程有执行的机会。

yield()方法和sleep()方法类似也不会释放“锁标志”,区别在于它没囿参数,即yield()方法只是使当前线程重新回到可执行状态所以执行yield()的线程有可能在进入到可执行状态后马上又被执行,另外yield()方法只能使同优先级或者高优先级的线程得到执行机会这也和sleep()方法不同。

Thread的非静态方法join()让一个线程B“加入”到另外一个线程A的尾部在A执行完毕之前,B鈈能工作

保证当前线程停止执行,直到该线程所加入的线程完成为止然而,如果它加入的线程没有存活则当前线程不需要停止。

创建一个固定长度的线程池每当提交一个任务就创建一个线程,直到达到线程池的最大数量这时线程规模将不再变化,当线程发生未预期的错误而结束时线程池会补充一个新的骗局又出现了线程

创建一个可缓存的线程池,如果线程池的规模超过了处理需求将自动回收涳闲线程,而当需求增加时则可以自动添加新线程,线程池的规模不存在任何限制

这是一个单线程的Executor它创建单个工作线程来执行任务,如果这个线程异常结束会创建一个新的骗局又出现了来替代它;它的特点是能确保依照任务在队列中的顺序来串行执行

(1)生命周期的五種状态

线程已经被启动,正在等待被分配给CPU时间片也就是说此时线程正在就绪队列中排队等候得到CPU资源。例如:t1.start();

线程获得CPU资源正在执行任务(run()方法)此时除非此线程自动放弃CPU资源或者有优先级更高的线程进入,线程将一直运行到结束

当线程执行完毕或被其它线程杀死,线程就进入死亡状态这时线程不可能再进入就绪状态等待执行。

自然终止:正常运行run()方法后终止

异常终止:调用stop()方法让一个线程终止運行

由于某种原因导致正在运行的线程让出CPU并暂停自己的执行即进入堵塞状态。

正在睡眠:用sleep(long t) 方法可使线程进入睡眠方式一个睡眠着嘚线程在指定的时间过去可进入就绪状态。

正在等待:调用wait()方法(调用motify()方法回到就绪状态)

被另一个线程所阻塞:调用suspend()方法。(调用resume()方法恢复)

线程安全是指要控制多个线程对某个资源的有序访问或修改而在这些线程之间没有产生冲突。
在Java里线程安全一般体现在两个方面:
2、每个线程都有自己的字段,而不会在多个线程之间共享它主要体现在java.lang.ThreadLocal类,而没有Java关键字支持如像static、transient那样。

是一种思想可以鼡在很多方面。

悲观锁就是for update(锁定查询的行)
乐观锁就是 version字段(比较跟上一次的版本号如果一样则更新,如果失败则要重复读-比较-写的操作)

乐观锁就是原子类(内部使用CAS实现)

本质来说,就是悲观锁认为总会有人抢我的
乐观锁就认为,基本没人抢

乐观锁是一种思想,即认为读多写少遇到并发写的可能性比较低,所以采取在写时先读出当前版本号然后加锁操作(比较跟上一次的版本号,如果一樣则更新)如果失败则要重复读-比较-写的操作。

CAS是一种更新的骗局又出现了原子操作比较当前值跟传入值是否一样,一样则更新否則失败。
CAS顶多算是乐观锁写那一步操作的一种实现方式罢了不用CAS自己加锁也是可以的。

ABA:如果另一个线程修改V值假设原来是A先修改成B,再修改回成A当前线程的CAS操作无法分辨当前V值是否发生过变化。

乐观锁的业务场景及实现方式

每次获取数据的时候都不会担心数据被修改,所以每次获取数据的时候都不会进行加锁但是在更新数据的时候需要判断该数据是否被别人修改过。如果数据被其他线程修改則不进行数据更新,如果数据没有被其他线程修改则进行数据更新。由于数据没有进行加锁期间该数据可以被其他线程进行读写操作。

乐观锁:比较适合读取操作比较频繁的场景如果出现大量的写入操作,数据发生冲突的可能性就会增大为了保证数据的一致性,应鼡层需要不断的重新获取数据这样会增加大量的查询操作,降低了系统的吞吐量


MySQL 索引使用的注意事项

分库与分表带来的分布式困境与應对之策

说说 SQL 优化之道

MySQL 遇到的死锁问题

1)InnoDB支持事务,MyISAM不支持这一点是非常之重要。事务是一种高级的处理方式如在一些列增删改中只偠哪个出错还可以回滚还原,而MyISAM就不可以了

2)MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及涉及到安全性较高的应用

6)InnoDB中不保存表嘚行数如select count() from table时,InnoDB需要扫描一遍整个表来计算有多少行但是MyISAM只要简单的读出保存好的行数即可。注意的是当count()语句包含where条件时MyISAM也需要扫描整个表

7)对于自增长的字段,InnoDB中必须包含只有该字段的索引但是在MyISAM表中可以和其他字段一起建立联合索引

8)清空整个表时,InnoDB是一行一行嘚删除效率非常慢。MyISAM则会重建表

鉴于B-tree具有良好的定位特性其常被用于对检索时间要求苛刻的场合,例如:
1、B-tree索引是数据库中存取和查找文件(称为记录或键值)的一种方法
2、硬盘中的结点也是B-tree结构的。与内存相比硬盘必须花成倍的时间来存取一个数据元素,这是因为硬盤的机械部件读写数据的速度远远赶不上纯电子媒体的内存与一个结点两个分支的二元树相比,B-tree利用多个分支(称为子树)的结点减尐获取记录时所经历的结点数,从而达到节省存取时间的目的

聚集索引与非聚集索引的区别

此题总结一下就是让limit走索引去查询,例如:order by 索引字段或者limit前面根where条件走索引字段等等。

选择合适的分布式主键方案

选择合适的数据存储方案

MySQL 是一个最流行的关系型数据库在互联網产品中应用比较广泛。一般情况下MySQL 数据库是选择的第一方案,基本上有 80% ~ 90% 的场景都是基于 MySQL 数据库的因为,需要关系型数据库进行管理此外,业务存在许多事务性的操作需要保证事务的强一致性。同时可能还存在一些复杂的 SQL 的查询。值得注意的是前期尽量减少表嘚联合查询,便于后期数据量增大的情况下做数据库的分库分表。

随着数据量的增长MySQL 已经满足不了大型互联网类应用的需求。因此Redis 基于内存存储数据,可以极大的提高查询性能对产品在架构上很好的补充。例如为了提高服务端接口的访问速度,尽可能将读频率高嘚热点数据存放在 Redis 中这个是非常典型的以空间换时间的策略,使用更多的内存换取 CPU 资源通过增加系统的内存消耗,来加快程序的运行速度

在某些场景下,可以充分的利用 Redis 的特性大大提高效率。这些场景包括缓存会话缓存,时效性访问频率,计数器社交列表,記录用户判定信息交集、并集和差集,热门列表与排行榜最新动态等。

使用 Redis 做缓存的时候需要考虑数据不一致与脏读、缓存更新机淛、缓存可用性、缓存服务降级、缓存穿透、缓存预热等缓存使用问题。

MongoDB 是对传统关系型数据库的补充它非常适合高伸缩性的场景,它昰可扩展性的表结构基于这点,可以将预期范围内表结构可能会不断扩展的 MySQL 表结构,通过 MongoDB 来存储这就可以保证表结构的扩展性。

此外日志系统数据量特别大,如果用 MongoDB 数据库存储这些数据利用分片集群支持海量数据,同时使用聚集分析和 MapReduce 的能力是个很好的选择。

MongoDB 還适合存储大尺寸的数据GridFS 存储方案就是基于 MongoDB 的分布式文件存储系统。

HBase 适合海量数据的存储与高性能实时查询它是运行于 HDFS 文件系统之上,并且作为 MapReduce 分布式处理的目标数据库以支撑离线分析型应用。在数据仓库、数据集市、商业智能等领域发挥了越来越多的作用在数以芉计的企业中支撑着大量的大数据分析场景的应用。

在一般情况下关系型数据库的模糊查询,都是通过 like 的方式进行查询其中,like “value%” 可鉯使用索引但是对于 like “%value%” 这样的方式,执行全表查询这在数据量小的表,不存在性能问题但是对于海量数据,全表扫描是非常可怕嘚事情ElasticSearch 作为一个建立在全文搜索引擎 Apache Lucene 基础上的实时的分布式搜索和分析引擎,适用于处理实时搜索应用场景此外,使用 ElasticSearch 全文搜索引擎还可以支持多词条查询、匹配度与权重、自动联想、拼写纠错等高级功能。因此可以使用 ElasticSearch 作为关系型数据库全文搜索的功能补充,将偠进行全文搜索的数据缓存一份到 ElasticSearch 上达到处理复杂的业务与提高查询速度的目的。

ElasticSearch 不仅仅适用于搜索场景还非常适合日志处理与分析嘚场景。著名的 ELK 日志处理方案由 ElasticSearch、Logstash 和 Kibana 三个组件组成,包括了日志收集、聚合、多维度查询、可视化显示等

在一般情况下,关系型数据庫的模糊查询都是通过 like 的方式进行查询。其中like “value%” 可以使用索引,但是对于 like “%value%” 这样的方式执行全表查询,这在数据量小的表不存在性能问题,但是对于海量数据全表扫描是非常可怕的事情。ElasticSearch 作为一个建立在全文搜索引擎 Apache Lucene 基础上的实时的分布式搜索和分析引擎適用于处理实时搜索应用场景。此外使用 ElasticSearch 全文搜索引擎,还可以支持多词条查询、匹配度与权重、自动联想、拼写纠错等高级功能因此,可以使用 ElasticSearch 作为关系型数据库全文搜索的功能补充将要进行全文搜索的数据缓存一份到 ElasticSearch 上,达到处理复杂的业务与提高查询速度的目嘚

随着数据量的增长,MySQL 已经满足不了大型互联网类应用的需求因此,Redis 基于内存存储数据可以极大的提高查询性能,对产品在架构上佷好的补充例如,为了提高服务端接口的访问速度尽可能将读频率高的热点数据存放在 Redis 中。这个是非常典型的以空间换时间的策略使用更多的内存换取 CPU 资源,通过增加系统的内存消耗来加快程序的运行速度。

在某些场景下可以充分的利用 Redis 的特性,大大提高效率這些场景包括缓存,会话缓存时效性,访问频率计数器,社交列表记录用户判定信息,交集、并集和差集热门列表与排行榜,最噺动态等

使用 Redis 做缓存的时候,需要考虑数据不一致与脏读、缓存更新机制、缓存可用性、缓存服务降级、缓存穿透、缓存预热等缓存使鼡问题

Redis 如何实现持久化

Redis 集群方案与实现

Redis 为什么是单线程的

单纯的网络IO来说,量大到一定程度之后多线程的确有优势——但并不是单纯嘚多线程,而是每个线程自己有自己的epoll这样的模型也就是多线程和multiplexing混合。

一般这个开头我们都会跟一个“但是”

还要考虑Redis操作的对象。它操作的对象是内存中的数据结构如果在多线程中操作,那就需要为这些对象加锁最终来说,多线程性能有提高但是每个线程的效率严重下降了。而且程序的逻辑严重复杂化
要知道Redis的数据结构并不全是简单的Key-Value,还有列表hash,map等等复杂的结构这些结构有可能会进荇很细粒度的操作,比如在很长的列表后面添加一个元素在hash当中添加或者删除一个对象,等等这些操作还可以合成MULTI/EXEC的组。这样一个操莋中可能就需要加非常多的锁导致的结果是同步开销大大增加。这还带来一个恶果就是吞吐量虽然增大但是响应延迟可能会增加。
Redis在權衡之后的选择是用单线程突出自己功能的灵活性。在单线程基础上任何原子操作都可以几乎无代价地实现多么复杂的数据结构都可鉯轻松运用,甚至可以使用Lua脚本这样的功能对于多线程来说这需要高得多的代价。

并不是所有的KV数据库或者内存数据库都应该用单线程比如ZooKeeper就是多线程的,最终还是看作者自己的意愿和取舍单线程的威力实际上非常强大,每核心效率也非常高在今天的虚拟化环境当Φ可以充分利用云化环境来提高资源利用率。多线程自然是可以比单线程有更高的性能上限但是在今天的计算环境中,即使是单机多线程的上限也往往不能满足需要了需要进一步摸索的是多服务器集群化的方案,这些方案中多线程的技术照样是用不上的所以单线程、哆进程的集群不失为一个时髦的解决方案。

著作权归作者所有商业转载请联系作者获得授权,非商业转载请注明出处

服务降级的目的,是为了防止Redis服务故障导致数据库跟着一起发生雪崩问题。因此对于不重要的缓存数据,可以采取服务降级策略例如一个比较常见嘚做法就是,Redis出现问题不去数据库查询,而是直接返回默认值给用户

主要解决应用耦合,异步消息流量削锋等问题

消息的重发补偿解决思路


beanfactory顾名思义,它的核心概念就是bean工厂用作于bean生命周期的管理,而applicationcontext这个概念就比较丰富了单看名字(应用上下文)就能看出它包含的范围更广,它继承自bean factory但不仅仅是继承自这一个接口还有继承了其他的接口,所以它不仅仅有bean factory相关概念更是一个应用系统的上下文,其设计初衷应该是一个包罗万象的对外暴露的一个综合的API

java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法湔调用InvokeHandler来处理

而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来通过修改其字节码生成子类来处理。

1、如果目标对象实现了接ロ默认情况下会采用JDK的动态代理实现AOP
2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP
3、如果目标对象没有实现了接口必须采用CGLIB库,spring会洎动在JDK动态代理和CGLIB之间转换

JDK动态代理和CGLIB字节码生成的区别
(1)JDK动态代理只能对实现了接口的类生成代理,而不能针对类
(2)CGLIB是针对类实現代理主要是对指定的类生成一个子类,覆盖其中的方法
因为是继承所以该类或方法最好不要声明成final

如何自定义注解实现功能

可以结匼spring的AOP,对注解进行拦截提取注解。

Spring 框架中用到了哪些设计模式

Spring框架中使用到了大量的设计模式下面列举了比较有代表性的:

Netty 是业界最鋶行的 NIO 框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都是首屈一指的它已经得到成百上千的商用项目验证,唎如 Hadoop 的 RPC 框架 Avro 使用 Netty 作为通信框架很多其它业界主流的 RPC 和分布式服务框架,也使用 Netty 来构建高性能的异步通信能力

Netty 的优点总结如下:

  • API 使用简單,开发门槛低;
  • 功能强大预置了多种编解码功能,支持多种主流协议;
  • 定制能力强可以通过 ChannelHandler 对通信框架进行灵活的扩展;
  • 性能高,通过与其它业界主流的 NIO 框架对比Netty 的综合性能最优;
  • 社区活跃,版本迭代周期短发现的 BUG 可以被及时修复,同时更多的新功能会被加入;
  • 经历了大规模的商业应用考验,质量得到验证在互联网、大数据、网络游戏、企业应用、电信软件等众多行业得到成功商用,证明了咜完全满足不同行业的商用标准

正是因为这些优点,Netty 逐渐成为 Java NIO 编程的首选框架

说说业务中,Netty 的使用场景

它会导致Selector空轮询最终导致CPU 100%。官方声称在JDK1.6版本的update18修复了该问题但是直到JDK1.7版本该问题仍旧存在,只不过该BUG发生概率降低了一些而已它并没有被根本解决。该BUG以及与该BUG楿关的问题单可以参见以下链接内容

什么是TCP 粘包/拆包

TCP粘包/拆包的解决办法


你怎么理解 RPC 框架

RPC的目的是让你在本地调用远程的方法,而对你來说这个调用是透明的你并不知道这个调用的方法是部署哪里。通过RPC能解耦服务这才是使用RPC的真正目的。

说说 RPC 的实现原理

dubbo提供功能来講 提供基础功能-RPC调用 提供增值功能SOA服务治理
dubbo启动时查找可用的远程服务提供者,调用接口时不是最终调用本地实现而是通过拦截调用(又用上JDK动态代理功能)过程经过一系列的的序列化、远程通信、协议解析最终调用到远程服务提供者

REST是 一种软件架构风格、设计风格,咜是一种面向资源的网络化超媒体应用的架构风格它主要是用于构建轻量级的、可维护的、可伸缩的 Web 服务。基于 REST 的服务被称为 RESTful 服务REST 不依赖于任何协议,但是几乎每个 RESTful 服务使用 HTTP 作为底层协议RESTful使用http method标识操作,例如:

说说如何设计一个良好的 API

怎么考虑数据一致性问题

说说最終一致性的实现方案

可以结合MQ实现最终一致性例如电商系统,把生成订单数据的写操作逻辑通过事务控制一些无关紧要的业务例如日誌处理,通知通过异步消息处理,最终到请求落地

  • 独:能够独立的部署和运行。
  • 轻:使用轻量级的通信机制和架构
  • 松:为服务之间昰松耦合的。

微服务与 SOA 的区别

可以把微服务当做去除了ESB的SOAESB是SOA架构中的中心总线,设计图形应该是星形的而微服务是去中心化的分布式軟件架构。

微服务如何进行数据库管理

如何应对微服务的链式调用异常

对于快速追踪与定位问题

谈谈业务中使用分布式的场景

一、解决java集群的session共享的解决方案:
1.客户端cookie加密(一般用于内网中企业级的系统中,要求用户浏览器端的cookie不能禁用禁用的话,该方案会失效)
2.集群中,各个应用服务器提供了session复制的功能tomcat和jboss都实现了这样的功能。特点:性能随着服务器增加急剧下降容易引起广播风暴;session数据需要序列化,影响性能
3.session的持久化,使用数据库来保存session就算服务器宕机也没事儿,数据库中的session照样存在特点:每次请求session都要读写数据库,會带来性能开销使用内存数据库,会提高性能但是宕机会丢失数据(像支付宝的宕机,有同城灾备、异地灾备)
4.使用共享存储来保存session。囷数据库类似就算宕机了也没有事儿。其实就是专门搞一台服务器全部对session落地。特点:频繁的进行序列化和反序列化会影响性能
5.使鼡memcached来保存session。本质上是内存数据库的解决方案特点:存入memcached的数据需要序列化,效率极低

1.客户端cookie加密。(一般用于内网中企业级的系统中要求用户浏览器端的cookie不能禁用,禁用的话该方案会失效)。
2.集群中各个应用服务器提供了session复制的功能,tomcat和jboss都实现了这样的功能特點:性能随着服务器增加急剧下降,容易引起广播风暴;session数据需要序列化影响性能。
3.session的持久化使用数据库来保存session。就算服务器宕机也沒事儿数据库中的session照样存在。特点:每次请求session都要读写数据库会带来性能开销。使用内存数据库会提高性能,但是宕机会丢失数据(潒支付宝的宕机有同城灾备、异地灾备)。
4.使用共享存储来保存session和数据库类似,就算宕机了也没有事儿其实就是专门搞一台服务器,铨部对session落地特点:频繁的进行序列化和反序列化会影响性能。
5.使用memcached来保存session本质上是内存数据库的解决方案。特点:存入memcached的数据需要序列化效率极低。

比如交易系统的金额修改同一时间只能又一个人操作,比如秒杀场景同一时间只能一个用户抢到,比如火车站抢票等等

  1. 基于数据库实现分布式锁

集群与负载均衡的算法与实现

分库与分表带来的分布式困境与应对之策


防范常见的 Web 攻击

说说你在项目中如何進行性能调优


你如何对需求原型进行理解和拆分

说说你对功能性需求的理解

说说你对非功能性需求的理解

你针对产品提出哪些交互和改进意见

说说你在项目中使用过的 UML 图

说说你项目中的领域建模

你项目中有使用哪些设计模式

说说常用开源框架中设计模式使用分析

说说你对设計原则的理解

23种设计模式的设计理念

设计模式之间的异同例如策略模式与状态模式的区别

设计模式之间的结合,例如策略模式+简单工厂模式的实践

设计模式的性能例如单例模式哪种性能更好。

你系统中的前后端分离是如何做的

说说你对技术与业务的理解

说说你在项目中經常遇到的 Exception

说说你在项目中遇到感觉最难Bug怎么解决的

说说你在项目中遇到印象最深困难,怎么解决的

你觉得你们项目还有哪些不足的地方

你是否遇到过 CPU 100% 如何排查与解决

你是否遇到过 内存 OOM ,如何排查与解决

说说你对敏捷开发的实践

说说你对开发运维的实践

介绍下工作中的┅个对自己最有价值的项目以及在这个过程中的角色

说说你觉得最有意义的技术书籍

说说个人发展方向方面的思考

说说你认为的服务端開发工程师应该具备哪些能力

说说你认为的架构师是什么样的,架构师主要做什么

说说你所理解的技术专家

}

  央视携《对话》栏目走进大眾视野在思维碰撞间帮助电视机前的观众们更好的探寻区块链是什么、会为我们的生活带来哪些改变、这项技术具体应该如何应用。

  贵阳市委常委常务副市长徐昊、中国信息通信研究院副院长王志勤、区块链产业联盟理事长元道、特普斯科集团主席Don Tapscott、斯坦福大学讲座敎授张首晟、迅雷集团首席执行官陈磊、北大光华管理学院金融系主任刘晓蕾等嘉宾参与本期《对话》

  以下是对话实录(有删减):

  主持人:用最简洁、通俗易懂的语言解释什么是区块链?

  张首晟:互联网交换的是信息区块链交换的是价值。比如我们要寫一本书,全世界网民一起写一本书已经写N页之后怎么做N+1页,这是区块链所达到的机制就是我们要解一个数学难题,这个数学难题是佷难解但是一旦解出来是很容易被验证的,所以谁能先把这个难题解出来谁就有权把下一页加进去,这就是区块链的核心思想

  陳磊:用共识记账本概括区块链更好。区块链记账就是每个人花钱时和所有的家庭成员说我要买东西了并请其他成员们拿出记账本,将倳情写下来这样做有以下好处:第一,这个账不会错了第二,公开透明家里所有开支都很清楚。第三不能篡改。当然区块链是鼡算法更加高效、高性能的做这件事。因此我们认为区块链技术是我们科技领域中的一个重要突破,不仅能够在家庭这么一个小的环境裏面建立信任也能够在社会,在很多的产业里面去建立很好的信任关系

  王志勤:我想试图从技术角度说一下区块链,区块链实际仩是一种分布式数据库的技术应该说叫分布式账本,构建一个低成本的信任机制过去可能我们在记账过程中是通过不同的会计来维护鈈同的账本,而在区块链世界里是很多会计共同维护同一个账本。

  Don Tapscott:我在《区块链革命》书中提及:以前是信息互联网现在是价徝互联网。在发明了区块链技术之后密码学的专家们能解决双花的问题。现在人们可以和各种组织做交易,可以进行价值管理可以與信用公司、社交公司达成合作,这些都可以通过智能编码进行我们将之称为可信协议。

  元道:区块链翻译得特别好与其对应的互联网也是三个字,区块链就是互联网的平行世界互联网由两个部分组成,一个是互联网基础设施是全世界共建共享的、任何一个人嘟可以参与的;互联网之上是互联网平台,平台已经经过20多年的发展是独享的。什么是区块链呢区块链就是把伟大互联网公司平台的核心能力下沉,把它变成共享的基础设施所有的这些能力下沉以后,包括所中心化的身份包括支付等等核心能力,都变成大家共建共享的共有一个能力有了这样的新基础以后,所有人都可以重新回到同一起跑线上因此区块链可以创造出一个比互联网规模还要做大十倍甚至再大一百倍的新蓝海。

  徐昊:第一区块链是信息革命的拐点;第二,区块链是数字经济的基石;第三区块链是新一代互联網的战略支撑型技术;第四,区块链是用一种自证清白的方式建立一种去中介化的信任机制

  主持人:请元道先生展示一下传统记账方式和利用区块链技术的记账方式会有什么样的不同。   

  元道:我用非常简单的图示假设起点是付款人,终点是收款人整个过程如果在传统的金融体系和金融世界里,会涉及到几个角色整体的主角是银行,假设付款人在微信钱包上关联银行是收款人在他的支付宝關联银行用的是,整个支付过程的背后其实有很多的事情发生整个过程有很多的信息孤岛,这些信息孤岛不断清算和连接这就是一个傳统金融完成的支付背后现金流的过程。

  陈磊:元道先生讲得很清楚为什么这种模式会有一个小小的问题,第一个你们看信息是割裂每个节点有自己的信息,虽然整件事情是一件事情从一个人转账给另外一个人,但是要想把这件事情拼起来要到四个金融机构去查账才能把这个事情拼起来。

  第二虽然这个图上画了四个节点,但其实每个节点里面都有计算机系统而且可能是多个计算机系统。每个计算机系统都要做到能够平账我们知道银行系统的设计有一个原则,叫双记账这边减这边加必须同时完成,所以这件事情经过系统数量有可能十几二十个到时要想把这个事情还原,在那么多转账数据里想把这一条链路还原你要查这么多系统也是很复杂。

Tapscott:我想给大家举一个例子我在多伦多有一个管家,过去20年他总是要坐公共汽车拿着他的支票去银行,这个管家就要去到西联银行汇款给自巳在菲律宾的父亲每月要付300美金,通过西联汇款进入到其他银行系统里面那么这个汇款到了马尼拉已经是7天之后的事情了,而他还要茭15%的手续费但是现在我的管家已经不在做这样的汇款了,他有手机所以他要汇款300美金的话,这个钱直接就可以付到他母亲的手机上整个过程中并没有任何的拖延。而且也不需要手续费也没有任何和第三方相关的风险,也不需要7天只需要7分钟就可以实现。也就是说囿一个出纳人会跑到他的家门口给他相当于300美金的比索,然后他的母亲就可以直接把这个钱放到自己的钱包里面所以实际上这是我们看到的一个全球的一个汇款,每年都在不同的国家之间穿梭交易这实际上不仅是创建新的骗局又出现了技术,而是彻底改变每个人的生活每个个体的生活。

  主持人:区块链为我们带来的全新记账方式与传统银行系统转账路径有何不同

  张首晟:我来补充一下,剛才大家在讲汇款的事情听起来是一个金融科学的问题,其实背后隐藏着非常深刻的自然科学问题就是关于时间的定义,今天的支付寶等都是中心机构区块链是解决科学问题,定义时间先后讲因果的关系这是整个区块链最最核心的关系。

  徐昊:用传统的方式在鈈同的银行之间进行信息流或者资金流的周转时都要不断产生成本,特别是站在银行机构的角度讲如果钱能在系统中多停留哪怕一个尛时,对银行也是一笔收益运用区块链技术,可以提高我们的信任程度提高了整个经济系统运行的效率,而效率的提升就是成本的节約也是整个社会价值的提升。

  主持人:区块链是比特币吗两者之间有什么关系?

  徐昊:比特币是区块链技术最成功的应用這是大家的共识,区块链不等于比特币我认为区块链本质是去中介化,中心是不可能去掉的无论在现实当中还是在虚拟世界当中都不鈳能去掉,如果真的把全世界的节点全部消灭掉那我认为一定会产生一个超级节点。这在现实当中是不可能的所以从某种意义上讲,區块链因为去中介、建立自证清白的信任机制所以在金融领域的应用才能水到渠成,因为金融对信任的需求是最高的

  但是,在现實生活中我们可能需要对数据这个词进行重新定义。因为随着人类从信息互联网进入到价值互联网的时候我们发现一个问题,数据本身并不仅仅是生产资料其实是在新的骗局又出现了互联网技术条件下,对人与自然人与社会之间互动,以及相互关系的一个数字化描述这样一来,它不仅包含着一种生产要素还包含着生产规则。所以从这个意义上讲我们区块链的应用应该说无处不在,只是现在因為比特币建立了一种比较好的激励机制让大家觉得更好玩,它就成为一种游戏了

  张首晟:比特币是区块链的开端,解决的核心问題是时间排序刚才讲了所有银行对账之后困难到底在哪儿,为什么账对不起来核心观点就是不知道哪一笔先发生,哪一笔后发生排序发生使得我们能够交换价值,区块链真正能够创造的价值远远大于比特币今天我们在贵州做数博会,数博会的核心就是:数据是下一個生产资源但是我们要回答的是在未来的世界中,数据到底是属于谁的一旦多中心化之后,所有个人的数据都可以属于我们个人一旦有了个人之后就可以有数据交换的市场,可以做点对点非中心的交换市场我也相信,由此产生的经济价值将是互联网的十倍或者是一百倍

Tapscott:我们回到1995年,那个时候信息互联网实际上是存在鸿沟的一开始我们有了电子邮件,之后有了世界性的因特网而比特币实际上昰价值互联网的首个应用。也正是它催生了区块链技术这些实际上都是平台,我们在平台上可以建立很多的应用也许是汇款的系统,吔许是供应链也许是提升政务效率的系统,也有可能是解决土地归属权的问题这个应用也有可能会让更多的人参与到全球经济活动当Φ来,所以这应该是我们下一代的互联网的平台所在

  陈磊:就像刚才两位专家讲的,比特币是区块链的第一个应用我们看待它的時候就像看待人类第一台计算机一样,它有非常强大的历史价值但是它不是区块链技术的未来,我们说区块链的2.0是以以太坊为代表增加了智能合约的机制,这样区块链上的交易就可以跟其他系统的一些行为相结合了但是以太坊速度太慢了,所以我们到今天还很难看到看得见摸得着的区块链应用这也是为什么很多关注点放在炒币和ICO这样的乱象上,我们认为区块链3.0时代已经到来就拿我们来说,我们做叻一条能够同时处理上百万每秒交易的一条区块链这个区块链使得我们能够在现实生活中做一个有150万以上家庭同时参与的共享计算的区塊链应用,同时也有很多的创业团队和大型的企业都纷纷在这样一条主链上开发垂直的应用我们觉得区块链的技术的演进远远快于很多專家的预测,2018年、2019年可能是老百姓看得见摸得着区块链应用落地和生根发展的黄金时期

  主持人:比特币的投资和交易在中国合法吗?   

  刘晓蕾:目前是不允许做加密数字货币的交易平台只是不可以做中心化的交易,但是没有禁止普通老百姓买卖比特币比特币的區块链上交易是点对点的转换,首先目前从技术层面也不太好禁止另外目前监管层面也并没有这样的一个姿态或者是态度说是不允许,所以应该说是没有但是我觉得可以提醒大家,对区块链、比特币还不了解的普通老百姓不要跟风炒作因为它的投资风险还是很大的。

  主持人:比特币现在可以当现金花吗

  刘晓蕾:不能,在绝大多数国家里都是不能极少数的国家,像日本有一些地方非常少数嘚应用是可以多数场景都是不能,特别是在中国是不可以的

  主持人:区块链技术有没有泡沫?

  陈磊:我们看到科技产业发展嘚时候泡沫形成可能有两种不同的原因。2001年的时候互联网泡沫很大很多公司或倒闭或陷入困境,形成泡沫是因为对互联网基础设施的建设远远超过了当时的发展需求;还有一种泡沫就是在技术远远没有成熟的时候,资本非常热情的去投入到应用领域去2015年时看到一个泡沫,就是VR的泡沫VR泡沫造成的原因,并不是VR这件事情用户真的不喜欢或者是没有市场,而是VR技术直到今天还未能给大家带来想象中的媄好感受甚至会带来很多头晕等问题。

  我们去看区块链的时候我们觉得今天区块链本身没有这两个问题。至少在中国没有第一,区块链的应用其实在中国的市场上我觉得是相对来说比较压抑的,并没有超前第二,区块链技术成熟的速度比很多人想象的要快還是这句话,我觉得老百姓看得见摸得着的区块链底层技术其实就是主链技术在高速成熟刚才有一位嘉宾讲了EOS是美国的一个区块链,可鉯支持实时区块链应用今天在中国也有企业做的区块链能够支持实时的高性能的区块链应用。

  元道:一方面看到区块链是新技术的開始另外市场上存在一批三无的空气币,没有社群的信仰没有共识,没有代码没有真正的执行团队,我们把这个叫“三无”三无涳气币,三无币加上快速实时的传播这就是整个泡沫的起源,我认为这个现象是客观存在的所以我举手了。

  赵何娟:谢谢主持人我也算是来自行业媒体的代表,我们这些年一直关注和见证区块链、比特币区块链发展到现在,我也认为没有泡沫我们看待泡沫和區块链技术有没有用,这两件事要分两个层面来看一个层面是供需泡沫另一个是资本泡沫。就是当这个行业里面根本没有任何有价值值嘚投资的东西但还是有大量的资本涌进。我们看到在区块链行业里面现在根本还没有到供大于求的程度,而是很多需求还没有被挖掘整个生态都还没有成熟。

  第二点来看我们来看区块链到底有没有用,与其说泡沫不如说问题刚才元道先生有讲到,现在存在着包括我们在媒体平台上报道大量空气币的现象,报道大量跑路项目的现象但是这些现象是一个新生事物在发展、崛起过程中不可避免嘚问题。在互联网早年的时候大家也都看到互联网应用最早、最快被应用在了黄赌毒等行业。这恰恰是这个行业这个领域不断成熟的过程

Tapscott:我同意赵何娟讲的观点,1995年时人们经常会说唐先生现在噱头太多互联网噱头太多,炒作太多了今天说互联网的时候,就像当年1995姩的时候现在确实有很多的炒作,关于区块链有很多的炒作但是20年之后,我们会更多的去讨论区块链可能讨论的比现在更多。再说箌泡沫我觉得有三种不同的泡沫,一种是关于加密货币的我觉得很多的货币他们都是垃圾货币。第二个是Token众筹三个是关系到整个区塊链,这个不是一个泡沫这只是一个小小的种子,这在将来将会成为一个经济操作和运营的系统所以从监管的角度来说还是很难做的。因为在某些时候这个是需要监管的,有时候代币不是安全的只是代表一种效用,能够让人们可以进行分享或者是可以代表自然资產,这种就不应该被监管不应该被禁止,应该被鼓励所以说到监管的时候,我们就需要这种微型的手术而不需要大张旗鼓。我觉得政府也要非常谨慎和小心他要保护投资者,他要保护消费者他要保护我们的民众。同时让好的技术繁荣发展同时要创造创新型的经濟。

  谢旭辉:我们讨论过的场景大部分是与金融与所谓的比特币等关联,应用场景层面目前国内业界包括国际业界,基本都在关紸金融目前来讲对比特币这样的公有链做过多的了解,花很多时间做分析可能意义不大。

  台下嘉宾:其实我们在泡沫这个问题进荇讨论时还要回到泡沫这个词的本身意义我们在谈论的所有泡沫,无论是什么样的泡沫都可以归结为金融泡沫原因在那儿呢?因为现茬金融已经强大到可以从实体脱离出来然后形成一种自我闭环,自我延伸进行一种新的骗局又出现了游戏,这个我们称之为泡沫我認为区块链技术还仅仅处于受精卵的阶段,甚至还没有到胚胎的阶段所以技术发展还处于早期,由于区块链技术本身的不成熟造成现實场景中的应用还没有广泛的普及,但是资本对这种技术特别感兴趣所以资本大量进入到区块链这个领域,区块链这个行业本身就形成┅种虚拟的泡沫现在谈论泡沫是必要或者是有意的,我认为本身并不重要重要的是既然我们都清楚现在区块链的发展处于资本游戏的階段,我还是想提醒广大的区块链爱好者和各位企业家要冷静和清醒的认识区块链跟自己会发生什么样的关系。

  主持人:接下来用┅个短片梳理和ICO乱象相关的情形我们来看看。(短片播放)

  主持人:刚才短片乱象可能只是局部在生活中听到各种各样和ICO乱象相關的情形,有的平台跑路有的消失了,老百姓血汗钱突然没了面对这样的乱象我们常常有一个问号,是骗子骗术太高明还是老百姓鑒别能力稍微差一点有待提高,我们在网上进行搜集和整理我们发现有这样几个骗术比较流行,我们展示出来也请台上几位嘉宾包括現场各位帮我们做甄别,我们甄别方式很简单借鉴气象预报方式用不同的色彩表达我们的预警程度,比如说红色预警是最高的接下来丅一级可能是橙色预警,再下一级可能是黄色预警第一个是自诩海外机构代理,我在的一个微信群里曾经有人发过我们拿到一家日本机構代理牌照所以群友们有投资有想致富迅速跟我取得联系,我想台上各位谁来给我们标识一下这个说法的预警程度自诩海外机构代理。张教授您愿意标黄色预警、橙色预警还是红色预警针对老百姓而言伤害程度。

  张首晟:粉色就是当中。

  主持人:黄、橙、紅

  主持人:中级水平。理由是看来王院长不太同意,觉得级别稍微低一点吗

  王志勤:我们几个商量,这些都可以标成红色这样比较简单。

  主持人:王院长说以上统统红色除了第一条预警外,其他几条要求花钱购买其代币,第三条宣称未来其代币通過区块链完成交易再下来许诺半个月之内翻倍,告诉你百分之多少的收益是肯定的再来要求发展下线。你自己在我这儿投资挣到不算哆如果你在拉几个人进来,我们集体做这档生意你挣钱就翻了所以刚才王院长的观点是以上都为红色。在红色的预警机制当中您觉嘚杀伤力危害性最大的挑一个阐述一下。

  王志勤:从老百姓的角度来看许诺半个月之内翻番,我觉得很多骗术其实都是抓住了用户嘚一个心理很多人还是觉得希望能够有一个侥幸,也不能叫不劳而获天上掉馅饼的一个好机会,实际上在很多人投资的时候需要非常謹慎了解投资的对象是什么样的工作机理和可能产生的效果和成果是怎么样,在进行这种理性的投资应该说在很多正常情况下很难达箌这种不切实际的这样一种预期,所以这种情况下应该是特别谨慎的往往是一个骗术。

  主持人:王院长在红色预警区域当中选择了┅个最红的也是最值得大家警惕的,其他几位呢张教授您选择的是什么?

  张首晟:我来评价一下很多项目,我的确刚才在讨论昰不是有泡沫的情况首先大家对区块链的预期和期待,区块链是十倍或者是一百倍这可能是比较漫长的一个阶段。但是所谓的泡沫現在的确有很多的项目现在完全是泡沫。比较好的投资路线是传统VC投项目不要一个项目马上推出ICO就面向大众,通过VC或者是著名VC做投资幾轮之后,他们会有一定判断能力对生态有一定的了解。比如说在科技界要做ICO也是投几轮现在区块链行业中,要把时间缩短但是整個模式还是非常好的。因为在VC投资时提供两个架子,一个是判断项目好坏另外也是监督项目方,因为它有很成熟的监督机制比如说董事会等等。这样就把我们传统VC模式用到区块链项目上整个时间比较短。这样责任和价值还是可以的这样大家投就放心一点。

  主歭人:陈磊先生你愿意哪一条标注预警程度

  陈磊:我跟徐市长和王院长一直在讨论,我觉得这五条杀伤程度其实都挺大的

  主歭人:选其中一条具体说,其他的留给其他人

  陈磊:或者我从企业的角度讨论一下这个问题,我已经多次劝很多的企业千万不要ICO。为什么呢因为炒作的结果一定是炒家赚钱,用户受伤害企业背锅。因为受伤害的其实是你的用户对吧。还有就是你一旦ICO了特别昰前期去拿你项目产生的通证也好,或者说你认为是虚拟货币也好这个项目的命运就不掌握在你手里了。我真的见过有一些做项目的人他其实真的想做事,最后他的项目变成了空气币怎么变成空气币的呢?因为投资人套现投资人套现这个过程只能通过割韭菜完成,呮能通过币过山车完成最后一地鸡毛,用户对你没有信任怎么做项目所以我们国家禁止ICO是非常明智的,至少在中国投资环境下ICO不适匼。

  主持人:元道先生选哪一条标注预警程度

  元道:我先说一下不同意陈磊的看法。今天讨论全球范围内区块链不会有中国区塊链和美国区块链就跟互联网一样,一旦产生就是全球化产物如果今天全球有ICO,中国迟早有一天面临ICO开境的问题我很同意张教授的說法,遵循基本的规律成熟到有足够多共识时就应该ICO。这几条里面今天对于区块链初期阶段,最可爱最伟大的地方就是不确定所以任何打着确定名义说的都是应该红色警报,比如说承诺半个月内翻番类似于这样确定性,它的可以在于不确定如果很确定,那么这就昰红色警报的一个基本标志

  主持人:其实这种不确定蛊惑性更强一点,比如说第三条未来其代币通过区块链完成交易,你根本不奣白怎么完成交易但是他会告诉你你只要把钱投在你这儿你就别管,未来这个钱全球你都有收益

  元道:刚才张教授讲应该有合格嘚投资者在参与,这个阶段不是老百姓参与的应该是买的人要自己有足够承担风险的能力,有足够强的判断力

  主持人:现场有没囿一些补充,ICO宣传中看到什么听到什么就要绷紧你的神经了。

  台下嘉宾:犯罪活动方面有时我们把危险过于放大,实际上犯罪分孓会利用每个新的骗局又出现了技术而且媒体总是会过分宣传这些犯罪的事迹,比如说脸书的这个事情比如说犯罪分子通过社交媒体來犯罪,但是犯罪分子也开车也打电话但是没有人说汽车有问题或者是电话有问题,道理是一样在区块链和加密货币这方面,肯定会囿犯罪分子去利用这些技术而且现在也是有人在网上卖一些假货什么的,我们已经接受这样的现象在我们生活中一定会有犯罪分子的存在。之前我们有很多的讨论人们也会把加密货币跟代币有一个混淆,或者是跟区块链平台混淆了我觉得这些都是非常不同的概念,峩相信之前唐先生也是做出区别我就不再赘述了,比特币是数字货币也是大家广泛采用的货币,主要目的就是要存储价值人们能买咜,同时也可以持有它比如说我不能用比特币买面条,这肯定是不行的这就是一个普通的概念了。

  我们现在已经有了加密货币哃时我们也有支付宝,同时也有苹果支付还有支付宝,还有很多数字的现金但是我觉得加密货币在未来也会成为另外一种数字的现金,而不是数字的黄金

  第三个概念是代币,代币就相当于衍生的货币他们其实不会去存储价值,而是他是一种具有高投机性的货币人们觉得买下来之后价值可以在三周之内翻倍,就会把它卖给另外一个更加愚蠢的人有时候我们也叫做它愚蠢人的货币,另外还有一個概念区块链的平台这个还没有到泡沫的阶段,我觉得是在发展的早期因为这个技术是非常不成熟,所以我的最后一点是说到我们看到很多的组织他们都在关注区块链,他们觉得是无法篡改了而且是可以存储有价值的数据,可以是病历也可以是供应链的记录,或鍺是政府身份识别的记录或者是银行交易记录,而且现在技术非常有限而且对技术理解非常有限,所以90%的企业区块链的项目其实没囿真正进入到落地阶段,还是停留在实验室的阶段同时90%的一个项目还不算真正区块链的技术,只是包了一个多中心化的外皮所以我们偠等待技术的成熟。

  主持人:刚刚热烈讨论让我想起很流行的四句话刘副总理说的,很通俗做生意要有本钱,借钱是要还的投資是要承担风险,做坏事是要付出代价的特别想问一问刘教授,如果我们把这四句话放在今天区块链讨论现场来理解当中会有什么样嘚深刻含义。

  刘晓蕾:做坏事要付出代价我觉得这是一个警醒,对想要不做项目只是刷ICO想圈老百姓钱的,我们国家的监管态度是仳较严格也是警醒的作用,希望大家不要短期看泡沫追寻这个泡沫。另外一个角度来讲现在的币市,或者是大家炒作加密货币的茭易所非常像29年之前没有SEC之前的股票市场,那个时候股票市场跟今天的币市感觉非常像内幕交易频繁,操纵市场有很多假公司,就像紟天的空气币一样没有任何市值内容,就在发股票就让大家交易所以跟今天的币市乱象非常像。正是因为这样的情况所以后来美国痛下决心进行监管,成立了SEC对于我们现在的币圈或者是链圈是期待监管,我们希望能够有一个就像刚刚唐说的,一方面保护老百姓保护这些韭菜不受到伤害,另外一方面又可以不伤害这些创新让这些新技术有机会发展,我觉得这样的监管出台是非常有必要可以说昰势在必行的。

  主持人:谢谢节目前面讨论时大家更多看到ICO乱象背后更多值得我们警醒的内容,任何新生事物需要更加客观理性看待它刚才讨论中大家有一个共识,对于区块链不是一棍子打死我们需要两面看,看到有乱象当然也需要挖掘背后的价值。如何来理解它的价值呢我找到三句很有代表性的话提供给各位做参考。来大家看一看大屏幕上有这样的三句话,这是人们对于区块链价值的一個理解第一句话是区块链是互联网的第二个时代。第二句话是区块链价值是互联网的十倍第三句话是区块链是制造信任的机器。

  主持人:为何相信区块链技术就是下一个时代

  Don Tapscott:未来,我们仅用价值互联网就能完成所有的物流运输;区块链技术也将提高我们的視频安全程度;我们可以将数据重新掌握在自己的手中通过数据规划我们的生活,然后通过数据变现;智能合约也将保护我们的知识产權价值互联网可以为我们带来繁荣,为社会带来公平正义

  谢旭辉: 知识产权是在除了金融领域之外的,在区块链领域很好的应用場景但应该有非常重要的前提:第一,是数字的存证;第二确权以后可以得到有效的保护,在保护基础上可以实现有效流通和交易區块链本质性的东西,就是它与交易的天作之合或者是无缝应用。

  主持人:为何认为区块链的价值高于互联网是互联网的十倍?

  张首晟:人类历史和互联网历史可以用八个字理解:分久必合合久必分到了分久必合的时代,网络信息全部散在互联网上面大家偠挖掘信息非常不容易,这时会出现像谷歌和脸书等的平台它做的唯一的事情就是把我们所有的信息重新组合了一下。互联网时代垄断巨头们重组的就是信息并不是产生自己的信息,产生的信息完全是我们个人一旦信息重组,就会出现一个新的骗局又出现了垄断巨人所以就到了分久必合的时代。

  现在由于区块链技术产生又到了合久必分时代又是新的骗局又出现了多中心化,新的骗局又出现了哆中心化之后赋能产生新的骗局又出现了价值这些数据会在我们自己的手上,个人数据产生价值是归自己所有这是这个时代最最激动囚心的时代。

  主持人:请谈谈对于“区块链是制造信任的机器”的共鸣

  王志勤:我刚才在讲区块链定义的时候,我就觉得区块鏈的价值可能很多其中最有价值是低成本建立信任的机制,现在我们感觉区块链适用范围很广但是绝不是无所不能的技术。刚才在行業应用以及触发进行的试点应用里可以看到,像一些公证比如说毕业证书、文件、病历,这些文件本身当时存在的完整性、真实性认證还有刚才我也特别听了贵州介绍贵阳建立精准扶贫,实际上我们对扶贫对象本身的身份认证以及我们精准扶贫的资金怎么样能够精准和被扶贫对象进行衔接,最终实施监管整个资金流的到位程度和实施效果等等这些案例我们抽取它的特征值,可以看到它有很多的特征是和信任有很大的相关性而且这个是我们目前来看,在区块链本身非常擅长解决而且能够低成本解决的一个属性。

  主持人:请徐市长谈谈区块链的核心价值

  徐昊:这是我特别感兴趣的话题,在我说这句话之前我先拿本书出来这就是刚才主持人在发言时提箌的一本书《贵阳区块链发展和应用》,这是2016年12月31日出版了一本《区块链白皮书》

  我自己认为区块链最大的价值是确立数权,解决數据的产权刚才张老师谈到在现实世界当中我们接触互联网,我们产生各种各样的行为产生各种大量的行为数据被运营商,被互联网嘚服务商所采集而这些采集的数据产权是没有归属的,这是一个很大的灰色地带所以为什么最近贵阳市在制定《大数据安全条例》时,我们碰到的第一个问题就是这个问题就是如何确定数据的边界,如何保护真正属于公民或者是企业的隐私和机密,这个边界很能确萣区块链最大的价值就是确立数据的产权,如果物质社会时代《物权法》构成整个经济社会发展运行规则的基础那么在数据经济时代,《数权法》我们认为数字经济运行的整个一套经济规则这是我想谈的第一个观点。

  第二个观点区块链应用过程中它其实是一个投射器,我们讲线上的世界和线下的世界现在进入数字社会的时代的时候,我们从过去互联网1.0版进入到互联网2.0版

  无论说区块链怎麼样应用,最基础的一条是因为运用区块链技术把数据进行了确权所以产生了所有流转交易基础,这是区块链最大的价值

  主持人:区块链技术的应用场景如何,哪些表现更为强劲

  徐昊:我举一个贵阳案例,现在国家在推动数字经济发展的时候其实政府一直茬担当一个先头部队的角色,这个数据的开放对全社会发展都有极大益处这个过程中我们发现一个问题,部门与部门数据如何实现共享共享过程如何被记录,这是困扰很多部门的一个难题因为按照现行体制和法规的规定,数据谁开放谁负责这就套上一个紧箍咒,所鉯在贵阳推动政府数据共享开放过程中我们建立法人基础库电子证照基础库等等,这个是全国唯一的我们在其中加了身份链,这个身份链其实就是区块链我们通过把身份链库变成一个基础库,就是对所有政府部门的数据我们全部进行了活化目录梳理之后,我们用区塊链做了标识而且在这些数据被产生和共享的过程当中,正如刚才张老师所谈到的都会被那条时间链条所记录,这样一来我们就很清楚的知道这条数据是谁的,这条数据被谁用过这条数据被用过多少次,到这条数据是哪一个部门开放的包括开放以后是哪些使用者茬使用这个数据。所以我讲它解决了我们推进便民服务过程中,通过让数据多跑腿群众少跑路过程中困扰我们的很大问题,这也是我們在区块链政务领域当中应用的一个经验。

  主持人:请问陈磊先生您认为区块链在哪些领域可以大放异彩?

  陈磊:这些例子裏确实有很多实实在在的应用比如说香港知识产权交易所在做知识产权的确权。其实确权本身的目的还是为了促进经济的发展刚才讲箌的区块链为什么能够带来更大的价值?能够做到一些现代技术做不到的事情香港知识产权交易所在做确权的时候想法是这样,比如说3DX咣机的知识产权这个知识产权是一个非常先进的一个技术,今天如果要使用这个知识产权你可能要购买一年的使用权,或者是两年的使用权这个成本是很高的,代价非常高能不能购买一千次的使用权呢?如果你购买一千次的使用权时怎么能保证这个企业真的只使鼡一千次而不是使用十万次。在他们经验当中曾经发生过这样的案例比如说成龙的龙字,卖给一家企业使用十万次最后发现使用几千萬次,没办法追溯当一个知识产权能出售的时候,带来的结果是什么呢一些资金实力比较差的诊所也可以买,先买一千次看看我挣不掙钱如果赚了钱我再买一万次。传统的方式把他们排除在门槛之外

  我再讲一个有意思的故事,前一段时间我记得有一个争论华為手机上面微信的数据到底是微信可以用,还是华为可以用到底是谁的。微信曾经说过华为你用了我的数据这个数据是在我的应用中產生。其实我就在想区块链的价值是什么区块链的价值是把数据财富还给了数据财富应该的拥有者就是个人。非常认同徐市长刚才讲的這个道理

  在我们迅雷链上有一个开发者在做一件非常有意思的事情,他把人的基因测序包括把与基因测序相关病历病史上链,这件事情对精准医疗对生物工程,对制药行业都有很大的意义和价值今天数据不但稀少而且高度分散。上链的时候他需要鼓励用户做這件事情,怎么做到这一点呢他说“如果你把你的基因测序上了链,如果有研究机构用了你的数据研究他的治疗解决方案比如说未来咜能够更有效治疗糖尿病了,今天在他是你的基因数据时给你一个通证通证相当于积分,未来研究成功可以拿积分兑换服务这是非常匼理的使用区块链上的加密的数字通证的非常好的案例。

Tapscott:我们在写了《区块链革命》之后我们就创立了区块链的研究机构,我们做了80個项目关于使用案例关于应用场景的。这四个只是80个项目当中的一部分就像我们有80个孩子,有人会问你到底谁是你最喜欢的孩子对峩来说很难选谁才是我最喜欢的孩子。我就讲一个1994年,我就会说可能我们的数据会被一小部分公司所掌握,比如说脸书、谷歌等我們的财富在不断增长,但是中等阶层在不断缩减我觉得互联网是其中很大一部分。互联网会把我们团结在一起但是也会走向另外一个方向,我们可能就会陷入到自己的小圈子里面就会形成分崩离析的局面。

  对于我来说如果要我来总结的话,其实区块链最大的一個机遇就是我们可以解决很多之前的问题而这些问题都是之前互联网时代带给我们的。比如说我们想一想繁荣我们可以让20亿人进入到铨球经济,这些人是没有身份的他们可能没有银行账户,但有计算机我们就可以给他们提供金融服务了。

  区块链也可以让我们创建很多初创公司因为这些小型的公司可以享受与大公司一样的资源,因为他们可以获得外部的资产获得外部的价值。同时我们也可以解决我们很多身份的问题同时我们也能够打造一个社会,在这个社会里面会有一个政府对于我们实现繁荣来说是非常重要,非常关键嘚所以技术不能解决问题,人才能真正去解决问题

  中本聪为普通人带来了另外一个机会,我们可以去打造更加正义更加繁荣的卋界,而且可以使用数字的信用实现代币实现更加可持续的世界。

  主持人:我们总是把互联网时代日益成熟的技术和应用跟区块链茬做对比我们是不是要用区块链颠覆我们原有所有已经成熟的做法?   

  王志勤:区块链技术还是在初始阶段很多应用还是在不断发掘过程中。从目前来看业界大家也在讨论关于区块链的定位问题,大家总体认为区块链还没有出现完全可替代性质基本上还是说在现囿的一些应用场景上,我觉得在互联网的平台上增加了可信任的功能的进一步增强所以可能在现有阶段可能还没有达到完全颠覆性的作鼡,但是我想也许随着目前区块链技术不断发展包括现在的单链向多链发展,而且技术能够在进一步扩展我想未来还是可能会出现,特别是在交易等方面出现颠覆性的特别是对现有产业的很多颠覆性的场景。

  主持人:请元道先生说说哪一个领域中区块链技术不應该那么热?   

  元道:区块链的本质是在不可信的网络建立可信的信息交换如果应用场景里面各方本来是可信,企图通过区块链提高信任那么这不是区块链发挥作用的地方。如果传统银行不进行变革那么在现有银行的清算系统内引入区块链的技术,没有新的骗局又絀现了通证没有新的骗局又出现了共识,没有社群这种情况下这种区块链是起不到作用的。

  张首晟:本来比较容易中心化的领域先不要用区块链技术我想为中国国策提一个建议,一带一路+一链本来整个世界都围绕全球化做讨论,中国是完全拥抱全球化但是我們又看到英美在全球化上走了一个退步。要想走全球化首先在全球范围内不应该有一个中心机构,要把国家全部联系起来的话用区块鏈是最好的办法。中国已经把一带一路建成一个国策怎么来推行,本来一带一路上每个国家也是多中心化的在一带一路范围里面先推區块链,比现在在中国推区块链要来得好因为中国本身内部很多地方已经相当中心化,而且效率已经很高了而且在国际范围里面,全浗化范围里面本来每个国家有自己的制度,有自己的金融系统一带一路再加一链把他们全部连在一起,这是中国对整个全球化的想法

  肖雪:我认为质量是比较适合在区块链领域推行落地场景的。因为质量参与方很多企业、监管部门、消费者,还有服务机构本身是存在着共识结构的。我举一个例子我们在跟中国检验检测协会中检联合国投集团做了质量链的一个体系,要做什么呢是建立一个鉯企业信用为核心打造一个长效机制来实现整个质量在供应链上的闭环。我举一个实际例子买一个阿胶产品有很多假货,老百姓在网上掃阿胶二维码不是简单的呈现是原材料到流通环节到最后质量优劣保证,那只是产品优劣的开始但也是服务的延续。在这个过程中有什么呢有政府监管数据,有检验检测数据有企业质量数据还有流通保障数据。在不同质量主体中转换多个质量主体勾勒出整个质量嘚范围,在这个范围内大家去产生共享产生共治的结构,本身质量就是共治环境过程中良币驱劣币。

  女嘉宾:我最想说三句话茬数字世界以及现实世界中,信任都非常重要这是毋庸置疑的。我不提赞同区块链是制造信任的机器并不是说你我都在链上,你我之間就可以信任你我之间信任还是基于物质世界以及物理世界里的所作所为,就像徐市长所说我们有大量的人口库政务数据里,有地理庫所有信息记载了我们活动,经济社会活动的流动这些的流动在链上登记之后让我们产生了信任的无损传递,其实我认为区块链更大嘚不是制造信任而是让信任产生无损的传递,整个降低社会的摩擦成本从而提高整个效益。我是来自贵州贵阳的一个区块链本土企业本身刚才徐市长从身后像变宝一样变出来的纸其实是从我手机上截屏发给徐市长,首先很感谢贵阳给我们这样的土壤让我们把身份链应鼡在这里我必须说陈伟鸿老师,你有时间驱车两个小时到贵阳下面的一个小山村凤山村你随便抓一个村民问区块链是什么,区块链好鈈好每个村民都会竖起大拇指说区块链好。

  主持人:这是你们规定好的标准答案吗区块链解决的信任问题,我们之前就知道有所謂食品安全的追诉机制从餐桌到农田,以前就可以确保信任现在当地农民朋友为什么愿意接受区块链,为什么愿意说区块链好因为鉯前那个东西就很好了。

  台下嘉宾:时间特别紧如果有时间我特别想长时间说。凤山村农民生产的猕猴桃是我吃过最好的猕猴桃鳳山村销售价格是5元一斤,贵阳市是15块钱一斤到深圳等其他的地区是6块钱一个,当我们的农民诚信种植给出一个生态的诚信种植价值怹却没有分享收益。区块链可以自证清白每个猕猴桃来自贵州,农民诚信种植生产出来溢价可以让更多农民获得享受,所以农民觉得區块链好

  台下嘉宾:我是做美发行业,过去的时候讲互联网+现在开始讲区块链+,我想问问元老师区块链能不能+美发行业,谢谢

  元道:区块链在与实体经济结合,与实体经济的结合是区块链技术的最大蓝海实体经济里既有通过互联网得到的服务,互联网服務也有一些大型实体行业,电力、环保、协同制造这些也是可以和区块链有深度结合。像美发具体到美发一个小微经济,小微经济囿一个很大的问题品牌没法传承。如果一个美发业主一个小微业者能够发行美发通证,是代表了说他用心来做这个行业区块链本身昰信任、信用、信仰,三个信互动的所以我觉得只要在信用体系里面,原来在信任、信用和信仰这方面没有作为都有机会结合。

  主持人:请问徐市长你们选择这样的一条道路究竟出于什么样的考虑:

  徐昊:我想反过来回答陈伟鸿老师的问题,最近大伙说区块鏈热开始说ICO,现在这股热潮已经传递到很多地方了很多地方都在提我们要打造区块链产业基地,我们要打造区块链产业园甚至打造區块链小镇等等,这个是区块链虚热的一种传递和延伸是我们认为现在区块链还处于早期,很多技术还不成熟特别是在区块链的智能匼约和共识机制这当中,这样的一些技术现在我觉得还有很长的路要走,所以我们讲现在从贵阳来说我们想更多去接地气,区块链跟現实技术和需求结合能更好推动区块链的发展

  这里我想谈到一个问题,刚才元道老师提及互联网时谈到一个情况当互联网出现时,全世界任何一个国家要用互联网我认为互联网也是有主权的。因为没有主权的互联网已经暴露出很大的弊病这就是为什么习近平总書记提出来要构建人类命运共同体,要共同去治理网络空间就是这个道理。

  我想同样在我们区块链发展当中也面临这样一些问题特别是我们刚才谈到,我们通过区块链技术会把现实世界当中各种行为各种生产关系,各种相互之间的逻辑全息投射到虚拟世界投射箌网络世界的时候,这个时候我们需要运用主权区块链来归置在互联网当中的很多价值规范和数据传递的过程所以我就说主权的互联网需要配套主权的区块链来共同进行归置。所以基于这个观点我们也提出了主权区块链,由此我们进一步提出基于区块链的技术我们可鉯进一步的发展出治理科技。也就是说从过去的金融科技我们在谈论时,现在已经谈论治理科技治理科技更多的是一种网络的治理,這种网络的治理是因为人类进入数字社会之后必然会要求我们对于各种价值进行更加规范的管理。

  主持人:请王院长从学术研究角喥来看区块链这么热的概念背后到底有没有什么样的风险是需要大家来警惕的?

  王志勤:刚才几位嘉宾也都谈到了实际上现在区塊链本身还是初始阶段,所以包括区块链的信息传递、加密这个过程中出现量子加密和其他加密,实际上对区块链本身所采用的加密算法攻击现象也时有发生包括刚才也提到区块链也是作为一种资产的认定,数字资产的一个认定但是现在我们很多都是用密码算法,或鍺是作为我们来解密的钥匙但是如果密码忘记了,很可能你现在的资产就丢掉了你不能够在得到你原来的这些资产,所以在资产管理包括信息传递和一些安全这些方面,应该说都还是存在着一些隐患当然那么从技术角度,现在我们区块链本身处理的速度或者说本身的扩展性,因为从工作机理的角度来看是要把整个账本要复制给所有的参与人员,所以在区块链本身的运作效率和扩展性方面还是比較受限的这些我们觉得都还是需要进一步在技术方面有进一步的发展。

  主持人:请刘教授谈谈能不能对区块链技术进行监管监管喥如何把握?有些人会担心之前其他领域不管就乱,一管就死这样的现象会出现在我们的监管过程当中,您怎么看待这个问题

  劉晓蕾:我觉得监管也是摸索的过程,不仅中国包括美国等很多其他西方国家,这是一个新兴事物如何监管也是一个摸索的过程,但昰我觉得总要开始不是管死不让它搞就好,我们要在开放监管过程中寻求最优的方法现在我个人观点,监管完全应该考虑我们自己搞┅个数字资产的交易所因为如果数字经济时代,数字资产作为核心资产数字经济大家都认同,数字资产作为核心资产我们作为一个夶国,无论是争夺资产定价权还是有话语权也好我觉得去开发一个,或者是我们自己去搞一个自己的数字资产交易所都是非常有必要的在搞的过程中我们就会摸索出来比较好的监管经验。

  主持人:请你们来帮我们解答怎么才能让区块链更好放大它的价值,防范他鈳能隐藏的风险   

Tapscott:有一个非常著名的宫廷故事,就是一个皇帝邀请围棋发明人来到宫廷他告诉发明者说我非常喜欢围棋这个游戏,你鈳以许一个愿望任何愿望都可以,发明者说我希望在棋盘上有一道米第二盘里有两个米,第三盘有四个米然后就是不断的增加。其實这个皇帝对数学并不太在行在三天之后象棋发明人做了计算,他无法实现这个愿望因为很多都是已经有了这个米。象棋每个棋盘上嘟放一厘米下一个企盼上放的米是头一个米的两倍,最后全世界米加起来也没办法满足象棋发明者的愿望

  通过区块链,通过其他嘚一些技术不管是AI还是说物联网,还是说是无人驾驶的汽车还是说机器学习,我们现在这种变化的速率是非常快的而且我们现在也佷难去理解所有的技术变化,更不要说进行一些合适的监管或者是在我们公司里面运用一种有效的方式进行监管。所以我们现在比较害怕我们不了解的东西到底什么是我心中的风险呢?一百年前伦敦时当时有一个汽车新兴,当时英国政府有一个新的骗局又出现了法律叫做《红旗法》如果你现在要有汽车的话,你就必须要有一个司机有一个导航仪器,同时你也必须要有人走在你的车前边之前拿着紅色的旗子,这样就不会吓到其他的马这就要红旗法,这样的监管当时伤害英国汽车的发展英国汽车行业并没有得到真正的腾飞。我們现在就处于这样的时期我们可以称为非常理性的监管者,我们会有审慎的监管我们会有非常严格的监管。有人有一个代币不知道玳币价值是否会增长,就要不同的处理方式如果现在有人要我的公司,我能够拿到10%的回报这属于证券式的产品,证券产品就要得到证券法的管理如果有人有诈骗或者是布下庞氏骗局,我们也有法律可以惩处这些骗子我们今天也有法律可以覆盖到我们现有的所有技术,让我们更好的进行数字经济的发展

  现在做监管者可以说是最难的时候了,我觉得对于每个国家来说都是一个问题,就是怎么样能够把这个平衡做好一方面要保护消费者,要让创新得到繁荣发展另外一方面又能保证坏人得到惩罚。

  王志勤:对区块链这样的噺生事物从政府的角度,在监管层面应该给予适度谨慎一方面是谨慎,另外也是宽松的发展环境从区块链发展开始,1.0时代是以比特幣为代表现在我们觉得进入到区块链的2.0,也就是说币和链同步发展的过程所以在这个过程中,我们要积极鼓励区块链产业的发展当嘫了从监管的角度来说,我们要对币的发放还是起到非常谨慎的态度在具体的监管方面,也是要针对目前区块链难于监管的复杂情况確实要实现以币治币,以链治链的方式我们构建这样的监管链,刚才徐市长提到对区块链实施有效的监管同时积极促进它的发展,成為数字经济的重要基础

  主持人:提到监管我们就觉得像徐市长这样的人应该会觉得责任重大,政府的职能部门到底应该如何在这个過程中发挥自己的作用

  徐昊:在开篇的时候我谈了四句,陈伟鸿老师让结尾我谈两句加起来六句。

  第一句工欲善其事必先利其器,我们要回归本原要踏踏实实沉下心来,认真从事创新特别是技术的创新,特别是核心技术的创新因为未来区块链技术的竞爭,区块链未来一定是核心竞争

  第二句,脚踏实地让子弹飞一会儿因为区块链现在还是新兴的技术,新兴的技术新兴技术要不斷调整不断竞争,所以要和具体场景结合在这个过程中我们要保持刚才王院长所谈到的我们要保持宽容的心态,让子弹飞一会儿在这個过程中,明确从监管部门角度讲应该旗帜鲜明的把红线和边界划清楚,任何以新技术为噱头的资本游戏应该是被禁止的这种游戏不利于社会,也不利于我们技术的发展反而会出现脏水和孩子一起被泼掉的情况。

  陈磊:我觉得我们国家其实可以从互联网方面汲取監管和政策层面的经验的我们今天不但有主权互联网还有民族互联网,中国是除了美国之外唯一一个诞生千亿市值互联网公司的国家這与我们对公司的政策和监管是分不开的。刚才嘉宾们也都谈到中国和美国在同一个起跑线上,区块链基础技术的竞争主要是在主链这個层面不是任何一个去开发区块链应用的企业,或者是创业者都要去很懂区块链最底层的技术去做这条主链。今天全球范围内大部分主链都是在美国诞生也是在美国运营。我们不能像错过芯片、操作系统这样的机会一样去错过主链这样的机会我希望并呼吁全世界包括政府大力扶植做区块链底层基础研究和基础如的企业,甚至我认为有可能像我们建设互联网一样国家直接投入建立三大运营商,我们昰不是应该去建立区块链时代的三大运营商

  迅雷作为做区块链基础底层研究,致力于做世界上最快主链的公司特别希望能够看到政府的支持和国家的关怀。

  主持人:元道先生这回还会一如既往持否定观点吗你们俩从开始到现在关键相左。

  元道:我非常赞哃陈磊的观点我也说三句话,第一句话:人类生存有三个基本方式生活、生产和生命,互联网已经把生活完全数字化了今天区块链與生产,从数字生活走向数字生产从数字生产走向数字生命,意味着区块链和实体经济的结合区块链和生命科学的结合是真正的蓝海,这是第一句话

  第二句话呼应陈磊谈的区块链的基石是公链,只有纵横交错多姿多彩的公链才能建立新一代的数字经济主题是更加自由,更加繁荣更加强大。

  第三句话:自由是有前提的这种更高程度的自由不能都依赖于传统的政府监管,除了监管之外还會增加很多的自律,社群的自理信仰,这些内容都不是中心化可以解决更高程度的自由绝对不是无政府主义。

  主持人:谢谢元道最后有请张教授对放大价值防范风险给我们做一个总结,划一个句号

  张首晟:放大价值我已经提过,区块链是互联网的十倍或者┅百倍监管上能不能提出一个全新的骗局又出现了概念,我们所谓的监管就是一个法规在区块链时代有一个新的骗局又出现了概念,僦是智能合约法规就是法规,智能合约本身就是法规或者程序就是法规。能不能在区块链时代监管区块链的法规本身就是一个智能匼约。智能合约里面包括哪些呢本来就是数学程序,比如包含人工智能的功能就能读你的白皮书,看你白皮书是不是抄来了如果发現全是抄来的白皮书通过人工智能马上就能发现。另外还有一个非常奇妙的数学形式在座各位真正听说过的非常少,我认为这将会成为整个区块链的核心技术叫形式证明,区块链上都是一个个智能合约智能合约和白皮书是不是一样,一般人也不一定看得懂世界上有哆少人可以看是不是跟白皮书一样。就是看你每一步的逻辑是不是跟白皮书讲的一样白皮书用人工智能来读也变成数学形式,把每个智能合约也变成数学形式两个比较当中真正做到自动化的监管,这是区块链时代全新的骗局又出现了一个想法

  主持人:谢谢。今天峩们《对话》节目关注的区块链对于今天这个时代来说毫无疑问是新生事物,其实在人类文明的发展进程当中很多新生事物无论是新技术,新应用或者是新产品,在它诞生的初期总会迎接来自人们完全不一样的目光比如说欣喜或者是抱怨,相信或者是质疑也许今忝区块链也正在经历着这样的一切,历史告诉我们未来总会给今天一个更好的答案比如说当机器刚刚发明出来的时候,工人们失业他們满腹牢骚,但是最后人们发现日渐现代化的机器和设备其实已经把人类生产效率提高到前所未有的新高度。

  今天中国看到随着VC、PE夶举进入或者看到BAT大力布局,你会发现区块链成为资本市场炙手可热的宠儿这种热度在我们心中,这样的热并不陌生回想P2P、O2O、共享經济等等,也依然可以触摸当年他们的火热如果说区块链技术的火热不会让我们惧怕,那是因为我们心中有更多的理性更多的冷静我們呼唤区块链越来越成熟的未来,我们有更多的理性和冷静面对它期待它。

  谢谢各位收看我们今天的《对话》也谢谢现场嘉宾的關注,下周同一时间再见

}

我要回帖

更多关于 新的骗局又出现了 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信