JDK的最重要命令行工具:
java: 啟動JVM執行class
javac: Java編譯器
jar: Java打包工具
javadoc: Java文檔生成器
Java最核心的基礎類庫
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;
JDK里面其他會有用處的包
java.text.*;
java.net.*;
javax.naming.*;
一般Java程序運行
javac *.java回車(編譯)
java *(.java)(執行)
Applet小程序的運行
javac *.java回車
appletviewer *(.java)
appletviewer *.html(htm)
執行命令java 文件名(.*)其中文件名嚴格區分大小寫
Tomcat 的目錄結構
/bin??????????????? 存放Windows平臺以及Linux平臺上啟動和關閉Tomcat的腳本文件
/conf?????????????? 存放Tomcat服務器的各種配置文件,其中最重要的配置文件是
??????????????????? server.xml
/server???????????? 包含3個子目錄:classes、lib和webapps
/server/lib???????? 存放Tomcat服務器所需的各種JAR文件(此目錄下的JAR文件只可被Tomcat服務器訪問)
/server/webapps 存放Tomcat自帶的兩個Web應用:admin應用和manager應用
/common/lib???????? 存放Tomcat服務器以及所有Web應用都可以訪問的JAR文件(此目錄下的JAR文件可以被Tomcat服務器和所有的Web應用訪問)
/shared/lib???????? 存放所有Web應用都可以訪問的JAR文件(此目錄下的JAR文件可以被所有的Web應用訪問,但不能被Tomcat服務器訪問)
/logs?????????????? 存放Tomcat日志文件
/webapps??????????? 當發布Web應用時,默認情況下把應用文件放于此目錄下
/work?????????????? Tomcat把由JSP生成的Servlet放于此目錄下
對于一個應用程序來說,main方法是必需的,而且必須按照如上的格式來定義。Java解釋器在沒有生成任何實例的情況下,以main作為入口來執行程序。Java程序中可以定義多個類,每個類中可以定義多個方法,但是最多只能有一個公共類,main方法也只能有一個,作為程序的入口。main方法定義中,括號中的String args[]是傳遞給main方法的參數,參數名為args,它是String類的一個實例。參數可以為0個或多個,每個參數用“類名 參數名”來指定,多個參數間用逗號分隔。
在Java程序中聲明變量后,需給該變量賦值。可用賦值語句來初始化變量——任何變量都不能沒有初始值(否則,則無法通過編譯)。
相對于一個方法的“局部”變量,如果在初始化之前想使用它,編譯器會提示出錯,如下面這樣就是不允許的:
????????????? void f()
??????????????? {
???????????????? int i;
???????????????? i=i+1;
??????????????? }
運算符>>執行一個右移位(帶符號),左邊按符號位補0或1例如:
?????????????? int a=16,b;
???????? b=a>>2;????? //b=4
運算符>>>同樣是執行一個右移位,只是它執行的是不帶符號的移位。也就是說對以補碼表示的二進制數操作時,在帶符號的右移中,右移后左邊留下的空位中添入的是原數的符號位(正數為0,負數為1);在不帶符號的右移中,右移后左邊留下的空位中添入的一律是0。
Java程序里,將一種數據類型的常數或變量轉換到另外的一種數據類型,稱為類型轉換。類型轉換有兩種:自動類型轉換(或稱隱含類型轉換)和強制類型轉換。
???????????? 在實際中常會將一種類型的值賦給另外一種變量類型。如果這兩種類型是兼容的,Java將執行自動類型轉換。
???????????? 簡單的說,當把占用位數較短的數據轉化成占用位數較長的數據時,Java執行自動類型轉換,不需要在程序中作特別的說明。例如,下面的語句把int型數據賦值給long型數據,在編譯時不會發生任何錯誤:
??????? int????? i=10;
??????? long????? j=i;
不是所有的數據類型都允許隱含自動轉換。例如,下面的語句把long型數據賦值給int型數據,在編譯時就會發生錯誤:
???????? long????? i=10;
???????? int????? j=i;
???????????? 這是因為當把占用位數較長的數據轉化成占用位數較短的數據時,會出現信息丟失的情況,因而不能夠自動轉換。這時就需要利用強制類型轉換,執行非兼容類型之間的類型轉換。上面的語句寫成下面的形式就不會發生錯誤:
???????? long????? i=10;
???????? int????? j=(int)i;
假若對主數據類型執行任何算術運算或按位運算,“比int小”的數據(char、byte、short)在正式執行運算之前,那些值會自動轉換成int,這樣一來,最終生成的值就是int類型。
???????????? 整型、實型、字符型數據可以混合運算。運算中,不同類型的數據先轉化為同一類型,然后進行運算,轉換從低級到高級。通常,表達式中最大的數據類型是決定了表達式最終結果大小的那個類型。例如:若將一個float值與一個double值相乘,結果就是double;如將一個int值和一個long值相加,則結果為long。
強制類型轉換的格式是:
???????????? (數據類型)變量名
??????????? 經過強制類型轉換,將得到一個在“()”中聲明的數據類型的數據,該數據是從指定變量所包含的數據轉換而來的。值得注意的是,指定變量本身不會發生任何變化。
????????????? 將占用位數較長的數據轉化成占用位數較短的數據時,可能會造成數據超出較短數據類型的取值范圍,造成“溢出”。如:
???????? long????? i=10000000000;
????????? int????? j=(int)i;
??????????? 因為轉換的結果已經超出了int型數據所能表示的最大整數(4294967295),造成溢出,產生了錯誤。
3.對象運算符(instanceof)
????????? 對象運算符instanceof用來判斷一個對象是否是某一個類或者其子類的實例。如果對象是該類或者其子類的實例,返回ture;否則返回flase。
4.()和[ ]
????????????? 括號運算符()的優先級是所有運算符中最高的,所以它可以改變表達式運算的先后順序。在有些情況下,它可以表示方法或函數的調用。
????????????? 方括號運算符[ ]是數組運算符。
5. .運算符
??????????? .運算符用于訪問對象實例或者類的類成員函數。
6.new運算符
??????? new運算符用于創建一個新的對象或者新的數組。
switch后面括號中表達式的值必須是符合byte,char,short,int類型的常量表達式,而不能用浮點類型或long類型,也不能為一個字符串。
一個switch語句可以代替多個if—else語句組成的分支結構,而switch語句從思路上顯得更清晰。??
Java程序是由一個個類定義組成的,類有兩個部分:屬性和方法。屬性描述類是什么,方法描述類做什么。任何對象都有獨立的內存存儲它的屬性。類的所有的對象共享存貯在內存的方法。
?????? 換言之:方法是類的主要組成部分。在一個類中,程序的作用體現在方法中。
????? 方法即是JAVA創建一個有名字的子程序。一個主方法和若干個子方法構成。主方法調用其他方法,其他方法間也可互相調用,同一個方法可被一個或多個方法調用任意次。
abs(x)??????? x的絕對值(這個方法還有float,int和long型值的版本)
ceil(x)?????? 不小于x的最小整數(向上取整)
exp(x)??????? 指數方法e的x次冪
floor(x)????? 不大于x的最大整數(向下取整)
log(x)??????? x的自然對數(以e為底)
max(x,y)????? 取x和y中較大者。
min (x,y) 取x和y中較小者。
pow (x,y) x的y次冪
sqrt (x)????? x的平方根
posted on 2007-04-10 17:07
jadmin 閱讀(59)
評論(0) 編輯 收藏