摘要:
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。 三、尤其关键......
摘要:
在java中有如下三种事务,简单的jdbc级的事务 jta - 在ejb环境下,用户得到事务并进行控制cmp - 完全由容器控制事务,用户通过bean配置文件来定义事务行为 二三种都支持分布式事务,但只支持java环境下的分布式事务。下面讨论如何在java程序里实现分布式事务,即在同一个事务里访问多个数据源。实际上就是如何使用jta. 这里假设使用oracle数据库,使用weblogic部署应用......
Java正则表达式详解
如果你曾经用过perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本与匹配模式是多么简单.如果你不熟悉这个术语,那么“正则表达式”(regular expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式. 许多语言,包括perl.php.python.javascript与jscript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能.那么java又怎样呢?本文写作时,一个包含了用正则表达式进行文本处理的java规范需求(specification request)已经得到认可,你可以期待在jdk的下一版本中看到它. 然而,如果现在就需要使用正则表达式,又该怎么办呢?你可以从apache.org下载源代码开放的jakarta-oro库.本文接下来的内容先简要地介绍正则表达式的入门知识,然后以jakarta-oro api为例介绍如何使用正则表达式. 一.正则表达式基础知识 我们先从简单的开始.假设你要搜索一个包含字符“cat”的字符串,搜索用的正则表达式就是“cat”.如果搜索对大小写不敏感,单词“catalog”.“catherine”.“sophisticated”都可以匹配.也就是说: 1.1 句点符号 假设你在玩英文拼字游戏,想要找出三个字母的单词,而且这些单词必须以“t”字母开头,以“n”字母结束.另外,假设有一本英文字典,你可以用正则表达式搜索它的全部内容.要构造出这个正则表达式,你可以使用一个通配符——句点符号“.”.这样,完整的表达式就是“t.n”,它匹配“tan”.“ten”.“tin”与“ton”,还匹配“t#n”.“tpn”甚至“t n”,还有其他许多无意义的组合.这是因为句点符号匹配所有字符,包括空格.tab字符甚至换行符: 1.2 方括号符号 为了解决句点符号匹配范围过于广泛这一问题,你可以在方括号(“[]”)里面指定看来有意义的字符.此时,只有方括号里面指定的字符才参与匹配.也就是说,正则表达式“t[aeio]n”只匹配“tan”.“ten”.“tin”与“ton”.但“toon”不匹配,因为在方括号之内你只能匹配单个字符: 1.3 “或”符号 如果除了上面匹配的所有单词之外,你还想要匹配“toon”,那么,你可以使用“|”操作符.“|”操作符的基本意义就是“或”运算.要匹配“toon”,使用“t(a|e|i|o|oo)n”正则表达式.这里不能使用方扩号,因为方括号只允许匹配单个字符;这里必须使用圆括号“()”....
下一页 摘要:
之所以把这个问题拿出来重新分析一次,是因为我们操作java的对象(object)全是通过对象的引用(object references),引用可以理解为指针,容易让人对应到c++的传址上面去。讨论讨论有百益而无一害嘛。在传基本数据类型 变量时,直接传值不会让人费解;但当传递对象时,就应该理解为传递的是对象引用的值,但这个值并不是对象本身,而是指向该对象,即你让另一个引用指向了该对象。--java......