首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你确定(a == 1 && a == 2 && a == 3)不能为true?

讲真刚看到这题时候,是用这种眼神看面试官:你TM逗我呢? 尊重一下可行?没10年脑血栓问不出这玩意, 但看他一脸"贱笑",一副你一定答不出来感觉,觉得此事定不简单......别急,这其实是一个障眼法,只是取巧蒙蔽了我们双眼,请看下图 真相大白:if后面有个隐藏字符,本质上是声明了一个无论输入啥都返回true函数,而下面的代码块,更是和这个函数没半毛钱关系,怎么样都会执行...解法4:“with” MDN上映入眼帘一个警告,仿佛他存在就是个错误也从来没有在实际工作中用过他,但他却可以用来解决这个题目。...比较规则如下表(mdn) 从表中可以得到几点信息为了让(a == 1),a只有这几种: a类型为String,并且可转换为数字1('1' == 1 => true) a类型为Boolean,并且可转换为数字...1 (true == 1 => true) a类型为Object,通过转换机制后,可转换为数字1 (请看下文) 对象原始类型"转换机制" 规则1和2没有什么特殊地方,我们来看看3: 对象原始类型

40230

细说枚举.

枚举之间转换 首先要说明是在 C# 中不支持不同枚举数组之间直接转换,所以如果想要实现不同枚举数组之间换我们可以利用 CLR 宽松赋值兼容性这一特点来进行转换,需要转换两个枚举必须具有相同基础类型...同样,我们通过一个例子来看一下具体实现方法。 在使用这种方法时有可能会出现意外错误或结果,并且相关开发规范中并没有说这种方式每次都起作用,因此不建议这么使用,除非在一些极端场景中。...下面简单来讲解一下这两个方法使用。 枚举和数字之间转换 枚举转换为数字我们可以使用强,例如 返回结果是 0 。...定义标志枚举方法如下: 在上面的代码中你会发现一个规律,每个枚举值对应整数值都是 2n次方,这是为什么呢。...在标志枚举中要求多个枚举值相互组合后结果不能包含在标志枚举中,并且基于按位运算特性可以很方便使用位运算符来计算一个枚举值是否包含了另外一个枚举值,这在权限系统中相当有用。

62510
您找到你想要的搜索结果了吗?
是的
没有找到

记一次性能优化,单台4核8G机器支撑5万QPS

再然后,我们必须明确找出性能瓶颈在哪里,而不能漫无目的一通乱搞。 需求描述 这个项目是在上家公司负责一个单独模块。...对这个模块拆分要求是,压力测试 QPS 不能低于 3 万,数据库负责不能超过 50%,服务器负载不能超过 70%,单次请求时长不能超过 70ms,错误不能超过 5%。...所以,我们首先要做就是将写库操作剥离开来。提升每一次请求响应速度,优化数据库连接。 整个系统架构图如下: 将写库操作放到一个先进先出消息队列中来做。...猜测,TCP 连接数就是引发瓶颈问题,但是因为什么原因所引发暂时无法找出来。 这个时候猜测,既然是无法建立 TCP 连接,是否有可能是服务器限制了 socket 连接数。...net.ipv4.tcp_tw_reuse = 1 我们再次压测,结果显示: QPS 5万,服务器 CPU 70%; 数据库连接正常,TCP 连接正常; 响应时间平均为 60ms,错误率为 0%。

1.7K21

【抓包】青花瓷实战教程②

启动断点调试: 在快捷菜单区域打开 ,选中待断点请求后在右键菜单中勾选断点菜单项。...上图是预请求截图,当到 POST 请求手动触发执行发出请求后,响应会再次触发我们调试窗口: 同样我们可以手工编辑响应内容并再次触发执行将响应内容交给页面去做显示。...本地资源代理: 在前面的文章中有提到一个浏览器插件,我们还做了一次简单扩展,就是拦截我们开发中请求,模拟一个固定响应结果返回给页面,我们就可以暂时脱落服务器响应数据来调试页面的特定数据下问题,...: 我们需要在右侧上方窗口配置需要允许跨域访问地址规则,在右侧下方窗口配置允许跨域响应头字段: 请注意各个菜单值,我们需要新增一个 header,并重写到响应中,替换我们给定 header...,就比如说在网上找到下面这份配置: 看似都通用标识,那是不是应该可以满足这次放开跨域要求呢?

