在java中有一个设计的原则"一切皆对象",java中的基本数据类型就完全不符合这种设计思想,因为八种基本数据类型并不是引用数据类型,所以java中为了解决这样的问题,jdk1.5以后引入了八种基本数据类型的包装类。
八种包装类分为两大类型:
Number:Integer、Short、Long、Double、Float、Byte都是Number的子类表示一个数字。
Object:Character、Boolean都是Object的直接子类。
1 public class Test5 { 2 3 /** 4 * @param args 5 */ 6 public static void main(String[] args) { 7 // TODO Auto-generated method stub 8 int num=10; 9 Integer num2=10;//自动装箱,新创建一个new对象 10 int num3=1+num2;//自动拆箱 11 //手动拆箱,调用intValue方法 12 num2.intValue(); 13 } 14 15 }
转型操作
在包装类中,可以将一个字符串变为指定的基本数据类型,一般在输入数据时使用较多。
在Integer类中将String变为int型数据:public static int parseInt(Strings)
在Float类中将String变为float型数据:public static float parseFloat(Strings)
注意:转型操作时,字符串必须由数字组成,否则会出现错误
享元模式:它使用共享对象,用来尽可能减少内存使用量以及分享资讯给尽可能多的的相似对象;
它适合用于大量对象只是重复因而导致无法令人接收的使用大量内存。通常对象中的部分状态是可以分享。
常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。
运用共享技术有效的支持大量细粒度的对象
1 public class Test5 { 2 3 /** 4 * @param args 5 */ 6 public static void main(String[] args) { 7 // TODO Auto-generated method stub 8 //转型操作 9 String s="200"; 10 Integer.parseInt(s); 11 12 //把一个字节内的整数缓存在整数常量池中,这样可以避免不断创建细粒度的对象,造成对内存的消耗 13 Integer a=12; 14 Integer b=12; 15 System.out.println(a==b); 16 } 17 18 }
oo原则:
1.开闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
2.合成/聚合复用原则:新对象的某些功能在已创建好的对象里已实现,那么尽量用已有对象提供的功能,使之成为新对象的一部分,而不要再重新创建
3.依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象
4.接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上
5.迪米特法则:一个对象应该对其他对象保持最少的了解
6.里氏替换原则:所有引用基类的地方必须能透明的使用其子类的对象
7.单一职责原则:不要存在多于一个导致类变更的原因,即一个类只负责一项职责