Object类
所有类的父类,祖类(方法类,通过继承然后重写来使用里面的方法)
getClass
反射的时候用
equals
1.==
双等号用来比较基本数据类型,比较的是值
比较引用类型的时候比较的是地址
2.equals用来比较两个对象
没有重写,用来比较两个对象的内存地址
重写可以有自己的方式,比较里面两个对象的其它内容,还可以加上对象的实例和instend of
equals重写
hashCode
获取hash值,hash值是将目标放在hash值的位置上
比如对4取除得到1那就放到1的位置,得到一个位置而已
interger,转化用的
直接打印的地址是打印的路径和@哈希值的十六进制,@前面的是虚拟的,
同一个对象调用hashCode得到的hash值一样
不同对象可以能一样,因为对象太多放不下,值就一样了
这时候用equals比较或者重写hashCode
new的时候先调用hashCode得到值,在生成十六进制地址,打印的地址
toString
打印自己的对象地址,调用了object的toString方法,打印了虚拟地址,可以重写一下,返回了用户想要的不是object的拼接的内存地址。
不重写equals就比较
因为String重写了equals,所有不同的String可以直接比字符里面的东西
常量池
finalize
垃圾自动回收
没有地址的对象是垃圾,是s1=null
system.gc,建议垃圾回收,系统自动回收回收垃圾的时候会自己偷偷调用finalize回收垃圾,自己手动调用没有意义,多次建议后就会让系统执行垃圾回收,然后就会产生垃圾回收,然后就会调用那个方法。
hash
初衷是分配唯一的hash值
异常大。权限小。向上向下取类型的时候
为什么map要复写hashCode还有equals
小概率相同
Spring春天框架
Aop面想切面(横向),吃东西就打印日志?来记录一下? ioc,控制反转
oop面向对象(纵向)
包括SpringMvc?
SSM mybasic持久层框架ssm
Springbout是个结合体
SpringClond分布式和微服务
类和类的关系
纵向:继承和实现
横向:依赖和关联
依赖就是方法内有一个局部变量,是类,
关联,就是一个类的成员变量或者静态变量是对一个类的对象引用
聚合,关联的一个特例
组合,也是一个特例
每个人有自己的声明周期
集合元素是另一个对象的引用
组合是整体结束周期,所有的结束
内部类
成员内部类可以直接调用外部的成员,所有的不论是成员还静态变量 ,常量,还有私有
静态内部类
成员内部类
可以有成员变量不能声明静态变量,可以有构造方法和成员方法,但不能有静态方法
常量可以,静态常量可以,但是方法内不能声明静态常量,,方法成员和静态都可以用,
静态内部类可以声明静态成员
静态内部类不能使用外部类的成员变量,需要创建外部类对象再调用
成员方法也是。
局部内部类
1.静态方法里面写
局部变量肯定不能写,修饰符,
局部内部类的成员方法不能使用外部类的成员方法
2.外部是成员fan
成员方法中,可以拿到对象