摘要: 位运算这里讨论一些位操作技巧,如果使用得当会有助于提高代码运行效率。这里假设你已经知道整型数据二进制 补码 表示方式。位运算符运算符名称例子结果&And(按位与)a & b将把 a 和 b 中都为 1 的位设为 1,否则设为 0。|Or(按位或)a | b将把 a 和 b 中任何一个为 1 的位设为 1。^Xor(按位异或)a ^ b将把 a 和 b 中一个为 1 另一个为 0 的位设为 1(相同... 阅读全文
posted @ 2019-10-23 18:48 Martini 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 原码、反码、补码 整数在计算机内部都是以「补码」形式存储的。记住这点,对于整数的处理,会很有帮助。 原码 数字在自然界中抽象出来的时候,一棵树,两只猪,是没有正数和负数的概念的。 计算机保存最原始的数字,也是没有正和负的数字,叫没符号数字 如果我们在内存分配4位(bit)去存放无符号数字,是下面这样 阅读全文
posted @ 2019-10-23 18:42 Martini 阅读(614) 评论(0) 推荐(0) 编辑
摘要: 题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。题目链接 ($length + 1)) { return false; } } ... 阅读全文
posted @ 2019-09-22 22:57 Martini 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 复杂度 本篇基本上是原作的翻译。转载请保留本段文字。 复杂度通常会使用大 O 记号来表示,比如快速排序的平均时间复杂度是 𝑂(𝑛log(𝑛))O(nlog⁡(n))。虽然我是「理解派」,但是虽然每个算法/数据结构都理解了,不时仍有可能忘记具体某个算法/数据结构的复杂度(特别是在最好、最坏和平均 阅读全文
posted @ 2019-09-21 10:13 Martini 阅读(2709) 评论(6) 推荐(2) 编辑
摘要: 什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。 什么是同源策略? 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏 阅读全文
posted @ 2019-09-20 10:43 Martini 阅读(600) 评论(0) 推荐(0) 编辑
摘要: 单点登录(Single Sign On)解决方案 需求 多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 A 网站和 B 网站是同一家公司的关联服务。现在要求,用户只要在其中一个网站登录,再访问另一个网站就会自动登录,请问怎么实现? 涉及到的关键点: 这里就涉及到了 跨域认证 以 阅读全文
posted @ 2019-09-19 17:32 Martini 阅读(2847) 评论(4) 推荐(6) 编辑
摘要: 观察者模式(Observer) 意图 定义对象间一对多的依赖关系,当对象的状态发生变化时,所有依赖于它的对象都得到通知并被自动更新。它使用的是低耦合的方式。 现在生活中离不开手机,每个人都有手机号,朋友联系你要用手机,你的银行卡也要绑定手机号等等。 那现在你换了一个手机号,朋友,银行都要知道你的手机 阅读全文
posted @ 2019-07-18 10:02 Martini 阅读(301) 评论(2) 推荐(0) 编辑
摘要: 摘要 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。 简介 在软件管理的领域里存在着被称作“依赖地狱”的死亡之谷,系统规模越大,加入的包越多,你就越有可能在未来的某一天发现自己已深陷绝望之中。 在依赖高的 阅读全文
posted @ 2019-07-09 11:56 Martini 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 什么是 SPLSPL(Standard PHP Library)即标准 PHP 库,是 PHP 5 在面向对象上能力提升的真实写照,它由一系列内置的类、接口和函数构成。SPL 通过加入集合,迭代器,新的异常类型,文件和数据处理类等提升了 PHP 语言的生产力。它还提供了一些十分有用的特性,如本文要介绍的内置 Observer 设计模式。本文介绍如何通过使用 SPL 提供的 SplSubject和 ... 阅读全文
posted @ 2019-07-05 01:22 Martini 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 容器,字面上理解就是装东西的东西。常见的变量、对象属性等都可以算是容器。一个容器能够装什么,全部取决于你对该容器的定义。当然,有这样一种容器,它存放的不是文本、数值,而是对象、对象的描述(类、接口)或者是提供对象的回调,通过这种容器,我们得以实现许多高级的功能,其中最常提到的,就是 “解耦” 、“依 阅读全文
posted @ 2019-07-01 14:55 Martini 阅读(186) 评论(0) 推荐(0) 编辑