1)static关键字
static可以修饰:属性、方法、代码块
			
			静态方法不能访问非静态  属性 或 方法
			
			属性(变量):
							成员变量:
									静态变量: 通过  类名.静态变量来访问
														通过 对象名.静态变量来访问(是有警告的)
														存在于方法区中,有且仅有一份
									非静态变量
							局部变量
	代码块
			代码块的执行顺序
			
					1、静态代码块:哪个静态代码块放在前边,就先执行谁
					2、普通代码块:哪个普通代码块放在前边,就先执行谁
			 		3、构造方法
			
			如果有两个类,一个类是Father,另一个类是Child , Child 继承了 Father ,
				这两个类中都有  构造方法,普通代码块、静态代码块
				那么当 new Child() 的时候,执行顺序是什么?
			
			代码块执行顺序:父类static(同级别与出现顺序有关)--->子类static--->父类普通-->父类构造--->子类普通-->子类构造
			代码块的作用:
					 		
可以对 属性 进行一个初始化的操作
					 		
		我们在一个类中可以写什么呢?
				
				目前为止:
						1、属性:静态属性 和  实例属性
						2、方法:静态方法 和 实例方法
						3、构造方法: 与类名相同的  ,没有返回的 公开的 方法
						4、代码块:静态代码块  和 非静态代码块(普通代码块)
									静态代码块 可以为 静态属性 进行 初始化操作
									普通代码块 可以为 实例属性 进行初始化操作
		
	2)
final
		表示最终的,不可修改的,经常用于修饰类、方法、变量
	
final 修饰的类,不可以被继承
	 final 修饰的方法,不能被重写
	 final 修饰的变量 ,不能被更改		
	 		建议:用final 修饰的变量 全部大写
3)
toString() :
			本来在Object中的形式:
				getClass().getName() + "@" + Integer.toHexString(hashCode());
				得到对应的类,从而得到对应的类型,然后 通过计算 hashCode 的 十六进制 数 拼接而成的字符串
				
			重写之后的形式:
					String s = "[" + this.studentName + "," +this.sutdentNumber + " , " + this.gender + " , " + this.age + "]" ;
				理论上说,可以写任何形式的toString形式,但是,建议使用 属性来写toString
				
				
			作用:
					为了查看到 对象中的 具体的属性 的 值 
				
	4)
	equals() : 
			在Object 类中 equals 是这么写的:
					  public boolean equals(Object obj) {
       						 return (this == obj); // 底层还是用 == 比较,比较的还是地址 
  					  }
		
		我们判断两个对象是否"相等"
			可能在某种情况下( 在某种条件下 )  我们认为是相等的
			针对于学生来说:
						学号、姓名、年龄、性别都相等,那么我就认为他们是相等的 
		
		官方建议: 重写 hashCode()  
				如果说 不重写 hashCode() , 会默认调用 Object 的hashCode()方法,但是 不一定能保证 维护 hashCode 方法的常规协定
		5)
	hashCode() : 
			hashCode 是 一种 特殊的 数组 通过 一系列的公式来算 hashCode
			
	元素   	11   22   33   44   55  
	下标		 0    1      2     3     4    
			(下标+ 1 ) × 11 
			
			如果重写了 equals 必须重写 hashCode 方法
			保证 维护 hashCode 方法的常规协定(三条)
		
		
		
		
		
			 		
			
static,final关键字,Object类的tostring方法,equals方法,hashCode方法
原文:http://www.cnblogs.com/nje19951205/p/6523462.html