代码改变世界

Java多线程学习笔记--生产消费者模式

2014-12-06 01:25 by Johnnie Zhang, 468 阅读, 1 推荐, 收藏, 编辑
摘要:实际开发中,我们经常会接触到生产消费者模型,如:Android的Looper相应handler处理UI操作,Socket通信的响应过程、数据缓冲区在文件读写应用等。强大的模型框架,鉴于本人水平有限目前水平只能膜拜,本次只能算学习笔记,为了巩固自己对Java多线程常规知识点的理解,路过大神还望能指... 阅读全文

Java多线程学习笔记——从Java JVM对多线程数据同步的一些理解

2014-10-19 12:38 by Johnnie Zhang, 1088 阅读, 0 推荐, 收藏, 编辑
摘要:我们知道在多线程编程中,我们很大的一部分内容是为了解决线程间的资源同步问题和线程间共同协作解决问题。线程间的同步,通俗我们理解为僧多粥少,在粥有限情况下,我们怎么去防止大家有秩序的喝到粥,不至于哄抢都没得喝。线程讲协作,我们可以理解为我们在医院看病的时候,我们要先挂号,才能看病。现在医院有很多病... 阅读全文

Java泛型学习笔记--Java泛型和C#泛型比较学习(一)

2014-10-18 01:19 by Johnnie Zhang, 2657 阅读, 0 推荐, 收藏, 编辑
摘要:总结Java的泛型前,先简单的介绍下C#的泛型,通过对比,比较学习Java泛型的目的和设计意图。C#泛型是C#语言2.0和通用语言运行时(CLR)同时支持的一个特性(这一点是导致C#泛型和Java泛型区别的最大原因,后面会介绍)。C#泛型在.NET CLR支持为.NET框架引入参数化变量支持。C... 阅读全文

Android学习笔记-Intent(一)

2014-10-07 01:10 by Johnnie Zhang, 734 阅读, 0 推荐, 收藏, 编辑
摘要:Intent对象在Android官方API这样描述:It is a passive data structure holding an abstract description of an operation to be performed.它是一种数据结构,抽象描述一次将要被执行的操作,其作用... 阅读全文

内部排序一

2014-07-26 16:48 by Johnnie Zhang, 179 阅读, 0 推荐, 收藏, 编辑
摘要:闲来无事,复习下数据结构的常用内部排序,利用下午的时间,随便写了选择、快速排序、内部排序的实现,虽然常用数据结构算法原理还是挺简单,可以完成写出来还是费了一些工夫。此处贴出代码,仅作自己的随手联系之用。 public class Program { public static void ... 阅读全文

安全的文件访问方式

2014-06-04 20:08 by Johnnie Zhang, 289 阅读, 0 推荐, 收藏, 编辑
摘要:最近在学习SharpDevelop源代码,看到一处访问文件的很有美感的代码,特此供大家一起分享:public sealed class CallbackOnDispose : IDisposable { Action callback; public... 阅读全文

Json序列化

2014-04-27 16:47 by Johnnie Zhang, 1085 阅读, 1 推荐, 收藏, 编辑
摘要:最近在学习FyiReporting的源码,参考FyiReporting的报表对象定义,结合自己在工作中开发报表的应用场景,自己设计了一套报表对象定义,实现在报表设计器中报表对象的修改,通过序列化成Json对象来达到存储报表对象,相对于FyiReporting报表直接对报表定义的XML操作省去编写大量... 阅读全文

对进度条的通用封装实现

2013-12-29 18:23 by Johnnie Zhang, 2493 阅读, 3 推荐, 收藏, 编辑
摘要:一直想写点啥对最近的工作做个总结,由于项目比较忙,可能还有自己的各种理由推脱有点懈怠,零碎的总结过一些,都没有动笔写下来过。眼看2013都要过去了,该写点啥来总结下。先从自己对进度封装的一点学习经验写出来,供大家交流,欢迎园子里的朋友不吝啬的拍砖。 首先定义对进度表示的契约,定义进度行为(IProgressor)、进度信息(IStepProgress)和中断处理(ITrackCancel)的接口如下: /// /// 进度行为接口 /// public interface IProgressor { string Message { get; ... 阅读全文

Finalize/Dispose资源清理模式

2012-09-16 10:32 by Johnnie Zhang, 328 阅读, 0 推荐, 收藏, 编辑
摘要:由于最近在准备找工作,也从图书馆借了一本.net 程序员面试的“宝典”,本人一直也是不信什么程序员秘技、宝典,但是也不偏激,一本书至少是别人的经验的,多少还是能收益的。我也就利用零碎的时间常常翻阅看看的,看到关于析构函数和资源清理的时候,发现自己对里面的机制和原理不是很明白的,查阅一些资料后,写下自己的理解的。 C#的析构函数 与c++的析构函数不同,C#的析构函数并不在实例失效就调用。由于.net的垃圾回收机制,我们无法知道析构函数会在什么时候调用,而且我们也不能显式调用析构函数。我们只是知道,析构函数是在对象从托管的堆释放前的某个时刻调用。 所以,如果你的代码包含珍贵的资源(非托管资源,. 阅读全文

异步编程模式学习

2012-08-20 18:43 by Johnnie Zhang, 714 阅读, 2 推荐, 收藏, 编辑
摘要:最近,在学习C#多线程编程,也看了园子里的很多大牛的关于多线程的文章,梳理下自己的思路,也总结下异步编程模式的学习。很喜欢Jimmy Zhang的文章风格,在刚刚学习委托和事件的时候,Jimmy的文章的由浅入深的写作对我对委托和事件的学习的帮助很大。我也学这个Jimmy的文风,和大家交流下。废话不... 阅读全文