`
wangym
  • 浏览: 124558 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
欢迎继续关注: http://blog.csdn.net/u010996597  
在Java开发阶段,因为追求架构规范和遵循设计原则,所以要用private和protected修饰符去定义类的成员方法、变量、常量,这使得代码具封装性、内聚性等,但在测试阶段会造成一定的不便。通过Java的反射机制,便能很好地解决该问题。   //...... /** * @author yumin * @since 2015-03-02 14:52 */ public class ReflectUtil { private ReflectUtil() { } //部份代码略 public static Object ...

Android资源库

本人收集的各种Android资源,之前仅方便自已查阅所以未进行细致的说明。 现将其开放,欢迎大家关注和共建:   https://github.com/wangym/android-resource   [UPDATE-20150119] 添加各资源的简短说明易于了解 [UPDATE-20150130] 又新增一批资源并不定期更新中      
只需要基于开源项目zxing-lib,便可轻松创建独立二维码App,也可将二维码功能集成进App内。本文也是zxing-lib的使用文档。同时抛砖引玉,欢迎大家一起共建zxing-lib。   项目地址:https://github.com/wangym/zxing-client-android 遵循协议:Apache License Version 2.0 简介:zxing-lib是一款开源二维码扫码库,基于ZXing进行剪裁和二次开发,支持更多的个性扩展功能,全库仅52KB,以Android library project输出,能被快速使用和集成。     (以下步骤基于已 ...
1、QR码可用尺寸知识普及 QR码设有1到40的不同版本(种类),每个版本都具备固有的码元结构(码元数)。(码元是指构成QR码的方形黑白点。) “码元结构”是指二维码中的码元数。从版本1(21码元×21码元)开始,在纵向和横向各自以4码元为单位递增,一直到版本40(177码元×177码元)。  QR码的各个版本结合数据量、字符类型和纠错级别,均设有相对应的最多输入字符数。也就是说,如果增加数据量,则需要使用更多的码元来组成QR码,QR码就会变得更大。   2、QR码常用尺寸(按码元数) 在Web端设计中,建议至少使用“1码元 = a象素(2=< a <=9, a为 ...
7月18至19日参加了为期2天的《ArchSummit深圳2014大会》。42位讲师、700多位听众,包含10个热门专题、41场精彩演讲。以下是我在聆听分享时的笔记,是我个人对内容的摘记和理解。 大会完整讲稿下载:http://pan.baidu.com/s/1gdvKbKn   ...

Java陷阱解惑

    博客分类:
  • Java
1、自增陷阱 陷阱: 下述程序的运行结果是多少? @Test public void test自增陷阱() { int expected = 10; int count = 0; for (int i = 0; i < expected; i++) { count = count++; } System.out.println(count); Assert.assertTrue(expected == count); } 结果是count=0不是预期的10。   解惑: count++的返回值是co ...
zxing https://code.google.com/p/zxing/ Multi-format 1D/2D barcode image processing library with clients for Android, Java   zxing-client-android屏幕方向默认是landscape模式,修改如下源码,可改为portrait模式:   1、AndroidManifest.xml:      将android:screenOrientation="landscape"改为  android:screenOrientation ...
01.按目前主流机型,起码保证hdpi分辨率下完美展现,对应工程下的drawable-hdpi文件夹;02.图片资源尽可能地使用"点九"; 03.一些结构很复杂或布局要求高的布局,可特别处理.或者按分辨率单独建布局文件,如layout-960x540.xml;或者 ...
先来个小演示,将如下代码全部复制,然后粘贴到Chrome或Firefox等浏览器的地址栏内并打开: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AQAAAAARHwt/AAAAq0lEQVR42u3VQQrEMAgFUMFrCV5d8FpC55tQaGYx4J9t00L6upCoSSvXOeT1t0NEM7Qnytl3+JooB8KZ98Tb8y9nOW/cJXrkN/GqJ5Zz1HfgNUrP/g4c4h3M73ymvgrPHmKks0xwmZdS7nUEiD3B2ayzEb/7MXSPsG4J525kIZl8nMeJ93 ...
一、standard     此为默认模式。如上图,FirstActivity跳转FirstActivity,此时不论FirstActivity是否已存在,每次都会生成一个新的FirstActivity实例,并置于栈顶,当按下后退键时,再按反向顺序一个个的后退直至退出。       二、singleTop     如上图,FirstActivity跳转FirstActivity,先在栈中寻找是否有对应的实例,若有且位于栈顶,则不再生成新的FirstActivity而是直接使用。但若不在栈顶,则仍会新建实例,如下图,FirstActivity跳转SecondActi ...
    1、Activity的整个生命周期如上图呈金字塔状:当创建一个Activity新实例时从图左侧的onCreate()事件开始逐渐向顶端走,当到达最顶端的Resumed状态时便已到可与用户进行交互的状态,而当用户离开Activity或被中断时,Activity状态开始往图右侧的底端走;   2、一旦onCreate()方法执行完毕,会迅速执行onStart()和onResume(),Activity不会停留在Created或Started状态,但当onResume()事件被发生后,Activity会一直维持在Resumed状态直到一些事情发生(如退出或被半或全遮挡);   ...
iBatis的扩展组件主要有TypeHandlerCallback、CacheController、DataSourceFactory、TransactionConfig。其中TypeHandlerCallback可以实现自定义的类型处理逻辑,以便处理非标准数据库、驱动程序和(或)数据类型。   场景举例 有如下数据表,请注意字段status的类型及含义:   CREATE DATABASE ibatis; USE test_ibatis; CREATE TABLE person ( id INT NOT NULL AUTO_INCREMENT, name VAR ...
首先来看个实例 ——    RunnableTest.java:   /** * */ package concurrency; /** * @author xuanyin * */ public class RunnableTest implements Runnable { /** * */ private static boolean flag = true; /** * 使用synchronized方法 */ private static synchronized void testSyncM ...
近期参与项目研发,调接口时遇一事不爽,比如在调C方法前必须得先调A方法,成功后再调B方法拿到返回结果后,最后才可以调C方法,而且接口调用还会随需求变化而变更,比如可能还得再增加几个步骤......   门面模式(亦称外观模式Facade Pattern)的思想很好地解决了这一问题,当然,它的优点也不止如此。   场景举例   投递信件的过程是:首先写信的内容 -> 其次写信封 -> 把信放到信封里 -> 然后邮递   接口类:ILetterProcess /** * @author xuanyin * */ public interfac ...
Global site tag (gtag.js) - Google Analytics