自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android实现计时与倒计时(限时抢购)的几种方法

TimerTask与Handler(不用Timer的改进型)Handler与Message(不用TimerTask)Timer与TimerTask(Java实现)Handler与Thread(不占用UI线程)Handler与Runnable(最简单型)

2024-12-20 01:51:33 533

原创 Android学生信息管理系统(1)登录界面设计

/用于给是否保存密码赋值。android:text=“欢迎来到学生信息管理系统”android:text=“请输入你的账号:”android:text=“请输入你的密码:”android:text=“是否保存本次密码”android:text=“点击注册进入”//将账号和密码设置到文本框中。

2024-12-20 01:47:53 273

原创 Android学习笔记在互联网上火了,满满干货指导_网上火的学习资料是什么

现在网上资料实在太过于杂乱、零散、碎片化,总看着看着就衔接不上了。资料也是五花八门、良莠不齐,部分博主各种以次充好,整个什么两三百页的PDF,便号称是整套的Android知识体系。本文根据Android开发中知识点系统的分类整理成了七大内容板块,想看哪一块可以根据索引迅速找到,希望可以帮助大家,祝大家求职顺利!

2024-12-20 01:44:12 375

原创 Android图片加载框架最全解析(三),深入探究Glide的缓存机制

可以看到,这里在第17行调用了loadFromCache()方法来获取缓存图片,如果获取到就直接调用cb.onResourceReady()方法进行回调。可以看到,这里会先去调用DecodeJob的decodeResultFromCache()方法来获取缓存,如果获取不到,会再调用decodeSourceFromCache()方法获取缓存,这两个方法的区别其实就是DiskCacheStrategy.RESULT和DiskCacheStrategy.SOURCE这两个参数的区别,相信不需要我再做什么解释吧。

2024-12-20 01:36:51 141

原创 Android四大组件(四) Service

需求:既想让服务在后台长期运行,也想调服务里面的方法.(eg:网易云音乐,在后台能播放音乐,应该是用服务实现的,然后也能在后台切换上一曲下一曲,应该也能调用服务里面的方法). 这时候需要混合方式开启服务。不过需要注意的是,服务并不是运行在一个独立的进程当中,而是依赖于创建服务时所在的应用程序进程.当某个应用程序进程被杀掉时,所有依赖于该进程的服务也会停止运行.(1) 服务通过startService()方式开启,第一次开启服务,会执行服务的onCreate()方法和nStartCommand()方法。

2024-12-20 01:33:10 595

原创 Android单元测试之 Mockito

当使用mock之后,各团队之间可以不需要再互相等待对方的进度,只需要约定好相互之间的数据规范(文档),即可使用mock构建一个可用的接口,然后尽快的进行开发和调试以及自测,提升开发进度的的同时,也将发现缺陷的时间点大大提前。TDD单元测试是TDD实现的基石,而TDD经常会碰到协同模块尚未开发完成的情况,但是有了mock,这些一切都不是问题。当接口定义好后,测试人员就可以创建一个Mock,把接口添加到自动化测试环境,提前创建测试。

2024-12-20 01:29:29 737

原创 Android动画的使用——属性动画

从打印日志的值我们就可以看出,ValueAnimator确实已经在正常工作了,值在300毫秒的时间内从0平滑过渡到了1,而这个计算工作就是由ValueAnimator帮助我们完成的。

2024-12-20 01:25:49 820

原创 Android动画学习之补间动画和逐帧动画

上述代码是定义Frame动画的基本语法格式,< animation-list >为帧动画的根节点,其中属性drawable表示当前帧要播放的图片,duration表示当前帧的播放时长,单位为ms,和前面补间动画中的属性介绍一致。逐帧动画的原理与放胶片看电影的原理是一样的,它们都是一张一张地播放事先准备好的静态图像。在使用逐帧动画时,需要在res/drawable目录下创建好帧动画的XML文件,并在< animation-list >节点的< item >子节点中,指定图片帧出现的顺序以及每帧的持续时间。

