久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

java 中常用的方法總結

時間:2019-05-12 13:05:56下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《java 中常用的方法總結》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《java 中常用的方法總結》。

第一篇:java 中常用的方法總結

8月1日

練習:

合理覆蓋Cat數據類型的,equals()方法

Cat.java 覆蓋 hashCode()返回的整型值是唯一的int hashCode()用法:

一般使用String提供hashCode的編碼 +基本數據類型

hashCode 生成原則: 當對象內容一致時,生成的hashCode必須是一樣的當對象內容不致時,生成的hashCode必須是唯一的HashtableTest1.java

hashtable 中的key如果是自定義數據類型,那么它必須覆蓋equals()和hashCode()//考試 hashCode()ArrayList * Hashtable * 其他的存儲方式:

LinkedList //特點:可以刪除指定位置數據

練習:

向LinkedList添加:

A B C D

打印出時為: DCBA LinkedListTest.java

練習(MyQueueTest.java):

模擬一個隊伍(隊列),去買票一個動作

思路: 模擬一個隊列(add)模擬出列(removeXXXX)

//先買票的人,先出隊列——先入先出

隊伍是一個特殊數據結構,特點:FIFO(先入先出)

HashSet //不允許重復元素

集合框架類的特點: Collection 接口是一組允許重復的對象 Set接口繼承Collection,但不允許重復使用自己內部的一個排列機制 List接口繼承Collection,允許重復,以元素安插的次序來放置元素,不會重新排列。Map接口是一組成對的鍵——值對象,即所持有的是key—value pairs。Map中不能有重復的key。擁有自己內部機制。在集合框架類中有兩大類接口: 5.1 Collection 5.2 Map

注意:集合框架類——容器,容器中存儲引用數據類型

繼承關系:

接口 實現 歷史集合類型

Set HashSet TreeSet

List ArrayList Vector LinkedList Stack

Map HashMap Hashtable TreeMap Properties

集合框架類解決的問題?變長數組操作的效率。

集合框架類的特點:Vector 2 ArrayList * 3 Hashtable * 4 HashSet 5 Properties

集合框架類的使用:聲明

private Vector vec;2 構造中實例化

vec = new vector();向容器中添加數據:

vec.add();練習:

FILOTest.java

第一個進來,最后一個出去

FILO------棧

練習:

將Student類作為Hashtable的key StudentHash 1 Student StudentHash(主類)StudentHash.java 8月2日

練習:

使用HashMap進行數據的存儲,與遍歷

.keySet()//返回key的集合(Set)

.values()//返回value的列表(ArrayList)HashMapTest.java

HashMap與Hashtable的區別:

Hashtable是非同步的(效率高)

HashMap是同步的(效率低)

獲得系統java的相關的環境變量:

System.getProperties();//可以返回

Properties數據類型(是Map的子類),內容為系統的全部環境變量

練習:

打印輸出系統中全部的環境變量:

//2 了解Properties,還可以與文件系統交互

PropertiesTest.java 思路: Properties p = System….2 遍歷p 復習:

java.lang:

String特點

常用構造:

String(byte[] bytes)//將byte型數組轉換為字符串

String(char[] ch)//將char型數組轉換為字符串

String(char[] value, int offset, int count)

//將char[]轉換為字符串,offset從那里開始(0)//count(char.length)個數

常用方法: char charAt(int index)String str = “ABC”;Char ch = str.charAt(0);ch ==A;String concat(String str)//連接字符串==”+”號 boolean equalsIgnoreCase(String anotherString)//忽略大小寫比較byte[] getBytes()// 將字符串處理為byte[] int indexOf(String str)//判斷字符串所在的索引位置,如果描述的字符串不存在,返回值為-1 int lastIndexOf(String str)//字符串所在的最后一個索引位置,如果描述的字符串不存在,返回值為-1 int length()//返回字符串的長度 String replace(char oldChar,char newChar)//字符串替換 boolean startsWith(String prefix)// 判斷字符串的開頭,是否有匹配的字符串 10 boolean endsWitn(String prerfix)//判斷字符串的結尾,是否有匹配的字符串String substring(int beginIndex, int endIndex)//字符串的截取char[] toCharArray()//將字符串處理為char[] 13 String toLowerCase()//將字符串處理為小寫String toUpperCase()//將字符串處理為大寫String trim()//除去字符串左右兩邊的空格StringBuffer //初始化的容量16 構造:

StringBuffer()//初始化容量 16 StringBuffer(10)//初始化容量 10 StringBuffer(String str)方法:

StringBuffer append(float f)// 向StirngBuffer添加內容

int capacity()// 返回容量

int length()// 返回StringBufferInt實際存儲長度

StringBuilde(效率高)==StringBuffer 基本數據類型的包裝包:

Byte b = new Byte();Int Integer char Character

int a = Integer.parseInt(“11”);System常用的方法:

System.gc();

System.exit(0);//退出java程序,0代表正常退出,非0代表異常退出

System.arraycopy()//數組的拷貝

System.currentTimeMillis()//系統毫秒(1970)

System.getProperties()//系統環境變量

Math 算術類:

Math.abs()// 絕對值

max min

random //1.0----0.0的隨機值

round //四舍五入

Runtime // 獲得系統運行環境,通常用于java調用

//第三方應用程序(.exe).exec(“ ”)java.util

Date //獲得系統時間,不考慮時區

構造:

Date()//獲得系統時間

Date(long date)//根據用戶傳入的系統毫秒獲取時間

方法:

toString()格式化日期: java.text.SimpleDateFormat 構造:

SimpleDateFormat(String str)方法:

String format(date)

Calendar //日期,可以考慮時區

固定用法:

Calendar cal = Calendar.getInstance();//時區

TimeZone tz = TimeZone.getTimeZone(“GMT + 8:00”);Calendar cal = Calendar.getInstance(tz);常用的方法:

Date getTime();//返回當前系統時區

int get(int filed);// Calendar.靜態變量

Random 構造:

Random()方法:

int nextInt(xxxx)//返回指定范圍的隨機數字

