自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LogicTeamLeader的专栏

软件项目组长的成长历程,程序员的技术研究之路。

  • 博客(61)
  • 资源 (10)
  • 收藏
  • 关注

原创 程序员的五大陷阱

程序员的五大陷阱引言十九年了,作为一个老程序员,我study过各种编程语言,research过各种编程框架,use过各种编程工具,run过各种操作系统,startup过各种数据库,design过各种模式,test过各种unit,fork过各种线程,draw过各种UI,link过各种server。我每天晚上苦苦追寻技术的真谛,努力点亮程序员技能树,多年的学习下来,最大的感受是”坑,全TMD是坑!“。

2015-05-31 22:19:21 2275 2

原创 Java Concurrency代码实例之七-ConcurrentSkipListMap

本文的读者应该是已经掌握了基本的Java多线程开发技巧,但不熟悉Java Concurrency包的程序员。本文是本系列的第七篇文章,前六篇文章请看这里:Java Concurrency代码实例之一执行者与线程池 Java Concurrency代码实例之二并发队列 Java Concurrency代码实例之三原子变量 Java Concurrency代码实例之四-锁 Java Co

2018-01-29 22:44:51 623

原创 Java Concurrency代码实例之六-ConcurrentHashMap

本文的读者应该是已经掌握了基本的Java多线程开发技巧,但不熟悉Java Concurrency包的程序员。本文是本系列的第六篇文章,前五篇文章请看这里: Java Concurrency代码实例之一执行者与线程池 Java Concurrency代码实例之二并发队列 Java Concurrency代码实例之三原子变量 Java Concurrency代码实例之四-锁

2017-08-19 11:44:37 2500 1

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

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

原创 Java Concurrency代码实例之三原子变量

本文的读者应该是已经掌握了基本的Java多线程开发技巧,但不熟悉Java Concurrency包的程序员。本文是本系列的第三篇文章,前两篇文章请看这里: https://zhuanlan.zhihu.com/p/26724352 https://zhuanlan.zhihu.com/p/271483811

2017-06-10 17:32:14 671

原创 Java Concurrency代码实例之二并发队列

**本文的读者应该是已经掌握了基本的Java多线程开发技巧,但不熟悉Java Concurrency包的程序员。本文是本系列的第二篇文章,第一篇文章请看这里: https://zhuanlan.zhihu.com/p/26724352**

2017-05-27 21:55:34 928

原创 Java Concurrency代码实例之一执行者与线程池

本文的读者应该是已经掌握了基本的Java多线程开发技巧,但不熟悉Java Concurrency包的程序员。Concurrency包中提供的工具众多,用法各异,熟练掌握后大有裨益。本文对包中的各种工具类从概念和用法上进行了分类,并给出了具体的样例代码。

2017-05-04 22:34:46 899

原创 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 2349 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 794

原创 Java NIO编程实例之一Buffer

Java NIO主要解决了Java IO的效率问题,解决此问题的思路之一是利用硬件和操作系统直接支持的缓冲区、虚拟内存、磁盘控制器直接读写等优化IO的手段;思路之二是提供新的编程架构使得单个线程可以控制多个IO,从而节约线程资源,提高IO性能。 Java IO引入了三个主要概念,即缓冲区(Buffer)、通道(Channel)和选择器(Selector),本文主要介绍缓冲区。

2017-03-11 12:37:22 907

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

原创 Java流编程实例及代码

1.前言在众多流行的编程语言中,Java对IO的处理应该是最特殊的,Java打着“尽量减少IO类的设计理念”,搞出了目前应该是最复杂的一套IO相关类,并称之为Java流。 对于新手来说,Java流包含的类众多,含义混杂,上手困难且其中暗藏的陷阱众多;但是对于熟悉了Java流的程序员来说,它的确称得上功能强大。 本文总结了一些Java流的使用指南,给出了一些实例代码,主要内容包括: - Jav

2016-12-14 22:53:40 3112 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 1080

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

原创 Java流编程实例之八--摘要流

9. 摘要流摘要流在对一组信息进行输入输出操作的同时,将摘要信息记录下来,最后通过getMessageDigest().digest()方法得到摘要信息的byte数组。 摘要流示例代码:对字符串进行摘要和对文件进行摘要。import java.io.*;import java.security.DigestOutputStream;import java.security.Message

2016-11-22 21:30:28 1124

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

原创 Java流编程实例之六--数据流

7. 数据流数据流DataOutputStream和DataInputStream用来将Java的简单数据类型和字符串保存为二进制格式,并从二进制格式读取。使用它们时需要注意以下几点: 第一,DataOutputStream输出的二进制流,必须使用DataInputStream读入,且各个变量的输出输出顺序必须相同; 第二,boolean,byte,short,char,int,long,flo

2016-09-28 20:35:46 1416

原创 Java流编程实例之五--Java过滤器概论

6. Java过滤器概论前面章节讲到的各种Java流,包括文件流、字节数组流、管道流等等被称之为原始流,它们提供了对某类数据的输入输出功能。为了在流处理的过程中简化和标准化某一类功能,例如缓冲、压缩、加密、摘要等,Java提供了一系列过滤器类,每组类提供了一种典型的信息处理功能。根据操作对象是字节还是字符,过滤器又分为过滤器流和阅读器/书写器两类,举例如下:BufferedInputStream/

2016-09-16 20:16:25 1840

原创 Java流编程实例之四--管道流

5. 管道流管道流是用来在多个线程之间进行信息传递的Java流,被号称是最难使用的流,被使用的频率也非常低。但事实上,管道流是非常有用的,它提供了多线程间信息传输的一种有效手段。 管道流包括两个类PipedOutputStream和PipedInputStream。其中PipedOutputStream是写入者/生产者/发送者;PipedInputStream是读取者/消费者/接收者。在使用管道流

2016-09-16 19:56:32 5787 2

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

原创 Java流编程实例之二--文件流

3. 文件流3.1 如何选择文件流的类文件流应该是Java流中使用最普遍、最广泛的流了。文件流分为两组,一组是操作字节的FileInputStream和FileOutputStream,另一组是操作字符的FileReader和FileWriter,事实上,我们还经常用到FileReader和FileWriter的父类InputStreamReader和OutputStreamWriter,原因后

2016-09-07 21:57:00 1456

原创 Java流编程实例之一--Java中的字节与字符

1.前言在众多流行的编程语言中,Java对IO的处理应该是最特殊的,Java打着“尽量减少IO类的设计理念”,搞出了目前应该是最复杂的一套IO相关类,并称之为Java流。 对于新手来说,Java流包含的类众多,含义混杂,上手困难且其中暗藏的陷阱众多;但是对于熟悉了Java流的程序员来说,它的确称得上功能强大。 本文总结了一些Java流的使用指南,给出了一些实例代码,主要内容包括: - Jav

2016-09-04 21:18:59 1521

原创 使用Phoenix将SQL代码移植至HBase

1.前言HBase是云计算环境下最重要的NOSQL数据库,提供了基于Hadoop的数据存储、索引、查询,其最大的优点就是可以通过硬件的扩展从而几乎无限的扩展其存储和检索能力。但是HBase与传统的基于SQL语言的关系数据库无论从理念还是使用方式上都相去甚远,以至于要将基于SQL的项目移植到HBase时往往需要重写整个项目。 本文介绍了如何使用Apache Phoenix来像操作SQL一样操作HBase。

2016-07-13 21:39:04 7250 3

原创 Java API 远程连接Standalone模式的Hbase

前言很多人使用HBase都是从Standalone模式开始的,毕竟不是每个人都有一个集群可以用来随便测试的。但是很多书上没有对如何使用Java API远程连接Standalone模式的HBase详细介绍,导致很多人的代码在连接HBase时碰到很多问题。本文可为你解惑步骤一,JDK安装Standalone模式的HBase,这个看看HBase的官网即可。 设置JDK,一般jdk7即可,目前jdk8经常

