能力说明:
了解变量作用域、Java类的结构,能够创建带main方法可执行的java应用,从命令行运行java程序;能够使用Java基本数据类型、运算符和控制结构、数组、循环结构书写和运行简单的Java程序。
能力说明:
基本的计算机知识与操作能力,具备Web基础知识,掌握Web的常见标准、常用浏览器的不同特性,掌握HTML与CSS的入门知识,可进行静态网页的制作与发布。
能力说明:
掌握计算机基础知识,初步了解Linux系统特性、安装步骤以及基本命令和操作;具备计算机基础网络知识与数据通信基础知识。
公众号:编程架构之美 撸起袖子加油干
自动化办公能大量提高我们的工作效率,而且利用自动化办公能够有效避免枯燥无味的机械操作,把手腾出来做其他更有意义的事.现在加上Python能够提供大量开源的自动化办公的库,能够快速实现很多需要开通vip才能使用的功能.比如文档之间格式的转换.比如,我要制作邀请函.如果office掌握不好.一张一张制作也是一件很痛苦的事,利用Python就能够实现批量生成邀请函.除了自动化办公,python还能够实现很多有趣的功能,感兴趣的可以自行深入了解,接下来本文手把手带你实现文档转换功能以及封装到pyqt5,并打包成exe可执行文件
前几天唠了一些Python的基础知识,确实无聊,但是无聊归无聊确实有用.今天来搞点有趣的事情--利用计算机视觉实现人脸检测和识别. 计算机视觉是人工智能的一个重要分支.计算机视觉中的人脸识别现在是我们生活最常出现的功能,比如刷脸打卡,这是每个打工人上班必备.人脸识别门禁,身份验证等等.看过钢铁侠的童鞋是否还记得,钢铁侠初次飞行时.他的人工智能系统头盔中显示了道路上的车辆信息.包括车辆的品牌和车中的人物,当时我们把它当成科幻来看,其实在现实中我们利用计算机视觉技术完全可以做到,而且我们目前已在运用,比如停车场系统车辆自动识别闸机.人流量检测,还有我们的无人驾驶汽车,都在使用计算机视觉技术中的人
我们在编写程序的时候或多或少都出现过异常,也许是不小心,也可能是逻辑错误亦或是程序以外的问题,比如环境的问题,不管是什么原因,异常是我们不希望看到的.接下来,我们就什么是异常,遇到异常如何解决展开唠唠 1.什么是异常 异常会让我们的程序跳出正常的运行,异常给我们带来的损失,不容小觑.我们经常听到的是机器的异常.比如工厂流水线上的机器设备,某个零件出问题了,机器不能正常运行或者生产流程错乱;快递分拣设备传送带出现断裂,或者电机出现问题不能正常分拣;还有我们现在最火的自动驾驶汽车,如果汽车在路上行驶时雷达失灵.程序错乱.摄像头设备无法正常检测识别,等等.这些都是异常.如果不能快速排除异常,不但
对于文件大家应该都不陌生,但是在接触计算机之前,通常将文件定义为内容的载体.如公文书信或者有关政策理论方面的文章.计算机文件也一样,而且在计算机中文件的类型更加丰富多样,用途广泛.有的是用来支撑程序运行的,有的只是单纯用于数据存储,文件使用文件扩展名区分文件类型,比如我们常用图片格式,有.jpg/.png/.gif,记事本保存的文字.txt,办公文档类型.docx/.pptx/.xlsx等.它是存储在计算机存储区的信息集合. 文件是计算机中具有特定标识的存储区,他由操作系统管理,用于计算机操作系统的使用过程中的各项操作的支持,在计算机的系统使用中,文件的操作是贯穿始终的,小到文本存储,大到各
我们都知道python中使用lambda函数能够实现一句话程序,一句话能实现复杂功能,是一件多么炫酷的事情.但也是有利有弊的,至少一句话代码虽然简洁,但可读性不好,毕竟现实中都是多人合作编程,结对编程也是很多人提倡的,所以代码不只是要让机器看懂,同时也要让人读明白. 说到这里也许很多初学者还不知道什么是lambda函数,在Python中,lambda函数就是我们使用lambda关键字来声明的一个匿名函数,这就是为什么我们将它们称为“lambda函数”。匿名函数是指没有声明函数名称的函数。尽管它们在语法上看起来不同,lambda函数的行为方式与使用def关键字声明的一般函数相同。lambda和
学习了列表和字典之后,再学习元组感觉它没有使用的必要.而且列表和字典已经够用,为什么有了列表还需要元组呢?这个Python特有的数据类型有何作用呢? 元组是由简单的对象构成的,他是和列表非常相似的数据类型,但元组是不可变的,他不支持任何方法的调用,也就是说,我们不能编辑和改变元组,其实正是因为元组的特有性质:不可变性;这个特性提供了一种完整性,他可以保证元组所在的处不会被程序修改,正是列表所不具备的,而且这使得元组还可以作为字典的键值,总的来说,元组可以处理那些固定关系的问题
在上一篇文章《Python3 详细的数组基础操作 - 入门必备 [列表的操作]》中讲解了Python的列表操作,这次接着唠唠Python数组中的字典,字典是Python的另一种可变容器模型,且可存储任意类型对象。他也是Python项目开发中最常用的数据类型之一,他的格式有点像json,但又不是json,不过在实际的开发中字典和json的相互转换是日常操作,比如我们平时调用第三接口,接口一般返回的是json格式的数据,将接口返回的json数据转化为字典,更方便我们在Python中使用。 字典就像他们的名字一样,我们知道关键字或者说索引就可以在字典里找到与关键字匹配的更多详细信息。字典在Pyth
数组几乎是所有编程语言的都拥有的数据类型,它是用于存储数据的集合,其实数组就是一个容器,一片连续的存储单元。在其他编程语言中叫做数组,但是Python没有数组类型,而与之对应的是列表,字典,元组.在java或者C/C++等静态类型语言中,数组是用于存储同一类型数据的集合.但是在Python的底层做了一定的封装,一个列表中和字典中可以同时存储多种类型的数据,有点类似javascript和php等动态类型的数组用法,比如:[1, '2', (1, 4)].因此在开发社区中很多人容易把静态类型和动态类型与强类型和弱类型混淆.容易把两种不同的概念混为一谈;比如Python不需要在定义时指定数据类型,很
数据的可视化是我们数据分析最重要的环节,图表可以化复杂为简洁,化抽象为具体,使读者或听众更容易理解.数据可视化为图表,能让数据更加直观,更加触手可及,让企业能够更迅速,更准确地做出商业决策.让企业能够更好地在所处的领域有所成就.甚至立于不败之地.之前学过pyecharts的绘图库,它的强大让我很震撼,但是再好的绘图库只是前端的一种表现形式,数据才是数据分析的最重要对象,之前《Python 绘制精美可视化数据分析图表 (二)-pyecharts》的数据都是我们手动创建的数据,这显然不符合我们日常开发需求,做数据分析,往往会有大量数据需要整理,数据量越大,得出的结论会更加准确.所以我们的数据会来自
画图表就是为了把复杂的事情表达清楚,画图表还可以弥补单用文字表达的缺欠,对有些事物解说更直接、更具体。就像我们平时会议所用的 PPT,能够更直观呈现讲述者所想表达的意思,且通俗易懂。总的来说,使用图表可以化复杂为简洁,化抽象为具体,使读者或听众更容易理解。 图表能跟直观表达和揭示数据的规律,人对图像更加敏感,对图文并茂的事物更容易接受,阅读更加简单高效,而且图表更显专业性,更具有说服力,更有利于沟通。 在上一篇文章《Python 绘制精美可视化数据分析图表 (一)-Matplotlib》中我们已经讲述过数据分析和绘制数据分析图表的好处,这里就不再赘述。直奔主题:pyecharts 是什么?
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程.这一过程也是质量管理体系的支持过程.在实用中,数据分析可帮助人们作出判断,以便采取适当行动 在DT时代,数据分析是企业做出重要决策的基础,巧妇难为无米之炊,数据就是米,是数据分析基础中的基础,但是没有经过整理的数据,或许杂乱无章,没有任何意义,通过数据分析相关手段处理之后,让数据变得有意义,特别是整理后的数据经过可视化,更加直观,更容易,快速地找到问题所在,更有利于做出正确的决策,不至于在市场经营中处于被动局面.所以数据可视化也是我们数据分析中最重要的工具,也是最重要的一环
前两篇文章写了关于Python GUI库Tkinter和pyqt5的使用体验,但是Python GUI怎么能少得了wxpython呢?不能偏心,必须安排全了,一家人必须整整齐齐(哈哈哈~) Python GUI作为桌面软件设计重要部分,是开发桌软中不可或缺,也是不可避免的一环,灵活掌握GUI库的使用,才能让自己不惧任何GUI相关的需求,设计出的界面更加符合需求,更加精美. 给用户的第一印象是界面设计,毕竟大家大多都是外貌协会,简洁且好看的页面,是一个软件或者程序吸引人的最大亮点,所以掌握各种GUI的使用是我们桌面软件开发程序猿的必备技能,就算工作不需要,平时搞个辅助小软件也是不错,总不能要
在很多追求极致的开发者中,大多都会拿 Python 跟其他编程语言比较,比如和java或者 C/C++比较一番,大家通常都会不约而同地从执行的角度对一门语言进行比较.而且这也是最直观的感受,所以 Python 会被普遍认为执行速度不够快.但是我一直觉得,存在即合理,每门编程语言都有它存在的意义,每门语言都有自己擅长的地方,一门编程语言的诞生大多都是作者当时为了解决自己遇到的某一领域难题而创造的,所以每一门语言在某一领域都有自己的优势,而且如今 CPU 的处理速度足够快,基本可以缩小很多领域之间不同语言的执行效率差距.各司其职,合适的语言运用在合适的领域或许能得到意想不到的效果.语言没有好坏之分
WebGL(图形库是一个JavaScript API)在任何连接的WebGL中渲染图形的API,Web3D和Web3D的图形应用程序,可以单独使用一个WebGL通过引入与OpenGL 2.0一致的浏览器来使用WebGL 2.0 WebGL完美地解决了现有的Web交互式三维动画的两个问题: 第一,它通过HTML脚本本身实现Web交互式三维动画的制作,无需任何浏览器插件的支持; 第二,它利用底层的图形硬件加速功能进行的图形渲染,是通过统一的、标准的、跨平台的OpenGL接口实现的。
对于使用Python对视频进行剪辑我们最常用的就是Moviepy,我之前也写过一篇《必杀技 -- 使用 FFmpeg 命令快速精准剪切视频》,这篇文章单纯使用的是FFmpeg,他是通过FFmpeg命令的方式进行视频剪辑,从安装moviepy的截图中可以看到,其实moviepy对视频的剪辑也是使用FFmpeg对视频进行剪辑操作
网站伪静态,主要是为了增加搜索引擎的友好度,方便网站内容被搜索引擎收录而诞生的。类似网站上常用的301重定向、404页面的设置等在SEO方面是必不可少的。 伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。
Linux已经成为我们开发者常用的服务器系统,甚至有大部分的开发人员喜欢把Linux作为日常使用的系统,有些程序员使用Linux开发是为了缩小开发环境和线上生产环境的差异,避免由于开发环境和生产环境差异产生的一些未知问题。 Linux作为一类操作系统问世多年,始终不温不火,给大家的感觉十分神秘。主要是对于日常的使用,人们还是更喜欢使用window或者Mac作为常用的系统平台,可视化,桌面化,操作简单,学习成本低,可以说是有手就行的,鼠标点点就能解决问题。不会像很久很久以前的Dos系统,需要记忆大量的命令,虽然Linux也有桌面的发行版,但是不够普及,没有windows和Mac好用,而且对日常
随机智能手机,平板等智能移动设备的普及。移动端是我们目前接触最多的页面展示终端,不管是对于开发者还是其他普通的使用者都是普遍的存在,而且移动终端的使用比电脑更广泛,更频繁,特别是当微信平台等变成我们日常使用工具之后。所以对于开发者来说,不管任何开发任何界面都需要着重考虑页面对移动设备的兼容以及自适应。才能让用户体验性更好。
由于新的项目需求,需要搭建PHP+swoole的环境,官网上的文档主要是以最新版的环境为主,测试很多次之后没法安装成功,也在一些博客网站上找了很多教程,要不完整,要么版本不对或者版本过老,走过很多弯路才安装好,为了让各位童鞋少走弯路,特此写下自己的安装和配置流程。以供参考! 接下来,进入主题:
作为一个新手,如何把自己的搭建的javaweb网站在本地运行起来呢,这是测试所写程序的必备技能,看完这篇文章看你是否get到方法呢? 查找该问题的童鞋我相信IntelliJ IDEA,Tomcat的下载,JDK等其他的配置都应该完成了,且正准备使用IntelliJ IDEA开发Web项目,那我们直接进入正题了。
CentOS 7中防火墙是一个非常的强大的功能,在CentOS 6.5中,iptables防火墙中已经进行了升级。centos7中默认使用firewall,并且默认没有开启。 所以使用之前需要先开启。 在web开发中,服务器及网站安全是最重要的,因为只有服务器足够安全才能为用户提供流畅的和安全的服务,才能保护好用户信息不泄露,用户才能放心使用你提供的互联网产品。这时候防火墙就是我们保护服务器最重要的,也是最基础的屏障。所以学会使用防火墙是我们必备的日常运维技能。
CentOS7默认数据库是mariadb, 但是 好多用的都是mysql ,但是CentOS7的yum源中默认好像是没有mysql的。 如果第一次使用Linux的童鞋可以类比下Windows的安装,步骤都一样,下载-》解压缩-》安装(可指定路径),只不过Linux是用命令安装,不是鼠标操作,而且Linux是文件系统,一切皆文件,也就是说Linux没有和Windows一样有CDE等盘符的,Linux都是以文件作为路径。最后说一句,要多动手操作
部署方面,zookeeper一般部署奇数个节点方便做简单多数的选举机制。consul部署的时候分server节点和client节点(通过不同的启动参数区分),server节点做leader选举和数据一致性维护,client节点部署在服务机器上,作为服务程序访问consul的接口。
consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server和client。每个数据中心官方建议需要3或5个server节点以保证数据安全,同时保证server-leader的选举能够正确的进行。
不管是线下办公,还是居家办公,摸鱼必不可少(当然不提倡摸鱼),可是摸鱼归摸鱼,工作总得完成,KPI得好看,才能走向人生巅峰。不然月月3.25,年年得吃土,你有多痛苦,老板不清楚,让你加入毕业队伍,你只会大骂人心不古。押韵吧,KPI要好看,活得干的好,干的有效率,平时还想摸摸鱼,那摸鱼神器不得备一套,额。。。不,是高效办公神器必须得攒一套。这不,自动化办公的神器双手奉上,废话不多说,上才艺。 说到办公,每天都少不了要和各种文档打交道,csv,excel,word,ppt,pdf甚至txt文本文件,需要对这些文档做各种操作,有很多还是比较机械化的重复工作,枯燥且无味,花时间勉强能够处理,就是有点废
准备: 安装环境Linux mycat运行时需要java开发环境,所以需要安装JDK 安装之前先检查一下系统有没有自带open-jdk
虽然市场中不断有新的编程语言诞生,但不得不承认PHP在web开发领域仍一直占有很大份额,高效开发是他一直以来最大的一个优点,而且他的学习成本也较低,入门门槛较低,和Python一样是解释性语言,很多人都说他是世界上最好的语言。其实语言并没有好坏之分,只有是否适用,每门语言都有自己的优缺点,毕竟想要获得一样东西,总要放弃点什么,有舍有得,看自己怎么权衡,只要能解决问题就是好的,不管黑猫白猫抓到老鼠就是好猫。自从swoole的加持以及和GO语言的结合,也弥补语言本身的很多不足,慢慢缩小和其他语言之间的差距,不过还是有很长的路要走。--题外话
我们知道,SQL Server中判断一个字段的值是否为数字可以用系统自带的ISNUMERIC()函数来处理,但是MySQL数据库中则没有这个(或者是没有一个直接判断是否是数字)的函数,但MySQL为我们提供了正则表达式的函数,所以我们可以用数字的正则表达式来处理有关判断字段值是否是数字的问题,具体的MySQL语句代码示例如下: SELECT * FROM TABLE_NAME WHERE COLUMN_NAME REGEXP '^[0-9]+$'
根据官网的定义:Mycat是一个可以用于MySQL读写分离和高可用的中间件,一个模拟为MySQL Server的超级数据库,一个能平滑扩展支持1000亿大表的分布式数据库系统,一个可管控多种关系数据库的数据库路由器,一个平滑从关系数据升级到大数据的应用中间件。其前身是阿里的Cobar项目。介绍就不多说了,可以看官网http://www.mycat.org.cn/接下来我们实践吧。
安装mycat前需要先安装jdk和mysql。mycat1.6版本建议使用的jdk是1.7以上版本,mysql建议使用5.6版本。安装玩jdk和mysql后,进入mycat解压目录下的bin目录,如本文的路径如下: D:\Program Files (x86)\mycat\bin 安装shift键,点击鼠标右键,选择"在此处打开命令窗口"打开命令行窗口(注意需要管理员账户登录,如果不是请使用管理员身份运行cmd打开命令行窗口)。在打开的命令行窗口中执行如下命令安装mycat: mycat.bat install
前面写了两篇关于windows平台的Docker搭建,这次来唠唠我们开发常用的linux系统下如何安装docker,正所谓工欲善其事必先利其器,运行环境是一切编程语言的基础,要不开发好的东西无法跑起来没多大意义。这也是学习开发技术的基础。
从2020年疫情伊始至今,疫情背景下,响应国家做好防疫防控,有序复工复产的要求,为维持公司正常运营断断续续处于居家办公状态,实现了很多人一直想找份居家工作的梦.在广东阴雨连绵,狂风骤雨的日子里,开始有些怀念居家办公的日子了.居家远程办公最讲究的是高效远程沟通协作,在这同时还能够降低成本,而且居家办公也为公司缩减了很多日常开销.正所谓久病成良医(这比喻不太恰当~哈哈哈),在居家办公方面也有一些自己的思考和心得,摸索出一套有利于高效工作,高效沟通协作的工具百宝箱.
一、环境准备: 1. window 7 2. 支持“ Hardware Virtualization Technology”,并且,“virtualization ”可用 3. Docker Toolbox (官网地址:https://www.docker.com/products/docker-desktop 阿里云镜像: http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/)【下载最新版本】
win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 安装比较简单,双击运行,点下一步即可,可以勾选自己需要的组件:
打开Anaconda安装目录下的etc文件如:C:\Anaconda3\etc\jupyter我的安装目录在C:\Anaconda3
很多人都想制作自己的网站,但是限于需要购买域名与空间还是需要花费一定的资金的。如果只作为测试或者一个个人本地小站,完全没有必要去购买这些东西,你需要的只是一台还可以的PC和一些免费的软件,就可以了。 首先需要在自己的电脑上搭建服务器,关于网上好多按步骤安装apache,sql,phpmyadmin的方法复杂而且没有必要,这里推荐wamp这样的一个集成软件,安装非常简单,一路点击next,apache+mysql+phpmyadmin的环境一键搭好。
很多时候我们需要把大的视频剪切成多段短视频方便我们上传到网站/上传到朋友圈,或者我们需要把长视频中的一个精彩片段剪切出来.这时候FFmpeg的剪辑功能就派上用场了,但是FFmpeg这个功能更适合用于视频网站平台对用户上传视频的实时处理 前提:你的电脑安装了FFmpeg
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。 学php一定要先把八种数据类型学明白了,因为对于新手来说就是对数据的增删改查,先要弄明白自己学的编程语言中都有哪些数据类型,今天就把自己学到的数据类型以总结的方式跟大家分享一下,希望对大家有用。 PHP一共支持八种数据类型,包括4种标量类型,即boolean(布尔型),integer(整形),float/double(浮点型)和string(字符串类型);两种复合类型,即array(数组),和object(对象);两种特殊类型
大家好我是迷彩.平时我们工作或者生活中(比如应聘的简历)可能会用到蓝底,红底,白底各种相片,可能当时我们只有一种背景颜色的相片,但是我们又没有时间去拍一张,关键还需要白花花的银子,再加上抠图还是个技术活,对于ps功底薄弱的我来时,留下没有技术的眼泪,但是没有什么难道作为程序员我们,今天带大家使用Python一步步实现一键抠图,使用代码一键抠图,一劳永逸!好了,废话少说我们直接上步骤:
广义上来说,编程也不仅仅是指关于计算机的范畴,现在通常也指可以diy的东西,可以通过自己想法进行自定义的东西。当然我们这里所说的是指计算机编程. 因为计算机是不能直接听懂我们人说话的,没办法直接沟通,所以我们需要通过编程语言来跟计算机进行沟通,通过编程语言把我们想表达的转化为计算机能听懂的,在这里编程语言就相当一个翻译(比如,我们不会英文,准备要和一说英文的外国人谈生意,这时候就需要找一个英文翻译,替我们把想要表达的中文翻译成对方听得懂的英文。)其实严谨点这个比喻说也不准确,因为编程语言一般是需要通过编译器或者解释器编译解释之后,才能为计算机所识别. 每个计算机编程语言,都有自己的编译器或者解
最近要导入大量数据到数据库,数据库中有数据列要求唯一的,也就是唯一键,但是我拿到的数据有部分重复,一运行就会出错,如果把重复数据找出来,删除后在导入,太麻烦了,所以想要丝滑导入,并忽略重复数据,有了下面的解决方案: 本次案例使用phpmyadmin进行演示
预就是预先、事先,测就是度量、推测。预测通常被理解为对某些事物进行事先推测的过程。其实预测这个概念并不是我们第一次接触到,而是它从古至今都和我们的生活息息相关.而且在计算机技术飞速发展的DT时代,它一直伴随着我们,充斥着生活的方方面面,我们每个人都想更准确地预见未来,来掌握甚至改变事态的发展轨迹.所以用一句简单的话来概括就是:预测是一门研究未来的学问。从古至今都有人不断在研究它,应用它,而且研究的方法和理论也在不断地发展和完善,从古代的占卜术到如今的大数据和人工智能,预测的形式,方法,理论,技术,意义和作用发生了极大的变化.而且在数据科学的加持下,它建立于数据分析的基础上,预测不再是神秘的,而
一千个读者,一千个哈姆雷特,写代码也是如此,不同人,理解不同,逻辑不同,同一道题,代码各有千秋,所以出现的问题也是千奇百怪;预期结果就一个,解法却千千万。正如列夫托尔斯泰的安娜卡列尼娜中所说:幸福的家庭千遍一律,不幸的家庭各有各的不幸,但是主要不离题万里,错误基本能在一个常见的范围。 有人写代码是为了生计,有的人写代码仅仅是自己的兴趣使然。应该大多人都是第一种情况,我也一样,到了大学才拥有自己的第一台电脑,那时候智能手机刚出现,再往前倒推几年,手机都是个稀罕物,没有条件所以跟兴趣不沾边,唯一沾点边的是以前我喜欢刷竞赛题,锻炼逻辑,对学习算法有点帮助,但是作用有限。甚至有些人对自己所选的专业一无
我们都知道程序中可通过定义函数来减少工作量,提高代码的可重用性,从而提高我们的开发效率.我们一直import的是别人的模块,那如果我们需要使用自己的模块,或者开发一个自己的模块供别人使用,我们自己造轮子该怎么做呢? 我们实际的开发中,只在一个文件中编写代码是不太可能的,当开发大型项目的时候,一个文件过于臃肿,第一个是不利于阅读,代码可读性极差,还不利于团队协作开,所以这时候我们需要引入模块的概念.下面我们来了解什么是模块
2200 年前的战国时期,赵国平原君的食客公孙龙有一天骑着白马进城时,被守城的官兵以马不能进城而将其拦下.公孙龙当众即兴演讲,口述"白马非马"一论.守城的官兵被说的一愣一愣的,无法反驳。于是公孙龙就骑着他'不是马的白马'大摇大摆进城去了,这其实就是历史上最为经典的一次面向对象思维的阐述