JAVA最基礎的語法
1)起源:
源於sun的一個叫Green的項目,給家用電子產品開發一個分佈式系統,通過給家用電器發送EMail來控制它們。
開始準備採用C++,但是C++太複雜,安全性差,所以就開發了一個類C的語言,名字叫Oak,這是java的前身。後來競
爭失敗,走投無路的時候受NetScape啓發,繼續完善改名爲java,開發了一個HotJava瀏覽器。
2)特點:
a:跨平臺,編譯成與平臺無關的中間碼
b:象指針和釋放內存等操作被刪除,屏棄C++中容易出錯的地方,具有內存自動回收功能。是代碼具有健壯性。
去掉了C++中的:指針運算,結構,typedefs,#define,全局變量的定義。釋放內存。
c:包括一個支持http和ftp的基於tcp/ip協議的類庫,使開發internet上的程序更容易。
3)文件說明
javac :java語言編輯器,叫源代碼(後綴爲java)編譯成字節碼(後綴爲class) ---使用方法:javac 代碼文
件.java
java :java字節碼解釋器 ---使用方法:java 字節文
件.class
4)語法:
a:註釋://---表示註釋一行 /* */---表示註釋N行
b:數據類型:(8進制前面有個0,16進制前面有0x,或者0X)
1、整型----------byte(-128--128),short(-32768-32767),int(-21億,2的32次方),long(2的64次方)
2、浮點型--------float,double
3、布耳型--------boolean
4、字符型--------Char //char b='c';
5、字符串型------string //String b="abcdefg";
c:數組:
1、定義:一維:int a[],二維:float b[][]
2、設置長度:a=new int[10] 或者寫在一起:int a[]=new int[10];
3、長度:數組名.length
d:表達式
1、基本運算符號----:+,-,*,/,%(取模)
2、單目運算符號----:++,--,&(位與),|(位或)
3、判斷符號--------: ==,!=,&&(並且),||(或者)
4、對象運算符------:if (myobjcet instanceof 父類) //判斷是否是該父類的子類
5、三元運算符------:i=b?1:0 //表示如果b=true 則i=1,否則爲0
e:控制結構:
1、判斷結構: if (條件) {} else {}
2、開關結構:switch (表達式) {
case 值1:... break;
case 值2:... break;
case 值3:... break;
default:...
}
3:for循環結構: for (int i;i<=N;i++) {....}
4:while循環結構: while (條件) {....}
5:do循環結構: do {...} while (條件)
6:其他控制語句:
---break;
---continue;
---return 值;
---label:提供break,continue跳出循環的作用.跳轉比如:break lab;
5)常用函數:
1:常用數學函數:java.lang.Math
2:字符串函數:
a、Char CharAt(i) ------------------返回第N個字符:
b、int CompareTo(字符串)-----------比較兩個字符串: 小於0表示比他小,等於0表示相等,大於0表
示比他大
c、String Concat(字符串)--------------將兩個字符串連接起來
d、int Indexof(字符或者字符串)-----求字符的位置,找不到返回-1
e、Stinrg Substing(其始位置,結束位置)-求子串
f、String trim()-----------------------去掉空格
3:轉換函數:
a.字符串轉化爲數值:f=new float(s).floatvalue();
d=new double(s).doublevalue();
4:格式化函數:
a、格式話數字:format('2222%s3333%s1111',v1,v2) -------沒有,java5纔有。
b、格式話日期:java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse(date);
java.text.SimpleDateFormat sdfNew = new SimpleDateFormat("MMddyyyy");
return sdfNew.format(d);
*****************************************************************************************************
6)類結構說明:
a、構造函數:與類名相同的函數比如: public HelloWorld () {...} ---構造函數沒有返回值,void也沒有,
如果有那就不是構造函數了
b、結束函數:java沒有提供析構函數,因爲java本身具有自動清除功能,但是他也提供了一個自動垃圾箱的成員
函數:
Protected void finaliaze () {...}
c、父類與子類:
class woman extends men {...}
d、訪問控制:
1、public--------------可以被任意其他類調用
2、protected-----------只能在該類和其子類調用(自己也不能調用????)
3、private-------------只能在本類中調用
4、friendly------------(缺省)可以被本包裏的任意對象訪問。
e、靜態:static
1、靜態變量:static int i=1; //無論在哪個對象裏面改變了靜態變量的值,則所有對象的該靜
態變量都要改變。
2、靜態函數:static void add() {...} //靜態函數不能訪問非靜態函數和變量。他的作用是:可直接調
用。同delphi中的類函數。
f、this 和 super
1、this代表本類。
2、super代表父類。
g、類的類型:
1、abstract------------抽象類,必須至少有一個虛函數。一個抽象類不能創建對象,必須繼承子類才能創
建對象。
2、final---------------結束類:表示該類不能再派生出之類。
3、public--------------公共類:表示其他類可以調用,其他包要使用該類則:import 包。類。
4、synchronicable------同步類:表示這些類的成員函數必須同步。
h、接口:
1、定義:public interface TestIn {....聲明空的方法}
2、使用:class MyClass implements 接口 {實現接口中的方法}
7)異常處理:
1、結構1:
try
{...}
catch (Exception e)
{...}
2、結構2:
try
{...}
finally
{...}
3、拋出錯誤 throw e;
8)HelloWorld例子:
public class HelloWord {
public static void main(String[] args) {
System.out.println("Hello,Wrold!");
}
}
//接收外部參數參數:int a=Integer.ParseInt(args[0]);
int b=Integer.ParseInt(args[1]);
*****************************************************************************************************
9)JAVA中的類:(根類:object)
1、輸入輸出類:java的輸入輸出類要使用java.lang程序包中的類
a: java.lang.System
b: java.lang.Inputstream
c: java.lang.Printstream
------------------------------------------------
System.in爲 Inputstream的對象
System.out爲Printstream的對象
System.err爲Printstream的對象,用於錯誤信息的輸出。
2、Date類 Date d1=new Date(); //定義一個當前時間的類
import java.utils.*
3、Hashtable類 //hash:雜亂序號 hash code:混列碼
說明:Hashtable提供一個hash表,定義:Hashtable h1=new Hashtable(); Hashtable h2=new
Hashtable(20,)
4、Random類 隨機數類
5、Vector類:安裝一個可延續的對象數組
6、AWT類
10)不明白的代碼
1、System.out.flush
---------flush()的作用是清空緩衝區,更新緩衝區,不然有時候會看不到輸出,用BufferedReader用了一個系統
分配的緩衝區,只有緩衝區滿了時候纔會讀出,如果沒滿而你又想操作的話,就要用flush清空緩衝區,讓結果輸出!
2、Integer.parseInt ---------//pa:z//解析,使用格式:parseInt(String s,int radix),返回一個整數
,爲radix進制的
3、hashcode ---------------對象的散列標識,就和你的身份證類似,可以一下子就找到你的資料.數據結
構哈希散列的具體應用
hashtable和hashmap的區別-a、HashTable是線程安全的一個Collection,HashMap不是線程安全的
b、前者是圖,後者是哈希表,在HashMap中不能由get()方法來判斷HashMap中
是否存在某個鍵,而應該用containsKey()方法來判斷。
c、前者的關鍵詞是,遍歷、查找、搜索(如最短路徑)後者的關鍵詞是,衝
突處理,排序,
d、都屬於Map接口的類,實現了將惟一鍵映射到特定的值上。HashMap 類沒有
分類或者排序。它允許一個 null 鍵和多個 null 值。 Hashtable 類似於 HashMap,但是不允許 null 鍵和 null
值。它也比 HashMap 慢,因爲它是同步的。
e、Hashtable缺省的初始大小爲101,載入因子爲0.75,即如果其中的元素個數
超過75個,它就必須增加大小並重新組織元素,所以,如果你知道在創建一個新的Hashtable對象時就知道元素的確切
數目如爲110,那麼,就應將其初始大小設爲110/0.75=148,這樣,就可以避免重新組織內存並增加大小
一個hashtable的例子:
HashTable h=new HashTable();
h.put("用戶1",new Integer(90));
h.put("用戶2",new Integer(50));
h.put("用戶3",new Integer(60));
h.put("用戶4",new Integer(70));
Enumeration e=h.elements();
while(e.hasMoreElements()){System.out.println(e.nextElement());
4、沒有結構怎麼處理?-----------------用類代替。
5、vector //向量與arraylist-----a、Vector和ArrayList Vector和ArrayList在使用上非常相似,都可用來
表示一組數量可變的對象應用的集合,並且可以隨機地訪問其中的元素。
b、Vector的方法都是同步的(Synchronized),是線程安全的(thread-safe),而ArrayList的方法不是,由於線程的
同步必然要影響性能,因此,ArrayList的性能比Vector好。
c、當Vector或ArrayList中的元素超過它的初始大小時,Vector會將它的容量翻倍,
而ArrayList只增加50%的大小,這樣,ArrayList就有利於節約內存空間
11)常出現的錯誤信息
1、The method readLine() from the type DataInputStream is deprecated //deprikeit//抗議,不贊成。
說明:說明這個方法或類java不再建議您使用,以後的版本也不會再更新這個方法或類。
2、Unhandled exception type IOException
說明:要用try ...catch...語句把會出錯的地方包含起來 //Throws IOException
3、XXX cannot be resolved
說明:該變量沒有定義或者不在定義範圍之內。在{}內定義的變量只在{}內有
源於sun的一個叫Green的項目,給家用電子產品開發一個分佈式系統,通過給家用電器發送EMail來控制它們。
開始準備採用C++,但是C++太複雜,安全性差,所以就開發了一個類C的語言,名字叫Oak,這是java的前身。後來競
爭失敗,走投無路的時候受NetScape啓發,繼續完善改名爲java,開發了一個HotJava瀏覽器。
2)特點:
a:跨平臺,編譯成與平臺無關的中間碼
b:象指針和釋放內存等操作被刪除,屏棄C++中容易出錯的地方,具有內存自動回收功能。是代碼具有健壯性。
去掉了C++中的:指針運算,結構,typedefs,#define,全局變量的定義。釋放內存。
c:包括一個支持http和ftp的基於tcp/ip協議的類庫,使開發internet上的程序更容易。
3)文件說明
javac :java語言編輯器,叫源代碼(後綴爲java)編譯成字節碼(後綴爲class) ---使用方法:javac 代碼文
件.java
java :java字節碼解釋器 ---使用方法:java 字節文
件.class
4)語法:
a:註釋://---表示註釋一行 /* */---表示註釋N行
b:數據類型:(8進制前面有個0,16進制前面有0x,或者0X)
1、整型----------byte(-128--128),short(-32768-32767),int(-21億,2的32次方),long(2的64次方)
2、浮點型--------float,double
3、布耳型--------boolean
4、字符型--------Char //char b='c';
5、字符串型------string //String b="abcdefg";
c:數組:
1、定義:一維:int a[],二維:float b[][]
2、設置長度:a=new int[10] 或者寫在一起:int a[]=new int[10];
3、長度:數組名.length
d:表達式
1、基本運算符號----:+,-,*,/,%(取模)
2、單目運算符號----:++,--,&(位與),|(位或)
3、判斷符號--------: ==,!=,&&(並且),||(或者)
4、對象運算符------:if (myobjcet instanceof 父類) //判斷是否是該父類的子類
5、三元運算符------:i=b?1:0 //表示如果b=true 則i=1,否則爲0
e:控制結構:
1、判斷結構: if (條件) {} else {}
2、開關結構:switch (表達式) {
case 值1:... break;
case 值2:... break;
case 值3:... break;
default:...
}
3:for循環結構: for (int i;i<=N;i++) {....}
4:while循環結構: while (條件) {....}
5:do循環結構: do {...} while (條件)
6:其他控制語句:
---break;
---continue;
---return 值;
---label:提供break,continue跳出循環的作用.跳轉比如:break lab;
5)常用函數:
1:常用數學函數:java.lang.Math
2:字符串函數:
a、Char CharAt(i) ------------------返回第N個字符:
b、int CompareTo(字符串)-----------比較兩個字符串: 小於0表示比他小,等於0表示相等,大於0表
示比他大
c、String Concat(字符串)--------------將兩個字符串連接起來
d、int Indexof(字符或者字符串)-----求字符的位置,找不到返回-1
e、Stinrg Substing(其始位置,結束位置)-求子串
f、String trim()-----------------------去掉空格
3:轉換函數:
a.字符串轉化爲數值:f=new float(s).floatvalue();
d=new double(s).doublevalue();
4:格式化函數:
a、格式話數字:format('2222%s3333%s1111',v1,v2) -------沒有,java5纔有。
b、格式話日期:java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse(date);
java.text.SimpleDateFormat sdfNew = new SimpleDateFormat("MMddyyyy");
return sdfNew.format(d);
*****************************************************************************************************
6)類結構說明:
a、構造函數:與類名相同的函數比如: public HelloWorld () {...} ---構造函數沒有返回值,void也沒有,
如果有那就不是構造函數了
b、結束函數:java沒有提供析構函數,因爲java本身具有自動清除功能,但是他也提供了一個自動垃圾箱的成員
函數:
Protected void finaliaze () {...}
c、父類與子類:
class woman extends men {...}
d、訪問控制:
1、public--------------可以被任意其他類調用
2、protected-----------只能在該類和其子類調用(自己也不能調用????)
3、private-------------只能在本類中調用
4、friendly------------(缺省)可以被本包裏的任意對象訪問。
e、靜態:static
1、靜態變量:static int i=1; //無論在哪個對象裏面改變了靜態變量的值,則所有對象的該靜
態變量都要改變。
2、靜態函數:static void add() {...} //靜態函數不能訪問非靜態函數和變量。他的作用是:可直接調
用。同delphi中的類函數。
f、this 和 super
1、this代表本類。
2、super代表父類。
g、類的類型:
1、abstract------------抽象類,必須至少有一個虛函數。一個抽象類不能創建對象,必須繼承子類才能創
建對象。
2、final---------------結束類:表示該類不能再派生出之類。
3、public--------------公共類:表示其他類可以調用,其他包要使用該類則:import 包。類。
4、synchronicable------同步類:表示這些類的成員函數必須同步。
h、接口:
1、定義:public interface TestIn {....聲明空的方法}
2、使用:class MyClass implements 接口 {實現接口中的方法}
7)異常處理:
1、結構1:
try
{...}
catch (Exception e)
{...}
2、結構2:
try
{...}
finally
{...}
3、拋出錯誤 throw e;
8)HelloWorld例子:
public class HelloWord {
public static void main(String[] args) {
System.out.println("Hello,Wrold!");
}
}
//接收外部參數參數:int a=Integer.ParseInt(args[0]);
int b=Integer.ParseInt(args[1]);
*****************************************************************************************************
9)JAVA中的類:(根類:object)
1、輸入輸出類:java的輸入輸出類要使用java.lang程序包中的類
a: java.lang.System
b: java.lang.Inputstream
c: java.lang.Printstream
------------------------------------------------
System.in爲 Inputstream的對象
System.out爲Printstream的對象
System.err爲Printstream的對象,用於錯誤信息的輸出。
2、Date類 Date d1=new Date(); //定義一個當前時間的類
import java.utils.*
3、Hashtable類 //hash:雜亂序號 hash code:混列碼
說明:Hashtable提供一個hash表,定義:Hashtable h1=new Hashtable(); Hashtable h2=new
Hashtable(20,)
4、Random類 隨機數類
5、Vector類:安裝一個可延續的對象數組
6、AWT類
10)不明白的代碼
1、System.out.flush
---------flush()的作用是清空緩衝區,更新緩衝區,不然有時候會看不到輸出,用BufferedReader用了一個系統
分配的緩衝區,只有緩衝區滿了時候纔會讀出,如果沒滿而你又想操作的話,就要用flush清空緩衝區,讓結果輸出!
2、Integer.parseInt ---------//pa:z//解析,使用格式:parseInt(String s,int radix),返回一個整數
,爲radix進制的
3、hashcode ---------------對象的散列標識,就和你的身份證類似,可以一下子就找到你的資料.數據結
構哈希散列的具體應用
hashtable和hashmap的區別-a、HashTable是線程安全的一個Collection,HashMap不是線程安全的
b、前者是圖,後者是哈希表,在HashMap中不能由get()方法來判斷HashMap中
是否存在某個鍵,而應該用containsKey()方法來判斷。
c、前者的關鍵詞是,遍歷、查找、搜索(如最短路徑)後者的關鍵詞是,衝
突處理,排序,
d、都屬於Map接口的類,實現了將惟一鍵映射到特定的值上。HashMap 類沒有
分類或者排序。它允許一個 null 鍵和多個 null 值。 Hashtable 類似於 HashMap,但是不允許 null 鍵和 null
值。它也比 HashMap 慢,因爲它是同步的。
e、Hashtable缺省的初始大小爲101,載入因子爲0.75,即如果其中的元素個數
超過75個,它就必須增加大小並重新組織元素,所以,如果你知道在創建一個新的Hashtable對象時就知道元素的確切
數目如爲110,那麼,就應將其初始大小設爲110/0.75=148,這樣,就可以避免重新組織內存並增加大小
一個hashtable的例子:
HashTable h=new HashTable();
h.put("用戶1",new Integer(90));
h.put("用戶2",new Integer(50));
h.put("用戶3",new Integer(60));
h.put("用戶4",new Integer(70));
Enumeration e=h.elements();
while(e.hasMoreElements()){System.out.println(e.nextElement());
4、沒有結構怎麼處理?-----------------用類代替。
5、vector //向量與arraylist-----a、Vector和ArrayList Vector和ArrayList在使用上非常相似,都可用來
表示一組數量可變的對象應用的集合,並且可以隨機地訪問其中的元素。
b、Vector的方法都是同步的(Synchronized),是線程安全的(thread-safe),而ArrayList的方法不是,由於線程的
同步必然要影響性能,因此,ArrayList的性能比Vector好。
c、當Vector或ArrayList中的元素超過它的初始大小時,Vector會將它的容量翻倍,
而ArrayList只增加50%的大小,這樣,ArrayList就有利於節約內存空間
11)常出現的錯誤信息
1、The method readLine() from the type DataInputStream is deprecated //deprikeit//抗議,不贊成。
說明:說明這個方法或類java不再建議您使用,以後的版本也不會再更新這個方法或類。
2、Unhandled exception type IOException
說明:要用try ...catch...語句把會出錯的地方包含起來 //Throws IOException
3、XXX cannot be resolved
說明:該變量沒有定義或者不在定義範圍之內。在{}內定義的變量只在{}內有
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.