fsoooo Blog

内不欺己,外不欺人,上不欺天。君子所以慎独。

为什么阿里禁止在 Foreach 循环里进行元素的 Remove Add 操作

本文转载自:Hollis 作者: Hollis 在阿里巴巴Java开发手册中,有这样一条规定: 但是手册中并没有给出具体原因,本文就来深入分析一下该规定背后的思考。 1.foreach循环 foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素。 Java语言从JDK 1.5.0开始引入foreach循环...

为什么要尽量避免使用 In 和 Not In 呢?

WHY? IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢? 1、效率低 项目中遇到这么个情况: t1表 和 t2表  都是150w条数据,600M的样子,都不算大。 但是这样一句查询 ↓ select * from t1 where phone not in (select phone from t2) 直接就把我跑傻了。。。十几分钟,检查了一下  phone在...

为什么技术最牛的码农当不了首席工程师?

文章来源:微信公众号【CODING】 作者:Eduards Sizovs 编辑:陶家龙、孙淑娟 金三银四招聘季,公司的管理者都在思考:在现在的市场环境下,到底应该为自己的公司注入怎样的新鲜血液来维持发展。工程师们同样也在思考如何获得更多成长和晋升的途径。 Eduards Sizovs 是 DevHub 的创始人,立志于为软件工程师群体提供专业的职业咨询服务,同时也是一位欧洲知...

为什么不让我复制?

我们应该都遇到过这种情况,有时候想在网络上复制一些需要用的的东西,会提示:禁止转载、禁止复制等。 有时候的需求是网站中有些内容不希望别人复制,那么就需要用代码控制:可以屏蔽鼠标右键菜单、复制粘贴、选中等。 下面分享几种避免复制的方法 ##第一种: //屏蔽右键菜单 document.oncontextmenu = function(event) { if (win...

为什么mysql把我的emoji😳弄丢了?

记得有一次,在往MySQL存入emoji表情😲😳时,一直出错,无法导入,把当时输入的emoji😳弄丢了。 后来在网上找解决方法, 通过把 utf8 改成 utf8mb4 就可以了正常存储了,但是当时并没有深究。 最近,看到一篇文章讲到emoji文字占4个字节,通常要用utf-8去接收才行,其他编码可能会出错。 我突然想起之前MySQL弄丢emoji的事,我就是通过把 utf8 改成...

不小心执行了 Rm F,先别急着跑路

前言  每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,那就准备跑路了… 那么如果真的删除了不该删除的文件,比如数据库、日志或执行文件,咋办呢? 不小心执行了 rm -f,先别急着跑路,本文教你如何挽回损失。 模拟场景 1、删除 误删除服务器目录/root/selenium/Spider下的MySql.Data.dll文件: rm -f /...

不同地图定位偏移以及坐标系转换

众所周知地球是一个不规则椭圆体,GPS中的坐标系定义由基准面和地图投影两组参数确定,而基准面的定义则由特定椭球体及其对应的转换参数确定。 基准面是利用特定椭球体对特定地区地球表面的逼近,因此每个国家或地区均有各自的基准面。 基准面是在椭球体基础上建立的,椭球体可以对应多个基准面,而基准面只能对应一个椭球体。 意思就是无论是谷歌地图、搜搜地图还是高德地图、百度地图区别只是针对不同的大地地...

一起来学习高可用(一)

一直以来只听说过高可用,但是都没有仔细了解过。 ####什么是高可用? ####为什么要高可用? ####怎么做高可用? ####为什么这么做,软件风险又在哪里? ###什么是高可用 “高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务...

一起将 996 Icu 干到30万,成为太阳系第一!

知乎作者:杜兵 我想听你讲述最大的烦恼: dubing@zju.edu.cn 同志们,一起将 996.icu 干到30万,成为太阳系星星数最多的项目! 目前太阳系第一名是 freeCodeCamp,29.8万星星,第二名是vue,12.9万,第三名bootstrap是12.8万,第四名react是12.5万。 这是中国程序员们的一次行为艺术,一次沉默的狂欢,一次无声的反抗。 ...

一行代码 杀手级的 Js

数组乱序 在使用需要某种程度的随机化的算法时,你会经常发现洗牌数组是一个相当必要的技能。 下面的片段以O(n log n)的复杂度对一个数组进行就地洗牌。 const shuffleArray = (arr) => arr.sort(() => Math.random() - 0.5)  // 测试 const arr = [1, 2, 3, 4, 5, 6, 7, 8,...