- 博客(27)
- 收藏
- 关注
原创 socket 记录 02
报文段是指TCP/IP协议网络传输过程中,起着路由导航作用用以查询各个网络路由网段、IP地址、交换协议等IP数据包报文段充当整个TCP/IP协议数据包的导航路由功能报文在传输过程中会不断地封装成分组、包、帧来传输一种规定、约束约定大于配置,在网络传输中依然适用;网络的传输流程是健壮稳定的,得益于基础协议的构成物理地址、硬件地址互联网协议地址是分配给网络上使用的网际协议的设备数字标签IP地址常见分为IPv4和IPv6 0到1023号端口以及1024到49151端口都是特殊端口特殊端口...
2022-06-09 23:17:05
330
原创 Socket学习记录01
在计算机领域中,网络是传输、接收、共享的虚拟平台通过它把各个点、面、体的信息联系到一起,从而实现资源的共享网络是人类发展史来最重要的发明,提供了科技和人类的社会发展概述:多设备连接在一个路由器上实现消息通讯概述:多个局域网之间组成的网络通讯从大的方面说是对信息的发送到接收通过操作相应的API调度计算机硬件资源,并利用传输管道(网线)进行数据交换的过程具体涉及到:网络模型、套接字、数据包等知识基础层:物理层、数据链路层、网络层传输层:TCP-UDP协议层、Socket高级层:会话层、表现层、应用层简单来说是I
2022-06-07 23:40:12
226
原创 VMware 杂记
Emulator: emulator: ERROR: x86_64 emulation currently requires hardware acceleration
2022-05-29 17:43:26
266
原创 React Native 填坑记录01
npm start 启动不了Metro服务npm ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! Demo1@0.0.1 start: `npm react-native start`npm ERR! Exit status 1npm ERR!npm ERR! Failed at the Demo1@0.0.1 start script.npm ERR! This is probably not a problem with npm. There
2022-04-21 23:03:52
3340
原创 Jetpack系列:ViewBinding的使用及原理
ViewBinding是什么ViewBinding是Android Studio3.6推出的新特性,旨在替代findViewById来查找视图,为开发者减少编写重复的模板代码,提高代码的安全性。原理在gradle启动ViewBinding后,通过再次Make Project系统会给每个模块中的每个xml布局生成一个绑定类;绑定类实例中包含对xml布局中有ID的视图的直接引用;内部还是通过findViewById来实现查找试图。使用gradle配置android {
2022-04-01 21:53:01
2578
原创 Java易混淆系列:浅拷贝和深拷贝
什么是浅拷贝浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址 ,因此如果其中一个对象改变了这个地址,就会影响到另一个对象。直白描述:浅拷贝是指拷贝的对象和被拷贝后的对象有相同的内容,拷贝对象和被拷贝对象地址是不同的,对象中基本数据属性内容发生改变,不会影响另一个对象,但如果其中一个对象改变其引用属性的内容,另一个对象所对应的引用属性内容也会随着改变。实现浅拷贝方式
2022-03-29 22:51:09
129
原创 Jetpack系列:ViewModel
官网解释ViewModel类以注重生命周期的方式存储和管理界面相关的数据。ViewModel类让数据可在发生屏幕旋转等配置更改后继续留存。直白描述:ViewModel是用来存储处理视图层所需要的数据,方便通过数据驱动的方式通知视图层进行UI更新。特点1、有自己的生命周期,和activity、fragment相关联,在activity的onDestroy,和fragment的onDestroyView调用时会自我回收,防止内存泄露,生命周期感知通过Lifecycle实现。2、屏幕旋..
2022-03-27 23:10:10
2711
原创 Java 易混淆系列:Java的值传递和地址传递
前提 本案例基于JDK1.8结论 基本数据类型作为方法参数传递是值传递,改变参数值不会影响到原始值 引用数据类型,比如普通对象、对象/基本数据类型列表、对象/j基本数据类型数组等作为参数传递,通过参数改变其内容,原始引用内容也会被修改,是地址传递。案例代码 public static void main(String[] args) { int num = 0; System.out.println("基本...
2022-03-26 18:55:21
653
原创 Git实用(ZX)技巧记录
rebase变基操作,移动你分支根节点适用场景想拉取最新主分支代码,但又不想多出一条merge的提交信息使用方式git rebase origin 主分支名称与Merge区别使用merge同样可以达到同步代码的效果,但使用merge会让我们的分支可读性变差,因为merge操作是会额外再产生一个新提交,而实际开发中develop分支是很活跃的,如果你使用merge来同步,我们的分支结构将变得很乱;相反,使用rebase的话,就能解决该痛点,让我们的分支变得更加线性清...
2022-03-26 12:49:12
391
原创 Android系列梳理-SharedPreferences解析
SP是什么轻量级数据存储,用于存储APP配置信息,以key-value方式进行保存读取特点第一次getSharedPreferences进行初始化时,会一次性将xml的key-value读取到map集合中缓存在内存中,下次get操作就能直接从map中获取对应的key-value使用规范 避免存储大文本数据,因为读取数据实际都会会从内存缓存数据中读取,一旦存在许多大容量的value值,会导致高内存占用保存值commit()和apply()的区别commit():同步方...
2022-03-25 17:41:17
2971
原创 Android性能优化-内存优化
内存抖动短时间内有大量对象进出新生区导致,表现为内存忽高忽低,分析图呈现锯齿状。坏处:导致APP出现卡顿,严重可能导致OOM内存泄露含义:程序中已动态分配的堆内存由于某种原因导致内存为及时释放或无法释放,造成内存浪费。条件:泄露对象引用满足根可达性性,即A对象被B对象引用,但A已被销毁,B一直还存在检测工具Android Profile 内存性能分析1、可导出dump供MAT分析使用,或者在3直观判断是否存在内存泄露2、可通过监控分析内存tota.
2022-03-20 11:44:23
2045
原创 Java多线程小记(待续)
什么是线程?线程是进程的最基本执行单位,是CPU调度最小单位。单线程和多线程有什么不同?单线程执行任务时串行执行,需要一个任务完成后才能执行下一个任务;而多线程执行任务时可以并发执行,无需等待其它任务执行完毕才执行自身任务。多线程有什么好处?提高CPU资源利用率,提高处理任务的效率。创建线程的方式?1.继承Thread类,2.实现Runnable接口,3.实现Callable接口,其它2、3方式只是一个接口没有启动线程的能力,真正启动线程还是通过Thread类实现,而Thread
2022-03-11 22:01:32
240
原创 JavaCV 颜色模型与转换
常见的颜色模型RGB颜色模型三通道,R:红色(0~255)G:绿色(0~255)B:蓝色(0~255)RGBA颜色模型四通道,在RGB模型的基础上多了一个A透明度(0~255)YUV颜色模型主要用于视频和图片的传输,黑白电视采用就是这种模型,彩色电视则通过YUV转RGB显示Y:像素的亮点...
2022-01-04 01:00:00
1041
原创 Java源码浅析:Long缓存问题
Long这种封装型数据,内部实现了一套缓存机制,缓存了-128到127间的数值,初始化时获取数值,如果在这区间中,会直接从缓存获取,从相关源码中就能发现:private static class LongCache {private LongCache(){}// 缓存,范围从 -128 到 127 , +1 是因为有个 0static final Long cache[] = new Long[-(-128) + 127 + 1];// 容器初始化时,进行加载static {//
2021-12-28 01:00:00
298
原创 ArkUI 代码结构基本概念了解
装饰器:可装饰类、结构、方法、变量,并赋予他们特殊的含义例如:@Entry:装饰第一个显示的页面@Component :装饰组件@State :装饰变量等等自定义组件:可重用的UI单位,可与其它组件配合使用例如:@Component 装饰的struct HelloUI描述:声明式描述UI结构例如:build()方法中的代码块内置组件:框架中内置的内容、布局组件例如:Column、Text、Divider、Button等属性方法:是指组件提供的属性方法如
2021-12-28 00:00:00
707
原创 JavaCV 之音视频基础概念 I帧、B帧、P帧、DTS、PTS了解
I帧 也叫关键帧 ,包含了一帧的完整数据,解码时只需要本帧的数据,不需要参考其他帧。P帧 P是指需要向前搜索,不是完整帧,解码时需要借助参考前一帧才能处理显示B帧 B是指需要双向搜索,解码B帧需要借助前后两帧才能正常处理显示DTS(Decoding Time Stamp):解码的时间,在FFmpeg中AVFrame中存放,PTS(Presentation Time Stamp):显示的时间,在FFmpeg中AVPacket中存放有的视频处理后音视频不通过主要是由于DTS和PTS的顺序
2021-12-27 01:00:00
1096
原创 JavaCV:Mat、Frame、Bitmap 之间的相互转换
JavaCV中时常需要用到Mat、Frame和Bitmap之间的相互转换,操作如下: AndroidFrameConverter converter = new AndroidFrameConverter(); // Frame 转 Bitmap Bitmap frame2Bit = converter.convert(frame); // Bitmap 转 Frame Frame bit2Frame =..
2021-12-26 01:00:00
2328
原创 Java基础-源码浅析记录-String之不可变性
String字符串我们经常用到,但它有什么特点呢??通过阅读相关文档,我们知道了它有个特点,就是不可变性,所谓不可变性,就是一旦这个类值被初始化后,就不能在改变了。我们来看一个例子:String s ="hello";s ="world";从代码看,这个值好像被重新赋值了,但通过debug发现s指向的地址和原先的hello已经不同了,为什么呢?其实从源码中就能找到答案,public final class String implements java.io.Serializ
2021-12-25 13:44:38
100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人