62230

FastAPI框架诞生缘由(下)

缺点是,我们又必须在 Python 文档字符串使用 YAML 语法,细微差别可能导致一些错误。...启发 FastAPI 地方 找到一个拥有极端性能表现方法。 这就是为什么 FastAPI 基于 Starlette,因为它是目前性能最高框架(由第三方测试基准)。...它被设计为具有接收两个参数函数,一个“请求”和一个响应”。然后,您从请求中“读取”部分,并将“部分”“写入”响应。由于这种设计,不可能用标准Python类型提示将请求参数和主体声明为函数参数。...从未在完整项目中使用过它,因为它没有安全性集成,因此,无法用基于 Flask-apispec 全栈生成器替换我拥有的所有功能。在项目积压中创建了添加该功能请求。...在长时间寻找相似的框架测试了许多不同替代方案之后,APIStar 是最佳选择。然后,APIStar 不再作为服务器存在,然后 Starlette 出现了,并且为此类系统提供了新更好基础。

2.3K20

GC 性能调优

可以做分布式本地库存 + 单独服务器做库存均衡 大流量处理方法:分而治之 怎么得到一个事务会消耗多少内存?...扩容或调优,让它达到 用压测来确定 优化环境 有一个50万PV资料类网站(从磁盘提取文档到内存)原服务器32位,1.5G 堆,用户反馈网站比较缓慢,因此公司决定升级,新服务器为64位,16G 堆内存...很多用户浏览数据,很多数据load到内存,内存不足,频繁GC,STW长,响应时间变慢 为什么会更卡顿? 内存越大,FGC时间越长 咋办?...搜索jstack dump信息,找 ,看哪个线程持有这把锁RUNNABLE 作业:1:写一个死锁程序,用jstack观察 2 :写一个程序,一个线程持有锁不释放,其他线程等待 为什么阿里规范里规定...(不是很专业,因为多有监控,内存增长就会报警) 2:很多服务器备份(高可用),停掉这台服务器对其他服务器不影响 3:在线定位(一般小点儿公司用不到) 4:在测试环境中压测(产生类似内存增长问题,在堆还不是很大时候进行

1.3K10

Github 火热 FastAPI 库,站在了这些知名库肩膀上

Marshmallow 一个由 API 系统所需主要功能是数据序列化,就是把数据从编程语言中对象称成可以在网络上传输对象,比如数据库中数据转换为 JSON 对象。...缺点是,我们又必须在 Python 文档字符串使用 YAML 语法,细微差别可能导致一些错误。...它被设计为具有接收两个参数函数,一个“请求”和一个响应”。然后,您从请求中“读取”部分,并将“部分”“写入”响应。由于这种设计,不可能用标准Python类型提示将请求参数和主体声明为函数参数。...在受 Falcon 设计启发其他框架中,也是有一个请求对象和一个响应对象作为参数。 启发 FastAPI 地方 寻找获得出色性能方法。...从未在完整项目中使用过它,因为它没有安全性集成,因此,无法用基于 Flask-apispec 全栈生成器替换我拥有的所有功能。在项目积压中创建了添加该功能请求。

5K30

Python异步并发机制详解,让你代码运行效率就像搭上了火箭!!!

因此,如果你在函数中使用sleep(),在多线程中,一个线程进入sleep状态,操作系统会切换到其它线程执行,整个程序仍然是可响应(除了该线程,它必须等待睡眠状态结束);而对协程来说,同一loop中其它协程都不会得到执行...假设你使用底层通讯API是发送和接收分离(一般比较靠近底层API都是这样设计),那么你会面临这样问题:当你通过异步请求(比如send)发出API request后,服务器响应可能是通过on_message...键为外发请求track_id,该track_id需要服务器响应请求时传回。 # 值为另一个dict,储存着对应asyncio.Event和网络请求返回结果。这里也可以使用list。...当框架(或者你网络例程)收到服务器返回结果时,根据track_id # 找到对应event,触发之 await event.wait() # 获取结果,做清理 response...这里唤醒在L1处等待执行 ---- 所以,代码到底怎么写?!!! 相信,看了这么久,还是没有几个人知道这玩意儿到底要怎么写代码。 说实话,换我看了这么多也不知道啊。 协程可以做哪些事?

1.8K20

关于FTP文件传输协议说明,带你了解更详细文件传输协议

一个区域显示本地目录结构,包括硬盘驱动器上所有文件。另一个区域显示服务器内存,包括其中文件和文件夹。该软件使用户可以在两个区域之间移动文件。如今,浏览器和操作系统命令行也可以用于FTP。...您通常可以从服务器提供商那里获得。在FTP连接中,通常会打开两个通道。首先,客户端和服务器使用端口21建立命令通道。客户端使用此通道将命令发送到服务器,作为响应服务器发送回状态代码。...发生这种情况时,协议会注意错误。如果在传输完成之前断开连接,则可以在重新建立连接后恢复该过程。客户端和服务器之间通过文件传输协议进行交换我们可以区分主动和被动 FTP。...在活动版本中,客户端如上所述使用端口21建立连接,告诉服务器可以使用哪个端口来传递其答案。但是,如果客户端受防火墙保护,则服务器将无法发送任何答案,因为所有外部连接均被阻止。...从那时起,由于传输是完全未加密,因此使用FTP已涉及许多安全风险。这就是为什么开发了另外两个安全版本原因,这些版本目前正在相互竞争:FTPS和SFTP。第一个版本是使用SSLFTP。

85530

说一下HTTP服务全过程及扩展问题整理

对网址进行DNS解析,得到对应IP地址。 根据这个IP地址,找到对应服务器,并发起TCP三次握手。 建立TCP连接后会发起HTTP请求。 服务器响应HTTP请求。 浏览器解析得到html代码。...比如:小区网络提供商。 本地区DNS域名服务器不能解析,会去根域名服务器请求解析(.com.cn.org等根域名服务器)。 根域名服务器查询返回域名对应服务器地址。...TCP(传输层)是一个端到端可靠面相连接协议,HTTP基于传输层TCP协议不用担心数据传输各种问题(当发生错误时,会重传) 问题5:说一下三次握手?...(准备好了,你准备好了吗) 这个请求到达服务端后,服务端会给予前端确认收到响应信息(报文)。...(也准备好了,你确认下) 浏览器接收到来自服务器确认收到报文后,明确了从客户端到服务器数据传输是正常返回一段TCP报文。(确认成功) 问题6:聊一聊四次挥手?

23820

笔记:网络基础TCP、HTTP、HTTPS(HTTP+SSL)

1.3、建立连接为什么要三次握手? 假如让和你来实现一次完整可靠连接,会怎么做呢?...第一次握手,告诉你我要和你建立连接 第二次握手,你告诉你能收到我发送消息 第三次握手,告诉你我能收到你发送消息 然后,你能收到我发送能收到你发送,咱俩下面就可以畅聊了 1.4、断开连接为什么要四次挥手...//客户端请求成功 400 Bad Request //客户端请求有语法错误不能服务器所理解 401 Unauthorized //请求未经授权...//请求资源不存在,eg:输入了错误URL 500 Internal Server Error //服务器发生不可预期错误 503 Server Unavailable //服务器当前不能处理客户端请求...2.2.5、HTTPS完整过程大致如下两图 要点: 使用公钥对摘要加密得到签名,使用私钥解密签名得到公钥 为什么需要数字证书? 因为网络通信双方都可能不认识,那么就需要第三方介绍,这就是数字证书。

46810

Django基础之服务器程序和应用程序

我们可以设立一个标准,只要服务器程序支持这个标准,框架也支持这个标准,那么他们就可以配合使用。一旦标准确定,双方各自实现。这样,服务器可以支持更多支持标准框架,框架也可以使用更多支持标准服务器。...从这继续... 1、wsgiref 我们利用wsgiref模块来替换我们自己写web框架socket server部分: """ 根据URL中不同路径返回不同内容--函数进阶版 返回HTML页面...): start_response('200 OK', [('Content-Type', 'text/html;charset=utf8'), ]) # 设置HTTP响应状态码和头信息...httpd.serve_forever() 2、jinja2 上面的代码实现了一个简单动态,完全可以从数据库中查询数据,然后去替换我html中对应内容,然后再发送给浏览器完成渲染。...这里用特殊符号是定义,其实模板渲染有个现成工具: jinja2 下载jinja2: pip install jinja2 index2.html文件: <!

97120

渗透测试战技101之nmap与icmp隧道

为什么这件事情很重要?why?因为您无法保证自己学到东西永远都用于工作,它会健忘掉。 提前说明:官方手册,man手册,帮助命令等都是用于辅佐,不存在谁比谁权威、全。请自己思考取舍。...得到主机存活响应包也回复了一个ICMP echo 响应包并且回复了一个TCP 80 RST响应包。所以,我们知道此主机确实是在。 不妨思考一下,ICMPtype 8类型(以及其他协议字段值?...这就是为什么,会存在其他方式与参数来尝试性看看响应,设备会不会出现意外响应包?或者意外情况?...想想与类比burpsutie抓包与重放,都是一个道理与观察得到。...都匹配到了你SSH版本信息了,还不能确认你是SSH服务吗? 您想给nmap做贡献吗?这绝对是一件有意义事情。

66520

你真的会用Retrofit2吗?Retrofit2完全教程

当然本篇文章会介绍得详细一点,不能写一篇水文,毕竟给它命名为《你真的会用Retrofit2吗?Retrofit2完全教程》。...ResponseBody, 这也是什么在前面的例子接口返回值都是 Call, 但如果响应体只是支持转换为ResponseBody的话何必要引用泛型呢, 返回值直接用一个Call就行了嘛,既然支持泛型...其它类型Converter,如果不能处理返回null // 主要用于对响应处理 public Converter<ResponseBody, ?...6、自定义CallAdapter 本节将介绍如何自定一个CallAdapter,验证是否所有的String都会使用我们第5节中自定义Converter。...7.5 关于源码 看到这儿可能有小伙伴要问为什么源码没有把类拆分到单独文件,命名也不能体现其用途,这里主要是因为方便大家看源码,而不是将注意力放在反复跳转上,另一方面也是因为同一个例子中不可避免使用其它小节要介绍内容

2.3K70

爬虫入门及HTTP协议讲解

等这一些问题,今天写这篇文章目的就是来告诉大家,为什么要学爬虫,爬虫本质是什么。 2.为什么要学爬虫 先说吧,当初为什么要学爬虫呢?...;爬虫能帮我们省掉一系列繁琐时间(比如我要下载爱看图这个网站图片,不可能一张一张点,可以写一个爬虫帮我全部下载完) 3.爬虫本质是什么 爬虫本质觉得就是一句话 模仿浏览器去打开网页 我们来看一个例子吧...status code 表示服务器返回状态吗,这里是200,表示OK 状态代码有三位数字组成,第一个数字定义了响应类别,且有五种可能取值: 1xx:指示信息--表示请求已接收,继续处理 2xx:...常见状态代码、状态描述、说明: 200 OK //客户端请求成功 400 Bad Request //客户端请求有语法错误不能服务器所理解 401 Unauthorized //请求未经授权,...URL 500 Internal Server Error //服务器发生不可预期错误 503 Server Unavailable //服务器当前不能处理客户端请求,一段时间后可能恢复正常

1K90

CS 可视化: CORS

尽管有一些快速消除此错误方法,但今天我们不要掉以轻心!相反,让我们看看 CORS 到底在做什么,以及为什么它实际上是我们朋友 ❗️ 在本博文中,不会解释 HTTP 基础知识。...我们发送了完全相同请求,但这次浏览器显示了一个奇怪错误? 我们刚刚看到了 CORS 作用! 让我们看看为什么会发生这个错误,以及它到底意味着什么。...同源策略阻止了这种情况发生,确保邪恶网站开发人员不能随意访问我们银行数据 好,那么... 这与 CORS 有什么关系呢?...服务器收到这个预检请求,并以服务器 CORS 头部为空 HTTP 响应进行响应!浏览器接收到预检响应,其中除了 CORS 头部之外不包含任何数据,检查是否应该允许 HTTP 请求!...我们现在可以在跨源请求中包含凭据了 虽然认为我们都可以一致同意,CORS 错误有时可能让人沮丧,但它确实使我们能够在浏览器中安全地进行跨源请求(它应该得到更多关注 lol) ✨ 显然,同源策略和

10910

TCP网络那点破事!三次握手、四次挥手、TIME-WAIT、HTTP 2.0 ....

大家好,是Tom哥~ 今天主要给各位分享TCP网络一些常见知识点,日常工作或面试会经常遇到。考虑内容篇幅不小,建议先收藏,慢慢咀嚼。...TCP每个请求都要有响应,如果一个请求没有收到响应,发送方就会认为这次发送出现了故障,会触发重发。为了提升吞吐量,一个TCP段再没有收到响应时,可以继续发送下一个段。...服务器推送:服务器主动将一些资源推送给浏览器缓存起来。 HTTP 与 HTTPS 区别?...端口 443 HTTP 协议为什么要设计成无状态? 答案:HTTP是一种无状态协议,每个请求都是独立执行,请求/响应。...客户端收到服务器响应后会先验证证书合法性(证书中包含地址与正在访问地址是否一致,证书是否过期) 如果证书验证通过,就会生成一个随机对称密钥,用证书公钥加密。

40320

字节跳动前端面试经历及总结

做了一份详细自我介绍,通过三段开发经历来总结出了一些优点和开发经验,用讲故事形式说明情况,最后点明故事中表现了自己具有哪些素质,点明自己为什么可以做前端工作。...:代表请求已成功被服务器接收、理解、接受。...304状态码:自从上次请求后,请求网页未修改过。服务器返回此响应时,不会返回网页内容。 4XX系列:表示请求错误。代表了客户端看起来可能发生了错误,妨碍了服务器处理。...对于需要登录网页,服务器可能返回此响应。 403状态码:服务器已经理解请求,但是拒绝执行它。与401响应不同是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。...404状态码:请求失败,请求所希望得到资源未被在服务器上发现。 5xx系列:代表了服务器在处理请求过程中有错误或者异常状态发生,也有可能是服务器意识到以当前软硬件资源无法完成对请求处理。

3.2K21

GraphQL是API未来,但它并非银弹

这减少了服务器和客户端之间发送数据量,甚至比 GraphQL 更少,因为你没有发送查询负载,如果响应仍然有效,则服务器发回一个 304 响应(未修改)。...GraphQL 服务器可以自由地使用它期望任何类型进行响应。如果你发送一个查询,则服务器响应可以不符合自省响应 GraphQL 模式。以 Apollo Federation 为例。...当我们讨论 GraphQL 中类型安全时,其实我们意思是,我们相信 GraphQL 服务器行为会与自省查询响应保持一致。为什么我们不能同样信任接口定义规范呢?想我们可以。...无论使用哪种,你最终都会得到一个 GraphQL 模式,它描述了所有的类型和字段,允许你对它们进行注释。 那么,有什么区别呢?OAS 设置开销更大。...8 错误处理更好 关于错误处理,作者描述了这样一个场景:与使用部分数据响应单个 GraphQL 查询相比,客户端将不得不进行 3 次连续 REST API 调用。

2K10

干货 | 从资深软件工程师学到避坑大法

每次代码审查时都问自己:「他们为什么这样做?「。每当我找不到合适答案时,就会去和他们谈谈。 在第一个月后,开始在同事代码中找到错误(就像他们对代码做一样)。...仅仅编写这些测试并不能提高代码质量,而编写代码却可以。但是从阅读测试代码中获得了写更好代码直觉。 但是,并不只有这一种测试,这就是为什么有部署环境测试原因。...这里想法是尝试捕获单元和系统测试无法捕获错误。例如,请求系统和响应系统之间 API 不匹配。个人项目与小公司情况大不一样。不是每个人都有资源来搭建自己设备。...你不能将这些信息存到代码中,因为这样任何人都能看得到。 把它们作为环境变量?这是一个好主意。但你怎么把它们放在那里?...如果不知道 bug 在哪不能修改错误。其中一种最糟糕感觉是从客户那里知道有 bug。 「做了什么?!甚至不知道系统出了什么问题?」

55620
领券