Git/Github的使用并与Eclipse整合 Git简介 Git是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具。每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器。 Git 在管理项目时,在本地会有三个工作区域:Git 的本地数据目录,工作目录以及暂存区域。如下图所示:因此对于任何一个文件,在 Git
Intent匹配规则以及解析框架深入分析 关于Intent以及IntentFilter的基本知识,大家可以参阅如下资料, SDK中对Intent与IntentFilter的介绍 ---- 英文 其中文翻译如下: Android开发之旅: Intents和Inten
Android中Context详解 ---- 你所不知道的Context 大家好, 今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中 时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法 ; 说它陌生,完全是 因为我们真正的不懂Context的原理、类结构关系。一个简单的问题是,一个应用程序App中存在多少个
Java方法参数太多怎么办—Part6—方法返回值 在前面文章中,讨论了如何直接减少构造函数和方法的参数,比如通过自定义类型、引入参数对象、Builder模式、重载和方法命名来减少参数。你可能会奇怪为什么会讨论方法返回值。然而,实际开发中开发者会使用参数作为返回值,从而增加了额外的参数。非构造函数一般会在方法签名中指定返回值,声明返回值类型。然而,一个令人困扰的问题是:这种方法只支持一个返回值…Java异常处理机制提供了另一种结果返
Java方法参数太多怎么办—Part5—方法命名 在前面文章(“Java方法参数太多怎么办”系列之四)中,讨论了如何使用方法重载减少方法和构造函数的参数,指出了这种方式的一些不足并建议使用多个不同的函数名代替重载。本文将深入讨论如何通过函数命名解决参数过多的问题,并且可以弥补方法重载的一些不足。从减少参数的角度来看,方法重载的核心问题在于:当参数过多时,相同名字的方法到底可以重载多少次?当其中一些参数的类型相同时尤其如此。举个例子,我定义
Java方法参数太多怎么办—Part4—重载 在Java编程中,如果一个方法带太多的参数被会给调用者带来很多困扰。调用者必须考虑是否按照正确的参数顺序给传入合适的值。在前面的文章中,先后探讨了通过自定义类型、参数对象、Builder模式来解决这个问题。还有一种方法,也是今天探讨的主题——通过方法重载来应对各种不同需求。与往常一样,在文章最后我会对重载的优缺点进行总结。Java支持方法重载,可以通过方法签名来区分同名方法之间是否重载。请
Java方法参数太多怎么办—Part3—Builder模式 在前两篇文章中,我分别使用了自定义类型和参数对象方法来减少构造器或方法调用传入的参数数量。本文关注的是Builder模式。我认为它不仅能够帮助构造函数“瘦身”,甚至可以对非构造函数也能发挥同样的作用。在Effective Java第二版中,Josh Bloch在第二章中就提到使用Builder模式处理需要很多参数的构造函数。他不仅展示了Builder的使用,也描述了相这种方法相对使
Java方法参数太多怎么办—Part 2—引入参数对象 在前一篇文章中,我关注了一些关于构造函数或方法参数过多的问题。文中我讨论了用自定义类型代替基本、内置类型以获得良好的可读性和安全性。然而这并不能减少参数的数量。这次,我将用参数对象方法给构造函数和方法的参数“瘦身”。通常你会看到一组特定参数,它们关系紧密并且总是一起传给方法或构造函数,有可能好几个函数都使用这一组参数。这些函数可能属于同一个类,也可能属于不同的类。这时,《重构》这本
Java方法参数太多怎么办—Part 1—自定义类型 我认为构造函数和方法过长的传递参数列表是一种红色警告(”red flag“)。在开发过程中,从逻辑的和功能的角度来看并非错误,但是通常意味着现在或者将来犯错误的可能性更高。通过阅读一系列文章,我发现一些解决参数列表过长的办法,或者至少这些办法可以减少参数个数、增强代码的可读性并降低发生错误的概率。任何解决问题的办法都具有优点和缺点。本文旨在通过使用自定义类型改进长参数方法和构造函数代码的可读性
java学习笔记24——String类不可变性 如果我们需要修改一个String对象,最好使用StringBuffer或StringBuilder。否则,会在每次创建一个新的String对象时消耗垃圾回收器大量时间。例How to read file content into a string?The following is the Java code to do that. To make it work, the
java学习笔记23——枚举类 实例有限而且固定的类,叫枚举类。 手动实现枚举类,要注意以下几点: 1、要用private把构造器隐藏起来。 2、把这个类所有可能实例都使用public static final修饰的类变量来保存。 3、可以提供一些静态方法,允许其他程序根据特定参数来获取与之匹配的实例。 enum关键字定义枚举类,在注意其与
java学习笔记22——闭包(Closure)和回调 闭包是一种能被调用的对象,它保存了创建它的作用域信息。java7没有显示支持闭包,但对非静态内部类,不仅记录了其外部类的详细信息,还保留了一个创建非静态内部类对象的引用,并且可以直接调用外部类的private成员,所以可以把非静态内部类当成面向对象的闭包。 通过这种仿闭包的非静态内部类,可以很方便的实现回调功能,回调就是某个方法一旦获取了内部类对象的引用后,就可以在合适的时候反过
java学习笔记21——匿名内部类 匿名内部类适合创建只需要一次使用的类,创建匿名内部类时会立即创建一个该类的实例,这个类定义立即消失,匿名内部类不能重复使用。 new 父类构造器(实参列表)|实现接口() { //匿名内部类的类体部分 } 匿名内部类必须继承一个父类,或实现一个接口,但最多只能继承一个父类,或实现一个接口。有两条
java学习笔记20——局部内部类 把内部类定义在方法里,就是局部内部类。局部内部类仅在该方法内有效。对局部成员而言,不管是局部变量还是局部内部类,它们的上一级程序单元都是方法,而不是类,使用static修饰它们没有任何意义。所以,所有局部成员都不能使用static修饰。不仅如此,局部成员的作用域都是所在方法,其他程序单元永远也不可能访问另一个方法中的局部成员,所以所有的局部成员都不能使用访问控制符修饰。public class
java学习笔记19——静态内部类 用static修饰一个内部类,则这个内部类就属于外部类本身,而不属于外部类的某个对象。因此也被称为类内部类,或者静态内部类。static是把类的成员变量变成类相关,而不是实例相关。外部类的上一级程序单元是包,所以不可以用static修饰;而内部类的上一级程序单元是外部类,使用static修饰可以将内部类变成外部类相关,而不是外部类实例相关。因此,static不可修饰外部类,但可修饰内部类。
java学习笔记18——内部类 外部类的上一级程序单元是包,所以它只有2个作用域:同一个包内和任何位置。因此只需要2种访问权限:包访问权限和公开访问权限,正好对应省略访问控制符和public访问控制符。省略访问控制符是包访问权限,即同一包中的其他类可以访问省略访问控制符的成员。如果一个外部类不适用任何控制符修饰,则只能被同一个包中其他类访问。而内部类的上一级程序单元是外部类,它有4个作用域:同一个类、同一个包、父子类和任何位置。
java学习笔记17——接口 接口比抽象类更抽象。不用class关键字而是用interface,定义的是多个类共同的公共行为规范。抽象类里不光有抽象方法还有普通方法,而接口里所有方法都是抽象方法,不能包含普通方法。 [修饰符] interface 接口名 extends 父接口1,父接口2…… { 零到多个常量定义…… 零到多个抽象方法定义……