- 博客(47)
- 收藏
- 关注
原创 PSI5协议学习笔记
发送端在发送串行数据的同时,提供一个,并按照一定的约定(例如:在时钟信号的上升沿的时候,将数据发送出去)发送数据。接收端按照相同约定解析数据。:接收方并不知道数据什么时候会到达,收发双方可以有各自自己的时钟。发送方发送的时间间隔可以不均,接收方是在数据的起始位和停止位的帮助下实现信息同步的。:1)同步通讯不需要辅助位,约定好上升下降沿发送数据即可。异步通讯需要很多辅助位,帮助识别开始和停止等。2)同步通讯不需要约定时钟,自带时钟。异步通讯需要约定好时钟信号(波特率)。
2025-02-06 13:48:33
339
原创 Microsoft Edge 浏览器开发控件WebView2 尝鲜_microsoft edge webview2
官方消息: WebView2 控件使用 Microsoft Edge (Chromium) 作为呈现引擎在应用中显示 Web 内容。WebView2 作为 WINDOWS UI 库 3 (WinUI3) 的一部分提供。利用WebView2,你可以方便的开发有关网页内容的混合界面。
2025-02-06 03:44:20
321
原创 Metal新特性:大幅度提升iOS端性能
众所周知,Metal Shading Language是Apple为开发者提供的Shader编程语言,Metal会将编程语言编译成为一个叫做AIR的中间产物,然后AIR会在设备上进一步编译,生成每个GPU所需的特定的机器码。整个过程如下图所示:上述过程在每个管线的生命周期中都会发生,当前Apple为了加速管线的重新编译和重新创建流程,会缓存一些Metal的方法变体,但是这个过程还是会造成屏幕的加载耗时过长。而且在当前的这个编译模型中,应用程序不能在不同的PSO(管线状态对象)中重用之前生成的机器码子程序。
2025-02-06 03:42:39
931
原创 kbone 高级 - 使用小程序内置组件(一)_kbone引入公用css文件
需要明确的是,如果没有特殊需求的话,请尽量使用 html 标签来编写代码,使用内置组件时请按需使用。这是因为绝大部分内置组件外层都会被包裹一层自定义组件,如果自定义组件的实例数量达到一定量级的话,理论上是会对性能造成一定程度的影响,所以对于 view、text、image 等会被频繁使用的内置组件,如果没有特殊需求的话请直接使用 div、span、img 等 html 标签替代。部分内置组件可以直接使用 html 标签替代,比如 input 组件可以使用 input 标签替代。目前已支持的可替代组件列表:
2025-02-05 23:46:10
843
原创 Kafka(一)使用Docker Compose安装单机Kafka以及Kafka UI_docker 部署单机kafka
还有就是,当使用任何来自于bitnami的镜像,如何遇到了问题,想查看日志,可以将镜像的Debug日志打开,通过环境变量控制由于Docker Hub的说明字数限制,可以在Github上查看。
2025-02-05 23:44:22
1068
原创 Java小题精炼训练营(篇二)
C:属于java堆内存问题,一般的手段是通过内存映像分析工具,对Dump出来的堆转储存快照进行分析,重点是确认内存中的对象是否是有必要的,也就是要判断是出现了内存泄漏,还是出现了内存溢出,如果是内存列楼,通过工具检查泄露对象打GC Roots的引用链信息,可以准确的确定出泄露代码的位置,不存在泄露,就应该检查虚拟机的堆参数,如果可以继续调大,可以设置-Xmx解决问题。17、下面哪些类可以被继承?"change"方法运行时,第一条语句改变的是方法中形参的值,对实参没影响,第二条语句由于是直接改变的ch。
2025-02-05 19:29:29
706
原创 ES6中的this指向问题
因为get方法定义在类里,它是属于实例对象的,所以我们需要告诉别人是哪一个对象调用的get方法,所以需要加this,因为this就是指向的我们创建的实例化对象。上面这段代码中,我们通过stu对象来手动调用的get方法,那如果想在创建实例化对象的时候就调用它呢?如果我们在下面打印stu.get()的时候,this指向的还是实例对象,当只有我们点击按钮时,get中的this才指向btn。一句话总结:constructor里面的this指向实例对象,方法里面的this指向这个方法的调用者。最后的输出会报错吗?
2025-02-04 15:53:23
378
原创 C++进阶之路---多态(一)
多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。那么在继承中要构成多态还有两个条件:1.必须通过基类(父类)的指针或者引用调用虚函数2.被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写(重写条件:函数名/参数/返回值相同 协变例外)
2025-02-04 11:25:59
708
原创 C++标准库STL部分代码学习(源码之前,了无秘密)
include// alloc是SGI STL的空间配置器public:// vector的嵌套类型定义,typedef用于提供iterator_traits支持protected:// 这个提供STL标准的allocator接口// 表示目前使用空间的头// 表示目前使用空间的尾// 表示实际分配内存空间的尾// 释放分配的内存空间// 由于使用的是data_allocator进行内存空间的分配,
2025-02-04 11:24:16
778
原创 Android中的多种对话框样式详解_手机端多选框样式
对话框中显示的View对象,除了直接new一个指定的组件,也可以使用布局文件来定义一个布局,然后填充成View对象,用这样的自定义View可以让对话框可以显示出很复杂的内容。这个对话框的内容是用布局文件定义的,很明显,是一个水平线性布局包裹一个输入框和一个文本框,这个布局文件比较简单,代码就不展示了。如果需要给用户提供的选择比较多,就不要使用按钮了,按钮过多对话框会很不好看,我们可以设置一个列表,在列表中列出所有提供的选项。,重写里面的方法,同样可以实现自定义对话框的样式。,我们可以定义一个类直接继承。
2025-02-04 05:51:39
500
原创 Android Framework重要服务之InputManagerService(一) 启动流程_android inputmanager
/ 启动运行 InputDispatcher(InputDispatcherThread) InputReader(InputReaderThread)线程。// 获取messageQueue,该messageQueue由java传入, mHandler.getLooper().getQueue()// 将jlong转为NativeInputManager指针。// 初始化InputDispatcher。// 初始化InputReader。// 启动dispatcher线程。
2025-02-03 18:59:59
596
原创 spark学习-rdd算子_rdd 18
其中,键值对中的 Key 为第 1 个 RDD 中的元素,Value 为第 2 个 RDD 中的相同位置的元素。在类型为(K,V)和(K,W)的 RDD 上调用,返回一个相同 key 对应的所有元素连接在一起的 (K,(V,W))的 RDD。),第二个括号内第一个参数表示分区内进行的操作,第二个参数表示分区间进行的操作,分区内和分区间的操作可以相同也可以不同。在类型为(K,V)和(K,W)的 RDD 上调用,返回一个(K,(Iterable,Iterable))类型的 RDD。第一个括号内表示的是初始值(
2025-02-03 09:53:06
589
原创 SOME IP 协议介绍_someip报文格式
Payload,也叫有效载荷,是消息内容,通常它的长度是可变的。当通过UDP传输时,由于UDP的限制,Payload的长度应该限制在1400字节以内,超了则要分组(SOME/IP-TP),而当通过TCP传输时,可以传输更多的字节,理论上只要不超过Length字段的大小即可。这里插播一点个人理解,在SOA中,每个服务就好像我们每一个人在社会中扮演的角色,在对别人提供着服务的同时,同时也享受着别人提供出来的服务,人与人之间,既是彼此独立的,又是需要互相通讯的。关于SOA,以后再扯,记得关注哦~
2025-02-03 09:51:22
253
原创 Linux下发布QT程序_linux qt 发布
QtTest.sh4.sudo chmod 777 ldd_copy.sh 和 sudo chmod 777 QtTest.sh (修改权限)
2025-02-02 01:57:32
504
原创 Linux下为KVM 配置桥接设备,给网桥配制ip地址_linux kvm ip设置
我们经常所说的Bridge设备其实就是网桥设备,也就相当于想在的二层交换机,用于连接同一网段内的所有机器,所以我们的目的就是将网络设备eth0配置成br0,此时br0就成为了所谓的交换机设备,我们物理机的eth0也是连接在上面的。上面是通过命令进行的手动配置方法,但是大家都清楚,这些命令配置的结果在服务器重启之后就不能生效了,要想使得所有配置永久生效,我们还是需要通过配置文件进行配置,然后重启网卡设备,让系统帮我们配置,然后重启之后也是生效的。
2025-02-02 01:55:48
631
原创 countdowlatch 和 cyclicbarrier的用法以及区别
运动员先准备,裁判喊跑,运动员才开始跑(这是第一次同步,对应begin)。5个人谁跑到终点了,countdown一下,直到5个人全部到达,裁判喊停(这是第二次同步,对应end),然后算时间。定义:是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共的屏障点,所有线程一起继续执行或者返回。用法:用计数 N 初始化CyclicBarrier, 每调用一次await,线程阻塞,并且计数+1(计数起始是0),当计数增长到指定计数N时,所有阻塞线程会被唤醒。但是,只要有一个人没到终点,就不能喝。
2025-01-31 10:26:59
819
原创 Core Animation实战六(专用图层)
我们可以通过这个图层路径绘制一个既有直角又有圆角的视图。如果我们想依照此图形来剪裁视图内容,我们可以把作为视图的宿主图层,而不是添加一个子视图(图层蒙板的详细解释见第四章『视觉效果』)。用户界面是无法从一个单独的图片里面构建的。一个设计良好的图标能够很好地表现一个按钮或控件的意图,不过你迟早都要需要一个不错的老式风格的文本标签。如果你想在一个图层里面显示文字,完全可以借助图层代理直接将字符串使用Core Graphics写入图层的内容(这就是UILabel的精髓)。
2025-01-31 10:25:15
972
原创 python进阶系列 - 13讲 生成器generator_生成器函数返回值
如果一直调用next()但已经没有对应的yield,那么会抛出异常,相当于生成器已经没有数据了,但还在试图获取数据,则直接报错了!
2025-01-24 16:56:54
247
原创 Kubernetes CNI网络最强对比:Flannel、Calico、Canal和Weave_kubernets部署容器集群一般首选使用weave网络
Docker还可以让用户通过其他驱动程序和插件,来配置更高级的网络(包括多主机覆盖网络)。CNI的初衷是创建一个框架,用于在配置或销毁容器时动态配置适当的网络配置和资源。下面链接中的CNI规范概括了用于配制网络的插件接口,这个接口可以让容器运行时与插件进行协调:插件负责为接口配置和管理IP地址,并且通常提供与IP管理、每个容器的IP分配、以及多主机连接相关的功能。容器运行时会调用网络插件,从而在容器启动时分配IP地址并配置网络,并在删除容器时再次调用它以清理这些资源。
2025-01-23 22:06:23
818
原创 Java内存模型与可见性:volatile关键字、内存屏障与原子操作 第四章
volatile:提供内存可见性,确保所有线程都能看到volatile变量的最新值,防止指令重排序,适用于简单状态标志、单个变量的同步。内存屏障:作为实现volatile语义的技术手段,内存屏障强制执行特定的内存访问顺序,确保数据的一致性和顺序性,是多核处理器环境下并发编程的基础。原子操作:提供对单个变量或对象引用的原子更新,确保操作的完整性,避免竞态条件,适用于需要原子性和复杂状态管理的场景。
2025-01-23 18:05:06
545
原创 Hadoop【部署 01】腾讯云Linux环境CentOS Linux release 7
配置 ip 地址和主机名映射:很关键通过ifconfig查询本机的ip地址,这个地方没有配置正确的话节点会有问题。配置环境变量的方法比较多,这里统一将环境变量放在 /etc/profile.d/my_env.sh 内。Hadoop 的运行依赖 jdk 我安装的 openjdk11【这里有个很深的坑,随后会说明】。Hadoop 组件之间需要基于 SSH 进行通讯。
2025-01-23 15:18:13
330
原创 C语言常用算法汇总_c 数据处理 算法
穷举法(又称“枚举法”)的基本思想是:一一列举各种可能的情况,并判断哪一种可能是符合要求的解,这是一种“在没有其它办法的情况的方法”,是一种最“笨”的方法,然而对一些无法用解析法求解的问题往往能奏效,通常采用循环来处理穷举问题。(2)若所取字符不是“空格”,“逗号”,“分号”或“感叹号”等单词的分隔符,再判断word是否为1,若word不为1则表是新单词的开始,让单词数num= num +1,让word =1;(矩阵A有M*L个元素,矩阵B有L*N个元素,则矩阵C=A*B有M*N个元素)。
2025-01-23 00:06:06
272
原创 Android开发规范:CodeReview规范
因为每一个功能可能有多种实现方式,为了不在一个项目里面对同一种功能采用多种实现方式(比如使用Glide,又引入了Picasso),保证统一性,所以我们在CodeReview的时候也需要对这一块进行检查。每个团队都需要有自己的技术选型规范,比如网络请求用什么框架,图片加载用什么框架,Adapter用什么方案等等。比如,不要添加太多的或是隐藏的依赖关系,不能够初始化对象,测试框架可以使用方法等。这通常包括大括号的位置,变量名和函数名,行的长度,缩进,格式和注释。在哪里使用了第三方工具,返回的错误是否被捕获?
2025-01-22 21:06:55
292
原创 Android 常用开源框架源码解析 系列 (零)引言
而在MPL(1.1版本)许可证中,对源代码的定义是:“源代码指的是对作品进行修改最优先择取的形式,它包括:所有模块的所有源程序,加上有关的接口的定义,加上控制可执行作品的安装和编译的‘原本’(原文为‘Script’),或者不是与初始源代码显著不同的源代码就是被源代码贡献者选择的从公共领域可以得到的程序代码。**GPL协议的主要内容是:只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用GPL协议,即是必须开源和免费。**这就是GPL协议的 传染性。
2025-01-22 19:44:41
814
原创 20个常用的 Git 指令用法_git指令
git cherry-pick 命令用于获取指定的 commit,可以将分支 a 上的 commit 1,复制到分支 b上。git merge 命令用于分支合并,将其他分支的内容合并到当前分支中。git pull 命令用于从远程仓库拉取代码并合并到本地当前分支。git commit 命令用于将暂存区内容添加到本地仓库中。git branch 命令用于查看、创建、删除分支。git push 命令用于将本地分支推送到远程仓库。git clone 命令用于将存储库克隆到本地。git rebase 用于分支变基。
2025-01-22 16:49:32
327
原创 CAXA3D实体设计2023安装教程(非常详细)从零基础入门到精通,看完这一篇就够了_caxa2023
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
2025-01-20 16:09:47
888
原创 BERT 的 PyTorch 实现(超详细)_bert pytorch
表示同一个batch中的所有句子都由30个token组成,不够的补PAD(这里我实现的方式比较粗暴,直接固定所有batch中的所有句子都为30)表示最多需要预测多少个单词,即BERT中的完形填空任务表示EncoderLayer的数量表示TokenEmbeddings、SegmentEmbeddings、PositionEmbeddings的维度表示EncoderLayer中全连接层的维度表示Decoderinput由几句话组成数据预处理数据预处理部分,我们需要根据概率随机make
2025-01-20 15:37:46
470
原创 Android岗高频面试题三集,看你能答出几题?(含答案)
由于平台发文长度有限,小编不能在这一一列举出这些面试高频题,也考虑到大家不能想要一份比较全面的面试题,所以小编整理比较全面性的面试题文档,大家可以观看下图完整的文档,如有想要获取这份文档可以。4、Android中IPC方式、各种方式优缺点,为什么选择Binder?15、区别Animation和Animator的用法,概述其原理?19、对于应用更新这块是如何做的?(灰度,强制更新、分区域更新)?20、会用Kotlin、Fultter吗?2、Android中如何查看一个对象的回收情况?
2025-01-20 14:22:24
587
原创 Android 开发,你遇上 Emoji 头疼吗?
根据官方文档描述,EmojiCompat支持库主要是为了让Android设备,达到最新的Emoji符号的显示效果,它可以防止应用中,出现以豆腐块“☐”的形式来显示Emoji,虽然它仅仅只是因为你当前的设备没有这个字体而已。通过EmojiCompat,你的设备无需等待Android系统更新,就可以获得最新的Emoji表情显示效果。你可以一直使用progress()或者使用控件,但是如果你想要自定义一个控件来显示Emoji,就需要使用EmojiCompat提供的另外两个帮助类。
2025-01-20 13:28:01
676
原创 Android OOM与 leak window
这个时候要是你继续生白手起家的百万富翁成一个10M的int数组是没有问题的,反而生成一个4M的Bitmap就会跳出OOM。而Bitmap的生成是路程经过过程malloc进行内存分配的,占用的是C的内存,这个也就说明了,上面所说的的4MBitmap无法生成的原因,因为在13M被Java用过后,剩下C能用的只有3M了。1.一个进程的内存可以由2个部门组成:java施用内存,C施用内存,这两个内存的和必需小于16M,不然就会出现各人熟悉的OOM,这个就是熬头种OOM的情况。
2025-01-20 12:31:09
246
原创 【Spring Cloud 10】阿里巴巴分布式服务架构流量控件Sentinel,B站黑马程序员学习笔记
流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。然而,从系统稳定性角度考虑,在处理请求的速度上,也有非常多的讲究。任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要根据系统的处理能力对流量进行控制。除了流量控制以外,及时对调用链路中的不稳定因素进行熔断也是 Sentinel 的使命之一。由于调用关系的复杂性,如果调用链路中的某个资源出现了不稳定,可能会导致请求发生堆积,进而导致级联错误。
2025-01-19 16:28:38
817
原创 vue项目配置eslint(附visio studio code配置)
执行 eslint --ext .js,.vue src 命令。当项目执行eslint检测时,会先检测全局环境下有没有eslint,显然文章第一步就是在全局安装了,那么全局环境下的eslint引用依赖包时也只会在全局环境下查找。只有全局环境下安装了eslint才能执行 eslint --init 和 eslint --ext .js,.vue src 等eslint指令。在项目中安装eslint插件:npm install eslint-plugin-html --save-dev (安装过的就不需要了)
2025-01-18 18:43:09
385
原创 vue项目开发---初始化项目以及使用gitee托管
将步骤1中使用vue脚手架创建的项目中的文件夹supermail1下的部分文件夹及文件(除了node_modules和.git)复制粘贴到supermail中。首先在远程创建一个空的仓库(不要readme、开源协议等文件),即没有任何文件夹及文件。2.1、以下操作前提是在gitee远程已经创建了一个仓库,然后将本地文件提交到远程。3、将本地使用vueCLI3创建的项目与远程仓库建立一个链接。使用脚手架3创建成功的项目应该有一个.git文件。2、将本地项目与远程仓库建立一个链接。2.5、提交代码到本地仓库。
2025-01-18 18:41:08
262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人