- 博客(25)
- 收藏
- 关注
原创 kafka和spring集成
一.配置文件首先下载kafka,我的版本是kafka_2.11-1.0.0,下载完成后配置server.properties文件# The id of the broker. This must be set to a unique integer for each broker.broker.id=0 配置broke的id,也可以不配置,必须唯一.# The address the socke...
2018-05-22 16:56:22
841
原创 javascript处理树形结构数据
最近在公司遇到了一个问题,要将树形结构的数据一个一个解析成数组格式的数据;后台返回的json格式[ { 'Id': '1', 'Name': '教学素材管理', 'Pid': '0', 'id': '659354849B9A44AA9E2477223DF68C96', 'children': [ { 'Id': '4DDA93...
2018-05-14 22:07:01
5102
原创 ActiveMQ经典的使用模式(利用多线程处理消费端)
今天看视频,里面讲了一个经典的例子,是工作中很常用的,特此将这种模式记录下来.这个例子使用了ActiveMQ的选择器,也使用了之前学的自定义线程池.队列的使用,而且很好的利用多线程并发的处理了任务,提高了吞吐量.首先看生产端:package com.jvm.activemq.bhz.mq;import com.jvm.util.PropertiesUtil;import org.apache...
2018-04-07 23:10:57
6217
1
原创 Future模式
一、什么是Future模型: 该模型是将异步请求和代理模式联合的模型产物。类似商品订单模型。见下图: 客户端发送一个长时间的请求,服务端不需等待该数据处理完成便立即返回一个伪造的代理数据(相当于商品订单,不是商品本身),用户也无需等待,先去执行其他的若干操作后,再去调用服务器已经完成组装的真实数据。该模型充分利用了等待的时间片段。 二、Future模式的核心结构:Main:启动系统,调...
2018-04-05 11:24:54
327
原创 一个线程通知另外一个线程结束
有一道面试题, 有一个集合,一个线程t1往里面加元素,当集合的size为5的时候,让t2线程结束;三种实现方法:方法一: 使用volatilepackage thread;import java.util.ArrayList;import java.util.List;/** * Created by ZWZS on 2018/4/3. * 有一个list,一个线程往里面添加元素,当...
2018-04-03 15:31:42
5551
1
转载 Java ConcurrentModificationException异常原因和解决方法
Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。 以下是本文目录大纲: 一.ConcurrentModificat...
2018-03-27 11:18:31
160
转载 Java并发编程:同步容器类的问题
Java并发编程:同步容器 为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。 以下是本文的目录大纲: 一.为什么会出现同步容器? 二.Java中的同步容器类 三.同步容器的缺陷 若有不正之处请多多谅解,并欢迎批评指正。 请尊重作者劳动...
2018-03-27 09:46:29
196
原创 类的加载顺序
牛客上的一道题class C { C() { System.out.print("C"); }} class A { C c = new C(); A() { this("A"); System.out.print("A"); } A(String s) { System.out.print(s); ...
2018-03-26 16:04:02
195
转载 如何使用jstack分析线程状态
转载请注明原创出处,谢谢!简书占小狼http://www.jianshu.com/users/90ab66c248e6/latest_articles背景记得前段时间,同事说他们测试环境的服务器cpu使用率一直处于100%,本地又没有什么接口调用,为什么会这样?cpu使用率居高不下,自然是有某些线程一直占用着cpu资源,那又如何查看占用cpu较高的线程?当然一个正常的程序员不会写出上述代码,这里只...
2018-03-13 13:41:56
150
转载 ThreadLocal使用
引用知乎作者:winwill2012链接:https://www.zhihu.com/question/23089780/answer/62097840来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目...
2018-03-06 14:59:59
133
转载 this引用逃逸问题
最近在看《Java 并发编程实践》看到3.2章里面的关于发布和逸出的部分,写一下心得,算是mark一下,主要是构造过程中this引用的逸出。 书上面给出了一个构造过程中this逸出的例子:public class ThisEscape { public ThisEscape(EventSource source) { source.registerListener(new Ev...
2018-03-05 21:56:42
3586
1
转载 Java中字符串内存位置浅析
转载:http://www.cnblogs.com/holten/p/5782596.html前言之前写过一篇关于JVM内存区域划分的文章,但是昨天接到蚂蚁金服的面试,问到JVM相关的内容,解释一下JVM的内存区域划分,这部分答得还不错,但是后来又问了Java里面String存放的位置,之前只记得String是一个不变的量,应该是要存放在常量池里面的,但是后来问到new一个String出来应该是放...
2018-02-28 14:27:58
132
转载 Cookie的使用
转载:http://www.cnblogs.com/xdp-gacl/p/3803033.html一、会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾经来过,这称之为有状态会话。二、会话过程中要解决的一些问题? 每个用户在使用浏览器与服务器进行会...
2018-02-28 10:36:59
149
原创 深入理解Java类加载器(ClassLoader)
查看文章http://blog.youkuaiyun.com/javazejian/article/details/73413292 出自【zejian的博客】http://blog.youkuaiyun.com/seu_calvin/article/details/52315125https://www.ibm.com/developerworks/cn/java/j-lo-classloade
2018-02-01 16:17:17
150
原创 NIO的/分散读取和聚集写入
分散读取(Scattering Reads)是指从 Channel 中读取的数据“分散”到多个 Buffer 中。聚集写入(Gathering Writes)是指将多个 Buffer 中的数据“聚集”到 Channel。@Test//分散读取(scattering reads): 将通道中的数据分散读取到Buffer//聚集写入(gathering writ
2018-01-26 13:19:15
829
原创 NIO中channel的使用(包括直接缓冲区和非直接缓冲区)
一、通道(Channel):用于源节点与目标节点的连接。在 Java NIO 中负责缓冲区中数据的传输。Channel 本身不存储数据,因此需要配合缓冲区进行传输。 二、通道的主要实现类 java.nio.channels.Channel 接口: |--FileChannel |--SocketChannel |--ServerSocketChannel
2018-01-25 16:48:06
1484
转载 JAVA NIO之浅谈内存映射文件原理与DirectMemory
转载:http://blog.youkuaiyun.com/fcbayernmunchen/article/details/8635427JAVA类库中的NIO包相对于IO 包来说有一个新功能是内存映射文件,日常编程中并不是经常用到,但是在处理大文件时是比较理想的提高效率的手段。本文我主要想结合操作系统中(OS)相关方面的知识介绍一下原理。 在传统的文件IO操作中,我们都是调用操作系统提供
2018-01-25 15:41:27
161
原创 NIO(一)
NIO和传统IO的区别1.io面向流(stream) NIO面向缓冲区(buffer)2.IO阻塞(blocking-IO) NIO非阻塞(non_Blocking)3. 无 NIO有选择器(selector)NIO的组成部分一、缓冲区(Buffer):在 Java NIO 中负责数据的存取。缓冲区就是数组。用于存储不同数据类型的数据缓冲区相当于铁路中的火车,而通道
2018-01-25 14:04:05
147
原创 JAVA序列化
序列化是把一个对象保存成一个二进制数组,通过转移这些数组可以达到持久化的目的;我们直接来研究二进制数据中到底存的是什么? 普通java类package serialize;import java.io.*;/** * Created by ZWZS on 2018/1/23. */public class Serialize implements Se
2018-01-23 11:14:08
141
原创 快速排序
一趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]和A[i]互换;4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换;5)重复
2018-01-22 15:27:45
264
原创 循环队列演示
#include #includetypedef struct Queue{ int * pBase; //数组 int front; int rear;}QUEUE, * PQUEUE; void init(PQUEUE);//初始化 bool full_queue(PQUEUE);//是否已满 bool en_queue(PQUEUE,int);//入队
2018-01-15 17:08:31
258
原创 静态队列为什么必须是循环队列
首先静态队列是基于数组实现的,如果是普通数组,规定font指向第一个元素的位置,rear指向最后一个元素位置的下一个位置假设现在进行入队操作,此时 rear(后面)指针往后移动一位;出队则是font向后移动一位,此时会出现一个问题,就是已经删除的元素所使用的空间无法继续使用;因为每次入队或者出队都是font或者rear向后移动一位,font指针无法往前移动,此时就会造成
2018-01-15 12:58:30
1755
2
原创 栈的生成(c语言)
#include#include#include//定义节点的结构体typedef struct Node{ int data; //节点存放的数据 struct Node * pNext; //节点的指针,指向下一个Node }NODE,* PNODE; //定义栈的结构体,栈只需要两个属性,一个是顶端top,另一个是底端bottom typedef struct Sta
2018-01-14 14:01:25
730
原创 ArrayList生成(用C语言)
#include#include#includevoid init(struct Array * pArray,int length);void traverse(struct Array * pArray);bool is_empty(struct Array * pArray);bool is_full(struct Array * pArray);bool add(struct
2018-01-14 11:39:31
530
原创 链表的生成(用c语言)
#include#include #includetypedef struct Node { int data; struct Node * pNext;}NODE,* PNODE; //NODE 等价于 struct Node * PNODE等价于 struct Node * PNODE create_list(void); void traverse(PNODE);vo
2018-01-14 11:37:28
1385
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人