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