
编程技巧
文章平均质量分 71
LogicTeamLeader
软件项目组长,科幻爱好者。
展开
-
Java Concurrency代码实例之七-ConcurrentSkipListMap
本文的读者应该是已经掌握了基本的Java多线程开发技巧,但不熟悉Java Concurrency包的程序员。本文是本系列的第七篇文章,前六篇文章请看这里:Java Concurrency代码实例之一执行者与线程池 Java Concurrency代码实例之二并发队列 Java Concurrency代码实例之三原子变量 Java Concurrency代码实例之四-锁 Java Co原创 2018-01-29 22:44:51 · 696 阅读 · 0 评论 -
Java流编程实例及代码
1.前言在众多流行的编程语言中,Java对IO的处理应该是最特殊的,Java打着“尽量减少IO类的设计理念”,搞出了目前应该是最复杂的一套IO相关类,并称之为Java流。 对于新手来说,Java流包含的类众多,含义混杂,上手困难且其中暗藏的陷阱众多;但是对于熟悉了Java流的程序员来说,它的确称得上功能强大。 本文总结了一些Java流的使用指南,给出了一些实例代码,主要内容包括: - Jav原创 2016-12-14 22:53:40 · 3276 阅读 · 1 评论 -
Java流编程实例之十--多重流使用范例
将一组信息缓冲、加密、压缩后保存到一个文件中,然后从此文件中读取该信息,经解密、解压缩后输出到屏幕。代码如下:import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;import javax.crypto.*;import javax.crypto.spec.PBEKeySpec;import javax.crypto.sp原创 2016-11-30 10:36:32 · 1178 阅读 · 0 评论 -
Java流编程实例之九--加密流
本例中的加密流使用了PBEWithMD5AndDES加密算法,该算法是对称加密算法,加密和解密使用的密钥是一样的。不同的是除了密码之外,还需要“盐”。代码如下:import javax.crypto.*;import javax.crypto.spec.DESKeySpec;import javax.crypto.spec.PBEKeySpec;import javax.crypto.spec原创 2016-11-30 10:27:34 · 1529 阅读 · 0 评论 -
Java流编程实例之七--压缩流
8. 压缩流压缩流可以将输入的数据变为压缩格式后进行输出,或者读取压缩格式的数据后,解压为正常数据。8.1 将一个文件压缩为一个压缩文件注意ZipEntry的使用,一个ZipEntry代表压缩文件中的一个文件入口。import java.io.*;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;/** *原创 2016-10-02 19:55:19 · 1217 阅读 · 0 评论 -
Java流编程实例之六--数据流
7. 数据流数据流DataOutputStream和DataInputStream用来将Java的简单数据类型和字符串保存为二进制格式,并从二进制格式读取。使用它们时需要注意以下几点: 第一,DataOutputStream输出的二进制流,必须使用DataInputStream读入,且各个变量的输出输出顺序必须相同; 第二,boolean,byte,short,char,int,long,flo原创 2016-09-28 20:35:46 · 1550 阅读 · 0 评论 -
Java流编程实例之二--文件流
3. 文件流3.1 如何选择文件流的类文件流应该是Java流中使用最普遍、最广泛的流了。文件流分为两组,一组是操作字节的FileInputStream和FileOutputStream,另一组是操作字符的FileReader和FileWriter,事实上,我们还经常用到FileReader和FileWriter的父类InputStreamReader和OutputStreamWriter,原因后原创 2016-09-07 21:57:00 · 1569 阅读 · 0 评论 -
Java流编程实例之五--Java过滤器概论
6. Java过滤器概论前面章节讲到的各种Java流,包括文件流、字节数组流、管道流等等被称之为原始流,它们提供了对某类数据的输入输出功能。为了在流处理的过程中简化和标准化某一类功能,例如缓冲、压缩、加密、摘要等,Java提供了一系列过滤器类,每组类提供了一种典型的信息处理功能。根据操作对象是字节还是字符,过滤器又分为过滤器流和阅读器/书写器两类,举例如下:BufferedInputStream/原创 2016-09-16 20:16:25 · 1961 阅读 · 0 评论 -
Java流编程实例之四--管道流
5. 管道流管道流是用来在多个线程之间进行信息传递的Java流,被号称是最难使用的流,被使用的频率也非常低。但事实上,管道流是非常有用的,它提供了多线程间信息传输的一种有效手段。 管道流包括两个类PipedOutputStream和PipedInputStream。其中PipedOutputStream是写入者/生产者/发送者;PipedInputStream是读取者/消费者/接收者。在使用管道流原创 2016-09-16 19:56:32 · 5933 阅读 · 2 评论 -
Java流编程实例之八--摘要流
9. 摘要流摘要流在对一组信息进行输入输出操作的同时,将摘要信息记录下来,最后通过getMessageDigest().digest()方法得到摘要信息的byte数组。 摘要流示例代码:对字符串进行摘要和对文件进行摘要。import java.io.*;import java.security.DigestOutputStream;import java.security.Message原创 2016-11-22 21:30:28 · 1225 阅读 · 0 评论 -
Java字符的编码解码与乱码问题
1. 前言编码、解码、乱码、Unicode、UCS-2、UCS-4、UTF-8、UTF-16、Big Endian、Little Endian、GBK这些名词,如果你有一个不太清楚,那么建议看看本文。2. 一幅图说尽Java编码问题2.1 一幅图与三个概念 字符有三种形态:形状(显示在显示设备上)、数字(运行于JVM中,Java统一为unicode编码)和字节数组(不同的字符集有不同的映射方案原创 2017-02-25 23:25:12 · 1087 阅读 · 0 评论 -
Java NIO编程实例之一Buffer
Java NIO主要解决了Java IO的效率问题,解决此问题的思路之一是利用硬件和操作系统直接支持的缓冲区、虚拟内存、磁盘控制器直接读写等优化IO的手段;思路之二是提供新的编程架构使得单个线程可以控制多个IO,从而节约线程资源,提高IO性能。 Java IO引入了三个主要概念,即缓冲区(Buffer)、通道(Channel)和选择器(Selector),本文主要介绍缓冲区。原创 2017-03-11 12:37:22 · 992 阅读 · 0 评论 -
Java Concurrency代码实例之六-ConcurrentHashMap
本文的读者应该是已经掌握了基本的Java多线程开发技巧,但不熟悉Java Concurrency包的程序员。本文是本系列的第六篇文章,前五篇文章请看这里: Java Concurrency代码实例之一执行者与线程池 Java Concurrency代码实例之二并发队列 Java Concurrency代码实例之三原子变量 Java Concurrency代码实例之四-锁原创 2017-08-19 11:44:37 · 2606 阅读 · 1 评论 -
Java Concurrency代码实例之四-锁
本文的读者应该是已经掌握了基本的Java多线程开发技巧,但不熟悉Java Concurrency包的程序员。本文是本系列的第四篇文章,前三篇文章请看这里: https://zhuanlan.zhihu.com/p/26724352 https://zhuanlan.zhihu.com/p/27148381 https://zhuanlan.zhihu.com/p/273383951原创 2017-06-24 22:24:55 · 840 阅读 · 0 评论 -
Java Concurrency代码实例之五-同步工具
Java Concurrency代码实例之五-同步工具本文的读者应该是已经掌握了基本的Java多线程开发技巧,但不熟悉Java Concurrency包的程序员。本文是本系列的第五篇文章,前四篇文章请看这里: https://zhuanlan.zhihu.com/p/26724352 https://zhuanlan.zhihu.com/p/27148381原创 2017-07-11 23:10:36 · 1227 阅读 · 0 评论 -
Java Concurrency代码实例之三原子变量
本文的读者应该是已经掌握了基本的Java多线程开发技巧,但不熟悉Java Concurrency包的程序员。本文是本系列的第三篇文章,前两篇文章请看这里: https://zhuanlan.zhihu.com/p/26724352 https://zhuanlan.zhihu.com/p/271483811原创 2017-06-10 17:32:14 · 746 阅读 · 0 评论 -
Java Concurrency代码实例之二并发队列
**本文的读者应该是已经掌握了基本的Java多线程开发技巧,但不熟悉Java Concurrency包的程序员。本文是本系列的第二篇文章,第一篇文章请看这里: https://zhuanlan.zhihu.com/p/26724352**原创 2017-05-27 21:55:34 · 1002 阅读 · 0 评论 -
Java Concurrency代码实例之一执行者与线程池
本文的读者应该是已经掌握了基本的Java多线程开发技巧,但不熟悉Java Concurrency包的程序员。Concurrency包中提供的工具众多,用法各异,熟练掌握后大有裨益。本文对包中的各种工具类从概念和用法上进行了分类,并给出了具体的样例代码。原创 2017-05-04 22:34:46 · 990 阅读 · 0 评论 -
Java NIO编程实例之三Selector
Java NIO主要包含三个概念,即缓冲区(Buffer)、通道(Channel)和选择器(Selector)。前面的文章已经介绍了缓冲区和通道,本文则讲述最复杂的选择器Selector。 本文是本系列的第三篇文章,关于缓冲区Buffer可以看第一篇: https://zhuanlan.zhihu.com/p/25701512 关于通道Channel可以看第二篇: https://zhuan原创 2017-04-08 11:44:35 · 2454 阅读 · 2 评论 -
Java NIO编程实例之二Channel
Java NIO(新IO)与Java传统IO(即IO流)之间最大的区别在于,NIO提供了一套异步IO解决方案,其目的在于使用单线程来监控多路异步IO,使得IO效率,尤其是服务器端的IO效率得到大幅提高。为了实现这一套异步IO解决方案,NIO引入了三个概念,即缓冲区(Buffer)、通道(Channel)和选择器(Selector),本文主要介绍通道Channel。原创 2017-03-21 21:25:38 · 858 阅读 · 0 评论 -
Java流编程实例之三--字节数组流和字符数组流
4. 字节数组流和字符数组流很多网上的教程在介绍FileInputStream的时候,经常写出这样的代码: FileInputStream fis = new FileInputStream(outputfile); byte[] buf = new byte[1024]; int len = fis.read(buf);代码中使用1024字节的byt原创 2016-09-16 16:52:08 · 2457 阅读 · 0 评论 -
使用Phoenix将SQL代码移植至HBase
1.前言HBase是云计算环境下最重要的NOSQL数据库,提供了基于Hadoop的数据存储、索引、查询,其最大的优点就是可以通过硬件的扩展从而几乎无限的扩展其存储和检索能力。但是HBase与传统的基于SQL语言的关系数据库无论从理念还是使用方式上都相去甚远,以至于要将基于SQL的项目移植到HBase时往往需要重写整个项目。 本文介绍了如何使用Apache Phoenix来像操作SQL一样操作HBase。原创 2016-07-13 21:39:04 · 7310 阅读 · 3 评论 -
Android中的消息处理实例与分析
Android中的消息处理实例与分析摘要本文介绍了Android中的消息处理机制,给出了Android消息处理中的几个重点类Handler、Message、MessageQueue、Looper、Runnable、Thread的详细介绍,提供了两个消息处理的实例代码,并深入分析了使用Android消息机制应该遵循的几个原则。阅读本文的收获在具有java基础的情况下,Android的学习比较轻松,很多原创 2015-06-22 09:39:54 · 2378 阅读 · 0 评论 -
五步学会Android的ListView控件
android列表控件最简明清晰的教程。原创 2015-05-29 22:29:21 · 1113 阅读 · 0 评论 -
狂刷Android范例之5:ApiDemos主程序框架分析
狂刷Android范例之6:ApiDemos主程序框架分析说明狂刷Android范例系列文章开张了。每篇学习一个Android范例,将一个范例单独生成一个可运行的app,并对重点源代码进行简要分析。然后提供打包好的源代码下载。功能这篇文章分析ApiDemos的主程序框架,ApiDemos是Google提供的Android范例,也许是最著名的Android范例,本系列文章都是分析ApiDemos中的各原创 2015-06-18 21:21:09 · 1108 阅读 · 2 评论 -
Java泛型代码例子
Java泛型代码例子一篇代码胜过千言万语package com.apkkids.javalanguage;import java.util.ArrayList;import java.util.List;/** * @author wxb * Java泛型例子 */public class GenericTest { //泛型接口 public interface MyCo原创 2015-06-16 21:26:57 · 1100 阅读 · 0 评论 -
android自定义日历的使用方法
子夜枯灯123提供了一个自定义的android日历,他的博客地址如下:http://blog.youkuaiyun.com/huangyanbin123/article/details/38350213他提供的代码除了自定义日历外,还有一个demo,对于大部分人来说,仅仅需要展示一个日历,并响应日历的click事件即可。因此我简化了他的demo,给出了一个更加简单的demo和使用方法,方法分为三步原创 2015-05-07 20:39:04 · 2128 阅读 · 1 评论 -
安卓图表控件WilliamChart使用指南
WilliamChart是github上的一个android图表控件,项目地址:https://github.com/diogobernardino/WilliamChart该图表控件效果不错,使用也比较方便。参考它提供的示例程序,我写了一个更加简单的图表程序,步骤如下:1.从github上下载项目,将其library项目导入adt;2.将其sample项目导入adt;3.创建原创 2015-04-28 21:30:11 · 9875 阅读 · 1 评论 -
Android的自定义数字Picker控件-NumberPicker使用方法
android-numberpicker是github的一个项目,提供了安卓中的自定义数字拾取控件,它的效果如图所示:应用该控件也非常简单,使用如下几步即可:1.从github上下载该控件,地址为:https://github.com/SimonVT/android-numberpicker;2.将其中的library项目导入ADT;3.在自己的project中引用原创 2015-04-26 21:24:14 · 6714 阅读 · 0 评论 -
Java的四种引用源代码例子
Java的四种引用源代码例子不解释,直接上代码,千言万语顶不住一行代码。package com.apkkids.javalanguage;import java.lang.ref.PhantomReference;import java.lang.ref.Reference;import java.lang.ref.ReferenceQueue;import java.lang.ref.Sof原创 2015-06-26 21:45:33 · 1710 阅读 · 0 评论 -
将Gradle项目导入ADT的方法
还是不能舍弃ADT,但是github上很多项目都是gradle了,因此只能使用此方法了。以android-styled-dialogs项目为例,此项目地址为:https://github.com/avast/android-styled-dialogs其中包含了两个子项目,library和demo,这是一个典型的android自定义库。library项目的导入方法:1.在ADT中导原创 2015-04-22 22:38:32 · 2160 阅读 · 0 评论 -
程序员的五大陷阱
程序员的五大陷阱引言十九年了,作为一个老程序员,我study过各种编程语言,research过各种编程框架,use过各种编程工具,run过各种操作系统,startup过各种数据库,design过各种模式,test过各种unit,fork过各种线程,draw过各种UI,link过各种server。我每天晚上苦苦追寻技术的真谛,努力点亮程序员技能树,多年的学习下来,最大的感受是”坑,全TMD是坑!“。原创 2015-05-31 22:19:21 · 2460 阅读 · 2 评论 -
Java中的原子性与并发编程总结
来自知乎的一个问题引起了我的关注,问题地址是:https://www.zhihu.com/question/42779759在java doc 中 https://docs.oracle.com/javase/tutorial/essential/concurrency/atomic.html However, this does not eliminate all need to synchro原创 2016-04-13 23:11:06 · 2881 阅读 · 0 评论 -
Java的登记式单例代码
网上很多关于登记式单例的代码,有的是错误的,有的过于繁杂,因此自己写了一个代码例子,供大家参考。原创 2016-01-24 21:45:23 · 831 阅读 · 0 评论 -
Android中Fragment和Activity之间的互操作代码例子
摘要本文介绍了Android中一个Activity中有多个Fragment的情况下,Fragment之间如何通过Activity进行互操作。源代码源代码地址为:http://download.youkuaiyun.com/detail/logicteamleader/8931199 源代码使用ADT编写,ADT版本为2014,Android版本为android-22。技术要点1.在Activity中的多个Fr原创 2015-07-24 22:19:04 · 1581 阅读 · 0 评论 -
全新android Tab控件PagerSlidingTabStrip最简使用方法
众所周知Android的Tab控件不是很好用,因此Github上的PagerSlidingTabStrip项目被广为使用,该项目地址为:https://github.com/astuetz/PagerSlidingTabStrip其示例图如下:由于其demo代码较长,难以理解,因此我总结了一个最简的使用方法。第一,在ADT中导入PagerSlidingTabStrip中原创 2015-05-04 22:14:41 · 3128 阅读 · 0 评论 -
狂刷Android范例之2:剪贴板范例
狂刷Android范例之二:剪贴板范例ClipboardSample说明狂刷Android范例系列文章开张了。每篇学习一个Android范例,将一个范例单独生成一个可运行的app,并对重点源代码进行简要分析。然后提供打包好的源代码下载。功能功能很简单,使用Android提供的剪贴板,复制不同类型的数据到剪贴板。 代码包在此,无需下载分: http://download.youkuaiyun.com/deta原创 2015-06-08 22:05:13 · 1224 阅读 · 1 评论 -
狂刷Android范例之1:ReadAsset
狂刷Android范例之一:ReadAsset说明狂刷Android范例系列文章开张了。每篇学习一个Android范例,将一个范例单独生成一个可运行的app,并对重点源代码进行简要分析。然后提供打包好的源代码下载。功能功能很简单,读取app自带的资源,例如一个文本。 代码包在此,无需下载分: http://download.youkuaiyun.com/detail/logicteamleader/8780原创 2015-06-06 22:35:48 · 1265 阅读 · 0 评论 -
狂刷Android范例之4:用代码安装卸载app
狂刷Android范例之4:用代码安装卸载app说明狂刷Android范例系列文章开张了。每篇学习一个Android范例,将一个范例单独生成一个可运行的app,并对重点源代码进行简要分析。然后提供打包好的源代码下载。功能这个范例用来展示如何在程序中使用Intent来安装和卸载一个apk文件到用户的手机上。 其主要使用了Intent的Action和Data属性来指明希望的操作和需要安装的apk文件路原创 2015-06-11 21:53:50 · 1974 阅读 · 0 评论 -
狂刷Android范例之3:读写外部存储设备
狂刷Android范例之3:读写外部存储设备说明狂刷Android范例系列文章开张了。每篇学习一个Android范例,将一个范例单独生成一个可运行的app,并对重点源代码进行简要分析。然后提供打包好的源代码下载。功能提供一个经典范例,监控Android外部存储设备状态,对公用目录,app私有目录进行读写操作,并展示在app界面上。 代码包在此,无需下载分: http://download.csd原创 2015-06-09 22:17:52 · 1506 阅读 · 0 评论