java01基础简介
1 java概述
開(kāi)發(fā)服務(wù)器端應(yīng)用程序最流行語(yǔ)言,產(chǎn)生網(wǎng)頁(yè)、運(yùn)行后端邏輯。
當(dāng)對(duì)java了解到一定程度,閱讀源碼才能解決問(wèn)題。
Applet:在網(wǎng)頁(yè)中運(yùn)行的java程序,
?
Java的應(yīng)用領(lǐng)域:
桌面應(yīng)用系統(tǒng)開(kāi)發(fā)
企業(yè)級(jí)應(yīng)用開(kāi)發(fā)
多媒體系統(tǒng)開(kāi)發(fā)
分布式系統(tǒng)開(kāi)發(fā)
Web應(yīng)用系統(tǒng)開(kāi)發(fā)
?
Java SE 桌面應(yīng)用程序開(kāi)發(fā)
Java EE 企業(yè)級(jí)分布式的網(wǎng)絡(luò)程序?如電子商務(wù)網(wǎng)站、ERP(企業(yè)資源規(guī)劃)系統(tǒng),核心為EJP(企業(yè)java組件模型)
Java ME 嵌入式系統(tǒng)開(kāi)發(fā)
2 Eclipse快捷鍵
Ctrl + z 撤銷
Ctrl + y 反撤銷
Ctrl + d 刪除
Ctrl + Alt + 上/下 復(fù)制行
Alt + 上/下 移動(dòng)行
Alt + * 代碼提示
Ctrl + / 注釋
Ctrl + F11 運(yùn)行
Ctrl + Shift + O 自動(dòng)導(dǎo)包
Ctrl + Alt + / ?關(guān)鍵字自動(dòng)補(bǔ)全
Alt + / ?代碼輔助菜單 如syso
Ctrl + 1 ?代碼修正
Ctrl + m 放大視圖
Shift + Enter 新建一行
F5 ?單步跳入
F6 ?單步跳過(guò)
3 8種基本數(shù)據(jù)類型
整型 ?byte ?short ?int ?long ?占字節(jié)數(shù)1 2 4 8
浮點(diǎn)型 float ?double
字符型 2字節(jié)
布爾型
?
long型數(shù)字后加L/l
float型數(shù)字后加F/f
char 與 int可以相互顯式轉(zhuǎn)換
轉(zhuǎn)義字符
4 數(shù)值表示
加上前綴0b可以寫二進(jìn)制:0b0010
為數(shù)字字面量加下滑線:1_000_000 或 0b0100_1101_0110_0000
下劃線只為易讀,編譯器會(huì)去掉這些下劃線。
數(shù)值類型所占內(nèi)存與平臺(tái)無(wú)關(guān),沒(méi)有無(wú)符號(hào)類型(unsigned)。
?
浮點(diǎn)數(shù)不適用于禁止出現(xiàn)舍入誤差的金融計(jì)算中,此時(shí)使用BigDecimal。
?
聲明常量:
final?數(shù)據(jù)類型常量名稱 [=值]
常量名稱大寫
為成員變量時(shí)必須賦初值
?
5 字符編碼UTF-16
代碼單元(code unit):16位
代碼點(diǎn)(code point):表示字符,兩種情況:
1基本字符:一個(gè)代碼單元;
2輔助字符:一對(duì)代碼單元。
強(qiáng)烈建議不使用char類型
?
6 變量名
Java中“字母”和“數(shù)字”的范圍更大。
使用Character類中的isJavaIdentifierStart和isJavaIdentifierPart方法進(jìn)行檢測(cè)。
?
7 變量
成員變量
實(shí)例變量
靜態(tài)變量 static
局部變量
?
常量 final
?
8 控制臺(tái)輸入
Scanner in = new Scanner(System.in);
in.next(); 下一單詞
in.nextLine(); 下一行
in.nextInt();
in.nextDouble();
in.hasNext();
in.hasNextInt();
in.hasNextDouble();
?
控制臺(tái)讀取密碼
Console cons = System.console();
String username = cons.readLine(“User name: ”);
Char[] passwd = cons.readPassword(“Password: ”);
9 運(yùn)算符
邏輯 與 ??或非
?????&& ?|| ?! ?
& 與 && 的不同:無(wú)短路
?
按位 與 或 取反 異或
?????& ?| ??~ ??^
?
左移 右移 無(wú)符號(hào)右移
?<< ??>> ?>>>
?
運(yùn)算符優(yōu)先級(jí):
單目運(yùn)算符
算術(shù)運(yùn)算
比較運(yùn)算
邏輯運(yùn)算
賦值運(yùn)算
?
可讀性第一,效率第二
程序中注釋要占程序代碼總量的20%-50%
程序的開(kāi)發(fā)與維護(hù)不是同一個(gè)人,應(yīng)盡量使用簡(jiǎn)單的技術(shù)完成程序需要的功能。
?
10 格式化字符串
轉(zhuǎn)換符:
十進(jìn)制 d
十六進(jìn)制 x
浮點(diǎn)數(shù) f
指數(shù)浮點(diǎn)數(shù) e
字符串 s
字符 c
布爾 b
散列碼 h
日期時(shí)間 tx
與平臺(tái)有關(guān)的行分隔符 n
?
標(biāo)志:
參數(shù)索引:$ 從1開(kāi)始
格式化前面說(shuō)明數(shù)值: <
?
String.format(); //創(chuàng)建格式化字符,但不輸出
?
11 文件輸入輸出
Scanner in = new Scanner(Paths.get(“C:\......”));
PrintWriter out = new PrintWriter(“myfile.txt”);
?
12 switch
case的標(biāo)簽可以是:數(shù)值、枚舉常量、字符串字面量
?
switch(表達(dá)式) {case 常量值1:語(yǔ)句塊1break;case 常量值2:語(yǔ)句塊2break;default:語(yǔ)句塊1 }?
foreach語(yǔ)句
for(int x : array)
... ...
?
13 帶標(biāo)簽的break與continue
標(biāo)簽放在希望跳出的循環(huán)之前,緊跟冒號(hào)。
break跳到帶標(biāo)簽語(yǔ)句塊末尾。
continue語(yǔ)句跳到與標(biāo)簽匹配的循環(huán)首部。
?
14 字符串處理
不可變字符串:編譯器可以讓字符串共享。
共享帶來(lái)的高效率遠(yuǎn)遠(yuǎn)勝過(guò)提取、拼接字符串帶來(lái)的低效率。
String類 ??
下標(biāo)從0開(kāi)始
new 出來(lái)的是字符串變量
“?”?之間的是字符串常量
?
連接字符串:+
字符串長(zhǎng)度:length()
字符串定位:indexOf(String s) ?lastIndexOf(String s)
獲取指定位置字符:charAt(int index)
獲取子串:substring(int beginIndex)
??Substring(int beginIndex, int endIndex)
去除前后空格:trim()
字符替換:replace(char oldChar, char newChar)
判斷頭尾:startsWith(String prefix) ?endsWith(String suffix)
判斷相等:equals(String str) ?equalsIgnoreCase(String str)
比較大小:compareTo(String str)
大小寫轉(zhuǎn)換:toLowerCase() ?toUpperCase() ?不影響數(shù)字和非字符
字符串分割:split(String sign) ?split(String sing, int limit) limit為分割次數(shù)
?
格式化字符串:
String類的靜態(tài)format()方法
(1)format(String format, Objects ...args)
(2)format(Local l, String format, Object ..args)
例子:
Date date = new Date();
String day = String.format(“%te”, date); 返回幾號(hào)
String hour = String.format(“%tH”, date); 返回小時(shí)
String time = String.format(“%tF”, date); 返回年月日
String str = String.format(“%d”, 400 / 2)?十進(jìn)制
String str2 = String.format(“%b”, 3?> 5) ?布爾值
String str3 = String.format(“%x”, 200)???十六進(jìn)制
?
正則表達(dá)式:符合一定規(guī)則的表達(dá)式。Pattern類
作用:用于專門操作字符串。
特點(diǎn):用于一些特定的符號(hào)來(lái)表示一些代碼操作。這樣就簡(jiǎn)化書(shū)寫。
所以學(xué)習(xí)正則表達(dá)式,就是在學(xué)習(xí)一些特殊符號(hào)的使用。
?
好處:可以簡(jiǎn)化對(duì)字符串的復(fù)雜操作。
弊端:符號(hào)定義越多,正則越長(zhǎng),閱讀性越差。
?
具體操作功能:
1,匹配:String matches(regex)方法。用規(guī)則匹配整個(gè)字符串,只要有一處不符合規(guī)則,就匹配結(jié)束,返回false。
2,切割:String split(regex);
3,替換:String replaceAll(regex,str);
4,獲取:將字符串中的符合規(guī)則的子串取出。
?
操作步驟:
1,將正則表達(dá)式封裝成對(duì)象。
2,讓正則對(duì)象和要操作的字符串相關(guān)聯(lián)。
3,關(guān)聯(lián)后,獲取正則匹配引擎。
4,通過(guò)引擎對(duì)符合規(guī)則的子串進(jìn)行操作,比如取出。
?
String str = "ming tian jiu yao fang jia le ,da jia。";
String reg = "\\b[a-z]{4}\\b";
?
Pattern p = Pattern.compile(reg); ?//將規(guī)則封裝成對(duì)象。
Matcher m = p.matcher(str); //讓正則對(duì)象和要作用的字符串相關(guān)聯(lián)。獲取匹配器對(duì)象。
?
?
//其實(shí)String類中的matches方法。用的就是Pattern和Matcher對(duì)象來(lái)完成的。
//只不過(guò)被String的方法封裝后,用起來(lái)較為簡(jiǎn)單。但是功能卻單一。
//System.out.println(m.matches());
// boolean b = m.find();//將規(guī)則作用到字符串上,并進(jìn)行符合規(guī)則的子串查找。
// System.out.println(b);
// System.out.println(m.group());//用于獲取匹配后結(jié)果。
while(m.find())
{
System.out.println(m.group());
System.out.println(m.start()+"...."+m.end());
}
?
字符串生成器
StringBuilder builder = new StringBuilder(“”);
append()
insert(int offset, arg)
delete(int start, int end)
toString()
?
15 數(shù)組
Java數(shù)組的維數(shù)可以接收變量;
數(shù)組的基本操作:
java.util.Arrays類
?
填充替換數(shù)組元素:
(1)fill(int[] a, int value)
(2)fill(int[] a, int fromIndex, int toIndex, int value)
?
對(duì)數(shù)組進(jìn)行排序:
Arrays.sort() ?//優(yōu)化的快速排序
?
復(fù)制數(shù)組:
Arrays.copyOf(arr, int newlength)
Arrays.copyOfRange(arr, int fromIndex, int toIndex)
?
二分查找:
Arrays.binarySearch(arr, key);
Arrays.binarySearch(arr, int fromIndex, int toIndex, key)
?
數(shù)組打印:
Arrays.toString(一維數(shù)組);
Arrays.deepToString(多維數(shù)組);
匿名數(shù)組 new int[]{1,2,3}
?
不規(guī)則數(shù)組:利用數(shù)組中存放的是對(duì)象指針的性質(zhì)。
?
16 面向?qū)ο?/span>
Java是完全面向?qū)ο蟮摹?/span>
類 class
構(gòu)造 construct
實(shí)例 instance
實(shí)例域 instance field
方法 method
封裝 encapsulation 信息隱藏
繼承 inheritance
超類 Object
?
對(duì)象三個(gè)主要特性:
行為:behavior
狀態(tài):state
標(biāo)識(shí):identity
?
編程中如何識(shí)別類:名詞為類,動(dòng)詞為方法。
類之間的關(guān)系:
依賴:uses-a
聚合:has-a
繼承:is-a
統(tǒng)一建模語(yǔ)言:UML ??Unified Modeling Language
?
17 構(gòu)造器(constructor)
特殊的方法,用來(lái)構(gòu)造并初始化對(duì)象。
·構(gòu)造器的名字與類名相同。
·可以有多個(gè)構(gòu)造器
·可以有0、1、多個(gè)參數(shù)
·無(wú)返回值
·與new 操作符一起使用
所有java對(duì)象都是在堆中構(gòu)造的,構(gòu)造器總是伴隨著new操作符一起調(diào)用。
?
對(duì)象變量:是一個(gè)指向?qū)ο蟮闹羔槨?/p>
對(duì)象:在內(nèi)存中實(shí)際的實(shí)例。
一個(gè)對(duì)象變量并沒(méi)用實(shí)際包含一個(gè)對(duì)象,而僅僅引用一個(gè)對(duì)象。
在java中,任何對(duì)象變量的值都是對(duì)存儲(chǔ)在另一個(gè)地方的一個(gè)對(duì)象的引用。
New操作符的返回值也是一個(gè)引用。
所用的java對(duì)象都存儲(chǔ)在堆中,當(dāng)一個(gè)對(duì)象包含另一個(gè)對(duì)象變量時(shí),這個(gè)變量依然包含著指向另一個(gè)堆對(duì)象的指針。
?
更改器方法:mutator method
訪問(wèn)器方法:accessor method
?
文件名必須與public類的名字相匹配。
在一個(gè)源文件中,只能有一個(gè)公有類,但可以有任意數(shù)目的非公有類。
當(dāng)Java編譯器發(fā)現(xiàn)一個(gè)源文件使用了其他類時(shí),會(huì)查找名為其他類.class的文件,如果沒(méi)有,則查找其他類.java文件并編譯。如果其他類.java較其他類.class新,則重新編譯其他類.java。
18 隱式參數(shù)與顯示參數(shù)
隱式參數(shù)(implicit):出現(xiàn)在方法名前的對(duì)象(this);
顯示參數(shù)(explicit):括號(hào)中的形參。
?
this的作用:
1、引用隱式參數(shù)
2、調(diào)用該類其他的構(gòu)造器。
?
私有數(shù)據(jù)域
公有的域訪問(wèn)器方法
公有的域更改器方法 ?不能編寫返回對(duì)象指針的訪問(wèn)器方法,應(yīng)返回其clone出來(lái)的新對(duì)象。
?
19 基于類的訪問(wèn)權(quán)限
方法可以訪問(wèn)所屬類的私有屬性(feature),而不僅限于訪問(wèn)隱式參數(shù)的私有特性。
?
20 私有方法
私有方法為公有方法的輔助方法,外部不會(huì)出現(xiàn)依賴私有方法的代碼,可以刪除;
公有方法不能刪除。
?
21 final實(shí)例域
必須保證在每個(gè)構(gòu)造器執(zhí)行之后,這個(gè)域的值被設(shè)置。
final修飾符應(yīng)用于基本(primitive)類型域,或不可變(immutable)類的域。
靜態(tài)方法不能使用this
?
22 靜態(tài)域與靜態(tài)方法
靜態(tài)域:類域,只存一份,對(duì)象共享
?
靜態(tài)常量:
public class Math
{
pubic static final double PI=3.14159265358...;
}
?
Public class System
{
public static final PrintStream out = ...;
}
?
靜態(tài)方法:沒(méi)有隱式this參數(shù),不能向?qū)ο髮?shí)施操作。
不能在靜態(tài)方法中訪問(wèn)實(shí)例域。
使用類名調(diào)用靜態(tài)方法。
使用靜態(tài)方法的兩種情況:
1、不需要訪問(wèn)對(duì)象狀態(tài),參數(shù)通過(guò)顯示參數(shù)提供;
2、只需要訪問(wèn)靜態(tài)域。
靜態(tài)方法的一個(gè)常見(jiàn)用途:工廠方法
?
對(duì)象名都是引用,存放地址
== 比較的是兩個(gè)對(duì)象的地址
System.gc()強(qiáng)制啟動(dòng)垃圾回收器
?
單元測(cè)試技巧:每一個(gè)可以有一個(gè)main方法進(jìn)行單元測(cè)試。
?
23 方法參數(shù)
按引用調(diào)用(call by reference)C++引用
按值調(diào)用(call by value)java全部是call by value
?
方法參數(shù)有兩種類型:
基本數(shù)據(jù)類型(數(shù)字、布爾)
對(duì)象引用(進(jìn)行的是值傳遞)
?
總結(jié):
一個(gè)方法不能修改一個(gè)基本數(shù)據(jù)類型的參數(shù);
一個(gè)方法不能讓對(duì)象參數(shù)引用一個(gè)新的對(duì)象;
一個(gè)方法可以改變一個(gè)對(duì)象參數(shù)的狀態(tài)。
?
24 對(duì)象構(gòu)造
重載(overloading):多個(gè)方法名字相同,參數(shù)不同。
調(diào)用過(guò)程首先重載解析(overloading resolution)。
方法簽名(signature):方法名+參數(shù)類型。
?
默認(rèn)域初始化:0 ?null ?false ?無(wú)參默認(rèn)構(gòu)造函數(shù)的工作。
當(dāng)類沒(méi)有提供任何構(gòu)造器時(shí),系統(tǒng)才提供一個(gè)默認(rèn)的無(wú)參構(gòu)造函數(shù)。
一個(gè)構(gòu)造器中可以用this(參數(shù))調(diào)用另一個(gè)構(gòu)造器。
?
調(diào)用構(gòu)造器的具體步驟:
1、初始化為默認(rèn)值;
2、初始化塊;
3、如果這個(gè)構(gòu)造器調(diào)用其它構(gòu)造器,執(zhí)行其它構(gòu)造器
4、執(zhí)行這個(gè)構(gòu)造器。
?
對(duì)靜態(tài)域,使用靜態(tài)初始化塊。在類的第一次加載時(shí)執(zhí)行。
不提供finalize析構(gòu)方法。
?
25 包
包(package):將類組織起來(lái)。
確保類名唯一。
域名逆序?yàn)榘?#xff0c;不同項(xiàng)目使用不同子包。
?
一個(gè)類可以使用包中的所有類,以及其他包中的公有類(public class)。
?
靜態(tài)導(dǎo)入:導(dǎo)入靜態(tài)方法和靜態(tài)域
import static java.lang.system.*;
?
將包中的文件放到與完整的包名匹配的子目錄中。
編譯器將類文件也放在相同的目錄結(jié)構(gòu)中。
?
編譯器對(duì)文件進(jìn)行操作:javac com/mycompany/PayrollApp.java
????解釋器加載類:java com.mycompany.PayrollApp
?
包作用域:
如果類、方法、屬性沒(méi)有指定public或private,這個(gè)部分可以被同一個(gè)包中的所有方法訪問(wèn)。即默認(rèn)為包范圍的public。
?
禁止加載用戶自定義的,包名以“java.”開(kāi)始的類。
包密封(package sealing)機(jī)制:(JAR)如果一個(gè)包密封起來(lái),就不能向這個(gè)包中再添加類了。解決將各種包混在在一起的問(wèn)題。
?
26 類路徑
類可以存儲(chǔ)在文件系統(tǒng)子目錄中,也可放在jar文件中。
?
為了使類能夠被多個(gè)程序共享,需要做到以下幾點(diǎn):
1、把類放到一個(gè)目錄中,如/home/user/classdir;
2、將jar文件放在一個(gè)目錄中,如/home/user/archives;
3、設(shè)置類路徑class path。類路徑是所有包含類文件的路徑的集合。
?
如:java -classpath /home/user/classdir:.:/home/user/archives/archive.jar
或CLASSPATH環(huán)境變量。
虛擬機(jī)定位類文件:
1、jre/lib 和 jre/lib/ext;
2、依次在類路徑中查找。
?
編譯器定位文件:
1、查找當(dāng)前包;
2、查找所有import的包,import次序無(wú)關(guān)緊要。
如果有多個(gè)同名類則報(bào)錯(cuò)。
查看源文件(source file)是否比類文件新,如果是則重新編譯。
?
27 文檔注釋
javadoc 可以有源文件生成一個(gè)HTML文檔
/** ... */
?
注釋的插入:
javadoc實(shí)用程序(utility)從下面幾個(gè)特性抽取信息:
·包
·公有類與接口
·公有的和受保護(hù)的構(gòu)造器及方法
·公有的和受保護(hù)的域
?
類注釋:import語(yǔ)句之后,類定義之前。
?
方法注釋:所描述方法之前
@parameter
@return
@throws
域注釋:對(duì)公有域,通常是靜態(tài)常量
?
通用注釋:
@author
@version
@since version 1.7.1
@deprecated ?不再使用標(biāo)記,文本中給出了取代的建議。
@see引用 可用于類中,也可用于方法中。
package.class#feature label 只要提供類、方法或變量的名字,javadoc就在文檔中插入一個(gè)超鏈接。
@see com.horstmann.corejava.Employee#raiseSalary(double)
@see <a href=URL>The core java home page</a>
@link 同上,在注釋中的任何位置放置指向其他類或方法的超級(jí)鏈接。
?
包與概述注釋
包注釋,在包目錄中添加一個(gè)單獨(dú)的文件。
可以有兩個(gè)選擇:
1、提供一個(gè)以package.html命名的HTML文件,在標(biāo)記<body>...</body>之間的文本都會(huì)被抽取出來(lái);
2、提供一個(gè)以package-info.java命名的java文件。
???????????這個(gè)文件在包語(yǔ)句之后跟注釋 /** ... */
?
還可以為所有源文件提供一個(gè)概述性注釋。這個(gè)注釋放置在一個(gè)名為overview.html的文件中,這個(gè)文件位于所有源文件的父目錄中。所有在標(biāo)記<body>...</body>之間的文本都會(huì)被抽取出來(lái)。
?
注釋的抽取:
1、切換到包含想要生成文檔的源文件目錄,此目錄包含包和overview.html;
2、運(yùn)行命令 javadoc -d docDirectory nameOfPackage
Javadoc -author -version -d docDirectory nameOfPackage ?
在文檔中包含作者和版本信息(默認(rèn)不包含)
Javadoc -link http://docs.oracle.com/javase/7/docs/api?*.java
所有的標(biāo)準(zhǔn)類庫(kù)類都會(huì)自動(dòng)鏈接到Oracle網(wǎng)站de文檔。
-linksource選項(xiàng):每個(gè)類和方法名將轉(zhuǎn)變?yōu)橹赶蛟创a的超鏈接。
?
28 類設(shè)計(jì)技巧
1、數(shù)據(jù)一定私有;
2、一定要數(shù)據(jù)初始化;
3、不要在類中使用過(guò)多的基本類型;
4、不是所有的域都需要獨(dú)立的域訪問(wèn)器和域更改器;
5、將職責(zé)過(guò)多的類進(jìn)行分解;
6、類名和方法名能夠體現(xiàn)他們的職責(zé)。
類名:首字母大寫?名詞、形容詞+名詞、動(dòng)名詞+名詞
訪問(wèn)器get開(kāi)頭,更改器set開(kāi)頭。
?
?
29 包裝類
Number
BigDecimal ?BigInteger ?Byte ?Integer ?Long ?Short ?Double ?Float ?
Character
Boolean ??
30 數(shù)字格式化
java.text.DecimalFormat格式化數(shù)字
0 ?# ?. ?- ?, ?E ?% ?\u2030 ?\u00A4 ?‘
?
String pattern;
DecimalFormat myFormat = new DecimalFormat();
myFormat.applyPattern(pattern);
?
DecimalFormat myFormat = new DecimalFormat(pattern);
?
myFormat.format(value)
Value ?Pattern ?Output
123456.789 ?###,###.### ?123,456.789
123456.789 ?00000000.###kg ?00123456.789kg
123.78 ?000000.000 ?000123.780
0.789 ?#.###% ?78.9
123456.789 ?###.## ?123456.79
0.789 ?0.00\u2030 ?789.00%。
?
myFormat.setGroupingSize(2); ?設(shè)置分組大小
myFormat.setGroupingUsed(false); ?是否支持分組
?
數(shù)學(xué)運(yùn)算
Math類
常量:
Math.PI
Math.E
三角函數(shù)方法:
double sin(double a)
double cos(double a)
double tan(double a)
double asin(double a)
double acos(double a)
double stan(double a)
double toRadians(double angdeg) 角度轉(zhuǎn)弧度
double toDegrees(double angrad) 弧度轉(zhuǎn)角度
指數(shù)函數(shù)方法
double exp(double a)
double log(double a)
double log10(double a)
double sqrt(double a)
double cbrt(double a)
double pow(double a, double b)
?
最大、最小、絕對(duì)值
max( ?, ?)
min( ?, ?)
abs( ?)
?
取整函數(shù)
double ceil(double a)
double floor(double a)
double rint(double a) ?double -> double四舍五入,五取偶數(shù)
int round(float a) ????float -> int
long round(double a) ?double -> long
31 隨機(jī)數(shù)
兩種方式產(chǎn)生隨機(jī)數(shù)
Math類的random()方法
Random類的產(chǎn)生各種數(shù)據(jù)類型的方法
?
Math.random() 產(chǎn)生double型隨機(jī)數(shù)范圍[0.0 - 1.0)
偽隨機(jī)數(shù),當(dāng)前時(shí)間作為偽隨機(jī)數(shù)的參數(shù)
(int)(Math.random()*n) ?[0 - n)
(int)(m + Math.random()*(m - n)) [m, m+n)
(char)(‘a(chǎn)’?+ Math.random()*(‘z’-’a’+1)) ?[a, z]
?
32 大數(shù)字運(yùn)算
java.math.BigInteger
java.math.BigDecimal
33 控制臺(tái)鍵盤錄入
?Scanner?s?=?new?Scanner(System.in);//接受從鍵盤輸入的數(shù)值
??//receive?string
??String?str?=?s.next();//獲取輸入的參數(shù)
??
??//receive?integer
??Integer?i?=?s.nextInt();//接受一個(gè)int的輸入?yún)?shù)
??
??//receive?double
??Double?d?=?s.nextDouble();
?
Object類中的方法:getClass() ?toString() ?equals() ?clone()
?
對(duì)象向上轉(zhuǎn)型
對(duì)象向下轉(zhuǎn)型 判斷 myobject instanceof ExamleClass
?
34 接口???
implements interface
屬性:public static final
方法:public abstract
?
導(dǎo)入靜態(tài)成員 import static ...
35 Final
final 變量 ?不變修改
final 方法 ?不能重寫
final 類 ???不能繼承
36 內(nèi)部類
成員內(nèi)部類 ?局部?jī)?nèi)部類 ?匿名類
?
CLI ?Command Line User Interface
GUI ?Graphical User Interface
java.Awt ?javax.Swing?兩個(gè)包中
?
java.Awt
重量級(jí)控件
Abstract Window ToolKit 抽象窗口工具
需要調(diào)用本地系統(tǒng)方法實(shí)現(xiàn) ?
?
javax.Swing
輕量級(jí)控件
在Awt基礎(chǔ)上建立,完全由Java實(shí)現(xiàn) ?
總結(jié)
以上是生活随笔為你收集整理的java01基础简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。