Java
文章平均质量分 71
Alex-wang
博客地址: https://alexanderwangsgithub.github.io ,中间件、微服务、监控以及编程杂记
展开
-
HeapSort堆排序Java实现图文代码详解
堆排序(Heapsort)堆积树设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。排序图如下:(gif来自维基百科)堆排序的过程就是首先构建大根堆,然后对顶元素(及最大元素)与最后个元素替换位置,heapsize减一,重新调整堆变成大根堆。重复上面操作直到heapsize等于一的时候。排序完成。最大堆的特性:1.某个节点的值最多和其父节点的值一样大;原创 2015-04-12 14:04:13 · 2379 阅读 · 3 评论 -
RabbitMQ生产者模型
RabbitMQ生产者模型我的github pages 地址:https://alexanderwangsgithub.github.io/RabbitMQ连接池设计采用阻塞队列作为连接池的存储结构,避免使用代理,再生产者那一层完成归还连接的操作,提高性能。连接池connection总数固定,使用委托的自动恢复连接的机制。初始化public RabbitConnectionPool(String u原创 2016-08-15 20:35:41 · 2094 阅读 · 0 评论 -
RabbitMQ Analysis
RabbitMQ AnalysisAMQP model我的github pages 地址:https://alexanderwangsgithub.github.io/blog/RabbitMQ-Analysis.html AMQP messaging 中的基本概念[ Broker: 接收和分发消息的应用,RabbitMQ Server就是Message Broker。Virtual hos原创 2016-08-15 20:34:00 · 418 阅读 · 0 评论 -
Async异步队列编程模型
Async异步队列编程模型我的github pages 地址:https://alexanderwangsgithub.github.io/blog/Async_queue_program_model.html应用场景**Before:**ContextRequest——>workflow(contextRequest) contextRequest直接随着本线程进入处理流程After: Co原创 2016-08-15 20:30:55 · 1755 阅读 · 0 评论 -
小工具-发邮件-java
做监控工具里的组件,发送邮件的工具public classMailUtil { protected static final Log logger =VineLogFactory.getLog(MailUtil.class); public static boolean send(String subject,String content, String原创 2016-05-12 21:08:44 · 539 阅读 · 0 评论 -
小工具-使用java SSL通过url获得访问转为String-http/https
分为Http和Https两种。public class SSLUtils { public static String getHttp(String url) throws Exception { CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost post =原创 2016-05-12 21:11:42 · 683 阅读 · 1 评论 -
java多线程之run() 与start() 区别
start() 方法真正实现多线程,使用start启动线程后执行run的同时继续往下执行。而run() 方法只是当作普通方法调用,必须要执行完才能执行下面的。下面是一个例子:package com.wanggang.java.test;public class ThreadTest { public static void main(String[] args) {原创 2015-11-01 21:22:10 · 640 阅读 · 0 评论 -
java多线程之volatile关键字与线程栈内存
不使用volatile,开100个进程自增:package com.wanggang.java.test;public class ThreadTest3 { public static int countInt; public volatile static int countIntVolatile;//volatile告诉编译器该值是随时发生变化的,不进行编译优化 public原创 2015-11-02 14:38:57 · 1209 阅读 · 0 评论 -
java多线程之Thread与runnable的区别
创建新执行线程有两种方法。一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。接下来可以分配并启动该子类的实例。例如,计算大于某一规定值的质数的线程可以写成: class PrimeThread extends Thread { long minPrime; PrimeThread(long原创 2015-11-01 21:15:45 · 607 阅读 · 0 评论 -
MergeSort归并排序图文代码详解
MergeSort归并排序就是将一组数分割成两个子数组,再对子数组进行排序,然后再归并起来。在这个过程中,通过递归的方式对子数组进行归并排序。过程(Wikipedia):申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列设定两个指针,最初位置分别为两个已经排序序列的起始位置比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复步骤3原创 2015-04-12 15:47:01 · 3464 阅读 · 0 评论 -
定位问题——终端环境下使用jstack分析jvm
定位问题——终端环境下使用jstack分析jvm 我的github pages 地址:https://alexanderwangsgithub.github.io/ 终端环境下使用jstack分析jvm(现在一般在Framwork层集成trace)一般来说,解决问题先看log,再看stack。jstack定向dump文件jps |grep Main|awk '{print $1}'|xargs原创 2016-08-15 20:40:02 · 1006 阅读 · 0 评论