2024-12-20 01:22:08 586

原创 Android全新UI编程 - Jetpack Compose 超详细教程

为该Preview设置group名字,可以在UI中以group为单位显示。: 可以在预览中对字体放大,范围是从0.01。: 在Compose中渲染的最大宽度,单位为dp。: 在Compose中渲染的最大高度,单位为dp。上面的参数都是可选参数,还有像背景设置等的参数并对实际的App进行设置,只是对Preview中的背景进行设置,为了更容易看清布局。在IDE的右上角有CodeSplitDesign三个选项。分别是只显示代码,同时显示代码和布局和只显示布局。

2024-12-20 01:18:27 1232

原创 数据结构基础概念篇

既希望较快的查找又便于线性表动态变化的查找方法是哈希法查找。二叉排序树查找,最优二叉树查找,键树查找,哈希法查找是动态查找。分块、顺序、折半、索引顺序查找均为静态。分块法应该是将整个线性表分成若干块进行保存,若动态变化则可以添加在表的尾部(非顺序结构),时间复杂度是O(1),查找复杂度为O(n);若每个表内部为顺序结构,则可用二分法将查找时间复杂度降至O(logn),但同时动态变化复杂度则变成O(n);

2024-12-10 13:01:34 557

原创 数据结构刷题基础版

①判断该集合里有无该元素,如果有,则直接返回false;如果没有,就将该数存入该集合内;a.因为Map两个变量正好对应了数据和所在的下标位置。c.通过所需要target来减去数组中的元素来判断是否存有相对应元素。解题思路:(利用集合Set的不会重复性)解题思路②:(利用HashMap来解决)解题思路①:(通过嵌套循环遍历来实现)解题思路:(本题会用到动态规划法)b.遍历将数组中的元素放入Map中。

2024-12-10 12:59:33 384

原创 数据结构之树

/2. 如果当前结点的左子结点不为空,并且左子结点 就是要删除结点,就将this.left = null;//2. 如果当前结点的左子结点不为空,并且左子结点 就是要删除结点,就将this.left = null;//3.如果当前结点的右子结点不为空,并且右子结点 就是要删除结点,就将this.right= null;//3.如果当前结点的右子结点不为空,并且右子结点 就是要删除结点,就将this.right= null;//8结点的.left = null , 8结点的.leftType = 1。

2024-12-10 12:57:33 524

原创 数据结构与算法----单链表_数据结构与算法 c语言单链表

找到链表中最后一个结点的地址​ 当tail 指向的下一个结点的地址不为NULL时,则当前结点不是尾结点,当tail 指向的下一个结点的地址为NULL时,找到尾结点 ,此时的tail存有尾结点的地址​​ 该部分代码= NULL)插入新的数据申请一个新的结点printf("申请结点失败\n");exit(-1);插入尾插法完整代码如下调用该函数时,由于值传递无法改变实参的值, 因此要进行址传递,因此传入的是指针的地址,要用二级指针**p进行接收,对二级指针解引用就可得到原指针。

2024-12-10 12:55:32 645

原创 数据结构与算法(三):浅识冒泡、选择、插入排序算法

【代码】数据结构与算法(三):浅识冒泡、选择、插入排序算法。

2024-12-10 12:53:31 137

原创 数据结构~缓存淘汰算法--LRU算法(Java的俩种实现方式,时间复杂度均为O(1))

新数据插入到链表头部;每当缓存命中(即缓存数据被访问),则将数据移到链表头部;当链表满的时候,将链表尾部的数据丢弃。4. 最开始时,内存空间是空的,因此依次进入A、B、C是没有问题的5. 当加入D时,就出现了问题,内存空间不够了,因此根据LRU算法,内存空间中A待的时间最为久远,选择A,将其淘汰6. 当再次引用B时,内存空间中的B又处于活跃状态,而C则变成了内存空间中,近段时间最久未使用的。

2024-12-10 12:51:30 966

