1. 程式人生 > >java日常記錄薄

java日常記錄薄

1,The project cannot be built until build path errors are resolved。。。。
當專案匯入後出現這樣的問題,那麼可能是JDK沒匯入正確。

2,try…catch 後面得程式碼依舊會執行。

  • 情況1
 public static void main(String[] args) {
      try {
          while (true){
              try{
                  System.out.println("正常執行");
                  int
i = 1/0; }catch (Exception e){ System.out.println("異常捕獲了"); //return; (1) throw new RuntimeException();//(2) } /** 當(1)或者(2)執行的時候,下面的語句都不會執行,只有(1),(2)都不執行的時候才有下面的列印 */ System.out.print("第一部分結尾部分"
); } }catch (Exception e){ System.out.println("上層異常捕獲了"); } finally { System.out.print("結束了"); } /** 當(1)執行的時候,下面的語句不會執行,當(2)執行的時候,下面的語句會走 */ System.out.print("第二部分結尾部分"); } }

-情況2

 public static void
main(String[] args) { try { while (true){ try{ System.out.println("正常執行"); int i = 1/0; }catch (Exception e){ System.out.println("異常捕獲了"); } } }catch (Exception e){ System.out.println("上層異常捕獲了"); } finally { System.out.print("結束了"); } }

執行結果:

正常執行
異常捕獲了
正常執行
異常捕獲了

3,idea專案轉eclipse專案的時候會有資源目錄的指向的不同。
如:WebContent —》webapp的轉換。
解決方法:
1,找到專案所在路徑,在settings目錄中找到org.eclipse.wst.common.component 這個檔案,然後修改該行程式碼處source-path的值就行了。

  <wb-module deploy-name="TopCcms">
        <wb-resource deploy-path="/" source-path="/webapp" tag="defaultRootSource"/>
.........

4, 修改專案的web訪問根目錄的方式有:
方式一:直接通過開發工具修改,這裡以Eclipse為例。在Eclipse中選擇專案,然後點選“project”,選擇properties選項,在配置視窗選擇”Web Project Settings“選項,最後修改想要的名稱即可。
方式二:通過Tomcat設定,這裡比較侷限,因為本人還沒有用過其他容器。在tomcat根目錄下開啟conf資料夾,然後編輯server.xml. 找到

<Context path="/webrootName"  docBase="realPath"   ></Context>  

這裡只用到path,docBase兩個屬性。分表表示web應用根目錄和專案所在檔案路徑。
修改完成後,重啟tomcat服務,直接訪問http://localhost:8080/webrootName 即能訪問部署的專案。
注:這裡http://localhost:8080/只是測試案例,需要按照各自環境變化。

5, 替換字串中轉移字元的方法

  方式一:
      String str = "ssss\r\ndddd\tdddd\n\r";
      String field = EntityUtils.toString(str,"UTF-8");//獲取資料 
      field=field.replaceAll("[\\t\\n\\r]", "");//將內容區域的回車換行製表符去除

      說明:String類的replaceAll就有正則替換功能,即引數一可以是正則表示式。 \t為製表符 \n為換行 \r為回車

       方式二:
       String str = "ssss\r\ndddd\tdddd\n\r";
       Pattern p = Pattern.compile("\\s*|\t|\r|\n"); //空格,製表符,回車,換行
       Matcher m = p.matcher(str);
       str = m.replaceAll(""); 

     方式三:(笨方法)
       String str = "ssss\r\ndddd\tdddd\n\r";

      1.去除空格:s = s.replace(”\\s“,“”); //單字元,

      2.去除回車:s = s.replace(“\n”,“”);

       這樣也可以把空格和回車去掉,其他也可以照這樣做。
        注:\n 回車(\u000a) 
        \t 水平製表符(\u0009) 
        \s 空格(\u0008) 
PS:這裡replace方法中必須用字串的方式,而不是字元的方式。

6.時間戳:
時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的“總秒數”。

7,對於String型別的變數,方法中對應值傳遞

 public static void main(String[] args) {
   String str = "abc";
        changeStr(str);
        System.out.println("main: "+str);
    }
    public static void changeStr(String str){
        str +="123";
        System.out.println(str);
    }
    結果:
    abc123
    main: abc

8,

public static void main(String[] args) {
 String a = "Programming";
 String b = new String("Programming");
 String c = "Program" + "ming";

 System.out.println(a == b);
 System.out.println(a == c);
 System.out.println(a.equals(b));
 System.out.println(a.equals(c));
 System.out.println(a.intern() == b.intern());
 }
 結果:
 false
 true
 true
 true
 true
class A{

 static{
 System.out.print("1");
 }

 public A(){
 System.out.print("2");
 }
}

class B extends A{

 static{
 System.out.print("a");
 }

 public B(){
 System.out.print("b");
 }
}
 //何問起 hovertree.com
public class Hello{

 public static void main(String[] args){
 A ab = new B();
 ab = new B();
 }

}
結果:
1a2b2b
因為:
建立物件時構造器的呼叫順序是:先初始化父類的靜態成員然後初始化當前類的靜態成員(包括靜態程式碼塊,呼叫一次),然後初始化父類的成員,然後呼叫父類構造器,最後初始化自身的成員,然後再呼叫自身構造器。