需要可以變長的數組,可以提高效率

集合框架類:一組相同元素的集合。Vector 構造:

Vector()//無參構造,初始化容量為10 方法:

Boolean add(E e)//向容器中存儲數據

Void addElement(E obj)//向容器中存儲數據

elements()//為Enumeration提供容器的地址Enumeration //應用于容器元素的遍歷

方法:

boolean hasMoreElements()//判斷指針是否還有數據

E nextElement()//返回當前的元素,并且指針下移

ArrayList 構造:

ArrayList()//初始化容量 10 方法:

add()

iterator()//為Iterator()提供容器的地址

Iterator: //遍歷容器中的元素

方法:

boolean hasNext()// 判斷指針是否還有數據

E next()//返回當前的元素,并且指針下移

Vector 與ArrayList的區別:

Vector效率低,線程同步 ArrayList 效率高,線程非同步

Hashtable //存儲數據時,通過key,value的方式成對存儲

//只要知道key可以一次性操作value 方法:

put(key,value)//向Hashtable容器存儲數據

elements()//返回Enumeration value的地址

key()//返回Enumeration 提供key的地址

E get(key)//根據表述的key一次獲得value remove(Object key)//根據表述的key刪除value

Hashtable中key是一個自定義的數據類型,那么這個自定義類型,必須合理覆蓋Object;public boolean equals(Object obj)public int hashCode()HashMap(同步)

LinkedList //鏈表——提供了方便的操作方法

方法:

addFirst()removeFirst()addLast()removeLast()繼承關系:

Collection Set-------不允許重復數據List---------允許重復數據

Collection list = new ArrayList();//面向接口

Map------成對存儲

使用官方類庫方法:結合面向對象的思想

1.1 這個類的作用

1.2 這個類的構造

1.3 這個類的常用方法一些特殊類的固定用法

8月3日

java.io //為硬盤文件的讀,寫提供功能

File //在java中就代表磁盤上的一個文件

//它只可以訪問這個文件的屬性,并且它可以創建,刪除文件,但是,它不可以控制文件中的內容

構造:

File(String pathname)示例:聲明

File f;構造中初始化

//f代表當前目錄下的new.txt f = new File(“new,txt”);3 方法:

boolean createNewFile()//新建一個空文件

boolean delete()//刪除這個文件

練習:

在當前目錄下創建一個新的文件判斷這個文件是否存在

1.1 不存在,則創建一個新的文件

1.2存在,則輸出這個文件的修改時間

新建項目:IO

新建類:FileTest.java 2 輸出文件產相關信息

2.1 這個文件的名字

2.2 這個文件的絕對路徑

I/O的基本原理:

流(stream):流是指在計算機的輸入輸出之間運動的數據序列。是用于I/O編程的抽象概念,表示線性的,順序的輸入和輸出的數據流。

流分為兩類:

輸入流:代表從外設流入計算機的數據序列:輸入流:源流(source stream)輸出流:代表從計算機流向外設的數據序列:輸出流:目的流(sink stream)在java中流的分類:

主體是程序 字節流---------代表傳輸的數據類型為byte類型,1字節

1.1 InputStream //可以從磁盤中讀取文件

1.2 OutputStream //可以向磁盤中的文件寫入內容 字符流---------代表傳輸的數據類型為char類型,2字節

2.1 Reader(輸入流):可以從磁盤中讀取文件

2.2 Writer(輸出流):可以向磁盤中的文件寫入內容

使用字節流:

練習:ByteStream中實現文件的寫入,讀取 使用FileOutputStream 向hello.txt中寫入內容“MyFirstOutput” 1.1 FileOutputStream 的構造:

FileOutputStream(File file)

FileOutputStream(File file, Boolean append)

//append參數:為true,將會以追加模式進行寫操作

false,將會覆蓋原有文件

1.2 方法:

void write(byte[] b)

void close()//釋放資源使用FileInputStream()2.1 構造

2.2 方法

int read(byte[] b)

//將讀出的內容存儲到byte[] 中,并且返回數組的長度

操作資源三大步: 打開

操作(讀,寫)

關閉

ByteStream.java

練習:使用java實現copy指令:

MyCopy

要求:java MyCopy args1 args2

結果:將args1中的內容copy到args2 思路:

1、從args1中讀取內容

2、將讀取的內容寫入到args2 書寫:

1、考慮需要的屬性

2、構造初始化屬性

3、方法實現copy

int read()//無參read方法 返回byte型數據

int read(byte[ ] b)//返回讀取內容的長度

8月5日

字符流:char FileReader 構造:

FileReader(String filename)// 以參數中的文件名,創建輸入字符流

FileWriter 練習:

FileRW.java

使用字符流實現文件的讀寫

注:程序結構參考ByteStream 字符流的特點:

由于字符流在write()實現時,使用了緩沖機制,所以在write()完畢后,必須同步緩沖區。

調用:

flush();或者

close();

System.in //可以接收用戶在終端的輸入

int read()//返回用戶在程序運行過程中的鍵盤輸入,為此輸入的ascii碼

System.in.read();//程序會阻塞狀態,只有當用戶輸入字符,并且按下“回車鍵”程序,才會繼續運行

ReadTest.java 流鏈:

目的:

在實際開發中,提高基本的字節流或者字符流的讀取效率(讀寫效率)和更方便的操作機制(除了char,byte,String),還可以操作其他數據類型。

注意:一個程序很少只用一個流類來處理數據,通常都有使用一系列流類叫流鏈來處理。

字節流: BufferedInputStream BufferdeOutputStream

//特點:為基本的I/O操作,提供緩存區域

//提高字節流的操作效率

BufferedTest.java DataInputStream DataOutputStream

//特點:為各種基本,特殊數據類型提供操作方式

DataTest.java 輸入流量

DataSource-àFileInputStream-àBufferedInputStream--àDataInputStream-àProgram 輸出流量

Program-à DataOutputStream-à BufferedOutputStream-àFileOutputStream àDatasink 練習:

字符流版本的,MyCopy MyCharCopy.java 流鏈:

字節流的流鏈

字符流的流鏈

