学习笔记

Android OkHttp + Retrofit 下载文件与进度监听

本文链接 下载文件是一个比较常见的需求。给定一个url,我们可以使用URLConnection下载文件。 使用OkHttp也可以通过流来下载文件。 给OkHttp中添加拦截器,即可实现下载进度的监听功能。 使用流来实现下载文件 代码可以参考:https://github.com/RustFisher/android-Basic4/tree/master/appdowloadsample 获取并使用字节流,需要注意两个要点,一个是服务接口方法的 @Streaming 注解,另一个是获取到ResponseBody。 ...

声学回声消除(Acoustic Echo Cancellation)原理与实现

目录 回声分类   电路回声   声学回声 AEC的基本原理 自适应滤波器的基本原理 回声消除常用算法   LSM算法   NLMS算法   NSAF算法 MATLAB代码实现 开源的音频处理库 参考   回声就是声音信号经过一系列反射之后,又听到了自己讲话的声音,这就是回声。一些回声是必要的,比如剧院里的音乐回声以及延迟时间较短的房间回声;而大多数回声会造成负面影响,比如在有线或者无线通信时重复听到自己讲话的声音(回想那些年我们开黑打游戏时,如果其中有个人开了外放,他的声音就会回荡来回荡去)。因此消除回声的负面影响对通信系统是十分必要的。 ...

采用WPF技术开发截图程序 (可下载)

前言 QQ、微信截图功能已很强大了,似乎没必要在开发一个截图程序了。但是有时QQ热键就是被占用,不能快速的开启截屏;有时,天天挂着QQ,领导也不乐意。既然是程序员,就要自己开发截屏工具,功能随心所欲,岂不快哉。 再强调一点:工具就是生产力!没有掌握WPF之前,我是不会开发这么一个程序的,如果采用MFC、winform框架,工作量是相当的大,开发出来的效果肯定也比较low。本人用WPF,花了一天多的功夫,开发了这个小程序。程序的定位就功能简单,平时工作不碍事,用着的时候,一键截图! 界面 执行程序下载地址: 一键截图,点我下载。 ...

2. SOFAJRaft源码分析—JRaft的定时任务调度器是怎么做的?

分类: SOFAJRaft 标签: SOFAJRaft 看完这个实现之后,感觉还是要多看源码,多研究。其实JRaft的定时任务调度器是基于Netty的时间轮来做的,如果没有看过Netty的源码,很可能并不知道时间轮算法,也就很难想到要去使用这么优秀的定时调度算法了。 对于介绍RepeatedTimer,我拿Node初始化的时候的electionTimer进行讲解 Copy this.electionTimer = new RepeatedTimer("JRaft-ElectionTimer", this.options.getElectionTimeoutMs()) { ...

java中的守护线程

 在Java中有两类线程,分别是User Thread(用户线程)和Daemon Thread(守护线程) 。用户线程很好理解,我们日常开发中编写的业务逻辑代码,运行起来都是一个个用户线程。而守护线程相对来说则要特别理解一下。...

JVM垃圾回收(下)

接着上一篇,介绍完了 JVM 中识别需要回收的垃圾对象之后,这一篇我们来说说 JVM 是如何进行垃圾回收。 首先要在这里介绍一下80/20 法则: 约仅有20%的变因操纵着80%的局面。也就是说:所有变量中,最重要的仅有20%,虽然剩余的80%占了多数,控制的范围却远低于“关键的少数”。 Java 对象的生命周期也满足也这样的定律,即大部分的 Java 对象只存活一小段时间,而存活下来的小部分 Java 对象则会存活很长一段时间。 因此,这也就造就了 JVM 中分代回收的思想。简单来说,就是将堆空间划分为两代,分别叫做新生代和老年代。新生代用来存储新建的对象。当对象存活时间够长时,则将其移动到老年代。 ...

【Python3爬虫】我爬取了七万条弹幕,看看RNG和SKT打得怎么样

一、写在前面   直播行业已经火热几年了,几个大平台也有了各自独特的“弹幕文化”,不过现在很多平台直播比赛时的弹幕都基本没法看的,主要是因为网络上的喷子还是挺多的,尤其是在观看比赛的时候,很多弹幕不是喷选手就是喷战队,如果看了这种弹幕,真是让比赛减分不少。      但和别的平台比起来,B 站的弹幕会好一些。正好现在是英雄联盟的世界总决赛时间,也有不少人选择在 B 站看比赛直播,那么大家在看直播的时候会发什么弹幕呢?话不多说,这就用 Python 写个爬虫来爬取 B 站直播时的弹幕吧! ...

经典排序算法——希尔排序

注:本文参考https://www.cnblogs.com/chengxiao/p/6104371.html 希尔排序原理   在讲解希尔排序之前,我们有必要先回头看一下插入排序的问题。插入排序不管数组分布时怎么样的,都是一步步的对元素进行比较,移动,插入。比如[5,4,3,2,1,0]这种倒序序列,数组末端的0要回到首位很费劲,比较和移动元素均需n-1次。这时就引出了希尔排序。   希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的更高效的版本。该算法是突破O(n^2)的第一批算法之一。 ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程