简单工厂模式:
采用工厂的思维,其实就是利用工厂对象来创建需要的对象,首先,工厂对象要采用单例模式,即私有化其构造方法,在工厂内部创建工厂对象并将其私有,再在工厂类里编写获得工厂对象的静态方法(一般命名为getInstance),当外部程序需要获得工厂对象时,直接用工厂类名.getInstance()即可获得工厂对象
为什么要建立工厂:为了方便创建对象,即一个工厂可以创建多个同一类型的对象。要实现此种效果,就得抽取这些对象的共同属性和方法建立抽象父类,在工厂类中利用多态,即父类引用指向子类对象,就可以用一个标识符表示多种对象,扩展性好。
怎么选择生产何种对象:在工厂类中建立对象清单,即一些常量表示不同的对象,将其作为工厂类生产对象方法的参数。控制工厂对对象的生产。
模板模式:
当某一类对象需要流水线式调用方法时,比如汽车类,有方法:开门,关门,发动,行驶,停车这几个方法,每次使用时都是以开门,关门,发动,行驶,停车,开门,关门这样的方法组合,这种情况下,就可以考虑使用模板模式,将这种方法的组合作为一种模板存在一个方法之中,只要汽车类对象调用该方法,就可实现模板化的这些操作,而这个存放模板的方法,最好是写在他们的父类中,而因为子类各自方法实现不同,所以将父类写成抽象类。
实现过程:
首先,有一个抽象类,里面有多个抽象方法或者普通方法,专门建立一个方法,里面存放指定的方法执行顺序,子类对象建立后,调用此方法,就可让自身的方法按照此顺序执行,所以,执行的方法都是子类重写后的方法。
包装类:
Java是面向对象的,而8个基本数据类型都不能创建对象,打破了一切都是对象的这种优点,所以java为每个基本数据类型都编写了一个包装类。除了char对应character,int对应Integer之外,其他基本数据类型的包装类名就是基本数据类型名首字母大写
装箱:
将基本数据类型转换为包装类,
如:Integer integer1 = Integer.valueOf(100);
Jdk1.5之后,支持自动装箱,很方便直接Integer i = 100;
拆箱:
将包装类转为基本数据类型
如:int i = integer1.intValue();
自动拆箱:int i = integer1;
一般自动装拆箱即可
String类:
String的值存在常量池中,是一个不可变的量,关于String对象的指引比较,要特别注意它们各自指向的是不同的对象,还是同一个常量池内的数据。最好用equals吧。
String类中的方法:
大概包括以下几类:
拼接:concat(str),将其加入到末尾,
截取:substring(),放入一个参数,截取到末尾。放两个参数,截取这个区间
替换:replace(str1,str2)将字符串中的str1换成str2。
查询:查询指定字符,字符串在某字符串中第一次或者最后一次出现的位子(下标)。
可变长字符串:
StringBuilder和StringBuffer
线程不安全 线程安全
效率高 效率较低
单线程中使用 多线程中使用
其方法有:在末尾追加,指定下标插入,替换指定下标的字符,翻转字符,删除指定字符或者删除某个下标区间的字符,以及将一段字符串替换成另一段字符串。
日期类:
Date:new 一个date并直接打印该对象就可获得当前时间,不过格式不好看,要想改变其格式就得new一个格式化日期类的对象,在其有参构造方法中加入你想要的格式,再用其.format(date)方法表示对该date对象的日期表示方法格式重定义。(Date已经快被淘汰了)
Calender:日历类,通过Canlendr.getInstance()方法获得日历类对象,直接用它的get方法就可以获得年份,月份,及各种日历信息。