BufferedReader BufferedWriter

//提高I/O操作效率

BufferedRW.java

Alt + shift + z //自動寫出異常

System.in.read();

System.in //java 中的標準輸入流

ReadTest.java 8月6日 將對象存入到文件中(序列化存儲)* ObjectSave.java 手工實現步驟:

將User數據類型的構造,封裝,進行編寫

使用DataxxxStream進行讀寫;

將User對象的數據進行拆分(setxxx,getxxx)序列化存儲實現:

ObjectInputStream ObjectOutputStream //對于對象的讀和寫

方法:

Object readObject()

void writeObject(Object obj)

注意:讀或寫的對象,必須實現Serializable(序列化)接口

示例:

//這個對象支持了序列化存儲 //可以使用readObject()|| writeObject()方法了

class User implements Serializable { }

ObjectSerializable.java

回顧:java.io File //特點:代表磁盤的文件,只可以訪問文件的屬性流的概念:只要計算機中線性的,順序的數據輸入,輸出

輸入流:

輸出流:

java的角度:

字節流:

InputStream //讀取內容

OutputStream //寫入內容

特點:基本數據類型byte 字符流:

Writer: Reader:

特點:基本數據類型char 3 字節流和字符流的應用:

字節流:

FileInputStream FileOutputStream 字符流:

FileWriter FileReader 流鏈(包裝流)

特點:

增加I/O的操作效率。(分配了一段內存-----緩沖區)

提供名種基本數據類型和特殊類型的操作機制

字節流: BufferedInputStream

BufferedOutputStream //特點:提高I/O操作效率DataInputStream

DataOutputStream //特點:提供基本,特殊類型操作

字符流: BufferedReader //特點:readLine();BufferedWriter 5 序列化存儲:

特點:將對象進行存儲,讀取ObjectInputStream ObjectOutputStream

注意:要序列化存儲對象必須實現:Serializable 接口 大練習:

使用

java.lang java.util java.io

實現一個用戶的管理查詢系統

功能:添加用戶瀏覽用戶刪除用戶查找用戶退出程序

見UserManager文件夾

解決數據的累加問題: 程序一運行的時候,就將文件中的所有數據保存在內存中。

EOFException //文件指針已經到末尾時,還要繼續讀取

User user

User =(User)is.readObject();While(user!= null){

array.add(user);ois.readObject();}

ArrayList:

int size()//可以返回ArrayList中的元素個數

E get(int index)//根據用戶傳入的索引值,返回所存儲數據

remove(int index)//刪除指定位置的元素

第二篇:java中常用關鍵字總結

Java中的關鍵字總結

final 關鍵字

1、用final修飾的類不能被繼承,沒有子類;

2、用final修飾的方法,方法不能被重寫;

3、用final修飾變量,變量的值不能被修改,表示常量,(書寫規范:全部字母都要大寫;多個單詞,可以使用下劃線(_)分開;)注意:如果被final修飾的變量是一個引用類型的數據,那么通過這個引用改變堆空間中的數據,不會報錯;如果被final修飾的變量是一個引用類型的數據,那么通過這個引用改變堆空間中的數據,不會報錯;

4、final用于成員變量表示該成員變量為常量,不能被修改,必須在變量定義時賦值。

5、final用于局部變量表示該局部變量為常量,不能被修改,可以在變量定義時賦值,也可以先定義變量后賦值。什么時候用final關鍵字? 有的時候不想別人重寫我的方法就使用final關鍵字修飾該方法;

static關鍵字

1、static用于成員變量表示該變量只有一份,也就是說靜態成員變量屬于類而不屬于某個具體的類實例對象,所有的類實例對象共享這個靜態成員變量; 靜態函數是不需要對象的,直接可以使用類名來調用;

2、非靜態函數可以調用靜態函數;靜態函數不能調用非靜態函數(非靜態函數都是通過對象調用的);靜態函數不能使用非靜態成員變量,但可以使用靜態成員變量;

3、靜態函數調用時不需要對象的,所以不能使用和對象有關的關鍵字;(this;super;)

4、構造函數不能使用static修飾(構造函數是創建對象,開辟空間,給所有成員變量賦默認值之后,有JVM調用進棧,用來給對象的成員變量賦初始值的)static用于類,這里指的是內部類,那么在別的地方就可以通過外部類名來引用這個靜態的內部類。

5、static還可以用于類的代碼塊,叫做靜態代碼塊,靜態代碼塊在類加載的時候就執行完畢,而類只加載一次;是在類中獨立于類成員的static語句塊,可以有多個,位置可以隨便放,它不在任何的方法體內,JVM加載類時會執行這些靜態的代碼塊,如果static代碼塊有多個,JVM將按照它們在類中出現的先后順序依次執行它們,每個代碼塊只會被執行一次。什么時候用static關鍵字? 不想建立對象時;對于公用的成員變量必須使用static關鍵字修飾才能保證共享;

private關鍵字

1、java中的訪問權限修飾符(作用是控制被修飾的成員的訪問權限);被private修飾的成員,只能在本類中使用;所以被私有的成員需要在外界訪問,還需要提供一個公共的方法;

設值:set + 變量名(變量名的首字母大寫); 取值:get + 變量名(變量名的首字母大寫);

2、構造函數私有化,就只能在被類中使用,別的地方調用不了;單例設計模式時會用到;

在開發中,一般類的成員變量都要私有化,然后提供get和set方法;

interface關鍵字

1、interface接口不是一個類,使用interface聲明;接口沒有構造函數;接口是用來描述不屬于繼承體系的擴展功能的;還可以定義規則;接口和類之間是實現關系,一個實現類可以實現多個接口;接口和接口之間是繼承關系,可以多繼承和多重繼承;

2、接口中可以書寫的內容:

成員變量:只能使用一下修飾符:public static final;也就是說,接口中的成員變量,都是常量;

成員函數: 只能使用修飾符:public abstract;也就是說,接口中的方法,都是公共和抽象的;一般函數前面的修飾符,推薦public不要省略;

什么時候用interface關鍵字? 對于繼承體系之外的擴展功能需要使用接口來描述;

