第一天
前言: JAVA的魅力
一、
1、強(qiáng)大的移植能力:虛擬機(jī)的存在,不同的平臺存在不同的虛擬機(jī)。
2、面向?qū)ο螅?br>3、良好的安全性:虛擬機(jī)的安全設(shè)置,應(yīng)用服務(wù)器的安全性。
4、聯(lián)網(wǎng)能力。
二、
中間件技術(shù):EJB
很好解決了和數(shù)據(jù)庫連接的問題。
三、
設(shè)計模式
MVC
M V C
Model View Control
JavaBean Jsp Servlet
Taglib Applet 控制頁面流轉(zhuǎn)
EJB
業(yè)務(wù)邏輯
IE -------------->Webserver-------------->Appliation Server-------->DB
Jsp Applet EJB
JavaBean WebSerice
Servlet
EJB不能在internet上面部署,RI協(xié)議不能通過防火墻。
無狀態(tài)的會話Bean可以發(fā)布為Webserice.
四、配置Java的環(huán)境:
安裝了jdk1.4之后,在環(huán)境變量里面增加classpath 修改path。
1、classpath
.;c:\j2sdk1.4\lib\tools.jar
“.”表示虛擬機(jī)尋找類的路徑是從當(dāng)前路徑開始。
2.path
c:\j2sdk1.4\bin
editplus 增加編譯和運(yùn)行java的工具。
編譯java的工具設(shè)置
命令 c:\j2sdk1.4\bin\javac.exe
參數(shù) $(FileName)
初始目錄$(FileDir)
運(yùn)行java的工具設(shè)置
命令 c:\j2sdk1.4\bin\javac.exe
參數(shù) $(FileName) Without Extension
初始目錄$(FileDir)
第一章
一、JVM
1、Java 存盤文件名必須是以公共類名(包含主方法的類名)
2、Java 程序以.java結(jié)尾的后綴名。
java區(qū)分大小寫,一般的代碼習(xí)俗。
類名的首字符大寫,方法、變量的首字符小寫,常量全部大寫。
二、垃圾回收機(jī)制 garbage collection
內(nèi)存區(qū)中的變量沒有被任何程序引用時,自動丟棄。
補(bǔ)充實例??
三、源文件布局
package abc.def (“.”表示子目錄路徑,以當(dāng)前目錄為起點的相對路徑)
public class A { }
class B { }
class C { }
包:組織目錄的一種形式
|
|----# abc
|
|# def
|
|----A.class
|----B.class
|----C.class
package/make 機(jī)制
javac -d . 文件名
說明只需要對主調(diào)用程序進(jìn)行編譯即可,類文件的輸出路徑,在當(dāng)前目錄下生成包路徑。
類文件放在包路徑里面,運(yùn)行程序時在包的上一級目錄下面進(jìn)行。
打包方法:jar cvf abc.jar abc (說明:abc.jar是目標(biāo)文件 ,abc源文件)
打包也是在包的上一級目錄中來打包。
打包之后可以將.jar放到classpath環(huán)境變量中來測試。
(補(bǔ)充實例)
第二章 標(biāo)識符 關(guān)鍵字 類型
1、數(shù)字不能做標(biāo)識符的首字符。
2、Java中的注釋:
int x; // a comment 一行中"http://"后的部分為注釋內(nèi)容
/*
The variable x is an integer:
*/int x; “/*” 和 “*/”之間的所有內(nèi)容為注釋內(nèi)容,編譯器對此注釋內(nèi)容不做處理
/**
x -- an integer representing the x coordinate
*/
int x; “/**”和“*/”之間的所有內(nèi)容為注釋內(nèi)容,編譯器對此注釋內(nèi)容不做處理,此種注釋為文檔工具 javadoc 生成文檔時所用
3、關(guān)鍵字
共有52個,其中g(shù)oto ,const沒有實際作用。
4、type 類型
基本類型8種:boolean, char,byte,short,long,int,float,double
與C/C++語言中不同的是,在Java語言中,所有的基本數(shù)據(jù)類型都有預(yù)設(shè)值,就是說當(dāng)我們聲明一個變量時,
即使我們沒有對它賦值,它的值也是一定的,而不像在C/C++中那樣是不可預(yù)測的。具體個類型的預(yù)設(shè)值見下表:
基本數(shù)據(jù)類型 預(yù)設(shè)值
Boolean false
Char ‘\u000‘
Byte (byte)0
Short (short)0
Int 0
Long 0L
Float 0.0L
Double 0.0d
在Java語言中,整型常量有三種形式,它們分別是:十進(jìn)制、八進(jìn)制、十六進(jìn)制。
需要注意的是十進(jìn)制數(shù)不能以0開頭,這是因為八進(jìn)制的數(shù)是以0開頭的,而十六進(jìn)制數(shù)以0x或0X開頭。
浮點數(shù)默認(rèn)的是double 整型默認(rèn)的是int
字符常量
字符型常量是一個單一的字符,其形式是由兩個單引號引起來的一個字符。
但是兩個單引號引起來的不能是單引號和反斜杠,即‘‘’和‘\’是不正確的寫法。
大家一定要記住,Java語言中的字符是16位的Unicode字符,這與C/C++等語言是不一樣的。
同C/C++語言一樣,Java語言也有轉(zhuǎn)意序列。Java中的轉(zhuǎn)意序列的功能見下表:
轉(zhuǎn)義序列 標(biāo)準(zhǔn)形式 功能描述
\ 繼續(xù)
\n NL 回車換行
\t HT 水平制表符
\b BS 后退一格
\r CR 回車不換行
\f FF 換頁
\‘ ‘ 單引號
\\ \ 反斜杠
\" " 雙引號
\ddd 0ddd 八進(jìn)制模式
\xddd 0xddd 十六進(jìn)制模式
\udddd 0xdddd Unicode雙字節(jié)字符
字符串常量
字符串常量是由雙引號引起來的一系列字符,與C/C++語言中不同的是,Java語言中的字符串不是
通過字符數(shù)組來實現(xiàn)的,而是通過字符串類(即String類)來實現(xiàn)的。
數(shù)據(jù)類型轉(zhuǎn)換問題:
(1)小范圍--》大范圍 自動轉(zhuǎn)換
(2)大范圍--》小范圍 強(qiáng)制轉(zhuǎn)換
(3)在位數(shù)相同的情況下,低精度向高精度晉升(四舍五入的原則)
float f = 3.14f
int i = (int) 3.14
(4)short,byte 在參與運(yùn)算時,先自動晉升為int ,再運(yùn)算。
public class javatest1
{
public static void main(String[] args)
{
short a,b,c;
a=1;
b=2;
//c=a+b; //a+b結(jié)果為int,無法判定是否超過C的范圍。
c=(short)(a+b);
System.out.println(c);
}
}
引用類型
數(shù)組
對象
創(chuàng)建對象的過程:
(1)定義一個類;
(2)聲明一個對象;
(3)創(chuàng)建一個對象;
new 關(guān)鍵字的作用:
(1)為該對象分配內(nèi)存空間;
(2)返回該內(nèi)存空間的引用,返回首地址;(引用是指指針的別名)
(3)調(diào)用構(gòu)造函數(shù),構(gòu)造函數(shù)自動將成員函數(shù)賦初值。
類實例等價于對象,都是保存在內(nèi)存存儲區(qū)的一塊。
輸出類型
System.out.println();來自動調(diào)用 toString()
public String toString()
5、按值傳遞(考點)
在方法調(diào)用的時候,方法的傳遞原則:
基本類型數(shù)據(jù)的實參,傳遞的是實參的拷貝
引用類型的實參,傳遞的是引用首地址的拷貝
第三章 變量 操作符 流程控制
1、變量以及作用域
(1)成員變量,又稱為屬性、域;
整個類內(nèi)可以使用,成員變量自動賦初值;
(2)方法變量。又稱為自動變量,本地變量;
本方法內(nèi)使用。
方法變量執(zhí)行的時候才賦初值,在使用之前必須賦初值。
2、短路操作符
&&,||具備短路作用
a&&b當(dāng)a為 false ,則不執(zhí)行b,發(fā)生短路;
a||b當(dāng)a為 true , 則不執(zhí)行b,發(fā)生短路。
3、移位操作符
<< 左移,空位全部補(bǔ)0,左移值=2^n*原值(n移動位數(shù),無溢出時成立,丟“0”時)
>> 右移,空位補(bǔ)0或者1,如原數(shù)最高為1,則補(bǔ)1;如原數(shù)最高為0,則補(bǔ)0;
>>>右移,空位全部補(bǔ)0。
4、流程控制
switch (){
case 常量1 : 語句1;break;
case 常量2 : 語句2;break;
default : 語句;
}
如果沒有,程序會繼續(xù)往下執(zhí)行,執(zhí)行下一個case.
標(biāo)號只允許出現(xiàn)在循環(huán)代碼的前面。
第五章 數(shù)組
1、聲明數(shù)組,不能指出數(shù)組的大小。
int [] i ;
int i [] ;
2、創(chuàng)建數(shù)組 數(shù)組成員自動化(相當(dāng)于類的成員變量)
int [] i = new int [3]
3、賦值
i[0]=1;
int [] i ={1,2,3}
int [] i,j ;i = new int [3]; j=i;
int [] i = new int [] {1,2,3}
2維數(shù)組
聲明、創(chuàng)建
int i [][]= new int[2][3]
int []i[] = new int[2][ ] (必須指出第一維數(shù)組的大小)
int [][]i = new int[2][3]
數(shù)組的維數(shù)不同,不能通過交換應(yīng)用來賦值。
int []i,j[];
i = new int [3];
j = new int [2][3];