程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> C#/.NET轉Java學習筆記,

C#/.NET轉Java學習筆記,

編輯:JAVA綜合教程

C#/.NET轉Java學習筆記,


大學研究了三年的.Net,由於偶然的機會,拿到IBM的Java web實習offer,所以決定轉行搞Java(綜合了校招情況、發展前景和其他各種因素)。

下面是我在學習Java web的一些學習筆記(可能會比較亂,希望能做個備忘,如果能對您有幫助那就更好了)

 

Servlet相關--------------------------

1.Servlet的生命周期:

Servlet生命周期分為三個階段:

  1,初始化階段:調用init()方法

  2,響應客戶請求階段:調用service()方法

            Service()方法內部對請求的類型(get/post)進行了判斷,自動調用doPost/doGet

  3,終止階段:調用destroy()方法

2.Servlet的單例多線程:

單例:Servlet只在用戶第一次請求時被實例化,並且是單例的,在服務器重啟或關閉時才會被銷毀。

多線程:當請求到達時,Servlet容器(Tomcat...)通過線程池中可用的線程給請求者並執行Service方法。

 

Java基礎相關-----------------------

1.多線程

線程創建的兩種方法:

第一種,實現Runnable接口

復制代碼
package test.Thread;

import org.junit.Test;

//This example shows the two method to create new thread.The java file "MyThread" shows the other method.
public class NewThread{
    @Test
    public void Fun(){
        RunnableThread rt = new RunnableThread();
        Thread t1 = new Thread(rt,"First");
        Thread t2 = new Thread(rt,"Second");
        
        t1.start();
        t2.start();
    }
}

class RunnableThread implements Runnable{
    @Override
    public void run() {
        // TODO Auto-generated method stub
        for(int i=0;i<100;i++){
            System.out.println(Thread.currentThread().getName());
        }
    }
    
}
復制代碼

第二種,繼承Thread類

復制代碼
package test.Thread;

public class MyThread extends Thread{
    //The constructor without parameter
    public MyThread(){
        
    }
    
    //The constructor with name parameter
    public MyThread(String name){
        super(name);
    }
    
    public void run(){
        for(int i=0;i<100;i++){
            System.out.println(this.getName());
        }
    }
}
復制代碼

線程的同步

使用同步鎖synchronized,參見賣票程序。同步的對象必須是同一個對象。

復制代碼
package test.Thread;

import org.junit.Test;

public class Thread_Synchronized {
    
    public static void main(String[] args){
        SynchronizedRunnableThread srt = new SynchronizedRunnableThread();
        
        Thread t1 = new Thread(srt,"window1");
        Thread t2 = new Thread(srt,"window2");
        Thread t3 = new Thread(srt,"window3");
        
        t1.start();
        t2.start();
        t3.start();
    }
}


class SynchronizedRunnableThread implements Runnable{
    
    private static int tickets=100;    
    
    @Override
    public void run() {
        while(true){
            //We can use the definition of class,because it's unique            
            /*
            synchronized(this){
                if(tickets>0){
                    System.out.println(Thread.currentThread().getName()+" is selling the "+(tickets--)+"th ticket");
                }            
            }
            */
            //or we can use the other method--synchronized method
            sellTickets();            
        }
    }

    private synchronized void sellTickets() {
        if(tickets>0){
            System.out.println(Thread.currentThread().getName()+" is selling the "+(tickets--)+"th ticket");
        }    
    }
}
復制代碼

2.IO流

四大流:

InputStream、OutputStream  用於任意對象(二進制格式)

Writer、Reader          用於字符對象(字符格式)

使用示例: 

復制代碼
package test.Stream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;

public class FileInputStream_FileOutputStream {
    public static void main(String[] args) throws Exception{
        //The difference of "FileInputStream" and "FileReader" is that "FileInputStream" read the file with byte,
        //but "FileReader" read with Unicode,in other words,"FileReader" can read Chinese word.        
        FileInputStream is = new FileInputStream("D:\\read.txt");
        FileOutputStream os =new FileOutputStream("D:\\FileOutputStream.txt");
        
        int ch = is.read();
        while(ch!=-1){
            os.write(ch);
            System.out.print((char)ch);
            ch = is.read();
        }
        os.flush();
        
        os.close();
        is.close();
    }
}
復制代碼 復制代碼
package test.Stream;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;

public class FileReader_FileWriter {
    public static void main(String[] args) throws Exception{
        FileReader fr = new FileReader("D:\\read.txt");
        FileWriter fw =new FileWriter("D:\\write.txt");
        
        int ch = fr.read();
        while(ch!=-1){
            fw.write(ch);
            ch = fr.read();
        }
        fw.flush();
        
        fw.close();
        fr.close();
        
    }
}
復制代碼

3.集合類

 

jsp相關-----------------------------

1.jsp工作原理:

  當一個JSP文件第一次被請求的時候,Tomcat首先會把這個JSP文件轉換成一個Java源文件。在轉換過程中如果發現JSP文件有語法錯誤,轉換過程將中斷,並向服務端和客戶端輸出出錯信息。如果轉換成功,Tomcat用javac把該Java源文件編譯成相應的.class文件並將該.class文件加載到內存中。(通過查看原文件,可知jsp最終也是轉化被成Servlet,.java就是一個Servlet)

 

2.jsp九大內置對象?

  request          用戶端請求,此請求會包含來自GET/POST請求的參數 
  response        網頁傳回用戶端的回應 
  pageContext   網頁的屬性 
  session       與請求有關的會話信息 
  application           
  out             用來傳送回應的輸出 
  config                 存取servlet實例的初始化參數 
  page                  
  exception     

 

3.JSTL標簽

  1.表達式控制標簽:out、set、remove、catch

  2.流程控制標簽:if、choose、when、otherwise

  3.循環標簽:forEach、forTokens

  4.URL操作標簽:import、url、redirect

 

4.EL表達式

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved