W-M'S blog

Thinking will not overcome fear but action will.

算法学习笔记

算法学习笔记 排序算法 插入排序——适合小数据量使用 将给定数组按照升序排序,属于稳定排序,最好情况下时间复杂度o(n)-数组顺序,最坏o(n2)-数组逆序,空间复杂度o(1),平均时间复杂度o(n2) void insertion_sort(int *a, size_t size) { int i, j, t; for(i = 1; i < size; i++){ ...

深入学习java并发编程之ConcurrentHashMap-JDK1.7

本篇随笔主要记录了我阅读ConcurrentHashMap(Jdk1.7)源码期间的对于ConcurrentHashMap的一些实现上的个人理解,用于个人备忘,有不对的地方,请指出。 前言 在并发编程中使用HashMap可能导致程序死循环,而使用线程安全的HashTable效率又非常低下,基于以上两个原因,便有了ConcurrentHashMap的登场机会。 HashTable...

深入学习java并发编程之ReentrantReadWriteLock实现及AQS中的基于Condition的等待通知机制

本文接上篇对于AQS类分析的博客,继续分析ReentrantReadWriteLock的实现及AQS中的基于Condition的等待通知机制。 ReentrantReadWriteLock实现分析 ReentrantReadWriteLock顾名思义,兼具有ReentrantLock的特性(可重入、公平性选择)和ReadWriteLock的特性(读写分离),在此基础之上还添加了锁...

深入学习java并发编程之AbstractQueuedSynchronizer

本文主要记录了自己对于AbstractQueuedSynchronizer类的学习过程,文中内容参考了java并发编程的艺术一书及网上的一些博客,在整理的过程中加入了自己的理解,主要用于备忘,如有错误,敬请指出。 前言 AbstractQueuedSynchronizer是用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资...

finally块与java中的异常丢失简介

java中的异常丢失 直接上例子: public class TestException { public TestException() { } boolean testEx() throws Exception { boolean ret = true; try { ret = testEx1(); ...

HTTP-HTTPs-WebSocket-MQTT协议相关分析

最近项目涉及到一个需求是服务端给手机客户端和web客户端主动推送消息,web客户端中还涉及到微信小程序客户端,小程序客户端要求主动推送使用wss协议,获取数据使用https协议。服务端消息推送采用MQTT协议,MQTT协议实现服务器使用的是Mosquitto,本文对涉及到的几个协议做一个简单的比较分析,并简单记录下nginx的配置,用于备忘。 HTTP与HTTPS、WS与WSS对...

产品经理入门系列之——产品经理究竟是干什么的?

由于我对产品相关的知识比较感兴趣,平时会看很多产品相关的东西,但都不成体系,一直也有系统学习的想法,不为别的,只是兴趣而已。希望之后可以利用好自己的闲暇时间,把产品相关知识的学习记录坚持下来,逐渐从一个知识的搬运工变为知识的产生者! 本文整理自:产品经理究竟是干什么的? 前言 简单来说,产品经理主要的工作就是:规划、设计产品,对产品研发过程的控制,最终把产品卖出去的一个过程。而产...

MQTT相关知识学习

做项目时涉及到了android消息推送功能实现,选用了MQTT协议,具体MQTT协议实现服务器选用mosquitto,在这里将学习的MQTT相关知识做一个总结记录。 为什么选用mqtt协议而不是其他协议比如amqp,xmpp实现消息推送? mqtt轻量,为物联网而设计,协议简单,所以客户端使用简单,服务端处理速度快。 amqp是为即时通信设计的吗??? xmpp相比于mqtt...