`
leehus
  • 浏览: 6796 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
接口就是抽象,定义了组装的规则 就像个220v三头电源一样,不管连接的是电视、电脑、微波炉,只要插头符合组装的规则,就能通电。 有一种接口,没有定义任何的方法,只是为了标识一组对象的类型; like: public interface Serializable{} 抽象类应该具有最多的公用代码,最少的数据。 继承原则:has-a or is-a?
1、开闭     对扩展开放,对修改关闭;     面对抽象编程,用继承来扩展,去实现变化。 2、里氏替换     儿子随时随地可以顶替父亲。 3、依赖倒转     有事找中介,谁也别依赖谁,都依赖抽象。 4、尽量用合成或聚合,少继承。 5、迪米特     少交朋友。

对象关系

继承(空三角) 聚合:属性,不负责初始化,拥有其引用(空心菱形) 合成:属性,负责生产和销毁,拥有其值(实心菱形) 依赖:方法中的形参(虚线箭头)
定义了一系列的应用在集合上的静态算法。 1、checked系列:    返回类型安全试图; 2、synchronized系列:     为被包装集合提供同步,但是由于集合的迭代器是即时失效的,所以在进行迭代的时候还需要手工同步。 3、unmodifiable和empty系列:     返回不可改变的集合或空集合,当将数据传递给第三方时,并且不希望数据被污染的时候尤其有用。

接口与实现

    博客分类:
  • java
接口:定义程序中的游戏规则! 实现:对游戏规则的不同理解!
主要接口:     1、Collection,层次中的根接口;     2、List,一组序列,索引从零开始,允许重复;     3、Queue,单向队列;     4、Deque,双向队列;     5、Set,不允许有相同元素的组;     6、SortedSet,排序的Set,默认为升序。     7、Map,键值对;     8、Map.Entry,一个键值对,此为Map中的内部类, 使用集合的时候, 首先考虑那一种结构的接口使用, 再考虑是否需要线程安全, 然后根据性能、数据访问方式等其他因素选择相应的实现类,或者自己实现一个。
Runtime:     运行时环境,其中exec方法用于执行其他程序 Runtime r = Runtime.getRuntime(); Process p =null; try{ p=r.exec("notepad"); p.waitFor(); }catch(Exception e){ System.out.println(e.getMessage()); } Process:进程类,由Runtime.exec()或ProcessBuilder.start()创建; ProcessBuilder:     管理创建的 ...
String:     不可变对象,提供强大的分析功能(查找、匹配、替换、提取、大小写、编码、split等等)     String+Object是通过String.valueOf(Object)将对象转换为String后进行连接的; StringBuffer与StringBuilder     可变长度,可写的字符序列;     StringBuffer为线程安全的; 总结:     jvm在执行String+Object会在后台自动转换为StringBuffer进行连接,如果不是频繁的在字符序中间插入或删除的话,String完全可以应付。     如果频繁的链接字符串,或在字符串中间插入删 ...
Global site tag (gtag.js) - Google Analytics