2 iteye_1194

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 91w+

Java中循环嵌套跳出的高效写法

(下面写的这些并不是Jdk的新特性,也不是Java某个版本提供的语法糖,不过是java语言早就提供的书写技巧,但是却被一直忽略的技巧)最近代码中总能用到循环嵌套的情况,大致模板如下:forech1(..){ forech2(...) { ... checkbreak1(); ... } ... ...

2014-04-24 19:31:07

子墨对酒《三国杀》里论模式(肆)单例模式

当设计模式的观点被众人所推崇的时候,单例模式似乎已经成了掌握设计模式时候要掌握的基础模式。当然我并不认为设计模式中有基础和非基础之分,我只觉得模式的应用有普遍和非普遍之别。单例模式的普遍并不体现在应用场景多上,我们阅读一个项目的时候发现其实用到单例的类本身屈指可数。但是因为它写法简单,易于识别,所以我们才对它格外的注意。单例模式分成饿汉式和懒汉式。这两种模式在写法上有一定的区别,你不能单独地推崇某...

2014-02-11 18:40:47

子墨对酒《三国杀》里论模式(三)适配器模式

如果你是一个Android程序员,那么你一定对适配器模式情有独钟。如果你还不知道 适配器模式为何物,你还陶醉在自己对AdapterView子类运用的有多熟的暗中自喜中,希望这篇文章能给你当头棒喝。人们常常举电脑适配器的例子作为 适配器模式的具象提现。但我更愿意用USB来举这个例子。当然USB接口也是电脑适配器的一部分。我们知道,不论是什么设备要连接上电脑,其实一根USB 连接线就够了。(如果你非...

2014-02-11 18:39:17

子墨对酒《三国杀》里论模式(二)门面模式

学 习模式的人对门面模式都不会太陌生,如果说工厂模式是对对象的高层次抽象的话,那么门面模式就是对对象,就是一种更高层次的抽象。这么说可能不好理解,我 们举个很好理解的例子,我们知道cpu的目的是为了运算,而运算我们又分成解释和计算。这分别是由解释器对象和运算器对象完成。而对于外部电路来说根本不 了解解释器对象和运算器对象的存在。也就是说cpu将整个的逻辑过程都封装在自己内部。只暴露给用户一个简单...

2014-02-11 18:38:27

子墨对酒《三国杀》里论模式(一)工厂模式

有人说模式会让代码变的优雅,也有人说模式会让你的代码更利于扩展。我个人觉得这些说 的都对。但是滥用模式一样会成为被人诟病的痛点。与其说面向对象语言考察的主要标准是语法,不如考察对模式的理解更加切合实际。很大一部分人都觉得模式枯 燥无味,但其实模式是一些充满智慧的集合,可以用在任何的领域,本系列文章就是希望在一种新新的角度里看模式。《三国杀》一 直是我热衷的游戏之一,当然外界对它褒贬不一我们不作深...

2014-02-11 18:37:32

Sublime Text 2:代码提示插件(转)

Sublime Text 2:代码提示插件Sublime Text 2是个相当棒的编辑器,这一点异次元和Lucifr的文章都介绍的很充分了。用了一段时间觉得Sublime确实“性感”而“强大”。只是Sublime Text 2毕竟是一款“编辑器”而非“集成开发环境”IDE。在很多IDE中常见的功能如代码智能提示(输入一个变量然后“.”之后会显示可用函数等)、工程和构 建等,都显得相对...

2014-01-07 20:53:10

Linux Shell编程学习笔记(二)函数

这次我们回顾一下函数的定义,在此之前,如我们学习结构化编程一样,任何语言都脱离不了某种范式,我们先从这些范式入手。首先是条件判断。具体的结构是:if condition;then command;elif  condition;then commands;else    command;ficondition的编写可以通过test命令或者是[]算子。比如te...

2014-01-05 22:51:20

Linux Shell编程学习笔记(一)变量和文件描述符

看了<Unix的设计思想>,情不自禁希望重新学习我曾经忽视的linux的shell脚本编程。我并不是随波逐流,也不是那种顽固的技术党,只是很纯粹的想了解这么技术,如果你有什么好的想法,也可以跟我交流,下面是我的微博地址:http://weibo.com/1752090185/profile?rightmod=1&wvr=5&mod=personinfo如果你...

2013-12-15 21:34:47

gvim的安装以及配置 (转)

将自己的安装和配置过程记录下来供参考:安装:sudo apt-get install vim-gtk vim-doc cscope创建启动项sudo cat > /usr/share/applications/gvim.desktop << "EOF"[Desktop Entry] Name=Gvim Comment[zh_CN]=Gvim编辑器E...

2013-12-07 22:17:48

Android各版本新增功能一览(转)

Android3.0新增功能:主要增加全息主题   1、Fragments:较activity粒度小的拥有独自生命周期的模块。可作为acitivity的一部分,activity通过FragmentManager管理独自的fragments back stack。   2、Action Bar:activity顶部标题栏的替代品,通常含logo,点击出现原menu菜单项--称作a...

2013-12-05 20:43:24

NotificationManager和Notification的使用总结(转)

这几天一直在修改twigee的源代码,其中一个要加入的功能是常驻Notification栏,以前写的时候只能出现 在“通知”这一组中,想把它放在“正在运行”组中却不知道怎么放,查了下官方文档,找到了方法,在notification的flags字段中加一下 “FLAG_ONGOING_EVENT”就可以了。同时我也把Notification的使用方法给总结了一下。详见下文:(1)、使用...

2013-11-26 12:51:27

Android应用程序资源的编译和打包过程分析 (转自老罗的博客)

    我们知道,在一个APK文件中,除了有代码文件之外,还有很多资源文件。这些资源文件是通过Android资源打包工具aapt(Android Asset Package Tool)打包到APK文件里面的。在打包之前,大部分文本格式的XML资源文件还会被编译成二进制格式的XML资源文件。在本文中,我们就详细分析 XML资源文件的编译和打包过程,为后面深入了解Android系统的资源管理框架打下...

2013-11-13 10:57:54

Proguard 源码分析 (七) 混淆

本章我们讲Proguard非常重要的一个步骤:混淆Obfuscator混淆的目的很明显,是为了混淆语义。我们能轻车熟路的找到混淆的源头:Obfuscator 的execute方法我们来看一下就行混淆器给我们设置了怎样的访问者:ClassVisitor memberInfoLinker =            configuration.useUniqueClassMemb...

2013-11-10 21:19:00

Proguard源码分析(六)前文总结

目前,我们读了Proguard的代码,相信已经开始对访问者模式和装饰器模式有很深的理解,现在我们再带着这两个模式认真的回顾下代码,因为只有这样,我们才能更好的进行下面的代码阅读。但是如果你还带着疑问,不妨看下前面的章节,或者看一些有关设计模式的书体会一下。我们回到我们熟悉的入口Proguard类的execute方法中:第一部分:读取(readinput)InputReader.execute: C...

2013-11-05 14:40:44

java class文件结构(转)

学习Java的朋友应该都知道Java从刚开始的时候就打着平台无关性的旗号,说“一次编写,到处运行”,其实说到无关性,Java平台还有另外一 个无关 性那就是语言无关性,要实现语言无关性,那么Java体系中的class的文件结构或者说是字节码就显得相当重要了,其实Java从刚开始的时候就有两套 规范,一个是Java语言规范,另外一个是Java虚拟机规范,Java语言规范只是规定了Java语言相关的...

2013-11-05 13:46:31

Proguard源码分析(五) ConfigurationParser.keep参数

本章节我们绕回来讲Keep参数,也就是ConfigurationParser 这个类。ConfigurationParser这个类是非常重要的类,如果你已经开始看源码,你会发现所有的类和功能都围着它来转,本章节我们来揭开它的地一层面纱。else if (ConfigurationConstants.KEEP_OPTION.startsWith(nextWord))           ...

2013-10-31 14:43:50

Proguard源码分析(四) 压缩

上一次我们讲了seed文件,这次我们说压缩,对应的输出文件是usage,可以通过命令-printusage usage.txt来配置压缩的目的是为了删除一些我们不使用的类和方法,从而达到字节码压缩的目的。这里我贴出我的微博:http://weibo.com/1752090185/profile?rightmod=1&wvr=5&mod=personinfo有意向可以加...

2013-10-30 10:59:45

Proguard源码分析(三)Seed文件

Seed文件就是保持住的类文件,直白一点就是不被混淆的文件,他主要是通过printSeeds() 方法实现这里我们要引入一个类ClassVisitor 。这个我们要区分ClassPoolVisitorClassPoolVisitor可以看成是ClassVisitor的组合,也就是说我们单纯看代码实现的时候可以只关注ClassVisitor。先看下seed的输出文件:1:com.t...

2013-10-29 12:45:01

Proguard源码分析(二)输出文件

ProGuard outputs thefollowing files after it runs:dump.txt···描述apk文件中所有类文件的内部结构 PrintStream ps = createPrintStream(configuration.dump);try{    programClassPool.classesAccept(new ClassPrinter(ps))...

2013-10-28 10:28:07

Android 2.2.2到Android 4.2.2源码下载地址(转)

Android 2.2.2到Android 4.2.2源码下载地址  可能有些的地址已经过时了 Android-2.2.2_r1.tar.bz2                       迅雷下载 Android-2.2.2_r1-20121015.tar.bz2     迅雷下载 Android-2.3.3_r1                                   http...

2013-10-28 10:13:28

查看更多

勋章 我的勋章
    暂无奖章