Lastest

php中__METHOD__和_FUNCTION__的区别

话不多说,一段代码实验下 <?php class A{ public function a1(){ echo __FUNCTION__; echo "\n"; echo __METHOD__; echo "\n\n"; } public static function a2(){ echo __FUNCTION__; echo "\n"; echo __METHOD__; echo "\n\n"; } } function a3(){ echo __FUNCTION__; echo "\n"; echo __METHOD__; echo "\n\n"; } $a = new A(); $a->a1(); A::a2(); a3(); 输出如下 a1 A::a1 a2 A::a2 a3 a3 结论 对于类成员函数,METHOD会带上类名,FUNCTION 没有类名 对于非类成员函数,没差别

cat命令提取json中的key

cat连用grep进行筛选,筛选出的json还可以提取key 距离提取满足grep筛选条件的记录,并提取MessageID字段内容 cat log-20210326-* | grep xxx | grep MessageID | grep -Po 'MessageID[" :]+\K[^"]+'

自己想到的一些问题整理

mysql中各种有几种索引,区别是什么 mysql事务等级细节 swoole和传统fpm的区别是什么 高并发场景下的锁

一切事物都需要方法论

一切事物都需要方法论 软件开发也做了好些年了,无数次项目或者组件的重构,已经让我在系统设计上有了一定的经验。在一个领域内,反复的犯错,反复的总结,有一天回头看看自己,或许就能看到提升吧。 我还记得18年在Aurora最后一次开会的场景。我说我打算回国了,吴总忽然就眼睛一酸说了句“留下不好么?”,接着又说“也好,人各有志。系统设计上好好练练,大有可为”。 2020年于我是峰回路转的一年,有些事我以为应该成了的,反倒散了;有些事,我以为无法达成的,倒是成了。散了的,直到此刻,想起来我都是久久不能平静,然而我清楚的知道情绪不能带入工作,情绪不能影响我前进。如果情绪可以换回已经逝去的东西,请加倍来,多么难我都可以忍。 越是失败的领域,我越是需要总结方法论。好在这次积攒了不少"资料"可以复查。 阴阳结合 凡事不能走极端,需要同时具备两种情绪混合的能力。脑袋不要长肌肉,种花的态度去过一生 方法论 以自己的方法去应对,不能一味跟着场景走。需要总结。持续从错误的case中整理

人生路漫漫要修炼的还很多-学学说话吧

人生路漫漫要修炼的还很多。每走过一段弯路,每经历一段惨剧,都总反思并要学会点什么,才能变得更好。未来遇到同样或者类似的路,才可以走的不那么磕磕绊绊。 一直以来在处理各种问题时候,我都采用的是工作思维。工作思维,问题是什么,解决方案是什么,方案可靠不可靠,实施并迭代完善。然而,这种思维只能让我无限的理工直男,在遇到不确定性比较强的问题,就会显得很智障。创造副业收入,磕磕绊绊。。。追妹子,追一个沉一个。。。 让我痛定思痛决定做出改变的,有两部分。第一部分,我不想讲了,多说无益;第二部分,就是下面这段对吧。我给它起个标题叫做如何与女生好好说话 再把你刚才说话那种态度,那种语气说一遍来 不仅仅是人家走过去那两个人看着你 我也是这样一直盯着你 你知道为啥盯着你看么?大家都不敢相信,你知道吧 不敢想你这么美的一个仙子,嘴巴里说出了什么虎狼之词。那种态度那种语气,是你这么温柔的一个大家闺秀该有的话么?你对得起你的美么?你对得起它么?笑 你的美有多少人羡慕,你让我这种(对自己摇头),继续啊继续保持那种态度 道歉 影响我前面三十年思维最核心的东西有这么几样。 第一,音乐,每一段音乐都有他的基调,悲伤(g大调的悲伤的),欢快(卡门序曲),愤怒(life struggle),勇往直前(victory)。。。。。。这些东西感情色彩过于单一了。整乐章的歌剧或者交响乐,包罗万象,但过于繁杂了,并不能...

java初学者笔记

学习新技术栈新框架,花最大力气的部分往往不是写代码,而是搭建开发和运行环境 安装java环境 安装maven wget https://apache.website-solution.net/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz tar xf apache-maven-3.6.3-bin.tar.gz -C /opt ln -s /opt/apache-maven-3.6.3 /opt/maven # 加入环境变量 vim /etc/profile.d/maven.sh export M2_HOME=/opt/maven export MAVEN_HOME=/opt/maven export PATH=${M2_HOME}/bin:${PATH} 安装java 11 mkdir /home/source cd /home/source # 下载地址需要去java官网获取,简直无力吐槽,下载个java还需要登录,你妹的 wget https://download.oracle.com/otn/java/jdk/11.0.9+7/eec35ebefb3f4133bd045b891f05db94/jdk-11.0.9_linux-x64_bin.tar.gz?AuthParam=160983785...

如何快速学习一门新编程语言2-表达式有哪些可以用,算数运算逻辑运算位运算关系运算赋值其他

