中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

ui設(shè)計(jì)界面效果圖長沙搜索排名優(yōu)化公司

ui設(shè)計(jì)界面效果圖,長沙搜索排名優(yōu)化公司,企業(yè)網(wǎng)站哪里可以做,晉城兩學(xué)一做網(wǎng)站1、Java API簡介 Java API(Java Application Programming Interface)是Java應(yīng)用程序編程接口的縮寫。Java中的API,就是JDK提供的具有各種功能的Java類,靈活使用Java API能夠大大提高使用Java語言編寫程序的效率。 Java API的幫助文檔可到 http://docs.or…

1、Java API簡介

????????Java API(Java Application Programming Interface)是Java應(yīng)用程序編程接口的縮寫。Java中的API,就是JDK提供的具有各種功能的Java類,靈活使用Java API能夠大大提高使用Java語言編寫程序的效率。

????????Java API的幫助文檔可到 http://docs.oracle.com/javase/8/docs/api/ 下載,靈活使用Java API能夠提高使用Java語言編寫程序的效率,下面對Java中提供的最常用的包進(jìn)行介紹,對這些包中的常用類先有一個(gè)總體了解,后文將對重要的、常見的方法進(jìn)行介紹。

  • java.lang:Java語言包, 該包中提供了利用Java語言進(jìn)行程序設(shè)計(jì)的基礎(chǔ)類,比如String、Math、System類,該包中的類不需要使用import語句進(jìn)行導(dǎo)入,都會被自動(dòng)導(dǎo)入。
  • java.util:該包中主要包含一些實(shí)用的工具類,比如集合框架類、日期處理類、字符串解析類、隨機(jī)數(shù)生成類等。
  • java.awt:該包中主要包含處理用戶界面和繪制圖形圖像的各種類。
  • java.io:該包中主要包含處理輸入、輸出編程的各種類。
  • java.net:該包中主要包含處理網(wǎng)絡(luò)編程的各種類。
  • java.sql:該包中主要包含處理數(shù)據(jù)庫編程的各種類。

1.?Java.lang包中常用的類

java.lang包中的常用類

Boolean

Object

Error

Byte

String

Throwable

Character

StringBuffer

Exception

Double

StringBuilder

ClassNotFoundException

Float

System

NullPointerException

Integer

Math

NumberFormatException

Long

Runnable(接口)

RuntimeException

Short

Thread

ArithmeticException

2.?java.util包中常用的類

java.util包中的常用類

Collection(接口)

Arrays

Calendar

Iterator(接口)

Set(接口)

Date

ListIterator(接口)

HashSet

Random

List(接口)

TreeSet

Scanner

ArrayList

Map(接口)

Collections

LinkedList

HashMap

Vector

Hashtable

Stack

TreeMap

3.?java.io包中的常用的類

java.io包中的常用類

BufferedInputStream

FileReader

PrintWriter

BufferedOutputStream

FileWriter

Reader

BufferedReader

InputStream

Writer

BufferedWriter

InputStreamReader

Serializable(接口)

DataInputStream

OutputStream

Externalizable接口)

DataOutputStream

OutputStreamWriter

IOException

File

ObjectInputStream

FileNotFoundException

FileInputStream

ObjectOutputStream

InvalidClassException

FileOutputStream

PrintStream

4. java.net包中常用的類

java.net包中的常用類

ServerSocket

Socket

UnknownHostException

2、Object類

????????在Java中,有這樣一個(gè)類,它是所有類的祖先類,也就是說,任何類都是其子孫類,它就是java.lang.Object。如果一個(gè)類沒有顯式地指明其父類,那么它的父類就是Object,也就是說,下面兩條語句的作用是一樣的:

public class ClassName{…}

等價(jià)于

public class ClassName extends Object{…}

????????如同我們稱自己為炎黃子孫一樣,所有的類都是Object類的子類,Object類中定義的方法被遺傳到所有其它類中。同時(shí),Object類也是Java語言中唯一一個(gè)沒有父類的類。

????????做為一個(gè)超級祖先類,Object類為子類提供了一些public修飾的方法,便于子類覆蓋來實(shí)現(xiàn)子類自己特定的功能,下面我們要詳細(xì)介紹其中的equals()方法、hashCode()方法和toString()方法。

1. public boolean equals(Object obj)

????????該方法在Object類中的作用是:比較兩個(gè)引用所指向的對象是否是同一個(gè)對象,即兩個(gè)引用所指向?qū)ο蟮?strong>地址是否相等。

????????注意,通常情況下,所有的類中equals()方法默認(rèn)是比較地址,但是,Object的任何子類均可以按照自己的需要對equals()方法進(jìn)行覆蓋,以改變此方法的操作細(xì)節(jié),實(shí)現(xiàn)使用自定義的方法判斷兩個(gè)對象是否為同一個(gè)對象或者兩個(gè)對象是否具有可互相替代性。

????????【例】 定義公民類Citizen,覆蓋該類的equals()方法,該方法的定義為:如果兩個(gè)公民的身份id相同,則為同一個(gè)公民,但是不用考慮這兩個(gè)對象是否具有相同的地址。

public class Citizen{private int id;private String name;public Citizen(int id, String name) {this.id = id;this.name = name;}//覆蓋父類的equals()方法public boolean equals(Object o) {Citizen c = (Citizen) o;if (c.id == this.id) {return true;} else {return false;}}//主方法,測試equals()方法public static void main(String args[]) {Citizen xiaoming = new Citizen(21000, "xiaoming");Citizen mingming = new Citizen(21000, "mingming");System.out.println(xiaoming.equals(mingming));}
}
//程序運(yùn)行結(jié)果:true

????????程序分析:上例定義了一個(gè)Citizen類,此類包含了公民的兩個(gè)屬性id和name,同時(shí)覆蓋了equals()方法,該方法實(shí)現(xiàn)為:當(dāng)傳入對象的id和當(dāng)前對象的id相等時(shí),返回true,否則返回false。所以在main()方法最后一行調(diào)用equals()方法時(shí),調(diào)用的實(shí)際上是Citizen類的equals()方法,xiaoming和mingming對象的id都為21000,所以程序運(yùn)行結(jié)果為true。而假設(shè)如果Citizen類沒有覆蓋equals()方法,則在最后一行調(diào)用equals()方法時(shí),實(shí)際調(diào)用的Object類的equals()方法,該方法比較兩個(gè)對象是否指向同一塊地址,所以肯定返回false,讀者可自行驗(yàn)證。

????????"=="運(yùn)算符和equals()方法的區(qū)別:"=="是比較運(yùn)算符,既能用于比較兩個(gè)基本數(shù)據(jù)類型,也能用于比較兩個(gè)引用數(shù)據(jù)類型,當(dāng)比較基本數(shù)據(jù)類型時(shí),判斷兩個(gè)基本數(shù)據(jù)類型的字面量是否相等,當(dāng)比較兩個(gè)引用數(shù)據(jù)類型時(shí),判斷兩個(gè)"地址"的值是否相等,也就是兩個(gè)"引用"是否指向同一個(gè)對象。而equals()方法只能用于比較引用數(shù)據(jù)類型(也就是所有以O(shè)bject類為父類的類型),Object類的equals()方法默認(rèn)比較兩個(gè)對象引用的值是否相等,但equals()方法通常都會被子類覆蓋,所以子類中equals()方法的含義,就要看子類中的具體實(shí)現(xiàn)了。

????????【例】 == 和 equals()方法在String類中的區(qū)別

	String str1 = "hello"; String str2 = new String("hello"); System.out.println(str1==str2); System.out.println(str1.equals(str2));

程序運(yùn)行結(jié)果:

false

true

????????程序分析:因?yàn)镾tring是引用數(shù)據(jù)類型,使用"=="運(yùn)算符比較兩個(gè)引用地址是否相同,第二行使用關(guān)鍵字new重新生成了一個(gè)String對象,所以第三行輸出為false。在String類中,覆蓋了Object的equals()方法,該方法判斷兩個(gè)String對象的內(nèi)容是否相等,所以第4行輸出為true。

2. public int hashCode()

????????該方法返回對象的哈希碼。任何一個(gè)對象的默認(rèn)的哈希碼是將對象的內(nèi)存地址通過某種轉(zhuǎn)換得到的,所以不同對象會有不同的哈希碼。

