- 博客(44)
- 收藏
- 关注
原创 Android翻转动画(卡片翻转效果)
/AccelerateInterpolator() 其变化开始速率较慢,后面加速。//AccelerateInterpolator() 其变化开始速率较慢,后面加速。//DecelerateInterpolator() 其变化开始速率较快,后面减速。//DecelerateInterpolator() 其变化开始速率较快,后面减速。AccelerateInterpolator() 其变化开始速率较慢,后面加速。//LinearInterpolator() 其变化速率恒定。
2025-01-16 15:45:14
904
原创 Android彻底组件化—如何使用Arouter
由于自定义类型Author需要跨组件传递,我们知道,DDComponent的核心之处就是在组件之间见了一堵墙,在编译期代码和资源都是完全隔离的,所以Author必须定义在share组件向外提供的服务中。所以我们在component中,定义Author类:return age;现在就解决了Author的可见性问题,但是为了能在路由中传递,按照ARouter的要求,还需要自己实现SerializationService:@Override。
2025-01-16 14:47:35
1703
原创 Android开发,跳槽就能涨薪?
在决定跳槽辞职前,一定要去巩固一下基础知识点,了解新的技术(因为Android开发发展迅速,隔一段时间就会有新的技术)提前为面试做准备。找工作的时候要先面试一些小公司,了解一些面试的情况和行情。
2025-01-16 14:46:14
616
原创 Android开发菜鸟完成了三年前留下的遗憾,Bilibili我来了!!
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,可以来参考我的学习资料和学习路线图,比较系统,我平常自己也会经常研读。现在入职B站也有快一个月时间了,整体感觉还是很棒的,同事们都超棒的,超喜欢这里,打工是不可能打工的,这辈子都不可能打工的…很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘,基本都放在盘里吃灰。2.应用启动流程,activity 启动流程,为什么要每个应用有一个自己的虚拟机,这个虚拟机和JVM的关系。12.启动线程和安全的终止线程。
2025-01-16 14:44:52
417
原创 Android仿人人客户端(v5
6、在 EveryoneActivity类中,a.获取Menu组件并为其设置单击事件监听器。以聊天列表视图为例,代码如下:```功能描述:聊天列表视图。功能描述:应用主界面。
2025-01-16 13:16:54
606
原创 Android仿人人客户端(v5(1)
功能描述:左侧面板ExpandableListView组件数据适配器。功能描述:仿人人主界面之左侧面板。功能描述:左侧面板Item信息。
2025-01-16 13:14:53
345
原创 11 高可用的网站架构
位于服务层的服务器情况和应用层的服务器类似,也是通过集群方式实现高可用, 只是这些服务器被应用层通过分布式服务调用框架访问,分布式服务调用框架会在应用 层客户端程序中实现软件负载均衡,并通过^务注册中心对提供服务的服务器进行心跳检 测,发现有服务不可用,立即通知客户端程序修改服务访问列表,剔除不可用的服务器。位于数据层的服务器情况比较特殊,数据服务器上存储着数据,为了保证服务器宕 机时数据不丢失,数据访问服务不中断,需要在数据写入时进行数据同步复制,将数据 写入多台服务器上,实现数据冗余备份。
2025-01-16 01:11:43
282
原创 10段代码打通js学习的任督二脉
再简单分析一下bind函数内部的嵌套,执行bind函数的时候返回的是一个匿名函数,所以执行bar(3)的时候实际上是执行的bind内部的匿名函数,返回的是之前传入的foo函数的执行结果。也就是说当括号内执行完赋值之后,返回的是o对象中的foo函数。bind函数的第一个参数为null代表作用域不变,后面的不定参数将会和函数本身的参数按次序进行绑定,绑定之后执行函数只能从未绑定的参数开始传值。声明的变量和命名函数都会被提升到代码的最前面,只不过声明的变量的赋值语句在代码中的位置不变。经常可以看到这样的代码。
2025-01-16 01:09:43
394
原创 07_重建二叉树,根据先序和中序创建二叉树(中等难度)_在建立二叉树的时候遇到了问题,就拿先序和中序创建来说,找位置有一些难度。
链接:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。0
2025-01-15 23:55:55
138
原创 06-前端开发框架VUE技术应用总结
查找对应的页面组件内容,先代替App.vue中的,然后main.js再将包含要加载的页面内容的App.vue组件内容,替换到唯一完整的index.html中空。b. 中的js内容,和前四天将的是完全一样的写法,绑定,指令,函数,生命周期,axios请求等都一样。全局组件必须在main.js引入,并用Vue.component()转化,为真正的全局组件,才能在其它组件的HTML中使用。2). 将全局组件对象转为真正的全局组件: Vue.component( “组件标签名”, 全局组件对象 )
2025-01-15 23:53:54
635
原创 04【HTML常用标签】_cellpadding mdn
定义列表常用于对术语或名词进行解释和描述,定义列表的列表项前没有任何项目符号。语法:【代码示例】【效果如下】表格标签一般用于展示信息例1:例2:在HTML中,表单标签用于在页面中收集用户的数据,然后将数据提交(发送)到服务器进行后端保存。表单标签在实际开发中用的非常多,常用于用户的注册、登录、搜索等需要收集用户数据的应用场景;
2025-01-15 23:51:50
645
原创 【devOps】MySQL安装
默认情况下 MySQL 是不允许远程连接的,所以在 Java 项目或者 MySQLWorkbench 等数据库连接工具连接服务器上的 MySQL 服务的时候会报 “Host ‘x.x.x.x’ is not allowed to connect to this MySQL server”。firewall-cmd --zone=public --add-port=3306/tcp --permanent #开放3306端口。mysql -uroot -p #输入密码qW/&5(2v7Q%g。
2025-01-15 00:53:25
1729
原创 【C程序设计教程实验】基础练习题(四)
但是,对于 scanf 函数,’\n’ 会触发 scanf 读取输入缓冲区的内容,但遇到 ‘\n’ 或空格 ’ ’ 会停止读取,而 getchar 会直接读取 ‘\n’ 和空格。在用putchar()函数输出变量a,b,c的值时,就输出了字符Y,然后输出换行,再输出字符E,然后执行putchar(’\n’),换行。另外注意,执行getchar()函数不仅可以从输入设备获取一个可显示的字符,还可以获取在屏幕上无法显示的字符,如控制字符。//已知字符A的ASCII码值为65,字符a的ASCII码值为97。
2025-01-15 00:49:44
893
原创 【C++庖丁解牛】高阶数据结构---红黑树详解(万字超详细全面介绍红黑树)
这篇文章我们再来学习一种平衡搜索二叉树——红黑树如果要说常见的数据结构里,哪个数据结构最麻烦、最难以掌握?绝对非红黑树莫属了,如果只是自己看的话很多人可能看很多遍都不太懂红黑树。红黑树和AVL树都是常见的自平衡二叉搜索树,它们都可以用于高效地支持插入、删除和查找等操作。虽然它们都能够保持树的平衡性,但在不同的应用场景下,红黑树和AVL树有各自的优势和适用性。// 节点的颜色// 红黑树节点的定义{}// 节点的左孩子// 节点的右孩子。
2025-01-15 00:46:02
795
原创 [算法题解详细]回溯解力扣79单词搜索
dfs函数传递的参数为,我们需要搜索的网格board,搜索目标单词word,还有搜索层数u,同时也代表当前搜索到的匹配成功的字符数,初始我们从主函数中传入值为0,然后是x,y代表二维网格中的一个点。输入:board = [[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,“D”,“E”,“E”]], word = “ABCB”在dfs函数中,我们可以设置一些剪枝的方法,具体我们在代码中讲,然后在搜索过程中我们要及时回溯,多说无益,接下来进入代码。这里可能会有两个疑问。
2025-01-14 15:17:49
552
原创 [数据结构]——无锁队列_无锁队列快多少
/取出头节点的下一个节点,此节点中有我们想要的值。//取出当前的头节点,也就是哑节点。//用load取出当前_tail节点的值。//由于现在的真正的尾节点是newnode,所以将_tail节点更新为newnode。//如果当前tail节点的下一个节点是空,也就是等于参数一,那么修改为参数二。//如果内存中的值和参数一相同,那么替换为参数二,成功返回true。//将头节点(哑节点)修改为下一个节点。//取出当前atomic对象指向的值。
2025-01-14 15:10:22
647
原创 [springboot一本通]-3
实际上这些配置还都存在,只是将一些不常用的配置隐藏了起来,不需要我们像以往一样逐一配置,从而减少了配置量、提高了开发效率。(通常情况下配置A和B会有默认值,来决定默认的装载行为,这样就不需要我们配置了,进一步减少配置量)我们之前为大家介绍了,Spring Boot里面的各种Bean(类对象)能够实现自动装载,自动的装载帮我们减少了XML的配置,和手动编码进行Bean的加载工作。就是我们下一步要探究的问题了。:修改SpringBoot自动配置的默认值,通过配置来影响SpringBoot自动加载行为。
2025-01-14 15:06:40
655
原创 Python实战 送亲戚,送长辈,“ 月饼 ”可视化大屏来帮忙
中秋节,又称祭月节、月光诞、月夕、秋节、仲秋节、拜月节、月娘节、月亮节、团圆节等,是中国民间的传统节日。中秋节自古便有祭月、赏月、吃月饼、玩花灯、赏桂花、饮桂花酒等民俗,流传至今,经久不息。每年中秋节到,总会去姥姥那里送中秋,并买上各种各样的月饼,那个时候科技并不怎么发达,不仅没有这么多形形色色的月饼,也不知道哪些月饼卖得好?月饼的价格分布是怎样的呢?什么地方的月饼销量最高呢?简直有十万个为什么,希望别人给我们解答。随着科技的飞速发展,互联网沟通了你我他。
2025-01-13 15:43:18
786
原创 Python多线程 Queue 模块_python queue多线程
在这个类中,我们将定义一个run()方法,这个方法将在线程启动时被调用。在run()方法中,我们将处理队列中的数据,并在完成后打印一条消息。接下来,我们定义了一个main()函数,在这个函数中,我们创建了两个线程t和t2,分别执行a()和b()函数。Python的Queue模块提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。在这个示例中,我们将创建两个线程,分别执行a()和b()函数。
2025-01-13 15:39:37
302
原创 Python多任务之进程
进程使用步骤图示:进程使用步骤代码p1.start()p2.start()if== “”:main()运行结果:进程:主进程有什么,子进程就会有什么资源;线程能创建多任务,进程也能创建多任务,但进程耗费的资源比较大;所以运行的进程数,不一定越多越好;当创建子进程时,会复制一份主进程的资源,代码,内存等,但又会有自己不同的地方,比如pid等;我们可以理解为多进程之间共享代码,即只有一份代码,但有多个指向同一代码的箭头;能共享的就共享,不能共享的就拷贝一份;
2025-01-13 15:35:55
757
原创 Java向上转型与向下转型
/不能,不能实例化接口,报错。把指向子类对象的父类引用赋给子类引用叫向下转型(downcasting),要强制转型。//向下转型成子类,调用子类方法。把子类对象直接赋给父类引用叫向上转型(upcasting),向上转型不用强制转型。我们不必知道正在处理的对象的确切类型,这一切都交给多态处理即可;2.3不安全的向下转型:编译正常,运行报错。便于程序的扩展,可以调用更多子类的方法。2.2为什么要向下转型?//能不能直接向下转型?1.1什么是向上转型?1.2为什么要向上转型。2.1什么是向下转型?
2025-01-12 15:48:19
386
原创 Java内存模型之happens-before_java happens-before
happens-before规则来源于Leslie Lamport《Time, Clocks and the Ordering of Events in a Distributed System》。该论文中使用happens-before来定义分布式系统中事件之间的偏序关系(partial ordering),该文中给出了一个分布式算法,能用来将偏序关系扩展为某种全序关系。JSR-133使用happens-before来指定两个操作之间的执行顺序。
2025-01-12 15:44:37
633
原创 JAVA入门之IDEA软件使用方法 笔记(8)
4.输入项目名已经项目存储路径。5.选择模块,并选择添加新模块。7.输入模块名以及存储的位置。对新建的包右键,新建一个类。在代码区域,右键,选择运行。输入包的名字,回车确认。输入类的名字,回车确定。
2025-01-12 15:40:56
91
原创 C语言第三十九弹---预处理(上)
C语言设置了⼀些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。__FILE__ //进⾏编译的源⽂件__LINE__ //⽂件当前的⾏号__DATE__ //⽂件被编译的⽇期__TIME__ //⽂件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义这些预定义符号可以在编写代码时提供有用的信息,例如记录日志、调试代码或实现跨平台的条件编译。通过利用这些符号,我们能够在不同的编译环境中编写更具灵活性和可移植性的代码。
2025-01-11 22:04:20
696
原创 C语言程序的编译与链接
有了符号表程序就可以找到对应的函数,如果合并之后某个符号的地址仍是无效的,则程序无法找到这个符号的定义并报错。符号表的合并和重定位:汇编阶段每个源文件都形成了对应的符号表,在链接阶段需要将它们合并起来。格式,格式将文件划分为不同的区域,存放不同的内容,所以将多个源文件合并生成可执行程序时,需要。中的地址是无效的,所以合并后取有效地址,这个过程叫符号表的。汇编阶段,会将汇编代码处理成机器指令(二进制指令),生成。编译阶段,会生成由汇编语言构成的汇编文件(段表合并:经过汇编过程,生成的。
2025-01-11 22:00:39
694
原创 C语言将循环小数 有限小数转换为分数_c语言小数转分数
早在小学的时候我就对循环小数非常感兴趣,加上初中和高中对循环小数可以说有一定基础研究,因此想到写一个将循环下小数转换为分数的程序,非常有意思,并且对初学者来说,它的输入输出格式的转换也是一大难点。首先必须明确一点,循环小数必定可以转换为分数,原因在于循环小数总可以分解为。前者对应一个分数,后者可以写成一个收敛的等比数列的和,也必定是可以转换为一个分数的。例如0.234343434…,有限部分为0.2=1/5,无限部分为0.0343434…=0.034/(1-0.01)=34/990=17/495;
2025-01-11 21:56:57
508
原创 Android Framework源码阅读笔记_android framework源码笔记
if (getWindow().superDispatchTouchEvent(ev)) { // 这里的调用链条:IphoneWindow>mDecorView.superDispatchTouchEvent>ViewGroup.dispatchTouchEvent()回到 ActivityThread.reportStop(mPendingActions)>mH.post(pendingActions.getStopInfo());
2025-01-11 07:00:32
414
原创 Android Framework 开发解密,移动开发者必须掌握的底层原理_《android framework 开发揭秘
总之,一旦遇到问题,很少人能够由点及面逆向分析,最终找到瓶颈点和最优解决方案,。但Framework 系统框架底层原理是Android开发的基础,体量太大,不是一时半会能精通的。在这里给大家推荐一份由,全文共包含109个知识点,通过经典Binder、Handler、AMS等加深你对Android Framework框架层的理解,助你轻松上手Framework!(需要完整版的可扫描下方二维码领取)**腾讯技术团队出品《Android Framework开发揭秘》**完整文档的可点击直接领取。
2025-01-11 06:56:50
1937
原创 2022新版Git教程 从入门到实战(三)Git分支管理_vs2022 git
本章我们学习了Git分支,了解到了分支的优势和Git分支的工作流程,如何创建分支、切换分支、合并分支、解决冲突。希望大家能够认识到分支开发的优势,掌握分支开的常用命令。
2025-01-10 23:31:48
667
原创 2022年从零开始,用一篇博客掌握 nginx 的初级配置_rewrite-start
这里面要学习的第一个内容,就是各个配置的含义。在配置文件中表示注释。
2025-01-10 23:28:06
916
原创 Java 工具类:SqlFileCompareUtils(比较数据库表和字段变化)
【11】z_project 表字段变化:operateName : varchar(255) -> varchar(50)【7】z_project 表字段变化:operateSn : varchar(255) -> varchar(50)【5】z_project 表字段变化:piCode : varchar(255) -> varchar(50)【6】z_project 表字段变化:code : varchar(255) -> varchar(50)【14】新增表:z_project_log。
2025-01-09 07:32:52
375
原创 Java 多线程:获得线程的返回结果
https://www.processon.com/i/5cd53c2fe4b01941c8cf1c21(ProcessOn是一个在线作图工具的聚合平台~)方法指定一个超时时间,在超时时间内该方法会阻塞当前线程,直到获得结果之后停止阻塞继续运行 —— 如果在给定的超时时间内没有获得结果,那么便抛出。System.out.printf(“(%s) - 运行结束,结果为 %d\n”,System.out.printf(“(%s) - 运行结束,结果为 %d\n”,workers.get(i).join();
2025-01-09 07:29:19
722
原创 Java 反射:框架设计的灵魂
两段代码执行的结果是一样的,但是“正向”代码在编译前,就已经明确了要运行的类是什么(ArrayList),而第二段代码,只有在代码运行时,才知道运行的类是 java.util.ArrayList。动态语言:是指程序在运行时可以改变自身结构,在运行时确定数据类型,一个对象是否能执行某操作,只取决于它有没有对应的方法,而不在乎它是否是某种类型的对象;比如 C 语言、Java;总结一下Java 反射的作用:可以设计出更为通用和灵活的架构,很多框架为了保证其通用性,可以根据配置加载不用的类,这时候要用到反射。
2025-01-09 07:26:16
696
原创 CGBTN2110-DAY15总结复习
boolean addAll(int index, Collection c) 将参数集合c中的所有元素,插入到本集合中指定的下标index处。把本map中的每一对KV都看成是一个Entry,把所有的Entry取出放入一个Set集合中并返回这个Set集合。当存放数据时,会根据hash(key)%n算法来计算数据的存放位置,n就是数组的长度,其实也就是集合的容量。Set keySet() 把本map中的Key值取出放入一个Set集合中并返回这个Set集合。
2024-12-17 23:14:11
799
原创 CentOS7 YUM安装RabbitMQ3
rabbitmq-server -detached 或者 systemctl restart rabbitmq-server。# 查看haproxy状态的登录账号及密码 可访问:http://{HaVip}:5100/stats进行查看。#建立集群之前请先在各个节点的/etc/hosts记录好主机名及IP。#在172.16.10.2中etc/hosts设置。#在172.16.10.1中设置。# 优先级 备机要主机的优先级低。#设置该用户为管理员。#mq管理后台的地址。
2024-12-17 23:03:03
681
原创 centos docker 安装es
运行Elasticsearch容器时,可能还需要配置一些环境变量以适应你的需求,比如设置内存限制、集群名称等。为了让非 root 用户也能执行 Docker 命令,可以创建一个名为。再次验证curl http://127.0.0.1:9200。然后登出并重新登录,使组权限更改生效。把下面的 enable设置成fasle。正常启动如何9200访问不了。修改es容器中的配置文件。
2024-12-17 22:55:36
379
原创 CAS机制是什么,如何解决ABA问题
比如说一个线程one从内存位置V中取出A,这时候另一个线程two也从内存中取出A,并且two进行了一些操作变成了B,然后two又将V位置的数据变成A,这时候线程one进行CAS操作发现内存中仍然是A,然后one操作成功。线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。整体的过程就是这样子的,利用CPU的CAS指令,同时借助JNI来完成Java的非阻塞算法。其它原子操作都是利用类似的特性完成的。
2024-12-17 22:51:55
878
原创 C++进阶之路---多态(一)
多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。那么在继承中要构成多态还有两个条件:1.必须通过基类(父类)的指针或者引用调用虚函数2.被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写(重写条件:函数名/参数/返回值相同 协变例外)
2024-12-17 22:44:28
743
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人