- 博客(43)
- 收藏
- 关注
原创 Android自定义控件
当系统控件不能满足我们的需求的时候,这时候我们就需要自定义控件,根据我们的需求来定制一个能满足我们需求的控件。如果预构建的微件或布局都不能满足您的需求,您可以创建自己的 View 子类。如果您只需要对现有微件或布局进行细微调整,则只需将相应微件或布局子类化并替换其方法即可。
2023-11-07 00:21:17
475
原创 Android-SharedPreferences详细使用
通过利用SharedPreferences来存储用户的用户名和密码,以此来达到用户打开APP时同步登录、记住密码一键登录的需求/效果
2023-11-07 00:18:33
786
原创 Android-JobService
JobService是Service的一个强化版,本质属于Service,因此,添加一个JobService需要到清单文件中注册Service组件。JobService的创建过程:(1)继承JobService(2)重写回调onStartJob和onStopJob (必须)
2023-11-07 00:16:58
428
原创 Android Mvp案例解析
MVP架构是为了让各个模块之间降低耦合,方便维护,也可以让代码更简洁,让代码简洁的意思是让代码更清晰,并不是让代码更少;MVP对接口灵活的调用可以轻松的应对产品的变更。P层对象中持有V层对象和M层对象。
2023-11-07 00:09:06
405
原创 springboot+Mongodb4.4.2登录认证之错误代码: Caused by: java.lang.IllegalStateException: Invalid mongo configur
看了很多博客,都说使用[uri(mongodb://username:password@host:port/dbname)]或者[host+port+username+password]springboot2.5.0配置mongodb(spring.data.mongodb)无意间加入双引号,发现就ok了,原因不详,有点无厘头,请教大佬。但是这种方式在我这(mongo 4.4.2)行不通。
2023-05-19 13:41:24
986
原创 No converter for [xxx] with preset Content-Type ‘null‘
转json依赖于Result类的getter和setter方法,如果没有这些方法或者缺少了,就会导致这个问题!
2023-04-18 02:23:23
390
原创 关于 android.view.WindowLeaked: 窗体泄露
android.view.WindowLeaked: 窗体泄露所以当某个 Dialog (或 PopupWindow) 正在显示的时候去 finish() 了承载该 Dialog (或 PopupWindow )的 Activity 时,就会抛 Window Leaked 异常了,如上述代码框起来的部分,执行finish()结束Activity的时候,并不会结束这个case代码块,而导致穿透执行下一个case而创建了Dialog。
2023-03-31 21:41:20
1194
原创 Git入门必知必会
值得注意的是,如果在合入的时候,本地仓库与远仓不一致(工作目录变动除外),那么就会导致合入失败。协作开发下,A和B分别从远仓pull/clone了一份最新的远仓代码,然后分别进行开发。此时,如果B变动的内容中包含了Apush中变动的内容,那么就会发生冲突,导致合入失败。毕竟在托管平台上面,分支的选择是一个下拉列表,点击不同的分支可以看到不同的内容。也就是进行了版本回退,所做的工作区上的改动都将消失。
2023-03-25 21:57:10
258
原创 Vue使用Array().fill()填充对象导致el-table选中效果都是全选的问题
经过测试,使用Array().fill()来填充数组,导致一个结果是:数组里面填充的都是一个同一个对象!此问题我百思不得其解(我也是newer,网上似乎都没这个问题)怎么也想不到会是tableData的问题(期间还换过很多种多选的实现方式。采用Array().fill()填充的方式,你在这里的val会得到长度总是1的数组(不管你勾了一个还是多个还是全选,虽然只能全选)然后问题就发生了:在我的页面中,无论我勾选的是任意一项,都会导致全选:正如下图,我仅点了第一行数据的选框,结果所有行都被选中。
2023-03-21 02:27:00
281
原创 MySQL_study1_DDL
DDL (数据定义语言)SHOW/ CREATE/ DESC/ USE/ SELECT/ALTER/ADDMODIFYCHANGERENAME TODROP
2022-05-05 13:51:37
520
1
原创 分层简答QA-4-数据链路层
数据链路层总结1 数据链路层设备网桥交换机2 数据链路层基本问题帧定界(封装成帧)透明传输差错检验2.1 帧定界(封装成帧)让接收方的数据链路层知道,所发送的帧是 从什么地方开始 到什么地方结束。帧定界符:数据的前后分别 添加 首部和尾部 构成一个帧同时定义出了最大传输单元(MTU)–表示一次可以传输的最大长度上限。2.2 透明传输传输的内容中不能出现和帧定界符相同的字符,防止帧定界出现错误在内容中,和帧定界符一样的字符前边加上规定好的转义字符,这种方法称为字符填
2022-05-04 11:14:44
237
原创 从输入网址到获得页面的过程
从输入网址到获得页面的过程查询DNS,获取域名对应的IP地址浏览器搜索自身的DNS缓存,如果找到则返回IP;否则,浏览器就向本地域名服务器请求查询IP,如果存在,则返回IP;否则,本地域名服务器发起一个迭代DNS请求,查询到IP后返回给本地主机;浏览器获得域名对应的IP地址后,发起HTTP三次握手;TCP/IP连接建立起来后,浏览器就可以向服务器发送http请求;服务器接受到这个请求,根据路径参数,经过后端的一些处理生成HTML页面,代码返回给浏览器;浏览器拿到完整的HT
2022-05-04 11:12:20
47525
原创 UDP如何实现可靠性
1 UDP实现可靠传输-方法概述(???????)主要是在应用层实现了可靠传输:UDP它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。实现确认机制、重传机制、窗口确认机制。(不排序好像是因为UDP是整个用户数据报一起发送的,没有进行分段,
2022-05-04 11:11:53
3003
1
原创 简答QA-网络各层头部及作用
网络各层头部信息Q:为什么需要那么多头部,比如TCP然后还需要IP头部,去掉不行吗?综述:每一层的首部字节中的信息很少重复每一个信息存在都有其意义,保证其最基本的传输功能、无意义的传输不可随意删除去掉下面正在自顶向下来分析:一个点是,检验和checksum,检验出错直接丢,避免无意义的传输1 应用层来自应用层的数据包需要让下层知道,“我”是使用什么协议的。因此应用层需要携带应用层协议标识或者描述的头部信息还需要知道数据的长度2 传输层传输层实现的端到端的传输因此,传输层要知道
2022-05-04 11:11:02
1195
原创 关于HTTP协议(一)
HTTP简介1 HTTP 简介HTTP, Hyper Text Transfer Protocol(超文本传输协议)用于从 万维网服务器 传输 超文本 到 本地浏览器 的传送协议HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件, 图片文件, 查询结果等)。HTTP协议工作于客户端-服务端架构之上。浏览器 作为 HTTP客户端 通过URL向 HTTP服务端即WEB服务器 发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。2 HTTP 主要特点1、简单快速:客户
2022-05-04 11:10:11
460
原创 分层简答QA-5-物理层
物理层总结物理层使用物理技术,使得数据在物理层上更快的传输,同时保证让上一层(数据链路层)感觉不到数据的差异(理解性来说,大概就是发是什么样,收就是什么样,让数据变化尽量小)1 物理层设备中继器集线器2 信号传输方式单工通信:单向双工通信半双工通信:双向,同一时刻单向全双工通信:双向,同一时刻可以双向3 通信复用技术信道复用:使用信道复用可以大大提升信道的传输能力和利用率比如,数据划分为不同频段,这样不同数据原本要在多个信道上传输,现可以在同一信道上一起传输
2022-05-04 11:09:30
96
原创 分层简答QA-3-网络层
网络层总结1 网络层保留地址A类:10.0.0.0 - 10.255.255.255B类:172.16.0.0 - 172.31.255.255C类:192.168.0.0 - 192.168.255.2552 虚电路和数据报有什么区别2.1 虚电路数据传输之前必须通过虚呼叫设置一条虚电路,可靠由网络来保证它适用于两端之间长时间的数据交换。 有连接。优点:可靠、保持顺序;缺点:如有故障,则经过故障点的数据全部丢失.**总结:**相当于在发送数据之前,提前确定了一条专用道路,往后的一段时
2022-05-03 22:10:04
259
原创 分层简答QA-2-传输层
传输层总结为进程提供通用数据传输服务TCP(通俗的话来说,TCP相当于vip的快递服务,每次寄件前都会确认地址,发送后会询问是否收到,发送到时将所有发送内容进行重新编号,保证顺序,若发送中出现了丢失或者顺序混乱,马上检查,正是如此,TCP的报文头部至少有20位,发送也会比较慢)双方保持在线UDP(而UDP相当于普通快递,若收件方的仓库无法容纳,则会造成数据丢失,头部只有8位,发送不保证按顺序到达)1 TCP和UDP的区别(6)TCP:Transimission control protoco
2022-05-03 22:09:31
652
原创 分层简答QA-1-应用层
1 OSI七层模型自顶向下:应用层表示层会话层传输层网络层数据链路层物理层2 tcp/ip五层模型自顶向下:应用层传输层网络层数据链路层物理层3 tcp/ip四层模型自顶向下:应用层传输层网络层网络接口层4 每一层的功能在通信主机上完成的功能应用层:提供用户接口(用户程序接入?),尤其是向能够发起网络通信的应用程序,如客户端程序,QQ,浏览器等…表示层:将数据表示为期望的格式如编码、加密解密、压缩解压等因为发送和接收端程序必
2022-05-03 22:08:28
676
原创 cpp内存模型
C++ 内存 分为 5 个区域: 堆、栈、静态存储区、常量存储区、代码区(1)堆heap用于存放动态分配的空间,由程序员手动申请和释放,编译器不用去管在堆开辟的空间如果不注意释放,可能会导致内存泄漏的问题堆是向高地址生长(2)栈stack(后进先出)用于存放局部变量、函数参数、局部常量由编译器自动申请、释放和管理栈是向低地址生长的。(3)静态存储区全局静态变量、局部静态变量、全局变量、虚函数表(4)常量存储区存储全局常量、常量数组、函数指针函数也有函数指针,就是指向函数的入口地址
2022-05-03 21:49:44
504
原创 cpp面向对象三大特性
C++面向对象的三大特性:继承、多态、封装继承子类可以直接使用父类的属性和方法。优点:减少代码的重复性\冗余继承是多态的前提增加了类的耦合性缺点:继承在编译时刻就定义,无法在运行时改变父类继承的实现父类通常定义了子类的部分方法,父类的改变可能影响子类的行为TODO虚继承:解决多重继承中的二义性问题,维护了一张虚基表多态C++多态分为运行时多态和编译期多态静态多态在编译期就确定主要通过模板实现,以及函数重载、宏定义,也是实现静态多态的方法动态多态通过虚函
2022-05-03 21:46:10
1153
原创 cpp vector
vector动态空间,内部机制会自动扩充空间维护一个线性、连续的内存空间vector的数据结构:三个指针[iteratorHead, iteratorElementTail, iteratorTail]iteratorHead 指向当前空间的首地址iteratorElementTail 指向当前空间最后一个元素的地址iteratorTail 指向当前空间的结束地址如,vector = {1,2,3,4,5,6}如果先开辟4个空间那么第二次double开辟了8空间因而itera
2022-05-03 21:31:33
1235
原创 cpp/c new/delete和malloc/free
new/delete 是操作符malloc/free 是库函数new/delete 的执行有两个过程:new: 分配未初始化的空间(malloc) --> 使用对象的构造函数进行初始化 --> 返回空间首地址分配出错则直接抛异常,并且delete释放delete:使用对象的析构函数进行析构 --> 回收内存空间(free)因此:new得到的是 经过初始化的空间malloc 得到的是 未经过初始化的空间new是new一个类型,malloc是malloc一个长度的空间对于
2022-05-03 21:30:33
213
原创 cpp声明和定义
《C++Primer》第四版 2.3.5节中这么说到:①变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。②变量声明:用于向程序表明变量的类型和名字。extern关键字声明不分配存储空间;③定义也是声明:当定义变量时我们声明了它的类型和名字。④extern关键字:通过使用extern关键字声明变量名而不定义它。====1.定义也是声明,extern声明不是定义,即不分配存储空间。extern告诉编译器变量在其他地方定义了。例如:extern int i; /
2022-05-03 21:28:58
677
原创 cpp指针和引用
区别:指针是一个具体的实体,指向一个对象引用是一个对象的别名指针的内容可以改变,即指向可以改变引用一经初始化就不能更改int a = 0,b = 20;int& yin = a; // 这时候,符号yin和符号a都指向同一个地址yin = b; // 这时候,yin仍是和a指向同一个地址空间,但是值改变了,变为b的值,即20sizeof(引用)得到的是对象的大小sizeof(指针)得到的是指针本身的大小作为参数传递时,指针传递的实质是 指针地址 的传递:然后 相当于是 把
2022-05-03 21:13:50
462
原创 cpp多态
什么是多态?顾名思义就是同一个事物在不同场景下的多种形态。多态静态多态:编译器在编译期间完成函数重载相同的函数名根据调用参数的不同(参数类型,参数长度),不可根据返回值来判断重载根据实参类型选择调用合适的函数合适则调用不合适则警告或者报错泛型编程模板template动态多态:在程序运行时根据基类的引用或指针 所指向的对象 来确定自己该调用哪一个类的虚函数(因为对象的引用在程序中是变换的,因此是运行时确定)虚函数动态多态的条件:基类中必须包含虚函数
2022-05-03 20:59:42
262
原创 cpp常见一些关键字(面试)
static 关键字控制变量的存储方式和可见性作用1:修饰局部变量局部变量放在程序的栈区,生命周期在所包含的语句块执行结束时也结束了;如果使用static关键字来修饰的话。该变量的会存放在静态存储区,生命周期会一直延续到整个程序的执行结束。但是,虽然其存储区和生命周期改变了,但是其作用域没有发生改变。作用2:修饰全局变量全局变量本就放在静态存储区;全局变量可以在本文件中被访问到,也可以在工程中的其他文件访问(在那些文件中添加extern声明即可)使用static修饰全局变量,会改变
2022-05-03 20:57:40
437
原创 模型拟合:RANSAC
Fitting : RANSAC1.算法原理RANSAC(随机一致性采样)是一种不确定性算法,主要解决样本中的外点问题,最多可处理50%的外点情况。RANSAC算法将数据集合划分为“内点”和“外点”,“内点”是组成模型参数的数据,而“外点”是不适合模型的数据,并且假设在给定一组含有少部分“内点”的数据中,存在一个可以估计出符合“内点”的模型。RANSAC的基本思想是:随机从样本中选取一个小的子集,使用这个子集来拟合模型,然后判定所选取子集之外的样本与所拟合模型的匹配程度,重复这个过程多次,再选取使得最
2021-11-18 21:07:51
1225
原创 Window10下安装双系统(Win10+Ubuntu20.04)
Window10下安装双系统(Win10+Ubuntu20.04)跟了网上的一些教程,遇到一点点…问题,最后终于成功!记录过程:1.准备工具:1.空U盘,8G以上。(虽然4G也够)(埋个伏笔:U盘真的important!)2.磁盘空的扇区。(建议50G以上吧,看你用来做什么)3.Ubuntu20.04LTS:Ubuntu20.04LTS4.启动U盘制作软件:UltraIOS(点击试用的就可以,不用q)(Rufus也可以)2.制作启动盘下载好Ubuntu20.04镜像后,用U
2021-11-07 17:03:18
3590
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人