static,final。
(1)final:
final:属于“终态”,意思就是不可以改变。可以修饰非抽象类,非抽象类的方法等。反正就是不能够再改变赋值了。
注意:1)fina类不能被继承,所以它没有子类。
2)final不能用于修饰构造方法。
3)final方法可以继承,但是不能够被覆盖
4)final一旦赋值,便不能更改
5)final容器,比如list,容器不能够改变,但是容器里面的内容是可以变化的。
(2)static:
static:表示“静态”,“全局”,可用来修饰变量,方法还可以用来形成static代码块。
被static修饰的的成员或者成员方法是独立于类的,它不依赖于某个实例,是被所有实例所共享的,也就是说,只要这个类被加载,JVM就能根据方法名去运行内存区去寻找它们。
不需要事先创建实例,
就这样认为吧,static修饰后的变量,在内存中只有一份拷贝,所有实例都共享这份拷贝,但是如果是实例变量,那么每次创建一个实例便会多创建一份数据。
static 代码块:
static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次
private static final String GOOD = "G"; 表示的是说“G”这个字符串在程序中我们可以使用GOOD替换。
泛型:
泛型是避免重复的装箱和拆箱 比如集合List<Strunt> studentList=new ArrayList<Student>();
可以直接往集合里添Student对象
studentList.add(student1);
studentList.add(student2);
...
如果是这样List studentList=new ArrayList();
studentList.add(student1);
studentList.add(student2);
那么想要遍历集合就得
for(Object o:studentList){
Student oo=(Student)o;//这里需要类型转换
}
而上面第一个可以直接
for(Student o:StudentList){
o就代表每一个学生的实体了 不需要类型转换便可得到
原文:http://www.cnblogs.com/GuoJiaSheng/p/3867963.html