Month: September 2011

了解一下OSGi的基本概念

这货倒底有啥用? http://www.javaworld.com/javaworld/jw-03-2008/jw-03-osgi1.html?page=1 说: 1. You can install, uninstall, start, and stop different modules of your application dynamically without restarting the container. 2. Your application can have more than one version of a particular module running at the same time. 听起来有点像单JVM的SOA,对吧?

认识一下 java.util.concurrent.locks

转自 http://download.oracle.com/javase/1.5.0/docs/guide/concurrency/overview.html The java.util.concurrent.locks package provides a high-performance lock implementation with the same memory semantics as synchronization, but which also supports specifying a timeout when attempting to acquire a lock, multiple condition variables per lock, non-lexically scoped locks, and support for interrupting threads which are waiting to acquire a lock.

允许传递依赖的一种情况

传递依赖违反了数据库设计范式,但有时允许传递依赖,可以获得比较好的直观性 比如, <公司,部门,员工>这种关系,可以设计两张表:     <company-id, department-id, employee-id> 和  <company-id, department-id> 是的,这样会有冗余:<公司,部门>关系在两张表里都存在。 这样会不会出问题? 如果一个部门永远跳不出它所属的公司,其实这种冗余就无所谓。否则,第二张表里的re-match会引发第一张表的批量改动。 那这样做又有什么好处?好处就是避免一次表连接。如果消除了传递依赖,那么查询员工所属部门时就得连接两张表: <company-id, department-id> 和 <department-id, employee-id>。 如果你的业务中,“部门”的概念非常弱,弱到只相当于一个标签的话,你就可以采取这种反范式的设计。 如果“部门”下面还分“子部门”,并且组织架构重整经常发生的话,那你还是不要这样玩了。老老实实按范式走,可以使编码更优雅更干净。

java程序员学php -16 exception处理

写法与java风格一致 throw new Exception(‘exception’, 33); //比java多了一个error_code try{ $d -> doSecond(); }catch(Exception $e){ echo $e.getMessage(); } 不同点: 1.php里没有 throws Exception 2.php里的exception没有 checked exception 与 unchecked之分

java程序员学php -15 php中的namespace 与java中的package

php中的namespace跟java中的pakcage一样,都可以解决命名冲突的问题。 比如: 声明:namespace APP\KENT\CHEN; 使用:require(‘xxx.php’); echo \APP\KENT\CHEN\SOME_CONST; 不同点在于: 1.写法不一样 2.文件的namespace不需要与其实际路径一致 3.namespace下面不仅可以有类,还可以有常量、函数等其它任何php的东西

java程序员学php -14. 面向对象

相同点: 1.也是类+方法 2.也不允许多重继承 3.也有interface,可以利用interface实现多重继承 4.也有抽象类 5.也有静态方法 6.也可以通过final关键字禁止扩展 不同点: 1.class本身没有access modifier 2.属性和方法的默认的access modifier是public, 没有包可见性的概念,其它一样 3.不用为每个属性写getter和setter,有一套通用的__get()和__set()即可 4.允许类级别的常量,但不允许静态变量

java程序员学php -12.变量作用域

1.php比java多出了一个“文件”作用域(正式名称叫“全局作用域“,在当前php文件里有效),即写在php文件里但独立于任何函数之外的变量的作用域. 这跟javascript里定义的全局变量有点像,但在php里,函数内部无法访问此类变量。 2.通过require包含进来的文件中的变量的作用域是什么样的? 如果你在函数里调用require(),则被包含的文件中的变量的作用域为当前函数; 否则为全局作用域

java程序员学php -11.函数

public String join(String head, String body){ if(body == null) body = "Nobody"; return head + body; } function join(head, body=’Nobody’){ return head.body; } 区别:   1.php的函数不会在方法签名中指定返回类型   2.php的函数不会在方法签名中指定参数类型   3.php的函数可以给参数设定默认值