廊坊营销网站团队,佛山市创意动力信息科技有限公司,重庆装修公司口碑最好的是哪家,移动终端网站开发一般的类和方法#xff0c;只能使用具体的类型#xff1a;要么是基本类型#xff0c;要么是自定义的类。如果要编写可以应用于多种类型的代码#xff0c;这种刻板的限制对代码的束缚就会很大。----《java Generics FAQ》 多态算是一种泛化机制。例如#xff0c;将方法的参…一般的类和方法只能使用具体的类型要么是基本类型要么是自定义的类。如果要编写可以应用于多种类型的代码这种刻板的限制对代码的束缚就会很大。----《java Generics FAQ》 多态算是一种泛化机制。例如将方法的参数类型设为基类那么该方法就可以接受从这个基类中导出的任何类作为参数。 泛型——java SE5实现了参数化类型的概念使代码可以应用于多种类型。 容器类——促成泛型出现的原因。 java SE5之前 public class Holder2{ private Object a; public Hodler2(Object a){ this.aa; } public void set(Object a){ this.aa; } public Object get(){ return a; } } Hodler2可以存储任何类型的数据但是一个Hodler2对象却可以存储多种不同类型的数据。而通常我们只会使用容器来存储一种类型的数据。 泛型的目的之一就是用来指定容器要持有什么类型的数据而且由编译器来保证类型的正确性。 java SE5之后 public class Hodler3T{ public T a; public Hodler3(T a){ this.aa; } public void set(T a){ this.aa; } public T get(){ return a; } } 将需要使用的类型参数用尖括号括起放在类名后面。 1、元组类库 仅一次方法调用就能返回多个对象的决解方法——创建一个对象用它来持有想要返回的多个对象。 元组——将一组对象直接打包存储于其中的一个单一对象。这个容器对象允许读取其中元素但是不允许向其中存放新的对象。 2维元组 public class TwoTupleA,B{ public final A first; public final B second; public TwoTuple(A a,B b){ firsta; secondb; } public String toString(){ return (first,second); } } 如果使用具有不同元素的元组就强制要求他们另外创建一个新的TwoTuple对象。 使用继承机制实现长度更长的元组 public class ThreeTupleA,B,C extends TwoTupleA,B{ public final C third; public ThreeTuple(A a,B b,C c){ super(a,b); thirdc; } ... } 使用元组 static TwoTupleString,Integer f(){ return new TwoTupleString,Integer(hi,47); } 2、一个堆栈类 public class LinkedStackT{ private static class NodeU{ U item; NodeU next; Node(){ itemnull nextnull } Node(U item,NodeU next){ this.itemitem; this.nextnext; } boolean end(){ //末端哨兵 return itemnullnextnull; } } private NodeT topnew NodeT(); public void push(T item){ topnew NodeT(item,top); } public T pop(){ T resulttop.item; if(!top.end()) toptop.next; return result; } } 3、RandomList——每次调用select方法时他可以随机地选取一个元素 public class RandomListT{ private ArrayListTstoragenew ArrayListT(); private Random randnew Random(47); public void add(T item){ storage.add(item); } public T select(){ return storage.get(rand.nextInt(storage.size())); } } ------------------------------------------------------------fromhttp://lavasoft.blog.51cto.com/62575/18771/----------------------------------------------------------------------------------- 附java中final的作用—— 1、final修饰类—— final类不能被继承因此final类的成员方法没有机会被覆盖默认都是final的。 2、final方法—— 如果一个类不允许其子类覆盖某个方法则可以把这个方法声明为final方法。 final方法的使用原因 把方法锁定防止任何继承类修改它的意义和实现。 高效。编译器遇到调用final方法时候会转入内嵌机制大大提高执行效率。 3、final变量—— 用final修饰的成员变量表示常量值一旦给定就无法改变。 4、final参数—— 当函数的参数为final时可以读取不可修改。 注意final类不能用于修饰构造方法。 父类private成员方法是不能被子类方法覆盖的因此private类型的方法默认都是final类的。 java中static的作用—— 1、static变量 被static修饰的变量称为静态变量或类变量。没被static修饰的变量称为实例变量。两者区别 静态变量在内存中只有一个拷贝节省内存JVM只为静态变量分配一次内存在加载类的过程中完成静态变量的内存分配。可用类名直接访问也可通过对象访问不推荐。 对于实例变量每创建一个实例就会为示例分配一次内存实例变量在内存中有多个拷贝互不影响。 2、静态方法 静态方法可以通过类名调用任何实例也可以调用因此静态方法中不能用this和super关键字。不能直接访问所属类的实例变量和实例方法只能访问所属类的成员变量和成员方法。 因为static方法独立于任何实例因此static方法必须被实现不能时abstract。 3、静态代码块 static代码块也叫静态代码块不在任何的方法体内JVM加载类时会执行这些代码块如果静态代码块有多个JVM将会按照它们在类中出现的顺序依次执行每个代码块只会被执行一次。 注意static变量之前加private修饰表示这个变量不能在其他类中通过类名直接引用。 4、finalstatic——“全局变量” 对于变量表示一旦给值就不能修改并且通过类名来访问。 对于方法表示不可覆盖并且可以通过类名来访问。 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------转载于:https://www.cnblogs.com/Wan-notes/p/6795308.html