漫画 | 揭密微信诞生记
据民间流传微信的诞生源于张小龙因得一扫地高僧指点,才有了微信的诞生,而这其中也少不了程序员们的付出,一起来看看它的故事吧~篇后时至今日,微信已走过了10个年头,也完成了从0到1甚至是亿、十亿的用户量,日常生活、工作人们更是离不开它,然而一个好的产品诞生,离不开一个优秀的...
2024-01-10Android框架Volley使用之Json请求实现
首先我们在项目中导入这个框架:implementation 'com.mcxiaoke.volley:library:1.0.19'在AndroidManifest文件当中添加网络权限:<uses-permission android:name="android.permission.INTERNET"/>下面是我们的首页布局:在这个布局当中我们将Volley框架的所有功能都做成了一个按钮,按下按钮之后就会在“显示结果”下面显示结果,显...
2024-01-10Android实现圆形图片或者圆角图片
Android圆形图片或者圆角图片的快速实现,具体内容如下话不多说直接上codexml文件布局<LinearLayout android:id="@+id/ll_headpict" android:layout_width="match_parent" android:layout_height="97dp" android:layout_margin="13dp" android:background="@drawable/shape_white_radius10_solid" android:gravi...
2024-01-10mysql之explain使用详解(分析索引)
explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。使用方法,在select语句前加上explain就可以了,如:explain select * from statuses_status where id=11;explain列的解释table:显示这一行的数据是关于哪张表的type:这是重要的列,显示连接使用了何...
2024-01-10详解mysql权限和索引
mysql权限和索引mysql的最高用户是root,我们可以在数据库中创建用户,语句为CREATE USER 用户名 IDENTIFIED BY '密码',也可以执行CREATE USER 用户名 语句来创建用户,不过此用户没有密码,可以将用户登录后进行密码设置;删除用户语句为DROP USER 用户;更改用户名的语句为RENAME USER 老用户名 to 新用户名;...
2024-01-10vmware导入ova文件踩坑记小结
问题来源众所周知,所有的网络行为都会产生相应的网络流量,那么所有的网络攻击行为也有其对应的流量特点,那么是否能根据流量特点进而分析出其对应的是什么攻击行为呢?我在虚拟机上使用vulnhub的靶场环境进行模拟攻击,然乎使用wireshark进行抓包分析流量。问题出现因为vulnhub的环境是ova文...
2024-01-10js实现验证码干扰(静态)
本文实例为大家分享了js实现验证码干扰的具体代码,供大家参考,具体内容如下效果代码<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style> *{ padding: 0; margin: 0; } canvas{ background: #272822; } </style> </head> <body> <canvas id='canvas' width='800' height='500'></ca...
2024-01-10java字符流缓冲区详解
本文实例为大家分享了java字符流缓冲区的具体方法,供大家参考,具体内容如下1. 为什么要缓冲区?程序频繁地操作一个资源(如文件),则性能会很低,此时为了提升性能,就可以将一部分数据暂时读入到内存的一块区域中,以后直接从此区域中读取数据即可,因为读内存速度比较快,这样提高...
2024-01-10Java中SSM+Shiro系统登录验证码的实现方法
先给大家展示下效果图:1、验证码生成类:import java.util.Random;import java.awt.image.BufferedImage;import java.awt.Graphics;import java.awt.Font;import java.awt.Color;/** * 验证码生成器类,可生成数字、大写、小写字母及三者混合类型的验证码。 支持自定义验证码字符数量; 支持自定义验证码图片的大小; 支持自...
2024-01-10浅析java 归并排序算法
归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已...
2024-01-10java之Object类用法实例
本文实例讲述了java中Object类用法。分享给大家供大家参考。具体如下:1、Object类是所有java类的基类如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类,ex:public class Person{ ~~~~~}等价于public class Person extends Object{ ~~~~~}2、Object类之equals方法①、Object...
2024-01-10ELF_PLEAD——BlackTech 黑客组织针对 Linux 的恶意软件
原文链接:https://blogs.jpcert.or.jp/en/2020/11/elf-plead.html译者:知道创宇404实验室翻译组前言在过去的一篇文章中,我们介绍了Linux恶意软件ELF_TSCookie,它被一个攻击组织BlackTech使用。这个组织也使用其他影响Linux操作系统的恶意软件。我们之前介绍的Windows的PLEAD模块也有Linux版本(ELF_PLEAD)。本文将ELF_PLEA...
2024-01-10RoarCTF2019 Writeup
作者:楼上请让路战队 时间:2019年10月22日黄金6年文件尾部有一段base64,解码为16进制可以看到是一个压缩包使用pr抽帧可以看到部分帧中有二维码,依次扫码即可得到key iwantplayctfforensic直接上volatility建议profile,直接用Win7SP1x86就可以。查看进程volatility -f mem.raw pslist --profile=Win7SP1x86可以...
2024-01-10asp.net core win系统下独立部署,窗口问题
在win系统下独立部署 就是直接运行exe有个黑窗口,这里有个弊端就是访问一次黑窗口上就会滚动出很多信息,这样访问量大应该会占用很多资源吧,如何关掉这个黑窗口都消息滚动。回答:这些是控制台的日志输出,修改配置中对应的LogLevel 即可,参考Logging in ASP.NET Core...
2024-01-10用formData传blob对象后台request.form取不到怎么办?
前端js代码 var reader = new FileReader(); reader.readAsArrayBuffer(file); //文件是excel文件 reader.onload = function () { //alert("load"); var blob = new Blob([reader.result]); ...
2024-01-10vscode 无法格式化 .vue 文件
如图所示,当我尝试格式化 .vue 文件时提示“抱歉,当前没有安装‘Vue’文件的格式化程序”。无法对 .vue 文件进行格式化缩进。已经安装了 Vetur 插件。在网上搜了一下,发现我这几乎是个例,想请问熟悉 vscode 的大佬是咋回事呢?回答:vscode需要修改下首选项:打开vscode,菜单栏选择 文件=》首选项...
2024-01-10vscode报错: 扩展ESlint无法格式化
如图:并不明白什么原因?回答:试试npx eslint 你的文件.js 看看能不能找到格式错误npx eslint 你的文件.js --fix看看能不能修复...
2024-01-10iOS UIButton 的 touchDown 事件
我的app是一个很普通的tabbar里嵌套navigationController的结构,里面要实现一个类似微信语音聊天的界面,那么我做了一个简易的底部栏用来放键盘输入和语音输入切换。在我实现语音按钮输入的时候,我给button添加了不同touchEvent的回调[longPressButton addTarget:self action:@selector(buttonTouchDown) forControlEvents:UIContro...
2024-01-10如何优雅的找出ArrayList中的重复元素?
故意强调了优雅,所以双循环什么的就别来了..先谢为敬回答:可以参考: public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("string1"); list.add("string1"); list.add("string1"); list.add("string1"); list.a...
2024-01-10