自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

原创 quartz2.3任务管理的源码分析

概述quartz在任务管理中,先把任务存在某个地方(QuartzSchedulerResources),等到时机到了(触发trigger),再由调度线程(QuartzSchedulerThread)把该任务取出来放到线程池中运行。因为主线程的QuartzScheduler会操作QuartzSchedulerResources,把任务存入quartz;调度线程也会操作QuartzSchedu...

2015-12-30 16:41:38 577

原创 quartz线程管理的源码分析

概述quartz启动后有多个线程同时在跑。启动时会启动主线程、集群线程、检漏线程、工作线程。主线程负责查询到需要触发的线程,并放入到线程队列。一、主线程QuartzScheduleThread关于QuartzScheduleThread是quartz启动时开始启动,用于trigger的获取、触发,并放入到线程池中执行。二、线程池SimpleThreadPool线程池的初使化:new...

2015-12-23 12:51:42 750

转载 Jackson 框架

Jackson 是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架。Jackson 社 区相对比较活跃,更新速度也比较快, 从 Github 中的统计来看,Jackson 是最流行的 json 解析器之一 。 Spring MVC 的默认 json 解析器便是 Jackson。 Jackson 优点很多。 Jackson 所依赖的 jar 包较少 ,简单易用。与其他 J...

2015-12-23 12:09:50 3026

转载 使用PropertyPlaceholderConfigurer指定配置文件和@Value 注解获取properties值

为了简化读取properties文件中的配置值,spring支持@value注解的方式来获取,这种方式大大简化了项目配置,提高业务中的灵活性。一、两种使用方法1、@Value("#{configProperties['key']}")2、@Value("${key}")二、配置2.1 @Value("#{configProperties['key']}")使用2.1.1配置文件:[html] vi...

2015-12-23 00:26:47 4500

转载 java反射机制

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。JAVA反射(放射)机制:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。但

2015-12-23 00:15:30 321

转载 Spring事件驱动模型

1、在spring的配置文件中导入命名空间 xmlns:context="http://www.springframework.org/schema/context" http://www.springframework.org/schema/context http://www.springframework.org/schema/context...

2015-12-22 23:51:04 1153

转载 ThreadLocal的内存泄露的原因分析+避免方法

前言在分析ThreadLocal导致的内存泄露前,需要普及了解一下内存泄露、强引用与弱引用以及GC回收机制,这样才能更好的分析为什么ThreadLocal会导致内存泄露呢?更重要的是知道该如何避免这样情况发生,增强系统的健壮性。内存泄露内存泄露为程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光,广义并通俗的说,就是:不再会被使用的对象或者变量占用的内存不能被回收,就是内存泄露。强引用与弱引用强引用,使用最普遍的

2015-12-22 23:36:42 457

转载 HttpClient连接池原理

一、背景HTTP协议是无状态的协议,即每一次请求都是互相独立的。因此它的最初实现是,每一个http请求都会打开一个tcp socket连接,当交互完毕后会关闭这个连接。HTTP协议是全双工的协议,所以建立连接与断开连接是要经过三次握手与四次挥手的。显然在这种设计中,每次发送Http请求都会消耗很多的额外资源,即连接的建立与销毁。于是,HTTP协议的也进行了发展,通过持久连接的方法来进行socket连接复用。从图中可以看到:在串行连接中,每次交互都要打开关闭连接 在持久连接中,第一次

2015-12-20 12:13:07 8565

转载 NIO中存在的bug—epoll空轮询