如何快速学习一门新编程语言2-表达式有哪些可以用,算数运算逻辑运算位运算关系运算赋值其他 对照java和go的表达式使用方式,用go重写各种运算。 目录 目录 变量如何定义,数据类型有哪些 表达式有哪些可以用,算数运算逻辑运算位运算关系运算赋值其他 逻辑控制结构有哪些,条件判断怎么写,循环如何写,分支语句怎么写 常用数据类型,字符串,数组,哈希表 面向对象1,类怎么写,类数据成员写法,类方法写法,公有/保护/私有权限怎么控制,静态成员和静态方法 面向对象2,如何实现继承,以及继承权限控制 面向对象3,如何实现重载,多态 面向对象4,面向接口编程 异常处理机制 基本数据结构,数组,链表,最小堆,栈,二叉树,图 推广到更多语言 表达式 运算符 按照java划分方式,运算符分为六大类 算数运算符:加,减,乘,除,取模,自增,自减 关系运算: 6种关系运算,等于(==),不等于(!=),大于(>),小于(<),大于等于(>=),小于等于(<=) 位运算:位与,位或,异或,取反,左移位,右移位,按位右移补0(java才有) 逻辑运算: 3种逻辑运算,与(&&)或(||)非(!) 赋值运算 其他运算 我们接下来逐个翻译成go 算数运算符 加减乘除,最基本的四则运算,取模,自增,自减少。几乎所有语言里特性都差不多。需要注意的有两点 是有...

如何快速学习一门新编程语言1-数据类型有哪些,变量如何定义

如何快速学习一门新编程语言1-数据类型有哪些,变量如何定义 我们通过对照java和go的数据类型,变量定义方法,来重写我这辈子背下来的第一段代码a+b求和。 目录 目录 变量如何定义,数据类型有哪些 表达式有哪些可以用,算数运算逻辑运算位运算关系运算赋值其他 逻辑控制结构有哪些,条件判断怎么写,循环如何写,分支语句怎么写 常用数据类型,字符串,数组,哈希表 面向对象1,类怎么写,类数据成员写法,类方法写法,公有/保护/私有权限怎么控制,静态成员和静态方法 面向对象2,如何实现继承,以及继承权限控制 面向对象3,如何实现重载,多态 面向对象4,面向接口编程 异常处理机制 基本数据结构,数组,链表,最小堆,栈,二叉树,图 推广到更多语言 数据类型 java有哪些数据类型 8种基本数据类型,6种数值类型(默认值都是0),字符串类型,布尔类型 byte: 1个字节,范围-128到127 short:2个字节,范围-32768到32767 int:4个字节,范围-2^31到2^31-1 long:8字节,范围-2^63到2^63-1 float:单精度浮点,默认0.0f,格式参考IEEE 754 double:双精度浮点,默认0.0d,格式参考IEEE 754 boolean:布尔变量,取值true|false char:字符变量,2个字节(与c不同,c语言中char是1字节...

如何快速学习一门新编程语言0

决定开一个系列文章,专门讲如何在熟练掌握一门编程语言之后,快速的去学习一门全新的语言。 为什么你会觉得学习一门新语言很费劲,无非三点原因。第一,第一门语言没学好。第二,没有跳出编程语言本身来看编程语言,视角提升一层,就像在三维世界看二维平面,自然会不同。第三,不善使用搜索引擎和官方文档来学习。 我有一套非常好用的办法,分为三个步骤: 忽略语言细节,把尽可能多的信息抽象成语言概念 设定一个目标,在新语言环境下来实现它 使用我们从熟悉的语言中得来的概念,通过搜索引擎,或者看书,找到新语言环境下的实现方案 我这里就以java为例,对照着java的做法来学一遍golang吧。 以java为例(或者php python都有对等的东西),后续文章我们用go语言去实现对等的功能即可。 目录 变量如何定义,数据类型有哪些 表达式有哪些可以用,加减乘除逻辑运算位运算 逻辑控制结构有哪些,条件判断怎么写,循环如何写,分支语句怎么写 常用数据类型,字符串,数组,哈希表 面向对象1,类怎么写,类数据成员写法,类方法写法,公有/保护/私有权限怎么控制,静态成员和静态方法 面向对象2,如何实现继承,以及继承权限控制 面向对象3,如何实现重载,多态 面向对象4,面向接口编程 异常处理机制 基本数据结构,数组,链表,最小堆,栈,二叉树,图 推广到更多语言 如果上述文字表示,你不知道说的是什么?或者不...

左边升序右边降序的数组o1时间内计算不重复元素个数

问题 左边升序右边降序的数组o1时间内计算不重复元素个数 比如:[1,2,3,4,4,5,10,9,5,3,1,0], 返回8 要求:空间复杂度o(1), 时间复杂度o(n) 分析 讲真,从来没思考过o1空间复杂度下,要怎么破解这个问题。今天恰好遇到了,就思考下。太菜了,想了好久 下面讲讲思路吧 既然是有规律的升序降序数组,重复的元素都是连在一起的。那么我们顺序筛一遍就可以知道左半部分有多少重复,右半部分有多少重复。时间复杂度O(n),空间复杂度O(1) 左右两头比对,相等就计数器-1。不相等就看大小,右边大则右边下标-1,否则左边下标-1,继续比对。时间复杂度O(n),空间复杂度O(1) 实现代码 。。。。等我去测试下。。。 蛮高兴,自己测试了下,没啥问题 function process($array){ $len = count($array); $total = $len; $left = 0; $right = count($array)-1; // 空数组返回0 if($len < 2){ return $len; } // 去掉升序部分的重复,去掉降序部分的重复,O(n) // 两头开始检查,如果右边当前元素出现在左边,total-1 $pos = 0;...

执行时间: 53.266048431396 毫秒