2016-06-14 22:02:51 3389 1

原创 Android6.0以后,如何获取当前运行的app

前言在Android5.0,即Lollipop(api level 21)之前,大家都幸福的使用如下代码来获得当前运行的app。而Android6.0之后,则必须使用一些新的招数了,本文就详细介绍了这些招数。

2016-04-24 21:41:28 7821 3

原创 Android中的Handler和AsyncTask的区别

问题的由来最近老看见有人问Android中的Thread与AsyncTask的区别,因此研究了一下,总结如下。 第一,如果真心想弄清楚这两个的具体用法,最好的方法是把Message、MessageQueue、Looper、Handler、HandlerThread和AsyncTask这六个类的源代码全部看懂。 第二,如果觉得困难,那么就来看看我的这篇总结文章吧。Handler类,可以理解为消息/

2016-04-16 21:40:00 9795

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

原创 在Android Studio中查看Sqlite数据内容的方法

在Android Studio中查看Sqlite的方法只说最好的方法,使用工具stetho:

2016-03-24 22:02:53 16811 4

原创 Android信使Messenger范例源码

Messenger是Android提供的一个工具类,主要为了简化进程间通信的功能。使用Messenger就可以避免编写AIDL文件来进行进程间通信。Messenger和Handler一起配合完成任务。其中Messenger主要用来将服务端和客户端的两个信使关联到一起,而Handler则用来完成具体功能。

2016-02-02 21:28:01 847

原创 Java的登记式单例代码

网上很多关于登记式单例的代码,有的是错误的,有的过于繁杂,因此自己写了一个代码例子,供大家参考。

2016-01-24 21:45:23 771

原创 Android远程服务编写和调用教程

网上汗牛充栋的文章都是介绍Android远程服务的,一个个将Binder机制、AIDL讲得头头是道,然而没有几个人能够给出清晰的范例说明如何用最快的方法学会编写和调用一个Android远程服务。若你仅仅是想如何编写或者调用Android的远程服务,而懒得去理解Binder机制是如何运行的,那么本篇文章正好适合你。毕竟现在人人都会开车,但没有几个人明白发动机到底是如何运作的。

2016-01-17 22:11:27 2422 1

原创 安卓屏幕适配一次奇怪的bug

一个app完成后,我按照如下标准制作了多个icon,并放入了相应的目录:LDPI (Low Density Screen,120 DPI),其图标大小为 36 x 36 px。MDPI (Medium Density Screen, 160 DPI),其图标大小为 48 x 48 px。 HDPI (High Density Screen, 240 DPI),其图标大小为 72 x 72 px

2015-12-22 22:38:11 1057

原创 Java中的二进制、八进制、十六进制和移位运算

Java中的二进制、八进制、十六进制和移位运算一个源代码说明一切:package com.apkkids.javalanguage;import java.util.Random;/** * @author wxb Description:二进制、八进制、十六进制,移位运算 * * 2015-9-28 下午8:31:04 */public class BitCompute

2015-09-28 20:55:35 3965

原创 如何调试Android中的Sqlite数据

第一步:root你的手机,使用360手机助手的root工具最快; 第二步:在手机上安装RE文件管理器(英文全名root explorer,手机需授予root权限),然后根据这篇文章的内容将自己的app应用目录权限赋值为777 http://blog.csdn.net/libaineu2004/article/details/25247711 注意,你的app目录一般是/data/data/co

2015-08-31 21:26:35 1382

原创 如何防止PendingIntent打开一个Activity的多个实例

正在写一个app,这个app会定时刷新Notification,点击Notification时会开启主Activity,令人烦恼的是,会打开主Activity的多个实例。 研究了好久PendingIntent的使用方法,研究了如何判断Activity是否已经存在于内存中,后来发现只要一句话即可解决此问题: <activity android:launchMode="sing

2015-08-01 19:48:41 2555

原创 Android中Fragment和Activity之间的互操作代码例子

摘要本文介绍了Android中一个Activity中有多个Fragment的情况下,Fragment之间如何通过Activity进行互操作。源代码源代码地址为:http://download.csdn.net/detail/logicteamleader/8931199 源代码使用ADT编写,ADT版本为2014,Android版本为android-22。技术要点1.在Activity中的多个Fr

2015-07-24 22:19:04 1521

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

原创 Android中的消息处理实例与分析

Android中的消息处理实例与分析摘要本文介绍了Android中的消息处理机制,给出了Android消息处理中的几个重点类Handler、Message、MessageQueue、Looper、Runnable、Thread的详细介绍,提供了两个消息处理的实例代码,并深入分析了使用Android消息机制应该遵循的几个原则。阅读本文的收获在具有java基础的情况下,Android的学习比较轻松,很多

2015-06-22 09:39:54 2247

原创 狂刷Android范例之5:ApiDemos主程序框架分析

狂刷Android范例之6:ApiDemos主程序框架分析说明狂刷Android范例系列文章开张了。每篇学习一个Android范例,将一个范例单独生成一个可运行的app,并对重点源代码进行简要分析。然后提供打包好的源代码下载。功能这篇文章分析ApiDemos的主程序框架,ApiDemos是Google提供的Android范例,也许是最著名的Android范例,本系列文章都是分析ApiDemos中的各

2015-06-18 21:21:09 1041 2

Android信使Messenger范例源代码

一个信使的范例源代码,有远程服务,有回调示例。

2016-02-02

Android远程服务编写和调用教程示例

网上汗牛充栋的文章都是介绍Android远程服务的,一个个将Binder机制、AIDL讲得头头是道,然而没有几个人能够给出清晰的范例说明如何用最快的方法学会编写和调用一个Android远程服务。若你仅仅是想如何编写或者调用Android的远程服务,而懒得去理解Binder机制是如何运行的,那么本篇文章正好适合你。毕竟现在人人都会开车,但没有几个人明白发动机到底是如何运作的。 这里的代码给出了最简单的范例

2016-01-17

Android中Fragment和Activity之间的互操作代码例子

本文介绍了Android中一个Activity中有多个Fragment的情况下,Fragment之间如何通过Activity进行互操作。

2015-07-24

Android中的消息处理实例之二

本文介绍了Android中的消息处理机制,给出了Android消息处理中的几个重点类Handler、Message、MessageQueue、Looper、Runnable、Thread的详细介绍,提供了两个消息处理的实例代码,并深入Android源代码分析了使用Android消息机制应该遵循的几个原则。

2015-06-22

Android中的消息处理实例之一

本文介绍了Android中的消息处理机制,给出了Android消息处理中的几个重点类Handler、Message、MessageQueue、Looper、Runnable、Thread的详细介绍,提供了两个消息处理的实例代码,并深入Android源代码分析了使用Android消息机制应该遵循的几个原则。

2015-06-21

狂刷Android范例之5:读取手机通讯录

提供完整代码,通过ContenResolver,读取手机通讯录的内容。

2015-06-14

狂刷Android范例之4:用代码安装卸载app

这个范例用来展示如何在程序中使用Intent来安装和卸载一个apk文件到用户的手机上。 其主要使用了Intent的Action和Data属性来指明希望的操作和需要安装的apk文件路径,该apk是放在本app的asset目录中作为一个资源。

2015-06-11

狂刷Android范例之3:读写外部存储设备

一个Android读写外部存储设备的经典例子,值得一看。

2015-06-09

狂刷Android范例之二:剪贴板范例

狂刷Android范例系列文章开张了。每篇学习一个Android范例,将一个范例单独生成一个可运行的app,并对重点源代码进行简要分析。然后提供打包好的源代码下载。 功能很简单,使用Android提供的剪贴板,复制不同类型的数据到剪贴板。

2015-06-08

狂刷Android范例之一:ReadAsset

ReadAsset很简单,读取app自带的资源。

2015-06-06

空空如也

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

TA关注的人

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