摘要: 将博客搬至CSDN 阅读全文
posted @ 2014-05-15 16:43 ruidge 阅读(156) 评论(0) 推荐(0) 编辑
摘要: PackageInstaller原理简述应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作。APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。Android应用安装有如下四种方式1.系统应用安装――开机时完成,没有安装界面2.网络下载应用安装――通过market应用完成,没有安装界面3.ADB工具安装――没有安装界面。4.第三方应用安装――通过SD卡里的APK文件安装,有安装界面,由pac 阅读全文
posted @ 2012-09-15 22:04 ruidge 阅读(2110) 评论(0) 推荐(0) 编辑
摘要: 今天看了张孝祥老师的“交通灯管理系统”的题目和解决方案,尝试着再自己分析这个场景,实现不一定很好,权当学习了。首先提取下这个问题的关键要素:交通灯,路,车。三者的一种关系是车可以认为是路的“元素”,车的通过和增加都是由路负责管理的。而每一个十字路口的放行与否,都是通过交通灯控制的。路和灯应该是归属的关系,一个十字路口“拥有”一个交通灯系统。所以我们抽象交通灯这个类,因为向右是永远放行的,所以我们可以忽略向右的这条线路,而相反方向的灯的变化是完全相同的,所以可以抽象为一个管理系统,这样其实一个路口的交通等的状态就只有4种了,而且这四种同一时刻只有一个是放行的状态。用枚举实现交通灯: 1 pack 阅读全文
posted @ 2012-04-09 17:33 ruidge 阅读(662) 评论(0) 推荐(0) 编辑
摘要: 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 ----百科今天记录下最近遇到的几个设计模式:1.观察者(observer)模式在java中gui的实现使用了观察者模式,观察者模式中几个关键的角色是:事件源、事件 、观察者。用windows窗口关闭这个最简单例子简单描述下三者之间的关系: 1 public class Observer { 2 public static void main(String[] args) { 3 Fram... 阅读全文
posted @ 2012-04-06 19:43 ruidge 阅读(187) 评论(0) 推荐(0) 编辑
摘要: TCP/IP协议的四层模型,从底层到高层分别是:网络接口层、网络层、传输层、应用层。IP属于网络层,TCP/UDP属于传输层。IP定位对方的主机名,端口号对应接受数据的应用程序。本地回环地址:127.0.0.1 主机名:localhost 有效端口:0~65535, 其中0~1024为系统保留端口。IP地址由InetAddress类表示。没有构造函数,通过静态方法得到实例。UDP:将数据及源和目的封装成数据包,不需要建立连接;每个数据包的大小限制在64k内;因无连接,是不可靠协议;速度快。TCP:建立连接,形成传输数据的通道;在连接中进行大量数据传输;通过三次握手完成连接,是可靠协议;必须建立 阅读全文
posted @ 2012-03-31 12:53 ruidge 阅读(919) 评论(0) 推荐(0) 编辑
摘要: 在java的反射中,所有的类被抽象出一个类,即Class类,这样我们就可以在程序运行的过程中通过配置文件,动态的加载类。但是在用反射的时候有些前提,就是:当我们调用有参的constructor的时候必须先知道构造函数传入的参数是什么类型;调用Method的时候必须先知道成员函数传入的参数是什么类型;调用field的时候必须先知道成员变量的类型。但是在某些情况下,一个类中的成员属性的名字对外是不可见的,这时候我们只可以得出他的成员类型的数组field[],在不知道确切变量名的情况下不可以定位到确切的变量上。而他提供了对这个属性公开的读(get)、写(set)方法, 虽然方法名和方法操作的对象有时 阅读全文
posted @ 2012-03-26 18:45 ruidge 阅读(679) 评论(0) 推荐(0) 编辑
摘要: 要说java中的反射首先得说说java中的类加载机制。首先java源文件通过编译,生成字节码文件存在硬盘上,虚拟及启动后,根据main函数调用到类的先后顺序动态的加载类到内存,加载有一个原则,首先加载bootstrap classloader:系统类的类加载器;再加载ExtClassLoader:系统中一部分的类加载器;最后是AppClassLoader:应用程序中自己定义的类加载器。三者的关系依次是parentclassloader的关系。因此,在classloader看来,加入内存的类的字节码也是一个个的对象,因此也应该有抽象出来的共性,所以就引出了Class类,Class类是所有字节码类 阅读全文
posted @ 2012-03-26 00:19 ruidge 阅读(470) 评论(0) 推荐(0) 编辑
摘要: java中为了对参数类型使用限定,引入了泛型,实现了在编译期对参数类型是否合法的判断。同样,java为了对参数的值的限定,引入了枚举类,实现了在编译期对参数的值是否合法的判断。首先我们用自定义类的方法实现枚举类,可以参考单例模式的实现思路,将类的构造方法设置为私有的,在类内部定义static的变量,只能直接通过类名访问自己定义的类,实现对类的值的限定。 1 public class TestEnum { 2 3 public static void main(String[] args) { 4 Weekday w = Weekday.Fri; 5 ... 阅读全文
posted @ 2012-03-25 11:06 ruidge 阅读(1006) 评论(0) 推荐(0) 编辑
摘要: java中的正则表达式内容比较多又比较杂,记录下常用的。用到的包是java.util.regex包里面只有两个类 :pattern、matcher和一个异常(runtimeexception)类。典型的调用顺序是:Pattern p = Pattern.compile("a*b");Matcher m = p.matcher("aaaaab");boolean b = m.matches();其中:Pattern将正则表达字符串编译封装,然后调用matcher函数返回一个存放了结果的Matcher匹配器,Matcher里面有很多的方法,根据要求的不同可以 阅读全文
posted @ 2012-03-22 22:28 ruidge 阅读(592) 评论(0) 推荐(0) 编辑
摘要: 我们往往在main中直接调用System.out.print方法来打印,但是其实就这简单的一步里面有很多的玄机,因为main是static的,所以只能调用static的函数,那么print是static的吗?我一直有这个疑问,今天专门查阅了下源码,说下我的理解:(源码只贴出来部分对理解有用的)源码里面:public final class System 直接在lang包里面。所以可以直接不通过包名就直接调用system类。里面还有:public final static PrintStream out = nullPrintStream();........................pr 阅读全文
posted @ 2012-03-22 17:07 ruidge 阅读(6329) 评论(1) 推荐(4) 编辑