Java的数据类型
1.在基本数据类型中,除了boolean类型所占长度与平台有关外,其他数据类型长度都是与平台无关的。比如:int永远占4个字节(1 Byte=8 bit)
2.基本数据类型的默认值仅在作为类中属性时生效
在方法内部必须先对基本数据类型变量赋值后才能使用,否则编译不通过。
引用数据类型:
引用类型指向一个对象,不是原始值,指向对象的变量是引用变量
在java里面除去基本数据类型的其他类型都是引用类型,自己定义的class类都是引用类型,可以像基本类型一样使用。
引用类型常见的有:String、StringBuffer、ArrayList、HashSet、HashMap等。
equals()方法equal()
equals()方法的默认行为是比较引用,如果是自己写的类,应该重写equals()方法来比较对象的内容,大多数java类库都实现了比较对象内容的equals()方法。
tostring()方法的覆写
toString():取得对象信息,返回该对象的字符串表示
我们先看一个简单的例子:
输出:iqqcode.algorithm.bintree.Person@1ee12a7
在使用对象直接输出的时候,默认输出的是一个对象在堆内存上的地址值;如若要输出该对象的内容,则要覆写toString()方法
覆写Person中的toString()方法
名字为:Mr.Q 年龄为:20
toString( )的核心目的在于取得对象信息
String作为信息输出的重要数据类型,在Java中所有的数据类型只要遇见String就执行了**+**,都要求其变为字符串后连接,而所有对象想要变为字符串就默认用toString( )方法
例如:
System.out.println("hello" + 123);
>>> 输出:hello 123
为什么hello 和 123 (一个是字符串,一个是int类型的数据) 就可以直接拼接在一起呢?
因为字符串是爸爸,在这个拼爹的时代,他有一个万能的爸爸Object
换而言之,Object是所有类的父类,任意类都是继承Object类的。而Object中定义了 toString()方法,所以任意类中都包含了toString()方法,对象在实例化之后都可以调用。
所以任意对象转字符串的输出,是通过覆写 toString()方法实现的…
每一个类中都包含有toString(),但是并不是每一个类都覆写了toString()
在源码中,可以发现通过反射,获取到了当前对象的全限定类名和@十六进制哈希值字符串。这就是不覆写toString()时直接打印输出的内容。