Logic
文章平均质量分 61
丨走明天的路丨
If you focus on results, you will never change. If you focus on change, you will get results.
展开
-
Git分支规范
分支策略开始开发前,从develop拉取特性分支,分支命名为 feature/xxx特性开发完成后,向develop分支发起Merge Request,评审后合入develop分支转测时,从develop拉取release分支,从转测到发布前的bug修复都在release分支,分支命名为 release/v0.2.0release分支入master,并打tag,发布,tag按版本命名,发布后release分支因合并回develop出现线上bug时,从特定tag拉取hotfix分支,所有的bug修复原创 2020-10-13 10:57:35 · 285 阅读 · 0 评论 -
Protobuf详解使用
Protobuf全称是Google Protocol Buffer,是一种高效轻便的结构化数据存储方式,可用于(数据)通信协议、数据存储等。Xml、Json是目前常用的数据交换格式,它们直接使用字段名称维护序列化后类实例中字段与数据之间的映射关系,一般用字符串的形式保存在序列化后的字节流中。消息和消息的定义相对独立,可读性较好。但序列化后的数据字节很大,序列化和反序列化的时间较长,数据传输效率不高。Protobuf和Xml、Json序列化的方式不同,采用了二进制字节的序列化方式,序列化与反序列化不需要解原创 2020-09-04 02:04:09 · 2266 阅读 · 0 评论 -
排序查找算法集合
排序查找算法集合 //冒泡排序 主要是交换位置 public void bubbleSort(Integer[] arr, int n) { if (n <= 1) { return; //如果只有一个元素就不用排序了 } for (int i = 0; i < n; ++i) { // 提前退出冒泡循环的标志位,即一次比较中没有交换任何元素,这个数组就已经是有序的了原创 2020-08-04 10:10:03 · 134 阅读 · 0 评论 -
mkdir和mdirs区别
mkdir,mkdirs方法1、关于两者的说明如下: boolean mkdir() : 创建此抽象路径名指定的目录。 boolean mkdirs() : 创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。 2、结合自己的理解及具体实践如下:File file = new File("e:/test");file.mkdir();这样会在c:/路径下创...原创 2018-07-06 09:46:13 · 501 阅读 · 0 评论 -
一次完整的HTTP事务
一次完整的HTTP事务是怎样一个过程?当我们在浏览器的地址栏输入 www.linux178.com ,然后回车,回车这一瞬间到看到页面到底发生了什么呢?以下过程仅是个人理解:域名解析 --&amp;gt; 发起TCP的3次握手 --&amp;gt; 建立TCP连接后发起http请求 --&amp;gt; 服务器响应http请求,浏览器得到html代码 --&amp;gt; 浏览器解析html代码,并请求html代码中的资源...原创 2018-12-05 14:45:51 · 205 阅读 · 0 评论 -
常见的加密和解密算法—AES
常见的加密和解密算法—AES一、AES加密概述高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB...原创 2018-12-05 16:54:24 · 4242 阅读 · 2 评论 -
gRPC学习历程(一)
“老公,什么是RPC呀,为什么你们程序员那么多黑话!”,老婆还是一如既往的好奇。“RPC,就是Remote Procedure Call的简称呀,翻译成中文就是远程过程调用嘛”,我一边看着书,一边漫不经心的回答着。“啥?你在说啥?谁不知道翻译成中文是什么意思?你个废柴,快给我滚去洗碗!”“我去。。。”,我如梦初醒,我对面坐着的可不是一个程序员,为了不去洗碗,我瞬间调动起全部脑细胞,星辰大海在我脑中汇聚,灵感涌现......"是这样,远程过程调用,自然是相对于本地过程调用来说的嘛。"“嗯哼原创 2019-04-17 15:00:31 · 484 阅读 · 0 评论 -
Android项目TargetSdkVersion的作用
Android系统平台的行为变更,只有targetSdkVersion的属性值被设置为大于或等于该系统平台的API版本时,才会生效;compileSdkVersion属于Android编译项目时其中的一项配置,主要区别是compileSDKVersion在不会被打包的APK文件中,targetSdkVersion和minSdkVersion将被打包到APK文件中如图:...原创 2019-05-10 15:46:44 · 919 阅读 · 0 评论 -
蓝牙基础知识探索
蓝牙初识蓝牙模块可以通过串口(SPI、IIC)和MCU控制设备进行数据传输。蓝牙模块可以做为主机和从机。主机就是能够搜索别的蓝牙模块并主动建立连接,从机则不能主动建立连接,只能等别人连接自己。BR/EDR:基础率/增强数据率(version:2.0/2.1)特点是:支持持续无线连接,以点对点(P2P)网络拓扑结构建立一对一(1:1)设备通信。LE:低耗能(version:4.0/4.1/4...原创 2019-06-14 11:19:45 · 662 阅读 · 1 评论 -
Java多态详解
对于多态,可以总结它为: 一、使用父类类型的引用指向子类的对象; 二、该引用只能调用父类中定义的方法和变量; 三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用) 四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。java多态,如何理解父类引用...原创 2019-07-02 17:33:47 · 161 阅读 · 0 评论 -
Android APP CC2640R2F OTA 流程
Android APP CC2640R2F OTA 流程1.镜像(bin文件)验证a. ffc1写入(10:00)打开通知 ffc2写入(10:00)打开通知 ffc5写入(10:00)打开通知 发送CMD 01(1byte)到ffc5,返回3byte(第二个字节是返回需要修改的mtu大小 OAD_BLOCK_SIZE) Get OAD Block Size Command...原创 2018-05-16 14:26:32 · 2059 阅读 · 0 评论 -
一篇读懂正则表达式
基础\d可以匹配一个数字 \w可以匹配一个数字或字母或_ \s可以匹配一个空格(也包括Tab等空白符) .可以匹配任意字符(数量为1) *表示任意个字符(包括0个) +表示至少一个字符 ?表示0个或1个字符 {n}表示n个字符 {n,m}表示n-m个字符 表示行的开头,\d表示必须以数字开头。 表示行的结束,\d表示行的结束,\d表示行的结束,\d表示必须以数字结束。 (注...原创 2018-04-04 17:57:47 · 221 阅读 · 0 评论 -
Java并发编程:深入剖析ThreadLocal
Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对ThreadLocal的理解 二....转载 2018-04-04 17:11:08 · 165 阅读 · 0 评论 -
关于List.remove在for循环中出现问题的解决方案
解决list.remove的坑原创 2016-12-29 14:18:25 · 8383 阅读 · 5 评论 -
android studio debug
这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此。 先编译好要调试的程序。1.设置断点选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。 2.开启调试会话点击红色箭头指向的小虫子,开始进入调试。 IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的原创 2017-09-07 11:22:27 · 231 阅读 · 0 评论 -
一眼看懂https的工作流程
总结: 1.服务器 用RSA生成公钥和私钥 2.把公钥放在证书里发送给客户端,私钥自己保存 3.客户端首先向一个权威的服务器检查证书的合法性,如果证书合法,客户端产一段随机数,这个随机数就作为通信的密钥,我们称之为对称密钥,用公钥加密这段机数,然后发送到服务器 4.服务器用密钥解密获取对称密钥,然后,双方就已对称密钥进行加密解原创 2017-11-07 10:45:52 · 1330 阅读 · 1 评论 -
Android蓝牙一篇看懂
Android蓝牙BLE的详细讲解Slide01我今天分享的主题是 Android上低功耗蓝牙的实践。这个主题比较小众。我在过去的一年多的时间里,主要是在做低功耗蓝牙相关的开发。接触过程中发现,BLE的开发和通常的 Android APP的开发有点不一样,这里需要访问硬件资源,而且涉及到一些协议相关的内容,而且这方面的资料也比较少。今天我从 Android开发者的角度,来分转载 2017-11-06 14:38:22 · 1172 阅读 · 5 评论 -
测试用例编写设计
如何编写软件测试用例?测试用例编写工具? 软件测试用例是描述测试过程具体步骤的文档,包括测试的输入参数、条件、配置、预期输出结果等,并以此来判断被测软件的各模块是否正常工作。编写测试用例可以使我们理清思路,避免遗漏,同时可以跟踪测试进展,为测试项目提供参考依据。那么如何来编写一份合格的测试用例呢?方法/步骤软件测试用例的编写原创 2017-12-22 10:54:09 · 686 阅读 · 0 评论 -
Android开发 - ActivityLifecycleCallbacks使用方法
ActivityLifecycleCallbacks是什么?Application通过此接口提供了一套回调方法,用于让开发者对Activity的生命周期事件进行集中处理。为什么用ActivityLifecycleCallbacks?以往若需监测Activity的生命周期事件代码,你可能是这样做的,重写每一个Acivity的onResume(),然后作统计和处理:原创 2017-12-08 10:03:08 · 315 阅读 · 0 评论 -
懒汉模式学习线程处理
懒汉模式学习线程处理 /** * Created by ty on 2017/8/15. */public class BluetoothMananger { /** * 4. volatile是否有必要? * volatile 会拒绝编译器对其修饰的变量进行优化。也就不会存在重排序的问题。volatile只会影响可见性,不会影响原子性。这个关键字是使instance同步,也就...原创 2017-08-15 15:15:52 · 264 阅读 · 0 评论 -
Android中物联网byte的用法
package test; public class A { public static void main(String[] args) { //前提:在java中,默认都是int型 //负数在计算机中用补码表示,转换规则为 //十进求二进制负数情况 // 先求出与该负数相对应正整数二进制代码,然后...原创 2018-03-14 17:50:03 · 623 阅读 · 0 评论 -
JavaEE 基础学习
Java基础一、java面向对象的三大特性与含义 • 继承:从已有的类得到继承信息创建新类的过程,继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序的可变因素的重要手段。 • 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已经定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自制、封闭的对象。可以说,封装就是隐藏一切可隐藏的东西,只向外界提...原创 2018-04-09 10:57:04 · 308 阅读 · 0 评论 -
解决Android Studio 一般性错误
Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.Android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: Java.util.concurrent.Exec原创 2016-11-17 11:29:11 · 354 阅读 · 0 评论