==: 对于基本数据类型:比较的是值
对于引用类型的变量:比较的是内存地址
equals方法:equals方法的底层使用==来写的
对于基本数据类型:无法比较
没有重写equals方法的比较的内存地址
重写过equals方法的(String Date)比较的是对象的内容
Spring的核心机制IOC和AOP
ioc控制反转(依赖注入):(对象,ioc容器,对象的外部资源)
ioc容器用来控制程序对象之间的关系
依赖注入的思想:通过
反射机制实现的
依赖ioc容器来提供对象需要的外部资源
ioc注入对象,注入对象需要的外部资源
ioc容器控制对象主要是控制对象实例的创建
正常情况:A要使用C的对象,需要A去主动获取C的对象
控制反转:A要使用C的对象,等待ioc容器去获取一个C的实例,然后注入到A类中(反转到容器中)
ioc的三种实现机制:setter方法注入,构造方法注入,接口注入
ioc的优点:降低了组件之间的耦合,降低了业务对象那个之间的替换的复杂性,能够灵活的管理对象
aop面向切面编程,是基于ioc的,
Spring实现aop:JDK动态代理,CGLIB代理
aop的使用场景:权限检查,缓存,内容传递,日子记录,性能优化,持久化,事务管理
Filter的实现和struts2的拦截器的实现都是aop思想的体现
forword和redirect的区别
forward:
1.服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址
2.转发页面和转发到的页面可以共享request里面的数据
3.一般用于用户登录的时候,根据角色转发到相应的模块
4.效率高
redirect:
1.服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的URL,
2.数据不能共享,可以访问自己web应用以外的资源,在重定向的过程中,传输的信息会被丢失
3.一般用于用户注销登录时返回主页面和跳转到其他的网站
4.效率低
对于引用类型的变量:比较的是内存地址
equals方法:equals方法的底层使用==来写的
对于基本数据类型:无法比较
没有重写equals方法的比较的内存地址
重写过equals方法的(String Date)比较的是对象的内容
Spring的核心机制IOC和AOP
ioc控制反转(依赖注入):(对象,ioc容器,对象的外部资源)
ioc容器用来控制程序对象之间的关系
依赖注入的思想:通过
反射机制实现的
依赖ioc容器来提供对象需要的外部资源
ioc注入对象,注入对象需要的外部资源
ioc容器控制对象主要是控制对象实例的创建
正常情况:A要使用C的对象,需要A去主动获取C的对象
控制反转:A要使用C的对象,等待ioc容器去获取一个C的实例,然后注入到A类中(反转到容器中)
ioc的三种实现机制:setter方法注入,构造方法注入,接口注入
ioc的优点:降低了组件之间的耦合,降低了业务对象那个之间的替换的复杂性,能够灵活的管理对象
aop面向切面编程,是基于ioc的,
Spring实现aop:JDK动态代理,CGLIB代理
aop的使用场景:权限检查,缓存,内容传递,日子记录,性能优化,持久化,事务管理
Filter的实现和struts2的拦截器的实现都是aop思想的体现
forword和redirect的区别
forward:
1.服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址
2.转发页面和转发到的页面可以共享request里面的数据
3.一般用于用户登录的时候,根据角色转发到相应的模块
4.效率高
redirect:
1.服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的URL,
2.数据不能共享,可以访问自己web应用以外的资源,在重定向的过程中,传输的信息会被丢失
3.一般用于用户注销登录时返回主页面和跳转到其他的网站
4.效率低