- 博客(17)
- 收藏
- 关注
原创 java面向对象程序设计课程2_system
1)声明变量:根据所存储的数据类型为变量申请一块存储空间,并为该存储空间命名。2)赋值:将数据存储至变量中3)使用变量:使用变量的值变量的使用注意事项:使用步骤三步缺一不可没有声明的变量不能直接使用声明了的变量,但没有赋值也不能直接使用格式:数据类型 变量名;例子变量名的命名规则变量名的开头可以是字母,下划线“_”和"变量名可以包含数字但是不能放在变量的开头除了和" 变量名可以包含数字,但是不能放在变量的开头 除了“_”和“
2025-01-12 19:45:46
1017
原创 Java集合【Java面试题】
Map 中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的,Set 中存储的数据是无序的,且不允许有重复,但元素在集合中的位置由元素的 hashCode 决定,位置是固定的(Set 集合根据 hashCode 来进行数据的存储,所以位置是固定的,但是位置不是用户可以控制的,所以对于用户来说 Set 中的元素还是无序的);在运行的时候空间的大小是无法随着你的需要进行增加和减少而改变的,当数据两比较大的时候,有可能会出现越界的情况,数据比较小的时候,又有可能会浪费掉内存空间。链表增删快,查找慢;
2025-01-12 19:42:05
272
原创 Java进阶:SpringMVC拦截器
/在目标方法执行之后 视图对象返回之前执行//在流程都执行完毕后 执行配置:在SpringMVC的配置文件中配置配置拦截器对哪些资源执行拦截操作编写测试程序测试:编写Controller,发请求到controller,跳转页面System.out.println(“目标资源执行…”);页面。
2025-01-12 19:38:22
753
原创 Flutter-VS-Kotlin-跨平台开发市场的最终霸主究竟花落谁家
Flutter 于 2015 年推出,是谷歌 Fuchsia 操作系统的市场开路先锋。它是一个开源 SDK,让人们可以使用单个代码库制作出设计精美,具备原生体验的移动设备、Web 和桌面应用程序。谷歌的 UI 框架针对当前众多的技术和市场挑战,提供了行之有效的解决方案。结果是 Flutter 很快就成为了理想的跨平台应用开发框架。不仅如此,它还进入了一众顶级品牌所使用的技术列表中。于是人们都更好奇了,想要了解 Flutter 的功能特性以及相应的优点,接下来我们逐一分析。
2025-01-12 02:20:01
1289
原创 Flutter 网络请求框架封装
以上的步骤是 dart 简单获取网络的方式,我们从上面可以看到,通过 HttpClient 发起网络请求时比较麻烦的,很多都要我们亲手处理,还有 Cookie 的管理也是比较麻烦的。print(“\n================== 请求数据 ========print(“\n================== 请求数据 ========错误响应数据 ======================”);错误响应数据 ======================”);// 头部添加 token 验证。
2025-01-12 02:12:36
509
原创 Android官方架构组件Paging-Ex_列表状态的响应式管理
这样的需求随处可见,比如侧滑删除等等:本文将阐述:如何管理Paging分页列表的,为何这样设计,以及设计的过程。
2025-01-11 11:33:46
983
原创 Android官方架构组件Paging-Ex_为分页列表添加Header和Footer
对于常规的多类型列表而言,我们可以轻易的持有,从数据的控制而言,我更倾向于用一个代表Header或者Footer的占位符插入到数据列表的顶部或者底部,这样对于的渲染而言,它是这样的:正如我所标注的,中一个ItemData对应了一个ItemView——我认为为一个Header或者Footer单独创建对应一个Model类型是完全值得的,它极大增强了代码的可读性,而且对于复杂的Header而言,代表状态的Model类也更容易让开发者对其进行渲染。这种实现方式简单、易读而不失优雅,但是在Paging。
2025-01-11 11:30:04
464
原创 Android存储系统源码走读(一):StorageManagerService
/ 前面先是读取一些属性状态,其中关于FUSE下面会稍微介绍一下// 创建名为“StorageManagerService”的线程,并创建对应的Handler// mObbActionHandler对应“android.io”线程// 启动installd服务//判断/data/system/last-fstrim文件,不存在则创建,存在则更新最后修改时间if (!try {
2025-01-11 11:26:22
872
原创 android四大组件之BroadcastReceiver
如果第一个广播需要添加消息给第二个广播,可以在onReceive()中添加```bundle.putString(“addString”,“我是添加的消息”);而第二个广播类中取出。
2024-12-17 03:09:56
329
原创 Android关于Canvas你所知道的和不知道的一切
**绘制文字*/canvas.drawText(“张风捷特烈–Toly”, 200, 300, mRedPaint);无聊的代码终于敲完了,进入正题。
2024-12-17 03:02:35
739
原创 Android修行手册-基础优化系列图片篇
质量压缩通常是不改变尺寸的情况下进行像素质量压缩,肉眼可能难辨,但是进行放大对比就能对比出差异。这种压缩形式会改变图片在硬盘存储中的大小(也就是File文件的大小),对于内存中的大小影响,作用很小。原理是:主要实现手段是通过算法将某个像素点周围的像素进行处理同化,将像素降低质量或减少,进而达到压缩的目的,同时也改变了文件大小。另外PNG虽然是无损格式的,但仍然可处理,只不过效果小,得不到理想程度,一般都是针对JPG格式图片处理。应用场景:图片的上传下载。
2024-12-17 02:58:54
638
原创 Android低功耗蓝牙通讯
接收数据时,一次最多也只接收20字节的数据,需要将接收到的数据拼接起来,在数据的结尾弄一个特定的标识,去判断数据是否接受完毕。startLeScan中,第一个参数是只扫描UUID是同一类的ble设备,第二个参数是扫描到设备后的回调。//可以将扫描的设备弄成列表,点击设备连接,也可以根据每个设备不同标识,自动连接。发送数据时,如果一包数据超过20字节,需要分包发送,一次最多发送二十字节。因为蓝牙扫描比较耗电,建议设置扫描时间,一定时间后停止扫描。//发现设备,遍历服务,初始化特征。//蓝牙扫描回调接口。
2024-12-17 02:55:14
907
原创 Android从源码分析RecyclerView四级缓存复用机制一(缓存ViewHolder)
2.再看一下主要的方法调用流程,从RecyclerView的onMeasure方法开始一直到三个存储的地方一级,二级和四级缓存,别问为啥没有mViewCacheExtension,问就是这个你需要自己去存。//mCachedViews屏幕外缓存的存储上限默认为DEFAULT_CACHE_SIZE也就是2,可变。//四级缓存当屏幕外缓存的大小大于2,便放入mRecyclerPool中缓存。//三级缓存自定义缓存,自己定义的缓存规则。//Viewholder存储到四级缓存。//默认屏幕外缓存大小。
2024-12-17 02:51:32
893
原创 Android中对图片的内存优化方法
另外,decodeStream 直接拿图片来读取字节码了,不会根据机器的各种分辨率来自动适应,使用了 decodeStream 之后,需要在 hdpi 和 mdpi,ldpi 中配置相应的图片资源, 否则在不同分辨率机器上都是同样大小(像素点数量),显示出来的大小就不对了。图片对象的本地数据占用的内存最大,而且与程序 Java 部分的内存是分开计算的。放大后的图片使用的 ARGB_8888 颜色模式,就算原图片是ARGB_4444 颜色模式也一样,而且没有办法在放大时直接指定颜色模式。
2024-12-17 02:47:52
804
原创 Android中SurfaceView使用详解
绘制的时候,在surfaceCreated()方法中开启子线程进行绘制,而子线程使用一个while(mIsDrawing)的循环来不停的进行绘制,在绘制的逻辑中通过lockCanvas()方法获取Canvas对象进行绘制,通过unlockCanvasAndPost(mCanvas)方法对画布内容进行提交。在我们的draw()方法每一次更新所耗费的时间是不确定的。在自定义的MySurfaceView的构造方法中,需要对SurfaceView进行初始化,包括SurfaceHolder的初始化、画笔的初始化等。
2024-12-17 02:44:11
1427
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人