IO&NIO介绍IO读取NIO读取NIO中epoll空轮询表现public static void main(String[] args) { Selector selector = Selector.open(); System.out.println(selector.isOpen()); Server...

2015-12-20 10:44:30 1109

转载 html5 canvas事件处理(用event.layerX和layerY属性表示Canvas内部坐标系中的坐标)

DOM是Web前端领域非常重要的组成部分,不仅在处理HTML元素时会用到DOM,图形编程也同样会用到。比如SVG绘图,各种图形都是以DOM节点的形式插入到页面中,这就意味着可以使用DOM方法对图形进行操作。比如有一个元素,可以直接用jquery增加click事件$(‘#p1’).click(function(){…})”。然而这种DOM处理方法在HTML5的Canvas里不再适用,Canvas使用

2015-12-18 16:19:21 2537

原创 canvas translate

平移变换,故名思议,就是一般的图形位移。比如这里我想将位于(100,100)的矩形平移至(200,200)点。那么我只要在绘制矩形之前加上context.translate(100,100)即可。这里的translate()只传入两个参数,其实就是新画布坐标系原点的坐标。下面结合代码来看看效果 平移变换 body { back

2015-12-18 16:13:51 695

原创 文件下载接口的优化实践

文件下载接口的需求:接口可以正常下载时, 响应的content-type为application/octet-stream;charset=UTF-8. 返回的是一个文件; 接口出现异常时,响应的content-type为application/json, 返回的是包含错误码、错误信息的json格式;过程一: 文件写入response.outputStream, 方法返回值为void@RequestMapping("/downloadFile") public void downlo.

2015-12-18 16:01:01 1076

转载 DOCTYPE声明作用

网页中用了 <!DOCTYPE html... 就表示该页面采用了W3C标准,这样做可以增强页面的兼容性,降低对浏览器的依赖性。不加这一行,就表示页面采用浏览器本身的解析标准,这样会造成页面在不同的浏览器(IE、火狐等)可能出现不同的显示效果。

2015-12-18 15:47:48 518

转载 用wireshark抓包分析tcp

Wireshark 窗口介绍 WireShark 主要分为这几个界面1. Display Filter(显示过滤器),  用于过滤2. Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表3. Packet Details Pane(封包详细信息), 显示封包中的字段4. Disse

2015-12-15 10:12:06 8380

转载 spring boot应用启动原理分析

spring boot应用打包之后,生成一个fat jar,里面包含了应用依赖的jar包,还有Spring boot loader相关的类Fat jar的启动Main函数是JarLauncher,它负责创建一个LaunchedURLClassLoader来加载/lib下面的jar,并以一个新线程启动应用的Main函数。

2015-12-10 22:55:12 2827

转载 BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor

一、InitializingBean接口说明InitializingBean接口为bean提供了属性初始化后的处理方法,它只包括afterPropertiesSet方法,凡是继承该接口的类,在bean的属性初始化后都会执行该方法。package org.springframework.beans.factory;/** * Interface to be implemented by...

2015-12-09 21:23:39 495

原创 提高程序鲁棒性笔记

1、fastJson的JSON.parseObject(String text)方法在传入text为""时,返回的JsonObject为null。

2015-12-09 20:15:51 514

原创 httpcomponents学习笔记

EntityUtils.toString(HttpEntity httpEntity, String contentType)方法根据指定编码,解析HttpEntity的body内容。

2015-12-09 19:24:12 378

转载 setImageResource和setImageDrawable区别

ImageView设置图片的方式有很多钟,可以在xml里面写android:src=”@drawable/xxx”,也可以在java代码里面设置。在java里面的设置方式也有多种,方法包括:setImageResource,setImageDrawable,setImageBitmap。在xml里面设置实际上和在java里面调用setImageResource是一样的,当然xml多了一个解

2015-12-09 17:52:38 568

原创 kafka2.2源码分析之幂等设计实现(exactly once语义实现)

概述幂等性生产者能实现单个producer对同一个<topic ,partition>的exactly once语义。producer端Producer 后台发送线程 Sender,在 run() 方法中,会先根据 TransactionManager 的 shouldResetProducerStateAfterResolvingSequences() 方法判断当前的 P...

2015-12-09 17:04:05 634

转载 kafka中partition和消费者对应关系

1个partition只能被同组的一个consumer消费,同组的consumer则起到均衡效果消费者多于partitiontopic: test 只有一个partition创建一个topic——test,bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test在g2组中启动两个consumer,1. bin/kafk

2015-12-08 17:20:12 974

原创 kafka2.2源码分析之AddPartitionsToTxnRequest

kafkaProducer调用send()方法发送数据判断是否启用事务,如果启用事务,添加包含消息的parition到事务缓冲队列中。if (transactionManager != null && transactionManager.isTransactional()) transactionManager.maybeAddPart...

2015-12-08 16:56:03 752

转载 Java IO流之装饰模式与适配器模式讲解

转载自:Java IO流之装饰模式与适配器模式讲解   在Java IO流中,我们经常使用的是字节流与字符流,下面附上几张图可以很清楚的了解他们之间的继承关系,图片来源于网络,在此感谢图片的制作者。1、字节流各个类的继承关系:2、字符流各个类个继承关系:一、装饰模式解读:什么是装饰模式呢?就比如有一个瓶子,我为了让它好看点,给它插上些花,这就起到了装饰作用。  在我们的日常使用开发中,经常看到这各...

2015-12-06 22:55:40 474

转载 装饰模式

装饰模式的角色  抽象构件角色(Component):给出一个抽象接口,以规范准备接收附加责任的对象。  具体构件角色(Concrete Component):定义将要接收附加责任的类。  装饰角色(Decorator):持有一个构件(Component)对象的引用,并定义一个与抽象构件接口一致的接口。  具体装饰角色(Concrete Decorator):负责给构件对象

2015-12-06 22:25:45 229

原创 装饰器模式之java IO流(FilterOutputStream对用户透明及它的作用)

例如现在有这样一个需求:读取一个文件里面的内容,将文件里的内容所有的小写字母都转换成大写的。这个时候我们就可以通过去扩展IO流去做。package com.unis.io; 2. 3.import java.io.BufferedReader; 4.import java.io.File; 5.import java.io.FileReader; 6.import java.i...

2015-12-06 22:05:45 723

原创 kafka2.2源码分析之服务端处理初始化ProducerId请求

概述control message:因为事务存在commit和abort两种操作,而客户端又有read committed和read uncommitted两种隔离级别,所以消息队列必须能标识事务状态,这个被称作Control Message。为了区分写入Partition的消息被Commit还是Abort,Kafka引入了一种特殊类型的消息,即Control Message。该类消...

2015-12-04 15:35:21 1368

原创 kafka2.2源码分析之服务端处理 findCoordinator 请求

概述分布式事务:producer可能会给多个topic,多个partition发消息,这些消息也需要能放在一个事务里面,这就形成了一个典型的分布式事务。事务协调者:因为producer发送消息可能是分布式事务,所以引入了常用的2PC,所以有事务协调者(Transaction Coordinator)。Transaction Coordinator和之前为了解决脑裂和惊群问题引入的Group...

2015-12-04 15:33:47 1130

原创 kafka2.2源码分析之handleEndTxnRequest

producer epochTransactionalId能关联producer,也需要避免两个使用相同TransactionalId的producer同时存在,所以引入了producer epoch来保证对应一个TransactionalId只有一个活跃的producer epoch。TransactionStateManagerTransactionStateManger是Tran...

2015-12-04 14:48:54 737

翻译 Transactions in Apache Kafka

在上一篇博客中,我们介绍了kafka的一次性语义。这篇博客将涵盖多个消息投递语义,介绍幂等生产者、事务生产者以及kafka stream的一次性语义。Transactional Semanticsatomic multi-partition writesTransaction实现了写入多个topic和partition的原子写入。例如,如果消费者在topic partition tp0...

2015-12-04 11:48:06 462

原创 kafka2.2源码分析之leader epoch

概述Kafka使用HW值来决定副本备份的进度,而HW值的更新通常需要额外一轮FETCH RPC才能完成,故而这种设计是有问题的。它们可能引起的问题包括:备份数据丢失 备份数据不一致Kafka 0.11版本之后引入了leader epoch来取代HW值。Leader端多开辟一段内存区域专门保存leader的epoch信息,这样即使出现上面的两个场景也能很好地规避这些问题。Epoch...

2015-12-03 21:31:01 1383

ios的网络图片下载类库

ios的网络图片下载类库

2016-03-31

viewpager的下横线指示器

viewpager的下横线指示器,使用translateAnimation位移动画实现被选中页卡的下横线的移动

2015-07-30

viewpager实现页面导航之三

新特点是使用translateAnimation位移动画实现被选中的点的移动。而不是用以往的方法实现点的切换。之所以说是点的移动而不是点的切换是因为,运行代码滑动页面时真的可以看到像在Flash中绿点的移动效果。以往的方法只是一个点换成灰色图片,另一个换成绿色图片,没有移动。

2015-07-22

viewpager实现页面导航

viewpager实现页面导航,代码耦合性低。比如不在initiateItem()中设计并返回页卡布局文件对象。姑且可以看看了解

2015-07-21

viewpager与预编译的点布局实现页面导航效果

该源代码简洁的实现了在页面滑动时点的变化,而且包容点的布局是经过重写的布局,单独作为一个文件,不在MainActivity.java中,耦合低

2015-07-20

进销存管理系统之二

这是由明日科技公司开发的进销存管理系统,跟上一例代码有些相似之处

2015-07-17

进销存管理系统

这是个教你怎么连接sqlserver2008的代码,只要查看dao.java即可

2015-07-17

java+Mysql学生数据库管理系统

该源代码里会教你怎么自定义类将在数据库查询到的结果集以表格的形式展示在界面上;怎么自定义图形面板添加背景图片

2015-07-11

MyListView

listview的BaseAdapter用法的android源代码,还用了convert与viewholder的回收机制

2015-07-10

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

TA关注的人

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