背??景今天是双十一。昨晚,众多电商行业IT工程师点亮灯光,为这场狂欢购物节保驾护航。还记得三年前我们公司的一款产品上线前一周,办公室里拉起了“FollowBugs到底”的横幅。Bug可以说是程序员的软肋。每次我预感代码有bug,我的表情立刻就紧张起来。编程的路上,bug在路上;本文整理了一些我在问答技术网站上看到并回答过的有价值的问题。正好作为个人知识库!IDEA编辑功能IDEA强大的代码自动补全功能快捷键Tab,代码标签输入完成后,按Tab即可生成代码。div.class.out+Tab常用的有fori/sout/psvm+Tab生成循环System.out,main方法等样板样板代码,进入for(Useruser:users)只需输入user.for+Tab输入for(用户用户:用户)只需键入user.for+Tab即可键入Datebirthday=user.getBirthday();只需键入user.getBirthday().var+Tab。在Python中查看某个模块的使用情况进入Python命令行后,可以使用help方法查看该方法的使用情况,例如:importrehelp(re.compile)会在控制台输出该方法的描述信息:Python不会忽略第一行Python处理csv文件时,pandas.read_csv(“data.csv”)默认会把第一行作为标题行信息,不会处理。如何让它从第一行开始处理?header=None可以达到这个目的。df=pd.read_csv("data.csv",header=None)将对象提升到老年代的过程中的对象首先在Eden中分配,新生代对象提升到老年代的情况有很多。当Eden区满了,就会进行MinorGC。当Eden和一个Survivor区的存活对象无法放入Survivor时,会通过分配保证机制提前转移到老年代。如果对象的大小太大,则新生代无法容纳该对象。-XX:PretenureSizeThreshold表示对象的大小大于这个值,会绕过新生代,直接在老年代分配。此参数仅对Serial和ParNew收集器有效。生命周期长的对象直接进入老年代。Python在遍历和删除数组的同时进行遍历和删除,会导致数组索引的范围改变,导致程序出错。这也是Java需要注意的问题。然而,Python的数据操作方法提供了一种巧妙的方法来完成它。使用sorted(list)会生成一个新的数组,所以相应地删除原数组的元素不会改变下标,不会出错。也就是说遍历过程中使用的是sorted(list)返回的新数组,而删除是对原数组进行操作,即使用一个副本进行遍历,修改后得到最终需要的结果原始数据。__name__的含义在Python中经常见到。if__name__=='__main__':这么一段代码,这段代码的作用是什么,去掉这段代码为什么程序不执行了?__name__是系统内置变量。表示所在模块的名称,即所在文件的名称。直接运行模块时,比如直接运行demo_list.py文件,__name__的值为“__main__”,所以如果__name__=='__main__':通常会触发主进程。推导过程推导过程:将整个最终结果重新存储到容器中,而不是边遍历边推导。推导执行后,结果会一次性写入tmp_list变量,而不是推导时直接写入tmp_list变量。tmp_list=[iforiinnum_listifinotintmp_list]这是无效的,tmp_list不是预期的派生值。解析ngix日志以按小时计算行数给定一个ngix日志文件,解析时间列并按时间计算每小时的日志行数。日志文件格式为:192.168.1.1[22/Oct/2019:23:58:54+0800]"POST/dasdhj/sadqwda/q.logHTTP/1.1"2001330.022"-""Apache-HttpClient/4.3.3(java1.5)""-"把shell解析命令写成:awk'{print$2}'ngix.log|awk-F":"'{a[$2]=a[$2]+1}END{for(iina){print"time:",i,"count:",a[i]}}'思路:先将日志除以空格,得到第二列的日志记录时间戳列,再将时间列除以冒号获取时间列,并根据时间累计输出时间和累计值输入表单不触发onclick事件简单的触发器隐藏了一个h1标签事件,但不执行,代码为:
