自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 时间类相关

dateinss在 Instant 上调用 toString 产生如下输出:“2023-03-22T07:18:05.932Z”。这种格式遵循用于表示日期和时间的 ISO-8601 标准。其中Z 其实就是偏移量为 0,表示这个时间是UTC(协调世界时)时间,也就是格林威治标准时间。北京时间 东八区 比UTC时间快8个小时本地时间的显示可以用多种格式输出。自行理解。

2023-03-22 15:28:15 97

原创 Java 字符编码

UTF_8 和 ISO-8859-1在处理有规则的字符转换而来的byte[]时,能正常和string之间正确来回转换UTF_8 和 ISO-8859-1在处理无规则的byte[] (比如bitmap转换而来的),无法和和string之间正确来回转换Bsae64 和 json都能在byte[]和string之间正确转换,Base64效率较高,byte[]和String长度比在3:4。...

2022-08-04 12:46:52 738

原创 枚举的嵌套和归类 - 通过接口实现类似继承的效果

Java中Enum如何继承?Enum的本质语义是把一个类的多个实例直接列举出来。而继承是类的行为,不是实例的行为。因为在语义设计上不能被继承,所以在实现时要进行语法上的约束,编译器会将其声明为final。Java枚举的深入理解以及实现原理枚举本质上是通过普通的类来实现的,只是编译器为我们进行了处理。每个枚举类型都继承自java.lang.Enum,并自动添加了values和valueOf方法。而每个枚举常量是一个静态常量字段,使用内部类实现,该内部类继承了枚举类。...

2022-07-21 17:50:15 889

转载 Kotlin 学习

kotlin builder

2022-04-19 11:06:01 273 1

原创 【笔记】安卓应用组件化

作用代码隔离、职责明确方便裁剪、差异打包独立编译、调试效率复用性、扩展性强涉及基础类库提取业务模块划分(基础能力、common组件、业务组件、app壳)路由模块(注解)gradle配置(依赖关系、独立\整体打包)参考组件化的总体实现、如何实施:Android组件化,全面掌握!ARouter:ARouter路由框架原理简单分析可能是最好理解的ARouter源码分析开源最佳实践:Android平台页面路由框架ARouter...

2022-03-30 17:42:59 1368

原创 加密相关:对称、非对称、秘钥交换

对称加密非对称加密身份认证SSL/TLS 中间人攻击(MITM)

2022-03-04 20:38:00 4717

原创 Android Wireshark抓包:分析Miracast流程、解析音视频裸流

业务中涉及到Miracast,为了知其所以然,这里简单记录下大概流程的认识。1 tcpdump 抓包前提:手机需要有root权限命令:adb shell tcpdump -i p2p0 -s 0 -w /sdcard/capture.pcap# "-i any": listen on any network interface 指定p2p0# "-s 0": capture the entire packet# "-w": write packets to a file (rather th

2021-11-24 18:46:49 3684

原创 树莓派使用MobaXterm实现SSH和VNC

树莓派使用MobaXterm实现SSH和VNCterminal推荐:MobaXterm一、开机SSH无线连接前提:树莓派和PC在同一局域网下,通过路由器获得树莓派ip打开ssh:/boot目录新建文件命名为ssh,以打开ssh,方可连接配置wifi:/boot目录下新建wpa_supplicant.conf文件,如下country=CNctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1netwo

2021-11-07 16:13:41 4995 2

转载 GCC基础

摘录自《Linux C 从入到精通》。1. 命令选项gcc [options] [filenames]其中options就是编译器所需要的参数,filenames给出相关的文件名称。-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。-o output_filename,确定输出文件的名称为output...

2019-04-14 16:02:30 123

转载 函数用法:malloc、calloc、realloc、memset

摘录自《Linux C 从入门到精通》。关于动态内存的分配所使用的操作函数在这里主要介绍malloc函数、calloc函数、realloc函数和memset函数的基本用法。(1)malloc函数函数原型为:void *malloc(unsigned int size);该函数的功能是分配长度为size字节的内存块。如果分配成功则返回指向被分配内存的指针,否则返回空指针NU...

2019-04-14 14:37:33 624

原创 C语言 命名冲突与static修饰符

整理自《C陷阱与缺陷》。1. 链接链接器:C源文件经过编译器生成目标文件。链接器的输入:目标文件和库文件链接器输出:载入模块或可执行文件外部对象: 连接器通常把目标模块看成是由一组外部对象组成的。每个外部对象代表着机器内存中的某个部分,并通过一个外部名称来识别。因此,程序中的每个函数和每个外部变量,如果没有被声明为static,就都是一个外部对象。某些C编译器会对静态函数...

2019-04-12 21:13:16 841

转载 C语言 求值顺序

整理自《C陷阱与缺陷》。1. 运算顺序和求值顺序运算顺序: 根据运算符号的优先级(结合性)来进行求值的过程求值顺序: 例如 D = A + B + C, 运算顺序是 A 先加 B 再加 C, 但是c语言并没有规定是先计算A的值还是B的值还是C的值; 这就是求值顺序。2. C规定了这四个运算符的求值顺序: &&、||、?:、,短路求值:&&a...

2019-04-11 21:04:24 1813

原创 C语言中数组名和数组下标

整理自《C陷阱与缺陷》。数组注意点:1.C数组中只有一维数组,数组的大小必须在编译期作为常数确定。但C数组的元素可以是任何类型的对象,当然也可以是另一个数组,所以“仿真”出一个多维数组。(不太明白为什么要强调只有一维数组,难道“模拟”出来的多维数组和真正的多维数组不一样?)2.对于一个数组,我们只能够做两件事:确定该数组大小[sizeof(数组名)],以及获得指向该数组下标为0的元素的指针...

2019-04-11 20:55:39 8067 2

原创 理解函数声明 :C语言的声明、函数指针、指针函数、类型转换符、typedef函数指针

整理自《C陷阱与缺陷》。1. C语言的声明构造规则:按照使用的方式来声明;C变量的声明由两部分组成:类型+一组类似表达式的声明符(declarator)。意思是对声明符求值,返回给定类型的结果。float f,g;因为声明符和表达式的类似,我们可以在声明符中任意使用括号。如:float ((f));2. 函数指针,指针函数float *g() , (*h)();(...

2019-04-06 10:36:28 270

空空如也

空空如也

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

TA关注的人

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