implements關鍵字

implements用于實現接口,需要實現接口中的所有方法,可以同時實現多個接口。extends關鍵字

extends用于繼承父類或父接口,繼承父類時只能是單繼承。

class關鍵字

class用于聲明類,訪問權限可以是public或者默認權限,還可以指定為abstract、final,訪問權限對于頂層類和內部類的限制是不同的。

instanceof關鍵字

1、比較運算符,運算符左邊是一個指向一個對象的引用(左邊就是一個變量名),右邊是一個類名,運算符表示的意思就是:判斷左邊的對象的類型是不是右邊的類;

2、使用instanceof關鍵字,可以實時判斷一個對象的類型,就可以避免強制類型轉換中容易出現的類型轉換異常。

abstract關鍵字

1、abstract用于類表示這個類為抽象類,不能實例化。

2、抽象類,必須由子類去繼承,繼承的子類必須實現父類中所有的抽象方法,否則子類也是抽象的;

3、抽象函數必須放在抽象類中;抽象類中除了抽象函數,還可以定義所有一般類中可以定義的成員;

4、抽象類中可以不書寫抽象方法;抽象類中必須有構造方法;抽象類一定是父類;

5、抽象類是父類,用來描述所有子類的共性信息的,只是描述的有些功能是不具體的;

6、abstract用于方法表示這個方法為抽象方法,只需聲明,不用實現,由子類實現,抽象方法不能用private和static關鍵字。什么時候用abstract關鍵字? 當事物的功能描述不清,只能表示有這個功能時,就應該使用抽象修飾該功能,這個功能就是抽象的功能;如果一個類中有抽象的功能,那么這個類也是抽象的類;不想實例化這個類(包括自己也不行),但是允許別人繼承,也可以使用抽象類。

this關鍵字

1、表示自身所屬對象的引用;哪個對象調用this,this就指向哪個對象;

2、Java關鍵字this只能用于方法方法體內。當一個對象創建后,Java虛擬機(JVM)就會給這個對象分配一個引用自身的指針,這個指針的名字就是this。因此,this只能在類中的非靜態方法中使用,靜態方法和靜態的代碼塊中絕對不能出現this.什么時候用this關鍵字?

1、通過this調用另一個構造方法,用法:this(參數列表),這個僅僅在類的構造方法中,別的地方不能這么用。如果一個構造函數中有this()語句,就沒有隱式三步,隱式三步在this語句調用的那個構造函數中,且this語句必須在第一行的位置;

2、函數參數或者函數中的局部變量和成員變量同名的情況下,成員變量被私有化,此時要訪問成員變量則需要用“this.成員變量名”的方式來引用成員變量。(用來區分成員變量和局部變量)

3、在函數中,需要引用該函所屬類的當前對象時候,直接用this。

super關鍵字

1、表示父類;可以在子類中調用父類的非私有成員和構造函數;

2、調用方法:

調用父類構造函數:super(參數);(父類中沒有無參構造函數在父類中添

加一個無參構造;在子類中手動調用有參構造函數)調用父類成員變量:super.變量名; 調用父類成員函數:super.函數名(參數);

3、super關鍵和this作用類似,是被私有的成員變量或者成員方法變為可見,或者說用來引用被私有的成員變量和成員方法,不過super是用在子類中,目的是訪問直接父類中被屏蔽的成員.什么時候用super關鍵字?

如果父類中沒有無參構造函數是,需要在子類中用super調用有參構造函數;

第三篇:java 調用webservice的各種方法總結

一、利用jdk web服務api實現,這里使用基于 SOAP message 的 Web 服務

1.首先建立一個Web services EndPoint:

Java代碼

package Hello;

import javax.jws.WebService;

import javax.jws.WebMethod;

import javax.xml.ws.Endpoint;

@WebService

