自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 操作系统、输入法和编码的理解

操作系统有一个输入法管理器,叫做IMM,管理系统内的所有输入法,或者说一个输入法想要使用操作系统提供的输入法API,就必须在IMM进行注册。

2023-04-14 14:41:52 755 1

原创 IC读卡器留下的dll坑0x000007b

dll的坑

2022-11-05 17:44:31 467

原创 使用git但是追踪了一些不必要的文件解决办法

1. 在.git同目录下添加.gitignore文件需要注意的是,.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。因此,需要把原来被追踪的文件从缓存中(暂存区中?)删掉。执行$ git rm --cached -r .后面的.的意思是所有文件,也可以使用通配符来指定部分文件。2.填写.gitignore文件比如:*.class/SdkLog/*.jar.idea*.iml/.classpath/

2022-04-01 17:02:14 614

原创 go的包管理学习

go如何使用自己写的包?1.gorootgo分两个重要的路径,GOROOT和GOPATHGOROOT路径指的是go安装的位置,包含go的编译器相关的文档,一般来说只需要配个环境变量就不需要考虑了。2.gopathGOPATH指的是工作目录。在windows平台上,默认的位置是C:\Users\用户名\go。gopath是干嘛的呢,就是所有的go项目应该都在gopath路径下。gopath目录下必须又一个src文件夹,所有的项目都在这个src文件夹下,当编译项目时,还会生成pkg文件夹和bin文

2021-12-11 09:06:31 276

原创 go结构体学习

1.func 后面的括号(c *BSNBaseChaincode)是什么意思?答:BSNBaseChaincode是一个结构体,类似于java中的类,但是结构体中不能存在函数。于是go使用这种方法把Set函数标记为BSNBaseChaincode的函数。相当于BSNBaseChaincode变成了一个类。并且c是一个生成的实例对象。*说明c这个对象调用Set方法是是按值传递还是按引用传递。参考:Go语言函数声明语法:函数名之前括号中的内容2.这是什么定义方式?string后面还跟着json答:

2021-12-08 21:00:21 154

原创 springboot下Static变量通过@Value和set方法注入失败的问题和解决办法

首先static变量是不能直接使用@value进行注入。但是也不是没有办法。操作如下:1.在这个变量的类上标上注解@Component2.通过set方法就可以,给在set方法上使用@Value注入。前提是set方法也不能是static类型的。如下:public static int dataFrameLength;public int getDataFrameLength() { return dataFrameLength;}@Value("${dataFrameLength}

2021-12-02 15:37:06 2235

原创 git学习

1.初始化进入某个目录,执行init命令,则git就可以管理这个目录,记录这个目录下的文件所有变化和历史版本。init命令在这个目录下会生成一个.git目录,.git文件下包含了objects目录和其它目录。2.文件对象(文件副本)git如何进行历史版本的管理呢?比如目录下有一个test.txt文件,可以通过git hash-object test.txt命令为这个文件生成文件对象blob,文件对象是什么呢?它是test.txt的副本,这样即使把test.txt删除了,也可以通过这个副本找回来。这个文

2021-11-23 20:51:07 404

原创 数据保护整理

1.数据在新时代的作用提高生产效率,产业创新。数据安全共享。2.数据风险2.1数据收集风险。收集你的数据进行分析、窃取、篡改伪造、删除某部分曲解原意。数据存储风险数据存在数据库被SQL注入、提权、缓冲区溢出、木马等方式被偷窃。数据使用风险用户信息被系统内部人员出售。数据加工风险数据被误删、机器故障失效等数据传输风险传输过程中被盗,比如网络攻击、获取cookie数据。数据提供风险数据提供给app,app未经授权交给其它厂商。和数据使用风险好像没区别。数据公开风险意识不到公开的

2021-11-10 08:30:38 565

原创 手机拍照的几个要点

1.像素没什么好说的,像素越高图片放大越不会失真,感觉也会更细腻,但是不放大的化肉眼看可能看不出来,苹果手机1200万像素照样可以打得过安卓1亿像素。2.镜头数量每个镜头都有不同的功能,一般包括主摄镜头、广角镜头、微距镜头、长焦镜头、景深镜头、人像镜头、黑白镜头。2.1广角镜头(超广角镜头)顾名思义,拍摄的角度更大,视野更广。有广角的话平常拍全身照可以靠近一点拍。角度更广可以拍到更有层次感的照片,比如可以拍到更多的天空,画面更开阔和大气。广角镜头的参数是mm,拿焦距来定义。焦距越短,越广角

2021-11-09 10:39:07 955

原创 关于去中心化身份的一点思考

我认为目前使用第三方的服务的关于身份的三种情况:1:不需要身份,随意使用,比如不需要账号就可以上B站浏览视频,享受B站提供的视频服务。2:可以是比较随意的账号身份,你可以随便注册一个账号,不填写身份信息。通过这个账号来进行使用第三方提供的历史浏览、留言、评论等服务。比如以前的QQ账号,这涉及到需不需要在网络中实名。现在这种情况很少见,多数需要你提供手机号码和邮箱,而手机现在已经实名认证了。3、必须使用现实身份,方便进行监管,比如你在网上发不良言论可以通过这个身份找到你。比如身份证,去政府办理业务就必须

2021-11-03 22:40:26 12856

原创 数字身份的一些应用和方案

身份处理主要解决两个问题:认证和授权。认证是证明你有某项权力,比如你住酒店,需要认证你是不是罪犯,认证可以是提交你的证照,或是让认证方向证件机构请求验证。二是授权,医院想要调用你的病历,你得给他授权,授权方式为使用你的私钥进行签名。同时隐私保护、跨应用的互操作性(解决跨应用合作、数据孤岛问题)、使用身份登录时是否代表了本人意愿(被盗号)也要考虑。**去中心化身份商业属性较弱。比较依赖公共机构牵头。以政府或者公共机构牵头建立的区块链数字身份系统,在早期更容易被广泛认可,更有希望形成社会共识。**当前去中心

2021-11-03 22:32:22 1312

原创 Hyperledger Indy 理解

Hyperledger Indy:一个使用 Libindy 构建 Indy 客户端的开发指南看得很懵,尝试理一理。背景就忽略了,简单来说就是学生Alice、Faver大学、银行Thrift想要使用Indy上的身份进行交互。这个一个Demo环境,我理解为搭建一个私链来进行模拟。步骤如下:1.初始化环境,也就是下载安装Sovrin区块链,和以太坊一样,通过修改配置文件比如修改网络id搭建一个私链。配置文件里还需要配置Steward角色,中文翻译为管家,他们管理着这个区块链。配置的这些Steward在生成

2021-11-02 17:23:35 14041 1

原创 eID是个什么东西

1.它是个芯片。出厂时,每个芯片都录入了标识符和编号。这个芯片非常小,只有0.19毫米。可以放入手机里面(现在的手机应该是集成了这个芯片),贴到SIM卡上,或植入银行卡里面。而且与他们互不干扰。芯片内部拥有独立的处理器、安全存储单元和密码运算协处理器,只能运行专用安全芯片操作系统,其内建芯片安全机制可以抵抗各种物理和逻辑攻击,确保芯片内部数据无法被非法读取、篡改或使用。用户开通eID时,智能安全芯片内部会采用非对称密钥算法生成一组公私钥对,这组公私钥对可用于电子签名,基本原理是:用户可以使用自己的eID

2021-11-02 00:34:15 3140

原创 ERC721关于NFT的学习和理解

ERC-721协议发行的货币是非同质化代币,以前搞ICO发的货币,是使用ERC-20发的区块链货币、同质化货币。2.ERC-721只是NFT稚嫩合约必须实现的最小接口,它包括代币管理、持有和交易功能。然而它并不包括代币元数据的相关内容,也缺少对一些实用的功能支持。也就是说,单纯的ERC-721上面只记录了一个TOKENID(NFT编号)的归属者,并不具体指明这个TOKENID所指向的物品是个什么东西,它的内容是什么,元数据是什么。一般的NFT合约都要加上其它功能。因此常用的组合为:ERC721...

2021-10-29 10:53:17 2917

原创 字节流和字符流到底怎么用

首先说明什么是流,流,可以想象为数据中的流水,水管里面流动的水,按顺序流出来。使用流进行数据文件的读写可以称之为流式读写,与之对比的是随机读写。流式读写也代表着顺序读写,比如一个word文档,只有按里面保存的数据顺序读出来才能还原里面的内容。你不可能先随便从某个字节开始读,一定是怎么存怎么读。因此对于一个流来说,如果想要获取文件中的第5个字节,那么你也只能先把前4个字节读出来,才能获取到第5个字节。对应的是随机读写就是可以从任意读取文件中的某一个位置的字节。从字面意思上来理解,读取一个.mp4文件得用字节

2021-10-25 19:07:13 1020

原创 fabric 简单理解

参考:fabric实战执行过程:1.客户端或sdk调用api把调用请求发送到所有的背书节点2.背书节点模拟交易执行,看看有没有问题,没有问题就给调用的客户端或sdk返回读写集,并对其签名。3.sdk收到足够的签名(背书)后,把读写集/交易发给排序节点,排序节点进行排序后继续转发给所有记账节点(包括之前的背书节点,从记账节点之中选出几个作为背书节点)。需要说明的是排序节点为防止单点掉线,也是多个节点组成,他们有共识机制保持同步,比如kafca机制。4.所有节点对交易进行验证,验证通过后记账,也就是修

2021-10-24 14:28:33 10891

原创 MyBatis之使用JSONObject代替JavaBean优雅返回多表查询结果

项目中需要返回多个表的查询结果,比如user表中的用户信息和user个人的所在班的班级信息。目前我们有user实体类和class实体类。一般情况下如果是单表查询,比如查询user信息,那么查询的返回值就是一个user对象或一个user对象列表。但是像这种情况涉及两个表的话,查询结果的返回值该是什么呢?解决办法:1.user表的属性里添加一个class的属性。2.新建一个类SserClass,包含user类和class类的内容。3.使用JSONObject!第一种办法需要修改user类的内容,如果是

2021-10-20 22:10:22 3890

原创 2021-10-20开发计量系统遇到的问题之--1启动mysql--2mybatis谨慎注释--3mybatis返回多表查询结果

1.数据库没有启动.电脑关机了,启动后运行发现数据库出问题了。应该是mysql没有运行起来。网上百度了如何启动mysql都没起作用。最后通过:计算机管理–》服务和应用程序–》服务 下找到mysql80,双击启动。成功解决问题。2.mybatis的xml中的注释问题出去玩了几天,回来后发现代码运行不起来了,之前还好好的。报错是多了一个变量名,查了好久也没有找到这个变量名在哪出现,后来看到注释里边有,于是尝试把注释去掉,居然运行成功了!神奇!这是后来加上去的,但是觉得没什么必要就给注释上了,没想到注释

2021-10-20 21:47:59 68

原创 JavaScript是如何同时做到单线程和异步执行的

参考:JavaScript 运行机制详解:再谈Event Loop根据上图,也就是说,异步的结果得有其它线程帮忙。但是按照上面的理解,JavaScript也就是先执行同步的代码,后面执行的全都是异步的代码了,换一个方式说,后面执行的都是其它线程交过来的代码。关于任务队列的理解,它到底算是js线程的还是其它线程的?答:它是浏览器内的一块堆内存,由所有线程共享。...

2021-10-13 15:10:26 120

原创 栈的三种含义

内容来自:栈的三种含义1.数据结构,有push、top、pop三种方法来读取数据2.方法调用,也就是调用栈,方法1里面调用方法2,就得使用这种调用栈。因为先执行方法1,然后执行方法1里面的方法2,等方法2执行完返回了,再把方法1执行完返回。方法1先执行但后出来。3.方法里面的局部变量的内存也是使用栈来保存。不太理解,这种栈好像不是先进后出的方式,因为局部变量的访问是随机访问的吧,不是只能访问最外层的数据。...

2021-10-13 11:13:43 145

原创 关于学习这件事

老是发现学不到什么东西,具体来说是怎么样才算学到了东西,或者说怎么学。就拿学习以太坊来说,我在B站快速刷了尚硅谷的以太坊教程。没有跟着敲代码,因为是2018年的教程,目前改版比较大。也没做笔记。觉得看完了吧,好像概念都比较清楚了,但是让我开发一个DAPP,开发一个智能合约。还真不会。所以说我学到了什么,顶多是一些概念性的东西罢了,甚至有的概念还不是特别清晰。所以说,学习必须要注意一下几点:1.最好有一本书,视频里的教程只会挑重点讲,那么一些我不理解可能比较基础的东西,我就不会了,如果有一本书,那么

2021-10-11 16:47:43 112

原创 数据泄露和DID

如果把用户的账号比作身份证的话。DID就是你拿身份证去银行办事,当你出示了身份证,银行就会给你提供服务。不用DID的话,就相当于银行收集了所有人的身份证,你去银行了,银行从它的仓库里找到了你的身份证,于是给你提供服务。这种情况下,黑客攻破了银行的仓库,所有人的数据就都泄露了。传统的身份验证机制比如微博账号、qq账号、微信账号都是这样子的。DID是一个随意指定的一个ID号。可以理解为DID只是身份证上的身份证号,这个身份证号有意义的原因在于有权威部门比如公安部进行了签名,同时还有一个 创建这个DID的人

2021-10-08 10:41:28 810

原创 以太坊理解

1.钱包,钱包是一个程序,主要原理是使用rpc远程调用,和以太坊上的某个节点进行交互,也就是和以太坊进行交互,同时钱包重要的功能还有对以太坊账户的管理。2.以太坊只有黄皮书,里面定义了以太坊的协议,以太坊的客户端只要按照以太坊协议来实现,比如开放固定的端口等,就视为一个以太坊节点。比较知名的客户端有geth,默认被视为”官方客户端“,使用go开发。可以用它来搭建本地私链,不过本地私链只有一个节点,我感觉意义不是很大,作为合约的测试环境还可以。3.以太坊有很多链,我们常说的以太坊是以太坊主链,链id为1,

2021-10-04 15:13:25 736

原创 畅捷通二次开发过程的理解

背景:公司购买了T+客户端,但是T+客户端的功能不能完全满足公司需求,因此需要创建一个应用,这个应用需要读写某个购买t+客户端的公司的t+客户端后台。这个应用在畅捷通开发平台上,公司可以在畅捷通开发平台购买这个应用。第一步,软件开发商注册畅捷通账号,在畅捷通开发平台上创建应用,创建应用需要填写软件开发商企业账号信息,还有两个回调地址。第一个OAuth回调地址的本意是在畅捷通开发平台上点击这个应用会转到该地址。也就是说进入该应用,同时会给一个授权码。第二个正式消息接收地址回调地址的本意是确定软件开发商的开发

2021-10-03 13:10:00 2046

原创 SpringBoot使用mybatis

项目构建:模型模型依赖选择Mysql Driver 和 MyBatis Framework.准备工作:1.创建实体类,包含get方法和set方法。2.配置文件配置数据库信息,比如数据源,数据库名,用户,密码等如果数据库驱动报红,那是因为mybatis的maven以来设置的运行时依赖,springboot在编译时找不着,运行时是没问题的使用方法:#纯注解方式:1.定义一个接口,注解@mapper2.接口内定义一个方法A,并且使用@Select注解,注解的参数为sql语句,那么调用该方法A

2021-10-02 22:09:06 2804

原创 Java中关于路径和使用exe4j打包成ext可执行程序的一些小总结

需求是这样的,假设你的Java程序启动的时候要读一份配置文件,或者一个dll链接库,或者一个jar包,假设是dll好了,那么你的dll到底应该放在哪比较合适?1.代码中使用绝对地址,这个是最好理解的,在代码中写好了绝对地址,那么程序肯定能找得到,缺点是当你的程序移植到了新的电脑上,那么这个绝对地址很有可能就失效了。2.使用相对地址,这个就比较人性化了,也是常用的方式,使用相对地址前,首先要搞清楚的是相对地址是相对于谁的地址。我总结了三种情况。相对于某个class文件的地址相对于classpath路

2021-07-28 20:02:31 455

原创 jsp页面返回文本时产生大量空格的解决办法

产生空格的原因。使用<% %>时会产生一个回车空格符号,这个回车空格符号也会发给前端。解决办法:在jsp页面上添加<%@ page trimDirectiveWhitespaces=“true” %>参考:JSP去除多余空格方法以上链接中的方法二和方法三我试了不管用。...

2021-07-25 16:09:56 607

原创 关于跨域 Response to preflight request doesn‘t pass access control check

做项目的时候由于访问了不同的服务器,然后导致了跨域问题,报错情况为:has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: Redirect is not allowed for a preflight request。从网上找了解决办法,也就是采用CORS方案,在要访问的跨域服务器上的返回页面加上标头:response.setHeader(“Access-Con

2021-07-23 11:09:12 58529 3

原创 eclipseweb开发遇到的bug

1.一进入另一个函数openDevice(),我的list变量立马为null,而我的list确实定义为全局变量。原因:我在函数doservice里调用了openDevice(),在doservice里我的list还是正常的,但是一旦调用openDevise,我的list立马为空,原来是我在openDevice里重新给list定义了一次!导致list在doservice里边变成了它的局部变量。2.在启动tomcat时,会报错classnotfound和找不到包的错误,去tomcat部署路径下一看,我的ja

2021-07-23 10:59:13 102

原创 跨域加了header也解决不了?

1.在jsp页面加header根本没有用,请求压根到不了jsp里面。像这样:2.我使用servelet的监听器,跨域问题成功解决!跨域知识:跨域资源共享 CORS 详解

2021-07-22 22:34:17 282

原创 Java调用jar包测试

环境:在桌面的testjar文件夹下有三个文件夹aa,bb,hello,对应四个类,aa下有类A,放在aa包中,bb下有类B,放在bb包中,hello\lzz下有类HelloWorld和类HelloWorld2,放在hello.lzz包中,其中helloWorld调用A类和B类的方法,HelloWorld2中谁也不调。还有aa文件夹生成的jar包aaa.jar,bb文件夹生成的bbb.jar。现在我想调用aaa.jar包中的A.class中的方法。先把cmd调到桌面目录:尝试执行,未成

2021-07-21 16:01:32 1734

原创 Java为什么我们现在有时不用环境变量就可以运行了

参考链接:Java环境变量,真的还有必要配吗?首先你的JDK应该是使用工具安装的,而不是直接解压使用才不需要配置环境变量。因为在安装的时候安装程序已经给你配好了。但和我们自己配置的有区别。在安装完java1.8以后,可以看见系统变量中的path路径下有一项然后我们去这个目录下一看:好家伙,还把这些工具复制到这里。所以当我们使用java命令的时候,就是使用这里的java.exe而不是你java安装目录下的java.exe了。...

2021-07-21 10:26:27 2474 3

原创 关于JAVA调用dll的学习总结

首先是背景:1.程序猿小明要使用Java程序来调用IC读卡器,由于Java没有相关方法直接调用读卡器,目前只有C或C++语言能调用读卡器的驱动来控制读卡器,因此得先使用C或C++写完操作函数,封装成dll的形式供Java调用。但是直接使用C++生成的DLLJava并不能调用,所以得通过jni。要怎么做呢?1.第一步不是直接写dll然后生成dll然后再写Java类直接调用!!!这跟C++使用动态链接库是有区别的!2.那第一步不写DLL那是干嘛呢?那肯定是写Java类了!首先是规划好并写一个Java类,

2021-07-18 21:41:43 638

原创 MFC开发activex控件给前端js调用的那些坑

regsvr32 /s …代码为5。这是因为activex控件生成后开发工具会自动调用 regsvr32命令向系统注册activex控件,关于系统的东西都要比较谨慎,所以注册失败,因为权限不足,解决方法是使用管理员命令打开你的开发工具。还有一种方法是项目->属性->链接器->常规->逐用户重定向,如果是是就改为否,如果是否就改为是。总之就是换一下。2.activex控件只有IE浏览器支持,连edge也不支持,所以千万别用错了浏览器!3.如果自己使用cmd注册activex控件,.

2021-07-14 20:33:10 183 1

原创 程序包不存在?无源文件?找不到文件?找不到或无法加载主类?

1.首先在电脑桌面上创建一个test文件夹,然后使用记事本写两个单纯的Java类里边,分别是HelloWorld.java和BeInvoking.java,目标是HelloWorld调用BeInvoking.java里边的方法。首先在test的上一级目录也就是桌面上尝试进行编译。首先把cmd调到test的上一层目录上,也就是桌面路径,尝试进行编译。找不到文件,因为桌面上没有这两个文件,可以理解。然后i进入test目录,再尝试编译执行。执行成功,因为HelloWorld.java调用了BeIn

2021-07-13 20:55:13 1794

转载 cpu与外设工作原理

总结来说,就是插上外设后,cpu就可以检测和连接到外设上的寄存器,把它当成内存来使用,然后就是对这些寄存器进行读写,写控制寄存器来控制外设,读状态寄存器来检测外设状态(外设会把当前状态信息放到指定寄存器上),通过读写数据寄存器来交换数据。一直以来,发现很多搞上层软件的朋友没有时间了解CPU、编译器、操作系统等底层技术,偶恰好在计算机微体系结构与集成电路实验室,有幸接触到这些底层的东东,所以想写一些自己以前学这些东东的感想,以消除对底层技术不熟悉的朋友对底层技术的神秘感,同时想和搞底层技术的朋友切磋切磋,

2021-07-09 14:44:50 5072

原创 汉字在屏幕上的显示过程以及乱码的原因

一、汉字在计算机中的显示过程要想在计算机的显示器上显示文字,首先你得写一个程序,这个程序有一个功能就是把文字的编码和显示信息发给显卡,显示信息包括在这个屏幕上的输出位置、字的大小等等。然后显卡就知道怎么显示这个字符了。屏幕上是如何显示文字的原理是什么呢?屏幕上其实有很多个小灯,小到肉眼看不见,当他们不亮时,屏幕就是黑色的,当他们亮了一部分,如果那一部分刚好是个文字的形状,那么屏幕上就显示文字了。这个原理就跟军训时人摆文字显示字符一样。如下图,通过人摆文字显示出了100。放到显示器上,每个人相当于屏幕上

2021-07-09 14:31:48 3709

原创 关于汇编中vstart的作用

在NASM中,声明一个段:section a align=b vstart=ca 表示段名b 表示对齐的字节数c 表示段内汇编地址的开始点。即vstart声明的是该段的地址或者说段号。具体如下(注意这程序定义变量没有变量名):1.section data1什么标记也没有,按照正常来。第一个字节就是55,第二个字节是$$,即该段的位置,该段的位置是多少呢,因为是第一个段,默认为0,从0开始。然后编译器读到$,代表当前行的标号,也就是当前行的地址。这里就可能产生混淆了,当前行?谁的行?是存放$$内

2021-07-05 16:05:48 2668

原创 关于文件系统

文件和文件系统

2021-07-04 20:24:57 77

原创 关于程序为什么要代码段,程序段

分段就是把相关数据凑到一起,我们都知道计算机指令是一条一条往下进行的,在循环取指令、执行指令的操作。那么计算机如何取得下一指令的地址呢?进行分段就好办了,因为下一条指令就在往下下一个内存的位置嘛!我们在写程序时,经常是数据定义和操作混在一起写,并没有分成数据段和代码段啊,那是因为,编译器帮我们分好了!具体参考:代码中为什么要分代码段、数据段?gcc编译生成可执行文件的过程中发生了什么目标文件里到底有什么?8086的储存器分段结构...

2021-07-04 20:23:13 223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除