- 博客(26)
- 资源 (18)
- 收藏
- 关注
原创 代理模式--静态代理VS动态代理
代理模式: 作用:为目标对象提供一个代理对象以控制对目标对象的访问。 说明:代理对象存在的价值:主要用于拦截对真实业务对象(目标对象)的访问 应用:拦截器等静态代理: 代理类和目标类必须实现相同的接口或者是继承相同父类。 静态代理模式的缺点: 1,如果一个系统中有100个目标(被代理)对象,则要创建100个代理对象 2,如果一个目标对象中有很多方法需要事务,则代理对象的很多方...
2015-09-24 14:48:15 780
原创 操作系统内存介绍
前言内存的分类:物理内存、虚拟内存、共享内存,它们分别对应top命令输出中的RES、VIRT、SHR三列。物理内存系统的物理内存被划分为许多相同大小的部分,也称作内存页。 内存页的大小取决于CPU的架构和操作系统的配置,一般为4KB。 物理内存的使用主要分为以下几方面: 内核使用: 操作系统启动时,位于/boot目录下的压缩内核文件会被加载到内存中并解压。这部分内容在系统允许期间都会常驻在内存的起始位置。 进程使用 : 除去内核使用的部分,所有的进程都
2015-09-24 14:22:07 4459
原创 mysql对索引的优化
前言索引扫描:存储引擎通过检索索引查询索引数据(主要是查询基表中数据的id)。索引过滤:存储引擎通过检索索引查询索引数据(主要是查询基表中数据的id),如果查询条件中的部分字段也是该索引的字段时,存储引擎会对针对这部分字段对索引数据进行过滤。回表:存储引擎(存储引擎层)通过二级索引拿到主键id之后,去遍历主键索引(文件系统层)来获取数据的过程就叫做回表。索引条件下推(index condition pushdown,简称ICP)官网:https://dev.mysql.co
2015-09-24 14:16:09 636
原创 JVM - GC过程中存活对象的标记
从根节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象与根节点之间不存在任何引用链时,则证明此对象是不可用的。虚拟机栈(栈帧中的本地变量表)中引用的对象、本地方法栈中JNI(即native方法)引用的对象。方法区中:类静态属性引用的对象、常量引用的对象。概念:给对象添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器就减1;当计数器为0时,对象就不能再使用了。说明:Java虚拟机里面没有采用 引用计数算法 来管理内存。原因:不能解决对象之间相互循环引用的问题。
2015-09-24 14:10:34 1674
原创 Struts2中的OGNL表达式
Struts2中的OGNL: 1,$、#、%的区别 a)${ognl}在struts.xml中使用 b)#取得ActionContext的值 c)%将原本的文本属性解析为ognl,对于本来就是ognl的属性不起作用。在jsp中:%{ognl}只能写到struts2的自定义标签的属性中 2,语法 user 相当于 findValue("user") #user 相当于 ma
2015-09-24 14:05:39 662
原创 在Struts2访问 HttpServletRequest、HttpSession、ServletContext三个域对象
Struts2如何访问 HttpServletRequest、HttpSession、ServletContext三个域对象 1,方法一:与Servlet API解耦的访问方式 通过 ActionContext 访问域对象对应的 Map 对象 public class MyAction extends ActionSupport implements Serializable {
2015-09-24 14:03:26 3286
原创 Struts2中防止表单的重复提交
Struts2中防止表单的重复提交 1、在表单中加入标签 eg: 注:在浏览器里查看jsp页面的源码可以发现: 变成了: 2、到struts.xml中,在相应的action中配置token拦截器 /fail.jsp /success.jsp 3、增加一个名称为invalid.token的结
2015-09-23 16:54:33 587
原创 spring是如何解决创建bean时,bean之间的循环依赖呢?
前言构造器注入循环依赖:示例:@Servicepublic class A { public A(B b) { }}@Servicepublic class B { public B(A a) { }}说明:构造器注入构成的循环依赖spring是不能解决的。field属性注入(setter方法注入)循环依赖示例@Servicepublic class A { @Autowired private B b;
2015-09-23 16:52:39 672
原创 Struts2自定义类型转换器
Struts2自定义类型转换器 1、编写一个类,继承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter 2、覆盖掉其中的public Object convertValue(Map context, Object value,Class toType) context:OGNL表达式的上下文 value:实际的值
2015-09-23 16:49:03 573
原创 Struts2对于国际化(i18n)的支持
Struts2对于国际化(i18n)的支持 1,准备资源文件,资源文件的命名格式如下: baseName_language_country.properties (baseName:资源的基名,需要自定义/language:Java支持的语言/country:Java支持的国家/) eg: 中国大陆:baseName_zh_CN.properties 美国:baseName
2015-09-23 16:37:53 1284 1
原创 Spring中的AOP
aop: 原理:通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能。 概念: 1,切面(Aspect) 事务、日志、权限等都是切面,切面是类 2,通知(Advice) 切面中的方法就是通知,通知是方法 1)前置通知:在目标方法执行之前执行。无论目标方法是否抛出异常,都执行,因为在执行前置通知的时候,目标方法还没有执行,还没有遇
2015-09-23 16:34:13 730
原创 堆排序
/** * 【堆】 * 堆的概念:堆是一棵顺序存储的完全二叉树。 * * 堆分为大根堆和小根堆: * 大根堆:每个节点的值不小于等于其左、右孩子的值 * 小根堆:每个节点的值不大于等于其左、右孩子的值 * * 【堆排序】 * * 1)概念:指利用堆的特性将待排序的序列进行排序。 * * 2)过程: * ...
2015-09-23 16:27:13 2744
原创 Spring中注解的使用
Spring中注解的使用 1)依赖注入:标注在字段或属性的setter方法上 1)@Autowired 根据类型查找 2)@Autowired + @Qualifier 根据名字(id)查找 3)@Resource 按名称查找,当找不到与名称匹配的bean时再按类型查找 说明: 1>@Resource注解是JSR-250标准注解,不是sp...
2015-09-23 16:19:05 758
原创 java中的序列化
关于继承 1,如果不想让配置文件中的bean创建对象,则把bean的abstract属性设为true即可 2,如果想让一个子类拥有父类的属性,则需要指定bean的parent属性
2015-09-23 16:17:11 1153
原创 Spring中的数据库操作--使用JdbcTemplate
Spring中的数据库操作 静态代码+动态变量 = jdbc编程 静态代码构成了模板,而动态变量则是需要传入的参数 JdbcTemplate 1)简化了我们对JDBC的操作:完成了SQL语句的创建和执行、资源的创建和释放的工作 总结:节省代码,不管连接、不管事务、不管异常、不管关闭 2)仅需要传递DataSource就可以把它实例化 3)JdbcTemplate只需要创
2015-09-23 16:14:01 2035 1
原创 Spring中的容器
Spring中的容器: BeanFactory 全名:org.springframework.beans.factory.BeanFactory 概念:BeanFactory是Spring框架最核心的接口,它提供了IoC机制,实现了依赖注入的功能, 说明:BeanFactory负责管理bean的生命周期(bean的加载、实例化等)、维护bean之间的依赖关系,一般...
2015-09-23 16:10:13 1141
原创 数据库基础
数据库的三范式:第一范式(1NF):字段的原子性概念:数据库表中的字段都是单一属性的,不可再分。说明:单一属性的类型包括整型、字符型、逻辑型、日期型等。注:集合、数组等类型不属于单一属性的类型。 第二范式(2NF):记录的唯一性前提:满足第二范式的前提是先满足第一范式。 概念:非主属性必须完全依赖于主键。说明:主键可能由多个属性构成,完全依赖指不存在非主属性依赖于主键中的某一部分属性。第三范式(3NF):非主属性不依赖于其它非主属性...
2015-09-23 16:08:22 805
原创 spring容器创建对象的时机
spring容器创建对象的时机 1,在单例的情况下: 1.1 在默认的情况下,启动spring容器时创建对象 1.2 在spring的配置文件bean中有一个属性lazy-init="default/true/false" 1)如果lazy-init为"default/false"在启动spring容器时创建对象 优点:可以在启动spring容器的时候,检查spring容器
2015-09-23 16:07:08 1207
原创 Spring中的IoC
Spring中的IoC: 1)概念:把对象的创建、初始化、销毁等工作交给spring容器来做。由spring容器控制对象的生命周期。 2)目的:为了解决多个对象之间的依赖关系。 3)原理: 1)通过配置文件(或注解)的方式来描述bean与bean之间的依赖关系。 2)通过动态代理和java的反射机制来实例化bean,同时建立bean之间的依赖关系。 4)spring容器创建...
2015-09-23 16:05:45 5634
原创 Hibernate的3种继承映射策略
Hibernate的3种继承映射策略: 注意:映射文件名为:父类名.hbm.xml 1,父类和子类使用同一张表:采用 subclass 元素的继承映射 1)因为父类和子类的实例全部保存在同一个表中,因此需要在该表内增加一列,使用该列来区分每行记录到底是哪个类的实例----这个列被称为鉴定者列(discriminator) 2)使用 subclass 来映射子类,使用 class
2015-09-23 15:54:31 793
原创 乐观锁和悲观锁
乐观锁: 原理: 1)通过在数据库表中添加一个版本号(version)字段来实现乐观锁。 2)更新前先获取到该条数据的版本号(v1),然后在更新语句(更新数据&更新版本号)的where条件中添加 version=v1 条件, 1>若满足version=v1条件(即:成功获取乐观锁),则成功更新数据且版本号+1; 2>若不满足version=v1条件(即:...
2015-09-23 15:51:30 690
原创 hibernate的查询方式
hibernate的查询方式 1,hql(hibernate query language) 2,Native query 3,Criteria(条件) query // 使用Criteria方式查询 @Test public void testCriteria() throws Exception { Session session = sessionFactory.
2015-09-23 15:50:05 547
原创 Hibernate的性能分析--懒加载、抓取策略、缓存策略
Hibernate的性能分析: 影响性能的3个方面:懒加载、抓取策略、缓存策略 说明:发出的sql语句越少,性能就越高。懒加载是研究什么时候发出SQL语句,抓取策略是研究怎么样发出SQL语句。 懒加载: 说明:主要研究类、集合、many-to-one在什么时候发出SQL语句并加载数据 1,类的懒加载 1,利用session.load方法可以产生代理对象 2,在sessi
2015-09-23 15:46:49 922
原创 ormapping框架和jdbc的比较
ormapping框架的优点和缺点: 优点 1,比较简单,简化了DAO层的编码工作 2,数据缓存:一级缓存 二级缓存 查询缓存 3,移植性比较好 缺点 1,因为sql语句是hibernate内部生成的,所以程序员干预不了,不可控 2,如果数据库特别大,不适合用hibernatejdbc的优点和缺点: 缺点 1,查询代码特别繁琐 2,重复性代码特别多,
2015-09-23 15:42:41 1781
原创 Hibernate对象的3种状态
Hibernate对象的3种状态: 1,临时状态(Transient): 与数据库没有对应,跟Session没有关联。 一般是新new出的对象。 2,持久化状态(Persistent): 对象在Session的管理之中,最终会有对应的数据库记录。 特点:有ID,并且对对象的修改会同步到数据库。 3,游离状态(Detached,又叫脱管状态): 数据库中有对应记录,但对象
2015-09-23 15:36:44 1461
jQuery1.10.3(中文).chm
2014-12-25
Struts2.0中文教程.chm
2014-12-25
Spring2.5-中文参考手册.chm
2014-12-25
HTTP1.1.chm
2014-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人