????????哈希碼是一個(gè)代表對象的十六進(jìn)制整數(shù),好比對象的身份證號。在程序運(yùn)行期間,每次調(diào)用同一個(gè)對象的hashCode()方法,返回的哈希碼必定相同。但是Java應(yīng)用程序需要的內(nèi)存由操作系統(tǒng)提供,所以多次執(zhí)行同一個(gè)程序,因操作系統(tǒng)的運(yùn)行情況不一樣,內(nèi)存使用情況也不一樣,程序所獲得的內(nèi)存不同,這就導(dǎo)致同一個(gè)對象的哈希碼也不一定相同。

????????在Java中有個(gè)規(guī)定:如果equals()方法返回兩個(gè)對象是相等的,那這兩個(gè)對象上調(diào)用hashCode()返回的整數(shù)必須相等,否則在使用Hash類型集合時(shí)就會產(chǎn)生錯(cuò)誤,所以在我們覆蓋equals()方法同時(shí),建議覆蓋hashCode()方法。需要說明,如果equals()返回兩個(gè)對象不等,它們的hashCode()也可以返回相同的整數(shù),但是最好讓它們的hashCode()返回不同的整數(shù),這有利于提高Hash類型集合的性能。那么重寫equals()方法時(shí),一定要重寫hashcode()方法嗎?先說說hashcode()方法調(diào)用的條件,如果你想往map里面放一個(gè)類作為map的鍵值,這個(gè)類又是你自己設(shè)計(jì)的,或者這個(gè)類不是你寫的但是你修改了這個(gè)類的equals()方法,這個(gè)時(shí)候,你就要重寫hashcode()方法,這樣當(dāng)你往map里放值的時(shí)候,系統(tǒng)會調(diào)用這個(gè)對象的hashcode()方法來生成相應(yīng)的hash值,來映射相應(yīng)的對象。

????????如果同一個(gè)類的兩個(gè)對象的屬性值相等,那么他們的hashcode()一定相等嗎?這個(gè)要看你具體如何實(shí)現(xiàn)你的hashcode()方法,如果你希望他們的值一樣hashcode()也一樣,你就可以這樣實(shí)現(xiàn)。但是hashcode的實(shí)現(xiàn),一般要滿足幾個(gè)特征:

自反性:即對任意一個(gè)非空的指引值x,x.equals(x)永遠(yuǎn)返回true。

對稱性:即對任意兩個(gè)非空的指引值x,y,如果x.equals(y)返回true,那么y.equals(x)也返回true。

傳遞性:當(dāng)x.equals(y)返回true并且y.equals(z)返回true時(shí),x.equals(z)也返回true。

3. public String toString()

????????該方法返回對象的字符串表示,形如:java.lang.Object@1db9742,也就是 類名@hashcode。toString()方法是一個(gè)從字面上就容易理解的方法,它的功能是得到一個(gè)能夠代表該對象的一個(gè)字符串:類名+"@"+代表該對象的一個(gè)唯一的16進(jìn)制數(shù),例如下面這個(gè)例子:

????????【例】 查看Object類和String類的toString()方法返回值。

public class ObjectSample {public static void main(String args[]){Object o = new Object();System.out.println(o);System.out.println(o.toString());String s = new String("hello");System.out.println(s);        }    
}

程序運(yùn)行結(jié)果:

java.lang.Object@1db9742

java.lang.Object@1db9742

hello

????????程序分析:前兩個(gè)輸出結(jié)果表示對象o在內(nèi)存中的地址,事實(shí)上返回這樣的字符串沒有什么實(shí)際的意義。一般子類都會覆蓋該方法,讓它返回有意義的文本。例如上例中的對象s的輸出為"hello",這是因?yàn)樽址甋tring類對toString()進(jìn)行了覆蓋,讓它返回此String的本身內(nèi)容。

????????下面通過實(shí)例來看一下如何在自己編寫的類中覆蓋equals()方法和toString()方法。

????????【例】 equals()方法和toString()的覆蓋

    //圓類public class MyCircle {private int radius;//半徑public MyCircle(int r) {radius = r;}public int getRadius() {return radius;}public void setRadius(int r) {radius = r;}//覆蓋Object中的equals()方法public boolean equals(Object obj) {MyCircle o = (MyCircle) obj;if (o.getRadius() == this.radius)return true;elsereturn false;}//覆蓋Object中toString方法public String toString() {return "radius = " + radius;}}
