- 博客(191)
- 收藏
- 关注
原创 微信扫码闪退bug
当然如果不幸打开过,可以尝试用清空聊天记录,或者清空那张图片的方式来避免再次中招,看了一下从事安全朋友们的分析,说是某讯在arm实现的BLAS矩阵库有bug, 导致arm机型在qr识别时,全部中招,鸿蒙无这个问题。一些小内存手机甚至需要重置手机才可以。二维码本质上就是一个url网址,扫码,解析出这个网址并访问。好奇的话尝试一两次就可以了,别尝试次数太多,下面的这个也是。今天发现好多人在发这个bug, 我也跟一下风,下面的二维码先别扫,移动端打开就会闪退哦。详细代码见文章最后,下面是部分代码。
2023-04-24 13:40:39
487
原创 java易错题锦集系列五
接口中不能有构造方法,抽象类中可以有。抽象类中构造方法作用:初始化抽象类的成员;为继承它的子类使用定义在同一个包(package)内的类是可以不经过import而直接相互使用final修饰的方法可以被重载 但不能被重写从设计层面来说,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。
2023-02-28 11:16:49
400
原创 java易错题锦集二
链接:1、栈区:由编译器自动分配释放,具体方法执行结束后,系统自动释放JVM内存资源。其作用有保存局部变量的值,包括:1.用来保存基本数据类型的值;2.保存类的实例,即堆区对象的引用。也可以用来保存加载方法时的帧。2、堆区:一般由程序员分配释放,JVM不定时查看这个对象,如果没有引用指向这个对象就回收。其作用为用来存放动态产生的数据,包括new出来的实例,字符数组等。同一个类的对象拥有各自的成员变量,存储在各自的堆中,但是他们共享该类的方法。
2023-02-10 12:14:10
555
原创 kali超详细安装CUDA,安装java,安装go, docker
开机之后就会惊奇的发现搜狗输入法没反应,点击右上角的键盘图标才会有反应,但要输入的时候又没有反应了,而且无法切换输入法,也无法激活输入法, (而且输入法默认配置的是搜狗啊,但就是用不了)卸载重装也不好使。零件买回来组装了一下,先是装了win10,更新了显卡驱动,用娱乐大师跑分了一下,2020以后,他会根据安装系统地域自动选择比较快的源。在输入,就会发现全是乱码,按网上解决办法,没有用。版本之前一个重要的环境变量配置,是存放。这个没什么可讲的吧,解压,然后放到。的时候是没有问题的,在添加完。
2022-09-12 17:06:41
1853
2
原创 Cannot run program “G:\Java\bin\java.exe“ (in directory “C:\compile-server“): CreateProcess error=2,
Cannot run program "G:\Java\bin\java.exe" (in directory "C:\compile-server"): CreateProcess error=2, 系统找不到指定的文件
2022-06-26 21:22:13
1475
1
原创 Gin POST前后端交互
欢迎访问我的博客,更多内容点击这里获取表单数据 单个name核心:c.PostForm("username")DefaultPostForm如果没有获取到则使用指定的默认值contxt.DefaultPostForm("username", "hallen") 前端<form action="/test" method="post"> <input type="text" name="username"><br> <input ty
2022-05-03 19:30:34
704
原创 Go routine线程池&&并发场景
欢迎来到我的博客,更多文章点击这里并发,并行,串行部分参考节选自优快云博客:通俗理解:吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。 (不一定是同时的)吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。普通解释:并发:交替做不同事情的能力并行:同时做不同事情的能力专业术语:并发:不同的代码块交替执行并行:不同的代码块.
2022-04-20 15:54:51
361
原创 Go-multipart/form-data请求抓包详解
欢迎来到我的博客背景本文有一个疑问一直没有解决,诚心请教,有知道的大佬可以留言一下,不胜感激,点击这里跳转最近在写一个图床小工具,整合读写剪贴板中的图像读取到内存添加水印,(可供选择的文字水印和图像水印)将图像通过协议发送到图床,(目前是对接的自己的图床)遇到的难点从剪贴板中读取图像保存剪贴板中的图像multipart/form-data发送multipart/form-data``code以及抓包代理配置代理这样配置代理,让代码请求走抓包软件,方便分析请求// htt
2022-04-08 12:47:54
1789
2
原创 Android tcp、okhttp请求&&python tcp&&a bytes-like object is required, not ‘str‘
更多内容欢迎来到我的新博客blog.devilwst.top更多内容欢迎来到我的新博客blog.devilwst.top首先声明一下,本文部分代码来自于博客Android public static void GetByHttpURL(final String url) { new Thread(new Runnable() { @Override public void run() { try {
2022-03-22 23:31:59
4473
原创 --go_out: protoc-gen-go: Plugin failed with status code 1.
更多博客见-----小生听雨园---------更多博客见-----小生听雨园---------见具体错误信息proto代码如下syntax = "proto3";package helloworld;message Student{ string tag = 1; message Tmp{ message Line{ string line_name = 1; int32 status = 2; int32 ss = 3; int
2022-03-17 22:11:56
4031
原创 Frida踩坑 can‘t decode byte 0xc0 in position 86 , can‘t decode byte 0xc0 in position 86
更多博客见http://blog.devilwst.top更多博客见http://blog.devilwst.top完整错误今天调试app的时候出现一个错误{'type': 'error', 'description': "Error: can't decode byte 0xc0 in position 86", 'stack': "Error: can't decode byte 0xc0 in position 86\n at frida/runtime/core.js:144\n at f
2022-03-13 20:10:12
5931
5
原创 apifox接口测试管理工具快速入门
更多内容,欢迎来到我的个人博客==http://blog.devilwst.top==安装apifox 官网apifox 文档使用初识创建并使用项目可以创建分组,创建子分组相知:设置前缀及公共请求头在使用接口前先创建环境可以先设置前缀url设置公共请求头甚至可以设置cookie等,这样每一个使用该环境的接口请求时都会带上该请求头接口定义基本定义状态这里设置的很好,可以自定义接口状态,是在开发,测试还是在什么阶段,方便管理接口鉴权认证bea
2022-01-20 22:20:52
2093
原创 Docker初识——安装
欢迎到我的新博客blog.devilwst.top欢迎到我的新博客blog.devilwst.top 。由于某些原因,csdn属实不太方便,目前暂时不打算再更新csdn啦基本组成镜像(Image)镜像可以理解为一种构建时(build-time)结构,而容器可以理解为一种运行时(run-time)结构容器(Container)容器是一个轻量级(lightweight)、独立的(stand-alone)和包含一系列软件能够执行的程序包仓库(Repository)Docker容器是镜像的运
2022-01-19 20:39:11
865
原创 路径总和 leetcode——递归+回溯
写在题首的话:欢迎来到我的个人博客,更多内容请点击blog.devilwst.top题目leetcode:113代码与解析这道题可以看做leetcode112和leetcode257合体leetcode257leetcode112这道题要遍历整棵树, 把所有符合条件的路径添加进去, 所以不需要返回值递归三部曲:确定参数和返回值要传入 当前节点, 和总和, 不需要返回值确定终止条件如果当前节点没有叶子结点,并且和等于target. 那么添加进res, 并返回如果当前节点没
2021-12-17 12:35:44
480
原创 千万数据量秒级查询
**详情见我的博客小生博客**双链表应用——千万数据量秒级查询原理利用双链表,将数据全部读入内存,将读到的数据头插插入双链表,因为链表头插效率高然后在内存中检索数据,检索到就输出代码片段// 读取文件file,_ := os.Open(path) // 打开文件br := bufio.NewReader(file) // 读出文件对象for{ line,_,end := br.ReadLine() if end == io.EOF{ break //文件结束跳出循环
2021-11-30 23:30:05
1320
原创 Go项目实现优雅关机与平滑重启
Demo快速上手优雅关机package mainimport ( "context" "github.com/gin-gonic/gin" "log" "net/http" "os" "os/signal" "syscall" "time")// 实现优雅关机和平滑重启func main() { router := gin.Default() router.GET("/", func(c *gin.Context) { // 这个10秒的延时。是为了演示操作方便,实际
2021-11-30 23:26:26
1023
2
原创 Viper——Go配置一站式解决方案
安装go get github.com/spf13/viperDemo快速上手func main() { // 设置默认值 viper.SetDefault("fileDir", "./") viper.SetConfigName("config") // 配置文件名称中没有扩展名 viper.SetConfigType("yaml") // 如果配置文件没有扩展名,这需要配置此项 viper.AddConfigPath("./")
2021-11-30 23:25:04
1693
原创 内燃机设计课设 过量空气系数与温度表对应关系自动查询
最近几个星期一直在做内燃机设计的课设,学习进度很慢,有几天甚至停了,虽说现在也没有做完!!!!!!!!!!!!!!!!!!!!!!!大概是这个表, 给定过量空气系数,表中没有的数据要用插值法算,一般要用三次插值法,我是想的挺头秃的,还好整出来 了。我是用的二维数组,然后结构体存每一个节点的数据,map存一列过量空气系数相同的结构体, 然后查找的时候可以断言后用索引.value直接找到值。源码的话,过一段时间更新在gitee上吧。...
2021-11-07 00:01:13
411
原创 Go算法学习01——二分法和双指针法
二分法基本思路是利用查找中间值,将中间值和target比较,判断,target在左区间还是右区间, 如果nums[mid] > target ,则说明target在左区间right赋值为mid - 1, 如果nums[mid] > target, 则说明target在右区间,更新left = mid + 1func search(nums []int, target int) int { high := len(nums)-1 low := 0 for low &
2021-11-06 12:59:23
357
原创 Go学习的一点心得
比如说下面这段程序for i, tl := 0, len(t); i < tl; i++{ if t[i].method != httpMethod{ continue }}初始化的时候就赋值了tl, tl 等于 t 的长度,这样避免了每次循环动态的计算长度,减少了内存消耗。比下面这样写好for i := 0; i< len(t); i++{}...
2021-10-31 14:12:11
229
原创 Go 结构体指针初始化
今天遇到一个这样的问题同样都是查询,上面的就不需要new, 而下面的就需要new请教了一下大佬,下面的是一个结构体指针,需要分配内存才能使用在别的地方也找到了印证,(尽管之前博客提到过这个问题,)官方文档// The new built-in function allocates memory. The first argument is a type,// not a value, and the value returned is a pointer to a newly// all
2021-10-20 22:48:35
2151
原创 Go基础——网络编程
16网络编程16.1tcpclient建立与服务端的链接进行数据收发关闭链接func main(){ //与服务端建立连接 conn, err := net.Dial("tcp", "127.0.0.1:20000") if err != nil{ fmt.Printf("dial failed:%v\n", err) return } input := bufio.NewReader(os.Stdin) for{ s, err := input.ReadString
2021-10-11 21:56:18
90
原创 python面试题
1.运算符is和==有什么区别is比较两个变量内存地址是否相同==比较的是两个变量的取值时候相同2.a = {1,2,3} b = {3,2,1} a==b ? a is ba == bTrue因为集合无序a is bFalse3.python对象中的浅拷贝深拷贝import copya = ('a', 'b', 'c')b = ac = copy.copy(a)d = copy.deepcopy(a)print(b,c,d)print(id(b))print
2021-10-11 21:55:02
195
原创 Go基础——反射和并发编程goroutine
14反射在Go语言中反射的相关功能由内置的reflect包提供,任意接口值在反射中都可以理解为由reflect.Type和reflect.Value两部分组成,并且reflect包提供了reflect.TypeOf和reflect.ValueOf两个函数来获取任意对象的Value和Type。在反射中关于类型还划分为两种:类型(Type)和种类(Kind)。因为在Go语言中我们可以使用type关键字构造很多自定义类型,而种类(Kind)就是指底层的类型,但在反射中,当需要区分指针、结构体等大品种的类
2021-10-11 21:54:17
143
原创 Go基础——包管理和接口
12.包一个包可以简单理解为一个存放.go文件的文件夹。 该文件夹下面的所有go文件都要在代码的第一行添加如下代码,声明该文件归属的包。一个文件夹下面直接包含的文件只能归属一个package,同样一个package的文件不能在多个文件夹下。包名可以不和文件夹的名字一样,包名不能包含 - 符号。包名为main的包为应用程序的入口包,这种包编译后会得到一个可执行文件,而编译不包含main包的源代码则不会得到可执行文件。变量名首字母为大写则,它是共有的,对外可见12.1不在同一个项目下src
2021-10-09 21:13:30
249
原创 Go基础——结构体
11.结构体11.1自定义类型自定义类型是定义了一个全新的类型。我们可以基于内置的基本类型定义,也可以通过struct定义type newint int通过type关键字的定义,newint就是一种新的类型,它具有int一切的特性。11.2类型别名type byte = uint8type rune = int32区别:type newint inttype nwt = intfunc main() { var a newint var b nwt fmt.Printf(
2021-10-09 21:08:19
221
原创 Go基础——指针
10.指针go语言是值传递, 例子如下func main() { // a := 100 // b := &a // 取a地址,将指针保存到b中 // fmt.Printf("type of b:%T\n", b) // c := b // 根据指针取值 // fmt.Printf("type of c:%T\n", c) // fmt.Printf("value of c:%v\n", c) x := 10 changeValue(x) fmt.Println("x:",
2021-10-09 21:05:32
149
原创 Go基础——map与函数
8.mapkey-value, 无序,引用类型引用类型必须初始化以后才能使用,只是var定义了,并不能直接使用8.1定义map[KeyType]ValueTypemap类型的变量默认值是nil需要使用make来分配内存make(map[KeyType]ValueType, [cap])cap表示map的容量,该参数不是必须的,但应该在初始化的时候就为其制定一个合适的值score := make(map[string]int, 8)score["python"] = 1score["j
2021-10-03 21:56:24
370
原创 Go基础——数组和切片(一个固定长度一个可变长度)
6.数组1.定义数组var 数组变量名 [元素数量]Tvar aa [2]int2.初始化数组2.1使用初始化列表 var aa [2]int var aaa = [2]int{} var testArray = [3]int{1, 2, 3} var strArray = [3]string{"akamai", "geetest", "ali"} fmt.Println(aa) fmt.Println(testArray) fmt.Println(strArray)
2021-09-27 20:26:12
3432
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人