单例 多例

来源:互联网 发布:电动车定位软件多少钱 编辑:程序博客网 时间:2024/06/05 00:49
 
单例
每一次请求同一个变量--内存地址是同一个
spring 默认是单例的 可以配置scope="prototype"改成多例
优点:不用每次都开辟新的内存空间
 
缺点:当遇到并发请求的时候,值会冲突 混乱 覆盖,报错(全局变量)
 
多例
 
每一次请求都是一个新的变量 --新的内存地址影响:当遇到并发请求的时候,值不会出现冲突,覆盖等问题struts2默认多例优点:当遇到并发请求的时候,值不会冲突 混乱
 
缺点:虽然每次请求开辟新的空间,=但对应会消耗一定内存模拟单例
 
ssh框架中,可以把action设成单例模式,然后使用增加功能,第一次增加在保存数据库之前打断点(不要继续调用保存,可以输出对象的内存地址看看)
 
然后增加第二条数据也会定位到断点(也不进行继续保存,在输出内存对象地址看看,会发现和第一次请求一样)两次请求,变量的内存地址一样,这就是单例模式
 
影响:走完断点,保存到数据库的两条数据,都是第二次填写的数据!!!!
模拟多例
 
与单例一样的操作,不过你会发现,两次变量的内存地址是不一样的即便定位断点,那么数据库的值也是正确的 这就是多以
 
 
 
 
hibernate 和 jdbc区别是什么?
 
持久层框架作用?
 
把数据持久化到数据库区别:
 
hibernate 全自动 开发效率高执行效率低 jdbc 全手动 开发效率地执行效率高
 
实现同一个查询功能 jdbc 实现查询:加载驱动--获得链接--编译sql--执行返回结果集---循环封装List ---关闭链接
 
过程较多 代码繁琐执行:
 
直接执行sql 不需要任何转换hibernate实现查询: 相关配置文件完成后--》 定义 查询hql 执行返回list
 
过程简单 代码简洁执行:
 
hql最终转换成sql去执行执行完之后 自动封装成对应的实体类同样的功能 jdbc 过程较多 代码繁琐
 
hibernate 过程简单 代码简洁结论,hibernate 开发效率高 jdbc 开发效率低 jdbc : 直接执行sql 不需要任何转换 hibernate : 转sql 封装数据
结论:hibernate 执行效率低 jdbc 执行效率高
 
jdk jre 区别
jdk(通过bin下的 javac 和 java命令)
 
能编译java文件能运行class
 
jre(通过bin下的java命令)只能运行class
 
不能编译java jdk包含jre
保存的时候 编译成class ctrl+s
浏览器请求 是定位的哪里的class?tomcat


main请求 定位项目里的class文件
0 0