Object:代表所有的根类,任何类都继承自Object类 public int hashCode()返回该对象的哈希码值(和集合hashtable :哈希表) 每一个对象的哈希码值都不一样, 哈希码值不是实际意义上的地址值,可以理解为地址值

public final Class<?> getClass()返回此 Object 的运行时类。 (Java原理:运行的xx.class文件:字节码文件)

			Class:表示的字节码文件对象--->通过字节码文件对象使用反射的方式去加载当前字节码文件中的成员变量/成员方法/构造方法
		返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象 

在Class类:
			public String getName() :以 String 的形式返回此 Class 对象所表示的实体(接口,类,数组...)名称

public String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。 结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

类中有成员变量:
	toString()的目的就是为了显示当前类的成员变量;

Integer类中: public static String toHexString(int i)返回一个整数参数的字符串表示形式。 内部类: 在一个类中,在定义另一个类 举例: 在类B中定义类A,类A就是类B的内部类

	特点:
		内部类他都可以去访问外部类的成员,包括私有
		外部类的成员访问内部类的成员?  需要创建内部类对象,由内部类对象访问内部的成员

内部类分类: 1)成员内部类 位置:在外部类的成员位置 2)局部内部类: 位置:在方法中定义的类 需求:外部类如何访问成员内部类的成员方法? 成员内部类(非静态的)的访问特点

通过类Oueter3访问类Inner3里面的show方法 外部类名.内部类名 对象名 = 外部类对象.内部类对象 ; 定义外部类 成员内部类的修饰符: 被private修饰,为了保证数据的安全性. static修饰: 称为静态成员内部类 ,只是为了方便调用

举例: 人(人有身体,身体内心脏) 外部类 class Body{ 成员内部类 private class Heart{ public void operator(){ System.out.println("心脏搭桥手术...) ; } }

		//外部类的成员方法
		public void method(){
			if("假如你是外科医生.."){
				Heart heart = new Heart() ;
				heart.operator() ;
			}
		}
	}

外部类访问成员内部类的成员方法? 外部类名.内部类名 对象名 = 外部类对象.内部类对象; Body.Heart bh = new Body().new Heart() ; bh.operator() ; private修饰类成员内部类,不能直接访问? 怎么玩? 解决方案: Body b = new Body() ; b.method() ; 局部内部类: 局部内部类里面的成员方法直接可以访问外部类的成员,包括私有
匿名内部类 :它是内部类的简化版

前提:存在一个类或者接口(接口用多) 类:可以具体类/抽象类 格式: new 类名/接口名(){ 重写/实现一些方法().. } ; equals(Object obj):某个对象是否与此对象“相等”。
基本数据类型:比较的他们的具体值是否相同 引用数据类型:比较的是地址值是否相等 ==:(引用类型)比较的是地址值是否相等 Object中的clone()方法 protected(保证数据的安全性) Object clone()throws CloneNotSupportedException

	创建并返回此对象的一个副本

注意: Object 类的 clone 方法执行特定的复制操作。 首先,如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。 Scanner类: 表示简单文本扫描器

1)创建Scanner类对象

Scanner的构造方法: public Scanner(InputStream source) InputStream is = System.in; //类似于抽象类多态 导包方式:import java.util.Scanner; Scanner sc = new Scanenr(System.in);

	System.in	:标准"输入流"			
			--->public static final InputStream in静态字段:返回值InputStream:字节输入流(录入数据)
	System.out  :		
				public static final PrintStsram out:返回值PrintStream:字节打印流:调用println():实现行的分隔符

录入一个int类型的数据或者是录入String数据

Scanner类中常用的两个方法: nextXXX() :录入下一个XXX数据类型的数据 public boolean hasNextXXX():判断录入的数据下一个是否是XXX这类型的数据 录入int类型的和String类型的先后顺序的问题 发现一个问题: 先录入int类型数据,在录入String类型数据,String类型的数据直接略过了 原因:录入int类型数据之后,下个标记String:回车符号,它本身字符串录入了,直接略过了! 解决方案: 在录入String数据之前,在重新创建一个Scanner对象 String:特殊的引用类型 字符串是常量;它们的值在创建之后不能更改。(常量是在方法区中:字符串常量池 :前提:将字符串常量直接赋值的形式 )

					举例:
						String str = "abc" ;		==>String str = new String("abc")
构造方法:
	String() :空参构造
	String(byte[] bytes):将字节数组-->String 数据 
	String(byte[] bytes, int offset, int length):将字节数组的一部分转换字符串
	String(char[] value) :将字符数组转换成字符串
	String(char[] value, int offset, int length):将字符数组的一部分转换字符串 
	public String(String original)	:创建一个字符串对象:传递字符串常量 
常用的成员方法:
		public int length():获取字符串长度
	笔试题	
		数组中有没有length(),字符串中有没有length(),集合中有没有length()?
		数组length属性,字符串中有,集合没有-->size()方法

字符串是常量一旦被赋值,就不能被改变. String类常见的功能 public boolean equals(Object anObject) :比较字符串的内容是否相同 public boolean equalsIgnoreCase(String anotherString):比较内容是否相同,忽略大小写 public boolean contains(String s):判断大字符串中是否包含一个子字符串 public boolean startsWith(String prefix):判断字符串是以...开头 public boolean endsWith(String suffix):判断字符串是以...结尾 public boolean isEmpty() :判断字符串是否为 两个区别: 前者:表示当前s对象是一个空内容 后者:表示空对象 String s ="" ; String s = null