今天上午myeclipse8.5突然出现building workspace 缓慢,每次保存都出现,每次等待一分钟左右,都崩溃了。。在网上搜索了很多办法试,都没有达到想要的效果。
最后myeclipse新建一个工作空间,只存放这个项目,运行启动后正常了。
原文: http://blog.csdn.net/itstar201063/article/details/8277403 buiding workspace 加载卡的我都不行了, 郁闷啊!!! 网上许多的朋友 都说优化下
myeclipse 就行了!
是的优化了之后 速度是加快了不少 ,可是还是没有找到解决问题的根本办法,
有的朋友说 关闭 Progect 中的 Build auto…… 勾去掉就行了! 是的去掉之后又会出现一
些问题,
什么呢? 所有更新的代码都不能及时的编译; 每次都需要手动的去编译(这样更麻烦了)。
其实 buiding workspace 就是将我们所写的代码及时的进行编译;
说了这么多的废话: 看看如何做吧 ---希望对困扰的 童鞋们 有所帮助
1: 选择菜单栏中的progect里的properties(如果properties不显示就是为灰色,首先 buildall或buildprogect )
2: 1完成之后再去properties 将validation和javascriptValidator 去掉就行了!
3:有时候我们的项目过多也会增大buiding workspace的时间, 关闭不必要的项目;
4:progect 中cliean 中选择 Clean progects selected below 指定项目;
这种办法多我来说没有什么问题 ---!对你!! 如果不行的话 --建议再到网上找找
有关有关问题补充
有时候可能buildall 可能也很慢
可以先选取一个项目--然后在进行 progect 中的属性值;
1.丢弃小数部分,保留整数部分
js:parseInt(7/2)
2.向上取整,有小数就整数部分加1
js: Math.ceil(7/2)
3,四舍五入.
js: Math.round(7/2)
4,向下取整
js: Math.floor(7/2)
详细出处参考:http://www.jb51.net/article/23398.htm
来源:
http://lives.iteye.com/blog/1397939地
<script type="text/javascript">
function validate(){
var reg = new RegExp("^[0-9]*$");
var obj = document.getElementById("name");
if(!reg.test(obj.value)){
alert("请输入数字!");
}
if(!/^[0-9]*$/.test(obj.value)){
alert("请输入数字!");
}
}
< /script>
验证数字的正则表达式集
验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0) ^\d+$
验证非正整数(负整数 + 0) ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数 ^(-?\d+)(\.\d+)?$
原文:
http://fuleonardo.iteye.com/blog/339749
第一次发现JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符.
而str.replace(/\-/g,"!")则可以全部替换掉匹配的字符(g为全局标志)。
replace()
The replace() method returns the string that results when you replace text matching its first argument
(a regular expression) with the text of the second argument (a string).
If the g (global) flag is not set in the regular expression declaration, this method replaces only the first
occurrence of the pattern. For example,
var s = "Hello. Regexps are fun.";s = s.replace(/\./, "!"); // replace first period with an exclamation pointalert(s);
produces the string “Hello! Regexps are fun.” Including the g flag will cause the interpreter to
perform a global replace, finding and replacing every matching substring. For example,
var s = "Hello. Regexps are fun.";s = s.replace(/\./g, "!"); // replace all periods with exclamation pointsalert(s);
yields this result: “Hello! Regexps are fun!”
所以可以用以下几种方式.:
string.replace(/reallyDo/g, replaceWith);
string.replace(new RegExp(reallyDo, 'g'), replaceWith);
string:字符串表达式包含要替代的子字符串。
reallyDo:被搜索的子字符串。
replaceWith:用于替换的子字符串。
<script type="text/javascript">
String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) {
if (!RegExp.prototype.isPrototypeOf(reallyDo)) {
return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith);
} else {
return this.replace(reallyDo, replaceWith);
}
}
</script>
原文:
http://socket.blog.163.com/blog/static/209873004201096210555/高内聚,低耦合(High Cohesion、Low Coupling)
是一句近乎于“为实现四个现代化而努力”式的口号,耳熟并不一定能详。这个口号是在软件工程里第一次碰到的,它的定义估计是计算专业术语里最欠扁的定义,内聚:一个模块内各个元素彼此结合的紧密程序。耦合:一个软件结构内不同模块之间互连程序的度量。这两个定义,相当地“形而上学”“不知所云”。这是软件工程中判断设计好坏的标准,主要是面向对象设计,主要是看类的内聚性是否高,偶合度是否低。为什么要高内聚,使模块之间的关系越紧密出错就赵少,越紧密运行效率越高!低耦合,就是说,子程序之间的关系越简单,越容易扩展和维护,越复杂就会产生出更多的意想不到的错误!不利于维护。
程序员天生都是内聚的高手,违反高内聚的反而是那些有一定水平的程序员,可能是误用了设计模式,可能是考虑问题过分全面,把一个功能单一的类分割成多个类。这里重点说低耦合,耦合就是类之间的互相调用关系,如果耦合很强,互相牵扯调用很多,那么会牵一发而动全身,不利于维护和扩展。什么方法、数据、不加分析地往一个类里整,甚至时一个类的所有数据成员设成public,方便在其它类里直接修改数据。生活中很多“低耦合”的例子,如床与床单,如果是紧耦合的话,换床单时,也要换床。再如桌子与抽屉。
图中的上半部分中,把一个软件模块抽象成线条,软件模块互相依赖,这是一种面向过程的开发方式,如果软件是不改变的,那么这种高耦合度的结构也无可厚非,有时象底层软件如操作系统等,一切以执行效率优先,而且需求并不改变频繁的情况下,是适用的。但在实际开发过程中,软件需求的变化是导致这种模式被否定的真正原因。一旦有一个模块改变,那么需要改动到其它好几个模块,而且更要命的时,被影响的模块又会影响其它模块,或者干脆又把影响力传递给当初最先改动的模块。
下图中的模块结构通过梳理,使他们依附于一条粗线条,它是主逻辑模块,是相对稳定的高层的、抽象的模块。而其它通过一个小空心圆点(表示接口)与粗线条进行连接的小短线条代表次模块,它被分成两个部分,接口和实现接口的子类对象,它们通过接口与主逻辑模块形成依赖。相对来说,次模块变化较快,而主模块变化较慢。刚才提到的生活例子中,床相对于床单来说是主要的,核心的,成本较高的,它的使用年限是10年,而床单使用年限是2年,就是说床的模块变化速度慢于床单的变化速度,如果床2个月变一次,那么逻辑结构就混乱了。床为床单提供了一个尺寸接口,床单只要符合这个接口,就可以组合使用。那么这个接口就必须是相对稳定的。
设计模式做为软件开发过程中一种创造性的总结思维,使软件开发人员,在开发软件产品时,有了更加明确的软件解耦的思路,设计模式来源于生活,却指导于软件。事实上,短期来看,要求低耦合并没有很明显的好处,因为利用设计模式来解决问题是需要软件开发的智力和时间成本的。况且引入了误用设计模式的风险,所以短期内使用设计模式来解耦反而会影响系统的开发进度。低耦合的好处是长期回报的,体现在系统持续发展的过程中,系统具有更好的重用性,维护性,扩展性,持续的支持业务的发展,而不会成为业务发展的障碍。
left join的困惑:一旦加上where条件,则显示的结果等于inner join
将where 换成 and
用where 是先连接然后再筛选
用and 是先筛选再连接
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。
在使用left jion时,on和where条件的区别如下:
1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left
join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
假设有两张表:
表1 tab1:
id size
1 10
2 20
3 30
表2 tab2:
size name
10 AAA
20 BBB
20 CCC
两条SQL:
1、select * form tab1 left join tab2 on (tab1.size = tab2.size)
where tab2.name=’AAA’
2、select * form tab1 left join tab2 on (tab1.size =
tab2.size and tab2.name=’AAA’)
第一条SQL的过程:
1、中间表
on条件:
tab1.size = tab2.size
tab1.id tab1.size tab2.size tab2.name
1 10 10 AAA
2 20 20 BBB
2 20 20 CCC
3 30 (null) (null)
2、再对中间表过滤
where 条件:
tab2.name=’AAA’
tab1.id tab1.size tab2.size tab2.name
1 10 10 AAA
第二条SQL的过程:
1、中间表
on条件:
tab1.size = tab2.size and
tab2.name=’AAA’
(条件不为真也会返回左表中的记录)
tab1.id tab1.size tab2.size tab2.name
1 10 10 AAA
2 20 (null) (null)
3 30 (null) (null)
其实以上结果的关键原因就是left join,right join,full
join的特殊性,不管on上的条件是否为真都会返回left或right表中的记录,full则具有left和right的特性的并集。 而inner
jion没这个特殊性,则条件放在on中和where中,返回的结果集是相同的。
ORA-00904标识符无效 :
在跨机器实例通过dblink访问不同的数据库时(A--B两个不同物理机器上的实例),如果后期更新了B机器上的表的字段(修改字段名称或者增加字段), 那么在A实例下存储过程中引用新增的这些字段就可能出现ora-00904错误,解决办法:在B实例下把表rename成新名称,再rename成原来的名称,然后在A实例下重新编译过程,OK!
http://blog.chinaunix.net/uid-22414998-id-2892370.html
http://www.jb51.net/web/36856.html
定义和用法
<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。
该标签可声明三种 DTD 类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。
以下面这个 <!DOCTYPE> 标签为例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
在上面的声明中,声明了文档的根元素是 html,它在公共标识符被定义为 "-//W3C//DTD XHTML 1.0 Strict//EN" 的 DTD 中进行了定义。浏览器将明白如何寻找匹配此公共标识符的 DTD。如果找不到,浏览器将使用公共标识符后面的 URL 作为寻找 DTD 的位置。