//測試類
public class Test {public static void main(String[] args) {MyCircle obj1 = new MyCircle(3);System.out.println("obj1:" + obj1.toString());MyCircle obj2 = new MyCircle(3);System.out.println("obj2:" + obj2.toString());if (obj1.equals(obj2))System.out.println("the two objects are equal");elseSystem.out.println("the two objects are not equal");}
}

程序運(yùn)行結(jié)果:

obj1:radius = 3

obj2:radius = 3

the two objects are equal

????????程序分析:從程序的運(yùn)行結(jié)果來看,我們創(chuàng)建的兩個(gè)MyCircle對象是相等的,因?yàn)镸yCircle類中覆蓋的equals()方法規(guī)定,當(dāng)兩個(gè)MyCircle對象的半徑相等時(shí),認(rèn)為這兩個(gè)對象相等。而我們在調(diào)用MyCircle類的構(gòu)造方法創(chuàng)建對象時(shí)設(shè)定這兩個(gè)MyCircle對象的半徑均為3,所以obj1.equals(obj2)返回true。

?

http://www.risenshineclean.com/news/59746.html

相關(guān)文章:

  • 公司網(wǎng)站服務(wù)器租用專業(yè)的網(wǎng)站建設(shè)公司
  • 東莞人才服務(wù)中心官網(wǎng)seo網(wǎng)站診斷文檔案例
  • 網(wǎng)站怎么做 凡科網(wǎng)站策劃書的撰寫流程
  • 自己如何做電影網(wǎng)站今日熱點(diǎn)新聞大事件
  • 門戶網(wǎng)站建設(shè)情況哪家網(wǎng)絡(luò)營銷好
  • 兒童做的小游戲下載網(wǎng)站市場seo是什么意思
  • 邢臺做網(wǎng)站哪個(gè)網(wǎng)絡(luò)公司好贛州seo優(yōu)化
  • 電商網(wǎng)站建設(shè)網(wǎng)蘭州seo
  • 新媒體公司網(wǎng)站怎么做北京網(wǎng)站推廣排名
  • 河間網(wǎng)站建設(shè)價(jià)格hyein seo是什么牌子
  • 風(fēng)中有朵雨做的云在線網(wǎng)站查域名注冊詳細(xì)信息查詢
  • 網(wǎng)站制作主要公司2022網(wǎng)站seo
  • dw怎么做網(wǎng)站注冊登入頁面推廣平臺有哪些渠道
  • 做風(fēng)險(xiǎn)投資網(wǎng)站優(yōu)化大師的作用
  • 商丘建網(wǎng)站百度競價(jià)排名廣告定價(jià)
  • 品牌設(shè)計(jì)公司簡介廣東seo網(wǎng)絡(luò)培訓(xùn)
  • 學(xué)網(wǎng)站建設(shè) 去哪里百度推廣客戶端下載安裝
  • 中國建設(shè)銀行網(wǎng)站查詢密碼是什么意思媒體發(fā)布平臺
  • 網(wǎng)站站點(diǎn)文件夾權(quán)限設(shè)置網(wǎng)絡(luò)軟文營銷
  • 公司做網(wǎng)站需要注意什么華為手機(jī)網(wǎng)絡(luò)營銷策劃方案
  • 凡科網(wǎng)做網(wǎng)站網(wǎng)站策劃報(bào)告
  • 網(wǎng)站建設(shè) 方案書網(wǎng)絡(luò)平臺怎么推廣
  • 同一個(gè)網(wǎng)站可以同時(shí)做競價(jià)和優(yōu)化百度熱門排行榜
  • 網(wǎng)站做導(dǎo)航的地圖seo模板建站
  • 惠州網(wǎng)站建設(shè) 翻譯6旅游搜索量環(huán)比增188%
  • 做文學(xué)網(wǎng)站用什么域名口碑營銷怎么做
  • 商丘做網(wǎng)站哪家好上海廣告推廣
  • 網(wǎng)站開發(fā)功能模塊出錯(cuò)seo課培訓(xùn)
  • 哪個(gè)網(wǎng)站做醫(yī)學(xué)培訓(xùn)好seo工作內(nèi)容和薪資
  • 浙江嘉興seo網(wǎng)站優(yōu)化推廣網(wǎng)絡(luò)推廣宣傳