自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 738

原创 javascript处理树形结构数据

最近在公司遇到了一个问题,要将树形结构的数据一个一个解析成数组格式的数据;后台返回的json格式[ { 'Id': '1', 'Name': '教学素材管理', 'Pid': '0', 'id': '659354849B9A44AA9E2477223DF68C96', 'children': [ { 'Id': '4DDA93...

2018-05-14 22:07:01 5019

原创 ActiveMQ经典的使用模式(利用多线程处理消费端)

今天看视频,里面讲了一个经典的例子,是工作中很常用的,特此将这种模式记录下来.这个例子使用了ActiveMQ的选择器,也使用了之前学的自定义线程池.队列的使用,而且很好的利用多线程并发的处理了任务,提高了吞吐量.首先看生产端:package com.jvm.activemq.bhz.mq;import com.jvm.util.PropertiesUtil;import org.apache...

2018-04-07 23:10:57 6023 1

原创 Future模式

一、什么是Future模型:    该模型是将异步请求和代理模式联合的模型产物。类似商品订单模型。见下图:    客户端发送一个长时间的请求,服务端不需等待该数据处理完成便立即返回一个伪造的代理数据(相当于商品订单,不是商品本身),用户也无需等待,先去执行其他的若干操作后,再去调用服务器已经完成组装的真实数据。该模型充分利用了等待的时间片段。 二、Future模式的核心结构:Main:启动系统,调...

2018-04-05 11:24:54 250

原创 一个线程通知另外一个线程结束

有一道面试题, 有一个集合,一个线程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 5402 1

转载 Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法  在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。  以下是本文目录大纲:  一.ConcurrentModificat...

2018-03-27 11:18:31 128

转载 Java并发编程:同步容器类的问题

Java并发编程:同步容器  为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。  以下是本文的目录大纲:  一.为什么会出现同步容器?  二.Java中的同步容器类  三.同步容器的缺陷  若有不正之处请多多谅解,并欢迎批评指正。  请尊重作者劳动...

2018-03-27 09:46:29 169

原创 类的加载顺序

牛客上的一道题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 165

转载 如何使用jstack分析线程状态

转载请注明原创出处,谢谢!简书占小狼http://www.jianshu.com/users/90ab66c248e6/latest_articles背景记得前段时间,同事说他们测试环境的服务器cpu使用率一直处于100%,本地又没有什么接口调用,为什么会这样?cpu使用率居高不下,自然是有某些线程一直占用着cpu资源,那又如何查看占用cpu较高的线程?当然一个正常的程序员不会写出上述代码,这里只...

2018-03-13 13:41:56 124

转载 ThreadLocal使用

引用知乎作者:winwill2012链接:https://www.zhihu.com/question/23089780/answer/62097840来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目...

2018-03-06 14:59:59 99

转载 this引用逃逸问题

最近在看《Java 并发编程实践》看到3.2章里面的关于发布和逸出的部分,写一下心得,算是mark一下,主要是构造过程中this引用的逸出。     书上面给出了一个构造过程中this逸出的例子:public class ThisEscape {  public ThisEscape(EventSource source) {    source.registerListener(new Ev...

2018-03-05 21:56:42 3507 1

转载 Java中字符串内存位置浅析

转载:http://www.cnblogs.com/holten/p/5782596.html前言之前写过一篇关于JVM内存区域划分的文章,但是昨天接到蚂蚁金服的面试,问到JVM相关的内容,解释一下JVM的内存区域划分,这部分答得还不错,但是后来又问了Java里面String存放的位置,之前只记得String是一个不变的量,应该是要存放在常量池里面的,但是后来问到new一个String出来应该是放...

2018-02-28 14:27:58 102

转载 Cookie的使用

转载:http://www.cnblogs.com/xdp-gacl/p/3803033.html一、会话的概念  会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。  有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾经来过,这称之为有状态会话。二、会话过程中要解决的一些问题?  每个用户在使用浏览器与服务器进行会...

2018-02-28 10:36:59 113

原创 深入理解Java类加载器(ClassLoader)

查看文章http://blog.csdn.net/javazejian/article/details/73413292 出自【zejian的博客】http://blog.csdn.net/seu_calvin/article/details/52315125https://www.ibm.com/developerworks/cn/java/j-lo-classloade

2018-02-01 16:17:17 123

原创 NIO的/分散读取和聚集写入

分散读取(Scattering Reads)是指从 Channel 中读取的数据“分散”到多个 Buffer 中。聚集写入(Gathering Writes)是指将多个 Buffer 中的数据“聚集”到 Channel。@Test//分散读取(scattering reads): 将通道中的数据分散读取到Buffer//聚集写入(gathering writ

2018-01-26 13:19:15 770

原创 NIO中channel的使用(包括直接缓冲区和非直接缓冲区)

一、通道(Channel):用于源节点与目标节点的连接。在 Java NIO 中负责缓冲区中数据的传输。Channel 本身不存储数据,因此需要配合缓冲区进行传输。   二、通道的主要实现类   java.nio.channels.Channel 接口:  |--FileChannel   |--SocketChannel   |--ServerSocketChannel

2018-01-25 16:48:06 1422

转载 JAVA NIO之浅谈内存映射文件原理与DirectMemory

转载:http://blog.csdn.net/fcbayernmunchen/article/details/8635427JAVA类库中的NIO包相对于IO 包来说有一个新功能是内存映射文件,日常编程中并不是经常用到,但是在处理大文件时是比较理想的提高效率的手段。本文我主要想结合操作系统中(OS)相关方面的知识介绍一下原理。   在传统的文件IO操作中,我们都是调用操作系统提供

2018-01-25 15:41:27 124

原创 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 112

原创 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 104

原创 快速排序

一趟快速排序的算法是: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 187

原创 循环队列演示

#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 224

原创 静态队列为什么必须是循环队列

首先静态队列是基于数组实现的,如果是普通数组,规定font指向第一个元素的位置,rear指向最后一个元素位置的下一个位置假设现在进行入队操作,此时 rear(后面)指针往后移动一位;出队则是font向后移动一位,此时会出现一个问题,就是已经删除的元素所使用的空间无法继续使用;因为每次入队或者出队都是font或者rear向后移动一位,font指针无法往前移动,此时就会造成

2018-01-15 12:58:30 1636 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 675

原创 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 485

原创 链表的生成(用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 1322

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除