java一点概况

Ssh中 struts2 (2.0)工作原理
hibernate 3.0 中的简介、原理,优点 缺点 缓存 延迟加载
spring 2.5 的核心 IOC AOP IOC通过反射机制实现
jQuery就是封装了AJAX
ajax的原理
数据库优化 1、sql 2、索引,优缺点、什么时候使用索引,什么时候不使用
程序代码优化

Struts2 的工作原理:
浏览器发送请求道服务器,服务器接收请求,经过一系列的过滤器,调用struts的核心程序 ,根据struts.xml的配置内容生成相应的action类,调用action对象的execute方法,action执行完毕后,根据返回的字符串,找到对应的result,调用jsp页面,将数据传给服务器,服务器将将数据发送给浏览器。
为什么要使用struts:
Jsp、servlet、javaBean技术的出现给我们构建强大的企业级应用系统提供了可能性。但是用这些构建的系统非常的繁乱,所以在此之上,我们需要出现一个把这些技术组织起来的规则,这就是框架,struts就此产生了。

Hibernate的简介:
Hibernate是一个开放源代码的ORM框架,它对JDBC做了轻量级的对象封装,使java程序员可以使用面向对象的思想来操作数据库。它不仅提供了java类到数据库表之间的映射,也提供了数据查询和恢复机制。相对JDBC和SQL手工操作数据库来说,hibernate大大减少了数据库的工作量。另外hibernate可以利用代理模式简化载入类的过程,这大大减少了HQL从数据库提取数据代码的编写量,从而节约开发时间和成本。
ORM是什么
对象关系映射。因为java编程是面向对象的,而我们存储数据使用的数据库是面向关系的,这就存在一个不匹配的过程。ORM框架就是面向对象的数据和面向关系的数据实现自动转化。
优点:
是一个优秀的ORM框架,让我们可以更加的以面向对象的方式编程,写一些逻辑的时候更加方便。
效率高。因为内部有一级缓存(session)默认开启、二级缓存(sessionFactory) 。
屏蔽了底层数据库的差异。
缺点:
多表查询效率低。(可以自己写原生查询sql语句提高效率)
数据量大的时候,效率低。
缓存:
一级缓存默认带有且不能卸载
二级缓存sessionFactory控制的进程缓存,是全局共享的缓存,凡是调用二级缓存的都会从中受益。二级缓存需要在配置文件中进行配置。
缓存的实现过程:
首先在一级缓存中查询所需的数据,没有在去二级缓存中查找,在没有的话去数据库中查找。三者效率依次降低。
一级缓存是实体缓存,是查询对象级别的时候采用,如果查询对象的属性是用不到一级缓存的。
延迟加载:
当hibernate查询数据的时候,数据并没有存在内存中,当程序真正对数据操作时,对象才存在内存中,就实现了延迟加载,节省了服务器的内存开销,从而提高了服务器的性能。
Load()和get()方法的区别。Load是首先在一级缓存中查找,如果开启二级缓存了,就是去二级缓存(SessionFactory)中查找,在没有就去数据库中查找。Get是直接查询数据库。如果get没有查到返回的事空指针异常,load则是返回ObjectNotFoundException异常。

 

 

Spring其核心是IOC和AOP
IOC是一个容器,通过java的反射机制实现,在以前没有使用spring框架的时候,我们对属性赋值是通过对象自己完成的,在使用了spring框架后,我们对属性的赋值是外部的spring通过反射机制调用对象的setter方法,构造器注入,实现接口的普通方法进行值值注入的。
AOP是面向切面编程,是一种在不改变原有代码基础上添加功能的是的一项技术,如日志,事务管理,数据库连接池等。其核心内容是动态代理,动态代理就是在java代码运行时动态生成的代理类,我们通过控制代理类的代码,调用invercationHandle接口中的invoke方法,这样一来,只要我们调用代理类的方法就会调用invoke方法,我们就可以在invoke方法中对所有的方法进行预处理或者后期处理。

AJAX原理:
简单来说就是通过XMLHttpRequest对象向服务器发异步请求,从服务器获取数据,同javascript操作DOM进行数据显示。最关键的一步是从服务器获得请求的数据。经常使用GSON.jar包转换成json格式的数据。
AJAX不是一项新的技术,它是几项技术的综合体现,
使用CSS和XHtml来表示
使用DOM模型交互和动态显示。
使用XMLHttpRequest和服务器进行异步通信
使用javascript进行绑定和调用
优点:
最大的优点就是页面无刷新,在页面内和服务器通信,用户体验高
和服务器异步同信,不打断用户操作,更快的响应能力
Ajax遵循按需取数据的原则,减少冗余请求,减轻服务器的负担。

数据库方面
存储过程 触发器也是一种存储过程
创建:create procedure 名字() begin end
调用:Call 名字()
JDBC 中调用存储过程:
Callablestatement cstmt = conn.preparecall(“{callgettestdata(?,?)}”);
数据库优化:
在查询频繁的字段上建立索引;避免子查询,不可避免的话,尽可能多的过滤行;避免使用like查询。

转载于:https://www.cnblogs.com/zhaisongfang/articles/4115232.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值