- 博客(13)
- 收藏
- 关注
原创 Android性能优化之内存优化
Android系统虚拟机的垃圾回收是通过虚拟机GC机制来实现的。GC会选择一些还存活的对象作为内存遍历的根节点GCRoots,通过对GCRoots的可达性来判断是否需要回收。内存泄漏就是在当前应用周期内不再使用的对象被GCRoots引用,导致不能回收,使实际可使用内存变小。例如,在onDraw方法里面不要执行对象的创建,一般来说,都应该在自定义View的构造器中创建对象。
2025-01-20 11:57:17
698
原创 Android Studio 4
3、运行模拟器,如果没有安装则会弹出安装框,也可以安装第三方模拟器,如果安装了模拟器,但是找不到,可以重启一下模拟器或者编辑器。6、第一次进入项目,需要加载一些东西,等待时间可能比较长!1、页面主文件夹,下面两种方式找到的文件都是一个,没有区别,只是为了开发方便。,会提示是否需要删除掉,想留就留着,不留就删旧的。,如果没有自己的本地配置,就用系统的,选第一个。3、然后就进入主菜单页,选第一个创建测试项目。5、填写项目信息,创建项目,选好之后,点。4、选个空项目,这样方便自己搭建。2、修改字体,打开设置。
2025-01-20 10:40:00
193
原创 2024年全网最全Java面试总结及答案【建议收藏】
java.util.Date是java.sql.Date的父类,前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他,后者之后在读写数据库的时候用他,因为PreparedStament的setDate()的第2参数和ResultSet的getDate()方法的第2个参数都是java.sql.Date。这种方式存在的一个问题是你使用了一个内部的或第三方库中的公有编译时常量,但是这个值后面被其他人改变了,但是你的客户端仍然在使用老的值,甚至你已经部署了一个新的jar。更多的不同之处参见答案。
2025-01-20 09:06:46
803
原创 MySQL常用指令集_mysql指令集(1)
/建表结束//以下为插入字段teachervalues(’’,‘glchengang’,‘深圳一中’,‘1976-10-10’);teachervalues(’’,‘jack’,‘深圳一中’,‘1975-12-23’);但这个例子中增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见下面的例子。如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
2025-01-18 08:34:04
420
原创 【redis源码学习】rax,我愿称之为“升级版字典树”
/当key较大时,会从堆空间申请内存raxNodenode;//用于遍历Rax树中所有的key查找函数这里可以稍微先瞄一眼,反正后面都是要去手写一下基数树的,先偷瞄一眼。绕过重重包围,我们发现其实最终调用的是下面这个函数进行查找:(不做解释,英文注释已经够清楚了)afterfor (j = 0;if (v[j]!if (j!j++) {i++;j = 0;return i;插入元素。
2025-01-14 14:43:38
899
原创 【Redis 3】配置文件redis
如果你的redis有时延问题,那么请将下面的选项设置为yes。TCP连接保活策略,可以通过tcp-keepalive配置项来进行设置,单位为秒,假如设置为60秒,则server端会每60秒向连接空闲的客户端发起一次ACK请求,以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接。需要注意的一点是,如果你的redis是主redis(说明你的redis有从redis),那么在设置内存使用上限时,需要在系统中留出一些内存空间给同步队列缓存,只有在你设置的是“不移除”的情况下,才不用考虑这个因素。
2025-01-14 14:39:57
518
原创 【Qt】桌面应用开发教程——布局 按钮组 容器 常用控件 消息事件机制_qt 如何按钮切换容器
在搭建Qt窗口界面的时候,在一个项目中很多窗口,或者是窗口中的某个模块会被经常性的重复使用。一般遇到这种情况我们都会将这个窗口或者模块拿出来做成一个独立的窗口类,以备以后重复使用。在使用Qt的ui文件搭建界面的时候,工具栏栏中只为我们提供了标准的窗口控件,如果我们想使用自定义控件怎么办?例如:我们从QWidget派生出一个类SmallWidget,实现了一个自定窗口,Q_OBJECTpublic:signals:private:// 创建布局对象// 将控件添加到布局中。
2025-01-14 14:32:30
585
原创 Kotlin vs Flutter,我到底应该怎么选?
一般的公司都会有专门的服务器人员来开发后台服务器程序,而如果你需要自己来编写服务器程序的话,Kotlin 是值得进行研究的,因为借助 Ktor 框架可以轻松实现服务器端程序的编写,而掌握 Kotlin 语言则是使用 Ktor 框架的前提条件。当然你也可以考虑使用 Kotlin 多平台项目来支持网页平台的开发,但是始终要记得,Kotlin 多平台项目的核心思路是共享代码,因此你还是要为每个平台去编写原生的代码,比如开发 UI 界面,以及对共享代码进行调用等。我们稍后会针对这一点进行更加详细的讨论。
2025-01-11 21:03:06
1548
原创 Kotlin Vocabulary _ Kotlin 内建代理
观察者模式是一种设计模式,在这一模式中,一个对象会维护一个它的从属者的列表,这些从属者即被称为观察者。由于惰性初始化是同步的,所以在第一次访问时仍会消耗与非惰性初始化过程相同的时间,这意味着那些初始化过程较为耗时的对象仍会在被访问时阻塞 UI 线程。))) 函数是一个属性代理,它可以帮您在第一次访问属性时对它们进行惰性初始化。函数的 lambda 表达式,setter 会在每次值被设置之前调用 lambda 表达式。lambda 表达式会在属性第一次被访问时执行,而它的值将会被存储以用于接下来的访问。
2025-01-11 20:59:25
1785
原创 KMP子字符串匹配算法学习笔记
注意这个next数组就根据模式串求取的。使用next数组来匹配有了next数组,就可以根据next数组来 匹配文本串s,和模式串t了。注意next数组是新前缀表(旧前缀表统一减一了)。匹配过程动画如下:放码过来下文统称haystack为文本串, needle为模式串。
2025-01-11 20:55:44
1716
原创 Android --- RecyclerViwe中使用SnapHelper报错:“An instance of OnFlingListener already set
首先来了解一个概念,手指在屏幕上滑动RecyclerView然后松手,RecyclerView中的内容会顺着惯性继续往手指滑动的方向继续滚动直到停止,这个过程叫做Fling。Fling操作从手指离开屏幕瞬间被触发,在滚动停止时结束。而OnFlingListener显然就是监听Fling滚动事件的监听器。4.原因重点:(SnapHelper被多次创建并绑定到同一个RecyclerView)
2025-01-10 06:13:39
387
原创 Android - MVC、MVP与MVVM架构
模型负责管理应用程序的数据。它从控制器接收用户输入。视图意味着以特定格式呈现模型。控制器响应用户输入并在数据模型对象上执行交互。控制器接收输入,可选地对其进行验证,然后将输入传递给模型。与其他软件模式一样,MVC表示问题的“解决方案核心”,同时允许其适用于每个系统。特定的MVC设计可能与此处的传统描述大不相同。MVP即为模型-视图-演示者,是MVC架构模式的派生产品,主要用于构建用户界面。在MVP中,Presenter承担“中间人”的功能,所有演示逻辑都被推送到Presenter。
2025-01-10 06:09:57
545
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人