解惑

解己之惑,解人之惑

标签:顺序

mod_rewrite规则是有顺序的

原来曾经写过一个有关JR的PR的值的问题,今天littlebat留言说明了原因,使用301永久重定向就可以解决,当然马上试了下,但是遇到一个问题,例如我访问http://jiehoo.com/google%e4%b9%9f%e4%b8%8d%e6%98%af%e4%b8%87%e8%83%bd%e7%9a%84.htm,我期望他转向到http://www.jiehoo.com/google%e4%b9%9f%e4%b8%8d%e6%98%af%e4%b8%87%e8%83%bd%e7%9a%84.htm,但是它总是转向到http://www.jiehoo.com/index.php,很奇怪,后来突然想到这个规则定义可能是有顺序的(没有系统的学习mod_rewrite),试了下,果然如此:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^jiehoo.com [NC]
RewriteRule ^(.*)$ http://www.jiehoo.com/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

我刚开始是把上面的那个规则写到后面的,因为那个规则是wordpress需要的。

Java类的完整构造执行顺序

这里只说一个完整的结果,至于为什么是这样的顺序,可以参考我以前的文章:深入剖析java类的构造方式

  1. 如果父类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块
  2. 如果类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块
  3. 将类的成员赋予初值(原始类型的成员的值为规定值,例如int型为0,float型为0.0f,boolean型为false;对象类型的初始值为null)
  4. 如果构造方法中存在this()调用(可以是其它带参数的this()调用)则执行之,执行完毕后进入第7步继续执行,如果没有this调用则进行下一步。(这个有可能存在递归调用其它的构造方法)
  5. 执行显式的super()调用(可以是其它带参数的super()调用)或者隐式的super()调用(缺省构造方法),此步骤又进入一个父类的构造过程并一直上推至Object对象的构造。
  6. 执行类申明中的成员赋值和初始化块。
  7. 执行构造方法中的其它语句。

阅读全文

© 2024 解惑

本主题由Anders Noren提供向上 ↑