软件工程六大设计原则总结,案例演示
本文源码: "GitHub·点这里" || "GitEE·点这里" [toc] 一、单一职责原则 1、概念描述 对类来说的,即一个类应该只负责一项职责。如果一个类负责两个职责,可能存在职责1变化,引起职责2变化的情况。可以基于抽象逻辑,或者业务逻辑对类进行细化。 2、案例演示 这里基于方法和类的细化 ...
都9012了,Java8日期时间API你还没有掌握?
工作这么久了,对于Java中时间日期的操作一直很蛋疼,一会用Date,一会用Calendar一会用LocalDateTime,始终没有认真总结过它们的联系与区别。迷迷糊糊用了好几年了,今天终于搞清楚了! ...
源码分析— java读写锁ReentrantReadWriteLock
前言 今天看Jraft的时候发现了很多地方都用到了读写锁,所以心血来潮想要分析以下读写锁是怎么实现的。 先上一个doc里面的例子: 我们一般实例化一个ReentrantReadWriteLock,一般是调用空的构造器创建,所以默认使用的是非公平锁 ReentrantReadWriteLock内部类S ...
函数计算进行自动化运维专题
前言 通常来说,自动化运维有两种类型的运维方式: 定时的脚本任务, 比如定时更换云服务的 acess key secret , 定时检查 ecs 对外暴露的端口等 报警事件的紧急处理, 比如 ecs 实例发生异常重启 在传统的运维中,对于定时任务的处理通常用crontab脚本来实现,但是一旦管理的机 ...
Rust入坑指南:鳞次栉比
很久没有挖Rust的坑啦,今天来挖一些排列整齐的坑。没错,就是要介绍一些集合类型的数据类型。“鳞次栉比”这个标题是不是显得很有文化? ...
Android Saripaar 注解详解
写这篇文章的原因 在移动端一般很少使用复杂的表单,一般针对于属性的更改都会打开一个新的页面进行更改。虽然不多,但是也会有。如果一个页面要输入的内容包括姓名、地址、邮箱、手机号等,对各个属性的验证会非常麻烦,并且非常的不优雅。 于是, 就出现了,一种基于规则的 输入验证库,通过注解即可标注验证规则。 ...
数据结构入门-离散存储(链表)
一、预备知识:typedef 基本使用 也可以这样使用,这样更加的方便 还可以把上面的两个结合起来 二、离散存储(链表) 定义:n个节点离散分配,彼此通过指针相连,每一个节点只有一个前驱节点和一个后续节点,首节点没有前驱节点,尾节点没有后续节点 专业术语: 1. 首节点:第一个有效节点 2. 尾节点 ...
[翻译] 使用 Serverless 和 .NET Core 构建飞速发展的架构
Serverless 技术为开发人员提供了一种快速而独立的方式将实现投入生产。这种技术在企业的技术栈中日益流行,自 2017 年以来,它一直是 ThoughtWorks 技术雷达的实验级别的技术[译注:技术雷达是 ThoughtWorks 每半年发布的前沿技术解析]。
本篇文章的第一部分介绍了... ...
论一个前端开发者的自我修养
先做个简单的自我介绍:本人(大名:萧文翰),Android 架构师/技术顾问。从2013年开始从事移动前端开发,主攻 Android 和跨平台开发技术,具有丰富的实战项目经验。国内7项专利共同发明人;图书《Android App Hook and Plug In Technology》译者(中译英) ...
漫画:三种 “奇葩” 的排序算法代码实现
1: 睡眠排序 public class Main2 { public static void sleepSort(int[] array) { for (int i : array) { new Thread(()->{ try { Thread.sleep(i); } catch (Except ...
Protocol Buffers
Google Protobuf Why Protobuf protobuf它是Google提供的一个技术, 一个类库, 也可以说是一套规范, 学java的人都知道java有自己的序列化机制, 对不同的java程序来说,他们可以使用同一种序列化机制进行数据的传递, 但是java的序列化机制并不适用于其 ...
[从今天开始修炼数据结构]队列、循环队列、PriorityQueue的原理及实现
[从今天开始修炼数据结构]基本概念 [从今天开始修炼数据结构]线性表及其实现以及实现有Itertor的ArrayList和LinkedList [从今天开始修炼数据结构]栈、斐波那契数列、逆波兰四则运算的实现 [从今天开始修炼数据结构]队列、循环队列、PriorityQueue的原理及实现 一、什么 ...
移动端App uni-app + mui 开发记录
前言 1、uni-app uni-app是DCloud推出的终极跨平台解决方案,是一个使用Vue.js开发所有前端应用的框架,官网:http://uniapp.dcloud.io/ 2、mui 号称最接近原生APP体验的高性能前端框架,官网:http://dev.dcloud.net.cn/mu ...
Caffe 图像分类
本文主要描述如何使用 CAFFE 进行图像分类。 开发环境要求:windows 10 64位、Visual Studio 2017、.NET framework 4.6.1 分类 在一个项目的图像分类中,存在N个分类,每个分类需要有足量训练样本图像和测试样本图像。 训练 定义分类(标签) 分类的标签 ...
音频工具kaldi部署及模型制作调研学习
语音识别简介 语音识别(speech recognition)技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR)、计算机语音识别(英语:Computer Speech Recognition)或是语音转文本识别(英语:Speech To Text, ...
Java语法进阶10-多线程
多线程 并发与并行、进程,线程调度自行百度 线程(thread):是一个进程中的其中一条执行路径,CPU调度的最基本调度的单位。同一个进程中线程可以共享一些内存(堆、方法区),每一个线程又有自己的独立空间(栈、程序计数器)。因为线程之间有共享的内存,在实现数据共享方面,比较方便,但是又因为共享数据的 ...
Java多线程系列——线程间通信
Java多线系列文章是Java多线程的详解介绍,对多线程还不熟悉的同学可以先去看一下我的这篇博客Java基础系列3:多线程超详细总结,这篇博客从宏观层面介绍了多线程的整体概况,接下来的几篇文章是对多线程的深入剖析。 线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体。线程间 ...