原创 数据结构--向量--起泡排序

需知道last是用来记录最后一个逆序对位置的,如果最后一个逆序对比较靠前,我们就赚大发了,下次扫描就可以减少很多不必要的检查了(last后的都不需检查是否逆序了)。我们还应该知道此代码中的while(lo

2024-12-10 12:49:30 908

原创 数据库安全(二)

*2021年发布的《个人信息保护法》第五十一条:**个人信息处理者应当根据个人信息的处理目的、处理方式、个人信息的种类以及对个人权益的影响、可能存在的安全风险等,采取相应的加密、去标识化等安全技术措施。**2017年发布的《网络安全法》第四十二条:**网络运营者不得泄露、篡改、毁损其收集的个人信息;**2021年发布的《数据安全法》第二十七条:**开展数据处理活动应当依照法律、法规的规定,建立健全全流程数据安全管理制度,采取相应的技术措施和其他必要措施,保障数据安全。又叫数据库安全评估系统。

2024-12-10 12:45:23 418

原创 数据分析必备,常用的Execl函数与公式大全!

这些函数和公式可以帮助用户快速、准确地处理和分析数据,提高工作效率和准确性。

2024-12-10 12:43:22 473

原创 数据中快速查找和提取的强大工具 JSON_快速查询json

总结本文介绍了JSONPath的基本语法和用法,并为您展示了如何封装和使用JSONPath方法来处理和操作JSON数据。通过封装JSONPath方法,我们可以更方便地进行数据查询和提取,提高处理JSON数据的效率和代码可读性。上述代码中,我们定义了一个jsonpath函数,接受两个参数:expr表示 JSONPath表达式,data表示要处理的JSON数据。封装的方法内部使用递归遍历JSON数据,根据表达式匹配对应的值,并将其添加到结果列表中。TEXT 复制 全屏。

2024-12-10 12:41:22 338

原创 数学建模之主成分分析(PCA)_主成分分析例题

这是书上的一道例题,需要使用主成分分析的方法进行评价。由于在学习数学建模的过程中,复现建模书上的题目代码有点小麻烦,因为我找不着书上的数据,因此得一个个手打,本来已经复现了好几个模型,结果因为机械硬盘坏了,里面的东西全没了,很是无语,因此决定在这里记录我的复现代码,主要是给自己看的,等到想用的时候就可以直接拿来用了。那么如果很明确的知道原特征都是正向的评价,通过对新特征*特征贡献率进行求和,可以理解为对原来所有特征的综合评价,即可对这个事物进行评价了。可以用于降维,可以用于评价。再计算特征值和特征向量。

2024-12-10 12:39:22 440

原创 教妹子学序列化kryo的经历_kyro序列化器 asm技术

优点序列化的性能非常高序列化结果体积较小提供了简单易用的API缺点跨语言支持较复杂不支持对象字段的增加/删除/修改如果更改了对象的字段,然后再从更改前序列化的bytes中反序列化,将会出错。当然如果想得到Add、Remove等操作的支持,可以使用FieldSerializer的其他扩展,如等等。

2024-12-10 12:37:22 665

原创 收藏起来,史上最全的 MySQL 高性能优化实战总结!

值得注意的是,Redo log 是覆写模式的,即使使用了文件系统的 cache,也不会占用太多。针对业务周期性的卡顿,例如在每天 10-11 点业务特别慢,但是还能够使用,过了这段时间就好了。未被使用的数据块,用户缓冲数据块,用于操作系统的数据块的数量。iops :硬件出厂的时候,厂家定义的一个每秒最大的 IO 次数,"一次传输"请求的大小是未知的。Io:每秒从设备中读入 b1 的写入到设备 b0 的数据块的数量。IO/PS 磁盘的一个定值,硬件出厂的时候,厂家定义的一个每秒最大的 IO 次数。

2024-12-10 12:35:21 609

原创 支撑日均百万订单的微服务架构应该这么搞

尤其是服务拆分,需要团队熟悉业务流程,懂得取舍,要保证拆分的粒度服务既符合“高内聚,低耦合”的基本原则,还要兼顾业务的发展以及公司的愿景,要还要说服团队成员为之努力,并且积极投入,在多方中间取得平衡。微服务的内涵很深,其中就包括,自动化,去中心化,独立性等等,其中细节无法用一篇文章概述清楚,我们在做技术选型或者方案的时候,尽可能多去了解技术的本身和起源再结合我们业务的特点,进行更好的选择。

2024-12-10 12:33:19 897

原创 【Java刷题进阶】基础入门篇⑨_统计控制台输入的一句话中不同字母字符出现的次数

📩Java基础学习主要以练习为主,很多朋友听完视频课程学会基础以后感觉对练手项目无从下手,这里推荐去[**牛客网**](https://gitee.com/vip204888)看看,这里的IT题库内容很丰富,属于国内做的很好的IT学习网站,而且是**课程+刷题+面经+求职+讨论区分享,**一站式求职学习网站,最最最重要的里面的资源全部免费!!📩从基础开始练习,**知识点编排详细,题目安排合理,题目表述以指导的形式进行。**整个题单覆盖了java入门的全部知识点以及全部语法,通过知识点分类逐层递进,

2024-12-09 04:52:59 879

原创 【Java】Java方法的调用和方法重载(overload)

相当于做游戏,一个人main(可以是主方法,main,也可以是非主方法)给另一个人metho倒一杯水,那么倒的这杯水,就需要一个容器来承装他。java中foreach,可以认为是增强版的for语句循环,它可以减少代码量,但是不是所有的foreach都可以代替for循环。方法的返回值是可有可无的,具体看业务需求,如果有返回值,那么返回值的类型需要和方法的返回值类型匹配。//如果为真,这句话的值就为冒号之前的num1。//如果为假,这句话的值就为冒号之后的num2。2:重载的参数个数,或者参数列表,必须不同。

2024-12-09 04:50:59 769

原创 【ISP图像处理】Tone Mapping基础知识及相关算法(附代码)_durand tone mapping

一般LDR(Low Dynamic Range)图像的颜色显示范围通常只有8位,即每个颜色通道的颜色数值有2^8=256个等级。这个量级用于描述现实场景中的景象往往十分有限,以LDR储存图像往往需要对颜色进行压缩。为了更加真实还原真实场景的颜色,HDR图像应运而生,一般通道位数超过8位,便可称为HDR,常见有12位和16位。虽然存储图像的信息量提升了,但是现在使用的大部分显示设备宽动态范围只有100:1甚至更低。为了使得HDR图像能够在低动态范围的显示设备上显示,Tone Mapping技术便十分重要。

2024-12-09 04:46:50 1190

原创 【HTML基础习题】HTML5+CSS3做问卷星登录页面

中间内容部分。

2024-12-09 04:44:50 634

原创 【HTML】标签下合集~~~

👈​💓博主格言:追风赶月莫停留,平芜尽处是春山❤️。

2024-12-09 04:42:50 627

原创 【hive】- 使用insert into insert overwrite插入数据到静态分区、动态分区、动静态分区_hive insert into

【代码】【hive】- 使用insert into insert overwrite插入数据到静态分区、动态分区、动静态分区_hive insert into。

2024-12-09 04:40:49 1224

原创 【Flutter 专题】114 图解自定义 ACEProgressPainter 对比进度图

close(),?// 右侧…close(),?

2024-12-09 04:38:48 546

原创 【DM】达梦DEM WEB管理器的搭建

我们需要改改,进到安装目录下的tool文件夹,会发现叫做dmagent的文件夹,进入,打开一个叫config.peoperties的文件。可以看出这是一个B/S模式的数据库管理系统,与客户端安装的DM管理工具的区别在于它是从浏览器登陆的。无需解压,只需把它放在tomcat的安装目录的webapps目录下,再启动tomcat,这个文件即可被自动解压,现在需要修改JVM的启动参数。你一开始可能是用localhost访问的tomcat服务,但是这里不行,必须得用你服务器的IPv4地址了,否则无法代理的。

2024-12-09 04:36:48 1069

原创 【C语言】理解数据在内存中的存储(详解)_c语言 如何定义固定内存地址存放数据

/拿出a的地址,强制类型转换成char*,取地址的时候只取一个字节判断存储方式。//%u表示打印的是一个无符号整型,认为内存中存放的补码是一个无符号数。//%u表示打印的是一个无符号整型,认为内存中存放的补码是一个无符号数。void test1()//void应用于函数的返回类型中,表示test这个函数无返回类型。//不能直接对void*类型进行解引用,要先强制类型转换成int*//一般void*类型的指针变量用来临时存放,用的时候强制类型转换去用。//放的时候可以放,但是要用的时候要进行强制类型转换。

2024-12-09 04:34:47 669

原创 【C语言】初阶完结练习题_表达式 10 20 的结果 (本题数值均为十进制)

void ReverseString(char* left, char* right)//反转字符串。while(*end!= ’ ’ && *end)//寻找空格或‘\0’//将字符串中的每个单词翻转。//将字符串整体翻转。

2024-12-09 04:32:47 250

原创 【C++】类和对象(下)_用c+

/ 声明日期类为时间类的友元类,则在日期类中就直接访问Time类中的私有成。//使用对象也可以调用。//成员函数也可以是静态的,static成员函数没有this指针。//静态成员变量属于整个类,所以类的所有对象,放在静态区。//这边有this指针,通过对象去访问私有。//&的不是2022, 是2022的临时变量。// _a = 0;//不能访问非静态的成员。Date(int year)//构造函数。class B //B天生就是A的友元。//因为没有this指针。

2024-12-09 04:30:46 926

原创 【C C++服务器开发】具备丰富功能和可以同时响应多个客服端的服务器_c++ 套接字服务端 可以连接多客户端

/ INADDR_ANY代表本机的所有IP, 假设有三个网卡就有三个IP地址。printf(“子进程正在运行, 或者子进程被回收完毕了\n”);// 2. 将socket()返回值和本地的IP端口绑定到一起。// accept调用被信号中断了, 解除阻塞, 返回了-1。printf(“客户端say: %s\n”, buf);// 1. 创建用于监听的套接字。// 1. 创建监听的套接字。// 1. 创建监听的套接字。

2024-12-09 04:28:46 526

原创 【C C++】详解程序环境和预处理(什么是程序环境?为什么要有程序环境?如何理解程序环境

⭐ 程序环境:是指将源文件(code.c / code.cpp)转换为程序的过程三、 为什么要有程序环境?⭐如果没有程序环境编译器(gcc / g++)就无法识别我们所写的C/C++代码也无法将源代码转换成可执行程序。四、如何理解程序环境?

2024-12-09 04:26:45 994

原创 【Android高级架构师系统学习文章】Android基础-Service全方位解析(系列篇2)

Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要和用户交互而且还要求长期运行的任务。Service默认并不会运行在子线程中,它也不运行在一个独立的进程中,它同样执行在UI线程中,因此,不要在Service中执行耗时的操作,除非你在Service中创建了子线程来完成耗时操作。

2024-12-09 04:24:45 695

原创 【Android】Handler、Looper、消息队列运行机制原理解析及相关面试题

Handler持有了一个消息队列对象mQueue。这个对象是Handler实例构造的时候,通过Looper传递过来的。当使用无参构造方法时,这个Looper为。//。。。而Looper类又是通过来实现线程和Looper对象一一对应的。即是当前线程所对应的Looper。也就是说,Handler中的消息队列,其实是当前线程对应的的消息队列。那么,要理解Handler的原理,就要先理解Looper和消息队列的原理。

2024-12-09 04:22:44 1137

空空如也

空空如也

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

TA关注的人

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