1. equals方法定义在object类中,其他的类都会继承。
object的equals返回值this==object,所以object的equals方法是比较两个引用是否同一个对象,同一地址。Object的equals方法等价于”==”方法。
String的equals方法override了object的equals方法,它比较的是两引用指向的对象内容是否一致。String中比较两对象使用equals,不使用”==”.
2.toString()方法定义在object中,java文档中建议子类重写toString()方法。System.out.println(对象引用),实际上是调用该对象的toString()返回getClass().getName()+@+Integer.toHexString(hashcode());当String类型对象引用调用toString(),就会打印出字符串内容。因为String类重写了object类的toString()方法。
3.java.lang包无需显式的导入,编译器会自动导入。
4.public class StringTest{
Public static void main(string[] args){
String s1 = “helloworld”;
String s2 = “hello”;
String s3= “world”;
System.out.println(s1=s2+s3);
System.out.println(s1= “hello”+”world”);
第一个打印出来是false,第二个打印出来是true。
5.访问修饰符:
Public:被public修饰的属性和方法能被所有类所访问。
Private:被private修饰的属性和方法只能被本类所访问。
Protect:被protect修饰的属性和方法能在类内部,相同包内,及子类所访问。
默认修饰符:只能在类内部和相同包内访问
6.instanceof: 语法形式:引用名instanceof(类名或接口名),表示引用所指向的对象是否为某个类的一个实例对象。返回值是boolean类型。
public class InstanceOfTest{
public static void main(String[] args){
People p = new Woman();
System.out.println(p instanceof(People));
}
Public class People{
}
Public class Woman extends People{
}
打印为true。这是因为多态原理,引用P指向子类Woman对象,子类就是父类,所以p instanceof(People)返回true。
7.包:定义包使用关键字package 包名。包就相当与硬盘中的一个目录,其作用是将具有不同功能的类分门别类。包名一律用小写,如:package com.shenzhen.xili;如果没使用package关键字,java就使用默认包(default package)。
8.不同包之间的类的相互调用,使用import关键字。同包下的类,直接调用就可以,不需要使用import.
9.编译带有package声明的java源文件的两种方式:
1)手工方式,在硬盘目录中直接手工创建包对应的目录结构,最终class文件放在这目录下(比较麻烦)。
2)使用编译器自动生成:使用编译参数-d,方式为javac-d . 源文件.java.这样就编译器会自动帮我们生成包对应的目录结构。
10.子包的概念:aa.bb.cc是aa.bb的子包。
11.通配符:假如一个包下面有很多类在另一个类中要用到,就不要一个一个类导入,直接使用.*通配符导入,如com.shenzhen.*;
12.当使用通配符导入时,不会将子包中的类都导入,要想将子包中的类导入,必须得再重新导入一次,如:import aa.bb.cc.*; import aa.bb.cc.dd.*;