`
hfhwan
  • 浏览: 75898 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行  Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt+↑ 当前行和上面一行交互位置(同上) Alt+← 前一个编辑的页面 Alt+→ 下一个编辑的页面(当然是针对上面那条来说了) Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性 Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后) Shi ...
转自:http://www.regexlab.com/zh/encoding.htm   级别:中级 摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱码问题”。 掌握编码问题的关键是正确地理解相关概念,编码所涉及的技术其实是很简单的。因此,阅读本文时需要慢读多想,多思考。 引言 “ 字符与编码”是一个被经常讨论的话题。即使这样,时常出现的乱码仍然困扰着大家。虽然我们有很多的办法可 ...
  jdk1.5推出的enum类型,在hibernate中一般是用注释做映射,这也是配合1.5提供的注释功能。 但是如果要把enum类型映射到传统的xml配置文件中,怎么办? 找到一种比较简单的方法。 <property name="type" column="note_type" length="10"> <type name="org.hibernate.type.EnumType"> <param name="enumClass"& ...
hibernate一级缓存 一级缓存很短和session的生命周期一致,一级缓存也叫session级的缓存或事务级缓存 session中的map来实现 那些方法支持一级缓存: * get() * load() * iterate(查询实体对象)                  (select * from 查 ...
    <s:authentication-provider user-service-ref="userDetailsService"> <!-- 可设置hash使用sha1或md5散列密码后再存入数据库 --> <s:password-encoder hash="md5" >     <s:salt-source user-property="username"/> </s:password- ...

悲观锁

悲观锁 悲观锁的实现,通常依赖于数据库机制,在整个过程中将数据锁定,其它任何用户都不能读取或修改 乐观锁 大多数基于数据版本记录机制(version)实现,一般是在数据库表中加入一个version字段 读取数据时将版本号一同读出,之后更新数据时版本号加一,如果提交数据时版本号小于或等于数据表中 的版本号,则认为数据是过期的,否则给予更新
hibernate lazy策略可以使用在: * <class>标签上,可以取值:true/false * <property>标签上,可以取值:true/false需要类增强工具 * <set><list>标签上,可以取值:true/false/extra * <one-to-one><many-to-one>单端关联上,可以取值:false/proxy/noproxy lazy概念:只有真正使用该对象时,才会创建,对于hibernate而言,正真使用的时候才会发出sql hibernate支持lazy策略只 ...
hibernate多对多关联映射(单向User---->Role) 具体映射方式: <set name="roles" table="t_user_role"> <key column="userid"/> <many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/> </set> --------------------------------------- ...
hihernate一对多关联映射(单向Classes----->Student) 一对多关联映射利用了多对一关联映射原理 多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一 一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多 也就是说一对多和多对一的映射策略是一样的,只是站的角度不同 在一一端维护关系的缺点: * 如果将t_student表里的classesid字段设置为非空,则无法保存 * 因为不是在student这一端维护关系,所以student不知道是哪个班的,   所以需要发出多余的update语句来更新关系 ---- ...
//内容摘要的长度控制为18个字,方便显示 for(int i = 0; i < newsLists.size(); i++){ News news = newsLists.get(i); String str = news.getContentAbstract(); int strLength = 36; int tempLength = 0; for(int j = 0; j < str.length(); j++){ char c = str.charAt(j); if( c < 256 ){ ...

Proxy

使用的情况: 1.远程代理(rmi,webservice) 2.虚拟代理,开销较大的对象。 3 安全代理:控制对象的访问权限 4 智能指引:调用真实对象时,做一点其他的事情。
简单工厂:把类的实例化转移到工厂类中 抽象工厂:把类的实例化转移到具体的工厂类中     区别:在要增加一个具体商品类时,简单工厂要修改工厂类,并且在客户端修改多处create放法。工厂模式只要增加个一个具体工厂类,并且客户端可能只要修改一处,遵循了“开放-封闭”原则。但是工厂模式同样增加了开发量。 抽象工厂:工厂类中提供实例化多个类的方法。 还是要修改多处 new Factory( )的方法。 目标:修改最少 方法:运用编程语言支持的“反射”技术,直接用简单工厂模式。 过程:new Factory()可以换成 Class.forName(“name”).instance之类的方法 ...
定义:动态地附加责任到对象上。若要扩展功能,装饰者提供了比继承更有弹性的方案。 缺点是:可能引入很多小的类,使用者看起来麻烦。可以参考“工厂模式”和“生成器模式” 设计原则: 对扩展开放,对修改封闭。 应用场合:新巴兹咖啡,java的IO     Component可以是接口,也可以是类。主要参考代码遗留     decorator继承了component,主要是为了保证“类型匹配”,在后面可以用来装饰component。而不是为了继承行为,行为是要拿来修改的。
上图是根据《Head First》系列的《设计模式》书中的鸭子案例画的策略模式图。 策略模式定义:定义算法族,封装起来。可以相互替换。让算法的变换独立于使用算法的客户。 设计原则:封装变化。 在鸭子的例子中。首先是抽象了一个Duck类。然后发现其中的fly和quack是容易变化的,并且于是将其独立出来。并且实现。 优势:1.定义了可重用的算法。       2.简化单元测试。(每个算法都有自己的类,可通过接口测试) 应用场合: 只要发现可能在不同的条件下会使用不同的方法。就可以将其独立出来。
将“请求”封装成命令对象。把行为请求者和行为实现者进行解耦。 同时,invoker用list来储存命令。可以实现撤销,命令。 什么时候用? 敏捷开发原则:如果不知道什么时候用,就先不要用。在需要的时候再实现也是比较容易的。 Struts2的中的Action实现就是基于命令模式的。每个action相当于一个命令。 空对象,在初始化一个对象(接口)的时候。如果要赋空值,可以赋给一个实现了该接口的空对象。而不是用null赋值。(这样的好处应该是至少不用在使用的时候添加判断是否为null的语句,或者是添加异常有关代码了。)
Global site tag (gtag.js) - Google Analytics