Object类
JAVA中有一个类,是所有类的父类,每个类都直接或间接的继承自该类,这个类就是Object类,也叫做超类、根类、或者基类。当我们新建一个类的时候,没有使用extends关键字的时候。就会默认继承object类。
Object类中自定义了一些方法,当我们新建一个类可以重写进行使用这些方法。下面我总结了一些比较常用的几个方法。

1.boolean equals(Object obj) //判断某个对象与此对象是否像相等。
2.final Class<?>getClass(); //返回Object的运行时类
3.int hasCode(); //返回该对象的哈希码值;
4.String toString();//返回该对象的字符串表示
5.void finalize(); //垃圾回收器调用此方法来清理没有任何引用变量所引起的对象的资源。
6.getClass().getName(); //代表返回对象所属类的类名,即包名+类名的全限定名称。
getClass().getsimpelName(); //只返回类名,不返回包名。
7.Integer.toHexString(hashCode()); //代表将对象的哈希值用十六进制表示。
8. instanceof运算符。 //判断obj是否属于右边类所创建对象,instanceof是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回值为boolean类型。

JAVA的foreach循环
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。
foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for 每一个”的意思。
快捷键——iter
格式:
foreach的语句格式:
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}
用二维数组举例;

int[][] data = new int[10][5];
for (int i = 0; i < data.length; i++) {
    for (int j = 0; j < data[0].length; j++) {
        data[i][j] = i * j;
    }
}
for (int[] data1 : data) {
    for (int data2 : data1)
        System.out.printf("%d\t", data2);
    System.out.println();   
}

for each 循环中的冒号前面的那个变量暂存集合中的每一个元素,所以第一个for each 循环声明了一个一维数组的变量data1, 用于暂存二维数组中的每一个一维数组(二维数组是由若干个一维数组做成的,一维数组的个数取决于二维数组的行数), 第二个for each循环定义了整型变量data2来暂存第一个for each 循环中声明的一维数组中的元素。最后将一维数组中的元素打印输出,如此循环,将二维数组中的所有元素打印输出。