- 浏览: 75898 次
- 性别:
- 来自: 杭州
-
文章列表
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 查 ...
- 2009-08-20 14:00
- 浏览 854
- 评论(0)
<s:authentication-provider user-service-ref="userDetailsService">
<!-- 可设置hash使用sha1或md5散列密码后再存入数据库 -->
<s:password-encoder hash="md5" >
<s:salt-source user-property="username"/>
</s:password- ...
- 2009-08-19 14:35
- 浏览 11265
- 评论(0)
悲观锁
悲观锁的实现,通常依赖于数据库机制,在整个过程中将数据锁定,其它任何用户都不能读取或修改
乐观锁
大多数基于数据版本记录机制(version)实现,一般是在数据库表中加入一个version字段
读取数据时将版本号一同读出,之后更新数据时版本号加一,如果提交数据时版本号小于或等于数据表中
的版本号,则认为数据是过期的,否则给予更新
- 2009-08-14 14:56
- 浏览 944
- 评论(0)
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策略只 ...
- 2009-08-14 14:47
- 浏览 823
- 评论(0)
hibernate多对多关联映射(单向User---->Role)
具体映射方式:
<set name="roles" table="t_user_role">
<key column="userid"/>
<many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/>
</set>
--------------------------------------- ...
- 2009-08-14 14:38
- 浏览 741
- 评论(0)
hihernate一对多关联映射(单向Classes----->Student)
一对多关联映射利用了多对一关联映射原理
多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一
一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多
也就是说一对多和多对一的映射策略是一样的,只是站的角度不同
在一一端维护关系的缺点:
* 如果将t_student表里的classesid字段设置为非空,则无法保存
* 因为不是在student这一端维护关系,所以student不知道是哪个班的,
所以需要发出多余的update语句来更新关系
---- ...
- 2009-08-14 13:24
- 浏览 1117
- 评论(0)
//内容摘要的长度控制为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 ){
...
- 2009-07-23 15:14
- 浏览 5504
- 评论(0)
使用的情况:
1.远程代理(rmi,webservice)
2.虚拟代理,开销较大的对象。
3 安全代理:控制对象的访问权限
4 智能指引:调用真实对象时,做一点其他的事情。
- 2009-07-14 16:52
- 浏览 876
- 评论(0)
简单工厂:把类的实例化转移到工厂类中
抽象工厂:把类的实例化转移到具体的工厂类中
区别:在要增加一个具体商品类时,简单工厂要修改工厂类,并且在客户端修改多处create放法。工厂模式只要增加个一个具体工厂类,并且客户端可能只要修改一处,遵循了“开放-封闭”原则。但是工厂模式同样增加了开发量。
抽象工厂:工厂类中提供实例化多个类的方法。
还是要修改多处 new Factory( )的方法。
目标:修改最少
方法:运用编程语言支持的“反射”技术,直接用简单工厂模式。
过程:new Factory()可以换成 Class.forName(“name”).instance之类的方法 ...
- 2009-07-13 11:15
- 浏览 1210
- 评论(0)
定义:动态地附加责任到对象上。若要扩展功能,装饰者提供了比继承更有弹性的方案。
缺点是:可能引入很多小的类,使用者看起来麻烦。可以参考“工厂模式”和“生成器模式”
设计原则: 对扩展开放,对修改封闭。
应用场合:新巴兹咖啡,java的IO
Component可以是接口,也可以是类。主要参考代码遗留
decorator继承了component,主要是为了保证“类型匹配”,在后面可以用来装饰component。而不是为了继承行为,行为是要拿来修改的。
- 2009-07-06 21:32
- 浏览 893
- 评论(0)
上图是根据《Head First》系列的《设计模式》书中的鸭子案例画的策略模式图。
策略模式定义:定义算法族,封装起来。可以相互替换。让算法的变换独立于使用算法的客户。
设计原则:封装变化。
在鸭子的例子中。首先是抽象了一个Duck类。然后发现其中的fly和quack是容易变化的,并且于是将其独立出来。并且实现。
优势:1.定义了可重用的算法。
2.简化单元测试。(每个算法都有自己的类,可通过接口测试)
应用场合:
只要发现可能在不同的条件下会使用不同的方法。就可以将其独立出来。
- 2009-07-03 22:04
- 浏览 834
- 评论(0)
将“请求”封装成命令对象。把行为请求者和行为实现者进行解耦。
同时,invoker用list来储存命令。可以实现撤销,命令。
什么时候用?
敏捷开发原则:如果不知道什么时候用,就先不要用。在需要的时候再实现也是比较容易的。
Struts2的中的Action实现就是基于命令模式的。每个action相当于一个命令。
空对象,在初始化一个对象(接口)的时候。如果要赋空值,可以赋给一个实现了该接口的空对象。而不是用null赋值。(这样的好处应该是至少不用在使用的时候添加判断是否为null的语句,或者是添加异常有关代码了。)
- 2009-07-03 20:13
- 浏览 681
- 评论(0)