public class Hello {

@WebMethod

public String hello(String name){

return “Hello, ” + name + “n”;}

public static void main(String[] args){

// create and publish an endpoint

Hello hello = new Hello();

Endpoint endpoint Endpoint.publish(“http://localhost:8080/hello”, hello);

} }

=

2.使用 apt 編譯 Hello.java(例:apt-d [存放編譯后的文件目錄] Hello.java),會生成 jaws目錄

3.使用java Hello.Hello運行,然后將瀏覽器指向http://localhost:8080/hello?wsdl就會出現下列顯示

4.使用wsimport 生成客戶端

使用如下:wsimport-p.-keep http://localhost:8080/hello?wsdl

5.客戶端程序:

Java代碼

1.class HelloClient{ 2.3.public static void main(String args[]){ 4.5.HelloService service = new HelloService();6.7.Hello helloProxy = service.getHelloPort();8.9.String hello = helloProxy.hello(“你好”);10.11.System.out.println(hello);12.13.} 14.15.} 16.二、使用xfire,我這里使用的是myeclipse集成的xfire進行測試的

利用xfire開發WebService,可以有三種方法:

1一種是從javabean 中生成;

一種是從wsdl文件中生成;

還有一種是自己建立webservice

步驟如下:

用myeclipse建立webservice工程,目錄結構如下:

首先建立webservice接口,代碼如下:

Java代碼

1.package com.myeclipse.wsExample;2.3.//Generated by MyEclipse 4.5.6.7.public interface IHelloWorldService { 8.9.10.11.public String example(String message);12.13.14.15.} 16.Java代碼

1.package com.myeclipse.wsExample;2.3.//Generated by MyEclipse 4.5.6.7.public class HelloWorldServiceImpl implements IHelloWorldService { 8.9.10.11.public String example(String message){ 12.13.return message;14.15.} 16.17.18.19.} 20.修改service.xml 文件,加入以下代碼:

Xml代碼

1.2.3. 4.5.HelloWorldService 6.7. 8.9.com.myeclipse.wsExample.IHelloWorldService 10.11. 12.13. 14.15.com.myeclipse.wsExample.HelloWorldServiceImpl 16.17. 18.19. 20.21.literal 22.23.application 24.25. 26.把整個項目部署到tomcat服務器中,打開瀏覽器,輸入http://localhost:8989/HelloWorld/services/HelloWorldService?wsdl

客戶端實現如下:

Java代碼

1.package com.myeclipse.wsExample.client;2.3.import java.net.MalformedURLException;4.5.import java.net.URL;6.7.8.9.import org.codehaus.xfire.XFireFactory;10.11.import org.codehaus.xfire.client.Client;12.13.import org.codehaus.xfire.client.XFireProxyFactory;14.15.import org.codehaus.xfire.service.Service;16.17.import org.codehaus.xfire.service.binding.ObjectServiceFactory;18.19.20.21.import com.myeclipse.wsExample.IHelloWorldService;22.23.24.25.public class HelloWorldClient { 26.27.public static void main(String[] args)throws MalformedURLException, Exception { 28.29.// TODO Auto-generated method stub 30.31.Service s=new ObjectServiceFactory().create(IHelloWorldService.class);32.33.XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire());34.35.String url=“http://localhost:8989/HelloWorld/services/HelloWorldService”;36.37.38.39.try 40.41.{ 42.43.44.45.IHelloWorldService hs=(IHelloWorldService)xf.create(s,url);46.47.String st=hs.example(“zhangjin”);48.49.System.out.print(st);50.51.} 52.53.catch(Exception e)54.55.{ 56.57.e.printStackTrace();58.59.} 60.61.} 62.63.64.65.} 66.這里再說點題外話,有時候我們知道一個wsdl地址,比如想用java客戶端引用.net 做得webservice,使用myeclipse引用,但是卻出現無法通過驗證的錯誤,這時我們可以直接在類中引用,步驟如下:

Java代碼

1.public static void main(String[] args)throws MalformedURLException, Exception { 2.3.// TODO Auto-generated method stub 4.5.Service s=new ObjectServiceFactory().create(IHelloWorldService.class);6.7.XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire());8.9.10.11.//遠程調用.net開發的webservice 12.13.Client c=new Client(new URL(“http://www.tmdps.cn/axis2/

同理,也需要將axis2復制到webapp目錄中

在axis2中部署webservice有兩種方法,第一種是pojo方式,這種方式比較簡單,但是有一些限制,例如部署的類不能加上包名

第二種方式是利用xml發布webservice,這種方法比較靈活,不需要限制類的聲明

下面分別說明使用方法:

1.pojo方式:在Axis2中不需要進行任何的配置,就可以直接將一個簡單的POJO發布成WebService。其中POJO中所有的public方法將被發布成WebService方法。先實現一個pojo類:

Java代碼

1.public class HelloWorld{ 2.3.public String getName(String name)4.5.{ 6.7.return ”你好 “ + name;8.9.} 10.11.public int add(int a,int b)12.13.{ 14.15.return a+b;16.17.} 18.19.} 20.由于這兩個方法都是public類型,所以都會發布成webservice。編譯HelloWorld類后,將HelloWorld.class文件放到%tomcat%webappsaxis2WEB-INFpojo目錄中(如果沒有pojo目錄,則建立該目錄),然后打開瀏覽器進行測試:

輸入一下url:

http://localhost:8080/axis2/services/listServices

會列出所有webservice

這是其中的兩個webservice列表,接著,在客戶端進行測試:

首先可以寫一個封裝類,減少編碼,代碼如下:

Java代碼

1.package MZ.GetWebService;2.3.import javax.xml.namespace.QName;4.5.6.7.import org.apache.axis2.AxisFault;8.9.import org.apache.axis2.addressing.EndpointReference;10.11.import org.apache.axis2.client.Options;12.13.import org.apache.axis2.rpc.client.RPCServiceClient;14.15.16.17.18.19.public class GetWSByAxis2 { 20.21.private static String EndPointUrl;22.23.private static String QUrl=”http://ws.apache.org/axis2“;

24.25.private QName opAddEntry;26.27.public String WSUrl;28.29.public RPCServiceClient setOption()throws AxisFault 30.31.{ 32.33.RPCServiceClient serviceClient = new RPCServiceClient();34.35.Options options = serviceClient.getOptions();36.37.EndpointReference targetEPR = new EndpointReference(WSUrl);38.39.options.setTo(targetEPR);40.41.return serviceClient;42.43.} 44.45.46.47.public QName getQname(String Option){ 48.49.50.51.return new QName(QUrl,Option);52.53.} 54.55.//返回String 56.57.public String getStr(String Option)throws AxisFault 58.59.{ 60.61.RPCServiceClient serviceClient =this.setOption();62.63.64.65.opAddEntry =this.getQname(Option);66.67.68.69.String str =(String)serviceClient.invokeBlocking(opAddEntry, 70.71.new Object[]{}, new Class[]{String.class })[0];72.73.return str;74.75.} 76.77.// 返回一維String數組 78.79.public String[] getArray(String Option)throws AxisFault

80.81.{ 82.83.RPCServiceClient serviceClient =this.setOption();84.85.86.87.opAddEntry =this.getQname(Option);88.89.90.91.String[] strArray =(String[])serviceClient.invokeBlocking(opAddEntry, 92.93.new Object[]{}, new Class[]{String[].class })[0];94.95.return strArray;96.97.} 98.99.//從WebService中返回一個對象的實例

100.101.public Object getObject(String Option,Object o)throws AxisFault 102.103.{ 104.105.RPCServiceClient serviceClient =this.setOption();106.107.QName qname=this.getQname(Option);108.109.Object object = serviceClient.invokeBlocking(qname, new Object[]{},new Class[]{o.getClass()})[0];110.111.return object;112.113.} 114.115.116.117.///////////////////////////////////////// 讀者可以自己封裝數據類型,如int,byte,float等數據類型

118.119.} 120.客戶端調用方法:

Java代碼

1.MZ.GetWebService.GetWSByAxis2 ws=new MZ.GetWebService.GetWSByAxis2();2.3.ws.WSUrl=”http://localhost:8989/axis2/services/HelloWorld“;4.5.HelloWorld hello=(HelloWorld)ws.getObject(”getName“, HelloWorld.class);6.7.8.9.10.11.System.out.println(hello.getName(”zhangjin“));12.2.使用service.xml發布webservice,這種方式和直接放在pojo目錄中的POJO類不同。要想將MyService類發布成Web Service,需要一個services.xml文件,這個文件需要放在META-INF目錄中,該文件的內容如下:

Xml代碼

1. 2.3. 4.5.HelloWorld webservice 6.7. 8.9.10.11.service.HelloWorld 12.13. 14.15. 16.17. 20.21. 24.25. 26.27. 28.其中元素用于發布Web Service,一個元素只能發布一個WebService類,name屬性表示WebService名,如下面的URL可以獲得這個WebService的WSDL內容:

http://localhost:8080/axis2/services/myService?wsdl

除此之外,還有直接可以在其中制定webservice操作方法:可以這樣些service.xml文件

Java代碼

1. 2.3. 4.5.HelloWorld service 6.7. 8.9.

10.11.service.HelloWorld 12.13. 14.15. 16.17. 18.19. 20.21. 22.23. 26.27. 28.29. 30.如果要發布多個webservice,可以在文件兩段加上...發布

第四篇:Java開發筆記 — HttpServletRequest方法總結

Java開發筆記 — HttpServletRequest方法總結

HttpServletRequest方法總結

getScheme()方法返回請求的計劃,比如http,https或者ftp.getServerName()方法返回被發送請求的服務器的主機名 getServerPort()方法返回被發送請求的端口號。

getContextPath()返回請求地址的根目錄,以“/”開關,但不是以“/”結尾。

一個常用的獲得服務器地址的連接字符串是: String path = request.getContextPath();String basePath = request.getScheme()+“://”+request.getServerName()+“:”+request.getServerPort()+path+“/”;getCookies()取得cookie

getMethod()取得請求方法,如get,post或put getRequestURL()取得請求URL(統一資源定位符)getRequestURI()取得請求URI(統一資源標識符)getSession()取得對應session getHeaderNames()返回請求包含的所有頭名稱的一個enumeration(遍歷器)使用方法如下:

Enumeration en = request.getHeaderNames();while(en.hasMoreElements()){

out.print(en.nextElement());

} 輸出如下結果:

accept accept-language accept-encoding user-agent host connection cookie 具體含義是:

Accept:瀏覽器可接受的MIME類型。

Accept-Language:瀏覽器所希望的語言種類,當服務器能夠提供一種以上的語言版本時要用到。

Accept-Encoding:瀏覽器能夠進行解碼的數據編碼方式,比如gzip。Servlet能夠向支持gzip的瀏覽器返回經gzip編碼的HTML頁面。許多情形下這可以減少5到10倍的下載時間。

User-Agent:瀏覽器類型,如果Servlet返回的內容與瀏覽器類型有關則該值非常有用。Host:初始URL中的主機和端口。

Connection:表示是否需要持久連接。如果Servlet看到這里的值為“Keep-Alive”,或者看到請求使用的是HTTP 1.1(HTTP 1.1默認進行持久連接),它就可以利用持久連接的優點,當頁面包含多個元素時(例如Applet,圖片),顯著地減少下載所需要的時間。要實現這一點,Servlet需要在應答中發送一個Content-Length頭,最簡單的實現方法是:先把內容寫入 ByteArrayOutputStream,然后在正式寫出內容之前計算它的大小。

Cookie:這是最重要的請求頭信息之一

getHeader(name)返回指定名稱的特定請求的值。使用方法如下:

out.print(“cookie:===”+request.getHeader(“cookie”)+“
”);完整舉例: accept:===*/* accept-language:===zh-cn accept-encoding:===gzip, deflate user-agent:===Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1;TheWorld)host:===localhost:8080 connection:===Keep-Alive cookie:===JSESSIONID=BF00F7FD72F5DF83DF8F62E3D5EFF960

第五篇:學習Java的方法

學習Java的方法

就我個人而言,是不太喜歡java的,更傾向于C++。

很多網友朋友問我學習Java有沒有什么捷徑,我說“沒有,絕對沒有!”。但是我卻很愿意將自己學習的一些經驗寫出來,以便后來者少走彎路,幫助別人是最大的快樂嘛!

要想學好Java,首先要知道Java的大致分類。我們知道,自從Sun推出Java以來,就 力圖使之無所不包,所以Java發展到現在,按應用來分主要分為三大塊:J2SE,J2ME和 J2EE,這也就是Sun ONE(Open Net Environment)體系。J2SE就是Java2的標準版,主要 用于桌面應用軟件的編程;J2ME主要應用于嵌入是系統開發,如手機和PDA的編程; J2EE是Java2的企業版,主要用于分布式的網絡程序的開發,如電子商務網站和ERP系統。J2SE開發桌面應用軟件比起VC,VB,DEPHI這些傳統開發語言來說,優勢好象并不明顯。J2ME對于初學者來說,好象又有點深奧,而且一般開發者很難有開發環境。所以現在應用最廣泛又最好學的就是J2EE了。J2EE又包括許多組件,如 Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要學習起來可不是一兩天的事。

那么又該如何學習J2EE呢?當然Java語法得先看一看的,I/O包,Util包,Lang包你都熟悉了嗎?然后再從JSP學起。如果你學過HTML,那么事情要好辦的多,如果沒有,那你快去補一補HTML基礎吧。其實JSP中的Java語法也不多,它更象一個腳本語言,有 點象ASP。然后你就該學一學Servlet了。Servlet就是服務器端小程序,他負責生成發送給客戶端的HTML文件。JSP在執行時,也是先轉換成Servlet再運行的。雖說JSP理論上可以完全取代Servlet,這也是SUN推出JSP的本意,可是Servlet用來控制流程跳轉還

是挺方便的,也令程序更清晰。接下來你應該學習一下Javabean了,可能你早就看不管 JSP在HTML中嵌Java代碼的混亂方式了,這種方式跟ASP又有什么區別呢?還好,SUN提供了Javabean可以把你的JSP中的Java代碼封裝起來,便于調用也便于重用。接著就是 EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean還是有區別的。它是一個體系結構,你可以搭建更安全、更穩定的企業應用。它的大量代 碼已由中間件(也就是我們常聽到的Weblogic,Websphere這些J2EE服務器)完成了,所

以我們要做的程序代碼量很少,大部分工作都在設計和配置中間件上。至于JDBC,就不用我多說了,你如果用java編過存取數據庫的程序,就應該很熟悉。還有,如果你要用 Java編發送電子郵件的程序,你就得看看Javamail了。

好了,對Java和J2EE有了一些基本概念之后,你就應該編一些程序了,千萬不要紙 上談兵哦。最好找一些有實例且帶光盤的書來看,這樣看到好的程序就可以直接Ctrl+C 再Ctrl+V,也不用勞您老大架再親自把它 再輸一遍吧,再說直接復制還不用怕出錯,何樂而不為呢!還有就是要經常上一些好的Java編程文章,有好的文章要Cut下來,有問題盡管問,只要問題不是太傻,一般高手都會回答你的。下面介紹幾個好的Java方面的編程網站:CSDN論壇 http:/// 那里Java資料比較全;

java.com.cn http://.cn/ 看這域名就知道有多牛,注冊用戶快接近一 萬了,同時 1

在線人數也在一千左右,人氣很旺的;

IBM的開發者網絡 http://

IBM永遠的藍色巨人!!

那么我書也看了,程序也做了,別人問我的問題我都能解決了,是不是就成為高手 了呢?當然沒那么簡單,這只是萬里長征走完了第一步。不信?那你出去接一個項目,你知道怎么下手嗎,你知道怎么設計嗎,你知道怎么組織人員進行開發嗎?你現在腦子里除了一些散亂的代碼之外,可能再沒有別的東西了吧!你現在最缺的是實際的工作經驗,而不是書本上那些憑空想出來的程序。所以你快去找一份Java的編程工作來做吧(如果是在校學生可以去做兼職啊),在實踐中提高自己,那才是最快的。不過你得祈

禱在公司里碰到一個高手,而且他還愿意不厭其煩地教你,這樣好象有點難哦!

還有一個辦法就是讀開放源碼的程序了。我們知道開放源碼大都出自高手,他們設 計合理,考慮周到,再加上有廣大的程序員參與,代碼的價值自然是字字珠嘰,鏗鏘有 力(對不起,偶最近《金裝四大才子》看多了)。學Java必讀的兩個開源程序就是Jive 和Pet Store.。Jive是國外一個非常著名的BBS程序,完全開放源碼。論壇的設計采用 了很多先進的技術,如Cache、用戶認證、Filter、XML等,而且論壇完全屏蔽了對數據庫的訪問,可以很輕易的在不同數據庫中移植。論壇還有方便的安裝和管理程序,這是我們平時編程時容易忽略的一部份(中國程序員一般只注重編程的技術含量,卻完全不考慮用戶的感受,這就是我們與國外軟件的差距所在)。Jive的資料在很多網站上都有,大家可以找來研究一下。相信你讀完代碼后,會有脫胎換骨的感覺。遺憾的是Jive 從2.5以后就不再無條件的開放源代碼,同時有licence限制。不過幸好還有中國一流的Java程序員關注它,外國人不開源了,中國人就不能開源嗎?這里向大家推薦一個漢化的Jive版本—J道。Jive(J道版)是由中國Java界大名鼎鼎的banq在Jive 2.1版本基礎上 改編而成, 全中文,增加了一些實用功能,如貼圖,用戶頭像和用戶資料查詢等,而且有一個開發團隊在不斷升級。你可以訪問banq的網站http:/// 去下載,或到同濟技術論壇的服務器上ftp://nro.shtdu.edu.cn去下,安裝上有什么問題,可以到論壇上去提問。Pet Store.(寵物店)是SUN公司為了演示其J2EE編程規范而推出的開放源碼的程序,應該很具有權威性,想學J2EE和EJB的朋友不要錯過了。

你一定會高興地說,哈哈,原來成為Java高手就這么簡單啊!記得Tomjava也曾碰到過一個項目經理,號稱Java很簡單,只要三個月就可以學會。其實說這種話的人就如當年小日本號稱“三個月拿下中國”一樣大言不慚。不是Tomjava潑你冷水,你現在只是學到了Java的骨架,卻還沒有學到Java的精髓。接下來你得研究設計模式了。設計模式是高級程序員真正掌握面向對象核心思想的必修課。設計模式并不是一種具體“技術”, 它講述的是思想,它不僅僅展示了接口或抽象類在實際案例中的靈活應用和智慧,讓你

能夠真正掌握接口或抽象類的應用,從而在原來的Java語言基礎上躍進一步,更重要的是,設計模式反復向你強調一個宗旨:要讓你的程序盡可能的可重用。關于設計模式的資料,還是向大家推薦banq的網站http:///,他把GOF的23種模式以通俗易懂的方式詮釋出來,純Java描述,真是經典中的經典。有時間再研究一下MVC結構(把Model-View-Control分離開的設計思想)吧,現在很流行的Structs就是它的一種實現方式,不過Structs用起來實在是很繁,我們只要學習其精髓即可,我們完全可以設計自己的MVC結構。然后你再研究一下軟件Refactoring(重整)和極限XP編程,相信你 又會上一個臺階。做完這些,你不如整理一下你的Java代碼,把那些經典的程序和常見的應用整理出來,再精心打造一番,提高其重用性和可擴展性。你再找幾個志同道合的朋友成立一個工作室吧,你可以去承接一些項目做了,一開始可能有些困難,可是你有技術積累,又考慮周全,接下項目來可以迅速作完,相信大家以后都會來找你的,所以Money就嘩啦啦的 來了。。。當然你也可以參加一些開源項目,一方面可以提高自己,另一方面也是為中國軟件事業做貢獻嘛!開發者在互聯網上用CVS合作開發,用QQ,MSN,E-mail討論聯系,天南海北的程序員分散在各地卻同時開發同一個軟件,是不是很有意思呢?

下面介紹兩個好的開源項目網站:

湖北省軟件公共開發平臺http://gro.clinux.org/

共創聯盟http://cosoft.org.cn/

哇,好高興哦,我終于成為高手了!非也,非也。古人云:“山外有山、人外有人”。

你知道計算機界現在的發展形勢嗎?你知道微軟的.NET藍圖和SUN ONE計劃之間的明爭暗斗嗎?你知道計算機技術將向何處發展嗎?其實從各大計算機廠商最近的動作,都可以看出來“Web服務將是下一代互聯網應用的制高點”,而微軟的.NET藍圖和SUN ONE計劃的斗爭焦點,也就是Web服務。Web服務就是一個嶄新的分布式計算模型,它是一系列標準的綜合(XML,SOAP,UDDI,WSDL和WSFL等)。它使得不同語言編寫的軟件能夠輕易的集成起來,使網絡資源和Web站點變成一種服務而不是混亂的垃圾場。不遠的將來,我們就可以在家里點擊一下鼠標,就可以完成出門旅游的全部準備工作,包括定飛機票,定旅游線路,定好房間等。請注意,這所有的一切都是Web站點間自動完成的,再也不用象現在一樣,表面上是電子商務,實際上很多環節都是人工操作。也許你會覺得這是天方夜談,不過就近的說,你也很有可能承接一個項目,要集成兩個企業的ERP系統。很有可能上游企業的系統是用Dephi編的,而下游企業的系統是用Java編的。你說你是Java高手,大家都看者你怎么做呢。所以啊,你還得學習新技術,如Web服務,而且你Dephi也要懂一點吧(Dephi6現在已經提供Web服務的控件了)。你編的Java系統,可能要和.NET集成,所以你.NET要懂一點吧?到最后,你可能發現你已經成為Java高手了,但很多時間卻在搞別的技術。太極張三豐里說,最厲害的招式就是沒有招式,可能就是這個道理吧!

因為剛剛興起,所以網上Web服務的資料不是很多,我還是給大家推薦幾個網站吧:中國UDDI技術聯盟http:///developerWorks/cn/xml/index.shtml?csdn IBM可是Web服務的力推者

下載java 中常用的方法總結word格式文檔
下載java 中常用的方法總結.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    淺談學習JAVA的方法

    崗前培訓 創業培訓 包就業 保底薪 大學生實訓領導品牌 NIEH北京總部實訓基地 1 淺談怎么學習JAVA 其實初學者學習JAVA不要急,剛開始一定很慢,大家都知道萬事開頭難,但細節一定......

    JAVA總結專題

    在這忙忙碌碌的這段時間里,經過老師的輔導,迅速的將一點沒有學的JAVA基礎搞定了!有了基礎學習還是好,萬事開頭難這句話說的太對了,學計算機語言我覺得記憶好的方法就是多打代碼,課......

    Java總結

    Java實驗 1. 調試HelloWorld程序 2. this,super,get ,set,把課本90頁程序4.7中的name改成私有變量 3. 繼承,重寫,父類引用指向子類對象 4. 驗證數組Arrays類和Collection類 5.......

    java總結

    調用父類構造方法 ? 在子類的構造方法中可使用super(argument_list)語句調用父類的構造方法 ? 如果子類的構造方法中沒有顯示地調用父類構造方法,也沒有使用this關鍵字調用重載......

    java中final和static的總結

    Java關鍵字final、static使用總結 Java關鍵字final、static使用總結 一、final 根據程序上下文環境,Java關鍵字final有“這是無法改變的”或者“終態的”含義,它可以修飾非......

    【黑馬程序員】Java中方法的參數傳遞問題

    【黑馬程序員】Java中方法的參數傳遞問題 最近有很多同學,就算是就業班畢業之后,還依然在問 java方法的調用中值的傳遞問題,實際參數究竟什么時候才會改變?接下來我們先由一個例......

    個人對Java構造方法調用的總結(精選)

    個人對Java構造方法調用的總結 1.構造方法必須與定義它的類有完全相同的名字。構造方法沒有返回類型,也沒有void。 2.類可以不聲明構造方法,這時類中隱含聲明了一個方法體為......

    java(Web)中相對路徑,絕對路徑問題總結

    1.基本概念的理解絕對路徑:絕對路徑就是你的主頁上的文件或目錄在硬盤上真正的路徑,(URL和物理路徑)例如: C:xyztest.txt 代表了test.txt文件的絕對路徑。http:///index.htm......

主站蜘蛛池模板: 三级特黄60分钟在线观看| 人妻 校园 激情 另类| 欧美做受又硬又粗又大视频| 精品亚洲aⅴ无码一区二区三区| 综合图区亚洲另类偷窥| 亚洲色精品vr一区区三区| 国产精品麻豆欧美日韩ww| 无码a∨高潮抽搐流白浆| 成年午夜无码av片在线观看| 无码国产偷倩在线播放| 色噜噜狠狠色综合av| 超清av在线播放不卡无码| 日本丰滿岳乱DVD| 久久精品久久精品久久39| 俄罗斯兽交黑人又大又粗水汪汪| 亚洲欧美国产双大乳头| 97人洗澡从澡人人爽人人模| 青娱国产区在线| 欧美最猛性xxxxx大叫| 免费a级毛片无码a| 大香伊蕉日本一区二区| 亚洲欧美丝袜精品久久| 亚洲女初尝黑人巨| 国产卡一卡二卡三无线乱码新区| а√中文在线资源库| 亚洲色欲色欲天天天www| 亚洲中文字幕无码爆乳| 国产免费福利在线视频| 少妇夜夜春夜夜爽试看视频| 成人欧美日韩一区二区三区| 久久精品夜夜夜夜夜久久| 在线亚洲视频网站www色| 激情亚洲一区国产精品| 无码中文字幕色专区| 久久亚洲国产精品成人av秋霞| 国产女人高潮叫床视频| 亚洲成av人片在一线观看| 亚洲欧美日韩中文播放| 99无码精品二区在线视频| 乱码精品一区二区三区| 伊人无码一区二区三区|