第(Di)一(Yi)篇(Pian):(?)面(Mian)试(Shi)题(Ti)汇(Hui)总(Zong)

本(Ben)题(Ti)集(Ji)由(You)尚(Shang)学(Xue)堂(Tang)学(Xue)员(Yuan)整(Zheng)理(Li),(?)列(Lie)举(Ju)了(Liao)众(Zhong)多(Duo)IT公(Gong)司(Si)面(Mian)试(Shi)真(Zhen)题(Ti),(?)对(Dui)应(Ying)聘(Pin)Java程(Cheng)序(Xu)员(Yuan)职(Zhi)位(Wei)的(De)常(Chang)见(Jian)考(Kao)点(Dian)和(He)知(Zhi)识(Shi)体(Ti)系(Xi)都(Du)进(Jin)行(Xing)的(De)分(Fen)类(Lei)和(He)归(Gui)纳(Na)整(Zheng)理(Li)。(?)
本(Ben)题(Ti)集(Ji)适(Shi)合(He)应(Ying)聘(Pin)Java和(He)JavaEE职(Zhi)位(Wei)的(De)程(Cheng)序(Xu)员(Yuan)作(Zuo)为(Wei)面(Mian)试(Shi)复(Fu)习(Xi)、(?)学(Xue)习(Xi)和(He)强(Qiang)化(Hua)的(De)资(Zi)料(Liao),(?)也(Ye)适(Shi)合(He)其(Qi)他(Ta)程(Cheng)序(Xu)员(Yuan)作(Zuo)为(Wei)拓(Tuo)展(Zhan)读(Du)物(Wu)进(Jin)行(Xing)阅(Yue)读(Du)。(?)
本(Ben)题(Ti)集(Ji)包(Bao)含(Han)了(Liao)常(Chang)见(Jian)的(De)算(Suan)法(Fa)、(?)面(Mian)试(Shi)题(Ti),(?)也(Ye)包(Bao)含(Han)了(Liao)新(Xin)的(De)高(Gao)级(Ji)技(Ji)术(Shu),(?)比(Bi)如(Ru):(?)微(Wei)服(Fu)务(Wu)架(Jia)构(Gou)等(Deng)技(Ji)术(Shu)的(De)面(Mian)试(Shi)题(Ti)目(Mu)。(?)本(Ben)题(Ti)集(Ji)非(Fei)常(Chang)全(Quan)面(Mian),(?)对(Dui)于(Yu)工(Gong)作(Zuo)1-5年(Nian)左(Zuo)右(You)的(De)java程(Cheng)序(Xu)员(Yuan)面(Mian)试(Shi)有(You)非(Fei)常(Chang)好(Hao)的(De)指(Zhi)导(Dao)作(Zuo)用(Yong)。(?)
大(Da)家(Jia)也(Ye)可(Ke)以(Yi)访(Fang)问(Wen)((?)直(Zhi)接(Jie)在(Zai)线(Xian)观(Guan)看(Kan)最(Zui)新(Xin)版(Ban)的(De)面(Mian)试(Shi)题(Ti))(?):(?)tekxul.com/javamianshiti.html
1.JAVA专(Zhuan)业(Ye),(?)1000课(Ke) | 3.大(Da)数(Shu)据(Ju)专(Zhuan)业(Ye),(?)500课(Ke) |
2.Python专(Zhuan)业(Ye),(?)500课(Ke) | 4.人(Ren)工(Gong)智(Zhi)能(Neng)专(Zhuan)业(Ye),(?)500课(Ke) |
四(Si)个(Ge)专(Zhuan)业(Ye)都(Du)要(Yao)学(Xue),(?)从(Cong)零(Ling)开(Kai)始(Shi)2000小(Xiao)时(Shi),(?)成(Cheng)为(Wei)高(Gao)端(Duan)人(Ren)才(Cai),(?)打(Da)下(Xia)一(Yi)生(Sheng)技(Ji)术(Shu)基(Ji)础(Chu),(?)不(Bu)再(Zai)是(Shi)低(Di)端(Duan)码(Ma)农(Nong)。(?)

2.扫(Sao)一(Yi)扫(Sao),(?)咨(Zi)询(Xun)详(Xiang)情(Qing):(?)

访(Fang)问(Wen)官(Guan)网(Wang) www.itbaizhan.cn
Java基(Ji)础(Chu)、(?)语(Yu)法(Fa):(?)

C/C++语(Yu)言(Yan)都(Du)直(Zhi)接(Jie)编(Bian)译(Yi)成(Cheng)针(Zhen)对(Dui)特(Te)定(Ding)平(Ping)台(Tai)机(Ji)器(Qi)码(Ma)。(?)如(Ru)果(Guo)要(Yao)跨(Kua)平(Ping)台(Tai),(?)需(Xu)要(Yao)使(Shi)用(Yong)相(Xiang)应(Ying)的(De)编(Bian)译(Yi)器(Qi)重(Zhong)新(Xin)编(Bian)译(Yi)。(?)
Java源(Yuan)程(Cheng)序(Xu)((?).java)(?)要(Yao)先(Xian)编(Bian)译(Yi)成(Cheng)与(Yu)平(Ping)台(Tai)无(Wu)关(Guan)的(De)字(Zi)节(Jie)码(Ma)文(Wen)件(Jian)(.class),(?)然(Ran)后(Hou)字(Zi)节(Jie)码(Ma)文(Wen)件(Jian)再(Zai)解(Jie)释(Shi)成(Cheng)机(Ji)器(Qi)码(Ma)运(Yun)行(Xing)。(?)解(Jie)释(Shi)是(Shi)通(Tong)过(Guo)Java虚(Xu)拟(Ni)机(Ji)来(Lai)执(Zhi)行(Xing)的(De)。(?)
字(Zi)节(Jie)码(Ma)文(Wen)件(Jian)不(Bu)面(Mian)向(Xiang)任(Ren)何(He)具(Ju)体(Ti)平(Ping)台(Tai),(?)只(Zhi)面(Mian)向(Xiang)虚(Xu)拟(Ni)机(Ji)。(?)
Java虚(Xu)拟(Ni)机(Ji)是(Shi)可(Ke)运(Yun)行(Xing)Java字(Zi)节(Jie)码(Ma)文(Wen)件(Jian)的(De)虚(Xu)拟(Ni)计(Ji)算(Suan)机(Ji)。(?)不(Bu)同(Tong)平(Ping)台(Tai)的(De)虚(Xu)拟(Ni)机(Ji)是(Shi)不(Bu)同(Tong)的(De),(?)但(Dan)它(Ta)们(Men)都(Du)提(Ti)供(Gong)了(Liao)相(Xiang)同(Tong)的(De)接(Jie)口(Kou)。(?)
Java语(Yu)言(Yan)具(Ju)有(You)一(Yi)次(Ci)编(Bian)译(Yi),(?)到(Dao)处(Chu)运(Yun)行(Xing)的(De)特(Te)点(Dian)。(?)就(Jiu)是(Shi)说(Shuo)编(Bian)译(Yi)后(Hou)的(De).class可(Ke)以(Yi)跨(Kua)平(Ping)台(Tai)运(Yun)行(Xing),(?)前(Qian)提(Ti)是(Shi)该(Gai)平(Ping)台(Tai)具(Ju)有(You)相(Xiang)应(Ying)的(De)Java虚(Xu)拟(Ni)机(Ji)。(?)但(Dan)是(Shi)性(Xing)能(Neng)比(Bi)C/C++要(Yao)低(Di)。(?)
Java的(De)跨(Kua)平(Ping)台(Tai)原(Yuan)理(Li)决(Jue)定(Ding)了(Liao)其(Qi)性(Xing)能(Neng)没(Mei)有(You)C/C++高(Gao)

语(Yu)言(Yan)层(Ceng)次(Ci)的(De)安(An)全(Quan)性(Xing)主(Zhu)要(Yao)体(Ti)现(Xian)在(Zai):(?)
Java取(Qu)消(Xiao)了(Liao)强(Qiang)大(Da)但(Dan)又(You)危(Wei)险(Xian)的(De)指(Zhi)针(Zhen),(?)而(?)代(Dai)之(Zhi)以(Yi)引(Yin)用(Yong)。(?)由(You)于(Yu)指(Zhi)针(Zhen)可(Ke)进(Jin)行(Xing)移(Yi)动(Dong)运(Yun)算(Suan),(?)指(Zhi)针(Zhen)可(Ke)随(Sui)便(Bian)指(Zhi)向(Xiang)一(Yi)个(Ge)内(Nei)存(Cun)区(Qu)域(Yu),(?)而(?)不(Bu)管(Guan)这(Zhe)个(Ge)区(Qu)域(Yu)是(Shi)否(Fou)可(Ke)用(Yong),(?)这(Zhe)样(Yang)做(Zuo)是(Shi)危(Wei)险(Xian)的(De),(?)因(Yin)为(Wei)原(Yuan)来(Lai)这(Zhe)个(Ge)内(Nei)存(Cun)地(Di)址(Zhi)可(Ke)能(Neng)存(Cun)储(Chu)着(Zhuo)重(Zhong)要(Yao)数(Shu)据(Ju)或(Huo)者(Zhe)是(Shi)其(Qi)他(Ta)程(Cheng)序(Xu)运(Yun)行(Xing)所(Suo)占(Zhan)用(Yong)的(De),(?)并(Bing)且(Qie)使(Shi)用(Yong)指(Zhi)针(Zhen)也(Ye)容(Rong)易(Yi)数(Shu)组(Zu)越(Yue)界(Jie)。(?)
垃(La)圾(Ji)回(Hui)收(Shou)机(Ji)制(Zhi):(?)不(Bu)需(Xu)要(Yao)程(Cheng)序(Xu)员(Yuan)直(Zhi)接(Jie)控(Kong)制(Zhi)内(Nei)存(Cun)回(Hui)收(Shou),(?)由(You)垃(La)圾(Ji)回(Hui)收(Shou)器(Qi)在(Zai)后(Hou)台(Tai)自(Zi)动(Dong)回(Hui)收(Shou)不(Bu)再(Zai)使(Shi)用(Yong)的(De)内(Nei)存(Cun)。(?)避(Bi)免(Mian)程(Cheng)序(Xu)忘(Wang)记(Ji)及(Ji)时(Shi)回(Hui)收(Shou),(?)导(Dao)致(Zhi)内(Nei)存(Cun)泄(Xie)露(Lu)。(?)避(Bi)免(Mian)程(Cheng)序(Xu)错(Cuo)误(Wu)回(Hui)收(Shou)程(Cheng)序(Xu)核(He)心(Xin)类(Lei)库(Ku)的(De)内(Nei)存(Cun),(?)导(Dao)致(Zhi)系(Xi)统(Tong)崩(Beng)溃(Kui)。(?)
异(Yi)常(Chang)处(Chu)理(Li)机(Ji)制(Zhi):(?)Java异(Yi)常(Chang)机(Ji)制(Zhi)主(Zhu)要(Yao)依(Yi)赖(Lai)于(Yu)try、(?)catch、(?)finally、(?)throw、(?)throws五(Wu)个(Ge)关(Guan)键(Jian)字(Zi)。(?)
强(Qiang)制(Zhi)类(Lei)型(Xing)转(Zhuan)换(Huan):(?)只(Zhi)有(You)在(Zai)满(Man)足(Zu)强(Qiang)制(Zhi)转(Zhuan)换(Huan)规(Gui)则(Ze)的(De)情(Qing)况(Kuang)下(Xia)才(Cai)能(Neng)强(Qiang)转(Zhuan)成(Cheng)功(Gong)。(?)
底(Di)层(Ceng)的(De)安(An)全(Quan)性(Xing)可(Ke)以(Yi)从(Cong)以(Yi)下(Xia)方(Fang)面(Mian)来(Lai)说(Shuo)明(Ming)
Java在(Zai)字(Zi)节(Jie)码(Ma)的(De)传(Chuan)输(Shu)过(Guo)程(Cheng)中(Zhong)使(Shi)用(Yong)了(Liao)公(Gong)开(Kai)密(Mi)钥(Yue)加(Jia)密(Mi)机(Ji)制(Zhi)(PKC)。(?)
在(Zai)运(Yun)行(Xing)环(Huan)境(Jing)提(Ti)供(Gong)了(Liao)四(Si)级(Ji)安(An)全(Quan)性(Xing)保(Bao)障(Zhang)机(Ji)制(Zhi):(?)
字(Zi)节(Jie)码(Ma)校(Xiao)验(Yan)器(Qi) -类(Lei)装(Zhuang)载(Zai)器(Qi) -运(Yun)行(Xing)时(Shi)内(Nei)存(Cun)布(Bu)局(Ju) -文(Wen)件(Jian)访(Fang)问(Wen)限(Xian)制(Zhi)
Java2平(Ping)台(Tai)包(Bao)括(Kuo)标(Biao)准(Zhun)版(Ban)((?)J2SE)(?)、(?)企(Qi)业(Ye)版(Ban)((?)J2EE)(?)和(He)微(Wei)缩(Suo)版(Ban)((?)J2ME)(?)三(San)个(Ge)版(Ban)本(Ben):(?)
Standard Edition(标(Biao)准(Zhun)版(Ban)) J2SE 包(Bao)含(Han)那(Na)些(Xie)构(Gou)成(Cheng)Java语(Yu)言(Yan)核(He)心(Xin)的(De)类(Lei)。(?)
比(Bi)如(Ru):(?)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)、(?)接(Jie)口(Kou)定(Ding)义(Yi)、(?)输(Shu)入(Ru)/输(Shu)出(Chu)、(?)网(Wang)络(Luo)编(Bian)程(Cheng)
Enterprise Edition(企(Qi)业(Ye)版(Ban)) J2EE 包(Bao)含(Han)J2SE 中(Zhong)的(De)类(Lei),(?)并(Bing)且(Qie)还(Huan)包(Bao)含(Han)用(Yong)于(Yu)开(Kai)发(Fa)企(Qi)业(Ye)级(Ji)应(Ying)用(Yong)的(De)类(Lei)。(?)
比(Bi)如(Ru)servlet、(?)JSP、(?)XML、(?)事(Shi)务(Wu)控(Kong)制(Zhi)
Micro Edition(微(Wei)缩(Suo)版(Ban)) J2ME 包(Bao)含(Han)J2SE中(Zhong)一(Yi)部(Bu)分(Fen)类(Lei),(?)用(Yong)于(Yu)消(Xiao)费(Fei)类(Lei)电(Dian)子(Zi)产(Chan)品(Pin)的(De)软(Ruan)件(Jian)开(Kai)发(Fa)。(?)
比(Bi)如(Ru):(?)呼(Hu)机(Ji)、(?)智(Zhi)能(Neng)卡(Ka)、(?)手(Shou)机(Ji)、(?)PDA、(?)机(Ji)顶(Ding)盒(He)
他(Ta)们(Men)的(De)范(Fan)围(Wei)是(Shi):(?)J2SE包(Bao)含(Han)于(Yu)J2EE中(Zhong),(?)J2ME包(Bao)含(Han)了(Liao)J2SE的(De)核(He)心(Xin)类(Lei),(?)但(Dan)新(Xin)添(Tian)加(Jia)了(Liao)一(Yi)些(Xie)专(Zhuan)有(You)类(Lei)
应(Ying)用(Yong)场(Chang)合(He),(?)API的(De)覆(Fu)盖(Gai)范(Fan)围(Wei)各(Ge)不(Bu)相(Xiang)同(Tong)。(?)
JVM :(?)JVM是(Shi)Java Virtual Machine((?)Java虚(Xu)拟(Ni)机(Ji))(?)的(De)缩(Suo)写(Xie),(?)它(Ta)是(Shi)整(Zheng)个(Ge)java实(Shi)现(Xian)跨(Kua)平(Ping)台(Tai)的(De)最(Zui)核(He)心(Xin)的(De)部(Bu)分(Fen),(?)所(Suo)有(You)的(De)java程(Cheng)序(Xu)会(Hui)首(Shou)先(Xian)被(Bei)编(Bian)译(Yi)为(Wei).class的(De)类(Lei)文(Wen)件(Jian),(?)这(Zhe)种(Zhong)类(Lei)文(Wen)件(Jian)可(Ke)以(Yi)在(Zai)虚(Xu)拟(Ni)机(Ji)上(Shang)执(Zhi)行(Xing),(?)也(Ye)就(Jiu)是(Shi)说(Shuo)class并(Bing)不(Bu)直(Zhi)接(Jie)与(Yu)机(Ji)器(Qi)的(De)操(Cao)作(Zuo)系(Xi)统(Tong)相(Xiang)对(Dui)应(Ying),(?)而(?)是(Shi)经(Jing)过(Guo)虚(Xu)拟(Ni)机(Ji)间(Jian)接(Jie)与(Yu)操(Cao)作(Zuo)系(Xi)统(Tong)交(Jiao)互(Hu),(?)由(You)虚(Xu)拟(Ni)机(Ji)将(Jiang)程(Cheng)序(Xu)解(Jie)释(Shi)给(Gei)本(Ben)地(Di)系(Xi)统(Tong)执(Zhi)行(Xing)。(?)JVM是(Shi)Java平(Ping)台(Tai)的(De)基(Ji)础(Chu),(?)和(He)实(Shi)际(Ji)的(De)机(Ji)器(Qi)一(Yi)样(Yang),(?)它(Ta)也(Ye)有(You)自(Zi)己(Ji)的(De)指(Zhi)令(Ling)集(Ji),(?)并(Bing)且(Qie)在(Zai)运(Yun)行(Xing)时(Shi)操(Cao)作(Zuo)不(Bu)同(Tong)的(De)内(Nei)存(Cun)区(Qu)域(Yu)。(?)JVM通(Tong)过(Guo)抽(Chou)象(Xiang)操(Cao)作(Zuo)系(Xi)统(Tong)和(He)CPU结(Jie)构(Gou),(?)提(Ti)供(Gong)了(Liao)一(Yi)种(Zhong)与(Yu)平(Ping)台(Tai)无(Wu)关(Guan)的(De)代(Dai)码(Ma)执(Zhi)行(Xing)方(Fang)法(Fa),(?)即(Ji)与(Yu)特(Te)殊(Shu)的(De)实(Shi)现(Xian)方(Fang)法(Fa)、(?)主(Zhu)机(Ji)硬(Ying)件(Jian)、(?)主(Zhu)机(Ji)操(Cao)作(Zuo)系(Xi)统(Tong)无(Wu)关(Guan)。(?)JVM的(De)主(Zhu)要(Yao)工(Gong)作(Zuo)是(Shi)解(Jie)释(Shi)自(Zi)己(Ji)的(De)指(Zhi)令(Ling)集(Ji)((?)即(Ji)字(Zi)节(Jie)码(Ma))(?)到(Dao)CPU的(De)指(Zhi)令(Ling)集(Ji)或(Huo)对(Dui)应(Ying)的(De)系(Xi)统(Tong)调(Diao)用(Yong),(?)保(Bao)护(Hu)用(Yong)户(Hu)免(Mian)被(Bei)恶(E)意(Yi)程(Cheng)序(Xu)骚(Sao)扰(Rao)。(?)JVM对(Dui)上(Shang)层(Ceng)的(De)Java源(Yuan)文(Wen)件(Jian)是(Shi)不(Bu)关(Guan)心(Xin)的(De),(?)它(Ta)关(Guan)注(Zhu)的(De)只(Zhi)是(Shi)由(You)源(Yuan)文(Wen)件(Jian)生(Sheng)成(Cheng)的(De)类(Lei)文(Wen)件(Jian)((?).class文(Wen)件(Jian))(?)。(?)
JRE:(?)JRE是(Shi)java runtime environment((?)java运(Yun)行(Xing)环(Huan)境(Jing))(?)的(De)缩(Suo)写(Xie)。(?)光(Guang)有(You)JVM还(Huan)不(Bu)能(Neng)让(Rang)class文(Wen)件(Jian)执(Zhi)行(Xing),(?)因(Yin)为(Wei)在(Zai)解(Jie)释(Shi)class的(De)时(Shi)候(Hou)JVM需(Xu)要(Yao)调(Diao)用(Yong)解(Jie)释(Shi)所(Suo)需(Xu)要(Yao)的(De)类(Lei)库(Ku)lib。(?)在(Zai)JDK的(De)安(An)装(Zhuang)目(Mu)录(Lu)里(Li)你(Ni)可(Ke)以(Yi)找(Zhao)到(Dao)jre目(Mu)录(Lu),(?)里(Li)面(Mian)有(You)两(Liang)个(Ge)文(Wen)件(Jian)夹(Jia)bin和(He)lib,在(Zai)这(Zhe)里(Li)可(Ke)以(Yi)认(Ren)为(Wei)bin里(Li)的(De)就(Jiu)是(Shi)jvm,(?)lib中(Zhong)则(Ze)是(Shi)jvm工(Gong)作(Zuo)所(Suo)需(Xu)要(Yao)的(De)类(Lei)库(Ku),(?)而(?)jvm和(He)lib和(He)起(Qi)来(Lai)就(Jiu)称(Cheng)为(Wei)jre。(?)所(Suo)以(Yi),(?)在(Zai)你(Ni)写(Xie)完(Wan)java程(Cheng)序(Xu)编(Bian)译(Yi)成(Cheng).class之(Zhi)后(Hou),(?)你(Ni)可(Ke)以(Yi)把(Ba)这(Zhe)个(Ge).class文(Wen)件(Jian)和(He)jre一(Yi)起(Qi)打(Da)包(Bao)发(Fa)给(Gei)朋(Peng)友(You),(?)这(Zhe)样(Yang)你(Ni)的(De)朋(Peng)友(You)就(Jiu)可(Ke)以(Yi)运(Yun)行(Xing)你(Ni)写(Xie)程(Cheng)序(Xu)了(Liao)((?)jre里(Li)有(You)运(Yun)行(Xing).class的(De)java.exe)(?)。(?)JRE是(Shi)Sun公(Gong)司(Si)发(Fa)布(Bu)的(De)一(Yi)个(Ge)更(Geng)大(Da)的(De)系(Xi)统(Tong),(?)它(Ta)里(Li)面(Mian)就(Jiu)有(You)一(Yi)个(Ge)JVM。(?)JRE就(Jiu)与(Yu)具(Ju)体(Ti)的(De)CPU结(Jie)构(Gou)和(He)操(Cao)作(Zuo)系(Xi)统(Tong)有(You)关(Guan),(?)是(Shi)运(Yun)行(Xing)Java程(Cheng)序(Xu)必(Bi)不(Bu)可(Ke)少(Shao)的(De)((?)除(Chu)非(Fei)用(Yong)其(Qi)他(Ta)一(Yi)些(Xie)编(Bian)译(Yi)环(Huan)境(Jing)编(Bian)译(Yi)成(Cheng).exe可(Ke)执(Zhi)行(Xing)文(Wen)件(Jian)…(?)…(?))(?),(?)JRE的(De)地(Di)位(Wei)就(Jiu)象(Xiang)一(Yi)台(Tai)PC机(Ji)一(Yi)样(Yang),(?)我(Wo)们(Men)写(Xie)好(Hao)的(De)Win32应(Ying)用(Yong)程(Cheng)序(Xu)需(Xu)要(Yao)操(Cao)作(Zuo)系(Xi)统(Tong)帮(Bang)我(Wo)们(Men)运(Yun)行(Xing),(?)同(Tong)样(Yang)的(De),(?)我(Wo)们(Men)编(Bian)写(Xie)的(De)Java程(Cheng)序(Xu)也(Ye)必(Bi)须(Xu)要(Yao)JRE才(Cai)能(Neng)运(Yun)行(Xing)。(?)
JDK:(?)JDK是(Shi)java development kit((?)java开(Kai)发(Fa)工(Gong)具(Ju)包(Bao))(?)的(De)缩(Suo)写(Xie)。(?)每(Mei)个(Ge)学(Xue)java的(De)人(Ren)都(Du)会(Hui)先(Xian)在(Zai)机(Ji)器(Qi)上(Shang)装(Zhuang)一(Yi)个(Ge)JDK,(?)那(Na) 让(Rang)我(Wo)们(Men)看(Kan)一(Yi)下(Xia)JDK的(De)安(An)装(Zhuang)目(Mu)录(Lu)。(?)在(Zai)目(Mu)录(Lu)下(Xia)面(Mian)有(You)六(Liu)个(Ge)文(Wen)件(Jian)夹(Jia)、(?)一(Yi)个(Ge)src类(Lei)库(Ku)源(Yuan)码(Ma)压(Ya)缩(Suo)包(Bao)、(?)和(He)其(Qi)他(Ta)几(Ji)个(Ge)声(Sheng)明(Ming)文(Wen)件(Jian)。(?)其(Qi)中(Zhong),(?)真(Zhen)正(Zheng)在(Zai)运(Yun)行(Xing)java时(Shi)起(Qi)作(Zuo)用(Yong)的(De)是(Shi)以(Yi)下(Xia)四(Si)个(Ge)文(Wen)件(Jian)夹(Jia):(?)bin、(?)include、(?)lib、(?)jre。(?)现(Xian)在(Zai)我(Wo)们(Men)可(Ke)以(Yi)看(Kan)出(Chu)这(Zhe)样(Yang)一(Yi)个(Ge)关(Guan)系(Xi),(?)JDK包(Bao)含(Han)JRE,(?)而(?)JRE包(Bao)含(Han)JVM。(?)
bin:最(Zui)主(Zhu)要(Yao)的(De)是(Shi)编(Bian)译(Yi)器(Qi)(javac.exe)
include:java和(He)JVM交(Jiao)互(Hu)用(Yong)的(De)头(Tou)文(Wen)件(Jian)
lib:(?)类(Lei)库(Ku)
jre:java运(Yun)行(Xing)环(Huan)境(Jing)
((?)注(Zhu)意(Yi):(?)这(Zhe)里(Li)的(De)bin、(?)lib文(Wen)件(Jian)夹(Jia)和(He)jre里(Li)的(De)bin、(?)lib是(Shi)不(Bu)同(Tong)的(De))(?)总(Zong)的(De)来(Lai)说(Shuo)JDK是(Shi)用(Yong)于(Yu)java程(Cheng)序(Xu)的(De)开(Kai)发(Fa),而(?)jre则(Ze)是(Shi)只(Zhi)能(Neng)运(Yun)行(Xing)class而(?)没(Mei)有(You)编(Bian)译(Yi)的(De)功(Gong)能(Neng)。(?)eclipse、(?)idea等(Deng)其(Qi)他(Ta)IDE有(You)自(Zi)己(Ji)的(De)编(Bian)译(Yi)器(Qi)而(?)不(Bu)是(Shi)用(Yong)JDKbin目(Mu)录(Lu)中(Zhong)自(Zi)带(Dai)的(De),(?)所(Suo)以(Yi)在(Zai)安(An)装(Zhuang)时(Shi)你(Ni)会(Hui)发(Fa)现(Xian)他(Ta)们(Men)只(Zhi)要(Yao)求(Qiu)你(Ni)选(Xuan)jre路(Lu)径(Jing)就(Jiu)ok了(Liao)。(?)
JDK,JRE,JVM三(San)者(Zhe)关(Guan)系(Xi)概(Gai)括(Kuo)如(Ru)下(Xia):(?)
jdk是(Shi)JAVA程(Cheng)序(Xu)开(Kai)发(Fa)时(Shi)用(Yong)的(De)开(Kai)发(Fa)工(Gong)具(Ju)包(Bao),(?)其(Qi)内(Nei)部(Bu)也(Ye)有(You)JRE运(Yun)行(Xing)环(Huan)境(Jing)JRE。(?)JRE是(Shi)JAVA程(Cheng)序(Xu)运(Yun)行(Xing)时(Shi)需(Xu)要(Yao)的(De)运(Yun)行(Xing)环(Huan)境(Jing),(?)就(Jiu)是(Shi)说(Shuo)如(Ru)果(Guo)你(Ni)光(Guang)是(Shi)运(Yun)行(Xing)JAVA程(Cheng)序(Xu)而(?)不(Bu)是(Shi)去(Qu)搞(Gao)开(Kai)发(Fa)的(De)话(Hua),(?)只(Zhi)安(An)装(Zhuang)JRE就(Jiu)能(Neng)运(Yun)行(Xing)已(Yi)经(Jing)存(Cun)在(Zai)的(De)JAVA程(Cheng)序(Xu)了(Liao)。(?)JDk、(?)JRE内(Nei)部(Bu)都(Du)包(Bao)含(Han)JAVA虚(Xu)拟(Ni)机(Ji)JVM,(?)JAVA虚(Xu)拟(Ni)机(Ji)内(Nei)部(Bu)包(Bao)含(Han)许(Xu)多(Duo)应(Ying)用(Yong)程(Cheng)序(Xu)的(De)类(Lei)的(De)解(Jie)释(Shi)器(Qi)和(He)类(Lei)加(Jia)载(Zai)器(Qi)等(Deng)等(Deng)。(?)
共(Gong)有(You)单(Dan)行(Xing)注(Zhu)释(Shi)、(?)多(Duo)行(Xing)注(Zhu)释(Shi)、(?)文(Wen)档(Dang)注(Zhu)释(Shi)3种(Zhong)注(Zhu)释(Shi)类(Lei)型(Xing)。(?)使(Shi)用(Yong)如(Ru)下(Xia):(?)
单(Dan)行(Xing)注(Zhu)释(Shi),(?)采(Cai)用(Yong)“(?)//”(?)方(Fang)式(Shi).只(Zhi)能(Neng)注(Zhu)释(Shi)一(Yi)行(Xing)代(Dai)码(Ma)。(?)如(Ru):(?)//类(Lei)成(Cheng)员(Yuan)变(Bian)量(Liang)
多(Duo)行(Xing)注(Zhu)释(Shi),(?)采(Cai)用(Yong)“(?)/*...*/”(?)方(Fang)式(Shi),(?)可(Ke)注(Zhu)释(Shi)多(Duo)行(Xing)代(Dai)码(Ma),(?)其(Qi)中(Zhong)不(Bu)允(Yun)许(Xu)出(Chu)现(Xian)嵌(Qian)套(Tao)。(?)如(Ru):(?)
/*System.out.println("a");
System.out.println("b");
System.out.println("c");*/
文(Wen)档(Dang)注(Zhu)释(Shi),(?)采(Cai)用(Yong)“(?)/**...*/”(?)方(Fang)式(Shi)。(?)如(Ru):(?)
/**
* 子(Zi)类(Lei) Dog
* @author Administrator
**/
public class Dog extends Animal{}
数(Shu)据(Ju)类(Lei)型(Xing) | 关(Guan)键(Jian)字(Zi) | 字(Zi)节(Jie)数(Shu) | |
数(Shu)值(Zhi)型(Xing) | 整(Zheng)数(Shu)型(Xing) | byte | 1 |
short | 2 | ||
int | 4 | ||
long | 8 | ||
浮(Fu)点(Dian)型(Xing) | float | 4 | |
double | 8 | ||
布(Bu)尔(?)型(Xing) | boolean | 1((?)位(Wei))(?) | |
字(Zi)符(Fu)型(Xing) | char | 2 |
共(Gong)同(Tong)点(Dian):(?)
1、(?)i++和(He)++i都(Du)是(Shi)变(Bian)量(Liang)自(Zi)增(Zeng)1,(?)都(Du)等(Deng)价(Jia)于(Yu)i=i+1
2、(?)如(Ru)果(Guo)i++,++i是(Shi)一(Yi)条(Tiao)单(Dan)独(Du)的(De)语(Yu)句(Ju),(?)两(Liang)者(Zhe)没(Mei)有(You)任(Ren)何(He)区(Qu)别(Bie)
3、(?)i++和(He)++i的(De)使(Shi)用(Yong)仅(Jin)仅(Jin)针(Zhen)对(Dui)变(Bian)量(Liang)。(?) 5++和(He)++5会(Hui)报(Bao)错(Cuo),(?)因(Yin)为(Wei)5不(Bu)是(Shi)变(Bian)量(Liang)。(?)
不(Bu)同(Tong)点(Dian):(?)
如(Ru)果(Guo)i++,++i不(Bu)是(Shi)一(Yi)条(Tiao)单(Dan)独(Du)的(De)语(Yu)句(Ju),(?)他(Ta)们(Men)就(Jiu)有(You)区(Qu)别(Bie)i++ :(?)先(Xian)运(Yun)算(Suan)后(Hou)增(Zeng)1。(?)如(Ru):(?)
int x=5; int y=x++; System.out.println("x="+x+", y="+y); //以(Yi)上(Shang)代(Dai)码(Ma)运(Yun)行(Xing)后(Hou)输(Shu)出(Chu)结(Jie)果(Guo)为(Wei):(?)x=6, y=5
++i :(?) 先(Xian)增(Zeng)1后(Hou)运(Yun)算(Suan)。(?)如(Ru):(?)
int x=5; int y=++x; System.out.println("x="+x+", y="+y); //以(Yi)上(Shang)代(Dai)码(Ma)运(Yun)行(Xing)后(Hou)输(Shu)出(Chu)结(Jie)果(Guo)为(Wei):(?)x=6, y=6
&和(He)&&的(De)联(Lian)系(Xi)(共(Gong)同(Tong)点(Dian)):(?)
&和(He)&&都(Du)可(Ke)以(Yi)用(Yong)作(Zuo)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu),(?)但(Dan)是(Shi)要(Yao)看(Kan)使(Shi)用(Yong)时(Shi)的(De)具(Ju)体(Ti)条(Tiao)件(Jian)来(Lai)决(Jue)定(Ding)。(?)
操(Cao)作(Zuo)数(Shu)1&操(Cao)作(Zuo)数(Shu)2,(?)操(Cao)作(Zuo)数(Shu)1&&操(Cao)作(Zuo)数(Shu)2,(?)
表(Biao)达(Da)式(Shi)1&表(Biao)达(Da)式(Shi)2,(?)表(Biao)达(Da)式(Shi)1&&表(Biao)达(Da)式(Shi)2,(?)
情(Qing)况(Kuang)1:(?)当(Dang)上(Shang)述(Shu)的(De)操(Cao)作(Zuo)数(Shu)是(Shi)boolean类(Lei)型(Xing)变(Bian)量(Liang)时(Shi),(?)&和(He)&&都(Du)可(Ke)以(Yi)用(Yong)作(Zuo)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu)。(?)
情(Qing)况(Kuang)2:(?)当(Dang)上(Shang)述(Shu)的(De)表(Biao)达(Da)式(Shi)结(Jie)果(Guo)是(Shi)boolean类(Lei)型(Xing)变(Bian)量(Liang)时(Shi),(?)&和(He)&&都(Du)可(Ke)以(Yi)用(Yong)作(Zuo)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu)。(?)
表(Biao)示(Shi)逻(Luo)辑(Ji)与(Yu)(and),(?)当(Dang)运(Yun)算(Suan)符(Fu)两(Liang)边(Bian)的(De)表(Biao)达(Da)式(Shi)的(De)结(Jie)果(Guo)或(Huo)操(Cao)作(Zuo)数(Shu)都(Du)为(Wei)true时(Shi),(?)整(Zheng)个(Ge)运(Yun)算(Suan)结(Jie)果(Guo)才(Cai)为(Wei)true,(?)否(Fou)则(Ze),(?)只(Zhi)要(Yao)有(You)一(Yi)方(Fang)为(Wei)false,(?)结(Jie)果(Guo)都(Du)为(Wei)false。(?)
&和(He)&&的(De)区(Qu)别(Bie)(不(Bu)同(Tong)点(Dian)):(?)
(1)、(?)&逻(Luo)辑(Ji)运(Yun)算(Suan)符(Fu)称(Cheng)为(Wei)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu),(?)&&逻(Luo)辑(Ji)运(Yun)算(Suan)符(Fu)称(Cheng)为(Wei)短(Duan)路(Lu)与(Yu)运(Yun)算(Suan)符(Fu),(?)也(Ye)可(Ke)叫(Jiao)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu)。(?)
对(Dui)于(Yu)&:(?)无(Wu)论(Lun)任(Ren)何(He)情(Qing)况(Kuang),(?)&两(Liang)边(Bian)的(De)操(Cao)作(Zuo)数(Shu)或(Huo)表(Biao)达(Da)式(Shi)都(Du)会(Hui)参(Can)与(Yu)计(Ji)算(Suan)。(?)
对(Dui)于(Yu)&&:(?)当(Dang)&&左(Zuo)边(Bian)的(De)操(Cao)作(Zuo)数(Shu)为(Wei)false或(Huo)左(Zuo)边(Bian)表(Biao)达(Da)式(Shi)结(Jie)果(Guo)为(Wei)false时(Shi),(?)&&右(You)边(Bian)的(De)操(Cao)作(Zuo)数(Shu)或(Huo)表(Biao)达(Da)式(Shi)将(Jiang)不(Bu)参(Can)与(Yu)计(Ji)算(Suan),(?)此(Ci)时(Shi)最(Zui)终(Zhong)结(Jie)果(Guo)都(Du)为(Wei)false。(?)
综(Zong)上(Shang)所(Suo)述(Shu),(?)如(Ru)果(Guo)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)的(De)第(Di)一(Yi)个(Ge)操(Cao)作(Zuo)数(Shu)是(Shi)false或(Huo)第(Di)一(Yi)个(Ge)表(Biao)达(Da)式(Shi)的(De)结(Jie)果(Guo)为(Wei)false时(Shi),(?)对(Dui)于(Yu)第(Di)二(?)个(Ge)操(Cao)作(Zuo)数(Shu)或(Huo)表(Biao)达(Da)式(Shi)是(Shi)否(Fou)进(Jin)行(Xing)运(Yun)算(Suan),(?)对(Dui)最(Zui)终(Zhong)的(De)结(Jie)果(Guo)没(Mei)有(You)影(Ying)响(Xiang),(?)结(Jie)果(Guo)肯(Ken)定(Ding)是(Shi)false。(?)推(Tui)介(Jie)平(Ping)时(Shi)多(Duo)使(Shi)用(Yong)&&,(?)因(Yin)为(Wei)它(Ta)效(Xiao)率(Lu)更(Geng)高(Gao)些(Xie)。(?)
、(?)&还(Huan)可(Ke)以(Yi)用(Yong)作(Zuo)位(Wei)运(Yun)算(Suan)符(Fu)。(?)当(Dang)&两(Liang)边(Bian)操(Cao)作(Zuo)数(Shu)或(Huo)两(Liang)边(Bian)表(Biao)达(Da)式(Shi)的(De)结(Jie)果(Guo)不(Bu)是(Shi)boolean类(Lei)型(Xing)时(Shi),(?)&用(Yong)于(Yu)按(An)位(Wei)与(Yu)运(Yun)算(Suan)符(Fu)的(De)操(Cao)作(Zuo)。(?)
|和(He)||的(De)区(Qu)别(Bie)和(He)联(Lian)系(Xi)与(Yu)&和(He)&&的(De)区(Qu)别(Bie)和(He)联(Lian)系(Xi)类(Lei)似(Si)
使(Shi)用(Yong)位(Wei)运(Yun)算(Suan)来(Lai)实(Shi)现(Xian)效(Xiao)率(Lu)最(Zui)高(Gao)。(?)位(Wei)运(Yun)算(Suan)符(Fu)是(Shi)对(Dui)操(Cao)作(Zuo)数(Shu)以(Yi)二(?)进(Jin)制(Zhi)比(Bi)特(Te)位(Wei)为(Wei)单(Dan)位(Wei)进(Jin)行(Xing)操(Cao)作(Zuo)和(He)运(Yun)算(Suan),(?)操(Cao)作(Zuo)数(Shu)和(He)结(Jie)果(Guo)都(Du)是(Shi)整(Zheng)型(Xing)数(Shu)。(?)对(Dui)于(Yu)位(Wei)运(Yun)算(Suan)符(Fu)“(?)<<”(?), 是(Shi)将(Jiang)一(Yi)个(Ge)数(Shu)左(Zuo)移(Yi)n位(Wei),(?)就(Jiu)相(Xiang)当(Dang)于(Yu)乘(Cheng)以(Yi)了(Liao)2的(De)n次(Ci)方(Fang),(?)那(Na)么(Me),(?)一(Yi)个(Ge)数(Shu)乘(Cheng)以(Yi)8只(Zhi)要(Yao)将(Jiang)其(Qi)左(Zuo)移(Yi)3位(Wei)即(Ji)可(Ke),(?)位(Wei)运(Yun)算(Suan)cpu直(Zhi)接(Jie)支(Zhi)持(Chi)的(De),(?)效(Xiao)率(Lu)最(Zui)高(Gao)。(?)所(Suo)以(Yi),(?)2乘(Cheng)以(Yi)8等(Deng)于(Yu)几(Ji)的(De)最(Zui)效(Xiao)率(Lu)的(De)方(Fang)法(Fa)是(Shi)2 << 3
基(Ji)本(Ben)类(Lei)型(Xing)转(Zhuan)换(Huan)分(Fen)为(Wei)自(Zi)动(Dong)转(Zhuan)换(Huan)和(He)强(Qiang)制(Zhi)转(Zhuan)换(Huan)。(?)
自(Zi)动(Dong)转(Zhuan)换(Huan)规(Gui)则(Ze):(?)容(Rong)量(Liang)小(Xiao)的(De)数(Shu)据(Ju)类(Lei)型(Xing)可(Ke)以(Yi)自(Zi)动(Dong)转(Zhuan)换(Huan)成(Cheng)容(Rong)量(Liang)大(Da)的(De)数(Shu)据(Ju)类(Lei)型(Xing),(?)也(Ye)可(Ke)
以(Yi)说(Shuo)低(Di)级(Ji)自(Zi)动(Dong)向(Xiang)高(Gao)级(Ji)转(Zhuan)换(Huan)。(?)这(Zhe)儿(?)的(De)容(Rong)量(Liang)指(Zhi)的(De)不(Bu)是(Shi)字(Zi)节(Jie)数(Shu),(?)而(?)是(Shi)指(Zhi)类(Lei)型(Xing)表(Biao)述(Shu)的(De)范(Fan)围(Wei)。(?)

强(Qiang)制(Zhi)转(Zhuan)换(Huan)规(Gui)则(Ze):(?)高(Gao)级(Ji)变(Bian)为(Wei)低(Di)级(Ji)需(Xu)要(Yao)强(Qiang)制(Zhi)转(Zhuan)换(Huan)。(?)
如(Ru)何(He)转(Zhuan)换(Huan):(?)
((?)1)(?)赋(Fu)值(Zhi)运(Yun)算(Suan)符(Fu)“(?)=”(?)右(You)边(Bian)的(De)转(Zhuan)换(Huan),(?)先(Xian)自(Zi)动(Dong)转(Zhuan)换(Huan)成(Cheng)表(Biao)达(Da)式(Shi)中(Zhong)级(Ji)别(Bie)最(Zui)高(Gao)的(De)数(Shu)据(Ju)类(Lei)型(Xing),(?)再(Zai)进(Jin)行(Xing)运(Yun)算(Suan)。(?)
((?)2)(?)赋(Fu)值(Zhi)运(Yun)算(Suan)符(Fu)“(?)=”(?)两(Liang)侧(Ce)的(De)转(Zhuan)换(Huan),(?)若(Ruo)左(Zuo)边(Bian)级(Ji)别(Bie)>右(You)边(Bian)级(Ji)别(Bie),(?)会(Hui)自(Zi)动(Dong)转(Zhuan)换(Huan);(?)若(Ruo)左(Zuo)边(Bian)级(Ji)别(Bie) == 右(You)边(Bian)级(Ji)别(Bie),(?)不(Bu)用(Yong)转(Zhuan)换(Huan);(?)若(Ruo)左(Zuo)边(Bian)级(Ji)别(Bie) < 右(You)边(Bian)级(Ji)别(Bie),(?)需(Xu)强(Qiang)制(Zhi)转(Zhuan)换(Huan)。(?)
(3)可(Ke)以(Yi)将(Jiang)整(Zheng)型(Xing)常(Chang)量(Liang)直(Zhi)接(Jie)赋(Fu)值(Zhi)给(Gei)byte, short, char等(Deng)类(Lei)型(Xing)变(Bian)量(Liang),(?)而(?)不(Bu)需(Xu)要(Yao)进(Jin)行(Xing)强(Qiang)制(Zhi)类(Lei)型(Xing)转(Zhuan)换(Huan),(?)前(Qian)提(Ti)是(Shi)不(Bu)超(Chao)出(Chu)其(Qi)表(Biao)述(Shu)范(Fan)围(Wei),(?)否(Fou)则(Ze)必(Bi)须(Xu)进(Jin)行(Xing)强(Qiang)制(Zhi)转(Zhuan)换(Huan)。(?)
相(Xiang)同(Tong)之(Zhi)处(Chu):(?)都(Du)是(Shi)分(Fen)支(Zhi)语(Yu)句(Ju),(?)多(Duo)超(Chao)过(Guo)一(Yi)种(Zhong)的(De)情(Qing)况(Kuang)进(Jin)行(Xing)判(Pan)断(Duan)处(Chu)理(Li)。(?)
不(Bu)同(Tong)之(Zhi)处(Chu):(?)
switch更(Geng)适(Shi)合(He)用(Yong)于(Yu)多(Duo)分(Fen)支(Zhi)情(Qing)况(Kuang),(?)就(Jiu)是(Shi)有(You)很(Hen)多(Duo)种(Zhong)情(Qing)况(Kuang)需(Xu)要(Yao)判(Pan)断(Duan)处(Chu)理(Li),(?)判(Pan)断(Duan)条(Tiao)件(Jian)类(Lei)型(Xing)单(Dan)一(Yi),(?)只(Zhi)有(You)一(Yi)个(Ge)入(Ru)口(Kou),(?)在(Zai)分(Fen)支(Zhi)执(Zhi)行(Xing)完(Wan)后(Hou)((?)如(Ru)果(Guo)没(Mei)有(You)break跳(Tiao)出(Chu))(?),(?)不(Bu)加(Jia)判(Pan)断(Duan)地(Di)执(Zhi)行(Xing)下(Xia)去(Qu);而(?)if—(?)elseif---else多(Duo)分(Fen)枝(Zhi)主(Zhu)要(Yao)适(Shi)用(Yong)于(Yu)分(Fen)支(Zhi)较(Jiao)少(Shao)的(De)分(Fen)支(Zhi)结(Jie)构(Gou),(?)判(Pan)断(Duan)类(Lei)型(Xing)不(Bu)是(Shi)单(Dan)一(Yi),(?)只(Zhi)要(Yao)一(Yi)个(Ge)分(Fen)支(Zhi)被(Bei)执(Zhi)行(Xing)后(Hou),(?)后(Hou)边(Bian)的(De)分(Fen)支(Zhi)不(Bu)再(Zai)执(Zhi)行(Xing)。(?)switch为(Wei)等(Deng)值(Zhi)判(Pan)断(Duan)((?)不(Bu)允(Yun)许(Xu)比(Bi)如(Ru)>= <=)(?),(?)而(?)if为(Wei)等(Deng)值(Zhi)和(He)区(Qu)间(Jian)都(Du)可(Ke)以(Yi),(?)if的(De)使(Shi)用(Yong)范(Fan)围(Wei)大(Da)。(?)
while先(Xian)判(Pan)断(Duan)后(Hou)执(Zhi)行(Xing),(?)第(Di)一(Yi)次(Ci)判(Pan)断(Duan)为(Wei)false,循(Xun)环(Huan)体(Ti)一(Yi)次(Ci)都(Du)不(Bu)执(Zhi)行(Xing)
do while先(Xian)执(Zhi)行(Xing) 后(Hou)判(Pan)断(Duan),(?)最(Zui)少(Shao)执(Zhi)行(Xing)1次(Ci)。(?)
如(Ru)果(Guo)while循(Xun)环(Huan)第(Di)一(Yi)次(Ci)判(Pan)断(Duan)为(Wei)true, 则(Ze)两(Liang)种(Zhong)循(Xun)环(Huan)没(Mei)有(You)区(Qu)别(Bie)。(?)
break: 结(Jie)束(Shu)当(Dang)前(Qian)循(Xun)环(Huan)并(Bing)退(Tui)出(Chu)当(Dang)前(Qian)循(Xun)环(Huan)体(Ti)。(?)
break还(Huan)可(Ke)以(Yi)退(Tui)出(Chu)switch语(Yu)句(Ju)
continue: 循(Xun)环(Huan)体(Ti)中(Zhong)后(Hou)续(Xu)的(De)语(Yu)句(Ju)不(Bu)执(Zhi)行(Xing),(?)但(Dan)是(Shi)循(Xun)环(Huan)没(Mei)有(You)结(Jie)束(Shu),(?)继(Ji)续(Xu)进(Jin)行(Xing)循(Xun)环(Huan)条(Tiao)件(Jian)的(De)判(Pan)断(Duan)((?)for循(Xun)环(Huan)还(Huan)会(Hui)i++)(?)。(?)continue只(Zhi)是(Shi)结(Jie)束(Shu)本(Ben)次(Ci)循(Xun)环(Huan)。(?)
package com.bjsxt; import java.io.File; public class $ { public static void main(String[] args) { String path = "D:/301SXT"; test(path); } private static void test(String path) { File f = new File(path); File[] fs = f.listFiles(); if (fs == null) { return; } for (File file : fs) { if (file.isFile()) { System.out.println(file.getPath()); } else { test(file.getPath()); } } }
递(Di)归(Gui)算(Suan)法(Fa)是(Shi)一(Yi)种(Zhong)直(Zhi)接(Jie)或(Huo)者(Zhe)间(Jian)接(Jie)地(Di)调(Diao)用(Yong)自(Zi)身(Shen)算(Suan)法(Fa)的(De)过(Guo)程(Cheng)。(?)在(Zai)计(Ji)算(Suan)机(Ji)编(Bian)写(Xie)程(Cheng)序(Xu)中(Zhong),(?)递(Di)归(Gui)算(Suan)法(Fa)对(Dui)解(Jie)决(Jue)一(Yi)大(Da)类(Lei)问(Wen)题(Ti)是(Shi)十(Shi)分(Fen)有(You)效(Xiao)的(De),(?)它(Ta)往(Wang)往(Wang)使(Shi)算(Suan)法(Fa)的(De)描(Miao)述(Shu)简(Jian)洁(Jie)而(?)且(Qie)易(Yi)于(Yu)理(Li)解(Jie)。(?)
递(Di)归(Gui)算(Suan)法(Fa)解(Jie)决(Jue)问(Wen)题(Ti)的(De)特(Te)点(Dian):(?)
(1) 递(Di)归(Gui)就(Jiu)是(Shi)在(Zai)过(Guo)程(Cheng)或(Huo)函(Han)数(Shu)里(Li)调(Diao)用(Yong)自(Zi)身(Shen)。(?)
(2) 在(Zai)使(Shi)用(Yong)递(Di)归(Gui)策(Ce)略(Lue)时(Shi),(?)必(Bi)须(Xu)有(You)一(Yi)个(Ge)明(Ming)确(Que)的(De)递(Di)归(Gui)结(Jie)束(Shu)条(Tiao)件(Jian),(?)称(Cheng)为(Wei)递(Di)归(Gui)出(Chu)口(Kou)。(?)
(3) 递(Di)归(Gui)算(Suan)法(Fa)解(Jie)题(Ti)通(Tong)常(Chang)显(Xian)得(De)很(Hen)简(Jian)洁(Jie),(?)但(Dan)运(Yun)行(Xing)效(Xiao)率(Lu)较(Jiao)低(Di)。(?)所(Suo)以(Yi)一(Yi)般(Ban)不(Bu)提(Ti)倡(Chang)用(Yong)递(Di)归(Gui)算(Suan)法(Fa)设(She)计(Ji)程(Cheng)序(Xu)。(?)
(4) 在(Zai)递(Di)归(Gui)调(Diao)用(Yong)的(De)过(Guo)程(Cheng)当(Dang)中(Zhong)系(Xi)统(Tong)为(Wei)每(Mei)一(Yi)层(Ceng)的(De)返(Fan)回(Hui)点(Dian)、(?)局(Ju)部(Bu)量(Liang)等(Deng)开(Kai)辟(Bi)了(Liao)栈(Zhan)来(Lai)存(Cun)储(Chu)。(?)递(Di)归(Gui)次(Ci)数(Shu)过(Guo)多(Duo)容(Rong)易(Yi)造(Zao)成(Cheng)栈(Zhan)溢(Yi)出(Chu)等(Deng)。(?)所(Suo)以(Yi)一(Yi)般(Ban)不(Bu)提(Ti)倡(Chang)用(Yong)递(Di)归(Gui)算(Suan)法(Fa)设(She)计(Ji)程(Cheng)序(Xu)。(?)
数(Shu)组(Zu)是(Shi)((?)相(Xiang)同(Tong)类(Lei)型(Xing)数(Shu)据(Ju))(?)的(De)((?)有(You)序(Xu))(?)((?)集(Ji)合(He))(?)
数(Shu)组(Zu)会(Hui)在(Zai)内(Nei)存(Cun)中(Zhong)开(Kai)辟(Bi)一(Yi)块(Kuai)连(Lian)续(Xu)的(De)空(Kong)间(Jian),(?)每(Mei)个(Ge)空(Kong)间(Jian)相(Xiang)当(Dang)于(Yu)之(Zhi)前(Qian)的(De)一(Yi)个(Ge)变(Bian)量(Liang),(?)称(Cheng)为(Wei)数(Shu)组(Zu)的(De)元(Yuan)素(Su)element
元(Yuan)素(Su)的(De)表(Biao)示(Shi) 数(Shu)组(Zu)名(Ming)[下(Xia)标(Biao)或(Huo)者(Zhe)索(Suo)引(Yin)] scores[7] scores[0] scores[9]
索(Suo)引(Yin)从(Cong)0开(Kai)始(Shi)
每(Mei)个(Ge)数(Shu)组(Zu)元(Yuan)素(Su)有(You)默(Mo)认(Ren)值(Zhi) double 0.0 boolean false int 0
数(Shu)组(Zu)元(Yuan)素(Su)有(You)序(Xu)的(De),(?)不(Bu)是(Shi)大(Da)小(Xiao)顺(Shun)序(Xu),(?)是(Shi)索(Suo)引(Yin) 的(De)顺(Shun)序(Xu)
数(Shu)组(Zu)中(Zhong)可(Ke)以(Yi)存(Cun)储(Chu)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing),(?)可(Ke)以(Yi)存(Cun)储(Chu)引(Yin)用(Yong)数(Shu)据(Ju)类(Lei)型(Xing);(?)但(Dan)是(Shi)对(Dui)于(Yu)一(Yi)个(Ge)数(Shu)组(Zu)而(?)言(Yan),(?)数(Shu)组(Zu)的(De)类(Lei)型(Xing)是(Shi)固(Gu)定(Ding)的(De),(?)只(Zhi)能(Neng)是(Shi)一(Yi)个(Ge)
length:数(Shu)组(Zu)的(De)长(Chang)度(Du)
数(Shu)组(Zu)的(De)长(Chang)度(Du)是(Shi)固(Gu)定(Ding)的(De),(?)一(Yi)经(Jing)定(Ding)义(Yi),(?)不(Bu)能(Neng)再(Zai)发(Fa)生(Sheng)变(Bian)化(Hua)((?)数(Shu)组(Zu)的(De)扩(Kuo)容(Rong))(?)
package com.bjsxt; public class TestBubbleSort { public static void sort(int[] a) { int temp = 0; // 外(Wai)层(Ceng)循(Xun)环(Huan),(?)它(Ta)决(Jue)定(Ding)一(Yi)共(Gong)走(Zou)几(Ji)趟(Tang) for (int i = 0; i <a.length-1; ++i) { //内(Nei)层(Ceng)循(Xun)环(Huan),(?)它(Ta)决(Jue)定(Ding)每(Mei)趟(Tang)走(Zou)一(Yi)次(Ci) for (int j = 0; j <a.length-i-1 ; ++j) { //如(Ru)果(Guo)后(Hou)一(Yi)个(Ge)大(Da)于(Yu)前(Qian)一(Yi)个(Ge) if (a[j + 1] < a[j]) { //换(Huan)位(Wei) temp = a[j];a[j] = a[j + 1];a[j + 1] = temp; } } } public static void sort2(int[] a) { int temp = 0; for (int i = 0; i <a.length-1; ++i) { //通(Tong)过(Guo)符(Fu)号(Hao)位(Wei)可(Ke)以(Yi)减(Jian)少(Shao)无(Wu)谓(Wei)的(De)比(Bi)较(Jiao),(?)如(Ru)果(Guo)已(Yi)经(Jing)有(You)序(Xu)了(Liao),(?)就(Jiu)退(Tui)出(Chu)循(Xun)环(Huan) int flag = 0; for (int j = 0; j <a.length-1-i ; ++j) { if (a[j + 1] < a[j]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; flag = 1; } } if(flag == 0){ break; } } } }
package com.bjsxt; public class TestSelectSort { public static void sort(int arr[]) { int temp = 0; for (int i = 0; i < arr.length - 1; i++) { // 认(Ren)为(Wei)目(Mu)前(Qian)的(De)数(Shu)就(Jiu)是(Shi)最(Zui)小(Xiao)的(De), 记(Ji)录(Lu)最(Zui)小(Xiao)数(Shu)的(De)下(Xia)标(Biao) int minIndex = i; for (int j = i + 1; j < arr.length; j++) { if (arr[minIndex] > arr[j]) { // 修(Xiu)改(Gai)最(Zui)小(Xiao)值(Zhi)的(De)下(Xia)标(Biao) minIndex = j; } } // 当(Dang)退(Tui)出(Chu)for就(Jiu)找(Zhao)到(Dao)这(Zhe)次(Ci)的(De)最(Zui)小(Xiao)值(Zhi) if (i != minIndex) { temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } } } }
package com.bjsxt; public class TestInsertSort { public static void sort(int arr[]) { int i, j; for (i = 1; i < arr.length; i++) { int temp = arr[i]; for (j = i; j > 0 && temp < arr[j - 1]; j--) { arr[j] = arr[j - 1]; } arr[j] = temp; } } }
总(Zong)结(Jie)1:(?)可(Ke)变(Bian)参(Can)数(Shu)
1.可(Ke)变(Bian)参(Can)数(Shu)的(De)形(Xing)式(Shi) ...
2.可(Ke)变(Bian)参(Can)数(Shu)只(Zhi)能(Neng)是(Shi)方(Fang)法(Fa)的(De)形(Xing)参(Can)
3.可(Ke)变(Bian)参(Can)数(Shu)对(Dui)应(Ying)的(De)实(Shi)参(Can)可(Ke)以(Yi)0,1,2.....个(Ge),(?)也(Ye)可(Ke)以(Yi)是(Shi)一(Yi)个(Ge)数(Shu)组(Zu)
4.在(Zai)可(Ke)变(Bian)参(Can)数(Shu)的(De)方(Fang)法(Fa)中(Zhong),(?)将(Jiang)可(Ke)变(Bian)参(Can)数(Shu)当(Dang)做(Zuo)数(Shu)组(Zu)来(Lai)处(Chu)理(Li)
5.可(Ke)变(Bian)参(Can)数(Shu)最(Zui)多(Duo)有(You)一(Yi)个(Ge),(?)只(Zhi)能(Neng)是(Shi)最(Zui)后(Hou)一(Yi)个(Ge)
6.可(Ke)变(Bian)参(Can)数(Shu)好(Hao)处(Chu):(?)方(Fang)便(Bian) 简(Jian)单(Dan) 减(Jian)少(Shao)重(Zhong)载(Zai)方(Fang)法(Fa)的(De)数(Shu)量(Liang)
7.如(Ru)果(Guo)定(Ding)义(Yi)了(Liao)可(Ke)变(Bian)参(Can)数(Shu)的(De)方(Fang)法(Fa),(?)不(Bu)允(Yun)许(Xu)同(Tong)时(Shi)定(Ding)义(Yi)相(Xiang)同(Tong)类(Lei)型(Xing)数(Shu)组(Zu)参(Can)数(Shu)的(De)方(Fang)法(Fa)
总(Zong)结(Jie)2:(?)数(Shu)组(Zu)做(Zuo)形(Xing)参(Can)和(He)可(Ke)变(Bian)参(Can)数(Shu)做(Zuo)形(Xing)参(Can)联(Lian)系(Xi)和(He)区(Qu)别(Bie)
联(Lian)系(Xi):(?)
1.实(Shi)参(Can)都(Du)可(Ke)以(Yi)是(Shi)数(Shu)组(Zu);(?)2.方(Fang)法(Fa)体(Ti)中(Zhong),(?)可(Ke)变(Bian)参(Can)数(Shu)当(Dang)做(Zuo)数(Shu)组(Zu)来(Lai)处(Chu)理(Li)
区(Qu)别(Bie):(?)
1.个(Ge)数(Shu)不(Bu)同(Tong) 可(Ke)变(Bian)参(Can)数(Shu)只(Zhi)能(Neng)有(You)一(Yi)个(Ge)数(Shu)组(Zu)参(Can)数(Shu)可(Ke)以(Yi)多(Duo)个(Ge)
2.位(Wei)置(Zhi)不(Bu)同(Tong) 可(Ke)变(Bian)参(Can)数(Shu)只(Zhi)能(Neng)是(Shi)最(Zui)后(Hou)一(Yi)个(Ge) 数(Shu)组(Zu)参(Can)数(Shu)位(Wei)置(Zhi)任(Ren)意(Yi)
3.实(Shi)参(Can)不(Bu)同(Tong) 可(Ke)变(Bian)参(Can)数(Shu)实(Shi)参(Can)可(Ke)以(Yi)0,1,2.....个(Ge),(?)也(Ye)可(Ke)以(Yi)是(Shi)一(Yi)个(Ge)数(Shu)组(Zu),(?)数(Shu)组(Zu)的(De)实(Shi)参(Can)只(Zhi)能(Neng)是(Shi)数(Shu)组(Zu)
类(Lei)是(Shi)对(Dui)象(Xiang)的(De)抽(Chou)象(Xiang),(?)而(?)对(Dui)象(Xiang)是(Shi)类(Lei)的(De)具(Ju)体(Ti)实(Shi)例(Li)。(?)类(Lei)是(Shi)抽(Chou)象(Xiang)的(De),(?)不(Bu)占(Zhan)用(Yong)内(Nei)存(Cun),(?)而(?)对(Dui)象(Xiang)是(Shi)具(Ju)体(Ti)的(De),(?)占(Zhan)用(Yong)存(Cun)储(Chu)空(Kong)间(Jian)。(?)类(Lei)是(Shi)用(Yong)于(Yu)创(Chuang)建(Jian)对(Dui)象(Xiang)的(De)蓝(Lan)图(Tu),(?)它(Ta)是(Shi)一(Yi)个(Ge)定(Ding)义(Yi)包(Bao)括(Kuo)在(Zai)特(Te)定(Ding)类(Lei)型(Xing)的(De)对(Dui)象(Xiang)中(Zhong)的(De)方(Fang)法(Fa)和(He)变(Bian)量(Liang)的(De)软(Ruan)件(Jian)模(Mo)板(Ban)。(?)
类(Lei)和(He)对(Dui)象(Xiang)好(Hao)比(Bi)图(Tu)纸(Zhi)和(He)实(Shi)物(Wu)的(De)关(Guan)系(Xi),(?)模(Mo)具(Ju)和(He)铸(Zhu)件(Jian)的(De)关(Guan)系(Xi)。(?)
比(Bi)如(Ru)人(Ren)类(Lei)就(Jiu)是(Shi)一(Yi)个(Ge)概(Gai)念(Nian),(?)人(Ren)类(Lei)具(Ju)有(You)身(Shen)高(Gao),(?)体(Ti)重(Zhong)等(Deng)属(Shu)性(Xing)。(?)人(Ren)类(Lei)可(Ke)以(Yi)做(Zuo)吃(Chi)饭(Fan)、(?)说(Shuo)话(Hua)等(Deng)方(Fang)法(Fa)。(?)
小(Xiao)明(Ming)就(Jiu)是(Shi)一(Yi)个(Ge)具(Ju)体(Ti)的(De)人(Ren),(?)也(Ye)就(Jiu)是(Shi)实(Shi)例(Li),(?)他(Ta)的(De)属(Shu)性(Xing)是(Shi)具(Ju)体(Ti)的(De)身(Shen)高(Gao)200cm,(?)体(Ti)重(Zhong)180kg,(?)他(Ta)做(Zuo)的(De)方(Fang)法(Fa)是(Shi)具(Ju)体(Ti)的(De)吃(Chi)了(Liao)一(Yi)碗(Wan)白(Bai)米(Mi)饭(Fan),(?)说(Shuo)了(Liao)“(?)12345”(?)这(Zhe)样(Yang)一(Yi)句(Ju)话(Hua)。(?)
两(Liang)者(Zhe)都(Du)是(Shi)软(Ruan)件(Jian)开(Kai)发(Fa)思(Si)想(Xiang),(?)先(Xian)有(You)面(Mian)向(Xiang)过(Guo)程(Cheng),(?)后(Hou)有(You)面(Mian)向(Xiang)对(Dui)象(Xiang)。(?)在(Zai)大(Da)型(Xing)项(Xiang)目(Mu)中(Zhong),(?)针(Zhen)对(Dui)面(Mian)向(Xiang)过(Guo)程(Cheng)的(De)不(Bu)足(Zu)推(Tui)出(Chu)了(Liao)面(Mian)向(Xiang)对(Dui)象(Xiang)开(Kai)发(Fa)思(Si)想(Xiang)。(?)

比(Bi)喻(Yu)
蒋(Jiang)介(Jie)石(Shi)和(He)毛(Mao)泽(Ze)东(Dong)分(Fen)别(Bie)是(Shi)面(Mian)向(Xiang)过(Guo)程(Cheng)和(He)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)杰(Jie)出(Chu)代(Dai)表(Biao),(?)这(Zhe)样(Yang)充(Chong)分(Fen)说(Shuo)明(Ming),(?)在(Zai)解(Jie)决(Jue)复(Fu)制(Zhi)问(Wen)题(Ti)时(Shi),(?)面(Mian)向(Xiang)对(Dui)象(Xiang)有(You)更(Geng)大(Da)的(De)优(You)越(Yue)性(Xing)。(?)
面(Mian)向(Xiang)过(Guo)程(Cheng)是(Shi)蛋(Dan)炒(Chao)饭(Fan),(?)面(Mian)向(Xiang)对(Dui)象(Xiang)是(Shi)盖(Gai)浇(Jiao)饭(Fan)。(?)盖(Gai)浇(Jiao)饭(Fan)的(De)好(Hao)处(Chu)就(Jiu)是(Shi)“(?)菜(Cai)”(?)“(?)饭(Fan)”(?)分(Fen)离(Li),(?)从(Cong)而(?)提(Ti)高(Gao)了(Liao)制(Zhi)作(Zuo)盖(Gai)浇(Jiao)饭(Fan)的(De)灵(Ling)活(Huo)性(Xing)。(?)饭(Fan)不(Bu)满(Man)意(Yi)就(Jiu)换(Huan)饭(Fan),(?)菜(Cai)不(Bu)满(Man)意(Yi)换(Huan)菜(Cai)。(?)用(Yong)软(Ruan)件(Jian)工(Gong)程(Cheng)的(De)专(Zhuan)业(Ye)术(Shu)语(Yu)就(Jiu)是(Shi)“(?)可(Ke)维(Wei)护(Hu)性(Xing)”(?)比(Bi)较(Jiao)好(Hao),(?)“(?)饭(Fan)”(?) 和(He)“(?)菜(Cai)”(?)的(De)耦(Ou)合(He)度(Du)比(Bi)较(Jiao)低(Di)。(?)
区(Qu)别(Bie)
编(Bian)程(Cheng)思(Si)路(Lu)不(Bu)同(Tong):(?) 面(Mian)向(Xiang)过(Guo)程(Cheng)以(Yi)实(Shi)现(Xian)功(Gong)能(Neng)的(De)函(Han)数(Shu)开(Kai)发(Fa)为(Wei)主(Zhu),(?)而(?)面(Mian)向(Xiang)对(Dui)象(Xiang)要(Yao)首(Shou)先(Xian)抽(Chou)象(Xiang)出(Chu)类(Lei)、(?)属(Shu)性(Xing)及(Ji)其(Qi)方(Fang)法(Fa),(?)然(Ran)后(Hou)通(Tong)过(Guo)实(Shi)例(Li)化(Hua)类(Lei)、(?)执(Zhi)行(Xing)方(Fang)法(Fa)来(Lai)完(Wan)成(Cheng)功(Gong)能(Neng)。(?)
封(Feng)装(Zhuang)性(Xing):(?)都(Du)具(Ju)有(You)封(Feng)装(Zhuang)性(Xing),(?)但(Dan)是(Shi)面(Mian)向(Xiang)过(Guo)程(Cheng)是(Shi)封(Feng)装(Zhuang)的(De)是(Shi)功(Gong)能(Neng),(?)而(?)面(Mian)向(Xiang)对(Dui)象(Xiang)封(Feng)装(Zhuang)的(De)是(Shi)数(Shu)据(Ju)和(He)功(Gong)能(Neng)。(?)
面(Mian)向(Xiang)对(Dui)象(Xiang)具(Ju)有(You)继(Ji)承(Cheng)性(Xing)和(He)多(Duo)态(Tai)性(Xing),(?)而(?)面(Mian)向(Xiang)过(Guo)程(Cheng)没(Mei)有(You)继(Ji)承(Cheng)性(Xing)和(He)多(Duo)态(Tai)性(Xing),(?)所(Suo)以(Yi)面(Mian)向(Xiang)对(Dui)象(Xiang)优(You)势(Shi)是(Shi)明(Ming)显(Xian)。(?)
方(Fang)法(Fa)重(Zhong)载(Zai)和(He)方(Fang)法(Fa)重(Zhong)写(Xie)((?)覆(Fu)盖(Gai))(?)的(De)区(Qu)别(Bie)
英(Ying)文(Wen) | 位(Wei)置(Zhi)不(Bu)同(Tong) | 作(Zuo)用(Yong)不(Bu)同(Tong) | |
重(Zhong)载(Zai) | overload | 同(Tong)一(Yi)个(Ge)类(Lei)中(Zhong) | 在(Zai)一(Yi)个(Ge)类(Lei)里(Li)面(Mian)为(Wei)一(Yi)种(Zhong)行(Xing)为(Wei)提(Ti)供(Gong)多(Duo)种(Zhong)实(Shi)现(Xian)方(Fang)式(Shi)并(Bing)提(Ti)高(Gao)可(Ke)读(Du)性(Xing) |
重(Zhong)写(Xie) | override | 子(Zi)类(Lei)和(He)父(Fu)类(Lei)间(Jian) | 父(Fu)类(Lei)方(Fang)法(Fa)无(Wu)法(Fa)满(Man)足(Zu)子(Zi)类(Lei)的(De)要(Yao)求(Qiu),(?)子(Zi)类(Lei)通(Tong)过(Guo)方(Fang)法(Fa)重(Zhong)写(Xie)满(Man)足(Zu)要(Yao)求(Qiu) |
修(Xiu)饰(Shi)符(Fu) | 返(Fan)回(Hui)值(Zhi) | 方(Fang)法(Fa)名(Ming) | 参(Can)数(Shu) | 抛(Pao)出(Chu)异(Yi)常(Chang) | |
重(Zhong)载(Zai) | 无(Wu)关(Guan) | 无(Wu)关(Guan) | 相(Xiang)同(Tong) | 不(Bu)同(Tong) | 无(Wu)关(Guan) |
重(Zhong)写(Xie) | 大(Da)于(Yu)等(Deng)于(Yu) | 小(Xiao)于(Yu)等(Deng)于(Yu) | 相(Xiang)同(Tong) | 相(Xiang)同(Tong) | 小(Xiao)于(Yu)等(Deng)于(Yu) |
this是(Shi)对(Dui)象(Xiang)内(Nei)部(Bu)指(Zhi)代(Dai)自(Zi)身(Shen)的(De)引(Yin)用(Yong),同(Tong)时(Shi)也(Ye)是(Shi)解(Jie)决(Jue)成(Cheng)员(Yuan)变(Bian)量(Liang)和(He)局(Ju)部(Bu)变(Bian)量(Liang)同(Tong)名(Ming)问(Wen)题(Ti);(?)this可(Ke)以(Yi)调(Diao)用(Yong)成(Cheng)员(Yuan)变(Bian)量(Liang),(?)不(Bu)能(Neng)调(Diao)用(Yong)局(Ju)部(Bu)变(Bian)量(Liang);(?)this也(Ye)可(Ke)以(Yi)调(Diao)用(Yong)成(Cheng)员(Yuan)方(Fang)法(Fa),(?)但(Dan)是(Shi)在(Zai)普(Pu)通(Tong)方(Fang)法(Fa)中(Zhong)可(Ke)以(Yi)省(Sheng)略(Lue)this,(?)在(Zai)构(Gou)造(Zao)方(Fang)法(Fa)中(Zhong)不(Bu)允(Yun)许(Xu)省(Sheng)略(Lue),(?)必(Bi)须(Xu)是(Shi)构(Gou)造(Zao)方(Fang)法(Fa)的(De)第(Di)一(Yi)条(Tiao)语(Yu)句(Ju)。(?),(?)而(?)且(Qie)在(Zai)静(Jing)态(Tai)方(Fang)法(Fa)当(Dang)中(Zhong)不(Bu)允(Yun)许(Xu)出(Chu)现(Xian)this关(Guan)键(Jian)字(Zi)。(?)
super代(Dai)表(Biao)对(Dui)当(Dang)前(Qian)对(Dui)象(Xiang)的(De)直(Zhi)接(Jie)父(Fu)类(Lei)对(Dui)象(Xiang)的(De)引(Yin)用(Yong),(?)super可(Ke)以(Yi)调(Diao)用(Yong)直(Zhi)接(Jie)父(Fu)类(Lei)的(De)成(Cheng)员(Yuan)变(Bian)量(Liang)((?)注(Zhu)意(Yi)权(Quan)限(Xian)修(Xiu)饰(Shi)符(Fu)的(De)影(Ying)响(Xiang),(?)比(Bi)如(Ru)不(Bu)能(Neng)访(Fang)问(Wen)private成(Cheng)员(Yuan))(?)
super可(Ke)以(Yi)调(Diao)用(Yong)直(Zhi)接(Jie)父(Fu)类(Lei)的(De)成(Cheng)员(Yuan)方(Fang)法(Fa)((?)注(Zhu)意(Yi)权(Quan)限(Xian)修(Xiu)饰(Shi)符(Fu)的(De)影(Ying)响(Xiang),(?)比(Bi)如(Ru)不(Bu)能(Neng)访(Fang)问(Wen)private成(Cheng)员(Yuan))(?);(?)super可(Ke)以(Yi)调(Diao)用(Yong)直(Zhi)接(Jie)父(Fu)类(Lei)的(De)构(Gou)造(Zao)方(Fang)法(Fa),(?)只(Zhi)限(Xian)构(Gou)造(Zao)方(Fang)法(Fa)中(Zhong)使(Shi)用(Yong),(?)且(Qie)必(Bi)须(Xu)是(Shi)第(Di)一(Yi)条(Tiao)语(Yu)句(Ju)。(?)
static可(Ke)以(Yi)修(Xiu)饰(Shi)变(Bian)量(Liang)、(?)方(Fang)法(Fa)、(?)代(Dai)码(Ma)块(Kuai)和(He)内(Nei)部(Bu)类(Lei)
static属(Shu)性(Xing)属(Shu)于(Yu)这(Zhe)个(Ge)类(Lei)所(Suo)有(You),(?)即(Ji)由(You)该(Gai)类(Lei)创(Chuang)建(Jian)的(De)所(Suo)有(You)对(Dui)象(Xiang)共(Gong)享(Xiang)同(Tong)一(Yi)个(Ge)static属(Shu)性(Xing)。(?)可(Ke)以(Yi)对(Dui)象(Xiang)创(Chuang)建(Jian)后(Hou)通(Tong)过(Guo)对(Dui)象(Xiang)名(Ming).属(Shu)性(Xing)名(Ming)和(He)类(Lei)名(Ming).属(Shu)性(Xing)名(Ming)两(Liang)种(Zhong)方(Fang)式(Shi)来(Lai)访(Fang)问(Wen)。(?)也(Ye)可(Ke)以(Yi)在(Zai)没(Mei)有(You)创(Chuang)建(Jian)任(Ren)何(He)对(Dui)象(Xiang)之(Zhi)前(Qian)通(Tong)过(Guo)类(Lei)名(Ming).属(Shu)性(Xing)名(Ming)的(De)方(Fang)式(Shi)来(Lai)访(Fang)问(Wen)。(?)
static变(Bian)量(Liang)和(He)非(Fei)static变(Bian)量(Liang)的(De)区(Qu)别(Bie)(都(Du)是(Shi)成(Cheng)员(Yuan)变(Bian)量(Liang),(?)不(Bu)是(Shi)局(Ju)部(Bu)变(Bian)量(Liang))
1.在(Zai)内(Nei)存(Cun)中(Zhong)份(Fen)数(Shu)不(Bu)同(Tong)
不(Bu)管(Guan)有(You)多(Duo)少(Shao)个(Ge)对(Dui)象(Xiang),(?)static变(Bian)量(Liang)只(Zhi)有(You)1份(Fen)。(?)对(Dui)于(Yu)每(Mei)个(Ge)对(Dui)象(Xiang),(?)实(Shi)例(Li)变(Bian)量(Liang)都(Du)会(Hui)有(You)单(Dan)独(Du)的(De)一(Yi)份(Fen)
static变(Bian)量(Liang)是(Shi)属(Shu)于(Yu)整(Zheng)个(Ge)类(Lei)的(De),(?)也(Ye)称(Cheng)为(Wei)类(Lei)变(Bian)量(Liang)。(?)而(?)非(Fei)静(Jing)态(Tai)变(Bian)量(Liang)是(Shi)属(Shu)于(Yu)对(Dui)象(Xiang)的(De),(?)也(Ye)称(Cheng)为(Wei)实(Shi)例(Li)变(Bian)量(Liang)
2.在(Zai)内(Nei)存(Cun)中(Zhong)存(Cun)放(Fang)的(De)位(Wei)置(Zhi)不(Bu)同(Tong)
2.在(Zai)内(Nei)存(Cun)中(Zhong)存(Cun)放(Fang)的(De)位(Wei)置(Zhi)不(Bu)同(Tong)
3.访(Fang)问(Wen)的(De)方(Fang)式(Shi)不(Bu)同(Tong)
实(Shi)例(Li)变(Bian)量(Liang):(?) 对(Dui)象(Xiang)名(Ming).变(Bian)量(Liang)名(Ming) stu1.name="小(Xiao)明(Ming)明(Ming)";
静(Jing)态(Tai)变(Bian)量(Liang):(?)对(Dui)象(Xiang)名(Ming).变(Bian)量(Liang)名(Ming) stu1.schoolName="西(Xi)二(?)旗(Qi)小(Xiao)学(Xue)"; 不(Bu)推(Tui)荐(Jian)如(Ru)此(Ci)使(Shi)用(Yong)
类(Lei)名(Ming).变(Bian)量(Liang)名(Ming) Student.schoolName="东(Dong)三(San)旗(Qi)小(Xiao)学(Xue)"; 推(Tui)荐(Jian)使(Shi)用(Yong)
4.在(Zai)内(Nei)存(Cun)中(Zhong)分(Fen)配(Pei)空(Kong)间(Jian)的(De)时(Shi)间(Jian)不(Bu)同(Tong)
Student.schoolName="东(Dong)三(San)旗(Qi)小(Xiao)学(Xue)";或(Huo)者(Zhe)Student stu1 = new Student("小(Xiao)明(Ming)","男(Nan)",20,98);
static方(Fang)法(Fa)也(Ye)可(Ke)以(Yi)通(Tong)过(Guo)对(Dui)象(Xiang)名(Ming).方(Fang)法(Fa)名(Ming)和(He)类(Lei)名(Ming).方(Fang)法(Fa)名(Ming)两(Liang)种(Zhong)方(Fang)式(Shi)来(Lai)访(Fang)问(Wen)
static代(Dai)码(Ma)块(Kuai)。(?)当(Dang)类(Lei)被(Bei)第(Di)一(Yi)次(Ci)使(Shi)用(Yong)时(Shi)((?)可(Ke)能(Neng)是(Shi)调(Diao)用(Yong)static属(Shu)性(Xing)和(He)方(Fang)法(Fa),(?)或(Huo)者(Zhe)创(Chuang)建(Jian)其(Qi)对(Dui)象(Xiang))(?)执(Zhi)行(Xing)静(Jing)态(Tai)代(Dai)码(Ma)块(Kuai),(?)且(Qie)只(Zhi)被(Bei)执(Zhi)行(Xing)一(Yi)次(Ci),(?)主(Zhu)要(Yao)作(Zuo)用(Yong)是(Shi)实(Shi)现(Xian)static属(Shu)性(Xing)的(De)初(Chu)始(Shi)化(Hua)。(?)
static内(Nei)部(Bu)类(Lei):(?)属(Shu)于(Yu)整(Zheng)个(Ge)外(Wai)部(Bu)类(Lei),(?)而(?)不(Bu)是(Shi)属(Shu)于(Yu)外(Wai)部(Bu)类(Lei)的(De)每(Mei)个(Ge)对(Dui)象(Xiang)。(?)不(Bu)能(Neng)访(Fang)问(Wen)外(Wai)部(Bu)类(Lei)的(De)非(Fei)静(Jing)态(Tai)成(Cheng)员(Yuan)((?)变(Bian)量(Liang)或(Huo)者(Zhe)方(Fang)法(Fa))(?),(?).可(Ke)以(Yi)访(Fang)问(Wen)外(Wai)部(Bu)类(Lei)的(De)静(Jing)态(Tai)成(Cheng)员(Yuan)
final和(He)abstract是(Shi)功(Gong)能(Neng)相(Xiang)反(Fan)的(De)两(Liang)个(Ge)关(Guan)键(Jian)字(Zi),(?)可(Ke)以(Yi)对(Dui)比(Bi)记(Ji)忆(Yi)
abstract可(Ke)以(Yi)用(Yong)来(Lai)修(Xiu)饰(Shi)类(Lei)和(He)方(Fang)法(Fa),(?)不(Bu)能(Neng)用(Yong)来(Lai)修(Xiu)饰(Shi)属(Shu)性(Xing)和(He)构(Gou)造(Zao)方(Fang)法(Fa);(?)使(Shi)用(Yong)abstract修(Xiu)饰(Shi)的(De)类(Lei)是(Shi)抽(Chou)象(Xiang)类(Lei),(?)需(Xu)要(Yao)被(Bei)继(Ji)承(Cheng),(?)使(Shi)用(Yong)abstract修(Xiu)饰(Shi)的(De)方(Fang)法(Fa)是(Shi)抽(Chou)象(Xiang)方(Fang)法(Fa),(?)需(Xu)要(Yao)子(Zi)类(Lei)被(Bei)重(Zhong)写(Xie)。(?)
final可(Ke)以(Yi)用(Yong)来(Lai)修(Xiu)饰(Shi)类(Lei)、(?)方(Fang)法(Fa)和(He)属(Shu)性(Xing),(?)不(Bu)能(Neng)修(Xiu)饰(Shi)构(Gou)造(Zao)方(Fang)法(Fa)。(?)使(Shi)用(Yong)final修(Xiu)饰(Shi)的(De)类(Lei)不(Bu)能(Neng)被(Bei)继(Ji)承(Cheng),(?)使(Shi)用(Yong)final修(Xiu)饰(Shi)的(De)方(Fang)法(Fa)不(Bu)能(Neng)被(Bei)重(Zhong)写(Xie),(?)使(Shi)用(Yong)final修(Xiu)饰(Shi)的(De)变(Bian)量(Liang)的(De)值(Zhi)不(Bu)能(Neng)被(Bei)修(Xiu)改(Gai),(?)所(Suo)以(Yi)就(Jiu)成(Cheng)了(Liao)常(Chang)量(Liang)。(?)
特(Te)别(Bie)注(Zhu)意(Yi):(?)final修(Xiu)饰(Shi)基(Ji)本(Ben)类(Lei)型(Xing)变(Bian)量(Liang),(?)其(Qi)值(Zhi)不(Bu)能(Neng)改(Gai)变(Bian),(?)由(You)原(Yuan)来(Lai)的(De)变(Bian)量(Liang)变(Bian)为(Wei)常(Chang)量(Liang);(?)但(Dan)是(Shi)final修(Xiu)饰(Shi)引(Yin)用(Yong)类(Lei)型(Xing)变(Bian)量(Liang),(?)栈(Zhan)内(Nei)存(Cun)中(Zhong)的(De)引(Yin)用(Yong)不(Bu)能(Neng)改(Gai)变(Bian),(?)但(Dan)是(Shi)所(Suo)指(Zhi)向(Xiang)的(De)堆(Dui)内(Nei)存(Cun)中(Zhong)的(De)对(Dui)象(Xiang)的(De)属(Shu)性(Xing)值(Zhi)仍(Reng)旧(Jiu)可(Ke)以(Yi)改(Gai)变(Bian)。(?)例(Li)如(Ru)
package com.bjsxt; class Test { public static void main(String[] args) { final Dog dog = new Dog("欧(Ou)欧(Ou)"); dog.name = "美(Mei)美(Mei)";//正(Zheng)确(Que) dog = new Dog("亚(Ya)亚(Ya)");//错(Cuo)误(Wu) } }
final修(Xiu)饰(Shi)符(Fu)((?)关(Guan)键(Jian)字(Zi))(?)如(Ru)果(Guo)一(Yi)个(Ge)类(Lei)被(Bei)声(Sheng)明(Ming)为(Wei)final,(?)意(Yi)味(Wei)着(Zhuo)它(Ta)不(Bu)能(Neng)再(Zai)派(Pai)生(Sheng)出(Chu)新(Xin)的(De)子(Zi)类(Lei),(?)不(Bu)能(Neng)作(Zuo)为(Wei)父(Fu)类(Lei)被(Bei)继(Ji)承(Cheng)例(Li)如(Ru):(?)String类(Lei)、(?)Math类(Lei)等(Deng)。(?)将(Jiang)变(Bian)量(Liang)或(Huo)方(Fang)法(Fa)声(Sheng)明(Ming)为(Wei)final,(?)可(Ke)以(Yi)保(Bao)证(Zheng)它(Ta)们(Men)在(Zai)使(Shi)用(Yong)中(Zhong)不(Bu)被(Bei)改(Gai)变(Bian)。(?)被(Bei)声(Sheng)明(Ming)为(Wei)final的(De)变(Bian)量(Liang)必(Bi)须(Xu)在(Zai)声(Sheng)明(Ming)时(Shi)给(Gei)定(Ding)初(Chu)值(Zhi),(?)而(?)在(Zai)以(Yi)后(Hou)的(De)引(Yin)用(Yong)中(Zhong)只(Zhi)能(Neng)读(Du)取(Qu),(?)不(Bu)可(Ke)修(Xiu)改(Gai)。(?)被(Bei)声(Sheng)明(Ming)为(Wei)final的(De)方(Fang)法(Fa)也(Ye)同(Tong)样(Yang)只(Zhi)能(Neng)使(Shi)用(Yong),(?)不(Bu)能(Neng)重(Zhong)写(Xie),(?)但(Dan)是(Shi)能(Neng)够(Gou)重(Zhong)载(Zai)。(?) 使(Shi)用(Yong)final修(Xiu)饰(Shi)的(De)对(Dui)象(Xiang),(?)对(Dui)象(Xiang)的(De)引(Yin)用(Yong)地(Di)址(Zhi)不(Bu)能(Neng)变(Bian),(?)但(Dan)是(Shi)对(Dui)象(Xiang)的(De)值(Zhi)可(Ke)以(Yi)变(Bian)!(?)
finally在(Zai)异(Yi)常(Chang)处(Chu)理(Li)时(Shi)提(Ti)供(Gong) finally 块(Kuai)来(Lai)执(Zhi)行(Xing)任(Ren)何(He)清(Qing)除(Chu)操(Cao)作(Zuo)。(?)如(Ru)果(Guo)有(You)finally的(De)话(Hua),(?)则(Ze)不(Bu)管(Guan)是(Shi)否(Fou)发(Fa)生(Sheng)异(Yi)常(Chang),(?)finally语(Yu)句(Ju)都(Du)会(Hui)被(Bei)执(Zhi)行(Xing)。(?)一(Yi)般(Ban)情(Qing)况(Kuang)下(Xia),(?)都(Du)把(Ba)关(Guan)闭(Bi)物(Wu)理(Li)连(Lian)接(Jie)(IO流(Liu)、(?)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)、(?)Socket连(Lian)接(Jie))等(Deng)相(Xiang)关(Guan)操(Cao)作(Zuo),(?)放(Fang)入(Ru)到(Dao)此(Ci)代(Dai)码(Ma)块(Kuai)中(Zhong)。(?)
finalize方(Fang)法(Fa)名(Ming)。(?)Java 技(Ji)术(Shu)允(Yun)许(Xu)使(Shi)用(Yong) finalize() 方(Fang)法(Fa)在(Zai)垃(La)圾(Ji)收(Shou)集(Ji)器(Qi)将(Jiang)对(Dui)象(Xiang)从(Cong)内(Nei)存(Cun)中(Zhong)清(Qing)除(Chu)出(Chu)去(Qu)之(Zhi)前(Qian)做(Zuo)必(Bi)要(Yao)清(Qing)理(Li)工(Gong)作(Zuo)。(?)finalize() 方(Fang)法(Fa)是(Shi)在(Zai)垃(La)圾(Ji)收(Shou)集(Ji)器(Qi)删(Shan)除(Chu)对(Dui)象(Xiang)之(Zhi)前(Qian)被(Bei)调(Diao)用(Yong)的(De)。(?)它(Ta)是(Shi)在(Zai) Object 类(Lei)中(Zhong)定(Ding)义(Yi)的(De),(?)因(Yin)此(Ci)所(Suo)有(You)的(De)类(Lei)都(Du)继(Ji)承(Cheng)了(Liao)它(Ta)。(?)子(Zi)类(Lei)覆(Fu)盖(Gai) finalize() 方(Fang)法(Fa)以(Yi)整(Zheng)理(Li)系(Xi)统(Tong)资(Zi)源(Yuan)或(Huo)者(Zhe)执(Zhi)行(Xing)其(Qi)他(Ta)清(Qing)理(Li)工(Gong)作(Zuo)。(?) 一(Yi)般(Ban)情(Qing)况(Kuang)下(Xia),(?)此(Ci)方(Fang)法(Fa)由(You)JVM调(Diao)用(Yong),(?)程(Cheng)序(Xu)员(Yuan)不(Bu)要(Yao)去(Qu)调(Diao)用(Yong)!(?)
(1)public boolean equals(java.lang.Object)
比(Bi)较(Jiao)对(Dui)象(Xiang)的(De)地(Di)址(Zhi)值(Zhi)是(Shi)否(Fou)相(Xiang)等(Deng),(?)如(Ru)果(Guo)子(Zi)类(Lei)重(Zhong)写(Xie),(?)则(Ze)比(Bi)较(Jiao)对(Dui)象(Xiang)的(De)内(Nei)容(Rong)是(Shi)否(Fou)相(Xiang)等(Deng);(?)
(2)public native int hashCode() 获(Huo)取(Qu)哈(Ha)希(Xi)码(Ma)
(3)public java.lang.String toString() 把(Ba)数(Shu)据(Ju)转(Zhuan)变(Bian)成(Cheng)字(Zi)符(Fu)串(Chuan)
(4)public final native java.lang.Class getClass() 获(Huo)取(Qu)类(Lei)结(Jie)构(Gou)信(Xin)息(Xi)
(5)protected void finalize() throws java.lang.Throwable
垃(La)圾(Ji)回(Hui)收(Shou)前(Qian)执(Zhi)行(Xing)的(De)方(Fang)法(Fa)
(6)protected native Object clone() throws
java.lang.CloneNotSupportedException 克(Ke)隆(Long)
(7)public final void wait() throws java.lang.InterruptedException
多(Duo)线(Xian)程(Cheng)中(Zhong)等(Deng)待(Dai)功(Gong)能(Neng)
(8)public final native void notify() 多(Duo)线(Xian)程(Cheng)中(Zhong)唤(Huan)醒(Xing)功(Gong)能(Neng)
(9)public final native void notifyAll() 多(Duo)线(Xian)程(Cheng)中(Zhong)唤(Huan)醒(Xing)所(Suo)有(You)等(Deng)待(Dai)线(Xian)程(Cheng)的(De)功(Gong)能(Neng)
同(Tong)一(Yi)个(Ge)类(Lei) | 同(Tong)一(Yi)个(Ge)包(Bao) | 子(Zi)类(Lei) | 所(Suo)有(You)类(Lei) | |
private | * | |||
defailt | * | * | ||
protected | * | * | * | |
public | * | * | * | * |
类(Lei)的(De)访(Fang)问(Wen)权(Quan)限(Xian)只(Zhi)有(You)两(Liang)种(Zhong)
public公(Gong)共(Gong)的(De) 可(Ke)被(Bei)同(Tong)一(Yi)项(Xiang)目(Mu)中(Zhong)所(Suo)有(You)的(De)类(Lei)访(Fang)问(Wen)。(?) (必(Bi)须(Xu)与(Yu)文(Wen)件(Jian)名(Ming)同(Tong)名(Ming))
default默(Mo)认(Ren)的(De) 可(Ke)被(Bei)同(Tong)一(Yi)个(Ge)包(Bao)中(Zhong)的(De)类(Lei)访(Fang)问(Wen)。(?)
成(Cheng)员(Yuan)((?)成(Cheng)员(Yuan)变(Bian)量(Liang)或(Huo)成(Cheng)员(Yuan)方(Fang)法(Fa))(?)访(Fang)问(Wen)权(Quan)限(Xian)共(Gong)有(You)四(Si)种(Zhong):(?)
public 公(Gong)共(Gong)的(De) 可(Ke)以(Yi)被(Bei)项(Xiang)目(Mu)中(Zhong)所(Suo)有(You)的(De)类(Lei)访(Fang)问(Wen)。(?)(项(Xiang)目(Mu)可(Ke)见(Jian)性(Xing))
protected 受(Shou)保(Bao)护(Hu)的(De) 可(Ke)以(Yi)被(Bei)这(Zhe)个(Ge)类(Lei)本(Ben)身(Shen)访(Fang)问(Wen);(?)同(Tong)一(Yi)个(Ge)包(Bao)中(Zhong)的(De)所(Suo)有(You)其(Qi)他(Ta)的(De)类(Lei)访(Fang)问(Wen);(?)被(Bei)它(Ta)的(De)子(Zi)类(Lei)((?)同(Tong)一(Yi)个(Ge)包(Bao)以(Yi)及(Ji)不(Bu)同(Tong)包(Bao)中(Zhong)的(De)子(Zi)类(Lei))(?)访(Fang)问(Wen)。(?)((?)子(Zi)类(Lei)可(Ke)见(Jian)性(Xing))(?)
default 默(Mo)认(Ren)的(De)被(Bei)这(Zhe)个(Ge)类(Lei)本(Ben)身(Shen)访(Fang)问(Wen);(?)被(Bei)同(Tong)一(Yi)个(Ge)包(Bao)中(Zhong)的(De)类(Lei)访(Fang)问(Wen)。(?)((?)包(Bao)可(Ke)见(Jian)性(Xing))(?)
private 私(Si)有(You)的(De) 只(Zhi)能(Neng)被(Bei)这(Zhe)个(Ge)类(Lei)本(Ben)身(Shen)访(Fang)问(Wen)。(?)((?)类(Lei)可(Ke)见(Jian)性(Xing))(?)
继(Ji)承(Cheng)条(Tiao)件(Jian)下(Xia)构(Gou)造(Zao)方(Fang)法(Fa)的(De)调(Diao)用(Yong)规(Gui)则(Ze)如(Ru)下(Xia):(?)
情(Qing)况(Kuang)1:(?)如(Ru)果(Guo)子(Zi)类(Lei)的(De)构(Gou)造(Zao)方(Fang)法(Fa)中(Zhong)没(Mei)有(You)通(Tong)过(Guo)super显(Xian)式(Shi)调(Diao)用(Yong)父(Fu)类(Lei)的(De)有(You)参(Can)构(Gou)造(Zao)方(Fang)法(Fa),(?)也(Ye)没(Mei)有(You)通(Tong)过(Guo)this显(Xian)式(Shi)调(Diao)用(Yong)自(Zi)身(Shen)的(De)其(Qi)他(Ta)构(Gou)造(Zao)方(Fang)法(Fa),(?)则(Ze)系(Xi)统(Tong)会(Hui)默(Mo)认(Ren)先(Xian)调(Diao)用(Yong)父(Fu)类(Lei)的(De)无(Wu)参(Can)构(Gou)造(Zao)方(Fang)法(Fa)。(?)在(Zai)这(Zhe)种(Zhong)情(Qing)况(Kuang)下(Xia),(?)写(Xie)不(Bu)写(Xie)“(?)super();”(?)语(Yu)句(Ju),(?)效(Xiao)果(Guo)是(Shi)一(Yi)样(Yang)的(De)。(?)
情(Qing)况(Kuang)2:(?)如(Ru)果(Guo)子(Zi)类(Lei)的(De)构(Gou)造(Zao)方(Fang)法(Fa)中(Zhong)通(Tong)过(Guo)super显(Xian)式(Shi)调(Diao)用(Yong)父(Fu)类(Lei)的(De)有(You)参(Can)构(Gou)造(Zao)方(Fang)法(Fa),(?)那(Na)将(Jiang)执(Zhi)行(Xing)父(Fu)类(Lei)相(Xiang)应(Ying)构(Gou)造(Zao)方(Fang)法(Fa),(?)而(?)不(Bu)执(Zhi)行(Xing)父(Fu)类(Lei)无(Wu)参(Can)构(Gou)造(Zao)方(Fang)法(Fa)。(?)
情(Qing)况(Kuang)3:(?)如(Ru)果(Guo)子(Zi)类(Lei)的(De)构(Gou)造(Zao)方(Fang)法(Fa)中(Zhong)通(Tong)过(Guo)this显(Xian)式(Shi)调(Diao)用(Yong)自(Zi)身(Shen)的(De)其(Qi)他(Ta)构(Gou)造(Zao)方(Fang)法(Fa),(?)在(Zai)相(Xiang)应(Ying)构(Gou)造(Zao)方(Fang)法(Fa)中(Zhong)应(Ying)用(Yong)以(Yi)上(Shang)两(Liang)条(Tiao)规(Gui)则(Ze)。(?)
特(Te)别(Bie)注(Zhu)意(Yi)的(De)是(Shi),(?)如(Ru)果(Guo)存(Cun)在(Zai)多(Duo)级(Ji)继(Ji)承(Cheng)关(Guan)系(Xi),(?)在(Zai)创(Chuang)建(Jian)一(Yi)个(Ge)子(Zi)类(Lei)对(Dui)象(Xiang)时(Shi),(?)以(Yi)上(Shang)规(Gui)则(Ze)会(Hui)多(Duo)次(Ci)向(Xiang)更(Geng)高(Gao)一(Yi)级(Ji)父(Fu)类(Lei)应(Ying)用(Yong),(?)一(Yi)直(Zhi)到(Dao)执(Zhi)行(Xing)顶(Ding)级(Ji)父(Fu)类(Lei)Object类(Lei)的(De)无(Wu)参(Can)构(Gou)造(Zao)方(Fang)法(Fa)为(Wei)止(Zhi)。(?)
“(?)==”(?)是(Shi)关(Guan)系(Xi)运(Yun)算(Suan)符(Fu),(?)equals()是(Shi)方(Fang)法(Fa),(?)同(Tong)时(Shi)他(Ta)们(Men)的(De)结(Jie)果(Guo)都(Du)返(Fan)回(Hui)布(Bu)尔(?)值(Zhi);(?)
“(?)==”(?)使(Shi)用(Yong)情(Qing)况(Kuang)如(Ru)下(Xia):(?)
a) 基(Ji)本(Ben)类(Lei)型(Xing),(?)比(Bi)较(Jiao)的(De)是(Shi)值(Zhi)
b) 引(Yin)用(Yong)类(Lei)型(Xing),(?)比(Bi)较(Jiao)的(De)是(Shi)地(Di)址(Zhi)
c) 不(Bu)能(Neng)比(Bi)较(Jiao)没(Mei)有(You)父(Fu)子(Zi)关(Guan)系(Xi)的(De)两(Liang)个(Ge)对(Dui)象(Xiang)
equals()方(Fang)法(Fa)使(Shi)用(Yong)如(Ru)下(Xia):(?)
a) 系(Xi)统(Tong)类(Lei)一(Yi)般(Ban)已(Yi)经(Jing)覆(Fu)盖(Gai)了(Liao)equals(),(?)比(Bi)较(Jiao)的(De)是(Shi)内(Nei)容(Rong)。(?)
b) 用(Yong)户(Hu)自(Zi)定(Ding)义(Yi)类(Lei)如(Ru)果(Guo)没(Mei)有(You)覆(Fu)盖(Gai)equals(),(?)将(Jiang)调(Diao)用(Yong)父(Fu)类(Lei)的(De)equals ((?)比(Bi)如(Ru)是(Shi)Object)(?),(?)而(?)Object的(De)equals的(De)比(Bi)较(Jiao)是(Shi)地(Di)址(Zhi)((?)return (this == obj);)(?)
c) 用(Yong)户(Hu)自(Zi)定(Ding)义(Yi)类(Lei)需(Xu)要(Yao)覆(Fu)盖(Gai)父(Fu)类(Lei)的(De)equals()
注(Zhu)意(Yi):(?)Object的(De)==和(He)equals比(Bi)较(Jiao)的(De)都(Du)是(Shi)地(Di)址(Zhi),(?)作(Zuo)用(Yong)相(Xiang)同(Tong)
实(Shi)现(Xian)多(Duo)态(Tai)的(De)三(San)个(Ge)条(Tiao)件(Jian)((?)前(Qian)提(Ti)条(Tiao)件(Jian),(?)向(Xiang)上(Shang)转(Zhuan)型(Xing)、(?)向(Xiang)下(Xia)转(Zhuan)型(Xing))(?)
1、(?)继(Ji)承(Cheng)的(De)存(Cun)在(Zai);(?)((?)继(Ji)承(Cheng)是(Shi)多(Duo)态(Tai)的(De)基(Ji)础(Chu),(?)没(Mei)有(You)继(Ji)承(Cheng)就(Jiu)没(Mei)有(You)多(Duo)态(Tai))(?)
2、(?)子(Zi)类(Lei)重(Zhong)写(Xie)父(Fu)类(Lei)的(De)方(Fang)法(Fa)。(?)((?)多(Duo)态(Tai)下(Xia)会(Hui)调(Diao)用(Yong)子(Zi)类(Lei)重(Zhong)写(Xie)后(Hou)的(De)方(Fang)法(Fa))(?)
3、(?)父(Fu)类(Lei)引(Yin)用(Yong)变(Bian)量(Liang)指(Zhi)向(Xiang)子(Zi)类(Lei)对(Dui)象(Xiang)。(?)((?)涉(She)及(Ji)子(Zi)类(Lei)到(Dao)父(Fu)类(Lei)的(De)类(Lei)型(Xing)转(Zhuan)换(Huan))(?)
向(Xiang)上(Shang)转(Zhuan)型(Xing) Student person = new Student()
将(Jiang)一(Yi)个(Ge)父(Fu)类(Lei)的(De)引(Yin)用(Yong)指(Zhi)向(Xiang)一(Yi)个(Ge)子(Zi)类(Lei)对(Dui)象(Xiang),(?)成(Cheng)为(Wei)向(Xiang)上(Shang)转(Zhuan)型(Xing),(?)自(Zi)动(Dong)进(Jin)行(Xing)类(Lei)型(Xing)转(Zhuan)换(Huan)。(?)此(Ci)时(Shi)通(Tong)过(Guo)父(Fu)类(Lei)引(Yin)用(Yong)变(Bian)量(Liang)调(Diao)用(Yong)的(De)方(Fang)法(Fa)是(Shi)子(Zi)类(Lei)覆(Fu)盖(Gai)或(Huo)继(Ji)承(Cheng)父(Fu)类(Lei)的(De)方(Fang)法(Fa),(?)而(?)不(Bu)是(Shi)父(Fu)类(Lei)的(De)方(Fang)法(Fa)此(Ci)时(Shi)通(Tong)过(Guo)父(Fu)类(Lei)引(Yin)用(Yong)变(Bian)量(Liang)无(Wu)法(Fa)调(Diao)用(Yong)子(Zi)类(Lei)特(Te)有(You)的(De)方(Fang)法(Fa)。(?)
向(Xiang)下(Xia)转(Zhuan)型(Xing) Student stu = (Student)person;
将(Jiang)一(Yi)个(Ge)指(Zhi)向(Xiang)子(Zi)类(Lei)对(Dui)象(Xiang)的(De)引(Yin)用(Yong)赋(Fu)给(Gei)一(Yi)个(Ge)子(Zi)类(Lei)的(De)引(Yin)用(Yong),(?)成(Cheng)为(Wei)向(Xiang)下(Xia)转(Zhuan)型(Xing),(?)此(Ci)时(Shi)必(Bi)须(Xu)进(Jin)行(Xing)强(Qiang)制(Zhi)类(Lei)型(Xing)转(Zhuan)换(Huan)。(?)向(Xiang)下(Xia)转(Zhuan)型(Xing)必(Bi)须(Xu)转(Zhuan)换(Huan)为(Wei)父(Fu)类(Lei)引(Yin)用(Yong)指(Zhi)向(Xiang)的(De)真(Zhen)实(Shi)子(Zi)类(Lei)类(Lei)型(Xing),(?),(?)否(Fou)则(Ze)将(Jiang)出(Chu)现(Xian)ClassCastException,(?)不(Bu)是(Shi)任(Ren)意(Yi)的(De)强(Qiang)制(Zhi)转(Zhuan)换(Huan)
向(Xiang)下(Xia)转(Zhuan)型(Xing)时(Shi)可(Ke)以(Yi)结(Jie)合(He)使(Shi)用(Yong)instanceof运(Yun)算(Suan)符(Fu)进(Jin)行(Xing)强(Qiang)制(Zhi)类(Lei)型(Xing)转(Zhuan)换(Huan),(?)比(Bi)如(Ru)出(Chu)现(Xian)转(Zhuan)换(Huan)异(Yi)常(Chang)---ClassCastException
传(Chuan)统(Tong)的(De)C/C++语(Yu)言(Yan),(?)需(Xu)要(Yao)程(Cheng)序(Xu)员(Yuan)负(Fu)责(Ze)回(Hui)收(Shou)已(Yi)经(Jing)分(Fen)配(Pei)内(Nei)存(Cun)。(?)
显(Xian)式(Shi)回(Hui)收(Shou)垃(La)圾(Ji)回(Hui)收(Shou)的(De)缺(Que)点(Dian):(?)
1)(?)程(Cheng)序(Xu)忘(Wang)记(Ji)及(Ji)时(Shi)回(Hui)收(Shou),(?)从(Cong)而(?)导(Dao)致(Zhi)内(Nei)存(Cun)泄(Xie)露(Lu),(?)降(Jiang)低(Di)系(Xi)统(Tong)性(Xing)能(Neng)。(?)
2)(?)程(Cheng)序(Xu)错(Cuo)误(Wu)回(Hui)收(Shou)程(Cheng)序(Xu)核(He)心(Xin)类(Lei)库(Ku)的(De)内(Nei)存(Cun),(?)导(Dao)致(Zhi)系(Xi)统(Tong)崩(Beng)溃(Kui)。(?)
Java语(Yu)言(Yan)不(Bu)需(Xu)要(Yao)程(Cheng)序(Xu)员(Yuan)直(Zhi)接(Jie)控(Kong)制(Zhi)内(Nei)存(Cun)回(Hui)收(Shou),(?)是(Shi)由(You)JRE在(Zai)后(Hou)台(Tai)自(Zi)动(Dong)回(Hui)收(Shou)不(Bu)再(Zai)使(Shi)用(Yong)的(De)内(Nei)存(Cun),(?)称(Cheng)为(Wei)垃(La)圾(Ji)回(Hui)收(Shou)机(Ji)制(Zhi),(?)简(Jian)称(Cheng)GC;(?)
1)(?)可(Ke)以(Yi)提(Ti)高(Gao)编(Bian)程(Cheng)效(Xiao)率(Lu)。(?)
2)(?)保(Bao)护(Hu)程(Cheng)序(Xu)的(De)完(Wan)整(Zheng)性(Xing)。(?)
3)(?)其(Qi)开(Kai)销(Xiao)影(Ying)响(Xiang)性(Xing)能(Neng)。(?)Java虚(Xu)拟(Ni)机(Ji)必(Bi)须(Xu)跟(Gen)踪(Zong)程(Cheng)序(Xu)中(Zhong)有(You)用(Yong)的(De)对(Dui)象(Xiang),(?)确(Que)定(Ding)哪(Na)些(Xie)是(Shi)无(Wu)用(Yong)的(De)。(?)
垃(La)圾(Ji)回(Hui)收(Shou)机(Ji)制(Zhi)的(De) 特(Te)点(Dian)
1)(?)垃(La)圾(Ji)回(Hui)收(Shou)机(Ji)制(Zhi)回(Hui)收(Shou)JVM堆(Dui)内(Nei)存(Cun)里(Li)的(De)对(Dui)象(Xiang)空(Kong)间(Jian),不(Bu)负(Fu)责(Ze)回(Hui)收(Shou)栈(Zhan)内(Nei)存(Cun)数(Shu)据(Ju)。(?)
2)(?)对(Dui)其(Qi)他(Ta)物(Wu)理(Li)连(Lian)接(Jie),(?)比(Bi)如(Ru)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)、(?)输(Shu)入(Ru)流(Liu)输(Shu)出(Chu)流(Liu)、(?)Socket连(Lian)接(Jie)无(Wu)能(Neng)为(Wei)力(Li)。(?)
3)(?)垃(La)圾(Ji)回(Hui)收(Shou)发(Fa)生(Sheng)具(Ju)有(You)不(Bu)可(Ke)预(Yu)知(Zhi)性(Xing),(?)程(Cheng)序(Xu)无(Wu)法(Fa)精(Jing)确(Que)控(Kong)制(Zhi)垃(La)圾(Ji)回(Hui)收(Shou)机(Ji)制(Zhi)执(Zhi)行(Xing)。(?)
4)(?)可(Ke)以(Yi)将(Jiang)对(Dui)象(Xiang)的(De)引(Yin)用(Yong)变(Bian)量(Liang)设(She)置(Zhi)为(Wei)null,(?)暗(An)示(Shi)垃(La)圾(Ji)回(Hui)收(Shou)机(Ji)制(Zhi)可(Ke)以(Yi)回(Hui)收(Shou)该(Gai)对(Dui)象(Xiang)。(?)
现(Xian)在(Zai)的(De)JVM有(You)多(Duo)种(Zhong)垃(La)圾(Ji)回(Hui)收(Shou) 实(Shi)现(Xian)算(Suan)法(Fa),(?)表(Biao)现(Xian)各(Ge)异(Yi)。(?)
垃(La)圾(Ji)回(Hui)收(Shou)机(Ji)制(Zhi)回(Hui)收(Shou)任(Ren)何(He)对(Dui)象(Xiang)之(Zhi)前(Qian),(?)总(Zong)会(Hui)先(Xian)调(Diao)用(Yong)它(Ta)的(De)finalize方(Fang)法(Fa)((?)如(Ru)果(Guo)覆(Fu)盖(Gai)该(Gai)方(Fang)法(Fa),(?)让(Rang)一(Yi)个(Ge)新(Xin)的(De)引(Yin)用(Yong)变(Bian)量(Liang)重(Zhong)新(Xin)引(Yin)用(Yong)该(Gai)对(Dui)象(Xiang),(?)则(Ze)会(Hui)重(Zhong)新(Xin)激(Ji)活(Huo)对(Dui)象(Xiang))(?)。(?)
程(Cheng)序(Xu)员(Yuan)可(Ke)以(Yi)通(Tong)过(Guo)System.gc()或(Huo)者(Zhe)Runtime.getRuntime().gc()来(Lai)通(Tong)知(Zhi)系(Xi)统(Tong)进(Jin)行(Xing)垃(La)圾(Ji)回(Hui)收(Shou),(?)会(Hui)有(You)一(Yi)些(Xie)效(Xiao)果(Guo),(?)但(Dan)是(Shi)系(Xi)统(Tong)是(Shi)否(Fou)进(Jin)行(Xing)垃(La)圾(Ji)回(Hui)收(Shou)依(Yi)然(Ran)不(Bu)确(Que)定(Ding)。(?)
永(Yong)远(Yuan)不(Bu)要(Yao)主(Zhu)动(Dong)调(Diao)用(Yong)某(Mou)个(Ge)对(Dui)象(Xiang)的(De)finalize方(Fang)法(Fa),(?)应(Ying)该(Gai)交(Jiao)给(Gei)垃(La)圾(Ji)回(Hui)收(Shou)机(Ji)制(Zhi)调(Diao)用(Yong)。(?)
1) 八(Ba)个(Ge)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)的(De)包(Bao)装(Zhuang)类(Lei)
基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing) | 包(Bao)装(Zhuang)类(Lei) |
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
2)为(Wei)什(Shi)么(Me)为(Wei)基(Ji)本(Ben)类(Lei)型(Xing)引(Yin)入(Ru)包(Bao)装(Zhuang)类(Lei)
2.1基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)有(You)方(Fang)便(Bian)之(Zhi)处(Chu),(?)简(Jian)单(Dan)、(?)高(Gao)效(Xiao)。(?)
2.2但(Dan)是(Shi)Java中(Zhong)的(De)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)却(Que)是(Shi)不(Bu)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)((?)没(Mei)有(You)属(Shu)性(Xing)、(?)方(Fang)法(Fa))(?),(?)这(Zhe)在(Zai)实(Shi)际(Ji)使(Shi)用(Yong)时(Shi)存(Cun)在(Zai)很(Hen)多(Duo)的(De)不(Bu)便(Bian)((?)比(Bi)如(Ru)集(Ji)合(He)的(De)元(Yuan)素(Su)只(Zhi)能(Neng)是(Shi)Object)(?)。(?)
为(Wei)了(Liao)解(Jie)决(Jue)这(Zhe)个(Ge)不(Bu)足(Zu),(?)在(Zai)设(She)计(Ji)类(Lei)时(Shi)为(Wei)每(Mei)个(Ge)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)设(She)计(Ji)了(Liao)一(Yi)个(Ge)对(Dui)应(Ying)的(De)类(Lei)进(Jin)行(Xing)包(Bao)装(Zhuang),(?)这(Zhe)样(Yang)八(Ba)个(Ge)和(He)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)对(Dui)应(Ying)的(De)类(Lei)统(Tong)称(Cheng)为(Wei)包(Bao)装(Zhuang)类(Lei)(Wrapper Class)。(?)
3) 包(Bao)装(Zhuang)类(Lei)和(He)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)之(Zhi)间(Jian)的(De)转(Zhuan)换(Huan)
3.1包(Bao)装(Zhuang)类(Lei)------ wrapperInstance.xxxValue() ------>基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)
3.2包(Bao)装(Zhuang)类(Lei)-------new WrapperClass(primitive)
3.2包(Bao)装(Zhuang)类(Lei)-------new WrapperClass(primitive)
4) 自(Zi)动(Dong)装(Zhuang)箱(Xiang)和(He)自(Zi)动(Dong)拆(Chai)箱(Xiang)
JDK1.5提(Ti)供(Gong)了(Liao)自(Zi)动(Dong)装(Zhuang)箱(Xiang)((?)autoboxing)(?)和(He)自(Zi)动(Dong)拆(Chai)箱(Xiang)((?)autounboxing)(?)功(Gong)能(Neng), 从(Cong)而(?)实(Shi)现(Xian)了(Liao)包(Bao)装(Zhuang)类(Lei)和(He)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)之(Zhi)间(Jian)的(De)自(Zi)动(Dong)转(Zhuan)换(Huan)
5) 包(Bao)装(Zhuang)类(Lei)还(Huan)可(Ke)以(Yi)实(Shi)现(Xian)基(Ji)本(Ben)类(Lei)型(Xing)变(Bian)量(Liang)和(He)字(Zi)符(Fu)串(Chuan)之(Zhi)间(Jian)的(De)转(Zhuan)换(Huan)
基(Ji)本(Ben)类(Lei)型(Xing)变(Bian)量(Liang)--->String.valueof()--->字(Zi)符(Fu)串(Chuan) 基(Ji)本(Ben)类(Lei)型(Xing)变(Bian)量(Liang)<---WrapperClass.parseXxx(string)---字(Zi)符(Fu)串(Chuan)
int是(Shi)java提(Ti)供(Gong)的(De)8种(Zhong)原(Yuan)始(Shi)数(Shu)据(Ju)类(Lei)型(Xing)之(Zhi)一(Yi),(?)Java为(Wei)每(Mei)个(Ge)原(Yuan)始(Shi)类(Lei)型(Xing)提(Ti)供(Gong)了(Liao)封(Feng)装(Zhuang)类(Lei),(?)Integer是(Shi)java为(Wei)int提(Ti)供(Gong)的(De)封(Feng)装(Zhuang)类(Lei)。(?)
int是(Shi)java提(Ti)供(Gong)的(De)8种(Zhong)原(Yuan)始(Shi)数(Shu)据(Ju)类(Lei)型(Xing)之(Zhi)一(Yi),(?)Java为(Wei)每(Mei)个(Ge)原(Yuan)始(Shi)类(Lei)型(Xing)提(Ti)供(Gong)了(Liao)封(Feng)装(Zhuang)类(Lei),(?)Integer是(Shi)java为(Wei)int提(Ti)供(Gong)的(De)封(Feng)装(Zhuang)类(Lei)。(?)
在(Zai)Hibernate中(Zhong),(?)如(Ru)果(Guo)将(Jiang)OID定(Ding)义(Yi)为(Wei)Integer类(Lei)型(Xing),(?)那(Na)么(Me)Hibernate就(Jiu)可(Ke)以(Yi)根(Gen)据(Ju)其(Qi)值(Zhi)是(Shi)否(Fou)为(Wei)null而(?)判(Pan)断(Duan)一(Yi)个(Ge)对(Dui)象(Xiang)是(Shi)否(Fou)是(Shi)临(Lin)时(Shi)的(De),(?)如(Ru)果(Guo)将(Jiang)OID定(Ding)义(Yi)为(Wei)了(Liao)int类(Lei)型(Xing),(?)还(Huan)需(Xu)要(Yao)在(Zai)hbm映(Ying)射(She)文(Wen)件(Jian)中(Zhong)设(She)置(Zhi)其(Qi)unsaved-value属(Shu)性(Xing)为(Wei)0。(?)
另(Ling)外(Wai),(?)Integer提(Ti)供(Gong)了(Liao)多(Duo)个(Ge)与(Yu)整(Zheng)数(Shu)相(Xiang)关(Guan)的(De)操(Cao)作(Zuo)方(Fang)法(Fa),(?)例(Li)如(Ru),(?)将(Jiang)一(Yi)个(Ge)字(Zi)符(Fu)串(Chuan)转(Zhuan)换(Huan)成(Cheng)整(Zheng)数(Shu),(?)Integer中(Zhong)还(Huan)定(Ding)义(Yi)了(Liao)表(Biao)示(Shi)整(Zheng)数(Shu)的(De)最(Zui)大(Da)值(Zhi)和(He)最(Zui)小(Xiao)值(Zhi)的(De)常(Chang)量(Liang)。(?)
1)(?) java.sql.Date是(Shi)java.util.Date的(De)子(Zi)类(Lei),(?)是(Shi)一(Yi)个(Ge)包(Bao)装(Zhuang)了(Liao)毫(Hao)秒(Miao)值(Zhi)的(De)瘦(Shou)包(Bao)装(Zhuang)器(Qi),(?)允(Yun)许(Xu) JDBC 将(Jiang)毫(Hao)秒(Miao)值(Zhi)标(Biao)识(Shi)为(Wei) SQL DATE 值(Zhi)。(?)毫(Hao)秒(Miao)值(Zhi)表(Biao)示(Shi)自(Zi) 1970 年(Nian) 1 月(Yue) 1 日(Ri) 00:00:00 GMT 以(Yi)来(Lai)经(Jing)过(Guo)的(De)毫(Hao)秒(Miao)数(Shu)。(?) 为(Wei)了(Liao)与(Yu) SQL DATE 的(De)定(Ding)义(Yi)一(Yi)致(Zhi),(?)由(You) java.sql.Date 实(Shi)例(Li)包(Bao)装(Zhuang)的(De)毫(Hao)秒(Miao)值(Zhi)必(Bi)须(Xu)通(Tong)过(Guo)将(Jiang)时(Shi)间(Jian)、(?)分(Fen)钟(Zhong)、(?)秒(Miao)和(He)毫(Hao)秒(Miao)设(She)置(Zhi)为(Wei)与(Yu)该(Gai)实(Shi)例(Li)相(Xiang)关(Guan)的(De)特(Te)定(Ding)时(Shi)区(Qu)中(Zhong)的(De)零(Ling)来(Lai)“(?)规(Gui)范(Fan)化(Hua)”(?)。(?) 说(Shuo)白(Bai)了(Liao),(?)java.sql.Date就(Jiu)是(Shi)与(Yu)数(Shu)据(Ju)库(Ku)Date相(Xiang)对(Dui)应(Ying)的(De)一(Yi)个(Ge)类(Lei)型(Xing),(?)而(?)java.util.Date是(Shi)纯(Chun)java的(De)Date。(?)
2)(?)JAVA里(Li)提(Ti)供(Gong)的(De)日(Ri)期(Qi)和(He)时(Shi)间(Jian)类(Lei),(?)java.sql.Date和(He)java.sql.Time,只(Zhi)会(Hui)从(Cong)数(Shu)据(Ju)库(Ku)里(Li)读(Du)取(Qu)某(Mou)部(Bu)分(Fen)值(Zhi),(?)这(Zhe)有(You)时(Shi)会(Hui)导(Dao)致(Zhi)丢(Diu)失(Shi)数(Shu)据(Ju)。(?)例(Li)如(Ru)一(Yi)个(Ge)包(Bao)含(Han)2002/05/22 5:00:57 PM的(De)字(Zi)段(Duan),(?)读(Du)取(Qu)日(Ri)期(Qi)时(Shi)得(De)到(Dao)的(De)是(Shi)2002/05/22,而(?)读(Du)取(Qu)时(Shi)间(Jian)时(Shi)得(De)到(Dao)的(De)是(Shi)5:00:57 PM. 你(Ni)需(Xu)要(Yao)了(Liao)解(Jie)数(Shu)据(Ju)库(Ku)里(Li)存(Cun)储(Chu)时(Shi)间(Jian)的(De)精(Jing)度(Du)。(?)有(You)些(Xie)数(Shu)据(Ju)库(Ku),(?)比(Bi)如(Ru)MySQL,精(Jing)度(Du)为(Wei)毫(Hao)秒(Miao),(?)然(Ran)而(?)另(Ling)一(Yi)些(Xie)数(Shu)据(Ju)库(Ku),(?)包(Bao)括(Kuo)Oracle,存(Cun)储(Chu)SQL DATE类(Lei)型(Xing)数(Shu)据(Ju)时(Shi),(?)毫(Hao)秒(Miao)部(Bu)分(Fen)的(De)数(Shu)据(Ju)是(Shi)不(Bu)保(Bao)存(Cun)的(De)。(?)以(Yi)下(Xia)操(Cao)作(Zuo)中(Zhong)容(Rong)易(Yi)出(Chu)现(Xian)不(Bu)易(Yi)被(Bei)发(Fa)现(Xian)的(De)BUG:(?)获(Huo)得(De)一(Yi)个(Ge)JAVA里(Li)的(De)日(Ri)期(Qi)对(Dui)象(Xiang)。(?) 从(Cong)数(Shu)据(Ju)库(Ku)里(Li)读(Du)取(Qu)日(Ri)期(Qi) 试(Shi)图(Tu)比(Bi)较(Jiao)两(Liang)个(Ge)日(Ri)期(Qi)对(Dui)象(Xiang)是(Shi)否(Fou)相(Xiang)等(Deng)。(?)如(Ru)果(Guo)毫(Hao)秒(Miao)部(Bu)分(Fen)丢(Diu)失(Shi),(?)本(Ben)来(Lai)认(Ren)为(Wei)相(Xiang)等(Deng)的(De)两(Liang)个(Ge)日(Ri)期(Qi)对(Dui)象(Xiang)用(Yong)Equals方(Fang)法(Fa)可(Ke)能(Neng)返(Fan)回(Hui)false。(?).sql.Timestamp类(Lei)比(Bi)java.util.Date类(Lei)精(Jing)确(Que)度(Du)要(Yao)高(Gao)。(?)这(Zhe)个(Ge)类(Lei)包(Bao)了(Liao)一(Yi)个(Ge)getTime()方(Fang)法(Fa),(?)但(Dan)是(Shi)它(Ta)不(Bu)会(Hui)返(Fan)回(Hui)额(E)外(Wai)精(Jing)度(Du)部(Bu)分(Fen)的(De)数(Shu)据(Ju),(?)因(Yin)此(Ci)必(Bi)须(Xu)使(Shi)用(Yong)...
总(Zong)之(Zhi),(?)java.util.Date 就(Jiu)是(Shi)Java的(De)日(Ri)期(Qi)对(Dui)象(Xiang),(?)而(?)java.sql.Date 是(Shi)针(Zhen)对(Dui)SQL语(Yu)句(Ju)使(Shi)用(Yong)的(De),(?)只(Zhi)包(Bao)含(Han)日(Ri)期(Qi)而(?)没(Mei)有(You)时(Shi)间(Jian)部(Bu)分(Fen)。(?)
package com.bjsxt; import java.io.File; public class $ { public static void main(String[] args) { String path = "D:/301SXT"; test(path); } private static void test(String path) { File f = new File(path); File[] fs = f.listFiles(); if (fs == null) { return; } for (File file : fs) { if (file.isFile()) { System.out.println(file.getPath()); } else { test(file.getPath()); } } }
A | Java程(Cheng)序(Xu)经(Jing)编(Bian)译(Yi)后(Hou)产(Chan)生(Sheng)machine code |
B. | Java程(Cheng)序(Xu)经(Jing)编(Bian)译(Yi)后(Hou)会(Hui)生(Sheng)产(Chan)byte code |
C. | Java程(Cheng)序(Xu)经(Jing)编(Bian)译(Yi)后(Hou)会(Hui)产(Chan)生(Sheng)DLL |
D. | 以(Yi)上(Shang)都(Du)不(Bu)正(Zheng)确(Que) |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?) Java是(Shi)解(Jie)释(Shi)型(Xing)语(Yu)言(Yan),(?)编(Bian)译(Yi)出(Chu)来(Lai)的(De)是(Shi)字(Zi)节(Jie)码(Ma);(?) 因(Yin)此(Ci)A不(Bu)正(Zheng)确(Que),(?)C是(Shi)C/C++语(Yu)言(Yan)编(Bian)译(Yi)动(Dong)态(Tai)链(Lian)接(Jie)库(Ku)的(De)文(Wen)件(Jian)为(Wei).DLL;(?) 正(Zheng)确(Que)答(Da)案(An)为(Wei)B
|
A | class中(Zhong)的(De)construtor不(Bu)可(Ke)省(Sheng)略(Lue) |
B. | construtor与(Yu)class同(Tong)名(Ming),(?)但(Dan)方(Fang)法(Fa)不(Bu)能(Neng)与(Yu)class同(Tong)名(Ming) |
C. | construtor在(Zai)一(Yi)个(Ge)对(Dui)象(Xiang)被(Bei)new时(Shi)执(Zhi)行(Xing) |
D. | 一(Yi)个(Ge)class只(Zhi)能(Neng)定(Ding)义(Yi)一(Yi)个(Ge)construtor |
答(Da)案(An):(?)C
分(Fen)析(Xi):(?)A:(?)如(Ru)果(Guo)class中(Zhong)的(De)construtor省(Sheng)略(Lue)不(Bu)写(Xie),(?)系(Xi)统(Tong)会(Hui)默(Mo)认(Ren)提(Ti)供(Gong)一(Yi)个(Ge)无(Wu)参(Can)构(Gou)造(Zao)
B:(?)方(Fang)法(Fa)名(Ming)可(Ke)以(Yi)与(Yu)类(Lei)名(Ming)同(Tong)名(Ming),(?)只(Zhi)是(Shi)不(Bu)符(Fu)合(He)命(Ming)名(Ming)规(Gui)范(Fan)
D:(?)一(Yi)个(Ge)class中(Zhong)可(Ke)以(Yi)定(Ding)义(Yi)N多(Duo)个(Ge)construtor,(?)这(Zhe)些(Xie)construtor构(Gou)成(Cheng)构(Gou)造(Zao)方(Fang)法(Fa)的(De)重(Zhong)载(Zai)
|
A | private |
B. | protected |
C. | final |
D. | abstract |
答(Da)案(An):(?)D
分(Fen)析(Xi):(?)接(Jie)口(Kou)中(Zhong)的(De)访(Fang)问(Wen)权(Quan)限(Xian)修(Xiu)饰(Shi)符(Fu)只(Zhi)可(Ke)以(Yi)是(Shi)public或(Huo)default
接(Jie)口(Kou)中(Zhong)的(De)所(Suo)有(You)的(De)方(Fang)法(Fa)必(Bi)须(Xu)要(Yao)实(Shi)现(Xian)类(Lei)实(Shi)现(Xian),(?)所(Suo)以(Yi)不(Bu)能(Neng)使(Shi)用(Yong)final
接(Jie)口(Kou)中(Zhong)所(Suo)有(You)的(De)方(Fang)法(Fa)默(Mo)认(Ren)都(Du)是(Shi)abstract的(De),(?)所(Suo)以(Yi)接(Jie)口(Kou)可(Ke)以(Yi)使(Shi)用(Yong)abstract修(Xiu)饰(Shi),(?)但(Dan)通(Tong)常(Chang)abstract可(Ke)以(Yi)省(Sheng)略(Lue)不(Bu)写(Xie)
|
class A { public A(){ System.out.println("A"); } } class B extends A{ public B(){ System.out.println("B"); } public static void main(String[] args) { B b=new B(); } }
A | 不(Bu)能(Neng)通(Tong)过(Guo)编(Bian)译(Yi) |
B. | 通(Tong)过(Guo)编(Bian)译(Yi),(?)输(Shu)出(Chu)AB |
C. | 通(Tong)过(Guo)编(Bian)译(Yi),(?)输(Shu)出(Chu)B |
D. | 通(Tong)过(Guo)编(Bian)译(Yi),(?)输(Shu)出(Chu)A |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?)在(Zai)继(Ji)承(Cheng)关(Guan)系(Xi)下(Xia),(?)创(Chuang)建(Jian)子(Zi)类(Lei)对(Dui)象(Xiang),(?)先(Xian)执(Zhi)行(Xing)父(Fu)类(Lei)的(De)构(Gou)造(Zao)方(Fang)法(Fa),(?)再(Zai)执(Zhi)行(Xing)子(Zi)类(Lei)的(De)构(Gou)造(Zao)方(Fang)法(Fa)。(?)
|
A | abstract不(Bu)能(Neng)与(Yu)final并(Bing)列(Lie)修(Xiu)饰(Shi)同(Tong)一(Yi)个(Ge)类(Lei) |
B. | abstract类(Lei)中(Zhong)可(Ke)以(Yi)有(You)private的(De)成(Cheng)员(Yuan) |
C. | abstract方(Fang)法(Fa)必(Bi)须(Xu)在(Zai)abstract类(Lei)中(Zhong) |
D. | static方(Fang)法(Fa)能(Neng)处(Chu)理(Li)非(Fei)static的(De)属(Shu)性(Xing) |
答(Da)案(An):(?)D
分(Fen)析(Xi):(?)因(Yin)为(Wei)static得(De)方(Fang)法(Fa)在(Zai)装(Zhuang)载(Zai)class得(De)时(Shi)候(Hou)首(Shou)先(Xian)完(Wan)成(Cheng),(?)比(Bi) 构(Gou)造(Zao)方(Fang)法(Fa)早(Zao),(?)此(Ci)时(Shi)非(Fei)static得(De)属(Shu)性(Xing)和(He)方(Fang)法(Fa)还(Huan)没(Mei)有(You)完(Wan)成(Cheng)初(Chu)始(Shi)化(Hua)所(Suo)以(Yi)不(Bu)能(Neng)调(Diao)用(Yong)。(?)
|
A | 程(Cheng)序(Xu)员(Yuan)必(Bi)须(Xu)创(Chuang)建(Jian)一(Yi)个(Ge)线(Xian)程(Cheng)来(Lai)释(Shi)放(Fang)内(Nei)存(Cun) |
B. | 内(Nei)存(Cun)回(Hui)收(Shou)程(Cheng)序(Xu)负(Fu)责(Ze)释(Shi)放(Fang)无(Wu)用(Yong)内(Nei)存(Cun) |
C. | 内(Nei)存(Cun)回(Hui)收(Shou)程(Cheng)序(Xu)允(Yun)许(Xu)程(Cheng)序(Xu)员(Yuan)直(Zhi)接(Jie)释(Shi)放(Fang)内(Nei)存(Cun) |
D. | 内(Nei)存(Cun)回(Hui)收(Shou)程(Cheng)序(Xu)可(Ke)以(Yi)在(Zai)指(Zhi)定(Ding)的(De)时(Shi)间(Jian)释(Shi)放(Fang)内(Nei)存(Cun)对(Dui)象(Xiang) |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?) A. 程(Cheng)序(Xu)员(Yuan)不(Bu)需(Xu)要(Yao)创(Chuang)建(Jian)线(Xian)程(Cheng)来(Lai)释(Shi)放(Fang)内(Nei)存(Cun).
C. 也(Ye)不(Bu)允(Yun)许(Xu)程(Cheng)序(Xu)员(Yuan)直(Zhi)接(Jie)释(Shi)放(Fang)内(Nei)存(Cun).
D. 不(Bu)一(Yi)定(Ding)在(Zai)什(Shi)么(Me)时(Shi)刻(Ke)执(Zhi)行(Xing)垃(La)圾(Ji)回(Hui)收(Shou).
|
A | _sysl_111 |
B. | 2 mail |
C. | $change |
D. | class |
答(Da)案(An):(?)AC
分(Fen)析(Xi):(?) 标(Biao)识(Shi)符(Fu)的(De)命(Ming)令(Ling)规(Gui)范(Fan),(?)可(Ke)以(Yi)包(Bao)含(Han)字(Zi)母(Mu)、(?)数(Shu)字(Zi)、(?)下(Xia)划(Hua)线(Xian)、(?)$,(?)不(Bu)能(Neng)以(Yi)数(Shu)字(Zi)开(Kai)头(Tou),(?)不(Bu)能(Neng)是(Shi)Java关(Guan)键(Jian)字(Zi)
|
A | java.lang.Cloneable是(Shi)类(Lei) |
B. | java.langRunnable是(Shi)接(Jie)口(Kou) |
C. | Double对(Dui)象(Xiang)在(Zai)java.lang包(Bao)中(Zhong) |
D. | Double a=1.0是(Shi)正(Zheng)确(Que)的(De)java语(Yu)句(Ju) |
Double a=1.0是(Shi)正(Zheng)确(Que)的(De)java语(Yu)句(Ju)
分(Fen)析(Xi):(?)java.lang.Cloneable是(Shi)接(Jie)口(Kou)
|
A | 45.定(Ding)义(Yi)一(Yi)个(Ge)类(Lei)名(Ming)为(Wei)”(?)MyClass.java”(?)的(De)类(Lei),(?)并(Bing)且(Qie)该(Gai)类(Lei)可(Ke)被(Bei)一(Yi)个(Ge)工(Gong)程(Cheng)中(Zhong)的(De)所(Suo)有(You)类(Lei)访(Fang)问(Wen),(?)那(Na)么(Me)该(Gai)类(Lei)的(De)正(Zheng)确(Que)声(Sheng)明(Ming)为(Wei)((?))(?)((?)选(Xuan)择(Ze)两(Liang)项(Xiang))(?) |
B. | class MyClass extends Object |
C. | public class MyClass |
D. | public class MyClass extends Object |
答(Da)案(An):(?)CD
分(Fen)析(Xi):(?) A 类(Lei)的(De)访(Fang)问(Wen)权(Quan)限(Xian)只(Zhi)能(Neng)是(Shi)public或(Huo)default
B使(Shi)用(Yong)默(Mo)认(Ren)访(Fang)问(Wen)权(Quan)限(Xian)的(De)类(Lei),(?)只(Zhi)能(Neng)在(Zai)本(Ben)包(Bao)中(Zhong)访(Fang)问(Wen)
|
答(Da): 面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)三(San)大(Da)特(Te)征(Zheng):(?)封(Feng)装(Zhuang)、(?)继(Ji)承(Cheng)、(?)多(Duo)态(Tai)。(?)
举(Ju)例(Li):(?)((?)比(Bi)如(Ru)设(She)计(Ji)一(Yi)个(Ge)游(You)戏(Xi))(?)我(Wo)现(Xian)在(Zai)创(Chuang)建(Jian)了(Liao)一(Yi)个(Ge)对(Dui)象(Xiang),(?)名(Ming)叫(Jiao)战(Zhan)士(Shi)。(?)
战(Zhan)士(Shi)的(De)属(Shu)性(Xing)是(Shi)—(?)性(Xing)别(Bie),(?)年(Nian)龄(Ling),(?)职(Zhi)业(Ye),(?)等(Deng)级(Ji),(?)战(Zhan)斗(Dou)力(Li),(?)血(Xue)量(Liang)。(?)
它(Ta)的(De)方(Fang)法(Fa)—(?)战(Zhan)斗(Dou),(?)逃(Tao)跑(Pao),(?)吃(Chi)饭(Fan),(?)睡(Shui)觉(Jue),(?)死(Si)。(?)
后(Hou)来(Lai),(?)我(Wo)又(You)建(Jian)了(Liao)一(Yi)个(Ge)对(Dui)象(Xiang),(?)叫(Jiao)人(Ren)。(?)
属(Shu)性(Xing):性(Xing)别(Bie),(?)年(Nian)龄(Ling),(?)职(Zhi)业(Ye),(?)等(Deng)级(Ji),(?)血(Xue)量(Liang)
方(Fang)法(Fa):逃(Tao)跑(Pao),(?)吃(Chi)饭(Fan),(?)睡(Shui)觉(Jue),(?)死(Si)。(?)
我(Wo)让(Rang)人(Ren),(?)成(Cheng)为(Wei)战(Zhan)士(Shi)的(De)父(Fu)类(Lei),(?)战(Zhan)士(Shi)可(Ke)以(Yi)直(Zhi)接(Jie)继(Ji)承(Cheng)人(Ren)的(De)属(Shu)性(Xing)和(He)方(Fang)法(Fa)。(?)
战(Zhan)士(Shi)修(Xiu)改(Gai)成(Cheng)—(?)
属(Shu)性(Xing):战(Zhan)斗(Dou)力(Li)。(?)
方(Fang)法(Fa):战(Zhan)斗(Dou)。(?)
看(Kan)上(Shang)去(Qu)战(Zhan)士(Shi)的(De)资(Zi)料(Liao)变(Bian)少(Shao)了(Liao),(?)实(Shi)际(Ji)上(Shang)没(Mei)有(You),(?)我(Wo)们(Men)仍(Reng)然(Ran)可(Ke)以(Yi)调(Diao)用(Yong)方(Fang)法(Fa)—(?)战(Zhan)士(Shi).死(Si)。(?)
而(?)且(Qie)我(Wo)们(Men)还(Huan)可(Ke)以(Yi)重(Zhong)载(Zai)战(Zhan)士(Shi).死(Si)的(De)方(Fang)法(Fa),(?)简(Jian)称(Cheng)重(Zhong)载(Zai)死(Si)法(Fa)。(?)
我(Wo)还(Huan)建(Jian)了(Liao)一(Yi)个(Ge)对(Dui)象(Xiang)—(?)法(Fa)师(Shi),(?)父(Fu)类(Lei)也(Ye)是(Shi)人(Ren)。(?)
属(Shu)性(Xing):法(Fa)力(Li)值(Zhi)
方(Fang)法(Fa):施(Shi)法(Fa),(?)泡(Pao)妞(Niu)。(?)
你(Ni)看(Kan),(?)用(Yong)了(Liao)继(Ji)承(Cheng),(?)创(Chuang)建(Jian)对(Dui)象(Xiang)变(Bian)得(De)更(Geng)方(Fang)便(Bian)了(Liao)。(?)
再(Zai)后(Hou)来(Lai),(?)我(Wo)又(You)建(Jian)立(Li)了(Liao)一(Yi)个(Ge)对(Dui)象(Xiang),(?)叫(Jiao)怪(Guai)物(Wu)。(?)
属(Shu)性(Xing):等(Deng)级(Ji),(?)战(Zhan)力(Li),(?)血(Xue)量(Liang)。(?)
方(Fang)法(Fa):战(Zhan)斗(Dou),(?)死(Si)。(?)
建(Jian)了(Liao)个(Ge)对(Dui)象(Xiang),(?)叫(Jiao)白(Bai)兔(Tu)怪(Guai),(?)父(Fu)类(Lei)怪(Guai)物(Wu),(?)可(Ke)继(Ji)承(Cheng)怪(Guai)物(Wu)所(Suo)有(You)的(De)属(Shu)性(Xing)和(He)方(Fang)法(Fa)。(?)
属(Shu)性(Xing):毛(Mao)色(Se)。(?)
方(Fang)法(Fa):卖(Mai)萌(Meng),(?)吃(Chi)胡(Hu)萝(Luo)卜(Bu)。(?)
答(Da):(?)
内(Nei)存(Cun)溢(Yi)出(Chu) out of memory,(?)是(Shi)指(Zhi)程(Cheng)序(Xu)在(Zai)申(Shen)请(Qing)内(Nei)存(Cun)时(Shi),(?)没(Mei)有(You)足(Zu)够(Gou)的(De)内(Nei)存(Cun)空(Kong)间(Jian)供(Gong)其(Qi)使(Shi)用(Yong),(?)出(Chu)现(Xian)out of memory;(?)比(Bi)如(Ru)申(Shen)请(Qing)了(Liao)一(Yi)个(Ge)integer,但(Dan)给(Gei)它(Ta)存(Cun)了(Liao)long才(Cai)能(Neng)存(Cun)下(Xia)的(De)数(Shu),(?)那(Na)就(Jiu)是(Shi)内(Nei)存(Cun)溢(Yi)出(Chu)。(?)
内(Nei)存(Cun)泄(Xie)露(Lu) memory leak,(?)是(Shi)指(Zhi)程(Cheng)序(Xu)在(Zai)申(Shen)请(Qing)内(Nei)存(Cun)后(Hou),(?)无(Wu)法(Fa)释(Shi)放(Fang)已(Yi)申(Shen)请(Qing)的(De)内(Nei)存(Cun)空(Kong)间(Jian),(?)一(Yi)次(Ci)内(Nei)存(Cun)泄(Xie)露(Lu)危(Wei)害(Hai)可(Ke)以(Yi)忽(Hu)略(Lue),(?)但(Dan)内(Nei)存(Cun)泄(Xie)露(Lu)堆(Dui)积(Ji)后(Hou)果(Guo)很(Hen)严(Yan)重(Zhong),(?)无(Wu)论(Lun)多(Duo)少(Shao)内(Nei)存(Cun),迟(Chi)早(Zao)会(Hui)被(Bei)占(Zhan)光(Guang)。(?)
memory leak会(Hui)最(Zui)终(Zhong)会(Hui)导(Dao)致(Zhi)out of memory!(?)
答(Da):(?)Java中(Zhong)的(De)序(Xu)列(Lie)化(Hua)机(Ji)制(Zhi)能(Neng)够(Gou)将(Jiang)一(Yi)个(Ge)实(Shi)例(Li)对(Dui)象(Xiang)((?)只(Zhi)序(Xu)列(Lie)化(Hua)对(Dui)象(Xiang)的(De)属(Shu)性(Xing)值(Zhi),(?)而(?)不(Bu)会(Hui)去(Qu)序(Xu)列(Lie)化(Hua)什(Shi)么(Me)所(Suo)谓(Wei)的(De)方(Fang)法(Fa)。(?))(?)的(De)状(Zhuang)态(Tai)信(Xin)息(Xi)写(Xie)入(Ru)到(Dao)一(Yi)个(Ge)字(Zi)节(Jie)流(Liu)中(Zhong)使(Shi)其(Qi)可(Ke)以(Yi)通(Tong)过(Guo)socket进(Jin)行(Xing)传(Chuan)输(Shu)、(?)或(Huo)者(Zhe)持(Chi)久(Jiu)化(Hua)到(Dao)存(Cun)储(Chu)数(Shu)据(Ju)库(Ku)或(Huo)文(Wen)件(Jian)系(Xi)统(Tong)中(Zhong);(?)然(Ran)后(Hou)在(Zai)需(Xu)要(Yao)的(De)时(Shi)候(Hou)通(Tong)过(Guo)字(Zi)节(Jie)流(Liu)中(Zhong)的(De)信(Xin)息(Xi)来(Lai)重(Zhong)构(Gou)一(Yi)个(Ge)相(Xiang)同(Tong)的(De)对(Dui)象(Xiang)。(?)一(Yi)般(Ban)而(?)言(Yan),(?)要(Yao)使(Shi)得(De)一(Yi)个(Ge)类(Lei)可(Ke)以(Yi)序(Xu)列(Lie)化(Hua),(?)只(Zhi)需(Xu)简(Jian)单(Dan)实(Shi)现(Xian)java.io.Serializable接(Jie)口(Kou)即(Ji)可(Ke)。(?)
对(Dui)象(Xiang)的(De)序(Xu)列(Lie)化(Hua)主(Zhu)要(Yao)有(You)两(Liang)种(Zhong)用(Yong)途(Tu):(?)
1)(?) 把(Ba)对(Dui)象(Xiang)的(De)字(Zi)节(Jie)序(Xu)列(Lie)永(Yong)久(Jiu)地(Di)保(Bao)存(Cun)到(Dao)硬(Ying)盘(Pan)上(Shang),(?)通(Tong)常(Chang)存(Cun)放(Fang)在(Zai)一(Yi)个(Ge)文(Wen)件(Jian)中(Zhong);(?)
2)(?) 在(Zai)网(Wang)络(Luo)上(Shang)传(Chuan)送(Song)对(Dui)象(Xiang)的(De)字(Zi)节(Jie)序(Xu)列(Lie)。(?)
在(Zai)很(Hen)多(Duo)应(Ying)用(Yong)中(Zhong),(?)需(Xu)要(Yao)对(Dui)某(Mou)些(Xie)对(Dui)象(Xiang)进(Jin)行(Xing)序(Xu)列(Lie)化(Hua),(?)让(Rang)它(Ta)们(Men)离(Li)开(Kai)内(Nei)存(Cun)空(Kong)间(Jian),(?)入(Ru)住(Zhu)物(Wu)理(Li)硬(Ying)盘(Pan),(?)以(Yi)便(Bian)长(Chang)期(Qi)保(Bao)存(Cun)。(?)比(Bi)如(Ru)最(Zui)常(Chang)见(Jian)的(De)是(Shi)Web服(Fu)务(Wu)器(Qi)中(Zhong)的(De)Session对(Dui)象(Xiang),(?)当(Dang)有(You) 10万(Wan)用(Yong)户(Hu)并(Bing)发(Fa)访(Fang)问(Wen),(?)就(Jiu)有(You)可(Ke)能(Neng)出(Chu)现(Xian)10万(Wan)个(Ge)Session对(Dui)象(Xiang),(?)内(Nei)存(Cun)可(Ke)能(Neng)吃(Chi)不(Bu)消(Xiao),(?)于(Yu)是(Shi)Web容(Rong)器(Qi)就(Jiu)会(Hui)把(Ba)一(Yi)些(Xie)seesion先(Xian)序(Xu)列(Lie)化(Hua)到(Dao)硬(Ying)盘(Pan)中(Zhong),(?)等(Deng)要(Yao)用(Yong)了(Liao),(?)再(Zai)把(Ba)保(Bao)存(Cun)在(Zai)硬(Ying)盘(Pan)中(Zhong)的(De)对(Dui)象(Xiang)还(Huan)原(Yuan)到(Dao)内(Nei)存(Cun)中(Zhong)。(?)
当(Dang)两(Liang)个(Ge)进(Jin)程(Cheng)在(Zai)进(Jin)行(Xing)远(Yuan)程(Cheng)通(Tong)信(Xin)时(Shi),(?)彼(Bi)此(Ci)可(Ke)以(Yi)发(Fa)送(Song)各(Ge)种(Zhong)类(Lei)型(Xing)的(De)数(Shu)据(Ju)。(?)无(Wu)论(Lun)是(Shi)何(He)种(Zhong)类(Lei)型(Xing)的(De)数(Shu)据(Ju),(?)都(Du)会(Hui)以(Yi)二(?)进(Jin)制(Zhi)序(Xu)列(Lie)的(De)形(Xing)式(Shi)在(Zai)网(Wang)络(Luo)上(Shang)传(Chuan)送(Song)。(?)发(Fa)送(Song)方(Fang)需(Xu)要(Yao)把(Ba)这(Zhe)个(Ge)Java对(Dui)象(Xiang)转(Zhuan)换(Huan)为(Wei)字(Zi)节(Jie)序(Xu)列(Lie),(?)才(Cai)能(Neng)在(Zai)网(Wang)络(Luo)上(Shang)传(Chuan)送(Song);(?)接(Jie)收(Shou)方(Fang)则(Ze)需(Xu)要(Yao)把(Ba)字(Zi)节(Jie)序(Xu)列(Lie)再(Zai)恢(Hui)复(Fu)为(Wei)Java对(Dui)象(Xiang)。(?)
答(Da):(?)Java创(Chuang)建(Jian)对(Dui)象(Xiang)的(De)几(Ji)种(Zhong)方(Fang)式(Shi)((?)重(Zhong)要(Yao))(?):(?)
1、(?) 用(Yong)new语(Yu)句(Ju)创(Chuang)建(Jian)对(Dui)象(Xiang),(?)这(Zhe)是(Shi)最(Zui)常(Chang)见(Jian)的(De)创(Chuang)建(Jian)对(Dui)象(Xiang)的(De)方(Fang)法(Fa)。(?)
2、(?) 运(Yun)用(Yong)反(Fan)射(She)手(Shou)段(Duan),调(Diao)用(Yong)java.lang.Class或(Huo)者(Zhe)java.lang.reflect.Constructor类(Lei)的(De)newInstance()实(Shi)例(Li)方(Fang)法(Fa)。(?)
3、(?) 调(Diao)用(Yong)对(Dui)象(Xiang)的(De)clone()方(Fang)法(Fa)。(?)
4、(?)运(Yun)用(Yong)反(Fan)序(Xu)列(Lie)化(Hua)手(Shou)段(Duan),(?)调(Diao)用(Yong)java.io.ObjectInputStream对(Dui)象(Xiang)的(De) readObject()方(Fang)法(Fa)。(?)
(1)和(He)(2)都(Du)会(Hui)明(Ming)确(Que)的(De)显(Xian)式(Shi)的(De)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu) ;(?)(3)是(Shi)在(Zai)内(Nei)存(Cun)上(Shang)对(Dui)已(Yi)有(You)对(Dui)象(Xiang)的(De)影(Ying)印(Yin),(?)所(Suo)以(Yi)不(Bu)会(Hui)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu) ;(?)(4)是(Shi)从(Cong)文(Wen)件(Jian)中(Zhong)还(Huan)原(Yuan)类(Lei)的(De)对(Dui)象(Xiang),(?)也(Ye)不(Bu)会(Hui)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu)。(?)
答(Da):(?)匿(Ni)名(Ming)内(Nei)部(Bu)类(Lei)是(Shi)没(Mei)有(You)名(Ming)字(Zi)的(De)内(Nei)部(Bu)类(Lei),不(Bu)能(Neng)继(Ji)承(Cheng)其(Qi)它(Ta)类(Lei),但(Dan)一(Yi)个(Ge)内(Nei)部(Bu)类(Lei)可(Ke)以(Yi)作(Zuo)为(Wei)一(Yi)个(Ge)接(Jie)口(Kou),由(You)另(Ling)一(Yi)个(Ge)内(Nei)部(Bu)类(Lei)实(Shi)现(Xian).
1、(?)由(You)于(Yu)匿(Ni)名(Ming)内(Nei)部(Bu)类(Lei)没(Mei)有(You)名(Ming)字(Zi),(?)所(Suo)以(Yi)它(Ta)没(Mei)有(You)构(Gou)造(Zao)函(Han)数(Shu)。(?)因(Yin)为(Wei)没(Mei)有(You)构(Gou)造(Zao)函(Han)数(Shu),(?)所(Suo)以(Yi)它(Ta)必(Bi)须(Xu)完(Wan)全(Quan)借(Jie)用(Yong)父(Fu)类(Lei)的(De)构(Gou)造(Zao)函(Han)数(Shu)来(Lai)实(Shi)例(Li)化(Hua),(?)换(Huan)言(Yan)之(Zhi):(?)匿(Ni)名(Ming)内(Nei)部(Bu)类(Lei)完(Wan)全(Quan)把(Ba)创(Chuang)建(Jian)对(Dui)象(Xiang)的(De)任(Ren)务(Wu)交(Jiao)给(Gei)了(Liao)父(Fu)类(Lei)去(Qu)完(Wan)成(Cheng)。(?)
2、(?)在(Zai)匿(Ni)名(Ming)内(Nei)部(Bu)类(Lei)里(Li)创(Chuang)建(Jian)新(Xin)的(De)方(Fang)法(Fa)没(Mei)有(You)太(Tai)大(Da)意(Yi)义(Yi),(?)但(Dan)它(Ta)可(Ke)以(Yi)通(Tong)过(Guo)覆(Fu)盖(Gai)父(Fu)类(Lei)的(De)方(Fang)法(Fa)达(Da)到(Dao)神(Shen)奇(Qi)效(Xiao)果(Guo),(?)如(Ru)上(Shang)例(Li)所(Suo)示(Shi)。(?)这(Zhe)是(Shi)多(Duo)态(Tai)性(Xing)的(De)体(Ti)现(Xian)。(?)
3、(?)因(Yin)为(Wei)匿(Ni)名(Ming)内(Nei)部(Bu)类(Lei)没(Mei)有(You)名(Ming)字(Zi),(?)所(Suo)以(Yi)无(Wu)法(Fa)进(Jin)行(Xing)向(Xiang)下(Xia)的(De)强(Qiang)制(Zhi)类(Lei)型(Xing)转(Zhuan)换(Huan),(?)持(Chi)有(You)对(Dui)一(Yi)个(Ge)匿(Ni)名(Ming)内(Nei)部(Bu)类(Lei)对(Dui)象(Xiang)引(Yin)用(Yong)的(De)变(Bian)量(Liang)类(Lei)型(Xing)一(Yi)定(Ding)是(Shi)它(Ta)的(De)直(Zhi)接(Jie)或(Huo)间(Jian)接(Jie)父(Fu)类(Lei)类(Lei)型(Xing)。(?)
(1) 在(Zai)Java中(Zhong)是(Shi)使(Shi)用(Yong)泛(Fan)型(Xing)来(Lai)约(Yue)束(Shu)HashMap中(Zhong)的(De)key和(He)value的(De)类(Lei)型(Xing)的(De),(?)即(Ji)HashMap< K, V>;(?)而(?)泛(Fan)型(Xing)在(Zai)Java的(De)规(Gui)定(Ding)中(Zhong)必(Bi)须(Xu)是(Shi)对(Dui)象(Xiang)Object类(Lei)型(Xing)的(De),(?)也(Ye)就(Jiu)是(Shi)说(Shuo)HashMap< K, V>可(Ke)以(Yi)理(Li)解(Jie)为(Wei)HashMap< Object, Object>,(?)很(Hen)显(Xian)然(Ran)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)不(Bu)是(Shi)Object类(Lei)型(Xing)的(De),(?)因(Yin)此(Ci)不(Bu)能(Neng)作(Zuo)为(Wei)键(Jian)值(Zhi),(?)只(Zhi)能(Neng)是(Shi)引(Yin)用(Yong)类(Lei)型(Xing)。(?)虽(Sui)然(Ran)我(Wo)们(Men)在(Zai)HashMap中(Zhong)可(Ke)以(Yi)这(Zhe)样(Yang)添(Tian)加(Jia)数(Shu)据(Ju):(?)“(?)map.put(1, “(?)Java”(?));(?)”(?),(?)但(Dan)实(Shi)际(Ji)上(Shang)是(Shi)将(Jiang)其(Qi)中(Zhong)的(De)key值(Zhi)1进(Jin)行(Xing)了(Liao)自(Zi)动(Dong)装(Zhuang)箱(Xiang)操(Cao)作(Zuo),(?)变(Bian)为(Wei)了(Liao)Integer类(Lei)型(Xing)。(?)
(1) 在(Zai)Java中(Zhong)是(Shi)使(Shi)用(Yong)泛(Fan)型(Xing)来(Lai)约(Yue)束(Shu)HashMap中(Zhong)的(De)key和(He)value的(De)类(Lei)型(Xing)的(De),(?)即(Ji)HashMap< K, V>;(?)而(?)泛(Fan)型(Xing)在(Zai)Java的(De)规(Gui)定(Ding)中(Zhong)必(Bi)须(Xu)是(Shi)对(Dui)象(Xiang)Object类(Lei)型(Xing)的(De),(?)也(Ye)就(Jiu)是(Shi)说(Shuo)HashMap< K, V>可(Ke)以(Yi)理(Li)解(Jie)为(Wei)HashMap< Object, Object>,(?)很(Hen)显(Xian)然(Ran)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)不(Bu)是(Shi)Object类(Lei)型(Xing)的(De),(?)因(Yin)此(Ci)不(Bu)能(Neng)作(Zuo)为(Wei)键(Jian)值(Zhi),(?)只(Zhi)能(Neng)是(Shi)引(Yin)用(Yong)类(Lei)型(Xing)。(?)虽(Sui)然(Ran)我(Wo)们(Men)在(Zai)HashMap中(Zhong)可(Ke)以(Yi)这(Zhe)样(Yang)添(Tian)加(Jia)数(Shu)据(Ju):(?)“(?)map.put(1, “(?)Java”(?));(?)”(?),(?)但(Dan)实(Shi)际(Ji)上(Shang)是(Shi)将(Jiang)其(Qi)中(Zhong)的(De)key值(Zhi)1进(Jin)行(Xing)了(Liao)自(Zi)动(Dong)装(Zhuang)箱(Xiang)操(Cao)作(Zuo),(?)变(Bian)为(Wei)了(Liao)Integer类(Lei)型(Xing)。(?)
实(Shi)现(Xian)多(Duo)态(Tai)有(You)三(San)个(Ge)前(Qian)提(Ti)条(Tiao)件(Jian):(?)
1、(?) 继(Ji)承(Cheng)的(De)存(Cun)在(Zai);(?)((?)继(Ji)承(Cheng)是(Shi)多(Duo)态(Tai)的(De)基(Ji)础(Chu),(?)没(Mei)有(You)继(Ji)承(Cheng)就(Jiu)没(Mei)有(You)多(Duo)态(Tai))(?)。(?)
2、(?)子(Zi)类(Lei)重(Zhong)写(Xie)父(Fu)类(Lei)的(De)方(Fang)法(Fa)。(?)((?)多(Duo)态(Tai)下(Xia)会(Hui)调(Diao)用(Yong)子(Zi)类(Lei)重(Zhong)写(Xie)后(Hou)的(De)方(Fang)法(Fa))(?)。(?)
3、(?)父(Fu)类(Lei)引(Yin)用(Yong)变(Bian)量(Liang)指(Zhi)向(Xiang)子(Zi)类(Lei)对(Dui)象(Xiang)。(?)((?)涉(She)及(Ji)子(Zi)类(Lei)到(Dao)父(Fu)类(Lei)的(De)类(Lei)型(Xing)转(Zhuan)换(Huan))(?)。(?)
最(Zui)后(Hou)使(Shi)用(Yong)父(Fu)类(Lei)的(De)引(Yin)用(Yong)变(Bian)量(Liang)调(Diao)用(Yong)子(Zi)类(Lei)重(Zhong)写(Xie)的(De)方(Fang)法(Fa)即(Ji)可(Ke)实(Shi)现(Xian)多(Duo)态(Tai)。(?)
A | Java中(Zhong)的(De)继(Ji)承(Cheng)允(Yun)许(Xu)一(Yi)个(Ge)子(Zi)类(Lei)继(Ji)承(Cheng)多(Duo)个(Ge)父(Fu)类(Lei) |
B. | 父(Fu)类(Lei)更(Geng)具(Ju)有(You)通(Tong)用(Yong)性(Xing),(?)子(Zi)类(Lei)更(Geng)具(Ju)体(Ti) |
C. | Java中(Zhong)的(De)继(Ji)承(Cheng)存(Cun)在(Zai)着(Zhuo)传(Chuan)递(Di)性(Xing) |
D. | 当(Dang)实(Shi)例(Li)化(Hua)子(Zi)类(Lei)时(Shi)会(Hui)递(Di)归(Gui)调(Diao)用(Yong)父(Fu)类(Lei)中(Zhong)的(De)构(Gou)造(Zao)方(Fang)法(Fa) |
答(Da)案(An):(?)A
分(Fen)析(Xi):(?)Java是(Shi)单(Dan)继(Ji)承(Cheng)的(De),(?)一(Yi)个(Ge)类(Lei)只(Zhi)能(Neng)继(Ji)承(Cheng)一(Yi)个(Ge)父(Fu)类(Lei)。(?)
|
54.Java 中(Zhong) Math.random((?))(?)/Math.random((?))(?)值(Zhi)为(Wei)?(?)
如(Ru)果(Guo)除(Chu)数(Shu)与(Yu)被(Bei)除(Chu)数(Shu)均(Jun)为(Wei)0.0的(De)话(Hua),(?)则(Ze)运(Yun)行(Xing)结(Jie)果(Guo)为(Wei)NaN((?)Not a Number的(De)简(Jian)写(Xie))(?),(?)计(Ji)算(Suan)错(Cuo)误(Wu)。(?)
不(Bu)是(Shi),(?)两(Liang)者(Zhe)没(Mei)有(You)任(Ren)何(He)关(Guan)联(Lian);(?)
Pair是(Shi)单(Dan)独(Du)的(De)类(Lei),(?)只(Zhi)不(Bu)过(Guo)用(Yong)不(Bu)同(Tong)类(Lei)型(Xing)的(De)参(Can)数(Shu)((?)泛(Fan)型(Xing))(?)进(Jin)行(Xing)了(Liao)相(Xiang)应(Ying)的(De)实(Shi)例(Li)化(Hua)而(?)已(Yi);(?)所(Suo)以(Yi),(?)Pair< Manager>和(He)Pair< Employee>不(Bu)是(Shi)子(Zi)类(Lei)的(De)关(Guan)系(Xi)。(?)
56.接(Jie)口(Kou)和(He)抽(Chou)象(Xiang)类(Lei)的(De)区(Qu)别(Bie)
抽(Chou)象(Xiang)类(Lei)和(He)接(Jie)口(Kou)均(Jun)包(Bao)含(Han)抽(Chou)象(Xiang)方(Fang)法(Fa),(?)类(Lei)必(Bi)须(Xu)实(Shi)现(Xian)所(Suo)有(You)的(De)抽(Chou)象(Xiang)方(Fang)法(Fa),(?)否(Fou)则(Ze)是(Shi)抽(Chou)象(Xiang)类(Lei)
抽(Chou)象(Xiang)类(Lei)和(He)接(Jie)口(Kou)都(Du)不(Bu)能(Neng)实(Shi)例(Li)化(Hua),(?)他(Ta)们(Men)位(Wei)于(Yu)继(Ji)承(Cheng)树(Shu)的(De)顶(Ding)端(Duan),(?)用(Yong)来(Lai)被(Bei)其(Qi)他(Ta)类(Lei)继(Ji)承(Cheng)和(He)实(Shi)现(Xian)
两(Liang)者(Zhe)的(De)区(Qu)别(Bie)主(Zhu)要(Yao)体(Ti)现(Xian)在(Zai)两(Liang)方(Fang)面(Mian):(?)语(Yu)法(Fa)方(Fang)面(Mian)和(He)设(She)计(Ji)理(Li)念(Nian)方(Fang)面(Mian)
语(Yu)法(Fa)方(Fang)面(Mian)的(De)区(Qu)别(Bie)是(Shi)比(Bi)较(Jiao)低(Di)层(Ceng)次(Ci)的(De),(?)非(Fei)本(Ben)质(Zhi)的(De),(?)主(Zhu)要(Yao)表(Biao)现(Xian)在(Zai):(?)
接(Jie)口(Kou)中(Zhong)只(Zhi)能(Neng)定(Ding)义(Yi)全(Quan)局(Ju)静(Jing)态(Tai)常(Chang)量(Liang),(?)不(Bu)能(Neng)定(Ding)义(Yi)变(Bian)量(Liang)。(?)抽(Chou)象(Xiang)类(Lei)中(Zhong)可(Ke)以(Yi)定(Ding)义(Yi)常(Chang)量(Liang)和(He)变(Bian)量(Liang)。(?)
接(Jie)口(Kou)中(Zhong)所(Suo)有(You)的(De)方(Fang)法(Fa)都(Du)是(Shi)全(Quan)局(Ju)抽(Chou)象(Xiang)方(Fang)法(Fa)。(?)抽(Chou)象(Xiang)类(Lei)中(Zhong)可(Ke)以(Yi)有(You)0个(Ge)、(?)1个(Ge)或(Huo)多(Duo)个(Ge),(?)甚(Shen)至(Zhi)全(Quan)部(Bu)都(Du)是(Shi)抽(Chou)象(Xiang)方(Fang)法(Fa)。(?)
抽(Chou)象(Xiang)类(Lei)中(Zhong)可(Ke)以(Yi)有(You)构(Gou)造(Zao)方(Fang)法(Fa),(?)但(Dan)不(Bu)能(Neng)用(Yong)来(Lai)实(Shi)例(Li)化(Hua),(?)而(?)在(Zai)子(Zi)类(Lei)实(Shi)例(Li)化(Hua)是(Shi)执(Zhi)行(Xing),(?)完(Wan)成(Cheng)属(Shu)于(Yu)抽(Chou)象(Xiang)类(Lei)的(De)初(Chu)始(Shi)化(Hua)操(Cao)作(Zuo)。(?)接(Jie)口(Kou)中(Zhong)不(Bu)能(Neng)定(Ding)义(Yi)构(Gou)造(Zao)方(Fang)法(Fa)。(?)
一(Yi)个(Ge)类(Lei)只(Zhi)能(Neng)有(You)一(Yi)个(Ge)直(Zhi)接(Jie)父(Fu)类(Lei)((?)可(Ke)以(Yi)是(Shi)抽(Chou)象(Xiang)类(Lei))(?),(?)但(Dan)可(Ke)以(Yi)充(Chong)实(Shi)实(Shi)现(Xian)多(Duo)个(Ge)接(Jie)口(Kou)。(?)一(Yi)个(Ge)类(Lei)使(Shi)用(Yong)extends来(Lai)继(Ji)承(Cheng)抽(Chou)象(Xiang)类(Lei),(?)使(Shi)用(Yong)implements来(Lai)实(Shi)现(Xian)接(Jie)口(Kou)。(?)
一(Yi)个(Ge)类(Lei)只(Zhi)能(Neng)有(You)一(Yi)个(Ge)直(Zhi)接(Jie)父(Fu)类(Lei)((?)可(Ke)以(Yi)是(Shi)抽(Chou)象(Xiang)类(Lei))(?),(?)但(Dan)可(Ke)以(Yi)充(Chong)实(Shi)实(Shi)现(Xian)多(Duo)个(Ge)接(Jie)口(Kou)。(?)一(Yi)个(Ge)类(Lei)使(Shi)用(Yong)extends来(Lai)继(Ji)承(Cheng)抽(Chou)象(Xiang)类(Lei),(?)使(Shi)用(Yong)implements来(Lai)实(Shi)现(Xian)接(Jie)口(Kou)。(?)
抽(Chou)象(Xiang)类(Lei)体(Ti)现(Xian)了(Liao)一(Yi)种(Zhong)继(Ji)承(Cheng)关(Guan)系(Xi),(?)目(Mu)的(De)是(Shi)复(Fu)用(Yong)代(Dai)码(Ma),(?)抽(Chou)象(Xiang)类(Lei)中(Zhong)定(Ding)义(Yi)了(Liao)各(Ge)个(Ge)子(Zi)类(Lei)的(De)相(Xiang)同(Tong)代(Dai)码(Ma),(?)可(Ke)以(Yi)认(Ren)为(Wei)父(Fu)类(Lei)是(Shi)一(Yi)个(Ge)实(Shi)现(Xian)了(Liao)部(Bu)分(Fen)功(Gong)能(Neng)的(De)“(?)中(Zhong)间(Jian)产(Chan)品(Pin)”(?),(?)而(?)子(Zi)类(Lei)是(Shi)“(?)最(Zui)终(Zhong)产(Chan)品(Pin)”(?)。(?)父(Fu)类(Lei)和(He)子(Zi)类(Lei)之(Zhi)间(Jian)必(Bi)须(Xu)存(Cun)在(Zai)“(?)is-a”(?)的(De)关(Guan)系(Xi),(?)即(Ji)父(Fu)类(Lei)和(He)子(Zi)类(Lei)在(Zai)概(Gai)念(Nian)本(Ben)质(Zhi)上(Shang)应(Ying)该(Gai)是(Shi)相(Xiang)同(Tong)的(De)。(?)
接(Jie)口(Kou)并(Bing)不(Bu)要(Yao)求(Qiu)实(Shi)现(Xian)类(Lei)和(He)接(Jie)口(Kou)在(Zai)概(Gai)念(Nian)本(Ben)质(Zhi)上(Shang)一(Yi)致(Zhi)的(De),(?)仅(Jin)仅(Jin)是(Shi)实(Shi)现(Xian)了(Liao)接(Jie)口(Kou)定(Ding)义(Yi)的(De)约(Yue)定(Ding)或(Huo)者(Zhe)能(Neng)力(Li)而(?)已(Yi)。(?)接(Jie)口(Kou)定(Ding)义(Yi)了(Liao)“(?)做(Zuo)什(Shi)么(Me)”(?),(?)而(?)实(Shi)现(Xian)类(Lei)负(Fu)责(Ze)完(Wan)成(Cheng)“(?)怎(Zen)么(Me)做(Zuo)”(?),(?)体(Ti)现(Xian)了(Liao)功(Gong)能(Neng)((?)规(Gui)范(Fan))(?)和(He)实(Shi)现(Xian)分(Fen)离(Li)的(De)原(Yuan)则(Ze)。(?)接(Jie)口(Kou)和(He)实(Shi)现(Xian)之(Zhi)间(Jian)可(Ke)以(Yi)认(Ren)为(Wei)是(Shi)一(Yi)种(Zhong)“(?)has-a的(De)关(Guan)系(Xi)”(?)
相(Xiang)同(Tong)点(Dian):(?)
同(Tong)步(Bu)方(Fang)法(Fa)就(Jiu)是(Shi)在(Zai)方(Fang)法(Fa)前(Qian)加(Jia)关(Guan)键(Jian)字(Zi)synchronized,(?)然(Ran)后(Hou)被(Bei)同(Tong)步(Bu)的(De)方(Fang)法(Fa)一(Yi)次(Ci)只(Zhi)能(Neng)有(You)一(Yi)个(Ge)线(Xian)程(Cheng)进(Jin)入(Ru),(?)其(Qi)他(Ta)线(Xian)程(Cheng)等(Deng)待(Dai)。(?)而(?)同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai)则(Ze)是(Shi)在(Zai)方(Fang)法(Fa)内(Nei)部(Bu)使(Shi)用(Yong)大(Da)括(Kuo)号(Hao)使(Shi)得(De)一(Yi)个(Ge)代(Dai)码(Ma)块(Kuai)得(De)到(Dao)同(Tong)步(Bu)。(?)同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai)会(Hui)有(You)一(Yi)个(Ge)同(Tong)步(Bu)的(De)“(?)目(Mu)标(Biao)”(?),(?)使(Shi)得(De)同(Tong)步(Bu)块(Kuai)更(Geng)加(Jia)灵(Ling)活(Huo)一(Yi)些(Xie)((?)同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai)可(Ke)以(Yi)通(Tong)过(Guo)“(?)目(Mu)标(Biao)”(?)决(Jue)定(Ding)需(Xu)要(Yao)锁(Suo)定(Ding)的(De)对(Dui)象(Xiang))(?)。(?)
一(Yi)般(Ban)情(Qing)况(Kuang)下(Xia),(?)如(Ru)果(Guo)此(Ci)“(?)目(Mu)标(Biao)”(?)为(Wei)this,(?)同(Tong)步(Bu)方(Fang)法(Fa)和(He)代(Dai)码(Ma)块(Kuai)没(Mei)有(You)太(Tai)大(Da)的(De)区(Qu)别(Bie)。(?)
区(Qu)别(Bie):(?)
同(Tong)步(Bu)方(Fang)法(Fa)直(Zhi)接(Jie)在(Zai)方(Fang)法(Fa)上(Shang)加(Jia)synchronized实(Shi)现(Xian)加(Jia)锁(Suo),(?)同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai)则(Ze)在(Zai)方(Fang)法(Fa)内(Nei)部(Bu)加(Jia)锁(Suo)。(?)很(Hen)明(Ming)显(Xian),(?)同(Tong)步(Bu)方(Fang)法(Fa)锁(Suo)的(De)范(Fan)围(Wei)比(Bi)较(Jiao)大(Da),(?)而(?)同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai)范(Fan)围(Wei)要(Yao)小(Xiao)点(Dian)。(?)一(Yi)般(Ban)同(Tong)步(Bu)的(De)范(Fan)围(Wei)越(Yue)大(Da),(?)性(Xing)能(Neng)就(Jiu)越(Yue)差(Cha)。(?)所(Suo)以(Yi)一(Yi)般(Ban)需(Xu)要(Yao)加(Jia)锁(Suo)进(Jin)行(Xing)同(Tong)步(Bu)的(De)时(Shi)候(Hou),(?)范(Fan)围(Wei)越(Yue)小(Xiao)越(Yue)好(Hao),(?)这(Zhe)样(Yang)性(Xing)能(Neng)更(Geng)好(Hao)。(?)
静(Jing)态(Tai)内(Nei)部(Bu)类(Lei)不(Bu)需(Xu)要(Yao)有(You)指(Zhi)向(Xiang)外(Wai)部(Bu)类(Lei)的(De)引(Yin)用(Yong)。(?)但(Dan)非(Fei)静(Jing)态(Tai)内(Nei)部(Bu)类(Lei)需(Xu)要(Yao)持(Chi)有(You)对(Dui)外(Wai)部(Bu)类(Lei)的(De)引(Yin)用(Yong)。(?)
静(Jing)态(Tai)内(Nei)部(Bu)类(Lei)可(Ke)以(Yi)有(You)静(Jing)态(Tai)成(Cheng)员(Yuan)(方(Fang)法(Fa),(?)属(Shu)性(Xing)),(?)而(?)非(Fei)静(Jing)态(Tai)内(Nei)部(Bu)类(Lei)则(Ze)不(Bu)能(Neng)有(You)静(Jing)态(Tai)成(Cheng)员(Yuan)(方(Fang)法(Fa),(?)属(Shu)性(Xing))。(?)
非(Fei)静(Jing)态(Tai)内(Nei)部(Bu)类(Lei)能(Neng)够(Gou)访(Fang)问(Wen)外(Wai)部(Bu)类(Lei)的(De)静(Jing)态(Tai)和(He)非(Fei)静(Jing)态(Tai)成(Cheng)员(Yuan)。(?)静(Jing)态(Tai)内(Nei)部(Bu)类(Lei)不(Bu)能(Neng)访(Fang)问(Wen)外(Wai)部(Bu)类(Lei)的(De)非(Fei)静(Jing)态(Tai)成(Cheng)员(Yuan),(?)只(Zhi)能(Neng)访(Fang)问(Wen)外(Wai)部(Bu)类(Lei)的(De)静(Jing)态(Tai)成(Cheng)员(Yuan)。(?)
实(Shi)例(Li)化(Hua)方(Fang)式(Shi)不(Bu)同(Tong):(?)
1) 静(Jing)态(Tai)内(Nei)部(Bu)类(Lei):(?)不(Bu)依(Yi)赖(Lai)于(Yu)外(Wai)部(Bu)类(Lei)的(De)实(Shi)例(Li),(?)直(Zhi)接(Jie)实(Shi)例(Li)化(Hua)内(Nei)部(Bu)类(Lei)对(Dui)象(Xiang)
2) 非(Fei)静(Jing)态(Tai)内(Nei)部(Bu)类(Lei):(?)通(Tong)过(Guo)外(Wai)部(Bu)类(Lei)的(De)对(Dui)象(Xiang)实(Shi)例(Li)生(Sheng)成(Cheng)内(Nei)部(Bu)类(Lei)对(Dui)象(Xiang)
反(Fan)射(She)的(De)概(Gai)念(Nian):(?)
反(Fan)射(She),(?)一(Yi)种(Zhong)计(Ji)算(Suan)机(Ji)处(Chu)理(Li)方(Fang)式(Shi)。(?)是(Shi)程(Cheng)序(Xu)可(Ke)以(Yi)访(Fang)问(Wen)、(?)检(Jian)测(Ce)和(He)修(Xiu)改(Gai)它(Ta)本(Ben)身(Shen)状(Zhuang)态(Tai)或(Huo)行(Xing)为(Wei)的(De)一(Yi)种(Zhong)能(Neng)力(Li)。(?)
Java反(Fan)射(She)可(Ke)以(Yi)于(Yu)运(Yun)行(Xing)时(Shi)加(Jia)载(Zai),探(Tan)知(Zhi)和(He)使(Shi)用(Yong)编(Bian)译(Yi)期(Qi)间(Jian)完(Wan)全(Quan)未(Wei)知(Zhi)的(De)类(Lei).
程(Cheng)序(Xu)在(Zai)运(Yun)行(Xing)状(Zhuang)态(Tai)中(Zhong), 可(Ke)以(Yi)动(Dong)态(Tai)加(Jia)载(Zai)一(Yi)个(Ge)只(Zhi)有(You)名(Ming)称(Cheng)的(De)类(Lei), 对(Dui)于(Yu)任(Ren)意(Yi)一(Yi)个(Ge)已(Yi)经(Jing)加(Jia)载(Zai)的(De)类(Lei),都(Du)能(Neng)够(Gou)知(Zhi)道(Dao)这(Zhe)个(Ge)类(Lei)的(De)所(Suo)有(You)属(Shu)性(Xing)和(He)方(Fang)法(Fa); 对(Dui)于(Yu)任(Ren)意(Yi)一(Yi)个(Ge)对(Dui)象(Xiang),都(Du)能(Neng)调(Diao)用(Yong)他(Ta)的(De)任(Ren)意(Yi)一(Yi)个(Ge)方(Fang)法(Fa)和(He)属(Shu)性(Xing);
加(Jia)载(Zai)完(Wan)类(Lei)之(Zhi)后(Hou), 在(Zai)堆(Dui)内(Nei)存(Cun)中(Zhong)会(Hui)产(Chan)生(Sheng)一(Yi)个(Ge)Class类(Lei)型(Xing)的(De)对(Dui)象(Xiang)(一(Yi)个(Ge)类(Lei)只(Zhi)有(You)一(Yi)个(Ge)Class对(Dui)象(Xiang)), 这(Zhe)个(Ge)对(Dui)象(Xiang)包(Bao)含(Han)了(Liao)完(Wan)整(Zheng)的(De)类(Lei)的(De)结(Jie)构(Gou)信(Xin)息(Xi),而(?)且(Qie)这(Zhe)个(Ge)Class对(Dui)象(Xiang)就(Jiu)像(Xiang)一(Yi)面(Mian)镜(Jing)子(Zi),透(Tou)过(Guo)这(Zhe)个(Ge)镜(Jing)子(Zi)看(Kan)到(Dao)类(Lei)的(De)结(Jie)构(Gou),所(Suo)以(Yi)被(Bei)称(Cheng)之(Zhi)为(Wei):反(Fan)射(She).
java反(Fan)射(She)使(Shi)得(De)我(Wo)们(Men)可(Ke)以(Yi)在(Zai)程(Cheng)序(Xu)运(Yun)行(Xing)时(Shi)动(Dong)态(Tai)加(Jia)载(Zai)一(Yi)个(Ge)类(Lei),(?)动(Dong)态(Tai)获(Huo)取(Qu)类(Lei)的(De)基(Ji)本(Ben)信(Xin)息(Xi)和(He)定(Ding)义(Yi)的(De)方(Fang)法(Fa),构(Gou)造(Zao)函(Han)数(Shu),域(Yu)等(Deng)。(?)
除(Chu)了(Liao)检(Jian)阅(Yue)类(Lei)信(Xin)息(Xi)外(Wai),(?)还(Huan)可(Ke)以(Yi)动(Dong)态(Tai)创(Chuang)建(Jian)类(Lei)的(De)实(Shi)例(Li),(?)执(Zhi)行(Xing)类(Lei)实(Shi)例(Li)的(De)方(Fang)法(Fa),(?)获(Huo)取(Qu)类(Lei)实(Shi)例(Li)的(De)域(Yu)值(Zhi)。(?)反(Fan)射(She)使(Shi)java这(Zhe)种(Zhong)静(Jing)态(Tai)语(Yu)言(Yan)有(You)了(Liao)动(Dong)态(Tai)的(De)特(Te)性(Xing)。(?)
反(Fan)射(She)的(De)作(Zuo)用(Yong):(?)
通(Tong)过(Guo)反(Fan)射(She)可(Ke)以(Yi)使(Shi)程(Cheng)序(Xu)代(Dai)码(Ma)访(Fang)问(Wen)装(Zhuang)载(Zai)到(Dao)JVM 中(Zhong)的(De)类(Lei)的(De)内(Nei)部(Bu)信(Xin)息(Xi)
1) 获(Huo)取(Qu)已(Yi)装(Zhuang)载(Zai)类(Lei)的(De)属(Shu)性(Xing)信(Xin)息(Xi)
2) 获(Huo)取(Qu)已(Yi)装(Zhuang)载(Zai)类(Lei)的(De)方(Fang)法(Fa)
3) 获(Huo)取(Qu)已(Yi)装(Zhuang)载(Zai)类(Lei)的(De)构(Gou)造(Zao)方(Fang)法(Fa)信(Xin)息(Xi)
反(Fan)射(She)的(De)优(You)点(Dian):(?)
增(Zeng)加(Jia)程(Cheng)序(Xu)的(De)灵(Ling)活(Huo)性(Xing)。(?)
如(Ru)struts中(Zhong)。(?)请(Qing)求(Qiu)的(De)派(Pai)发(Fa)控(Kong)制(Zhi)。(?)
当(Dang)请(Qing)求(Qiu)来(Lai)到(Dao)时(Shi)。(?)struts通(Tong)过(Guo)查(Cha)询(Xun)配(Pei)置(Zhi)文(Wen)件(Jian)。(?)找(Zhao)到(Dao)该(Gai)请(Qing)求(Qiu)对(Dui)应(Ying)的(De)action。(?)已(Yi)经(Jing)方(Fang)法(Fa)。(?)
然(Ran)后(Hou)通(Tong)过(Guo)反(Fan)射(She)实(Shi)例(Li)化(Hua)action。(?)并(Bing)调(Diao)用(Yong)响(Xiang)应(Ying)method。(?)
如(Ru)果(Guo)不(Bu)适(Shi)用(Yong)反(Fan)射(She),(?)那(Na)么(Me)你(Ni)就(Jiu)只(Zhi)能(Neng)写(Xie)死(Si)到(Dao)代(Dai)码(Ma)里(Li)了(Liao)。(?)
所(Suo)以(Yi)说(Shuo),(?)一(Yi)个(Ge)灵(Ling)活(Huo),(?)一(Yi)个(Ge)不(Bu)灵(Ling)活(Huo)。(?)
很(Hen)少(Shao)情(Qing)况(Kuang)下(Xia)是(Shi)非(Fei)用(Yong)反(Fan)射(She)不(Bu)可(Ke)的(De)。(?)大(Da)多(Duo)数(Shu)情(Qing)况(Kuang)下(Xia)反(Fan)射(She)是(Shi)为(Wei)了(Liao)提(Ti)高(Gao)程(Cheng)序(Xu)的(De)灵(Ling)活(Huo)性(Xing)。(?)因(Yin)此(Ci)一(Yi)般(Ban)框(Kuang)架(Jia)中(Zhong)使(Shi)用(Yong)较(Jiao)多(Duo)。(?)因(Yin)为(Wei)框(Kuang)架(Jia)要(Yao)适(Shi)用(Yong)更(Geng)多(Duo)的(De)情(Qing)况(Kuang)。(?)对(Dui)灵(Ling)活(Huo)性(Xing)要(Yao)求(Qiu)较(Jiao)高(Gao)。(?)
A | java.sql |
B. | java.awt |
C. | java.lang |
D. | java.swing |
答(Da)案(An):(?)A
分(Fen)析(Xi):(?)
java.awt和(He)javax.swing两(Liang)个(Ge)包(Bao)是(Shi)图(Tu)形(Xing)用(Yong)户(Hu)界(Jie)面(Mian)编(Bian)程(Cheng)所(Suo)需(Xu)要(Yao)的(De)包(Bao);(?)
java.lang包(Bao)则(Ze)提(Ti)供(Gong)了(Liao)Java编(Bian)程(Cheng)中(Zhong)用(Yong)到(Dao)的(De)基(Ji)础(Chu)类(Lei)。(?)
|
A | && |
B. | <> |
C. | if |
D. | = |
答(Da)案(An):(?)AD
分(Fen)析(Xi):(?)
&&是(Shi)逻(Luo)辑(Ji)运(Yun)算(Suan)符(Fu)中(Zhong)的(De)短(Duan)路(Lu)与(Yu);(?)
<>表(Biao)示(Shi)不(Bu)等(Deng)于(Yu),(?)但(Dan)是(Shi)Java中(Zhong)不(Bu)能(Neng)这(Zhe)么(Me)使(Shi)用(Yong),(?)应(Ying)该(Gai)是(Shi)!=;(?)
if不(Bu)是(Shi)运(Yun)算(Suan)符(Fu);(?)
=是(Shi)赋(Fu)值(Zhi)运(Yun)算(Suan)符(Fu)。(?)
|
public class Test1 { public static void main(String[] args) { int a = 0; int c = 0; do{ --c; a = a - 1; } while (a > 0); System.out.println(c); } }
A | 0 |
B. | 1 |
C. | -1 |
D. | 死(Si)循(Xun)环(Huan) |
答(Da)案(An):(?)C
分(Fen)析(Xi):(?)
do-while循(Xun)环(Huan)的(De)特(Te)点(Dian)是(Shi)先(Xian)执(Zhi)行(Xing)后(Hou)判(Pan)断(Duan),(?)所(Suo)以(Yi)代(Dai)码(Ma)先(Xian)执(Zhi)行(Xing)--c操(Cao)作(Zuo),(?)得(De)到(Dao)c为(Wei)-1,(?)之(Zhi)后(Hou)执(Zhi)行(Xing)a=a-1的(De)操(Cao)作(Zuo),(?)得(De)到(Dao)a为(Wei)-1,(?)然(Ran)后(Hou)判(Pan)断(Duan)a是(Shi)否(Fou)大(Da)于(Yu)0,(?)判(Pan)断(Duan)条(Tiao)件(Jian)不(Bu)成(Cheng)立(Li),(?)退(Tui)出(Chu)循(Xun)环(Huan),(?)输(Shu)出(Chu)c为(Wei)-1。(?)
|
A | abstract修(Xiu)饰(Shi)符(Fu)可(Ke)修(Xiu)饰(Shi)字(Zi)段(Duan),(?)方(Fang)法(Fa)和(He)类(Lei) |
B. | 抽(Chou)象(Xiang)方(Fang)法(Fa)的(De)body部(Bu)分(Fen)必(Bi)须(Xu)用(Yong)一(Yi)对(Dui)大(Da)括(Kuo)号(Hao){}包(Bao)住(Zhu) |
C. | 声(Sheng)明(Ming)抽(Chou)象(Xiang)方(Fang)法(Fa),(?)大(Da)括(Kuo)号(Hao)可(Ke)有(You)可(Ke)无(Wu) |
D. | 声(Sheng)明(Ming)抽(Chou)象(Xiang)方(Fang)法(Fa)不(Bu)可(Ke)写(Xie)出(Chu)大(Da)括(Kuo)号(Hao) |
答(Da)案(An):(?)D
分(Fen)析(Xi):(?)
abstract只(Zhi)能(Neng)修(Xiu)饰(Shi)方(Fang)法(Fa)和(He)类(Lei),(?)不(Bu)能(Neng)修(Xiu)饰(Shi)字(Zi)段(Duan);(?)
抽(Chou)象(Xiang)方(Fang)法(Fa)不(Bu)能(Neng)有(You)方(Fang)法(Fa)体(Ti),(?)即(Ji)没(Mei)有(You){};(?)
同(Tong)B。(?)
|
A | 形(Xing)式(Shi)参(Can)数(Shu)可(Ke)被(Bei)视(Shi)为(Wei)local Variable |
B. | 形(Xing)式(Shi)参(Can)数(Shu)可(Ke)被(Bei)视(Shi)为(Wei)local Variable |
C. | 形(Xing)式(Shi)参(Can)数(Shu)可(Ke)被(Bei)所(Suo)有(You)的(De)字(Zi)段(Duan)修(Xiu)饰(Shi)符(Fu)修(Xiu)饰(Shi) |
D. | 形(Xing)式(Shi)参(Can)数(Shu)为(Wei)方(Fang)法(Fa)被(Bei)调(Diao)用(Yong)时(Shi),(?)真(Zhen)正(Zheng)被(Bei)传(Chuan)递(Di)的(De)参(Can)数(Shu) |
答(Da)案(An):(?)A
分(Fen)析(Xi):(?)
local Variable为(Wei)局(Ju)部(Bu)变(Bian)量(Liang),(?)形(Xing)参(Can)和(He)局(Ju)部(Bu)变(Bian)量(Liang)一(Yi)样(Yang)都(Du)只(Zhi)有(You)在(Zai)方(Fang)法(Fa)内(Nei)才(Cai)会(Hui)发(Fa)生(Sheng)作(Zuo)用(Yong),(?)也(Ye)只(Zhi)能(Neng)在(Zai)方(Fang)法(Fa)中(Zhong)使(Shi)用(Yong),(?)不(Bu)会(Hui)在(Zai)方(Fang)法(Fa)外(Wai)可(Ke)见(Jian);(?)
对(Dui)于(Yu)形(Xing)式(Shi)参(Can)数(Shu)只(Zhi)能(Neng)用(Yong)final修(Xiu)饰(Shi)符(Fu),(?)其(Qi)它(Ta)任(Ren)何(He)修(Xiu)饰(Shi)符(Fu)都(Du)会(Hui)引(Yin)起(Qi)编(Bian)译(Yi)器(Qi)错(Cuo)误(Wu);(?)
真(Zhen)正(Zheng)被(Bei)传(Chuan)递(Di)的(De)参(Can)数(Shu)是(Shi)实(Shi)参(Can);(?)
形(Xing)式(Shi)参(Can)数(Shu)可(Ke)是(Shi)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)也(Ye)可(Ke)以(Yi)是(Shi)引(Yin)用(Yong)类(Lei)型(Xing)((?)对(Dui)象(Xiang))(?)。(?)
|
A | 实(Shi)例(Li)方(Fang)法(Fa)可(Ke)直(Zhi)接(Jie)调(Diao)用(Yong)超(Chao)类(Lei)的(De)实(Shi)例(Li)方(Fang)法(Fa) |
B. | 实(Shi)例(Li)方(Fang)法(Fa)可(Ke)直(Zhi)接(Jie)调(Diao)用(Yong)超(Chao)类(Lei)的(De)类(Lei)方(Fang)法(Fa) |
C. | 实(Shi)例(Li)方(Fang)法(Fa)可(Ke)直(Zhi)接(Jie)调(Diao)用(Yong)其(Qi)他(Ta)类(Lei)的(De)实(Shi)例(Li)方(Fang)法(Fa) |
D. | 实(Shi)例(Li)方(Fang)法(Fa)可(Ke)直(Zhi)接(Jie)调(Diao)用(Yong)本(Ben)类(Lei)的(De)类(Lei)方(Fang)法(Fa) |
答(Da)案(An):(?)D
分(Fen)析(Xi):(?)
实(Shi)例(Li)方(Fang)法(Fa)不(Bu)可(Ke)直(Zhi)接(Jie)调(Diao)用(Yong)超(Chao)类(Lei)的(De)私(Si)有(You)实(Shi)例(Li)方(Fang)法(Fa);(?)
实(Shi)例(Li)方(Fang)法(Fa)不(Bu)可(Ke)直(Zhi)接(Jie)调(Diao)用(Yong)超(Chao)类(Lei)的(De)私(Si)有(You)的(De)类(Lei)方(Fang)法(Fa);(?)
要(Yao)看(Kan)访(Fang)问(Wen)权(Quan)限(Xian)。(?)
|
A | 类(Lei) (Class) |
B. | Applet |
C. | Application |
D. | Servlet |
答(Da)案(An):(?)BCD
分(Fen)析(Xi):(?)
是(Shi)Java中(Zhong)的(De)类(Lei),(?)不(Bu)是(Shi)程(Cheng)序(Xu);(?)
内(Nei)嵌(Qian)于(Yu)Web文(Wen)件(Jian)中(Zhong),(?)由(You)浏(Liu)览(Lan)器(Qi)来(Lai)观(Guan)看(Kan)的(De)Applet;(?)
可(Ke)独(Du)立(Li)运(Yun)行(Xing)的(De) Application;(?)
服(Fu)务(Wu)器(Qi)端(Duan)的(De) Servlet。(?)
|
A | 环(Huan)境(Jing)变(Bian)量(Liang)可(Ke)在(Zai)编(Bian)译(Yi)source code时(Shi)指(Zhi)定(Ding) |
B. | 在(Zai)译(Yi)程(Cheng)序(Xu)时(Shi),(?)所(Suo)指(Zhi)定(Ding)的(De)环(Huan)境(Jing)变(Bian)置(Zhi)不(Bu)包(Bao)括(Kuo)class path |
C. | javac —(?)次(Ci)可(Ke)同(Tong)时(Shi)编(Bian)译(Yi)数(Shu)个(Ge)Java 源(Yuan)文(Wen)件(Jian) |
D. | javac.exe能(Neng)指(Zhi)定(Ding)编(Bian)译(Yi)结(Jie)果(Guo)要(Yao)置(Zhi)于(Yu)哪(Na)个(Ge)目(Mu)录(Lu)((?)directory) |
答(Da)案(An):(?)BCD
分(Fen)析(Xi):(?)
环(Huan)境(Jing)变(Bian)量(Liang)一(Yi)般(Ban)都(Du)是(Shi)先(Xian)配(Pei)置(Zhi)好(Hao)再(Zai)编(Bian)译(Yi)源(Yuan)文(Wen)件(Jian)。(?)
|
A | new |
B. | $Usdollars |
C. | 1234 |
D. | car.taxi |
答(Da)案(An):(?)ACD
分(Fen)析(Xi):(?)
new是(Shi)Java的(De)关(Guan)键(Jian)字(Zi);(?)
C. 数(Shu)字(Zi)不(Bu)能(Neng)开(Kai)头(Tou);(?)
D. 不(Bu)能(Neng)有(You)“(?).”(?)。(?)
|
A | 数(Shu)组(Zu)是(Shi)—(?)种(Zhong)对(Dui)象(Xiang) |
B. | 数(Shu)组(Zu)属(Shu)于(Yu)一(Yi)种(Zhong)原(Yuan)生(Sheng)类(Lei) |
C. | int number[]=(31,23,33,43,35,63) |
D. | 数(Shu)组(Zu)的(De)大(Da)小(Xiao)可(Ke)以(Yi)任(Ren)意(Yi)改(Gai)变(Bian) |
答(Da)案(An):(?)BCD
分(Fen)析(Xi):(?)
B. Java中(Zhong)的(De)原(Yuan)生(Sheng)类(Lei)((?)即(Ji)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing))(?)有(You)8种(Zhong),(?)但(Dan)不(Bu)包(Bao)括(Kuo)数(Shu)组(Zu);(?)
C. 语(Yu)法(Fa)错(Cuo)误(Wu),(?)应(Ying)该(Gai)“(?){·(?)·(?)·(?)}”(?),(?)而(?)不(Bu)是(Shi)“(?)(·(?)·(?)·(?))”(?);(?)
D. 数(Shu)组(Zu)的(De)长(Chang)度(Du)一(Yi)旦(Dan)确(Que)定(Ding)就(Jiu)不(Bu)能(Neng)修(Xiu)改(Gai)。(?)
|
A | private |
B. | public |
C. | protected |
D. | static |
答(Da)案(An):(?)ACD
分(Fen)析(Xi):(?)
能(Neng)够(Gou)修(Xiu)饰(Shi)interface的(De)只(Zhi)有(You)public、(?)abstract以(Yi)及(Ji)默(Mo)认(Ren)的(De)三(San)种(Zhong)修(Xiu)饰(Shi)符(Fu)。(?)
|
A | call by value不(Bu)会(Hui)改(Gai)变(Bian)实(Shi)际(Ji)参(Can)数(Shu)的(De)数(Shu)值(Zhi) |
B. | call by reference能(Neng)改(Gai)变(Bian)实(Shi)际(Ji)参(Can)数(Shu)的(De)参(Can)考(Kao)地(Di)址(Zhi) |
C. | call by reference 不(Bu)能(Neng)改(Gai)变(Bian)实(Shi)际(Ji)参(Can)数(Shu)的(De)参(Can)考(Kao)地(Di)址(Zhi) |
D. | call by reference 能(Neng)改(Gai)变(Bian)实(Shi)际(Ji)参(Can)数(Shu)的(De)内(Nei)容(Rong) |
答(Da)案(An):(?)ACD
分(Fen)析(Xi):(?)
Java中(Zhong)参(Can)数(Shu)的(De)传(Chuan)递(Di)有(You)两(Liang)种(Zhong),(?)一(Yi)种(Zhong)是(Shi)按(An)值(Zhi)传(Chuan)递(Di)((?)call by value:(?)传(Chuan)递(Di)的(De)是(Shi)具(Ju)体(Ti)的(De)值(Zhi),(?)如(Ru)基(Ji)础(Chu)数(Shu)据(Ju)类(Lei)型(Xing))(?),(?)另(Ling)一(Yi)种(Zhong)是(Shi)按(An)引(Yin)用(Yong)传(Chuan)递(Di)((?)call by reference:(?)传(Chuan)递(Di)的(De)是(Shi)对(Dui)象(Xiang)的(De)引(Yin)用(Yong),(?)即(Ji)对(Dui)象(Xiang)的(De)存(Cun)储(Chu)地(Di)址(Zhi))(?)。(?)前(Qian)者(Zhe)不(Bu)能(Neng)改(Gai)变(Bian)实(Shi)参(Can)的(De)数(Shu)值(Zhi),(?)后(Hou)者(Zhe)虽(Sui)然(Ran)不(Bu)能(Neng)改(Gai)变(Bian)实(Shi)参(Can)的(De)参(Can)考(Kao)地(Di)址(Zhi),(?)但(Dan)可(Ke)以(Yi)通(Tong)过(Guo)该(Gai)地(Di)址(Zhi)访(Fang)问(Wen)地(Di)址(Zhi)中(Zhong)的(De)内(Nei)容(Rong)从(Cong)而(?)实(Shi)现(Xian)内(Nei)容(Rong)的(De)改(Gai)变(Bian)。(?)
|
A | 在(Zai)类(Lei)方(Fang)法(Fa)中(Zhong)可(Ke)用(Yong)this来(Lai)调(Diao)用(Yong)本(Ben)类(Lei)的(De)类(Lei)办(Ban)法(Fa) |
B. | 在(Zai)类(Lei)方(Fang)法(Fa)中(Zhong)调(Diao)用(Yong)本(Ben)类(Lei)的(De)类(Lei)方(Fang)法(Fa)时(Shi)可(Ke)以(Yi)直(Zhi)接(Jie)调(Diao)用(Yong) |
C. | 在(Zai)类(Lei)方(Fang)法(Fa)中(Zhong)只(Zhi)能(Neng)调(Diao)用(Yong)本(Ben)类(Lei)中(Zhong)的(De)类(Lei)方(Fang)法(Fa) |
D. | 在(Zai)类(Lei)方(Fang)法(Fa)中(Zhong)绝(Jue)对(Dui)不(Bu)能(Neng)调(Diao)用(Yong)实(Shi)例(Li)方(Fang)法(Fa) |
答(Da)案(An):(?)ACD
分(Fen)析(Xi):(?)
类(Lei)方(Fang)法(Fa)是(Shi)在(Zai)类(Lei)加(Jia)载(Zai)时(Shi)被(Bei)加(Jia)载(Zai)到(Dao)方(Fang)法(Fa)区(Qu)存(Cun)储(Chu)的(De),(?)此(Ci)时(Shi)还(Huan)没(Mei)有(You)创(Chuang)建(Jian)对(Dui)象(Xiang),(?)所(Suo)以(Yi)不(Bu)能(Neng)使(Shi)用(Yong)this或(Huo)者(Zhe)super关(Guan)键(Jian)字(Zi);(?)
C. 在(Zai)类(Lei)方(Fang)法(Fa)中(Zhong)还(Huan)可(Ke)以(Yi)调(Diao)用(Yong)其(Qi)他(Ta)类(Lei)的(De)类(Lei)方(Fang)法(Fa);(?)
D. 在(Zai)类(Lei)方(Fang)法(Fa)可(Ke)以(Yi)通(Tong)过(Guo)创(Chuang)建(Jian)对(Dui)象(Xiang)来(Lai)调(Diao)用(Yong)实(Shi)例(Li)方(Fang)法(Fa)。(?)
|
A | Java面(Mian)向(Xiang)对(Dui)象(Xiang)语(Yu)言(Yan)容(Rong)许(Xu)单(Dan)独(Du)的(De)过(Guo)栈(Zhan)与(Yu)函(Han)数(Shu)存(Cun)在(Zai) |
B. | Java面(Mian)向(Xiang)对(Dui)象(Xiang)语(Yu)言(Yan)容(Rong)许(Xu)单(Dan)独(Du)的(De)方(Fang)法(Fa)存(Cun)在(Zai) |
C. | Java语(Yu)言(Yan)中(Zhong)的(De)方(Fang)法(Fa)属(Shu)于(Yu)类(Lei)中(Zhong)的(De)成(Cheng)员(Yuan)((?)member)(?) |
D. | Java语(Yu)言(Yan)中(Zhong)的(De)方(Fang)法(Fa)必(Bi)定(Ding)隶(Li)属(Shu)于(Yu)某(Mou)一(Yi)类(Lei)((?)对(Dui)象(Xiang))(?),(?)调(Diao)用(Yong)方(Fang)法(Fa)与(Yu)过(Guo)程(Cheng)或(Huo)函(Han)数(Shu)相(Xiang)同(Tong) |
答(Da)案(An):(?)ABC
分(Fen)析(Xi):(?)
B. Java不(Bu)允(Yun)许(Xu)单(Dan)独(Du)的(De)方(Fang)法(Fa),(?)过(Guo)程(Cheng)或(Huo)函(Han)数(Shu)存(Cun)在(Zai),(?)需(Xu)要(Yao)隶(Li)属(Shu)于(Yu)某(Mou)一(Yi)类(Lei)中(Zhong);(?)
C. 静(Jing)态(Tai)方(Fang)法(Fa)属(Shu)于(Yu)类(Lei)的(De)成(Cheng)员(Yuan),(?)非(Fei)静(Jing)态(Tai)方(Fang)法(Fa)属(Shu)于(Yu)对(Dui)象(Xiang)的(De)成(Cheng)员(Yuan)。(?)
|
A | 能(Neng)被(Bei)java.exe成(Cheng)功(Gong)运(Yun)行(Xing)的(De)java class文(Wen)件(Jian)必(Bi)须(Xu)有(You)main()方(Fang)法(Fa) |
B. | J2SDK就(Jiu)是(Shi)Java API |
C. | Appletviewer.exe可(Ke)利(Li)用(Yong)jar选(Xuan)项(Xiang)运(Yun)行(Xing).jar文(Wen)件(Jian) |
D. | 能(Neng)被(Bei)Appletviewer成(Cheng)功(Gong)运(Yun)行(Xing)的(De)java class文(Wen)件(Jian)必(Bi)须(Xu)有(You)main()方(Fang)法(Fa) |
答(Da)案(An):(?)BCD
分(Fen)析(Xi):(?)
B. J2SDK是(Shi)sun公(Gong)司(Si)编(Bian)程(Cheng)工(Gong)具(Ju),(?)API是(Shi)指(Zhi)的(De)应(Ying)用(Yong)程(Cheng)序(Xu)编(Bian)程(Cheng)接(Jie)口(Kou);(?)
C. Appletviewer.exe就(Jiu)是(Shi)用(Yong)来(Lai)解(Jie)释(Shi)执(Zhi)行(Xing)java applet应(Ying)用(Yong)程(Cheng)序(Xu)的(De),(?)一(Yi)种(Zhong)执(Zhi)行(Xing)HTML文(Wen)件(Jian)上(Shang)的(De)Java小(Xiao)程(Cheng)序(Xu)类(Lei)的(De)Java浏(Liu)览(Lan)器(Qi);(?)
D. 能(Neng)被(Bei)Appletviewer成(Cheng)功(Gong)运(Yun)行(Xing)的(De)java class文(Wen)件(Jian)可(Ke)以(Yi)没(Mei)有(You)main((?))(?)方(Fang)法(Fa)。(?)
|
A | float |
B. | double |
C. | Float |
D. | Double |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?)
小(Xiao)数(Shu)默(Mo)认(Ren)是(Shi)双(Shuang)精(Jing)度(Du)浮(Fu)点(Dian)型(Xing)即(Ji)double类(Lei)型(Xing)的(De)。(?)
|
A | private |
B. | protected |
C. | final |
D. | abstract |
答(Da)案(An):(?)D
分(Fen)析(Xi):(?)
能(Neng)够(Gou)修(Xiu)饰(Shi)interface的(De)只(Zhi)有(You)public、(?)abstract以(Yi)及(Ji)默(Mo)认(Ren)的(De)三(San)种(Zhong)修(Xiu)饰(Shi)符(Fu)。(?)
|
A | 是(Shi) |
B. | 否(Fou) |
答(Da)案(An):(?)A
分(Fen)析(Xi):(?)
Java创(Chuang)建(Jian)对(Dui)象(Xiang)的(De)几(Ji)种(Zhong)方(Fang)式(Shi):(?)
(1) 用(Yong)new语(Yu)句(Ju)创(Chuang)建(Jian)对(Dui)象(Xiang),(?)这(Zhe)是(Shi)最(Zui)常(Chang)见(Jian)的(De)创(Chuang)建(Jian)对(Dui)象(Xiang)的(De)方(Fang)法(Fa)。(?)
(2) 运(Yun)用(Yong)反(Fan)射(She)手(Shou)段(Duan),调(Diao)用(Yong)java.lang.Class或(Huo)者(Zhe)
java.lang.reflect.Constructor类(Lei)的(De)newInstance()实(Shi)例(Li)方(Fang)法(Fa)。(?)
(3) 调(Diao)用(Yong)对(Dui)象(Xiang)的(De)clone()方(Fang)法(Fa)。(?)
(4) 运(Yun)用(Yong)反(Fan)序(Xu)列(Lie)化(Hua)手(Shou)段(Duan),(?)调(Diao)用(Yong)java.io.ObjectInputStream对(Dui)象(Xiang)的(De)readObject()方(Fang)法(Fa)。(?)
(1)和(He)(2)都(Du)会(Hui)明(Ming)确(Que)的(De)显(Xian)式(Shi)的(De)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu);(?)(3)是(Shi)在(Zai)内(Nei)存(Cun)上(Shang)对(Dui)已(Yi)有(You)对(Dui)象(Xiang)的(De)影(Ying)印(Yin),(?)所(Suo)以(Yi)不(Bu)会(Hui)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu);(?)(4)是(Shi)从(Cong)文(Wen)件(Jian)中(Zhong)还(Huan)原(Yuan)类(Lei)的(De)对(Dui)象(Xiang),(?)也(Ye)不(Bu)会(Hui)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu)。(?)
|
78.存(Cun)在(Zai)使(Shi)i+1< i的(De)数(Shu)么(Me)?
接(Jie)口(Kou)可(Ke)以(Yi)继(Ji)承(Cheng)接(Jie)口(Kou),(?)抽(Chou)象(Xiang)类(Lei)可(Ke)以(Yi)实(Shi)现(Xian)接(Jie)口(Kou),(?)抽(Chou)象(Xiang)类(Lei)可(Ke)以(Yi)继(Ji)承(Cheng)实(Shi)体(Ti)类(Lei)。(?)
int是(Shi)java提(Ti)供(Gong)的(De)8种(Zhong)原(Yuan)始(Shi)数(Shu)据(Ju)类(Lei)型(Xing)之(Zhi)一(Yi)。(?)Java为(Wei)每(Mei)个(Ge)原(Yuan)始(Shi)类(Lei)型(Xing)提(Ti)供(Gong)了(Liao)封(Feng)装(Zhuang)类(Lei),(?)Integer是(Shi)java为(Wei)int提(Ti)供(Gong)的(De)封(Feng)装(Zhuang)类(Lei)。(?)int的(De)默(Mo)认(Ren)值(Zhi)为(Wei)0,(?)而(?)Integer的(De)默(Mo)认(Ren)值(Zhi)为(Wei)null,(?)即(Ji)Integer可(Ke)以(Yi)区(Qu)分(Fen)出(Chu)未(Wei)赋(Fu)值(Zhi)和(He)值(Zhi)为(Wei)0的(De)区(Qu)别(Bie),(?)int则(Ze)无(Wu)法(Fa)表(Biao)达(Da)出(Chu)未(Wei)赋(Fu)值(Zhi)的(De)情(Qing)况(Kuang),(?)例(Li)如(Ru),(?)要(Yao)想(Xiang)表(Biao)达(Da)出(Chu)没(Mei)有(You)参(Can)加(Jia)考(Kao)试(Shi)和(He)考(Kao)试(Shi)成(Cheng)绩(Ji)为(Wei)0的(De)区(Qu)别(Bie),(?)则(Ze)只(Zhi)能(Neng)使(Shi)用(Yong)Integer。(?)在(Zai)JSP开(Kai)发(Fa)中(Zhong),(?)Integer的(De)默(Mo)认(Ren)为(Wei)null,(?)所(Suo)以(Yi)用(Yong)el表(Biao)达(Da)式(Shi)在(Zai)文(Wen)本(Ben)框(Kuang)中(Zhong)显(Xian)示(Shi)时(Shi),(?)值(Zhi)为(Wei)空(Kong)白(Bai)字(Zi)符(Fu)串(Chuan),(?)而(?)int默(Mo)认(Ren)的(De)默(Mo)认(Ren)值(Zhi)为(Wei)0,(?)所(Suo)以(Yi)用(Yong)el表(Biao)达(Da)式(Shi)在(Zai)文(Wen)本(Ben)框(Kuang)中(Zhong)显(Xian)示(Shi)时(Shi),(?)结(Jie)果(Guo)为(Wei)0,(?)所(Suo)以(Yi),(?)int不(Bu)适(Shi)合(He)作(Zuo)为(Wei)web层(Ceng)的(De)表(Biao)单(Dan)数(Shu)据(Ju)的(De)类(Lei)型(Xing)。(?)
在(Zai)Hibernate中(Zhong),(?)如(Ru)果(Guo)将(Jiang)OID定(Ding)义(Yi)为(Wei)Integer类(Lei)型(Xing),(?)那(Na)么(Me)Hibernate就(Jiu)可(Ke)以(Yi)根(Gen)据(Ju)其(Qi)值(Zhi)是(Shi)否(Fou)为(Wei)null而(?)判(Pan)断(Duan)一(Yi)个(Ge)对(Dui)象(Xiang)是(Shi)否(Fou)是(Shi)临(Lin)时(Shi)的(De),(?)如(Ru)果(Guo)将(Jiang)OID定(Ding)义(Yi)为(Wei)了(Liao)int类(Lei)型(Xing),(?)还(Huan)需(Xu)要(Yao)在(Zai)hbm映(Ying)射(She)文(Wen)件(Jian)中(Zhong)设(She)置(Zhi)其(Qi)unsaved-value属(Shu)性(Xing)为(Wei)0。(?)另(Ling)外(Wai),(?)Integer提(Ti)供(Gong)了(Liao)多(Duo)个(Ge)与(Yu)整(Zheng)数(Shu)相(Xiang)关(Guan)的(De)操(Cao)作(Zuo)方(Fang)法(Fa),(?)例(Li)如(Ru),(?)将(Jiang)一(Yi)个(Ge)字(Zi)符(Fu)串(Chuan)转(Zhuan)换(Huan)成(Cheng)整(Zheng)数(Shu),(?)Integer中(Zhong)还(Huan)定(Ding)义(Yi)了(Liao)表(Biao)示(Shi)整(Zheng)数(Shu)的(De)最(Zui)大(Da)值(Zhi)和(He)最(Zui)小(Xiao)值(Zhi)的(De)常(Chang)量(Liang)。(?)
SerialVersionUid,(?)简(Jian)言(Yan)之(Zhi),(?)其(Qi)目(Mu)的(De)是(Shi)序(Xu)列(Lie)化(Hua)对(Dui)象(Xiang)版(Ban)本(Ben)控(Kong)制(Zhi),(?)有(You)关(Guan)各(Ge)版(Ban)本(Ben)反(Fan)序(Xu)列(Lie)化(Hua)时(Shi)是(Shi)否(Fou)兼(Jian)容(Rong)。(?)如(Ru)果(Guo)在(Zai)新(Xin)版(Ban)本(Ben)中(Zhong)这(Zhe)个(Ge)值(Zhi)修(Xiu)改(Gai)了(Liao),(?)新(Xin)版(Ban)本(Ben)就(Jiu)不(Bu)兼(Jian)容(Rong)旧(Jiu)版(Ban)本(Ben),(?)反(Fan)序(Xu)列(Lie)化(Hua)时(Shi)会(Hui)抛(Pao)出(Chu)InvalidClassException异(Yi)常(Chang)。(?)如(Ru)果(Guo)修(Xiu)改(Gai)较(Jiao)小(Xiao),(?)比(Bi)如(Ru)仅(Jin)仅(Jin)是(Shi)增(Zeng)加(Jia)了(Liao)一(Yi)个(Ge)属(Shu)性(Xing),(?)我(Wo)们(Men)希(Xi)望(Wang)向(Xiang)下(Xia)兼(Jian)容(Rong),(?)老(Lao)版(Ban)本(Ben)的(De)数(Shu)据(Ju)都(Du)能(Neng)保(Bao)留(Liu),(?)那(Na)就(Jiu)不(Bu)用(Yong)修(Xiu)改(Gai);(?)如(Ru)果(Guo)我(Wo)们(Men)删(Shan)除(Chu)了(Liao)一(Yi)个(Ge)属(Shu)性(Xing),(?)或(Huo)者(Zhe)更(Geng)改(Gai)了(Liao)类(Lei)的(De)继(Ji)承(Cheng)关(Guan)系(Xi),(?)必(Bi)然(Ran)不(Bu)兼(Jian)容(Rong)旧(Jiu)数(Shu)据(Ju),(?)这(Zhe)时(Shi)就(Jiu)应(Ying)该(Gai)手(Shou)动(Dong)更(Geng)新(Xin)版(Ban)本(Ben)号(Hao),(?)即(Ji)SerialVersionUid。(?)
< a\b[^>]+\bhref="([^"]*)"[^>]*>([\s\S]*?)< /a>
< a\b[^>]+\bhref="([^"]*)"[^>]*>([\s\S]*?)< /a>
答(Da): 110
答(Da):Java程(Cheng)序(Xu)中(Zhong)创(Chuang)建(Jian)新(Xin)的(De)类(Lei)对(Dui)象(Xiang),(?)使(Shi)用(Yong)关(Guan)键(Jian)字(Zi)new是(Shi)正(Zheng)确(Que)的(De); 回(Hui)收(Shou)无(Wu)用(Yong)的(De)类(Lei)对(Dui)象(Xiang)使(Shi)用(Yong)关(Guan)键(Jian)字(Zi)free是(Shi)错(Cuo)误(Wu)的(De).
答(Da):getDeclaredFields(): 可(Ke)以(Yi)获(Huo)取(Qu)所(Suo)有(You)本(Ben)类(Lei)自(Zi)己(Ji)声(Sheng)明(Ming)的(De)方(Fang)法(Fa), 不(Bu)能(Neng)获(Huo)取(Qu)继(Ji)承(Cheng)的(De)方(Fang)法(Fa)
getFields(): 只(Zhi)能(Neng)获(Huo)取(Qu)所(Suo)有(You)public声(Sheng)明(Ming)的(De)方(Fang)法(Fa), 包(Bao)括(Kuo)继(Ji)承(Cheng)的(De)方(Fang)法(Fa)
答(Da):不(Bu)正(Zheng)确(Que)。(?)
通(Tong)常(Chang)情(Qing)况(Kuang)下(Xia),(?)进(Jin)行(Xing)比(Bi)较(Jiao)判(Pan)断(Duan)的(De)处(Chu)理(Li),(?)switch 和(He)if-else可(Ke)以(Yi)互(Hu)相(Xiang)转(Zhuan)换(Huan)来(Lai)写(Xie);(?)if-else作(Zuo)用(Yong)的(De)范(Fan)围(Wei)比(Bi)switch-case作(Zuo)用(Yong)范(Fan)围(Wei)要(Yao)大(Da),(?)但(Dan)是(Shi)当(Dang)switch-case和(He)if-else都(Du)可(Ke)以(Yi)用(Yong)的(De)情(Qing)况(Kuang)下(Xia),(?)通(Tong)常(Chang)推(Tui)荐(Jian)使(Shi)用(Yong)switch-case。(?)
比(Bi)如(Ru):(?)
switch (ch) { case 'a': System.out.println("A"); break; case 'b': System.out.println("B"); break; case 'c': System.out.println("C"); break; case 'd': System.out.println("D"); break; case 'e': System.out.println("E"); break; default: System.out.println("other"); break; }
换(Huan)为(Wei)if-else
if (ch == 'a') { System.out.println("A"); } else if (ch == 'b') { System.out.println('B'); } else if (ch == 'c') { System.out.println("C"); } else if (ch == 'd') { System.out.println("D"); } else if (ch == 'e') { System.out.println("E"); } else { System.out.println("Other"); }
&和(He)&&的(De)联(Lian)系(Xi)(共(Gong)同(Tong)点(Dian)):(?)
&和(He)&&都(Du)可(Ke)以(Yi)用(Yong)作(Zuo)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu),(?)但(Dan)是(Shi)要(Yao)看(Kan)使(Shi)用(Yong)时(Shi)的(De)具(Ju)体(Ti)条(Tiao)件(Jian)来(Lai)决(Jue)定(Ding)。(?)
操(Cao)作(Zuo)数(Shu)1&操(Cao)作(Zuo)数(Shu)2,(?)操(Cao)作(Zuo)数(Shu)1&&操(Cao)作(Zuo)数(Shu)2,(?)
操(Cao)作(Zuo)数(Shu)1&操(Cao)作(Zuo)数(Shu)2,(?)操(Cao)作(Zuo)数(Shu)1&&操(Cao)作(Zuo)数(Shu)2,(?)
情(Qing)况(Kuang)1:(?)当(Dang)上(Shang)述(Shu)的(De)操(Cao)作(Zuo)数(Shu)是(Shi)boolean类(Lei)型(Xing)变(Bian)量(Liang)时(Shi),(?)&和(He)&&都(Du)可(Ke)以(Yi)用(Yong)作(Zuo)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu)。(?)
情(Qing)况(Kuang)2:(?)当(Dang)上(Shang)述(Shu)的(De)表(Biao)达(Da)式(Shi)结(Jie)果(Guo)是(Shi)boolean类(Lei)型(Xing)变(Bian)量(Liang)时(Shi),(?)&和(He)&&都(Du)可(Ke)以(Yi)用(Yong)作(Zuo)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu)。(?)
表(Biao)示(Shi)逻(Luo)辑(Ji)与(Yu)(and),(?)当(Dang)运(Yun)算(Suan)符(Fu)两(Liang)边(Bian)的(De)表(Biao)达(Da)式(Shi)的(De)结(Jie)果(Guo)或(Huo)操(Cao)作(Zuo)数(Shu)都(Du)为(Wei)true时(Shi),(?)整(Zheng)个(Ge)运(Yun)算(Suan)结(Jie)果(Guo)才(Cai)为(Wei)true,(?)否(Fou)则(Ze),(?)只(Zhi)要(Yao)有(You)一(Yi)方(Fang)为(Wei)false,(?)结(Jie)果(Guo)都(Du)为(Wei)false。(?)
表(Biao)示(Shi)逻(Luo)辑(Ji)与(Yu)(and),(?)当(Dang)运(Yun)算(Suan)符(Fu)两(Liang)边(Bian)的(De)表(Biao)达(Da)式(Shi)的(De)结(Jie)果(Guo)或(Huo)操(Cao)作(Zuo)数(Shu)都(Du)为(Wei)true时(Shi),(?)整(Zheng)个(Ge)运(Yun)算(Suan)结(Jie)果(Guo)才(Cai)为(Wei)true,(?)否(Fou)则(Ze),(?)只(Zhi)要(Yao)有(You)一(Yi)方(Fang)为(Wei)false,(?)结(Jie)果(Guo)都(Du)为(Wei)false。(?)
(1)、(?)&逻(Luo)辑(Ji)运(Yun)算(Suan)符(Fu)称(Cheng)为(Wei)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu),(?)&&逻(Luo)辑(Ji)运(Yun)算(Suan)符(Fu)称(Cheng)为(Wei)短(Duan)路(Lu)与(Yu)运(Yun)算(Suan)符(Fu),(?)也(Ye)可(Ke)叫(Jiao)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu)。(?)
对(Dui)于(Yu)&:(?)无(Wu)论(Lun)任(Ren)何(He)情(Qing)况(Kuang),(?)&两(Liang)边(Bian)的(De)操(Cao)作(Zuo)数(Shu)或(Huo)表(Biao)达(Da)式(Shi)都(Du)会(Hui)参(Can)与(Yu)计(Ji)算(Suan)。(?)
对(Dui)于(Yu)&&:(?)当(Dang)&&左(Zuo)边(Bian)的(De)操(Cao)作(Zuo)数(Shu)为(Wei)false或(Huo)左(Zuo)边(Bian)表(Biao)达(Da)式(Shi)结(Jie)果(Guo)为(Wei)false时(Shi),(?)&&右(You)边(Bian)的(De)操(Cao)作(Zuo)数(Shu)或(Huo)表(Biao)达(Da)式(Shi)将(Jiang)不(Bu)参(Can)与(Yu)计(Ji)算(Suan),(?)此(Ci)时(Shi)最(Zui)终(Zhong)结(Jie)果(Guo)都(Du)为(Wei)false。(?)
综(Zong)上(Shang)所(Suo)述(Shu),(?)如(Ru)果(Guo)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)的(De)第(Di)一(Yi)个(Ge)操(Cao)作(Zuo)数(Shu)是(Shi)false或(Huo)第(Di)一(Yi)个(Ge)表(Biao)达(Da)式(Shi)的(De)结(Jie)果(Guo)为(Wei)false时(Shi),(?)对(Dui)于(Yu)第(Di)二(?)个(Ge)操(Cao)作(Zuo)数(Shu)或(Huo)表(Biao)达(Da)式(Shi)是(Shi)否(Fou)进(Jin)行(Xing)运(Yun)算(Suan),(?)对(Dui)最(Zui)终(Zhong)的(De)结(Jie)果(Guo)没(Mei)有(You)影(Ying)响(Xiang),(?)结(Jie)果(Guo)肯(Ken)定(Ding)是(Shi)false。(?)推(Tui)介(Jie)平(Ping)时(Shi)多(Duo)使(Shi)用(Yong)&&,(?)因(Yin)为(Wei)它(Ta)效(Xiao)率(Lu)更(Geng)高(Gao)些(Xie)。(?)
(2)、(?)&还(Huan)可(Ke)以(Yi)用(Yong)作(Zuo)位(Wei)运(Yun)算(Suan)符(Fu)。(?)当(Dang)&两(Liang)边(Bian)操(Cao)作(Zuo)数(Shu)或(Huo)两(Liang)边(Bian)表(Biao)达(Da)式(Shi)的(De)结(Jie)果(Guo)不(Bu)是(Shi)boolean类(Lei)型(Xing)时(Shi),(?)&用(Yong)于(Yu)按(An)位(Wei)与(Yu)运(Yun)算(Suan)符(Fu)的(De)操(Cao)作(Zuo)。(?)
final修(Xiu)饰(Shi)基(Ji)本(Ben)类(Lei)型(Xing)变(Bian)量(Liang),(?)其(Qi)值(Zhi)不(Bu)能(Neng)改(Gai)变(Bian)。(?)
但(Dan)是(Shi)final修(Xiu)饰(Shi)引(Yin)用(Yong)类(Lei)型(Xing)变(Bian)量(Liang),(?)栈(Zhan)内(Nei)存(Cun)中(Zhong)的(De)引(Yin)用(Yong)不(Bu)能(Neng)改(Gai)变(Bian),(?)但(Dan)是(Shi)所(Suo)指(Zhi)向(Xiang)的(De)堆(Dui)内(Nei)存(Cun)中(Zhong)的(De)对(Dui)象(Xiang)的(De)属(Shu)性(Xing)值(Zhi)仍(Reng)旧(Jiu)可(Ke)以(Yi)改(Gai)变(Bian)。(?)
例(Li)如(Ru):
class Test { public static void main(String[] args) { final Dog dog = new Dog("欧(Ou)欧(Ou)"); dog.name = "美(Mei)美(Mei)";//正(Zheng)确(Que) dog = new Dog("亚(Ya)亚(Ya)");//错(Cuo)误(Wu) } }
\d: 匹(Pi)配(Pei)一(Yi)个(Ge)数(Shu)字(Zi)字(Zi)符(Fu)。(?)等(Deng)价(Jia)于(Yu)[0-9]
\D: 匹(Pi)配(Pei)一(Yi)个(Ge)非(Fei)数(Shu)字(Zi)字(Zi)符(Fu)。(?)等(Deng)价(Jia)于(Yu)[^0-9]
\s: 匹(Pi)配(Pei)任(Ren)何(He)空(Kong)白(Bai)字(Zi)符(Fu),(?)包(Bao)括(Kuo)空(Kong)格(Ge)、(?)制(Zhi)表(Biao)符(Fu)、(?)换(Huan)页(Ye)符(Fu)等(Deng)等(Deng)。(?)等(Deng)价(Jia)于(Yu) [ \f\n\r\t\v]
. :(?)匹(Pi)配(Pei)除(Chu)换(Huan)行(Xing)符(Fu) \n 之(Zhi)外(Wai)的(De)任(Ren)何(He)单(Dan)字(Zi)符(Fu)。(?)要(Yao)匹(Pi)配(Pei) . ,(?)请(Qing)使(Shi)用(Yong) \. 。(?)
*:(?)匹(Pi)配(Pei)前(Qian)面(Mian)的(De)子(Zi)表(Biao)达(Da)式(Shi)零(Ling)次(Ci)或(Huo)多(Duo)次(Ci)。(?)要(Yao)匹(Pi)配(Pei) * 字(Zi)符(Fu),(?)请(Qing)使(Shi)用(Yong) \*。(?)
+:(?)匹(Pi)配(Pei)前(Qian)面(Mian)的(De)子(Zi)表(Biao)达(Da)式(Shi)一(Yi)次(Ci)或(Huo)多(Duo)次(Ci)。(?)要(Yao)匹(Pi)配(Pei) + 字(Zi)符(Fu),(?)请(Qing)使(Shi)用(Yong) \+。(?)
|:将(Jiang)两(Liang)个(Ge)匹(Pi)配(Pei)条(Tiao)件(Jian)进(Jin)行(Xing)逻(Luo)辑(Ji)“(?)或(Huo)”(?)((?)Or)(?)运(Yun)算(Suan)
[0-9]{6}:匹(Pi)配(Pei)连(Lian)续(Xu)6个(Ge)0-9之(Zhi)间(Jian)的(De)数(Shu)字(Zi)
\d+:(?)匹(Pi)配(Pei)至(Zhi)少(Shao)一(Yi)个(Ge)0-9之(Zhi)间(Jian)的(De)数(Shu)字(Zi)
A | m.length() |
B. | m.length |
C. | m.length()+1 |
D. | m.length+1 |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?)数(Shu)组(Zu)的(De)长(Chang)度(Du)是(Shi).length
|
A | long l = 4990 |
B. | int i = 4L |
C. | float f = 1.1 |
D. | double d = 34.4 |
答(Da)案(An):(?)AD
分(Fen)析(Xi):(?)B int属(Shu)于(Yu)整(Zheng)数(Shu)型(Xing)应(Ying)该(Gai)是(Shi)int=4 C应(Ying)该(Gai)是(Shi)float f=1.1f
|
A | int k=new String(“(?)aa”(?)) |
B. | String str = String(“(?)bb”(?)) |
C. | char c=74; |
D. | long j=8888; |
答(Da)案(An):(?)CD
分(Fen)析(Xi):(?)A需(Xu)要(Yao)强(Qiang)制(Zhi)类(Lei)型(Xing)转(Zhuan)换(Huan) B String str =new String(“(?)bb”(?))
|
System.out.println(""+("12"=="12"&&"12".equals("12"))); (“(?)12”(?)==”(?)12”(?)&&”(?)12”(?).equals(“(?)12”(?))) “(?)12”(?)==”(?)12”(?)&&”(?)12”(?).equals(“(?)12”(?))
true
false
A | & |
B. | && |
C. | | |
D. | || |
答(Da)案(An):(?)BD
分(Fen)析(Xi):(?)A C是(Shi)逻(Luo)辑(Ji)与(Yu)计(Ji)算(Suan)
|
A | private void example((?)int m)(?){...} |
B. | public int example((?))(?){...} |
C. | public void example2((?))(?){...} |
D. | public int example((?)int m.float f)(?){...} |
答(Da)案(An):(?)AD
分(Fen)析(Xi):(?)BC定(Ding)义(Yi)的(De)是(Shi)新(Xin)函(Han)数(Shu)
|
int i=1;(?) Int j=i++;(?) If((?)((?)j>++j)(?)&&(i++==j))(?){j+=i:} System.out.println(j);
A | 1 |
B. | 2 |
C. | 3 |
D. | 4 |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?) i++先(Xian)引(Yin)用(Yong)后(Hou)。(?)++i 先(Xian)增(Zeng)加(Jia)后(Hou)引(Yin)用(Yong)
|
A | for |
B. | do...while |
C. | while |
D. | while...do |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?) ACD都(Du)不(Bu)一(Yi)定(Ding)进(Jin)行(Xing)循(Xun)环(Huan)
|
package com.bjsxt; public class smaillT{ public static void main(String args[]){ smaillT t=new smaillT(); int b = t.get(); System.out.println(b); } public int get() { try { return 1; }finally{ return 2; } } }
输(Shu)出(Chu)结(Jie)果(Guo):(?)2
int i=9; switch (i) { default: System.out.println("default"); case 0: System.out.println("zero"); break; case 1: System.out.println("one"); break; case 2: System.out.println("two"); break; }
打(Da)印(Yin)结(Jie)果(Guo):(?)
打(Da)印(Yin)结(Jie)果(Guo):(?)
zero
继(Ji)承(Cheng)((?)英(Ying)语(Yu):(?)inheritance)(?)是(Shi)面(Mian)向(Xiang)对(Dui)象(Xiang)软(Ruan)件(Jian)技(Ji)术(Shu)当(Dang)中(Zhong)的(De)一(Yi)个(Ge)概(Gai)念(Nian)。(?)如(Ru)果(Guo)一(Yi)个(Ge)类(Lei)别(Bie)A“(?)继(Ji)承(Cheng)自(Zi)”(?)另(Ling)一(Yi)个(Ge)类(Lei)别(Bie)B,(?)就(Jiu)把(Ba)这(Zhe)个(Ge)A称(Cheng)为(Wei)“(?)B的(De)子(Zi)类(Lei)别(Bie)”(?),(?)而(?)把(Ba)B称(Cheng)为(Wei)“(?)A的(De)父(Fu)类(Lei)别(Bie)”(?)也(Ye)可(Ke)以(Yi)称(Cheng)“(?)B是(Shi)A的(De)超(Chao)类(Lei)”(?)。(?)继(Ji)承(Cheng)可(Ke)以(Yi)使(Shi)得(De)子(Zi)类(Lei)别(Bie)具(Ju)有(You)父(Fu)类(Lei)别(Bie)的(De)各(Ge)种(Zhong)属(Shu)性(Xing)和(He)方(Fang)法(Fa),(?)而(?)不(Bu)需(Xu)要(Yao)再(Zai)次(Ci)编(Bian)写(Xie)相(Xiang)同(Tong)的(De)代(Dai)码(Ma)。(?)在(Zai)令(Ling)子(Zi)类(Lei)别(Bie)继(Ji)承(Cheng)父(Fu)类(Lei)别(Bie)的(De)同(Tong)时(Shi),(?)可(Ke)以(Yi)重(Zhong)新(Xin)定(Ding)义(Yi)某(Mou)些(Xie)属(Shu)性(Xing),(?)并(Bing)重(Zhong)写(Xie)某(Mou)些(Xie)方(Fang)法(Fa),(?)即(Ji)覆(Fu)盖(Gai)父(Fu)类(Lei)别(Bie)的(De)原(Yuan)有(You)属(Shu)性(Xing)和(He)方(Fang)法(Fa),(?)使(Shi)其(Qi)获(Huo)得(De)与(Yu)父(Fu)类(Lei)别(Bie)不(Bu)同(Tong)的(De)功(Gong)能(Neng)。(?)另(Ling)外(Wai),(?)为(Wei)子(Zi)类(Lei)别(Bie)追(Zhui)加(Jia)新(Xin)的(De)属(Shu)性(Xing)和(He)方(Fang)法(Fa)也(Ye)是(Shi)常(Chang)见(Jian)的(De)做(Zuo)法(Fa)。(?) 一(Yi)般(Ban)静(Jing)态(Tai)的(De)面(Mian)向(Xiang)对(Dui)象(Xiang)编(Bian)程(Cheng)语(Yu)言(Yan),(?)继(Ji)承(Cheng)属(Shu)于(Yu)静(Jing)态(Tai)的(De),(?)意(Yi)即(Ji)在(Zai)子(Zi)类(Lei)别(Bie)的(De)行(Xing)为(Wei)在(Zai)编(Bian)译(Yi)期(Qi)就(Jiu)已(Yi)经(Jing)决(Jue)定(Ding),(?)无(Wu)法(Fa)在(Zai)执(Zhi)行(Xing)期(Qi)扩(Kuo)充(Chong)。(?)
那(Na)么(Me)如(Ru)何(He)使(Shi)用(Yong)继(Ji)承(Cheng)呢(Ne)?(?)用(Yong)extends关(Guan)键(Jian)字(Zi)来(Lai)继(Ji)承(Cheng)父(Fu)类(Lei)。(?)
如(Ru)上(Shang)面(Mian)A类(Lei)与(Yu)B类(Lei),(?)当(Dang)写(Xie)继(Ji)承(Cheng)语(Yu)句(Ju)时(Shi),(?) class A类(Lei) extends B类(Lei){ } 其(Qi)中(Zhong)A类(Lei)是(Shi)子(Zi)类(Lei),(?)B类(Lei)是(Shi)父(Fu)类(Lei)。(?)
英(Ying)文(Wen) | 位(Wei)置(Zhi)不(Bu)同(Tong) | 作(Zuo)用(Yong)不(Bu)同(Tong) | |
重(Zhong)载(Zai) | overload | 同(Tong)一(Yi)个(Ge)类(Lei)中(Zhong) |
在(Zai)一(Yi)个(Ge)类(Lei)里(Li)面(Mian)为(Wei)一(Yi)种(Zhong)行(Xing)为(Wei)提(Ti)供(Gong)多(Duo)种(Zhong)实(Shi)现(Xian)方(Fang)式(Shi)并(Bing)提(Ti)高(Gao)可(Ke)读(Du)性(Xing)
现(Xian)方(Fang)式(Shi)并(Bing)提(Ti)高(Gao)可(Ke)读(Du)性(Xing)
|
重(Zhong)写(Xie) | override | 子(Zi)类(Lei)和(He)父(Fu)类(Lei)间(Jian) |
父(Fu)类(Lei)方(Fang)法(Fa)无(Wu)法(Fa)满(Man)足(Zu)子(Zi)类(Lei)的(De)要(Yao)求(Qiu),(?)子(Zi)类(Lei)通(Tong)
过(Guo)方(Fang)法(Fa)重(Zhong)写(Xie)满(Man)足(Zu)要(Yao)求(Qiu)
|
计(Ji)算(Suan)机(Ji)不(Bu)能(Neng)直(Zhi)接(Jie)理(Li)解(Jie)高(Gao)级(Ji)语(Yu)言(Yan),(?)只(Zhi)能(Neng)理(Li)解(Jie)和(He)运(Yun)行(Xing)机(Ji)器(Qi)语(Yu)言(Yan),(?)所(Suo)以(Yi)必(Bi)须(Xu)要(Yao)把(Ba)高(Gao)级(Ji)语(Yu)言(Yan)翻(Fan)译(Yi)成(Cheng)机(Ji)器(Qi)语(Yu)言(Yan),(?)计(Ji)算(Suan)机(Ji)才(Cai)能(Neng)运(Yun)行(Xing)高(Gao)级(Ji)语(Yu)言(Yan)所(Suo)编(Bian)写(Xie)的(De)程(Cheng)序(Xu)。(?)翻(Fan)译(Yi)的(De)方(Fang)式(Shi)有(You)两(Liang)种(Zhong),(?)一(Yi)个(Ge)是(Shi)编(Bian)译(Yi),(?)一(Yi)个(Ge)是(Shi)解(Jie)释(Shi)。(?)
用(Yong)编(Bian)译(Yi)型(Xing)语(Yu)言(Yan)写(Xie)的(De)程(Cheng)序(Xu)执(Zhi)行(Xing)之(Zhi)前(Qian),(?)需(Xu)要(Yao)一(Yi)个(Ge)专(Zhuan)门(Men)的(De)编(Bian)译(Yi)过(Guo)程(Cheng),(?)通(Tong)过(Guo)编(Bian)译(Yi)系(Xi)统(Tong)把(Ba)高(Gao)级(Ji)语(Yu)言(Yan)翻(Fan)译(Yi)成(Cheng)机(Ji)器(Qi)语(Yu)言(Yan),(?)把(Ba)源(Yuan)高(Gao)级(Ji)程(Cheng)序(Xu)编(Bian)译(Yi)成(Cheng)为(Wei)机(Ji)器(Qi)语(Yu)言(Yan)文(Wen)件(Jian),(?)比(Bi)如(Ru)windows下(Xia)的(De)exe文(Wen)件(Jian)。(?)以(Yi)后(Hou)就(Jiu)可(Ke)以(Yi)直(Zhi)接(Jie)运(Yun)行(Xing)而(?)不(Bu)需(Xu)要(Yao)编(Bian)译(Yi)了(Liao),(?)因(Yin)为(Wei)翻(Fan)译(Yi)只(Zhi)做(Zuo)了(Liao)一(Yi)次(Ci),(?)运(Yun)行(Xing)时(Shi)不(Bu)需(Xu)要(Yao)翻(Fan)译(Yi),(?)所(Suo)以(Yi)一(Yi)般(Ban)而(?)言(Yan),(?)编(Bian)译(Yi)型(Xing)语(Yu)言(Yan)的(De)程(Cheng)序(Xu)执(Zhi)行(Xing)效(Xiao)率(Lu)高(Gao)。(?)
解(Jie)释(Shi)型(Xing)语(Yu)言(Yan)在(Zai)运(Yun)行(Xing)的(De)时(Shi)候(Hou)才(Cai)翻(Fan)译(Yi),(?)比(Bi)如(Ru)VB语(Yu)言(Yan),(?)在(Zai)执(Zhi)行(Xing)的(De)时(Shi)候(Hou),(?)专(Zhuan)门(Men)有(You)一(Yi)个(Ge)解(Jie)释(Shi)器(Qi)能(Neng)够(Gou)将(Jiang)VB语(Yu)言(Yan)翻(Fan)译(Yi)成(Cheng)机(Ji)器(Qi)语(Yu)言(Yan),(?)每(Mei)个(Ge)语(Yu)句(Ju)都(Du)是(Shi)执(Zhi)行(Xing)时(Shi)才(Cai)翻(Fan)译(Yi)。(?)这(Zhe)样(Yang)解(Jie)释(Shi)型(Xing)语(Yu)言(Yan)每(Mei)执(Zhi)行(Xing)一(Yi)次(Ci)就(Jiu)要(Yao)翻(Fan)译(Yi)一(Yi)次(Ci),(?)效(Xiao)率(Lu)比(Bi)较(Jiao)低(Di)。(?)
编(Bian)译(Yi)型(Xing)与(Yu)解(Jie)释(Shi)型(Xing),(?)两(Liang)者(Zhe)各(Ge)有(You)利(Li)弊(Bi)。(?)前(Qian)者(Zhe)由(You)于(Yu)程(Cheng)序(Xu)执(Zhi)行(Xing)速(Su)度(Du)快(Kuai),(?)同(Tong)等(Deng)条(Tiao)件(Jian)下(Xia)对(Dui)系(Xi)统(Tong)要(Yao)求(Qiu)较(Jiao)低(Di),(?)因(Yin)此(Ci)像(Xiang)开(Kai)发(Fa)操(Cao)作(Zuo)系(Xi)统(Tong)、(?)大(Da)型(Xing)应(Ying)用(Yong)程(Cheng)序(Xu)、(?)数(Shu)据(Ju)库(Ku)系(Xi)统(Tong)等(Deng)时(Shi)都(Du)采(Cai)用(Yong)它(Ta),(?)像(Xiang)C/C++、(?)Pascal/Object Pascal((?)Delphi)(?)等(Deng)都(Du)是(Shi)编(Bian)译(Yi)语(Yu)言(Yan),(?)而(?)一(Yi)些(Xie)网(Wang)页(Ye)脚(Jiao)本(Ben)、(?)服(Fu)务(Wu)器(Qi)脚(Jiao)本(Ben)及(Ji)辅(Fu)助(Zhu)开(Kai)发(Fa)接(Jie)口(Kou)这(Zhe)样(Yang)的(De)对(Dui)速(Su)度(Du)要(Yao)求(Qiu)不(Bu)高(Gao)、(?)对(Dui)不(Bu)同(Tong)系(Xi)统(Tong)平(Ping)台(Tai)间(Jian)的(De)兼(Jian)容(Rong)性(Xing)有(You)一(Yi)定(Ding)要(Yao)求(Qiu)的(De)程(Cheng)序(Xu)则(Ze)通(Tong)常(Chang)使(Shi)用(Yong)解(Jie)释(Shi)性(Xing)语(Yu)言(Yan),(?)如(Ru)JavaScript、(?)VBScript、(?)Perl、(?)Python、(?)Ruby、(?)MATLAB 等(Deng)等(Deng)。(?)
JAVA语(Yu)言(Yan)是(Shi)一(Yi)种(Zhong)编(Bian)译(Yi)型(Xing)-解(Jie)释(Shi)型(Xing)语(Yu)言(Yan),(?)同(Tong)时(Shi)具(Ju)备(Bei)编(Bian)译(Yi)特(Te)性(Xing)和(He)解(Jie)释(Shi)特(Te)性(Xing)((?)其(Qi)实(Shi),(?)确(Que)切(Qie)的(De)说(Shuo)java就(Jiu)是(Shi)解(Jie)释(Shi)型(Xing)语(Yu)言(Yan),(?)其(Qi)所(Suo)谓(Wei)的(De)编(Bian)译(Yi)过(Guo)程(Cheng)只(Zhi)是(Shi)将(Jiang).java文(Wen)件(Jian)编(Bian)程(Cheng)成(Cheng)平(Ping)台(Tai)无(Wu)关(Guan)的(De)字(Zi)节(Jie)码(Ma).class文(Wen)件(Jian),(?)并(Bing)不(Bu)是(Shi)向(Xiang)C一(Yi)样(Yang)编(Bian)译(Yi)成(Cheng)可(Ke)执(Zhi)行(Xing)的(De)机(Ji)器(Qi)语(Yu)言(Yan),(?)在(Zai)此(Ci)请(Qing)读(Du)者(Zhe)注(Zhu)意(Yi)Java中(Zhong)所(Suo)谓(Wei)的(De)“(?)编(Bian)译(Yi)”(?)和(He)传(Chuan)统(Tong)的(De)“(?)编(Bian)译(Yi)”(?)的(De)区(Qu)别(Bie))(?)。(?)作(Zuo)为(Wei)编(Bian)译(Yi)型(Xing)语(Yu)言(Yan),(?)JAVA程(Cheng)序(Xu)要(Yao)被(Bei)统(Tong)一(Yi)编(Bian)译(Yi)成(Cheng)字(Zi)节(Jie)码(Ma)文(Wen)件(Jian)—(?)—(?)文(Wen)件(Jian)后(Hou)缀(Zhui)是(Shi)class。(?)此(Ci)种(Zhong)文(Wen)件(Jian)在(Zai)java中(Zhong)又(You)称(Cheng)为(Wei)类(Lei)文(Wen)件(Jian)。(?)java类(Lei)文(Wen)件(Jian)不(Bu)能(Neng)再(Zai)计(Ji)算(Suan)机(Ji)上(Shang)直(Zhi)接(Jie)执(Zhi)行(Xing),(?)它(Ta)需(Xu)要(Yao)被(Bei)java虚(Xu)拟(Ni)机(Ji)翻(Fan)译(Yi)成(Cheng)本(Ben)地(Di)的(De)机(Ji)器(Qi)码(Ma)后(Hou)才(Cai)能(Neng)执(Zhi)行(Xing),(?)而(?)java虚(Xu)拟(Ni)机(Ji)的(De)翻(Fan)译(Yi)过(Guo)程(Cheng)则(Ze)是(Shi)解(Jie)释(Shi)性(Xing)的(De)。(?)java字(Zi)节(Jie)码(Ma)文(Wen)件(Jian)首(Shou)先(Xian)被(Bei)加(Jia)载(Zai)到(Dao)计(Ji)算(Suan)机(Ji)内(Nei)存(Cun)中(Zhong),(?)然(Ran)后(Hou)读(Du)出(Chu)一(Yi)条(Tiao)指(Zhi)令(Ling),(?)翻(Fan)译(Yi)一(Yi)条(Tiao)指(Zhi)令(Ling),(?)执(Zhi)行(Xing)一(Yi)条(Tiao)指(Zhi)令(Ling),(?)该(Gai)过(Guo)程(Cheng)被(Bei)称(Cheng)为(Wei)java语(Yu)言(Yan)的(De)解(Jie)释(Shi)执(Zhi)行(Xing),(?)是(Shi)由(You)java虚(Xu)拟(Ni)机(Ji)完(Wan)成(Cheng)的(De)。(?)
&和(He)&&都(Du)可(Ke)以(Yi)用(Yong)作(Zuo)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu),(?)但(Dan)是(Shi)要(Yao)看(Kan)使(Shi)用(Yong)时(Shi)的(De)具(Ju)体(Ti)条(Tiao)件(Jian)来(Lai)决(Jue)定(Ding)。(?)
操(Cao)作(Zuo)数(Shu)1&操(Cao)作(Zuo)数(Shu)2 | 操(Cao)作(Zuo)数(Shu)1&&操(Cao)作(Zuo)数(Shu)2 |
表(Biao)达(Da)式(Shi)1&表(Biao)达(Da)式(Shi)2 | 表(Biao)达(Da)式(Shi)1&&表(Biao)达(Da)式(Shi)2 |
情(Qing)况(Kuang)1:(?)当(Dang)上(Shang)述(Shu)的(De)操(Cao)作(Zuo)数(Shu)是(Shi)boolean类(Lei)型(Xing)变(Bian)量(Liang)时(Shi),(?)&和(He)&&都(Du)可(Ke)以(Yi)用(Yong)作(Zuo)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu)。(?)
情(Qing)况(Kuang)2:(?)当(Dang)上(Shang)述(Shu)的(De)表(Biao)达(Da)式(Shi)结(Jie)果(Guo)是(Shi)boolean类(Lei)型(Xing)变(Bian)量(Liang)时(Shi),(?)&和(He)&&都(Du)可(Ke)以(Yi)用(Yong)作(Zuo)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu)。(?)
表(Biao)示(Shi)逻(Luo)辑(Ji)与(Yu)(and),(?)当(Dang)运(Yun)算(Suan)符(Fu)两(Liang)边(Bian)的(De)表(Biao)达(Da)式(Shi)的(De)结(Jie)果(Guo)或(Huo)操(Cao)作(Zuo)数(Shu)都(Du)为(Wei)true时(Shi),(?)整(Zheng)个(Ge)运(Yun)算(Suan)结(Jie)果(Guo)才(Cai)为(Wei)true,(?)否(Fou)则(Ze),(?)只(Zhi)要(Yao)有(You)一(Yi)方(Fang)为(Wei)false,(?)结(Jie)果(Guo)都(Du)为(Wei)false。(?)
&和(He)&&的(De)区(Qu)别(Bie)(不(Bu)同(Tong)点(Dian)):(?)
(1)、(?)&逻(Luo)辑(Ji)运(Yun)算(Suan)符(Fu)称(Cheng)为(Wei)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu),(?)&&逻(Luo)辑(Ji)运(Yun)算(Suan)符(Fu)称(Cheng)为(Wei)短(Duan)路(Lu)与(Yu)运(Yun)算(Suan)符(Fu),(?)也(Ye)可(Ke)叫(Jiao)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)符(Fu)。(?)
对(Dui)于(Yu)&:(?)无(Wu)论(Lun)任(Ren)何(He)情(Qing)况(Kuang),(?)&两(Liang)边(Bian)的(De)操(Cao)作(Zuo)数(Shu)或(Huo)表(Biao)达(Da)式(Shi)都(Du)会(Hui)参(Can)与(Yu)计(Ji)算(Suan)。(?)
对(Dui)于(Yu)&&:(?)当(Dang)&&左(Zuo)边(Bian)的(De)操(Cao)作(Zuo)数(Shu)为(Wei)false或(Huo)左(Zuo)边(Bian)表(Biao)达(Da)式(Shi)结(Jie)果(Guo)为(Wei)false时(Shi),(?)&&右(You)边(Bian)的(De)操(Cao)作(Zuo)数(Shu)或(Huo)表(Biao)达(Da)式(Shi)将(Jiang)不(Bu)参(Can)与(Yu)计(Ji)算(Suan),(?)此(Ci)时(Shi)最(Zui)终(Zhong)结(Jie)果(Guo)都(Du)为(Wei)false。(?)
综(Zong)上(Shang)所(Suo)述(Shu),(?)如(Ru)果(Guo)逻(Luo)辑(Ji)与(Yu)运(Yun)算(Suan)的(De)第(Di)一(Yi)个(Ge)操(Cao)作(Zuo)数(Shu)是(Shi)false或(Huo)第(Di)一(Yi)个(Ge)表(Biao)达(Da)式(Shi)的(De)结(Jie)果(Guo)为(Wei)false时(Shi),(?)对(Dui)于(Yu)第(Di)二(?)个(Ge)操(Cao)作(Zuo)数(Shu)或(Huo)表(Biao)达(Da)式(Shi)是(Shi)否(Fou)进(Jin)行(Xing)运(Yun)算(Suan),(?)对(Dui)最(Zui)终(Zhong)的(De)结(Jie)果(Guo)没(Mei)有(You)影(Ying)响(Xiang),(?)结(Jie)果(Guo)肯(Ken)定(Ding)是(Shi)false。(?)推(Tui)介(Jie)平(Ping)时(Shi)多(Duo)使(Shi)用(Yong)&&,(?)因(Yin)为(Wei)它(Ta)效(Xiao)率(Lu)更(Geng)高(Gao)些(Xie)。(?)
(2)、(?)&还(Huan)可(Ke)以(Yi)用(Yong)作(Zuo)位(Wei)运(Yun)算(Suan)符(Fu)。(?)当(Dang)&两(Liang)边(Bian)操(Cao)作(Zuo)数(Shu)或(Huo)两(Liang)边(Bian)表(Biao)达(Da)式(Shi)的(De)结(Jie)果(Guo)不(Bu)是(Shi)boolean类(Lei)型(Xing)时(Shi),(?)&用(Yong)于(Yu)按(An)位(Wei)与(Yu)运(Yun)算(Suan)符(Fu)的(De)操(Cao)作(Zuo)。(?)
|和(He)||的(De)区(Qu)别(Bie)和(He)联(Lian)系(Xi)与(Yu)&和(He)&&的(De)区(Qu)别(Bie)和(He)联(Lian)系(Xi)类(Lei)似(Si)
在(Zai)异(Yi)常(Chang)处(Chu)理(Li)时(Shi)提(Ti)供(Gong) finally 块(Kuai)来(Lai)执(Zhi)行(Xing)任(Ren)何(He)清(Qing)除(Chu)操(Cao)作(Zuo)。(?)
如(Ru)果(Guo)有(You)finally的(De)话(Hua),(?)则(Ze)不(Bu)管(Guan)是(Shi)否(Fou)发(Fa)生(Sheng)异(Yi)常(Chang),(?)finally语(Yu)句(Ju)都(Du)会(Hui)被(Bei)执(Zhi)行(Xing),(?)包(Bao)括(Kuo)遇(Yu)到(Dao)return语(Yu)句(Ju)。(?)
finally中(Zhong)语(Yu)句(Ju)不(Bu)执(Zhi)行(Xing)的(De)唯(Wei)一(Yi)情(Qing)况(Kuang)中(Zhong)执(Zhi)行(Xing)了(Liao)System.exit(0)语(Yu)句(Ju)。(?)
A | al.java |
B. | al.class |
C. | al |
D. | 都(Du)对(Dui) |
答(Da)案(An):(?)A
分(Fen)析(Xi):(?).class是(Shi)java的(De)解(Jie)析(Xi)文(Wen)件(Jian)
|
A | 类(Lei)型(Xing)定(Ding)义(Yi)机(Ji)制(Zhi) |
B. | 数(Shu)据(Ju)封(Feng)装(Zhuang)机(Ji)制(Zhi) |
C. | 类(Lei)型(Xing)定(Ding)义(Yi)机(Ji)制(Zhi)和(He)数(Shu)据(Ju)封(Feng)装(Zhuang)机(Ji)制(Zhi) |
D. | 上(Shang)述(Shu)都(Du)不(Bu)对(Dui) |
答(Da)案(An):(?)C
|
A | 用(Yong)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)作(Zuo)为(Wei)参(Can)数(Shu) |
B. | 用(Yong)对(Dui)象(Xiang)作(Zuo)为(Wei)参(Can)数(Shu) |
C. | A和(He)B都(Du)对(Dui) |
D. | A和(He)B都(Du)不(Bu)对(Dui) |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)不(Bu)能(Neng)改(Gai)变(Bian)实(Shi)参(Can)的(De)值(Zhi)
|
A | 安(An)全(Quan)性(Xing) |
B. | 多(Duo)线(Xian)性(Xing) |
C. | 跨(Kua)平(Ping)台(Tai) |
D. | 可(Ke)移(Yi)植(Zhi) |
可(Ke)移(Yi)植(Zhi)
|
A | 构(Gou)造(Zao)函(Han)数(Shu)的(De)返(Fan)回(Hui)类(Lei)型(Xing)只(Zhi)能(Neng)是(Shi)void型(Xing) |
B. | 构(Gou)造(Zao)函(Han)数(Shu)是(Shi)类(Lei)的(De)一(Yi)种(Zhong)特(Te)殊(Shu)函(Han)数(Shu),(?)它(Ta)的(De)方(Fang)法(Fa)名(Ming)必(Bi)须(Xu)与(Yu)类(Lei)名(Ming)相(Xiang)同(Tong) |
C. | 构(Gou)造(Zao)函(Han)数(Shu)的(De)主(Zhu)要(Yao)作(Zuo)用(Yong)是(Shi)完(Wan)成(Cheng)对(Dui)类(Lei)的(De)对(Dui)象(Xiang)的(De)初(Chu)始(Shi)化(Hua)工(Gong)作(Zuo) |
D. | 一(Yi)般(Ban)在(Zai)创(Chuang)建(Jian)新(Xin)对(Dui)象(Xiang)时(Shi),(?)系(Xi)统(Tong)会(Hui)自(Zi)动(Dong)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu) |
答(Da)案(An):(?)A
分(Fen)析(Xi):(?)构(Gou)造(Zao)函(Han)数(Shu)的(De)名(Ming)字(Zi)与(Yu)类(Lei)的(De)名(Ming)字(Zi)相(Xiang)同(Tong),(?)并(Bing)且(Qie)不(Bu)能(Neng)指(Zhi)定(Ding)返(Fan)回(Hui)类(Lei)型(Xing)。(?)
|
A | static |
B. | package |
C. | private |
D. | public |
答(Da)案(An):(?)A
|
package com.bjsxt; public class Test { public static void main(String[] args) { outer: for (int i = 0; i < 3; i++) inner: for (int j = 0; j < 2; j++) { if (j == 1) continue outer; System.out.println(j + " and " + i); } } }
A |
0 and 0
0 and 1
0 and 2
|
B. |
1 and 0
1 and 1
1 and 2
|
C. |
2 and 0
2 and 1
2 and 2
|
答(Da)案(An):(?)A
|
package com.bjsxt; public class Test { private int m; public static void fun() { // some code…(?) } }
A | 将(Jiang)private int m 改(Gai)为(Wei) protected int m |
B. | 将(Jiang)private int m 改(Gai)为(Wei) public int m |
C. | 将(Jiang)private int m 改(Gai)为(Wei) static int m |
D. | 将(Jiang)private int m 改(Gai)为(Wei)int m |
答(Da)案(An):(?)C
|
A | public void example((?)int m)(?){…(?)} |
B. | public int example((?)int m)(?){…(?)} |
C. | public void example2((?))(?){…(?)} |
D. | public int example((?)int m,(?)float f)(?){…(?)} |
答(Da)案(An):(?)ABD
|
父(Fu)类(Lei):(?)
package com.bjsxt; public class FatherClass { public FatherClass() { System.out.println("FatherClassCreate"); } }
子(Zi)类(Lei):(?)
package com.bjsxt; import com.bjsxt.FatherClass; public class ChildClass extends FatherClass { public ChildClass() { System.out.println("ChildClass Create"); } public static void main(String[] args) { FatherClass fc = new FatherClass(); ChildClass cc = new ChildClass(); } }
执(Zhi)行(Xing):(?)C:(?)\>java com.bjsxt.ChildClass
输(Shu)出(Chu)结(Jie)果(Guo):(?)?(?)
答(Da):(?)
FatherClassCreate
FatherClassCreate
ChildClass Create
答(Da):(?)因(Yin)为(Wei)类(Lei)A、(?)B不(Bu)是(Shi)接(Jie)口(Kou),(?)所(Suo)以(Yi)是(Shi)不(Bu)可(Ke)以(Yi)直(Zhi)接(Jie)实(Shi)现(Xian)的(De),(?)但(Dan)可(Ke)以(Yi)将(Jiang)A、(?)B类(Lei)定(Ding)义(Yi)成(Cheng)父(Fu)子(Zi)类(Lei),(?)那(Na)么(Me)C类(Lei)就(Jiu)能(Neng)实(Shi)现(Xian)A、(?)B类(Lei)的(De)功(Gong)能(Neng)了(Liao)。(?)假(Jia)如(Ru)A为(Wei)B的(De)父(Fu)类(Lei),(?)B为(Wei)C的(De)父(Fu)类(Lei),(?)此(Ci)时(Shi)C就(Jiu)能(Neng)使(Shi)用(Yong)A、(?)B的(De)功(Gong)能(Neng)。(?)
答(Da):(?)构(Gou)造(Zao)方(Fang)法(Fa)可(Ke)以(Yi)被(Bei)重(Zhong)载(Zai),(?)但(Dan)是(Shi)构(Gou)造(Zao)方(Fang)法(Fa)不(Bu)能(Neng)被(Bei)重(Zhong)写(Xie),(?)子(Zi)类(Lei)也(Ye)不(Bu)能(Neng)继(Ji)承(Cheng)到(Dao)父(Fu)类(Lei)的(De)构(Gou)造(Zao)方(Fang)法(Fa)
答(Da):(?)范(Fan)围(Wei)是(Shi)-128至(Zhi)127
public class TestDateFormat2 { public static void main(String[] args) throws Exception { //第(Di)一(Yi)步(Bu):(?)将(Jiang)字(Zi)符(Fu)串(Chuan)((?)2013-02-18 10:53:10)(?)转(Zhuan)换(Huan)成(Cheng)日(Ri)期(Qi)Date DateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String sdate="2013-02-18 10:53:10"; Date date=sdf.parse(sdate); System.out.println(date); //第(Di)二(?)步(Bu):(?)将(Jiang)日(Ri)期(Qi)Date转(Zhuan)换(Huan)成(Cheng)字(Zi)符(Fu)串(Chuan)String DateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String sdate2=sdf2.format(date); System.out.println(sdate2); } }
A. | 是(Shi) |
B. | 否(Fou) |
分(Fen)析(Xi):(?)答(Da)案(An):(?)A
Java创(Chuang)建(Jian)对(Dui)象(Xiang)的(De)几(Ji)种(Zhong)方(Fang)式(Shi)((?)重(Zhong)要(Yao))(?):(?)
(1) 用(Yong)new语(Yu)句(Ju)创(Chuang)建(Jian)对(Dui)象(Xiang),(?)这(Zhe)是(Shi)最(Zui)常(Chang)见(Jian)的(De)创(Chuang)建(Jian)对(Dui)象(Xiang)的(De)方(Fang)法(Fa)。(?)
(2) 运(Yun)用(Yong)反(Fan)射(She)手(Shou)段(Duan),调(Diao)用(Yong)java.lang.Class或(Huo)者(Zhe)
java.lang.reflect.Constructor类(Lei)的(De)newInstance()实(Shi)例(Li)方(Fang)法(Fa)。(?)
(3) 调(Diao)用(Yong)对(Dui)象(Xiang)的(De)clone()方(Fang)法(Fa)
(4) 运(Yun)用(Yong)反(Fan)序(Xu)列(Lie)化(Hua)手(Shou)段(Duan),(?)调(Diao)用(Yong)java.io.ObjectInputStream对(Dui)象(Xiang)的(De) readObject()方(Fang)法(Fa)。(?)
(1)和(He)(2)都(Du)会(Hui)明(Ming)确(Que)的(De)显(Xian)式(Shi)的(De)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu) ;(?)(3)是(Shi)在(Zai)内(Nei)存(Cun)上(Shang)对(Dui)已(Yi)有(You)对(Dui)象(Xiang)的(De)影(Ying)印(Yin),(?)所(Suo)以(Yi)不(Bu)会(Hui)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu) ;(?)(4)是(Shi)从(Cong)文(Wen)件(Jian)中(Zhong)还(Huan)原(Yuan)类(Lei)的(De)对(Dui)象(Xiang),(?)也(Ye)不(Bu)会(Hui)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu)。(?)
(1)和(He)(2)都(Du)会(Hui)明(Ming)确(Que)的(De)显(Xian)式(Shi)的(De)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu) ;(?)(3)是(Shi)在(Zai)内(Nei)存(Cun)上(Shang)对(Dui)已(Yi)有(You)对(Dui)象(Xiang)的(De)影(Ying)印(Yin),(?)所(Suo)以(Yi)不(Bu)会(Hui)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu) ;(?)(4)是(Shi)从(Cong)文(Wen)件(Jian)中(Zhong)还(Huan)原(Yuan)类(Lei)的(De)对(Dui)象(Xiang),(?)也(Ye)不(Bu)会(Hui)调(Diao)用(Yong)构(Gou)造(Zao)函(Han)数(Shu)。(?)
|
A. | DES |
B. | MD5 |
C. | DSA |
D. | RSA |
分(Fen)析(Xi):(?)答(Da)案(An):(?)A
分(Fen)析(Xi):(?)常(Chang)用(Yong)的(De)对(Dui)称(Cheng)加(Jia)密(Mi)算(Suan)法(Fa)有(You):(?)DES、(?)3DES、(?)RC2、(?)RC4、(?)AES
常(Chang)用(Yong)的(De)非(Fei)对(Dui)称(Cheng)加(Jia)密(Mi)算(Suan)法(Fa)有(You):(?)RSA、(?)DSA、(?)ECC
使(Shi)用(Yong)单(Dan)向(Xiang)散(San)列(Lie)函(Han)数(Shu)的(De)加(Jia)密(Mi)算(Suan)法(Fa):(?)MD5、(?)SHA
|
publicstaticint get Value(int i){ int result=0; switch(i){ case 1: result=result +i case 2: result=result+i*2 case 3: result=result+i*3 } return result; }
A. | 0 |
B. | 2 |
C. | 4 |
D. | 10 |
答(Da)案(An):(?)C
分(Fen)析(Xi):(?)result = 0 + 2 * 2;
|
publicvoid test(){ String a="a"; String b="b"; String c="c"; c=a+""+b+""+c; System.out.print(c); }
分(Fen)析(Xi):(?)答(Da)案(An): 一(Yi)个(Ge)对(Dui)象(Xiang),(?)因(Yin)为(Wei)编(Bian)译(Yi)期(Qi)进(Jin)行(Xing)了(Liao)优(You)化(Hua),(?)3个(Ge)字(Zi)符(Fu)串(Chuan)常(Chang)量(Liang)直(Zhi)接(Jie)折(Zhe)叠(Die)为(Wei)一(Yi)个(Ge)
答(Da)案(An): -11
分(Fen)析(Xi):(?)小(Xiao)数(Shu)点(Dian)后(Hou)第(Di)一(Yi)位(Wei)=5
正(Zheng)数(Shu):(?)Math.round(11.5)=12
负(Fu)数(Shu):(?)Math.round(-11.5)=-11
小(Xiao)数(Shu)点(Dian)后(Hou)第(Di)一(Yi)位(Wei)<5
正(Zheng)数(Shu):(?)Math.round(11.46)=11
负(Fu)数(Shu):(?)Math.round(-11.46)=-11
小(Xiao)数(Shu)点(Dian)后(Hou)第(Di)一(Yi)位(Wei)>5
正(Zheng)数(Shu):(?)Math.round(11.68)=12
负(Fu)数(Shu):(?)Math.round(-11.68)=-12
根(Gen)据(Ju)上(Shang)面(Mian)例(Li)子(Zi)的(De)运(Yun)行(Xing)结(Jie)果(Guo),(?)我(Wo)们(Men)还(Huan)可(Ke)以(Yi)按(An)照(Zhao)如(Ru)下(Xia)方(Fang)式(Shi)总(Zong)结(Jie),(?)或(Huo)许(Xu)更(Geng)加(Jia)容(Rong)易(Yi)记(Ji)忆(Yi):(?)
参(Can)数(Shu)的(De)小(Xiao)数(Shu)点(Dian)后(Hou)第(Di)一(Yi)位(Wei)<5,(?)运(Yun)算(Suan)结(Jie)果(Guo)为(Wei)参(Can)数(Shu)整(Zheng)数(Shu)部(Bu)分(Fen)。(?)
参(Can)数(Shu)的(De)小(Xiao)数(Shu)点(Dian)后(Hou)第(Di)一(Yi)位(Wei)>5,(?)运(Yun)算(Suan)结(Jie)果(Guo)为(Wei)参(Can)数(Shu)整(Zheng)数(Shu)部(Bu)分(Fen)绝(Jue)对(Dui)值(Zhi)+1,(?)符(Fu)号(Hao)((?)即(Ji)正(Zheng)负(Fu))(?)不(Bu)变(Bian)。(?)
参(Can)数(Shu)的(De)小(Xiao)数(Shu)点(Dian)后(Hou)第(Di)一(Yi)位(Wei)=5,(?)正(Zheng)数(Shu)运(Yun)算(Suan)结(Jie)果(Guo)为(Wei)整(Zheng)数(Shu)部(Bu)分(Fen)+1,(?)负(Fu)数(Shu)运(Yun)算(Suan)结(Jie)果(Guo)为(Wei)整(Zheng)数(Shu)部(Bu)分(Fen)。(?)
终(Zhong)结(Jie):(?)大(Da)于(Yu)五(Wu)全(Quan)部(Bu)加(Jia),(?)等(Deng)于(Yu)五(Wu)正(Zheng)数(Shu)加(Jia),(?)小(Xiao)于(Yu)五(Wu)全(Quan)不(Bu)加(Jia)。(?)
分(Fen)析(Xi):(?)十(Shi)进(Jin)制(Zhi)数(Shu)278的(De)对(Dui)应(Ying)十(Shi)六(Liu)进(Jin)制(Zhi)数(Shu)是(Shi)116
分(Fen)析(Xi):(?)
1:(?)“(?)字(Zi)节(Jie)”(?)是(Shi)byte,(?)“(?)位(Wei)”(?)是(Shi)bit ;(?)
2:(?) 1 byte = 8 bit ;(?)
char 在(Zai)Java中(Zhong)是(Shi)2个(Ge)字(Zi)节(Jie)。(?)java采(Cai)用(Yong)unicode,(?)2个(Ge)字(Zi)节(Jie)((?)16位(Wei))(?)来(Lai)表(Biao)示(Shi)一(Yi)个(Ge)字(Zi)符(Fu)。(?)
short 2个(Ge)字(Zi)节(Jie)
int 4个(Ge)字(Zi)节(Jie)
long 8个(Ge)字(Zi)节(Jie)
分(Fen)析(Xi):(?)'a'是(Shi)char型(Xing),(?)1 是(Shi)int行(Xing),(?)int与(Yu)char相(Xiang)加(Jia),(?)char会(Hui)被(Bei)强(Qiang)转(Zhuan)为(Wei)int行(Xing),(?)char的(De)ASCII码(Ma)对(Dui)应(Ying)的(De)值(Zhi)是(Shi)97,(?)所(Suo)以(Yi)加(Jia)一(Yi)起(Qi)打(Da)印(Yin)98
A. | java程(Cheng)序(Xu)经(Jing)编(Bian)译(Yi)后(Hou)会(Hui)产(Chan)生(Sheng)machine code |
B. | java程(Cheng)序(Xu)经(Jing)编(Bian)译(Yi)后(Hou)会(Hui)产(Chan)生(Sheng) byte code |
C. | java程(Cheng)序(Xu)经(Jing)编(Bian)译(Yi)后(Hou)会(Hui)产(Chan)生(Sheng)DLL |
D. | 以(Yi)上(Shang)都(Du)不(Bu)正(Zheng)确(Que) |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?)java程(Cheng)序(Xu)编(Bian)译(Yi)后(Hou)会(Hui)生(Sheng)成(Cheng)字(Zi)节(Jie)码(Ma)文(Wen)件(Jian),就(Jiu)是(Shi).class文(Wen)件(Jian)
|
A. | class中(Zhong)的(De)constructor不(Bu)可(Ke)省(Sheng)略(Lue) |
B. | constructor必(Bi)须(Xu)与(Yu)class同(Tong)名(Ming),(?)但(Dan)方(Fang)法(Fa)不(Bu)能(Neng)与(Yu)class同(Tong)名(Ming) |
C. | constructor在(Zai)一(Yi)个(Ge)对(Dui)象(Xiang)被(Bei)new时(Shi)执(Zhi)行(Xing) |
D. | 一(Yi)个(Ge)class只(Zhi)能(Neng)定(Ding)义(Yi)一(Yi)个(Ge)constructor |
答(Da)案(An):(?)C
|
a=0;(?)c=0;(?) do{ —(?)—(?)c;(?) a=a-1;(?) }(?)while((?)a>(?)0)(?);(?) 后(Hou),(?)c的(De)值(Zhi)是(Shi)((?))(?)
A. | 0 |
B. | 1 |
C. | -1 |
D. | 死(Si)循(Xun)环(Huan) |
答(Da)案(An):(?)C
do{...}while(...);语(Yu)句(Ju)至(Zhi)少(Shao)执(Zhi)行(Xing)一(Yi)次(Ci)
|
A. | abstract修(Xiu)饰(Shi)符(Fu)可(Ke)修(Xiu)饰(Shi)字(Zi)段(Duan)、(?)方(Fang)法(Fa)和(He)类(Lei) |
B. | 抽(Chou)象(Xiang)方(Fang)法(Fa)的(De)body部(Bu)分(Fen)必(Bi)须(Xu)用(Yong)一(Yi)对(Dui)大(Da)括(Kuo)号(Hao){(?)}(?)包(Bao)住(Zhu) |
C. | 声(Sheng)明(Ming)抽(Chou)象(Xiang)方(Fang)法(Fa),(?)大(Da)括(Kuo)号(Hao)可(Ke)有(You)可(Ke)无(Wu) |
D. | 声(Sheng)明(Ming)抽(Chou)象(Xiang)方(Fang)法(Fa)不(Bu)可(Ke)写(Xie)出(Chu)大(Da)括(Kuo)号(Hao) |
答(Da)案(An):(?)D
分(Fen)析(Xi):(?) abstract不(Bu)能(Neng)修(Xiu)饰(Shi)字(Zi)段(Duan)。(?)既(Ji)然(Ran)是(Shi)抽(Chou)象(Xiang)方(Fang)法(Fa),(?)当(Dang)然(Ran)是(Shi)没(Mei)有(You)实(Shi)现(Xian)的(De)方(Fang)法(Fa),(?)根(Gen)本(Ben)就(Jiu)没(Mei)有(You)body部(Bu)分(Fen)。(?)
|
A. | 形(Xing)式(Shi)参(Can)数(Shu)可(Ke)被(Bei)视(Shi)为(Wei)local variable |
B. | 形(Xing)式(Shi)参(Can)数(Shu)可(Ke)被(Bei)字(Zi)段(Duan)修(Xiu)饰(Shi)符(Fu)修(Xiu)饰(Shi) |
C. | 形(Xing)式(Shi)参(Can)数(Shu)为(Wei)方(Fang)法(Fa)被(Bei)调(Diao)用(Yong)时(Shi),(?)真(Zhen)正(Zheng)被(Bei)传(Chuan)递(Di)的(De)参(Can)数(Shu) |
D. | 形(Xing)式(Shi)参(Can)数(Shu)不(Bu)可(Ke)以(Yi)是(Shi)对(Dui)象(Xiang) |
答(Da)案(An)A:(?)
分(Fen)析(Xi):(?)
A:(?)形(Xing)式(Shi)参(Can)数(Shu)可(Ke)被(Bei)视(Shi)为(Wei)local variable。(?)形(Xing)参(Can)和(He)局(Ju)部(Bu)变(Bian)量(Liang)一(Yi)样(Yang)都(Du)不(Bu)能(Neng)离(Li)开(Kai)方(Fang)法(Fa)。(?)都(Du)只(Zhi)有(You)在(Zai)方(Fang)法(Fa)内(Nei)才(Cai)会(Hui)发(Fa)生(Sheng)作(Zuo)用(Yong),(?)也(Ye)只(Zhi)有(You)在(Zai)方(Fang)法(Fa)中(Zhong)使(Shi)用(Yong),(?)不(Bu)会(Hui)在(Zai)方(Fang)法(Fa)外(Wai)可(Ke)见(Jian)。(?)
B:(?)对(Dui)于(Yu)形(Xing)式(Shi)参(Can)数(Shu)只(Zhi)能(Neng)用(Yong)final修(Xiu)饰(Shi)符(Fu),(?)其(Qi)它(Ta)任(Ren)何(He)修(Xiu)饰(Shi)符(Fu)都(Du)会(Hui)引(Yin)起(Qi)编(Bian)译(Yi)器(Qi)错(Cuo)误(Wu)。(?)但(Dan)是(Shi)用(Yong)这(Zhe)个(Ge)修(Xiu)饰(Shi)符(Fu)也(Ye)有(You)一(Yi)定(Ding)的(De)限(Xian)制(Zhi),(?)就(Jiu)是(Shi)在(Zai)方(Fang)法(Fa)中(Zhong)不(Bu)能(Neng)对(Dui)参(Can)数(Shu)做(Zuo)任(Ren)何(He)修(Xiu)改(Gai)。(?) 不(Bu)过(Guo)一(Yi)般(Ban)情(Qing)况(Kuang)下(Xia),(?)一(Yi)个(Ge)方(Fang)法(Fa)的(De)形(Xing)参(Can)不(Bu)用(Yong)final修(Xiu)饰(Shi)。(?)只(Zhi)有(You)在(Zai)特(Te)殊(Shu)情(Qing)况(Kuang)下(Xia),(?)那(Na)就(Jiu)是(Shi):(?)方(Fang)法(Fa)内(Nei)部(Bu)类(Lei)。(?) 一(Yi)个(Ge)方(Fang)法(Fa)内(Nei)的(De)内(Nei)部(Bu)类(Lei)如(Ru)果(Guo)使(Shi)用(Yong)了(Liao)这(Zhe)个(Ge)方(Fang)法(Fa)的(De)参(Can)数(Shu)或(Huo)者(Zhe)局(Ju)部(Bu)变(Bian)量(Liang)的(De)话(Hua),(?)这(Zhe)个(Ge)参(Can)数(Shu)或(Huo)局(Ju)部(Bu)变(Bian)量(Liang)应(Ying)该(Gai)是(Shi)final。(?)
C:(?)形(Xing)参(Can)的(De)值(Zhi)在(Zai)调(Diao)用(Yong)时(Shi)根(Gen)据(Ju)调(Diao)用(Yong)者(Zhe)更(Geng)改(Gai),(?)实(Shi)参(Can)则(Ze)用(Yong)自(Zi)身(Shen)的(De)值(Zhi)更(Geng)改(Gai)形(Xing)参(Can)的(De)值(Zhi)((?)指(Zhi)针(Zhen)、(?)引(Yin)用(Yong)皆(Jie)在(Zai)此(Ci)列(Lie))(?),(?)也(Ye)就(Jiu)是(Shi)说(Shuo)真(Zhen)正(Zheng)被(Bei)传(Chuan)递(Di)的(De)是(Shi)实(Shi)参(Can)。(?)
D:(?)方(Fang)法(Fa)的(De)参(Can)数(Shu)列(Lie)表(Biao)指(Zhi)定(Ding)要(Yao)传(Chuan)递(Di)给(Gei)方(Fang)法(Fa)什(Shi)么(Me)样(Yang)的(De)信(Xin)息(Xi),(?)采(Cai)用(Yong)的(De)都(Du)是(Shi)对(Dui)象(Xiang)的(De)形(Xing)式(Shi)。(?)因(Yin)此(Ci),(?)在(Zai)参(Can)数(Shu)列(Lie)表(Biao)中(Zhong)必(Bi)须(Xu)指(Zhi)定(Ding)每(Mei)个(Ge)所(Suo)传(Chuan)递(Di)对(Dui)象(Xiang)的(De)类(Lei)型(Xing)及(Ji)名(Ming)字(Zi)。(?)想(Xiang)JAVA中(Zhong)任(Ren)何(He)传(Chuan)递(Di)对(Dui)象(Xiang)的(De)场(Chang)合(He)一(Yi)样(Yang),(?)这(Zhe)里(Li)传(Chuan)递(Di)的(De)实(Shi)际(Ji)上(Shang)也(Ye)是(Shi)引(Yin)用(Yong),(?)并(Bing)且(Qie)引(Yin)用(Yong)的(De)类(Lei)型(Xing)必(Bi)须(Xu)正(Zheng)确(Que)。(?)--《(?)Thinking in JAVA》(?)
|
1、(?)两(Liang)个(Ge)变(Bian)量(Liang)的(De)生(Sheng)命(Ming)周(Zhou)期(Qi)不(Bu)同(Tong)。(?)
成(Cheng)员(Yuan)变(Bian)量(Liang)随(Sui)着(Zhuo)对(Dui)象(Xiang)的(De)创(Chuang)建(Jian)而(?)存(Cun)在(Zai),(?)随(Sui)着(Zhuo)对(Dui)象(Xiang)的(De)被(Bei)回(Hui)收(Shou)而(?)释(Shi)放(Fang)。(?)
静(Jing)态(Tai)变(Bian)量(Liang)随(Sui)着(Zhuo)类(Lei)的(De)加(Jia)载(Zai)而(?)存(Cun)在(Zai),(?)随(Sui)着(Zhuo)类(Lei)的(De)消(Xiao)失(Shi)而(?)消(Xiao)失(Shi)。(?)
2、(?)调(Diao)用(Yong)方(Fang)式(Shi)不(Bu)同(Tong)。(?)
成(Cheng)员(Yuan)变(Bian)量(Liang)只(Zhi)能(Neng)被(Bei)对(Dui)象(Xiang)调(Diao)用(Yong)。(?)
成(Cheng)员(Yuan)变(Bian)量(Liang)只(Zhi)能(Neng)被(Bei)对(Dui)象(Xiang)调(Diao)用(Yong)。(?)
成(Cheng)员(Yuan)变(Bian)量(Liang)只(Zhi)能(Neng)被(Bei)对(Dui)象(Xiang)调(Diao)用(Yong)。(?)
类(Lei)名(Ming)调(Diao)用(Yong) :(?)Person.country
3、(?)别(Bie)名(Ming)不(Bu)同(Tong)。(?)
成(Cheng)员(Yuan)变(Bian)量(Liang)也(Ye)称(Cheng)为(Wei)实(Shi)例(Li)变(Bian)量(Liang)。(?)
静(Jing)态(Tai)变(Bian)量(Liang)称(Cheng)为(Wei)类(Lei)变(Bian)量(Liang)。(?)
4、(?)数(Shu)据(Ju)存(Cun)储(Chu)位(Wei)置(Zhi)不(Bu)同(Tong)。(?)
成(Cheng)员(Yuan)变(Bian)量(Liang)数(Shu)据(Ju)存(Cun)储(Chu)在(Zai)堆(Dui)内(Nei)存(Cun)的(De)对(Dui)象(Xiang)中(Zhong),(?)所(Suo)以(Yi)也(Ye)叫(Jiao)对(Dui)象(Xiang)的(De)特(Te)有(You)数(Shu)据(Ju).
静(Jing)态(Tai)变(Bian)量(Liang)数(Shu)据(Ju)存(Cun)储(Chu)在(Zai)方(Fang)法(Fa)区(Qu)(共(Gong)享(Xiang)数(Shu)据(Ju)区(Qu))的(De)静(Jing)态(Tai)区(Qu),(?)所(Suo)以(Yi)也(Ye)叫(Jiao)对(Dui)象(Xiang)的(De)共(Gong)享(Xiang)数(Shu)据(Ju).
1、(?)用(Yong)final修(Xiu)饰(Shi)的(De)类(Lei)不(Bu)能(Neng)被(Bei)扩(Kuo)展(Zhan),(?)也(Ye)就(Jiu)是(Shi)说(Shuo)不(Bu)可(Ke)能(Neng)有(You)子(Zi)类(Lei);(?)
2、(?)用(Yong)final修(Xiu)饰(Shi)的(De)方(Fang)法(Fa)不(Bu)能(Neng)被(Bei)替(Ti)换(Huan)或(Huo)隐(Yin)藏(Cang):(?)
①(?) 使(Shi)用(Yong)final修(Xiu)饰(Shi)的(De)实(Shi)例(Li)方(Fang)法(Fa)在(Zai)其(Qi)所(Suo)属(Shu)类(Lei)的(De)子(Zi)类(Lei)中(Zhong)不(Bu)能(Neng)被(Bei)替(Ti)换(Huan)((?)overridden)(?);(?)
②(?) 使(Shi)用(Yong)final修(Xiu)饰(Shi)的(De)静(Jing)态(Tai)方(Fang)法(Fa)在(Zai)其(Qi)所(Suo)属(Shu)类(Lei)的(De)子(Zi)类(Lei)中(Zhong)不(Bu)能(Neng)被(Bei)重(Zhong)定(Ding)义(Yi)((?)redefined)(?)而(?)隐(Yin)藏(Cang)((?)hidden)(?);(?)
3、(?)用(Yong)final修(Xiu)饰(Shi)的(De)变(Bian)量(Liang)最(Zui)多(Duo)只(Zhi)能(Neng)赋(Fu)值(Zhi)一(Yi)次(Ci),(?)在(Zai)赋(Fu)值(Zhi)方(Fang)式(Shi)上(Shang)不(Bu)同(Tong)类(Lei)型(Xing)的(De)变(Bian)量(Liang)或(Huo)稍(Shao)有(You)不(Bu)同(Tong):(?)
①(?) 静(Jing)态(Tai)变(Bian)量(Liang)必(Bi)须(Xu)明(Ming)确(Que)赋(Fu)值(Zhi)一(Yi)次(Ci)((?)不(Bu)能(Neng)只(Zhi)使(Shi)用(Yong)类(Lei)型(Xing)缺(Que)省(Sheng)值(Zhi))(?);(?)作(Zuo)为(Wei)类(Lei)成(Cheng)员(Yuan)的(De)静(Jing)态(Tai)变(Bian)量(Liang),(?)赋(Fu)值(Zhi)可(Ke)以(Yi)在(Zai)其(Qi)声(Sheng)明(Ming)中(Zhong)通(Tong)过(Guo)初(Chu)始(Shi)化(Hua)表(Biao)达(Da)式(Shi)完(Wan)成(Cheng),(?)也(Ye)可(Ke)以(Yi)在(Zai)静(Jing)态(Tai)初(Chu)始(Shi)化(Hua)块(Kuai)中(Zhong)进(Jin)行(Xing);(?)作(Zuo)为(Wei)接(Jie)口(Kou)成(Cheng)员(Yuan)的(De)静(Jing)态(Tai)变(Bian)量(Liang),(?)赋(Fu)值(Zhi)只(Zhi)能(Neng)在(Zai)其(Qi)声(Sheng)明(Ming)中(Zhong)通(Tong)过(Guo)初(Chu)始(Shi)化(Hua)表(Biao)达(Da)式(Shi)完(Wan)成(Cheng);(?)
②(?) 实(Shi)例(Li)变(Bian)量(Liang)同(Tong)样(Yang)必(Bi)须(Xu)明(Ming)确(Que)赋(Fu)值(Zhi)一(Yi)次(Ci)((?)不(Bu)能(Neng)只(Zhi)使(Shi)用(Yong)类(Lei)型(Xing)缺(Que)省(Sheng)值(Zhi))(?);(?)赋(Fu)值(Zhi)可(Ke)以(Yi)在(Zai)其(Qi)声(Sheng)明(Ming)中(Zhong)通(Tong)过(Guo)初(Chu)始(Shi)化(Hua)表(Biao)达(Da)式(Shi)完(Wan)成(Cheng),(?)也(Ye)可(Ke)以(Yi)在(Zai)实(Shi)例(Li)初(Chu)始(Shi)化(Hua)块(Kuai)或(Huo)构(Gou)造(Zao)器(Qi)中(Zhong)进(Jin)行(Xing);(?)
③(?) 方(Fang)法(Fa)参(Can)数(Shu)变(Bian)量(Liang)在(Zai)方(Fang)法(Fa)被(Bei)调(Diao)用(Yong)时(Shi)创(Chuang)建(Jian),(?)同(Tong)时(Shi)被(Bei)初(Chu)始(Shi)化(Hua)为(Wei)对(Dui)应(Ying)实(Shi)参(Can)值(Zhi),(?)终(Zhong)止(Zhi)于(Yu)方(Fang)法(Fa)体(Ti) ((?)body)(?)结(Jie)束(Shu),(?)在(Zai)此(Ci)期(Qi)间(Jian)其(Qi)值(Zhi)不(Bu)能(Neng)改(Gai)变(Bian);(?)
④(?) 构(Gou)造(Zao)器(Qi)参(Can)数(Shu)变(Bian)量(Liang)在(Zai)构(Gou)造(Zao)器(Qi)被(Bei)调(Diao)用(Yong)((?)通(Tong)过(Guo)实(Shi)例(Li)创(Chuang)建(Jian)表(Biao)达(Da)式(Shi)或(Huo)显(Xian)示(Shi)的(De)构(Gou)造(Zao)器(Qi)调(Diao)用(Yong))(?)时(Shi)创(Chuang)建(Jian),(?)同(Tong)时(Shi)被(Bei)初(Chu)始(Shi)化(Hua),(?)为(Wei)对(Dui)应(Ying)实(Shi)参(Can)值(Zhi),(?)终(Zhong)止(Zhi)于(Yu)构(Gou)造(Zao)器(Qi)体(Ti)结(Jie)束(Shu),(?)在(Zai)此(Ci)期(Qi)间(Jian)其(Qi)值(Zhi)不(Bu)能(Neng)改(Gai)变(Bian);(?)
⑤(?) 异(Yi)常(Chang)处(Chu)理(Li)器(Qi)参(Can)数(Shu)变(Bian)量(Liang)在(Zai)有(You)异(Yi)常(Chang)被(Bei)try语(Yu)句(Ju)的(De)catch子(Zi)句(Ju)捕(Bu)捉(Zhuo)到(Dao)时(Shi)创(Chuang)建(Jian),(?)同(Tong)时(Shi)被(Bei)初(Chu)始(Shi)化(Hua)为(Wei)实(Shi)际(Ji)的(De)异(Yi)常(Chang)对(Dui)象(Xiang),(?)终(Zhong)止(Zhi)于(Yu)catch语(Yu)句(Ju)块(Kuai)结(Jie)束(Shu),(?)在(Zai)此(Ci)期(Qi)间(Jian)其(Qi)值(Zhi)不(Bu)能(Neng)改(Gai)变(Bian);(?)
⑥(?) 局(Ju)部(Bu)变(Bian)量(Liang)在(Zai)其(Qi)值(Zhi)被(Bei)访(Fang)问(Wen)之(Zhi)前(Qian)必(Bi)须(Xu)被(Bei)明(Ming)确(Que)赋(Fu)值(Zhi);(?)
A. | 除(Chu)以(Yi)10 |
B. | 除(Chu)以(Yi)2 |
C. | 乘(Cheng)以(Yi)2 |
D. | 乘(Cheng)以(Yi)10 |
乘(Cheng)以(Yi)10
分(Fen)析(Xi):(?)可(Ke)以(Yi)看(Kan)个(Ge)例(Li)子(Zi)
101.1 对(Dui)应(Ying)的(De)十(Shi)进(Jin)制(Zhi)为(Wei) 2^2*1 + 2^1*0 + 2^0*1 + 2^-1*1 = 5.5小(Xiao)数(Shu)点(Dian)右(You)移(Yi)一(Yi)位(Wei)
1011 对(Dui)应(Ying)的(De)十(Shi)进(Jin)制(Zhi)为(Wei) 2^3*1 + 2^2*0 + 2^1*1 + 2^0*1 = 11所(Suo)以(Yi)是(Shi)扩(Kuo)大(Da)到(Dao)原(Yuan)来(Lai)的(De)2倍(Bei)
|
答(Da):(?)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)特(Te)征(Zheng)主(Zhu)要(Yao)有(You)以(Yi)下(Xia)几(Ji)个(Ge)方(Fang)面(Mian):(?)
1、(?)抽(Chou)象(Xiang):(?)抽(Chou)象(Xiang)是(Shi)将(Jiang)一(Yi)类(Lei)对(Dui)象(Xiang)的(De)共(Gong)同(Tong)特(Te)征(Zheng)总(Zong)结(Jie)出(Chu)来(Lai)构(Gou)造(Zao)类(Lei)的(De)过(Guo)程(Cheng),(?)包(Bao)括(Kuo)数(Shu)据(Ju)抽(Chou)象(Xiang)和(He)行(Xing)为(Wei)抽(Chou)象(Xiang)两(Liang)方(Fang)面(Mian)。(?)抽(Chou)象(Xiang)只(Zhi)关(Guan)注(Zhu)对(Dui)象(Xiang)有(You)哪(Na)些(Xie)属(Shu)性(Xing)和(He)行(Xing)为(Wei),(?)并(Bing)不(Bu)关(Guan)注(Zhu)这(Zhe)些(Xie)行(Xing)为(Wei)的(De)细(Xi)节(Jie)是(Shi)什(Shi)么(Me)。(?)
2、(?)继(Ji)承(Cheng):(?)继(Ji)承(Cheng)是(Shi)从(Cong)已(Yi)有(You)类(Lei)得(De)到(Dao)继(Ji)承(Cheng)信(Xin)息(Xi)创(Chuang)建(Jian)新(Xin)类(Lei)的(De)过(Guo)程(Cheng)。(?)提(Ti)供(Gong)继(Ji)承(Cheng)信(Xin)息(Xi)的(De)类(Lei)被(Bei)称(Cheng)为(Wei)父(Fu)类(Lei)((?)超(Chao)类(Lei)、(?)基(Ji)类(Lei))(?);(?)得(De)到(Dao)继(Ji)承(Cheng)信(Xin)息(Xi)的(De)类(Lei)被(Bei)称(Cheng)为(Wei)子(Zi)类(Lei)((?)派(Pai)生(Sheng)类(Lei))(?)。(?)继(Ji)承(Cheng)让(Rang)变(Bian)化(Hua)中(Zhong)的(De)软(Ruan)件(Jian)系(Xi)统(Tong)有(You)了(Liao)一(Yi)定(Ding)的(De)延(Yan)续(Xu)性(Xing),(?)同(Tong)时(Shi)继(Ji)承(Cheng)也(Ye)是(Shi)封(Feng)装(Zhuang)程(Cheng)序(Xu)中(Zhong)可(Ke)变(Bian)因(Yin)素(Su)的(De)重(Zhong)要(Yao)手(Shou)段(Duan)((?)如(Ru)果(Guo)不(Bu)能(Neng)理(Li)解(Jie)请(Qing)阅(Yue)读(Du)阎(Yan)宏(Hong)博(Bo)士(Shi)的(De)《(?)Java与(Yu)模(Mo)式(Shi)》(?)或(Huo)《(?)设(She)计(Ji)模(Mo)式(Shi)精(Jing)解(Jie)》(?)中(Zhong)关(Guan)于(Yu)桥(Qiao)梁(Liang)模(Mo)式(Shi)的(De)部(Bu)分(Fen))(?)。(?)
3、(?)封(Feng)装(Zhuang):(?)通(Tong)常(Chang)认(Ren)为(Wei)封(Feng)装(Zhuang)是(Shi)把(Ba)数(Shu)据(Ju)和(He)操(Cao)作(Zuo)数(Shu)据(Ju)的(De)方(Fang)法(Fa)绑(Bang)定(Ding)起(Qi)来(Lai),(?)对(Dui)数(Shu)据(Ju)的(De)访(Fang)问(Wen)只(Zhi)能(Neng)通(Tong)过(Guo)已(Yi)定(Ding)义(Yi)的(De)接(Jie)口(Kou)。(?)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)本(Ben)质(Zhi)就(Jiu)是(Shi)将(Jiang)现(Xian)实(Shi)世(Shi)界(Jie)描(Miao)绘(Hui)成(Cheng)一(Yi)系(Xi)列(Lie)完(Wan)全(Quan)自(Zi)治(Zhi)、(?)封(Feng)闭(Bi)的(De)对(Dui)象(Xiang)。(?)我(Wo)们(Men)在(Zai)类(Lei)中(Zhong)编(Bian)写(Xie)的(De)方(Fang)法(Fa)就(Jiu)是(Shi)对(Dui)实(Shi)现(Xian)细(Xi)节(Jie)的(De)一(Yi)种(Zhong)封(Feng)装(Zhuang);(?)我(Wo)们(Men)编(Bian)写(Xie)一(Yi)个(Ge)类(Lei)就(Jiu)是(Shi)对(Dui)数(Shu)据(Ju)和(He)数(Shu)据(Ju)操(Cao)作(Zuo)的(De)封(Feng)装(Zhuang)。(?)可(Ke)以(Yi)说(Shuo),(?)封(Feng)装(Zhuang)就(Jiu)是(Shi)隐(Yin)藏(Cang)一(Yi)切(Qie)可(Ke)隐(Yin)藏(Cang)的(De)东(Dong)西(Xi),(?)只(Zhi)向(Xiang)外(Wai)界(Jie)提(Ti)供(Gong)最(Zui)简(Jian)单(Dan)的(De)编(Bian)程(Cheng)接(Jie)口(Kou)((?)可(Ke)以(Yi)想(Xiang)想(Xiang)普(Pu)通(Tong)洗(Xi)衣(Yi)机(Ji)和(He)全(Quan)自(Zi)动(Dong)洗(Xi)衣(Yi)机(Ji)的(De)差(Cha)别(Bie),(?)明(Ming)显(Xian)全(Quan)自(Zi)动(Dong)洗(Xi)衣(Yi)机(Ji)封(Feng)装(Zhuang)更(Geng)好(Hao)因(Yin)此(Ci)操(Cao)作(Zuo)起(Qi)来(Lai)更(Geng)简(Jian)单(Dan);(?)我(Wo)们(Men)现(Xian)在(Zai)使(Shi)用(Yong)的(De)智(Zhi)能(Neng)手(Shou)机(Ji)也(Ye)是(Shi)封(Feng)装(Zhuang)得(De)足(Zu)够(Gou)好(Hao)的(De),(?)因(Yin)为(Wei)几(Ji)个(Ge)按(An)键(Jian)就(Jiu)搞(Gao)定(Ding)了(Liao)所(Suo)有(You)的(De)事(Shi)情(Qing))(?)。(?)
4、(?)多(Duo)态(Tai)性(Xing):(?)多(Duo)态(Tai)性(Xing)是(Shi)指(Zhi)允(Yun)许(Xu)不(Bu)同(Tong)子(Zi)类(Lei)型(Xing)的(De)对(Dui)象(Xiang)对(Dui)同(Tong)一(Yi)消(Xiao)息(Xi)作(Zuo)出(Chu)不(Bu)同(Tong)的(De)响(Xiang)应(Ying)。(?)简(Jian)单(Dan)的(De)说(Shuo)就(Jiu)是(Shi)用(Yong)同(Tong)样(Yang)的(De)对(Dui)象(Xiang)引(Yin)用(Yong)调(Diao)用(Yong)同(Tong)样(Yang)的(De)方(Fang)法(Fa)但(Dan)是(Shi)做(Zuo)了(Liao)不(Bu)同(Tong)的(De)事(Shi)情(Qing)。(?)多(Duo)态(Tai)性(Xing)分(Fen)为(Wei)编(Bian)译(Yi)时(Shi)的(De)多(Duo)态(Tai)性(Xing)和(He)运(Yun)行(Xing)时(Shi)的(De)多(Duo)态(Tai)性(Xing)。(?)如(Ru)果(Guo)将(Jiang)对(Dui)象(Xiang)的(De)方(Fang)法(Fa)视(Shi)为(Wei)对(Dui)象(Xiang)向(Xiang)外(Wai)界(Jie)提(Ti)供(Gong)的(De)服(Fu)务(Wu),(?)那(Na)么(Me)运(Yun)行(Xing)时(Shi)的(De)多(Duo)态(Tai)性(Xing)可(Ke)以(Yi)解(Jie)释(Shi)为(Wei):(?)当(Dang)A系(Xi)统(Tong)访(Fang)问(Wen)B系(Xi)统(Tong)提(Ti)供(Gong)的(De)服(Fu)务(Wu)时(Shi),(?)B系(Xi)统(Tong)有(You)多(Duo)种(Zhong)提(Ti)供(Gong)服(Fu)务(Wu)的(De)方(Fang)式(Shi),(?)但(Dan)一(Yi)切(Qie)对(Dui)A系(Xi)统(Tong)来(Lai)说(Shuo)都(Du)是(Shi)透(Tou)明(Ming)的(De)((?)就(Jiu)像(Xiang)电(Dian)动(Dong)剃(Ti)须(Xu)刀(Dao)是(Shi)A系(Xi)统(Tong),(?)它(Ta)的(De)供(Gong)电(Dian)系(Xi)统(Tong)是(Shi)B系(Xi)统(Tong),(?)B系(Xi)统(Tong)可(Ke)以(Yi)使(Shi)用(Yong)电(Dian)池(Chi)供(Gong)电(Dian)或(Huo)者(Zhe)用(Yong)交(Jiao)流(Liu)电(Dian),(?)甚(Shen)至(Zhi)还(Huan)有(You)可(Ke)能(Neng)是(Shi)太(Tai)阳(Yang)能(Neng),(?)A系(Xi)统(Tong)只(Zhi)会(Hui)通(Tong)过(Guo)B类(Lei)对(Dui)象(Xiang)调(Diao)用(Yong)供(Gong)电(Dian)的(De)方(Fang)法(Fa),(?)但(Dan)并(Bing)不(Bu)知(Zhi)道(Dao)供(Gong)电(Dian)系(Xi)统(Tong)的(De)底(Di)层(Ceng)实(Shi)现(Xian)是(Shi)什(Shi)么(Me),(?)究(Jiu)竟(Jing)通(Tong)过(Guo)何(He)种(Zhong)方(Fang)式(Shi)获(Huo)得(De)了(Liao)动(Dong)力(Li))(?)。(?)方(Fang)法(Fa)重(Zhong)载(Zai)((?)overload)(?)实(Shi)现(Xian)的(De)是(Shi)编(Bian)译(Yi)时(Shi)的(De)多(Duo)态(Tai)性(Xing)((?)也(Ye)称(Cheng)为(Wei)前(Qian)绑(Bang)定(Ding))(?),(?)而(?)方(Fang)法(Fa)重(Zhong)写(Xie)((?)override)(?)实(Shi)现(Xian)的(De)是(Shi)运(Yun)行(Xing)时(Shi)的(De)多(Duo)态(Tai)性(Xing)((?)也(Ye)称(Cheng)为(Wei)后(Hou)绑(Bang)定(Ding))(?)。(?)运(Yun)行(Xing)时(Shi)的(De)多(Duo)态(Tai)是(Shi)面(Mian)向(Xiang)对(Dui)象(Xiang)最(Zui)精(Jing)髓(Sui)的(De)东(Dong)西(Xi),(?)要(Yao)实(Shi)现(Xian)多(Duo)态(Tai)需(Xu)要(Yao)做(Zuo)两(Liang)件(Jian)事(Shi):(?)1. 方(Fang)法(Fa)重(Zhong)写(Xie)((?)子(Zi)类(Lei)继(Ji)承(Cheng)父(Fu)类(Lei)并(Bing)重(Zhong)写(Xie)父(Fu)类(Lei)中(Zhong)已(Yi)有(You)的(De)或(Huo)抽(Chou)象(Xiang)的(De)方(Fang)法(Fa))(?);(?)2. 对(Dui)象(Xiang)造(Zao)型(Xing)((?)用(Yong)父(Fu)类(Lei)型(Xing)引(Yin)用(Yong)引(Yin)用(Yong)子(Zi)类(Lei)型(Xing)对(Dui)象(Xiang),(?)这(Zhe)样(Yang)同(Tong)样(Yang)的(De)引(Yin)用(Yong)调(Diao)用(Yong)同(Tong)样(Yang)的(De)方(Fang)法(Fa)就(Jiu)会(Hui)根(Gen)据(Ju)子(Zi)类(Lei)对(Dui)象(Xiang)的(De)不(Bu)同(Tong)而(?)表(Biao)现(Xian)出(Chu)不(Bu)同(Tong)的(De)行(Xing)为(Wei))(?)。(?)
答(Da):不(Bu)正(Zheng)确(Que)。(?)3.4是(Shi)双(Shuang)精(Jing)度(Du)数(Shu),(?)将(Jiang)双(Shuang)精(Jing)度(Du)型(Xing)((?)double)(?)赋(Fu)值(Zhi)给(Gei)浮(Fu)点(Dian)型(Xing)((?)float)(?)属(Shu)于(Yu)下(Xia)转(Zhuan)型(Xing)((?)down-casting,(?)也(Ye)称(Cheng)为(Wei)窄(Zhai)化(Hua))(?)会(Hui)造(Zao)成(Cheng)精(Jing)度(Du)损(Sun)失(Shi),(?)因(Yin)此(Ci)需(Xu)要(Yao)强(Qiang)制(Zhi)类(Lei)型(Xing)转(Zhuan)换(Huan)float f =(float)3.4; 或(Huo)者(Zhe)写(Xie)成(Cheng)float f =3.4F;。(?)
答(Da):(?)对(Dui)于(Yu)short s1 = 1; s1 = s1 + 1;由(You)于(Yu)1是(Shi)int类(Lei)型(Xing),(?)因(Yin)此(Ci)s1+1运(Yun)算(Suan)结(Jie)果(Guo)也(Ye)是(Shi)int 型(Xing),(?)需(Xu)要(Yao)强(Qiang)制(Zhi)转(Zhuan)换(Huan)类(Lei)型(Xing)才(Cai)能(Neng)赋(Fu)值(Zhi)给(Gei)short型(Xing)。(?)而(?)short s1 = 1; s1 += 1;可(Ke)以(Yi)正(Zheng)确(Que)编(Bian)译(Yi),(?)因(Yin)为(Wei)s1+= 1;相(Xiang)当(Dang)于(Yu)s1 = (short)(s1 + 1);其(Qi)中(Zhong)有(You)隐(Yin)含(Han)的(De)强(Qiang)制(Zhi)类(Lei)型(Xing)转(Zhuan)换(Huan)。(?)
答(Da):(?) goto 是(Shi)Java中(Zhong)的(De)保(Bao)留(Liu)字(Zi),(?)在(Zai)目(Mu)前(Qian)版(Ban)本(Ben)的(De)Java中(Zhong)没(Mei)有(You)使(Shi)用(Yong)。(?)((?)根(Gen)据(Ju)James Gosling((?)Java之(Zhi)父(Fu))(?)编(Bian)写(Xie)的(De)《(?)The Java Programming Language》(?)一(Yi)书(Shu)的(De)附(Fu)录(Lu)中(Zhong)给(Gei)出(Chu)了(Liao)一(Yi)个(Ge)Java关(Guan)键(Jian)字(Zi)列(Lie)表(Biao),(?)其(Qi)中(Zhong)有(You)goto和(He)const,(?)但(Dan)是(Shi)这(Zhe)两(Liang)个(Ge)是(Shi)目(Mu)前(Qian)无(Wu)法(Fa)使(Shi)用(Yong)的(De)关(Guan)键(Jian)字(Zi),(?)因(Yin)此(Ci)有(You)些(Xie)地(Di)方(Fang)将(Jiang)其(Qi)称(Cheng)之(Zhi)为(Wei)保(Bao)留(Liu)字(Zi),(?)其(Qi)实(Shi)保(Bao)留(Liu)字(Zi)这(Zhe)个(Ge)词(Ci)应(Ying)该(Gai)有(You)更(Geng)广(Guang)泛(Fan)的(De)意(Yi)义(Yi),(?)因(Yin)为(Wei)熟(Shu)悉(Xi)C语(Yu)言(Yan)的(De)程(Cheng)序(Xu)员(Yuan)都(Du)知(Zhi)道(Dao),(?)在(Zai)系(Xi)统(Tong)类(Lei)库(Ku)中(Zhong)使(Shi)用(Yong)过(Guo)的(De)有(You)特(Te)殊(Shu)意(Yi)义(Yi)的(De)单(Dan)词(Ci)或(Huo)单(Dan)词(Ci)的(De)组(Zu)合(He)都(Du)被(Bei)视(Shi)为(Wei)保(Bao)留(Liu)字(Zi))(?)
答(Da):(?)Java是(Shi)一(Yi)个(Ge)近(Jin)乎(Hu)纯(Chun)洁(Jie)的(De)面(Mian)向(Xiang)对(Dui)象(Xiang)编(Bian)程(Cheng)语(Yu)言(Yan),(?)但(Dan)是(Shi)为(Wei)了(Liao)编(Bian)程(Cheng)的(De)方(Fang)便(Bian)还(Huan)是(Shi)引(Yin)入(Ru)不(Bu)是(Shi)对(Dui)象(Xiang)的(De)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing),(?)但(Dan)是(Shi)为(Wei)了(Liao)能(Neng)够(Gou)将(Jiang)这(Zhe)些(Xie)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)当(Dang)成(Cheng)对(Dui)象(Xiang)操(Cao)作(Zuo),(?)Java为(Wei)每(Mei)一(Yi)个(Ge)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)都(Du)引(Yin)入(Ru)了(Liao)对(Dui)应(Ying)的(De)包(Bao)装(Zhuang)类(Lei)型(Xing)((?)wrapper class)(?),(?)int的(De)包(Bao)装(Zhuang)类(Lei)就(Jiu)是(Shi)Integer,(?)从(Cong)JDK 1.5开(Kai)始(Shi)引(Yin)入(Ru)了(Liao)自(Zi)动(Dong)装(Zhuang)箱(Xiang)/拆(Chai)箱(Xiang)机(Ji)制(Zhi),(?)使(Shi)得(De)二(?)者(Zhe)可(Ke)以(Yi)相(Xiang)互(Hu)转(Zhuan)换(Huan)。(?)
Java 为(Wei)每(Mei)个(Ge)原(Yuan)始(Shi)类(Lei)型(Xing)提(Ti)供(Gong)了(Liao)包(Bao)装(Zhuang)类(Lei)型(Xing):(?)
原(Yuan)始(Shi)类(Lei)型(Xing): boolean,(?)char,(?)byte,(?)short,(?)int,(?)long,(?)float,(?)double
包(Bao)装(Zhuang)类(Lei)型(Xing):(?)Boolean,(?)Character,(?)Byte,(?)Short,(?)Integer,(?)Long,(?)Float,(?)Double
package com.bjsxt; public class AutoUnboxingTest { public static void main(String[] args) { Integer a = new Integer(3); Integer b = 3; // 将(Jiang)3自(Zi)动(Dong)装(Zhuang)箱(Xiang)成(Cheng)Integer类(Lei)型(Xing) int c = 3; System.out.println(a == b); // false 两(Liang)个(Ge)引(Yin)用(Yong)没(Mei)有(You)引(Yin)用(Yong)同(Tong)一(Yi)对(Dui)象(Xiang) System.out.println(a == c); // true a自(Zi)动(Dong)拆(Chai)箱(Xiang)成(Cheng)int类(Lei)型(Xing)再(Zai)和(He)c比(Bi)较(Jiao) } }
补(Bu)充(Chong):(?)最(Zui)近(Jin)还(Huan)遇(Yu)到(Dao)一(Yi)个(Ge)面(Mian)试(Shi)题(Ti),(?)也(Ye)是(Shi)和(He)自(Zi)动(Dong)装(Zhuang)箱(Xiang)和(He)拆(Chai)箱(Xiang)相(Xiang)关(Guan)的(De),(?)代(Dai)码(Ma)如(Ru)下(Xia)所(Suo)示(Shi):(?)
public class Test03 { public static void main(String[] args) { Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150; System.out.println(f1 == f2); System.out.println(f3 == f4); } }
如(Ru)果(Guo)不(Bu)明(Ming)就(Jiu)里(Li)很(Hen)容(Rong)易(Yi)认(Ren)为(Wei)两(Liang)个(Ge)输(Shu)出(Chu)要(Yao)么(Me)都(Du)是(Shi)true要(Yao)么(Me)都(Du)是(Shi)false。(?)首(Shou)先(Xian)需(Xu)要(Yao)注(Zhu)意(Yi)的(De)是(Shi)f1、(?)f2、(?)f3、(?)f4四(Si)个(Ge)变(Bian)量(Liang)都(Du)是(Shi)Integer对(Dui)象(Xiang),(?)所(Suo)以(Yi)下(Xia)面(Mian)的(De)==运(Yun)算(Suan)比(Bi)较(Jiao)的(De)不(Bu)是(Shi)值(Zhi)而(?)是(Shi)引(Yin)用(Yong)。(?)装(Zhuang)箱(Xiang)的(De)本(Ben)质(Zhi)是(Shi)什(Shi)么(Me)呢(Ne)?(?)当(Dang)我(Wo)们(Men)给(Gei)一(Yi)个(Ge)Integer对(Dui)象(Xiang)赋(Fu)一(Yi)个(Ge)int值(Zhi)的(De)时(Shi)候(Hou),(?)会(Hui)调(Diao)用(Yong)Integer类(Lei)的(De)静(Jing)态(Tai)方(Fang)法(Fa)valueOf,(?)如(Ru)果(Guo)看(Kan)看(Kan)valueOf的(De)源(Yuan)代(Dai)码(Ma)就(Jiu)知(Zhi)道(Dao)发(Fa)生(Sheng)了(Liao)什(Shi)么(Me)。(?)
public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i); }
IntegerCache是(Shi)Integer的(De)内(Nei)部(Bu)类(Lei),(?)其(Qi)代(Dai)码(Ma)如(Ru)下(Xia)所(Suo)示(Shi):(?)
/* Cache to support the object identity semantics of autoboxing for values between * -128 and 127 (inclusive) as required by JLS. * * The cache is initialized on first usage. The size of the cache * may be controlled by the {@code -XX:AutoBoxCacheMax=<size>} option. * During VM initialization, java.lang.Integer.IntegerCache.high property * may be set and saved in the private system properties in the * sun.misc.VM class. */ private static class IntegerCache { static final int low = -128; static final int high; static final Integer cache[]; static { // high value may be configured by property int h = 127; String integerCacheHighPropValue = sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high"); if (integerCacheHighPropValue != null) { try { int i = parseInt(integerCacheHighPropValue); i = Math.max(i, 127); // Maximum array size is Integer.MAX_VALUE h = Math.min(i, Integer.MAX_VALUE - (-low) -1); } catch( NumberFormatException nfe) { // If the property cannot be parsed into an int, ignore it. } } high = h; cache = new Integer[(high - low) + 1]; int j = low; for(int k = 0; k < cache.length; k++) cache[k] = new Integer(j++); // range [-128, 127] must be interned (JLS7 5.1.7) assert IntegerCache.high >= 127; } private IntegerCache() {} }
简(Jian)单(Dan)的(De)说(Shuo),(?)如(Ru)果(Guo)字(Zi)面(Mian)量(Liang)的(De)值(Zhi)在(Zai)-128到(Dao)127之(Zhi)间(Jian),(?)那(Na)么(Me)不(Bu)会(Hui)new新(Xin)的(De)Integer对(Dui)象(Xiang),(?)而(?)是(Shi)直(Zhi)接(Jie)引(Yin)用(Yong)常(Chang)量(Liang)池(Chi)中(Zhong)的(De)Integer对(Dui)象(Xiang),(?)所(Suo)以(Yi)上(Shang)面(Mian)的(De)面(Mian)试(Shi)题(Ti)中(Zhong)f1==f2的(De)结(Jie)果(Guo)是(Shi)true,(?)而(?)f3==f4的(De)结(Jie)果(Guo)是(Shi)false。(?)越(Yue)是(Shi)貌(Mao)似(Si)简(Jian)单(Dan)的(De)面(Mian)试(Shi)题(Ti)其(Qi)中(Zhong)的(De)玄(Xuan)机(Ji)就(Jiu)越(Yue)多(Duo),(?)需(Xu)要(Yao)面(Mian)试(Shi)者(Zhe)有(You)相(Xiang)当(Dang)深(Shen)厚(Hou)的(De)功(Gong)力(Li)。(?)
答(Da):(?)&运(Yun)算(Suan)符(Fu)有(You)两(Liang)种(Zhong)用(Yong)法(Fa):(?)(1)按(An)位(Wei)与(Yu);(?)(2)逻(Luo)辑(Ji)与(Yu)。(?)&&运(Yun)算(Suan)符(Fu)是(Shi)短(Duan)路(Lu)与(Yu)运(Yun)算(Suan)。(?)逻(Luo)辑(Ji)与(Yu)跟(Gen)短(Duan)路(Lu)与(Yu)的(De)差(Cha)别(Bie)是(Shi)非(Fei)常(Chang)巨(Ju)大(Da)的(De),(?)虽(Sui)然(Ran)二(?)者(Zhe)都(Du)要(Yao)求(Qiu)运(Yun)算(Suan)符(Fu)左(Zuo)右(You)两(Liang)端(Duan)的(De)布(Bu)尔(?)值(Zhi)都(Du)是(Shi)true整(Zheng)个(Ge)表(Biao)达(Da)式(Shi)的(De)值(Zhi)才(Cai)是(Shi)true。(?)&&之(Zhi)所(Suo)以(Yi)称(Cheng)为(Wei)短(Duan)路(Lu)运(Yun)算(Suan)是(Shi)因(Yin)为(Wei),(?)如(Ru)果(Guo)&&左(Zuo)边(Bian)的(De)表(Biao)达(Da)式(Shi)的(De)值(Zhi)是(Shi)false,(?)右(You)边(Bian)的(De)表(Biao)达(Da)式(Shi)会(Hui)被(Bei)直(Zhi)接(Jie)短(Duan)路(Lu)掉(Diao),(?)不(Bu)会(Hui)进(Jin)行(Xing)运(Yun)算(Suan)。(?)很(Hen)多(Duo)时(Shi)候(Hou)我(Wo)们(Men)可(Ke)能(Neng)都(Du)需(Xu)要(Yao)用(Yong)&&而(?)不(Bu)是(Shi)&,(?)例(Li)如(Ru)在(Zai)验(Yan)证(Zheng)用(Yong)户(Hu)登(Deng)录(Lu)时(Shi)判(Pan)定(Ding)用(Yong)户(Hu)名(Ming)不(Bu)是(Shi)null而(?)且(Qie)不(Bu)是(Shi)空(Kong)字(Zi)符(Fu)串(Chuan),(?)应(Ying)当(Dang)写(Xie)为(Wei):(?)username != null &&!username.equals(“(?)”(?)),(?)二(?)者(Zhe)的(De)顺(Shun)序(Xu)不(Bu)能(Neng)交(Jiao)换(Huan),(?)更(Geng)不(Bu)能(Neng)用(Yong)&运(Yun)算(Suan)符(Fu),(?)因(Yin)为(Wei)第(Di)一(Yi)个(Ge)条(Tiao)件(Jian)如(Ru)果(Guo)不(Bu)成(Cheng)立(Li),(?)根(Gen)本(Ben)不(Bu)能(Neng)进(Jin)行(Xing)字(Zi)符(Fu)串(Chuan)的(De)equals比(Bi)较(Jiao),(?)否(Fou)则(Ze)会(Hui)产(Chan)生(Sheng)NullPointerException异(Yi)常(Chang)。(?)注(Zhu)意(Yi):(?)逻(Luo)辑(Ji)或(Huo)运(Yun)算(Suan)符(Fu)((?)|)(?)和(He)短(Duan)路(Lu)或(Huo)运(Yun)算(Suan)符(Fu)((?)||)(?)的(De)差(Cha)别(Bie)也(Ye)是(Shi)如(Ru)此(Ci)。(?)
补(Bu)充(Chong):(?)如(Ru)果(Guo)你(Ni)熟(Shu)悉(Xi)JavaScript,(?)那(Na)你(Ni)可(Ke)能(Neng)更(Geng)能(Neng)感(Gan)受(Shou)到(Dao)短(Duan)路(Lu)运(Yun)算(Suan)的(De)强(Qiang)大(Da),(?)想(Xiang)成(Cheng)为(Wei) JavaScript的(De)高(Gao)手(Shou)就(Jiu)先(Xian)从(Cong)玩(Wan)转(Zhuan)短(Duan)路(Lu)运(Yun)算(Suan)开(Kai)始(Shi)吧(Ba)。(?)
答(Da):(?)Math.round(11.5)的(De)返(Fan)回(Hui)值(Zhi)是(Shi)12,(?)Math.round(-11.5)的(De)返(Fan)回(Hui)值(Zhi)是(Shi)-11。(?)四(Si)舍(She)五(Wu)入(Ru)的(De)原(Yuan)理(Li)是(Shi)在(Zai)参(Can)数(Shu)上(Shang)加(Jia)0.5然(Ran)后(Hou)进(Jin)行(Xing)下(Xia)取(Qu)整(Zheng)。(?)
答(Da):(?)早(Zao)期(Qi)的(De)JDK中(Zhong),(?)switch((?)expr)(?)中(Zhong),(?)expr可(Ke)以(Yi)是(Shi)byte、(?)short、(?)char、(?)int。(?)从(Cong)1.5版(Ban)开(Kai)始(Shi),(?)Java中(Zhong)引(Yin)入(Ru)了(Liao)枚(Mei)举(Ju)类(Lei)型(Xing)((?)enum)(?),(?)expr也(Ye)可(Ke)以(Yi)是(Shi)枚(Mei)举(Ju),(?)从(Cong)JDK 1.7版(Ban)开(Kai)始(Shi),(?)还(Huan)可(Ke)以(Yi)是(Shi)字(Zi)符(Fu)串(Chuan)((?)String)(?)。(?)长(Chang)整(Zheng)型(Xing)((?)long)(?)是(Shi)不(Bu)可(Ke)以(Yi)的(De)。(?)
答(Da):(?) 2 << 3((?)左(Zuo)移(Yi)3位(Wei)相(Xiang)当(Dang)于(Yu)乘(Cheng)以(Yi)2的(De)3次(Ci)方(Fang),(?)右(You)移(Yi)3位(Wei)相(Xiang)当(Dang)于(Yu)除(Chu)以(Yi)2的(De)3次(Ci)方(Fang))(?)。(?)
补(Bu)充(Chong):(?) 我(Wo)们(Men)为(Wei)编(Bian)写(Xie)的(De)类(Lei)重(Zhong)写(Xie)hashCode方(Fang)法(Fa)时(Shi),(?)可(Ke)能(Neng)会(Hui)看(Kan)到(Dao)如(Ru)下(Xia)所(Suo)示(Shi)的(De)代(Dai)码(Ma),(?)其(Qi)实(Shi)我(Wo)们(Men)不(Bu)太(Tai)理(Li)解(Jie)为(Wei)什(Shi)么(Me)要(Yao)使(Shi)用(Yong)这(Zhe)样(Yang)的(De)乘(Cheng)法(Fa)运(Yun)算(Suan)来(Lai)产(Chan)生(Sheng)哈(Ha)希(Xi)码(Ma)((?)散(San)列(Lie)码(Ma))(?),(?)而(?)且(Qie)为(Wei)什(Shi)么(Me)这(Zhe)个(Ge)数(Shu)是(Shi)个(Ge)素(Su)数(Shu),(?)为(Wei)什(Shi)么(Me)通(Tong)常(Chang)选(Xuan)择(Ze)31这(Zhe)个(Ge)数(Shu)?(?)前(Qian)两(Liang)个(Ge)问(Wen)题(Ti)的(De)答(Da)案(An)你(Ni)可(Ke)以(Yi)自(Zi)己(Ji)百(Bai)度(Du)一(Yi)下(Xia),(?)选(Xuan)择(Ze)31是(Shi)因(Yin)为(Wei)可(Ke)以(Yi)用(Yong)移(Yi)位(Wei)和(He)减(Jian)法(Fa)运(Yun)算(Suan)来(Lai)代(Dai)替(Ti)乘(Cheng)法(Fa),(?)从(Cong)而(?)得(De)到(Dao)更(Geng)好(Hao)的(De)性(Xing)能(Neng)。(?)说(Shuo)到(Dao)这(Zhe)里(Li)你(Ni)可(Ke)能(Neng)已(Yi)经(Jing)想(Xiang)到(Dao)了(Liao):(?)31 * num <==> (num << 5) - num,(?)左(Zuo)移(Yi)5位(Wei)相(Xiang)当(Dang)于(Yu)乘(Cheng)以(Yi)2的(De)5次(Ci)方(Fang)((?)32)(?)再(Zai)减(Jian)去(Qu)自(Zi)身(Shen)就(Jiu)相(Xiang)当(Dang)于(Yu)乘(Cheng)以(Yi)31。(?)现(Xian)在(Zai)的(De)VM都(Du)能(Neng)自(Zi)动(Dong)完(Wan)成(Cheng)这(Zhe)个(Ge)优(You)化(Hua)。(?)
package com.bjsxt; public class PhoneNumber { private int areaCode; private String prefix; private String lineNumber; @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + areaCode; result = prime * result + ((lineNumber == null) ? 0 : lineNumber.hashCode()); result = prime * result + ((prefix == null) ? 0 : prefix.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; PhoneNumber other = (PhoneNumber) obj; if (areaCode != other.areaCode) return false; if (lineNumber == null) { if (other.lineNumber != null) return false; } else if (!lineNumber.equals(other.lineNumber)) return false; if (prefix == null) { if (other.prefix != null) return false; } else if (!prefix.equals(other.prefix)) return false; return true; } }
答(Da):(?)在(Zai)最(Zui)外(Wai)层(Ceng)循(Xun)环(Huan)前(Qian)加(Jia)一(Yi)个(Ge)标(Biao)记(Ji)如(Ru)A,(?)然(Ran)后(Hou)用(Yong)break A;可(Ke)以(Yi)跳(Tiao)出(Chu)多(Duo)重(Zhong)循(Xun)环(Huan)。(?)((?)Java中(Zhong)支(Zhi)持(Chi)带(Dai)标(Biao)签(Qian)的(De)break和(He)continue语(Yu)句(Ju),(?)作(Zuo)用(Yong)有(You)点(Dian)类(Lei)似(Si)于(Yu)C和(He)C++中(Zhong)的(De)goto语(Yu)句(Ju),(?)但(Dan)是(Shi)就(Jiu)像(Xiang)要(Yao)避(Bi)免(Mian)使(Shi)用(Yong)goto一(Yi)样(Yang),(?)应(Ying)该(Gai)避(Bi)免(Mian)使(Shi)用(Yong)带(Dai)标(Biao)签(Qian)的(De)break和(He)continue,(?)因(Yin)为(Wei)它(Ta)不(Bu)会(Hui)让(Rang)你(Ni)的(De)程(Cheng)序(Xu)变(Bian)得(De)更(Geng)优(You)雅(Ya),(?)很(Hen)多(Duo)时(Shi)候(Hou)甚(Shen)至(Zhi)有(You)相(Xiang)反(Fan)的(De)作(Zuo)用(Yong),(?)所(Suo)以(Yi)这(Zhe)种(Zhong)语(Yu)法(Fa)其(Qi)实(Shi)不(Bu)知(Zhi)道(Dao)更(Geng)好(Hao))(?)
答(Da):(?)构(Gou)造(Zao)器(Qi)不(Bu)能(Neng)被(Bei)继(Ji)承(Cheng),(?)因(Yin)此(Ci)不(Bu)能(Neng)被(Bei)重(Zhong)写(Xie),(?)但(Dan)可(Ke)以(Yi)被(Bei)重(Zhong)载(Zai)。(?)
答(Da):(?)不(Bu)对(Dui),(?)如(Ru)果(Guo)两(Liang)个(Ge)对(Dui)象(Xiang)x和(He)y满(Man)足(Zu)x.equals(y) == true,(?)它(Ta)们(Men)的(De)哈(Ha)希(Xi)码(Ma)((?)hash code)(?)应(Ying)当(Dang)相(Xiang)同(Tong)。(?)Java对(Dui)于(Yu)eqauls方(Fang)法(Fa)和(He)hashCode方(Fang)法(Fa)是(Shi)这(Zhe)样(Yang)规(Gui)定(Ding)的(De):(?)(1)如(Ru)果(Guo)两(Liang)个(Ge)对(Dui)象(Xiang)相(Xiang)同(Tong)((?)equals方(Fang)法(Fa)返(Fan)回(Hui)true)(?),(?)那(Na)么(Me)它(Ta)们(Men)的(De)hashCode值(Zhi)一(Yi)定(Ding)要(Yao)相(Xiang)同(Tong);(?)(2)如(Ru)果(Guo)两(Liang)个(Ge)对(Dui)象(Xiang)的(De)hashCode相(Xiang)同(Tong),(?)它(Ta)们(Men)并(Bing)不(Bu)一(Yi)定(Ding)相(Xiang)同(Tong)。(?)当(Dang)然(Ran),(?)你(Ni)未(Wei)必(Bi)要(Yao)按(An)照(Zhao)要(Yao)求(Qiu)去(Qu)做(Zuo),(?)但(Dan)是(Shi)如(Ru)果(Guo)你(Ni)违(Wei)背(Bei)了(Liao)上(Shang)述(Shu)原(Yuan)则(Ze)就(Jiu)会(Hui)发(Fa)现(Xian)在(Zai)使(Shi)用(Yong)容(Rong)器(Qi)时(Shi),(?)相(Xiang)同(Tong)的(De)对(Dui)象(Xiang)可(Ke)以(Yi)出(Chu)现(Xian)在(Zai)Set集(Ji)合(He)中(Zhong),(?)同(Tong)时(Shi)增(Zeng)加(Jia)新(Xin)元(Yuan)素(Su)的(De)效(Xiao)率(Lu)会(Hui)大(Da)大(Da)下(Xia)降(Jiang)((?)对(Dui)于(Yu)使(Shi)用(Yong)哈(Ha)希(Xi)存(Cun)储(Chu)的(De)系(Xi)统(Tong),(?)如(Ru)果(Guo)哈(Ha)希(Xi)码(Ma)频(Pin)繁(Fan)的(De)冲(Chong)突(Tu)将(Jiang)会(Hui)造(Zao)成(Cheng)存(Cun)取(Qu)性(Xing)能(Neng)急(Ji)剧(Ju)下(Xia)降(Jiang))(?)。(?)
补(Bu)充(Chong):(?)关(Guan)于(Yu)equals和(He)hashCode方(Fang)法(Fa),(?)很(Hen)多(Duo)Java程(Cheng)序(Xu)都(Du)知(Zhi)道(Dao),(?)但(Dan)很(Hen)多(Duo)人(Ren)也(Ye)就(Jiu)是(Shi)仅(Jin)仅(Jin)知(Zhi)道(Dao)而(?)已(Yi),(?)在(Zai)Joshua Bloch的(De)大(Da)作(Zuo)《(?)Effective Java》(?)((?)很(Hen)多(Duo)软(Ruan)件(Jian)公(Gong)司(Si),(?)《(?)Effective Java》(?)、(?)《(?)Java编(Bian)程(Cheng)思(Si)想(Xiang)》(?)以(Yi)及(Ji)《(?)重(Zhong)构(Gou):(?)改(Gai)善(Shan)既(Ji)有(You)代(Dai)码(Ma)质(Zhi)量(Liang)》(?)是(Shi)Java程(Cheng)序(Xu)员(Yuan)必(Bi)看(Kan)书(Shu)籍(Ji),(?)如(Ru)果(Guo)你(Ni)还(Huan)没(Mei)看(Kan)过(Guo),(?)那(Na)就(Jiu)赶(Gan)紧(Jin)去(Qu)亚(Ya)马(Ma)逊(Xun)买(Mai)一(Yi)本(Ben)吧(Ba))(?)中(Zhong)是(Shi)这(Zhe)样(Yang)介(Jie)绍(Shao)equals方(Fang)法(Fa)的(De):(?)首(Shou)先(Xian)equals方(Fang)法(Fa)必(Bi)须(Xu)满(Man)足(Zu)自(Zi)反(Fan)性(Xing)((?)x.equals(x)必(Bi)须(Xu)返(Fan)回(Hui)true)(?)、(?)对(Dui)称(Cheng)性(Xing)((?)x.equals(y)返(Fan)回(Hui)true时(Shi),(?)y.equals(x)也(Ye)必(Bi)须(Xu)返(Fan)回(Hui)true)(?)、(?)传(Chuan)递(Di)性(Xing)((?)x.equals(y)和(He)y.equals(z)都(Du)返(Fan)回(Hui)true时(Shi),(?)x.equals(z)也(Ye)必(Bi)须(Xu)返(Fan)回(Hui)true)(?)和(He)一(Yi)致(Zhi)性(Xing)((?)当(Dang)x和(He)y引(Yin)用(Yong)的(De)对(Dui)象(Xiang)信(Xin)息(Xi)没(Mei)有(You)被(Bei)修(Xiu)改(Gai)时(Shi),(?)多(Duo)次(Ci)调(Diao)用(Yong)x.equals(y)应(Ying)该(Gai)得(De)到(Dao)同(Tong)样(Yang)的(De)返(Fan)回(Hui)值(Zhi))(?),(?)而(?)且(Qie)对(Dui)于(Yu)任(Ren)何(He)非(Fei)null值(Zhi)的(De)引(Yin)用(Yong)x,(?)x.equals(null)必(Bi)须(Xu)返(Fan)回(Hui)false。(?)实(Shi)现(Xian)高(Gao)质(Zhi)量(Liang)的(De)equals方(Fang)法(Fa)的(De)诀(Jue)窍(Qiao)包(Bao)括(Kuo):(?)1. 使(Shi)用(Yong)==操(Cao)作(Zuo)符(Fu)检(Jian)查(Cha)“(?)参(Can)数(Shu)是(Shi)否(Fou)为(Wei)这(Zhe)个(Ge)对(Dui)象(Xiang)的(De)引(Yin)用(Yong)”(?);(?)2. 使(Shi)用(Yong)instanceof操(Cao)作(Zuo)符(Fu)检(Jian)查(Cha)“(?)参(Can)数(Shu)是(Shi)否(Fou)为(Wei)正(Zheng)确(Que)的(De)类(Lei)型(Xing)”(?);(?)3. 对(Dui)于(Yu)类(Lei)中(Zhong)的(De)关(Guan)键(Jian)属(Shu)性(Xing),(?)检(Jian)查(Cha)参(Can)数(Shu)传(Chuan)入(Ru)对(Dui)象(Xiang)的(De)属(Shu)性(Xing)是(Shi)否(Fou)与(Yu)之(Zhi)相(Xiang)匹(Pi)配(Pei);(?)4. 编(Bian)写(Xie)完(Wan)equals方(Fang)法(Fa)后(Hou),(?)问(Wen)自(Zi)己(Ji)它(Ta)是(Shi)否(Fou)满(Man)足(Zu)对(Dui)称(Cheng)性(Xing)、(?)传(Chuan)递(Di)性(Xing)、(?)一(Yi)致(Zhi)性(Xing);(?)5. 重(Zhong)写(Xie)equals时(Shi)总(Zong)是(Shi)要(Yao)重(Zhong)写(Xie)hashCode;(?)6. 不(Bu)要(Yao)将(Jiang)equals方(Fang)法(Fa)参(Can)数(Shu)中(Zhong)的(De)Object对(Dui)象(Xiang)替(Ti)换(Huan)为(Wei)其(Qi)他(Ta)的(De)类(Lei)型(Xing),(?)在(Zai)重(Zhong)写(Xie)时(Shi)不(Bu)要(Yao)忘(Wang)掉(Diao)@Override注(Zhu)解(Jie)。(?)
答(Da):(?)是(Shi)值(Zhi)传(Chuan)递(Di)。(?)Java 编(Bian)程(Cheng)语(Yu)言(Yan)只(Zhi)有(You)值(Zhi)传(Chuan)递(Di)参(Can)数(Shu)。(?)当(Dang)一(Yi)个(Ge)对(Dui)象(Xiang)实(Shi)例(Li)作(Zuo)为(Wei)一(Yi)个(Ge)参(Can)数(Shu)被(Bei)传(Chuan)递(Di)到(Dao)方(Fang)法(Fa)中(Zhong)时(Shi),(?)参(Can)数(Shu)的(De)值(Zhi)就(Jiu)是(Shi)对(Dui)该(Gai)对(Dui)象(Xiang)的(De)引(Yin)用(Yong)。(?)对(Dui)象(Xiang)的(De)属(Shu)性(Xing)可(Ke)以(Yi)在(Zai)被(Bei)调(Diao)用(Yong)过(Guo)程(Cheng)中(Zhong)被(Bei)改(Gai)变(Bian),(?)但(Dan)对(Dui)象(Xiang)的(De)引(Yin)用(Yong)是(Shi)永(Yong)远(Yuan)不(Bu)会(Hui)改(Gai)变(Bian)的(De)。(?)C++和(He)C#中(Zhong)可(Ke)以(Yi)通(Tong)过(Guo)传(Chuan)引(Yin)用(Yong)或(Huo)传(Chuan)输(Shu)出(Chu)参(Can)数(Shu)来(Lai)改(Gai)变(Bian)传(Chuan)入(Ru)的(De)参(Can)数(Shu)的(De)值(Zhi)。(?)
补(Bu)充(Chong):(?)Java中(Zhong)没(Mei)有(You)传(Chuan)引(Yin)用(Yong)实(Shi)在(Zai)是(Shi)非(Fei)常(Chang)的(De)不(Bu)方(Fang)便(Bian),(?)这(Zhe)一(Yi)点(Dian)在(Zai)Java 8中(Zhong)仍(Reng)然(Ran)没(Mei)有(You)得(De)到(Dao)改(Gai)进(Jin),(?)正(Zheng)是(Shi)如(Ru)此(Ci)在(Zai)Java编(Bian)写(Xie)的(De)代(Dai)码(Ma)中(Zhong)才(Cai)会(Hui)出(Chu)现(Xian)大(Da)量(Liang)的(De)Wrapper类(Lei)((?)将(Jiang)需(Xu)要(Yao)通(Tong)过(Guo)方(Fang)法(Fa)调(Diao)用(Yong)修(Xiu)改(Gai)的(De)引(Yin)用(Yong)置(Zhi)于(Yu)一(Yi)个(Ge)Wrapper类(Lei)中(Zhong),(?)再(Zai)将(Jiang)Wrapper对(Dui)象(Xiang)传(Chuan)入(Ru)方(Fang)法(Fa))(?),(?)这(Zhe)样(Yang)的(De)做(Zuo)法(Fa)只(Zhi)会(Hui)让(Rang)代(Dai)码(Ma)变(Bian)得(De)臃(Yong)肿(Zhong),(?)尤(You)其(Qi)是(Shi)让(Rang)从(Cong)C和(He)C++转(Zhuan)型(Xing)为(Wei)Java程(Cheng)序(Xu)员(Yuan)的(De)开(Kai)发(Fa)者(Zhe)无(Wu)法(Fa)容(Rong)忍(Ren)。(?)
答(Da):(?)Java的(De)三(San)大(Da)特(Te)征(Zheng)之(Zhi)一(Yi),(?)多(Duo)态(Tai)机(Ji)制(Zhi),(?)包(Bao)括(Kuo)方(Fang)法(Fa)的(De)多(Duo)态(Tai)和(He)对(Dui)象(Xiang)的(De)多(Duo)态(Tai);(?)方(Fang)法(Fa)的(De)重(Zhong)载(Zai)和(He)重(Zhong)写(Xie)都(Du)是(Shi)实(Shi)现(Xian)多(Duo)态(Tai)的(De)方(Fang)式(Shi),(?)区(Qu)别(Bie)在(Zai)于(Yu)前(Qian)者(Zhe)实(Shi)现(Xian)的(De)是(Shi)编(Bian)译(Yi)时(Shi)的(De)多(Duo)态(Tai)性(Xing),(?)而(?)后(Hou)者(Zhe)实(Shi)现(Xian)的(De)是(Shi)运(Yun)行(Xing)时(Shi)的(De)多(Duo)态(Tai)性(Xing)。(?)重(Zhong)载(Zai)((?)overload)(?)发(Fa)生(Sheng)在(Zai)同(Tong)一(Yi)个(Ge)类(Lei)中(Zhong),(?)相(Xiang)同(Tong)的(De)方(Fang)法(Fa),(?)如(Ru)果(Guo)有(You)不(Bu)同(Tong)的(De)参(Can)数(Shu)列(Lie)表(Biao)((?)参(Can)数(Shu)类(Lei)型(Xing)不(Bu)同(Tong)、(?)参(Can)数(Shu)个(Ge)数(Shu)不(Bu)同(Tong)或(Huo)者(Zhe)二(?)者(Zhe)都(Du)不(Bu)同(Tong))(?)则(Ze)视(Shi)为(Wei)重(Zhong)载(Zai);(?)重(Zhong)写(Xie)((?)override)(?)发(Fa)生(Sheng)在(Zai)子(Zi)类(Lei)与(Yu)父(Fu)类(Lei)之(Zhi)间(Jian)也(Ye)就(Jiu)是(Shi)继(Ji)承(Cheng)机(Ji)制(Zhi)当(Dang)中(Zhong),(?)当(Dang)父(Fu)类(Lei)的(De)方(Fang)法(Fa)不(Bu)能(Neng)满(Man)足(Zu)子(Zi)类(Lei)的(De)要(Yao)求(Qiu),(?)此(Ci)时(Shi)子(Zi)类(Lei)重(Zhong)写(Xie)父(Fu)类(Lei)的(De)方(Fang)法(Fa);(?)要(Yao)求(Qiu):(?)方(Fang)法(Fa)名(Ming)、(?)形(Xing)参(Can)列(Lie)表(Biao)相(Xiang)同(Tong);(?)返(Fan)回(Hui)值(Zhi)类(Lei)型(Xing)和(He)异(Yi)常(Chang)类(Lei)型(Xing),(?)子(Zi)类(Lei)小(Xiao)于(Yu)等(Deng)于(Yu)父(Fu)类(Lei);(?)访(Fang)问(Wen)权(Quan)限(Xian),(?)子(Zi)类(Lei)大(Da)于(Yu)等(Deng)于(Yu)父(Fu)类(Lei),(?)切(Qie)记(Ji)父(Fu)类(Lei)的(De)私(Si)有(You)方(Fang)法(Fa)以(Yi)及(Ji)被(Bei)final修(Xiu)饰(Shi)的(De)方(Fang)法(Fa)不(Bu)能(Neng)被(Bei)子(Zi)类(Lei)重(Zhong)写(Xie);(?)重(Zhong)载(Zai)对(Dui)返(Fan)回(Hui)类(Lei)型(Xing)没(Mei)有(You)特(Te)殊(Shu)的(De)要(Yao)求(Qiu)。(?)
答(Da):(?)方(Fang)法(Fa)的(De)重(Zhong)载(Zai),(?)即(Ji)使(Shi)返(Fan)回(Hui)值(Zhi)类(Lei)型(Xing)不(Bu)同(Tong),(?)也(Ye)不(Bu)能(Neng)改(Gai)变(Bian)实(Shi)现(Xian)功(Gong)能(Neng)相(Xiang)同(Tong)或(Huo)类(Lei)似(Si)这(Zhe)一(Yi)既(Ji)定(Ding)事(Shi)实(Shi);(?)同(Tong)时(Shi)方(Fang)法(Fa)的(De)重(Zhong)载(Zai)只(Zhi)是(Shi)要(Yao)求(Qiu)两(Liang)同(Tong)三(San)不(Bu)同(Tong),(?)即(Ji)在(Zai)同(Tong)一(Yi)个(Ge)类(Lei)中(Zhong),(?)相(Xiang)同(Tong)的(De)方(Fang)法(Fa)名(Ming)称(Cheng),(?)参(Can)数(Shu)列(Lie)表(Biao)当(Dang)中(Zhong)的(De)参(Can)数(Shu)类(Lei)型(Xing)、(?)个(Ge)数(Shu)、(?)顺(Shun)序(Xu)不(Bu)同(Tong);(?)跟(Gen)权(Quan)限(Xian)修(Xiu)饰(Shi)符(Fu)和(He)返(Fan)回(Hui)值(Zhi)类(Lei)无(Wu)关(Guan)
答(Da):(?)内(Nei)部(Bu)类(Lei)就(Jiu)是(Shi)在(Zai)一(Yi)个(Ge)类(Lei)的(De)内(Nei)部(Bu)定(Ding)义(Yi)的(De)类(Lei),(?)内(Nei)部(Bu)类(Lei)中(Zhong)不(Bu)能(Neng)定(Ding)义(Yi)静(Jing)态(Tai)成(Cheng)员(Yuan)((?)静(Jing)态(Tai)成(Cheng)员(Yuan)不(Bu)是(Shi)对(Dui)象(Xiang)的(De)特(Te)性(Xing),(?)只(Zhi)是(Shi)为(Wei)了(Liao)找(Zhao)一(Yi)个(Ge)容(Rong)身(Shen)之(Zhi)处(Chu),(?)所(Suo)以(Yi)需(Xu)要(Yao)放(Fang)到(Dao)一(Yi)个(Ge)类(Lei)中(Zhong)而(?)已(Yi),(?)这(Zhe)么(Me)一(Yi)点(Dian)小(Xiao)事(Shi),(?)你(Ni)还(Huan)要(Yao)把(Ba)它(Ta)放(Fang)到(Dao)类(Lei)内(Nei)部(Bu)的(De)一(Yi)个(Ge)类(Lei)中(Zhong),(?)过(Guo)分(Fen)了(Liao)啊(A)!(?)提(Ti)供(Gong)内(Nei)部(Bu)类(Lei),(?)不(Bu)是(Shi)为(Wei)让(Rang)你(Ni)干(Gan)这(Zhe)种(Zhong)事(Shi)情(Qing),(?)无(Wu)聊(Liao),(?)不(Bu)让(Rang)你(Ni)干(Gan)。(?)我(Wo)想(Xiang)可(Ke)能(Neng)是(Shi)既(Ji)然(Ran)静(Jing)态(Tai)成(Cheng)员(Yuan)类(Lei)似(Si)c语(Yu)言(Yan)的(De)全(Quan)局(Ju)变(Bian)量(Liang),(?)而(?)内(Nei)部(Bu)类(Lei)通(Tong)常(Chang)是(Shi)用(Yong)于(Yu)创(Chuang)建(Jian)内(Nei)部(Bu)对(Dui)象(Xiang)用(Yong)的(De),(?)所(Suo)以(Yi),(?)把(Ba)“(?)全(Quan)局(Ju)变(Bian)量(Liang)”(?)放(Fang)在(Zai)内(Nei)部(Bu)类(Lei)中(Zhong)就(Jiu)是(Shi)毫(Hao)无(Wu)意(Yi)义(Yi)的(De)事(Shi)情(Qing),(?)既(Ji)然(Ran)是(Shi)毫(Hao)无(Wu)意(Yi)义(Yi)的(De)事(Shi)情(Qing),(?)就(Jiu)应(Ying)该(Gai)被(Bei)禁(Jin)止(Zhi))(?),(?)内(Nei)部(Bu)类(Lei)可(Ke)以(Yi)直(Zhi)接(Jie)访(Fang)问(Wen)外(Wai)部(Bu)类(Lei)中(Zhong)的(De)成(Cheng)员(Yuan)变(Bian)量(Liang),(?)内(Nei)部(Bu)类(Lei)可(Ke)以(Yi)定(Ding)义(Yi)在(Zai)外(Wai)部(Bu)类(Lei)的(De)方(Fang)法(Fa)外(Wai)面(Mian),(?)也(Ye)可(Ke)以(Yi)定(Ding)义(Yi)在(Zai)外(Wai)部(Bu)类(Lei)的(De)方(Fang)法(Fa)体(Ti)中(Zhong),(?)如(Ru)下(Xia)所(Suo)示(Shi):(?)
public class Outer { int out_x = 0; public void method() { Inner1 inner1 = new Inner1(); public class Inner2 //在(Zai)方(Fang)法(Fa)体(Ti)内(Nei)部(Bu)定(Ding)义(Yi)的(De)内(Nei)部(Bu)类(Lei) { public method() { out_x = 3; } } Inner2 inner2 = new Inner2(); } public class Inner1 //在(Zai)方(Fang)法(Fa)体(Ti)外(Wai)面(Mian)定(Ding)义(Yi)的(De)内(Nei)部(Bu)类(Lei) { } }
在(Zai)方(Fang)法(Fa)体(Ti)外(Wai)面(Mian)定(Ding)义(Yi)的(De)内(Nei)部(Bu)类(Lei)的(De)访(Fang)问(Wen)类(Lei)型(Xing)可(Ke)以(Yi)是(Shi)public,protecte,默(Mo)认(Ren)的(De),(?)private等(Deng)4种(Zhong)类(Lei)型(Xing),(?)这(Zhe)就(Jiu)好(Hao)像(Xiang)类(Lei)中(Zhong)定(Ding)义(Yi)的(De)成(Cheng)员(Yuan)变(Bian)量(Liang)有(You)4种(Zhong)访(Fang)问(Wen)类(Lei)型(Xing)一(Yi)样(Yang),(?)它(Ta)们(Men)决(Jue)定(Ding)这(Zhe)个(Ge)内(Nei)部(Bu)类(Lei)的(De)定(Ding)义(Yi)对(Dui)其(Qi)他(Ta)类(Lei)是(Shi)否(Fou)可(Ke)见(Jian);(?)对(Dui)于(Yu)这(Zhe)种(Zhong)情(Qing)况(Kuang),(?)我(Wo)们(Men)也(Ye)可(Ke)以(Yi)在(Zai)外(Wai)面(Mian)创(Chuang)建(Jian)内(Nei)部(Bu)类(Lei)的(De)实(Shi)例(Li)对(Dui)象(Xiang),(?)创(Chuang)建(Jian)内(Nei)部(Bu)类(Lei)的(De)实(Shi)例(Li)对(Dui)象(Xiang)时(Shi),(?)一(Yi)定(Ding)要(Yao)先(Xian)创(Chuang)建(Jian)外(Wai)部(Bu)类(Lei)的(De)实(Shi)例(Li)对(Dui)象(Xiang),(?)然(Ran)后(Hou)用(Yong)这(Zhe)个(Ge)外(Wai)部(Bu)类(Lei)的(De)实(Shi)例(Li)对(Dui)象(Xiang)去(Qu)创(Chuang)建(Jian)内(Nei)部(Bu)类(Lei)的(De)实(Shi)例(Li)对(Dui)象(Xiang),(?)代(Dai)码(Ma)如(Ru)下(Xia):(?)
Outer outer = new Outer();
Outer.Inner1 inner1 = outer.new Innner1();
在(Zai)方(Fang)法(Fa)内(Nei)部(Bu)定(Ding)义(Yi)的(De)内(Nei)部(Bu)类(Lei)前(Qian)面(Mian)不(Bu)能(Neng)有(You)访(Fang)问(Wen)类(Lei)型(Xing)修(Xiu)饰(Shi)符(Fu),(?)就(Jiu)好(Hao)像(Xiang)方(Fang)法(Fa)中(Zhong)定(Ding)义(Yi)的(De)局(Ju)部(Bu)变(Bian)量(Liang)一(Yi)样(Yang),(?)但(Dan)这(Zhe)种(Zhong)内(Nei)部(Bu)类(Lei)的(De)前(Qian)面(Mian)可(Ke)以(Yi)使(Shi)用(Yong)final或(Huo)abstract修(Xiu)饰(Shi)符(Fu)。(?)这(Zhe)种(Zhong)内(Nei)部(Bu)类(Lei)对(Dui)其(Qi)他(Ta)类(Lei)是(Shi)不(Bu)可(Ke)见(Jian)的(De)其(Qi)他(Ta)类(Lei)无(Wu)法(Fa)引(Yin)用(Yong)这(Zhe)种(Zhong)内(Nei)部(Bu)类(Lei),(?)但(Dan)是(Shi)这(Zhe)种(Zhong)内(Nei)部(Bu)类(Lei)创(Chuang)建(Jian)的(De)实(Shi)例(Li)对(Dui)象(Xiang)可(Ke)以(Yi)传(Chuan)递(Di)给(Gei)其(Qi)他(Ta)类(Lei)访(Fang)问(Wen)。(?)这(Zhe)种(Zhong)内(Nei)部(Bu)类(Lei)必(Bi)须(Xu)是(Shi)先(Xian)定(Ding)义(Yi),(?)后(Hou)使(Shi)用(Yong),(?)即(Ji)内(Nei)部(Bu)类(Lei)的(De)定(Ding)义(Yi)代(Dai)码(Ma)必(Bi)须(Xu)出(Chu)现(Xian)在(Zai)使(Shi)用(Yong)该(Gai)类(Lei)之(Zhi)前(Qian),(?)这(Zhe)与(Yu)方(Fang)法(Fa)中(Zhong)的(De)局(Ju)部(Bu)变(Bian)量(Liang)必(Bi)须(Xu)先(Xian)定(Ding)义(Yi)后(Hou)使(Shi)用(Yong)的(De)道(Dao)理(Li)也(Ye)是(Shi)一(Yi)样(Yang)的(De)。(?)这(Zhe)种(Zhong)内(Nei)部(Bu)类(Lei)可(Ke)以(Yi)访(Fang)问(Wen)方(Fang)法(Fa)体(Ti)中(Zhong)的(De)局(Ju)部(Bu)变(Bian)量(Liang),(?)但(Dan)是(Shi),(?)该(Gai)局(Ju)部(Bu)变(Bian)量(Liang)前(Qian)必(Bi)须(Xu)加(Jia)final修(Xiu)饰(Shi)符(Fu)。(?)
对(Dui)于(Yu)这(Zhe)些(Xie)细(Xi)节(Jie),(?)只(Zhi)要(Yao)在(Zai)eclipse写(Xie)代(Dai)码(Ma)试(Shi)试(Shi),(?)根(Gen)据(Ju)开(Kai)发(Fa)工(Gong)具(Ju)提(Ti)示(Shi)的(De)各(Ge)类(Lei)错(Cuo)误(Wu)信(Xin)息(Xi)就(Jiu)可(Ke)以(Yi)马(Ma)上(Shang)了(Liao)解(Jie)到(Dao)。(?)
在(Zai)方(Fang)法(Fa)体(Ti)内(Nei)部(Bu)还(Huan)可(Ke)以(Yi)采(Cai)用(Yong)如(Ru)下(Xia)语(Yu)法(Fa)来(Lai)创(Chuang)建(Jian)一(Yi)种(Zhong)匿(Ni)名(Ming)内(Nei)部(Bu)类(Lei),(?)即(Ji)定(Ding)义(Yi)某(Mou)一(Yi)接(Jie)口(Kou)或(Huo)类(Lei)的(De)子(Zi)类(Lei)的(De)同(Tong)时(Shi),(?)还(Huan)创(Chuang)建(Jian)了(Liao)该(Gai)子(Zi)类(Lei)的(De)实(Shi)例(Li)对(Dui)象(Xiang),(?)无(Wu)需(Xu)为(Wei)该(Gai)子(Zi)类(Lei)定(Ding)义(Yi)名(Ming)称(Cheng):(?)
public class Outer { public void start() { new Thread( new Runable(){ public void run(){}; } ).start(); } }
最(Zui)后(Hou),(?)在(Zai)方(Fang)法(Fa)外(Wai)部(Bu)定(Ding)义(Yi)的(De)内(Nei)部(Bu)类(Lei)前(Qian)面(Mian)可(Ke)以(Yi)加(Jia)上(Shang)static关(Guan)键(Jian)字(Zi),(?)从(Cong)而(?)成(Cheng)为(Wei)Static Nested Class,(?)它(Ta)不(Bu)再(Zai)具(Ju)有(You)内(Nei)部(Bu)类(Lei)的(De)特(Te)性(Xing),(?)所(Suo)有(You),(?)从(Cong)狭(Xia)义(Yi)上(Shang)讲(Jiang),(?)它(Ta)不(Bu)是(Shi)内(Nei)部(Bu)类(Lei)。(?)Static Nested Class与(Yu)普(Pu)通(Tong)类(Lei)在(Zai)运(Yun)行(Xing)时(Shi)的(De)行(Xing)为(Wei)和(He)功(Gong)能(Neng)上(Shang)没(Mei)有(You)什(Shi)么(Me)区(Qu)别(Bie),(?)只(Zhi)是(Shi)在(Zai)编(Bian)程(Cheng)引(Yin)用(Yong)时(Shi)的(De)语(Yu)法(Fa)上(Shang)有(You)一(Yi)些(Xie)差(Cha)别(Bie),(?)它(Ta)可(Ke)以(Yi)定(Ding)义(Yi)成(Cheng)public、(?)protected、(?)默(Mo)认(Ren)的(De)、(?)private等(Deng)多(Duo)种(Zhong)类(Lei)型(Xing),(?)而(?)普(Pu)通(Tong)类(Lei)只(Zhi)能(Neng)定(Ding)义(Yi)成(Cheng)public和(He)默(Mo)认(Ren)的(De)这(Zhe)两(Liang)种(Zhong)类(Lei)型(Xing)。(?)在(Zai)外(Wai)面(Mian)引(Yin)用(Yong)Static Nested Class类(Lei)的(De)名(Ming)称(Cheng)为(Wei)“(?)外(Wai)部(Bu)类(Lei)名(Ming).内(Nei)部(Bu)类(Lei)名(Ming)”(?)。(?)在(Zai)外(Wai)面(Mian)不(Bu)需(Xu)要(Yao)创(Chuang)建(Jian)外(Wai)部(Bu)类(Lei)的(De)实(Shi)例(Li)对(Dui)象(Xiang),(?)就(Jiu)可(Ke)以(Yi)直(Zhi)接(Jie)创(Chuang)建(Jian)Static Nested Class,(?)例(Li)如(Ru),(?)假(Jia)设(She)Inner是(Shi)定(Ding)义(Yi)在(Zai)Outer类(Lei)中(Zhong)的(De)Static Nested Class,(?)那(Na)么(Me)可(Ke)以(Yi)使(Shi)用(Yong)如(Ru)下(Xia)语(Yu)句(Ju)创(Chuang)建(Jian)Inner类(Lei):(?)
Outer.Inner inner = newOuter.Inner();
由(You)于(Yu)static Nested Class不(Bu)依(Yi)赖(Lai)于(Yu)外(Wai)部(Bu)类(Lei)的(De)实(Shi)例(Li)对(Dui)象(Xiang),(?)所(Suo)以(Yi),(?)static Nested Class能(Neng)访(Fang)问(Wen)外(Wai)部(Bu)类(Lei)的(De)非(Fei)static成(Cheng)员(Yuan)变(Bian)量(Liang)(不(Bu)能(Neng)直(Zhi)接(Jie)访(Fang)问(Wen),(?)需(Xu)要(Yao)创(Chuang)建(Jian)外(Wai)部(Bu)类(Lei)实(Shi)例(Li)才(Cai)能(Neng)访(Fang)问(Wen)非(Fei)静(Jing)态(Tai)变(Bian)量(Liang))。(?)当(Dang)在(Zai)外(Wai)部(Bu)类(Lei)中(Zhong)访(Fang)问(Wen)Static Nested Class时(Shi),(?)可(Ke)以(Yi)直(Zhi)接(Jie)使(Shi)用(Yong)Static Nested Class的(De)名(Ming)字(Zi),(?)而(?)不(Bu)需(Xu)要(Yao)加(Jia)上(Shang)外(Wai)部(Bu)类(Lei)的(De)名(Ming)字(Zi)了(Liao),(?)在(Zai)Static Nested Class中(Zhong)也(Ye)可(Ke)以(Yi)直(Zhi)接(Jie)引(Yin)用(Yong)外(Wai)部(Bu)类(Lei)的(De)static的(De)成(Cheng)员(Yuan)变(Bian)量(Liang),(?)不(Bu)需(Xu)要(Yao)加(Jia)上(Shang)外(Wai)部(Bu)类(Lei)的(De)名(Ming)字(Zi)。(?)
在(Zai)静(Jing)态(Tai)方(Fang)法(Fa)中(Zhong)定(Ding)义(Yi)的(De)内(Nei)部(Bu)类(Lei)也(Ye)是(Shi)Static Nested Class,(?)这(Zhe)时(Shi)候(Hou)不(Bu)能(Neng)在(Zai)类(Lei)前(Qian)面(Mian)加(Jia)static关(Guan)键(Jian)字(Zi),(?)静(Jing)态(Tai)方(Fang)法(Fa)中(Zhong)的(De)Static Nested Class与(Yu)普(Pu)通(Tong)方(Fang)法(Fa)中(Zhong)的(De)内(Nei)部(Bu)类(Lei)的(De)应(Ying)用(Yong)方(Fang)式(Shi)很(Hen)相(Xiang)似(Si),(?)它(Ta)除(Chu)了(Liao)可(Ke)以(Yi)直(Zhi)接(Jie)访(Fang)问(Wen)外(Wai)部(Bu)类(Lei)中(Zhong)的(De)static的(De)成(Cheng)员(Yuan)变(Bian)量(Liang),(?)还(Huan)可(Ke)以(Yi)访(Fang)问(Wen)静(Jing)态(Tai)方(Fang)法(Fa)中(Zhong)的(De)局(Ju)部(Bu)变(Bian)量(Liang),(?)但(Dan)是(Shi),(?)该(Gai)局(Ju)部(Bu)变(Bian)量(Liang)前(Qian)必(Bi)须(Xu)加(Jia)final修(Xiu)饰(Shi)符(Fu)。(?)
备(Bei)注(Zhu):(?)首(Shou)先(Xian)根(Gen)据(Ju)你(Ni)的(De)印(Yin)象(Xiang)说(Shuo)出(Chu)你(Ni)对(Dui)内(Nei)部(Bu)类(Lei)的(De)总(Zong)体(Ti)方(Fang)面(Mian)的(De)特(Te)点(Dian):(?)例(Li)如(Ru),(?)在(Zai)两(Liang)个(Ge)地(Di)方(Fang)可(Ke)以(Yi)定(Ding)义(Yi),(?)可(Ke)以(Yi)访(Fang)问(Wen)外(Wai)部(Bu)类(Lei)的(De)成(Cheng)员(Yuan)变(Bian)量(Liang),(?)不(Bu)能(Neng)定(Ding)义(Yi)静(Jing)态(Tai)成(Cheng)员(Yuan),(?)这(Zhe)是(Shi)大(Da)的(De)特(Te)点(Dian)。(?)然(Ran)后(Hou)再(Zai)说(Shuo)一(Yi)些(Xie)细(Xi)节(Jie)方(Fang)面(Mian)的(De)知(Zhi)识(Shi),(?)例(Li)如(Ru),(?)几(Ji)种(Zhong)定(Ding)义(Yi)方(Fang)式(Shi)的(De)语(Yu)法(Fa)区(Qu)别(Bie),(?)静(Jing)态(Tai)内(Nei)部(Bu)类(Lei),(?)以(Yi)及(Ji)匿(Ni)名(Ming)内(Nei)部(Bu)类(Lei)。(?)
Static Nested Class是(Shi)被(Bei)声(Sheng)明(Ming)为(Wei)静(Jing)态(Tai)((?)static)(?)的(De)内(Nei)部(Bu)类(Lei),(?)它(Ta)可(Ke)以(Yi)不(Bu)依(Yi)赖(Lai)于(Yu)外(Wai)部(Bu)类(Lei)实(Shi)例(Li)被(Bei)实(Shi)例(Li)化(Hua)。(?)而(?)通(Tong)常(Chang)的(De)内(Nei)部(Bu)类(Lei)需(Xu)要(Yao)在(Zai)外(Wai)部(Bu)类(Lei)实(Shi)例(Li)化(Hua)后(Hou)才(Cai)能(Neng)实(Shi)例(Li)化(Hua),(?)其(Qi)语(Yu)法(Fa)看(Kan)起(Qi)来(Lai)挺(Ting)诡(Gui)异(Yi)的(De),(?)如(Ru)下(Xia)所(Suo)示(Shi)。(?)
package com.bjsxt; /** * 扑(Pu)克(Ke)类(Lei)((?)一(Yi)副(Fu)扑(Pu)克(Ke))(?) * @author sxt * */ public class Poker { private static String[] suites = {"黑(Hei)桃(Tao)", "红(Hong)桃(Tao)", "草(Cao)花(Hua)", "方(Fang)块(Kuai)"}; private static int[] faces = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; private Card[] cards; /** * 构(Gou)造(Zao)器(Qi) */ public Poker() { cards = new Card[52]; for(int i = 0; i < suites.length; i++) { for(int j = 0; j < faces.length; j++) { cards[i * 13 + j] = new Card(suites[i], faces[j]); } } } /** * 洗(Xi)牌(Pai) ((?)随(Sui)机(Ji)乱(Luan)序(Xu))(?) */ public void shuffle() { for(int i = 0, len = cards.length; i < len; i++) { int index = (int) (Math.random() * len); Card temp = cards[index]; cards[index] = cards[i]; cards[i] = temp; } } /** * 发(Fa)牌(Pai) * @param index 发(Fa)牌(Pai)的(De)位(Wei)置(Zhi) */ public Card deal(int index) { return cards[index]; } /** * 卡(Ka)片(Pian)类(Lei)((?)一(Yi)张(Zhang)扑(Pu)克(Ke))(?) * [内(Nei)部(Bu)类(Lei)] * @author sxt */ public class Card { private String suite; // 花(Hua)色(Se) private int face; // 点(Dian)数(Shu) public Card(String suite, int face) { this.suite = suite; this.face = face; } @Override public String toString() { String faceStr = ""; switch(face) { case 1: faceStr = "A"; break; case 11: faceStr = "J"; break; case 12: faceStr = "Q"; break; case 13: faceStr = "K"; break; default: faceStr = String.valueOf(face); } return suite + faceStr; } } }
测(Ce)试(Shi)类(Lei):(?)
package com.bjsxt; class PokerTest { public static void main(String[] args) { Poker poker = new Poker(); poker.shuffle(); // 洗(Xi)牌(Pai) Poker.Card c1 = poker.deal(0); // 发(Fa)第(Di)一(Yi)张(Zhang)牌(Pai) // 对(Dui)于(Yu)非(Fei)静(Jing)态(Tai)内(Nei)部(Bu)类(Lei)Card // 只(Zhi)有(You)通(Tong)过(Guo)其(Qi)外(Wai)部(Bu)类(Lei)Poker对(Dui)象(Xiang)才(Cai)能(Neng)创(Chuang)建(Jian)Card对(Dui)象(Xiang) Poker.Card c2 = poker.new Card("红(Hong)心(Xin)", 1); // 自(Zi)己(Ji)创(Chuang)建(Jian)一(Yi)张(Zhang)牌(Pai) System.out.println(c1); // 洗(Xi)牌(Pai)后(Hou)的(De)第(Di)一(Yi)张(Zhang) System.out.println(c2); // 打(Da)印(Yin): 红(Hong)心(Xin)A } }
答(Da):(?)都(Du)不(Bu)能(Neng)。(?)抽(Chou)象(Xiang)方(Fang)法(Fa)需(Xu)要(Yao)子(Zi)类(Lei)重(Zhong)写(Xie),(?)而(?)静(Jing)态(Tai)的(De)方(Fang)法(Fa)是(Shi)无(Wu)法(Fa)被(Bei)重(Zhong)写(Xie)的(De),(?)因(Yin)此(Ci)二(?)者(Zhe)是(Shi)矛(Mao)盾(Dun)的(De)。(?)本(Ben)地(Di)方(Fang)法(Fa)是(Shi)由(You)本(Ben)地(Di)代(Dai)码(Ma)((?)如(Ru)C代(Dai)码(Ma))(?)实(Shi)现(Xian)的(De)方(Fang)法(Fa),(?)而(?)抽(Chou)象(Xiang)方(Fang)法(Fa)是(Shi)没(Mei)有(You)实(Shi)现(Xian)的(De),(?)也(Ye)是(Shi)矛(Mao)盾(Dun)的(De)。(?)synchronized和(He)方(Fang)法(Fa)的(De)实(Shi)现(Xian)细(Xi)节(Jie)有(You)关(Guan),(?)抽(Chou)象(Xiang)方(Fang)法(Fa)不(Bu)涉(She)及(Ji)实(Shi)现(Xian)细(Xi)节(Jie),(?)因(Yin)此(Ci)也(Ye)是(Shi)相(Xiang)互(Hu)矛(Mao)盾(Dun)的(De)。(?)
答(Da):(?)静(Jing)态(Tai)变(Bian)量(Liang)是(Shi)被(Bei)static修(Xiu)饰(Shi)符(Fu)修(Xiu)饰(Shi)的(De)变(Bian)量(Liang),(?)也(Ye)称(Cheng)为(Wei)类(Lei)变(Bian)量(Liang),(?)它(Ta)属(Shu)于(Yu)类(Lei),(?)不(Bu)属(Shu)于(Yu)类(Lei)的(De)任(Ren)何(He)一(Yi)个(Ge)对(Dui)象(Xiang),(?)一(Yi)个(Ge)类(Lei)不(Bu)管(Guan)创(Chuang)建(Jian)多(Duo)少(Shao)个(Ge)对(Dui)象(Xiang),(?)静(Jing)态(Tai)变(Bian)量(Liang)在(Zai)内(Nei)存(Cun)中(Zhong)有(You)且(Qie)仅(Jin)有(You)一(Yi)个(Ge)拷(Kao)贝(Bei);(?)实(Shi)例(Li)变(Bian)量(Liang)必(Bi)须(Xu)依(Yi)存(Cun)于(Yu)某(Mou)一(Yi)实(Shi)例(Li),(?)需(Xu)要(Yao)先(Xian)创(Chuang)建(Jian)对(Dui)象(Xiang)然(Ran)后(Hou)通(Tong)过(Guo)对(Dui)象(Xiang)才(Cai)能(Neng)访(Fang)问(Wen)到(Dao)它(Ta),(?)静(Jing)态(Tai)变(Bian)量(Liang)可(Ke)以(Yi)实(Shi)现(Xian)让(Rang)多(Duo)个(Ge)对(Dui)象(Xiang)共(Gong)享(Xiang)内(Nei)存(Cun)。(?)两(Liang)者(Zhe)的(De)相(Xiang)同(Tong)点(Dian):(?)都(Du)有(You)默(Mo)认(Ren)值(Zhi)而(?)且(Qie)在(Zai)类(Lei)的(De)任(Ren)何(He)地(Di)方(Fang)都(Du)可(Ke)以(Yi)调(Diao)用(Yong)。(?)在(Zai)Java开(Kai)发(Fa)中(Zhong),(?)上(Shang)下(Xia)文(Wen)类(Lei)和(He)工(Gong)具(Ju)类(Lei)中(Zhong)通(Tong)常(Chang)会(Hui)有(You)大(Da)量(Liang)的(De)静(Jing)态(Tai)成(Cheng)员(Yuan)。(?)
答(Da):(?)不(Bu)可(Ke)以(Yi),(?)静(Jing)态(Tai)方(Fang)法(Fa)只(Zhi)能(Neng)访(Fang)问(Wen)静(Jing)态(Tai)成(Cheng)员(Yuan),(?)因(Yin)为(Wei)非(Fei)静(Jing)态(Tai)方(Fang)法(Fa)的(De)调(Diao)用(Yong)要(Yao)先(Xian)创(Chuang)建(Jian)对(Dui)象(Xiang),(?)因(Yin)此(Ci)在(Zai)调(Diao)用(Yong)静(Jing)态(Tai)方(Fang)法(Fa)时(Shi)可(Ke)能(Neng)对(Dui)象(Xiang)并(Bing)没(Mei)有(You)被(Bei)初(Chu)始(Shi)化(Hua)。(?)
package com.bjsxt; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class MyUtil { private MyUtil() { throw new AssertionError(); } public static <T> T clone(T obj) throws Exception { ByteArrayOutputStream bout = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bout); oos.writeObject(obj); ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bin); return (T) ois.readObject(); // 说(Shuo)明(Ming):(?)调(Diao)用(Yong)ByteArrayInputStream或(Huo)ByteArrayOutputStream对(Dui)象(Xiang)的(De)close方(Fang)法(Fa)没(Mei)有(You)任(Ren)何(He)意(Yi)义(Yi) // 这(Zhe)两(Liang)个(Ge)基(Ji)于(Yu)内(Nei)存(Cun)的(De)流(Liu)只(Zhi)要(Yao)垃(La)圾(Ji)回(Hui)收(Shou)器(Qi)清(Qing)理(Li)对(Dui)象(Xiang)就(Jiu)能(Neng)够(Gou)释(Shi)放(Fang)资(Zi)源(Yuan) } }
答(Da):(?)有(You)两(Liang)种(Zhong)方(Fang)式(Shi):(?)
1.实(Shi)现(Xian)Cloneable接(Jie)口(Kou)并(Bing)重(Zhong)写(Xie)Object类(Lei)中(Zhong)的(De)clone()方(Fang)法(Fa);(?)
2.实(Shi)现(Xian)Serializable接(Jie)口(Kou),(?)通(Tong)过(Guo)对(Dui)象(Xiang)的(De)序(Xu)列(Lie)化(Hua)和(He)反(Fan)序(Xu)列(Lie)化(Hua)实(Shi)现(Xian)克(Ke)隆(Long),(?)可(Ke)以(Yi)实(Shi)现(Xian)真(Zhen)正(Zheng)的(De)深(Shen)度(Du)克(Ke)隆(Long),(?)代(Dai)码(Ma)如(Ru)下(Xia)。(?)
下(Xia)面(Mian)是(Shi)测(Ce)试(Shi)代(Dai)码(Ma):(?)
package com.bjsxt; import java.io.Serializable; /** * 人(Ren)类(Lei) * @author sxt */ class Person implements Serializable { private static final long serialVersionUID = -9102017020286042305L; private String name; // 姓(Xing)名(Ming) private int age; // 年(Nian)龄(Ling) private Car car; // 座(Zuo)驾(Jia) public Person(String name, int age, Car car) { this.name = name; this.age = age; this.car = car; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Car getCar() { return car; } public void setCar(Car car) { this.car = car; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + ", car=" + car + "]"; } } /** * 小(Xiao)汽(Qi)车(Che)类(Lei) * @author sxt */ class Car implements Serializable { private static final long serialVersionUID = -5713945027627603702L; private String brand; // 品(Pin)牌(Pai) private int maxSpeed; // 最(Zui)高(Gao)时(Shi)速(Su) public Car(String brand, int maxSpeed) { this.brand = brand; this.maxSpeed = maxSpeed; } public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public int getMaxSpeed() { return maxSpeed; } public void setMaxSpeed(int maxSpeed) { this.maxSpeed = maxSpeed; } @Override public String toString() { return "Car [brand=" + brand + ", maxSpeed=" + maxSpeed + "]"; } } class CloneTest { public static void main(String[] args) { try { Person p1 = new Person("Hao LUO", 33, new Car("Benz", 300)); Person p2 = MyUtil.clone(p1); // 深(Shen)度(Du)克(Ke)隆(Long) p2.getCar().setBrand("BYD"); // 修(Xiu)改(Gai)克(Ke)隆(Long)的(De)Person对(Dui)象(Xiang)p2关(Guan)联(Lian)的(De)汽(Qi)车(Che)对(Dui)象(Xiang)的(De)品(Pin)牌(Pai)属(Shu)性(Xing) // 原(Yuan)来(Lai)的(De)Person对(Dui)象(Xiang)p1关(Guan)联(Lian)的(De)汽(Qi)车(Che)不(Bu)会(Hui)受(Shou)到(Dao)任(Ren)何(He)影(Ying)响(Xiang) // 因(Yin)为(Wei)在(Zai)克(Ke)隆(Long)Person对(Dui)象(Xiang)时(Shi)其(Qi)关(Guan)联(Lian)的(De)汽(Qi)车(Che)对(Dui)象(Xiang)也(Ye)被(Bei)克(Ke)隆(Long)了(Liao) System.out.println(p1); } catch (Exception e) { e.printStackTrace(); } } }
注(Zhu)意(Yi):(?)基(Ji)于(Yu)序(Xu)列(Lie)化(Hua)和(He)反(Fan)序(Xu)列(Lie)化(Hua)实(Shi)现(Xian)的(De)克(Ke)隆(Long)不(Bu)仅(Jin)仅(Jin)是(Shi)深(Shen)度(Du)克(Ke)隆(Long),(?)更(Geng)重(Zhong)要(Yao)的(De)是(Shi)通(Tong)过(Guo)泛(Fan)型(Xing)限(Xian)定(Ding),(?)可(Ke)以(Yi)检(Jian)查(Cha)出(Chu)要(Yao)克(Ke)隆(Long)的(De)对(Dui)象(Xiang)是(Shi)否(Fou)支(Zhi)持(Chi)序(Xu)列(Lie)化(Hua),(?)这(Zhe)项(Xiang)检(Jian)查(Cha)是(Shi)编(Bian)译(Yi)器(Qi)完(Wan)成(Cheng)的(De),(?)不(Bu)是(Shi)在(Zai)运(Yun)行(Xing)时(Shi)抛(Pao)出(Chu)异(Yi)常(Chang),(?)这(Zhe)种(Zhong)是(Shi)方(Fang)案(An)明(Ming)显(Xian)优(You)于(Yu)使(Shi)用(Yong)Object类(Lei)的(De)clone方(Fang)法(Fa)克(Ke)隆(Long)对(Dui)象(Xiang)。(?)
答(Da):(?)接(Jie)口(Kou)可(Ke)以(Yi)继(Ji)承(Cheng)接(Jie)口(Kou)。(?)抽(Chou)象(Xiang)类(Lei)可(Ke)以(Yi)实(Shi)现(Xian)(implements)接(Jie)口(Kou),(?)抽(Chou)象(Xiang)类(Lei)可(Ke)以(Yi)继(Ji)承(Cheng)具(Ju)体(Ti)类(Lei)。(?)抽(Chou)象(Xiang)类(Lei)中(Zhong)可(Ke)以(Yi)有(You)静(Jing)态(Tai)的(De)main方(Fang)法(Fa)。(?)
备(Bei)注(Zhu):(?)只(Zhi)要(Yao)明(Ming)白(Bai)了(Liao)接(Jie)口(Kou)和(He)抽(Chou)象(Xiang)类(Lei)的(De)本(Ben)质(Zhi)和(He)作(Zuo)用(Yong),(?)这(Zhe)些(Xie)问(Wen)题(Ti)都(Du)很(Hen)好(Hao)回(Hui)答(Da),(?)你(Ni)想(Xiang)想(Xiang),(?)如(Ru)果(Guo)你(Ni)是(Shi)java语(Yu)言(Yan)的(De)设(She)计(Ji)者(Zhe),(?)你(Ni)是(Shi)否(Fou)会(Hui)提(Ti)供(Gong)这(Zhe)样(Yang)的(De)支(Zhi)持(Chi),(?)如(Ru)果(Guo)不(Bu)提(Ti)供(Gong)的(De)话(Hua),(?)有(You)什(Shi)么(Me)理(Li)由(You)吗(Ma)?(?)如(Ru)果(Guo)你(Ni)没(Mei)有(You)道(Dao)理(Li)不(Bu)提(Ti)供(Gong),(?)那(Na)答(Da)案(An)就(Jiu)是(Shi)肯(Ken)定(Ding)的(De)了(Liao)。(?)
只(Zhi)有(You)记(Ji)住(Zhu)抽(Chou)象(Xiang)类(Lei)与(Yu)普(Pu)通(Tong)类(Lei)的(De)唯(Wei)一(Yi)区(Qu)别(Bie)就(Jiu)是(Shi)不(Bu)能(Neng)创(Chuang)建(Jian)实(Shi)例(Li)对(Dui)象(Xiang)和(He)允(Yun)许(Xu)有(You)abstract方(Fang)法(Fa)。(?)
答(Da):(?)可(Ke)以(Yi),(?)但(Dan)一(Yi)个(Ge)源(Yuan)文(Wen)件(Jian)中(Zhong)最(Zui)多(Duo)只(Zhi)能(Neng)有(You)一(Yi)个(Ge)公(Gong)开(Kai)类(Lei)((?)public class)(?)而(?)且(Qie)文(Wen)件(Jian)名(Ming)必(Bi)须(Xu)和(He)公(Gong)开(Kai)类(Lei)的(De)类(Lei)名(Ming)完(Wan)全(Quan)保(Bao)持(Chi)一(Yi)致(Zhi)。(?)
答(Da):(?)可(Ke)以(Yi)继(Ji)承(Cheng)其(Qi)他(Ta)类(Lei)或(Huo)实(Shi)现(Xian)其(Qi)他(Ta)接(Jie)口(Kou),(?)在(Zai)Swing编(Bian)程(Cheng)中(Zhong)常(Chang)用(Yong)此(Ci)方(Fang)式(Shi)来(Lai)实(Shi)现(Xian)事(Shi)件(Jian)监(Jian)听(Ting)和(He)回(Hui)调(Diao)。(?)但(Dan)是(Shi)有(You)一(Yi)点(Dian)需(Xu)要(Yao)注(Zhu)意(Yi),(?)它(Ta)只(Zhi)能(Neng)继(Ji)承(Cheng)一(Yi)个(Ge)类(Lei)或(Huo)一(Yi)个(Ge)接(Jie)口(Kou)。(?)
答(Da):(?)一(Yi)个(Ge)内(Nei)部(Bu)类(Lei)对(Dui)象(Xiang)可(Ke)以(Yi)访(Fang)问(Wen)创(Chuang)建(Jian)它(Ta)的(De)外(Wai)部(Bu)类(Lei)对(Dui)象(Xiang)的(De)成(Cheng)员(Yuan),(?)包(Bao)括(Kuo)私(Si)有(You)成(Cheng)员(Yuan)。(?)如(Ru)果(Guo)要(Yao)访(Fang)问(Wen)外(Wai)部(Bu)类(Lei)的(De)局(Ju)部(Bu)变(Bian)量(Liang),(?)此(Ci)时(Shi)局(Ju)部(Bu)变(Bian)量(Liang)必(Bi)须(Xu)使(Shi)用(Yong)final修(Xiu)饰(Shi),(?)否(Fou)则(Ze)无(Wu)法(Fa)访(Fang)问(Wen)。(?)
(1) 修(Xiu)饰(Shi)类(Lei):(?)表(Biao)示(Shi)该(Gai)类(Lei)不(Bu)能(Neng)被(Bei)继(Ji)承(Cheng);(?)
(2) 修(Xiu)饰(Shi)方(Fang)法(Fa):(?)表(Biao)示(Shi)方(Fang)法(Fa)不(Bu)能(Neng)被(Bei)重(Zhong)写(Xie)但(Dan)是(Shi)允(Yun)许(Xu)重(Zhong)载(Zai);(?)
(3) 修(Xiu)饰(Shi)变(Bian)量(Liang):(?)表(Biao)示(Shi)变(Bian)量(Liang)只(Zhi)能(Neng)一(Yi)次(Ci)赋(Fu)值(Zhi)以(Yi)后(Hou)值(Zhi)不(Bu)能(Neng)被(Bei)修(Xiu)改(Gai)((?)常(Chang)量(Liang))(?);(?)
(4) 修(Xiu)饰(Shi)对(Dui)象(Xiang):(?)对(Dui)象(Xiang)的(De)引(Yin)用(Yong)地(Di)址(Zhi)不(Bu)能(Neng)变(Bian),(?)但(Dan)是(Shi)对(Dui)象(Xiang)的(De)初(Chu)始(Shi)化(Hua)值(Zhi)可(Ke)以(Yi)变(Bian)。(?)
package com.bjsxt; class A{ static{ System.out.print("1"); } public A(){ System.out.print("2"); } } class B extends A{ static{ System.out.print("a"); } public B(){ System.out.print("b"); } } public class Hello{ public static void main(String[] args){ A ab = new B(); ab = new B(); } }
答(Da):(?)执(Zhi)行(Xing)结(Jie)果(Guo):(?)1a2b2b。(?)创(Chuang)建(Jian)对(Dui)象(Xiang)时(Shi)构(Gou)造(Zao)器(Qi)的(De)调(Diao)用(Yong)顺(Shun)序(Xu)是(Shi):(?)先(Xian)初(Chu)始(Shi)化(Hua)静(Jing)态(Tai)成(Cheng)员(Yuan),(?)然(Ran)后(Hou)调(Diao)用(Yong)父(Fu)类(Lei)构(Gou)造(Zao)器(Qi),(?)再(Zai)初(Chu)始(Shi)化(Hua)非(Fei)静(Jing)态(Tai)成(Cheng)员(Yuan),(?)最(Zui)后(Hou)调(Diao)用(Yong)自(Zi)身(Shen)构(Gou)造(Zao)器(Qi)。(?)
考(Kao)点(Dian):(?)静(Jing)态(Tai)代(Dai)码(Ma)块(Kuai)优(You)先(Xian)级(Ji) > 构(Gou)造(Zao)方(Fang)法(Fa)的(De)优(You)先(Xian)级(Ji)如(Ru)果(Guo)再(Zai)加(Jia)一(Yi)个(Ge)普(Pu)通(Tong)代(Dai)码(Ma)块(Kuai),(?)优(You)先(Xian)顺(Shun)序(Xu)如(Ru)下(Xia):(?)静(Jing)态(Tai)代(Dai)码(Ma)块(Kuai)>普(Pu)通(Tong)代(Dai)码(Ma)块(Kuai)>构(Gou)造(Zao)方(Fang)法(Fa)
1 ) 如(Ru)何(He)将(Jiang)字(Zi)符(Fu)串(Chuan)转(Zhuan)换(Huan)为(Wei)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)?(?)
2 ) 如(Ru)何(He)将(Jiang)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)转(Zhuan)换(Huan)为(Wei)字(Zi)符(Fu)串(Chuan)?(?)
答(Da):(?)
1 ) 调(Diao)用(Yong)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)对(Dui)应(Ying)的(De)包(Bao)装(Zhuang)类(Lei)中(Zhong)的(De)方(Fang)法(Fa)parseXXX(String)或(Huo)valueOf(String)即(Ji)可(Ke)返(Fan)回(Hui)相(Xiang)应(Ying)基(Ji)本(Ben)类(Lei)型(Xing);(?)
2 ) 一(Yi)种(Zhong)方(Fang)法(Fa)是(Shi)将(Jiang)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)与(Yu)空(Kong)字(Zi)符(Fu)串(Chuan)((?)”(?)”(?))(?)连(Lian)接(Jie)((?)+)(?)即(Ji)可(Ke)获(Huo)得(De)其(Qi)所(Suo)对(Dui)应(Ying)的(De)字(Zi)符(Fu)串(Chuan);(?)另(Ling)一(Yi)种(Zhong)方(Fang)法(Fa)是(Shi)调(Diao)用(Yong)String 类(Lei)中(Zhong)的(De)valueOf(…(?))方(Fang)法(Fa)返(Fan)回(Hui)相(Xiang)应(Ying)字(Zi)符(Fu)串(Chuan)
答(Da):(?)方(Fang)法(Fa)很(Hen)多(Duo),(?)可(Ke)以(Yi)自(Zi)己(Ji)写(Xie)实(Shi)现(Xian)也(Ye)可(Ke)以(Yi)使(Shi)用(Yong)String或(Huo)StringBuffer / StringBuilder中(Zhong)的(De)方(Fang)法(Fa)。(?)有(You)一(Yi)道(Dao)很(Hen)常(Chang)见(Jian)的(De)面(Mian)试(Shi)题(Ti)是(Shi)用(Yong)递(Di)归(Gui)实(Shi)现(Xian)字(Zi)符(Fu)串(Chuan)反(Fan)转(Zhuan),(?)代(Dai)码(Ma)如(Ru)下(Xia)所(Suo)示(Shi):(?)
package com.bjsxt; public class A{ public static String reverse(String originStr) { if(originStr == null || originStr.length() <= 1) return originStr; return reverse(originStr.substring(1)) + originStr.charAt(0); } }
答(Da):(?)代(Dai)码(Ma)如(Ru)下(Xia)所(Suo)示(Shi):
String s1 = "你(Ni)好(Hao)";
String s2 = newString(s1.getBytes("GB2312"), "ISO-8859-1");
在(Zai)String类(Lei)的(De)构(Gou)造(Zao)方(Fang)法(Fa)当(Dang)中(Zhong),(?)存(Cun)在(Zai)一(Yi)个(Ge)字(Zi)符(Fu)集(Ji)设(She)置(Zhi)的(De)方(Fang)法(Fa),(?)具(Ju)体(Ti)如(Ru)下(Xia):(?)
1 ) 如(Ru)何(He)取(Qu)得(De)年(Nian)月(Yue)日(Ri)、(?)小(Xiao)时(Shi)分(Fen)钟(Zhong)秒(Miao)?(?)
2 ) 如(Ru)何(He)取(Qu)得(De)从(Cong)1970年(Nian)1月(Yue)1日(Ri)0时(Shi)0分(Fen)0秒(Miao)到(Dao)现(Xian)在(Zai)的(De)毫(Hao)秒(Miao)数(Shu)?(?)
3 ) 如(Ru)何(He)取(Qu)得(De)某(Mou)月(Yue)的(De)最(Zui)后(Hou)一(Yi)天(Tian)?(?)
4 ) 如(Ru)何(He)格(Ge)式(Shi)化(Hua)日(Ri)期(Qi)?(?)
答(Da):(?)操(Cao)作(Zuo)方(Fang)法(Fa)如(Ru)下(Xia)所(Suo)示(Shi):(?)
1 ) 创(Chuang)建(Jian)java.util.Calendar 实(Shi)例(Li),(?)调(Diao)用(Yong)其(Qi)get()方(Fang)法(Fa)传(Chuan)入(Ru)不(Bu)同(Tong)的(De)参(Can)数(Shu)即(Ji)可(Ke)获(Huo)得(De)参(Can)数(Shu)所(Suo)对(Dui)应(Ying)的(De)值(Zhi)
2 ) 以(Yi)下(Xia)方(Fang)法(Fa)均(Jun)可(Ke)获(Huo)得(De)该(Gai)毫(Hao)秒(Miao)数(Shu):
Calendar.getInstance().getTimeInMillis();
time.getActualMaximum(Calendar.DAY_OF_MONTH);
4 ) 利(Li)用(Yong)java.text.DataFormat 的(De)子(Zi)类(Lei)((?)如(Ru)SimpleDateFormat类(Lei))(?)中(Zhong)的(De)format(Date)方(Fang)法(Fa)可(Ke)将(Jiang)日(Ri)期(Qi)格(Ge)式(Shi)化(Hua)。(?)
package com.bjsxt; import java.util.Calendar; public class YesterdayCurrent { public static void main(String[] args){ Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -1); System.out.println(cal.getTime()); } }
在(Zai)JDK中(Zhong),(?)主(Zhu)要(Yao)由(You)以(Yi)下(Xia)类(Lei)来(Lai)实(Shi)现(Xian)Java反(Fan)射(She)机(Ji)制(Zhi),(?)这(Zhe)些(Xie)类(Lei)都(Du)位(Wei)于(Yu)java.lang.reflect包(Bao)中(Zhong)
1)(?)Class类(Lei):(?)代(Dai)表(Biao)一(Yi)个(Ge)类(Lei)
2)(?)Field 类(Lei):(?)代(Dai)表(Biao)类(Lei)的(De)成(Cheng)员(Yuan)变(Bian)量(Liang)(属(Shu)性(Xing))
3)(?)Method类(Lei):(?)代(Dai)表(Biao)类(Lei)的(De)成(Cheng)员(Yuan)方(Fang)法(Fa)
4)(?)Constructor 类(Lei):(?)代(Dai)表(Biao)类(Lei)的(De)构(Gou)造(Zao)方(Fang)法(Fa)
5)(?)Array类(Lei):(?)提(Ti)供(Gong)了(Liao)动(Dong)态(Tai)创(Chuang)建(Jian)数(Shu)组(Zu),(?)以(Yi)及(Ji)访(Fang)问(Wen)数(Shu)组(Zu)的(De)元(Yuan)素(Su)的(De)静(Jing)态(Tai)方(Fang)法(Fa)
Class类(Lei)是(Shi)Java 反(Fan)射(She)机(Ji)制(Zhi)的(De)起(Qi)源(Yuan)和(He)入(Ru)口(Kou),(?)用(Yong)于(Yu)获(Huo)取(Qu)与(Yu)类(Lei)相(Xiang)关(Guan)的(De)各(Ge)种(Zhong)信(Xin)息(Xi),(?)提(Ti)供(Gong)了(Liao)获(Huo)取(Qu)类(Lei)信(Xin)息(Xi)的(De)相(Xiang)关(Guan)方(Fang)法(Fa)。(?)Class类(Lei)继(Ji)承(Cheng)自(Zi)Object类(Lei)
Class类(Lei)是(Shi)所(Suo)有(You)类(Lei)的(De)共(Gong)同(Tong)的(De)图(Tu)纸(Zhi)。(?)每(Mei)个(Ge)类(Lei)有(You)自(Zi)己(Ji)的(De)对(Dui)象(Xiang),(?)好(Hao)比(Bi)图(Tu)纸(Zhi)和(He)实(Shi)物(Wu)的(De)关(Guan)系(Xi);(?)每(Mei)个(Ge)类(Lei)也(Ye)可(Ke)看(Kan)做(Zuo)是(Shi)一(Yi)个(Ge)对(Dui)象(Xiang),(?)有(You)共(Gong)同(Tong)的(De)图(Tu)纸(Zhi)Class,(?)存(Cun)放(Fang)类(Lei)的(De) 结(Jie)构(Gou)信(Xin)息(Xi),(?)能(Neng)够(Gou)通(Tong)过(Guo)相(Xiang)应(Ying)方(Fang)法(Fa)取(Qu)出(Chu)相(Xiang)应(Ying)信(Xin)息(Xi):(?)类(Lei)的(De)名(Ming)字(Zi)、(?)属(Shu)性(Xing)、(?)方(Fang)法(Fa)、(?)构(Gou)造(Zao)方(Fang)法(Fa)、(?)父(Fu)类(Lei)和(He)接(Jie)口(Kou)
方(Fang) 法(Fa) | 示(Shi) 例(Li) |
对(Dui)象(Xiang)名(Ming) .getClass() |
String str="bdqn";
Class clazz = str.getClass();
|
对(Dui)象(Xiang)名(Ming) .getSuperClass() |
Student stu = new Student();
Class c1 = stu.getClass();
Class c2 = stu.getSuperClass();
|
Class.forName() |
Class clazz = Class.forName("java.lang.Object");
Class.forName("oracle.jdbc.driver.OracleDriver");
|
类(Lei)名(Ming).class |
类(Lei)名(Ming).class
Class c2 = Student.class;
Class c2 = int.class
|
包(Bao)装(Zhuang)类(Lei).TYPE |
包(Bao)装(Zhuang)类(Lei).TYPE
Class c2 = Boolean.TYPE;
|
1)(?)使(Shi)用(Yong)场(Chang)合(He)
在(Zai)编(Bian)译(Yi)时(Shi)根(Gen)本(Ben)无(Wu)法(Fa)知(Zhi)道(Dao)该(Gai)对(Dui)象(Xiang)或(Huo)类(Lei)可(Ke)能(Neng)属(Shu)于(Yu)哪(Na)些(Xie)类(Lei),(?)程(Cheng)序(Xu)只(Zhi)依(Yi)靠(Kao)运(Yun)行(Xing)时(Shi)信(Xin)息(Xi)来(Lai)发(Fa)现(Xian)该(Gai)对(Dui)象(Xiang)和(He)类(Lei)的(De)真(Zhen)实(Shi)信(Xin)息(Xi)。(?)
2)(?)主(Zhu)要(Yao)作(Zuo)用(Yong)
通(Tong)过(Guo)反(Fan)射(She)可(Ke)以(Yi)使(Shi)程(Cheng)序(Xu)代(Dai)码(Ma)访(Fang)问(Wen)装(Zhuang)载(Zai)到(Dao)JVM 中(Zhong)的(De)类(Lei)的(De)内(Nei)部(Bu)信(Xin)息(Xi),(?)获(Huo)取(Qu)已(Yi)装(Zhuang)载(Zai)类(Lei)的(De)属(Shu)性(Xing)信(Xin)息(Xi),(?)获(Huo)取(Qu)已(Yi)装(Zhuang)载(Zai)类(Lei)的(De)方(Fang)法(Fa),(?)获(Huo)取(Qu)已(Yi)装(Zhuang)载(Zai)类(Lei)的(De)构(Gou)造(Zao)方(Fang)法(Fa)信(Xin)息(Xi)
3)(?)反(Fan)射(She)的(De)优(You)点(Dian)
反(Fan)射(She)提(Ti)高(Gao)了(Liao)Java程(Cheng)序(Xu)的(De)灵(Ling)活(Huo)性(Xing)和(He)扩(Kuo)展(Zhan)性(Xing),(?)降(Jiang)低(Di)耦(Ou)合(He)性(Xing),(?)提(Ti)高(Gao)自(Zi)适(Shi)应(Ying)能(Neng)力(Li)。(?)它(Ta)允(Yun)许(Xu)程(Cheng)序(Xu)创(Chuang)建(Jian)和(He)控(Kong)制(Zhi)任(Ren)何(He)类(Lei)的(De)对(Dui)象(Xiang),(?)无(Wu)需(Xu)提(Ti)前(Qian)硬(Ying)编(Bian)码(Ma)目(Mu)标(Biao)类(Lei);(?)反(Fan)射(She)是(Shi)其(Qi)它(Ta)一(Yi)些(Xie)常(Chang)用(Yong)语(Yu)言(Yan),(?)如(Ru)C、(?)C++、(?)Fortran 或(Huo)者(Zhe)Pascal等(Deng)都(Du)不(Bu)具(Ju)备(Bei)的(De)
4)(?) Java反(Fan)射(She)技(Ji)术(Shu)应(Ying)用(Yong)领(Ling)域(Yu)很(Hen)广(Guang),(?)如(Ru)软(Ruan)件(Jian)测(Ce)试(Shi)等(Deng);(?)许(Xu)多(Duo)流(Liu)行(Xing)的(De)开(Kai)源(Yuan)框(Kuang)架(Jia)例(Li)如(Ru)Struts、(?)Hibernate、(?)Spring在(Zai)实(Shi)现(Xian)过(Guo)程(Cheng)中(Zhong)都(Du)采(Cai)用(Yong)了(Liao)该(Gai)技(Ji)术(Shu)
5)(?)反(Fan)射(She)的(De)缺(Que)点(Dian)
性(Xing)能(Neng)问(Wen)题(Ti):(?)使(Shi)用(Yong)反(Fan)射(She)基(Ji)本(Ben)上(Shang)是(Shi)一(Yi)种(Zhong)解(Jie)释(Shi)操(Cao)作(Zuo),(?)用(Yong)于(Yu)字(Zi)段(Duan)和(He)方(Fang)法(Fa)接(Jie)入(Ru)时(Shi)要(Yao)远(Yuan)慢(Man)于(Yu)直(Zhi)接(Jie)代(Dai)码(Ma)。(?)因(Yin)此(Ci)Java反(Fan)射(She)机(Ji)制(Zhi)主(Zhu)要(Yao)应(Ying)用(Yong)在(Zai)对(Dui)灵(Ling)活(Huo)性(Xing)和(He)扩(Kuo)展(Zhan)性(Xing)要(Yao)求(Qiu)很(Hen)高(Gao)的(De)系(Xi)统(Tong)框(Kuang)架(Jia)上(Shang),普(Pu)通(Tong)程(Cheng)序(Xu)不(Bu)建(Jian)议(Yi)使(Shi)用(Yong)。(?)
使(Shi)用(Yong)反(Fan)射(She)会(Hui)模(Mo)糊(Hu)程(Cheng)序(Xu)内(Nei)部(Bu)逻(Luo)辑(Ji):(?)程(Cheng)序(Xu)人(Ren)员(Yuan)希(Xi)望(Wang)在(Zai)源(Yuan)代(Dai)码(Ma)中(Zhong)看(Kan)到(Dao)程(Cheng)序(Xu)的(De)逻(Luo)辑(Ji),(?)反(Fan)射(She)等(Deng)绕(Rao)过(Guo)了(Liao)源(Yuan)代(Dai)码(Ma)的(De)技(Ji)术(Shu),(?)因(Yin)而(?)会(Hui)带(Dai)来(Lai)维(Wei)护(Hu)问(Wen)题(Ti)。(?)反(Fan)射(She)代(Dai)码(Ma)比(Bi)相(Xiang)应(Ying)的(De)直(Zhi)接(Jie)代(Dai)码(Ma)更(Geng)复(Fu)杂(Za)。(?)
面(Mian)向(Xiang)对(Dui)象(Xiang)设(She)计(Ji)原(Yuan)则(Ze)是(Shi)面(Mian)向(Xiang)对(Dui)象(Xiang)设(She)计(Ji)的(De)基(Ji)石(Shi),(?)面(Mian)向(Xiang)对(Dui)象(Xiang)设(She)计(Ji)质(Zhi)量(Liang)的(De)依(Yi)据(Ju)和(He)保(Bao)障(Zhang),(?)设(She)计(Ji)模(Mo)式(Shi)是(Shi)面(Mian)向(Xiang)对(Dui)象(Xiang)设(She)计(Ji)原(Yuan)则(Ze)的(De)经(Jing)典(Dian)应(Ying)用(Yong)
1)(?)单(Dan)一(Yi)职(Zhi)责(Ze)原(Yuan)则(Ze)SRP
2)(?)开(Kai)闭(Bi)原(Yuan)则(Ze)OCP
3)(?)里(Li)氏(Shi)替(Ti)代(Dai)原(Yuan)则(Ze)LSP
4)(?)依(Yi)赖(Lai)注(Zhu)入(Ru)原(Yuan)则(Ze)DIP
5)(?)接(Jie)口(Kou)分(Fen)离(Li)原(Yuan)则(Ze)ISP
6)(?)迪(Di)米(Mi)特(Te)原(Yuan)则(Ze)LOD
7)(?)组(Zu)合(He)/聚(Ju)合(He)复(Fu)用(Yong)原(Yuan)则(Ze)CARP
8)(?)开(Kai)闭(Bi)原(Yuan)则(Ze)具(Ju)有(You)理(Li)想(Xiang)主(Zhu)义(Yi)的(De)色(Se)彩(Cai),(?)它(Ta)是(Shi)面(Mian)向(Xiang)对(Dui)象(Xiang)设(She)计(Ji)的(De)终(Zhong)极(Ji)目(Mu)标(Biao)。(?)其(Qi)他(Ta)设(She)计(Ji)原(Yuan)则(Ze)都(Du)可(Ke)以(Yi)看(Kan)作(Zuo)是(Shi)开(Kai)闭(Bi)原(Yuan)则(Ze)的(De)实(Shi)现(Xian)手(Shou)段(Duan)或(Huo)方(Fang)法(Fa)

String相(Xiang)关(Guan):(?)
String str1="hello"; String str2=new String("hello"); System.out.println(str1==str2);
A. | true |
B. | false |
C. | hello |
D. | he |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?)str1没(Mei)有(You)使(Shi)用(Yong)new关(Guan)键(Jian)字(Zi),(?)在(Zai)堆(Dui)中(Zhong)没(Mei)有(You)开(Kai)辟(Bi)空(Kong)间(Jian),(?)其(Qi)值(Zhi)”(?)hello”(?)在(Zai)常(Chang)量(Liang)池(Chi)中(Zhong),(?)str2使(Shi)用(Yong)new关(Guan)键(Jian)字(Zi)创(Chuang)建(Jian)了(Liao)一(Yi)个(Ge)对(Dui)象(Xiang),(?)在(Zai)堆(Dui)中(Zhong)开(Kai)辟(Bi)了(Liao)空(Kong)间(Jian),(?)”(?)==”(?)比(Bi)较(Jiao)的(De)是(Shi)对(Dui)象(Xiang)的(De)引(Yin)用(Yong),(?)即(Ji)内(Nei)存(Cun)地(Di)址(Zhi),(?)所(Suo)以(Yi)str1与(Yu)str2两(Liang)个(Ge)对(Dui)象(Xiang)的(De)内(Nei)存(Cun)地(Di)址(Zhi)是(Shi)不(Bu)相(Xiang)同(Tong)的(De)
|
A. | int16 |
B. | int32 |
C. | int |
D. | long |
答(Da)案(An):(?)C
|
public class Example { String str=new String("good"); char [] ch={'a','b','c'}; public static void main(String[] args) { Example ex=new Example(); ex.change(ex.str, ex.ch); System.out.print(ex.str+"and"); System.out.print(ex.ch); } public void change(String str,char ch[]){ str="test ok"; ch[0]='g'; } }
A. | goodandabc |
B. | goodandgbc |
C. | test okandabc |
D. | test okandgbc |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?)在(Zai)方(Fang)法(Fa)调(Diao)用(Yong)时(Shi),(?)在(Zai)change方(Fang)法(Fa)中(Zhong)对(Dui)str的(De)值(Zhi)进(Jin)行(Xing)修(Xiu)改(Gai),(?)是(Shi)将(Jiang)str指(Zhi)向(Xiang)了(Liao)常(Chang)量(Liang)江(Jiang)池(Chi)中(Zhong)的(De)”(?)test ok”(?),(?)而(?)主(Zhu)方(Fang)法(Fa)中(Zhong)的(De)ex.str仍(Reng)然(Ran)指(Zhi)向(Xiang)的(De)是(Shi)常(Chang)量(Liang)池(Chi)中(Zhong)的(De)”(?)good”(?)。(?)字(Zi)符(Fu)型(Xing)数(Shu)组(Zu)在(Zai)方(Fang)法(Fa)调(Diao)用(Yong)时(Shi),(?)将(Jiang)主(Zhu)方(Fang)法(Fa)中(Zhong)ex.ch的(De)引(Yin)用(Yong)传(Chuan)递(Di)给(Gei)change方(Fang)法(Fa)中(Zhong)的(De)ch,(?)指(Zhi)向(Xiang)是(Shi)堆(Dui)中(Zhong)的(De)同(Tong)一(Yi)堆(Dui)空(Kong)间(Jian),(?)所(Suo)以(Yi)修(Xiu)改(Gai)ch[0]的(De)时(Shi)候(Hou),ex.ch可(Ke)以(Yi)看(Kan)到(Dao)相(Xiang)同(Tong)的(De)修(Xiu)改(Gai)后(Hou)的(De)结(Jie)果(Guo)。(?)
|
String[] s=new String[10];
A. | s[10]为(Wei)”(?)”(?) |
B. | s[9]为(Wei)null |
C. | s[0]为(Wei)未(Wei)定(Ding)义(Yi) |
D. | s.length为(Wei)10 |
答(Da)案(An):(?)BD
分(Fen)析(Xi):(?) 引(Yin)用(Yong)数(Shu)据(Ju)类(Lei)型(Xing)的(De)默(Mo)认(Ren)值(Zhi)均(Jun)为(Wei)null
s.length数(Shu)组(Zu)的(De)长(Chang)度(Du) |
思(Si)路(Lu)说(Shuo)明(Ming):(?)replaceAll方(Fang)法(Fa)的(De)本(Ben)质(Zhi)是(Shi)使(Shi)用(Yong)正(Zheng)则(Ze)表(Biao)达(Da)式(Shi)进(Jin)行(Xing)匹(Pi)配(Pei),(?)最(Zui)终(Zhong)调(Diao)用(Yong)的(De)其(Qi)实(Shi)是(Shi)Matcher对(Dui)象(Xiang)的(De)replaceAll方(Fang)法(Fa)。(?)
import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestStringReplaceAll { public static void main(String[] args) { String str = "a1s2d3f4h5j6k7"; // 将(Jiang)字(Zi)符(Fu)串(Chuan)中(Zhong)的(De)数(Shu)字(Zi)全(Quan)部(Bu)替(Ti)换(Huan)为(Wei)0 System.out.println(replaceAll(str, "\\d", "0")); } /** * @param str:源(Yuan)字(Zi)符(Fu)串(Chuan) * @param regex:正(Zheng)则(Ze)表(Biao)达(Da)式(Shi) * @param newStr:替(Ti)换(Huan)后(Hou)的(De)子(Zi)字(Zi)符(Fu)串(Chuan) * @return 返(Fan)回(Hui)替(Ti)换(Huan)成(Cheng)功(Gong)后(Hou)的(De)字(Zi)符(Fu)串(Chuan) */ public static String replaceAll(String str, String regex, String newStr) { Pattern pattern = Pattern.compile(regex); Matcher mathcer = pattern.matcher(str); String reslut = mathcer.replaceAll(newStr); return reslut; } }
String []a=new String[10];
则(Ze):(?)a[0]~a[9]=null;
a.length=10;
如(Ru)果(Guo)是(Shi)int[]a=new int[10];
则(Ze):(?)a[0]~a[9]= (0)
a.length= (10)
答(Da):不(Bu)可(Ke)以(Yi),(?)因(Yin)为(Wei)String类(Lei)有(You)final修(Xiu)饰(Shi)符(Fu),(?)而(?)final修(Xiu)饰(Shi)的(De)类(Lei)是(Shi)不(Bu)能(Neng)被(Bei)继(Ji)承(Cheng)的(De),(?)实(Shi)现(Xian)细(Xi)节(Jie)不(Bu)允(Yun)许(Xu)改(Gai)变(Bian)。(?)
public final class String implements java.io.Serializable,
Comparable< String>, CharSequence
public class Solution { public boolean isAnagram(String s, String t) { if(s.length()!=t.length()) return false; int bit[] = new int[26]; for(int i=0;i<s.length();i++){ bit[s.charAt(i)-'a']++; } for(int i=0;i<s.length();i++){ if(--bit[t.charAt(i)-'a']<0) return false; } return true; } }
两(Liang)个(Ge)或(Huo)一(Yi)个(Ge),(?)”(?)abc”(?)对(Dui)应(Ying)一(Yi)个(Ge)对(Dui)象(Xiang),(?)这(Zhe)个(Ge)对(Dui)象(Xiang)放(Fang)在(Zai)字(Zi)符(Fu)串(Chuan)常(Chang)量(Liang)缓(Huan)冲(Chong)区(Qu),(?)常(Chang)量(Liang)”(?)abc”(?)不(Bu)管(Guan)出(Chu)现(Xian)多(Duo)少(Shao)遍(Bian),(?)都(Du)是(Shi)缓(Huan)冲(Chong)区(Qu)中(Zhong)的(De)那(Na)一(Yi)个(Ge)。(?)New String每(Mei)写(Xie)一(Yi)遍(Bian),(?)就(Jiu)创(Chuang)建(Jian)一(Yi)个(Ge)新(Xin)的(De)对(Dui)象(Xiang),(?)它(Ta)一(Yi)句(Ju)那(Na)个(Ge)常(Chang)量(Liang)”(?)abc”(?)对(Dui)象(Xiang)的(De)内(Nei)容(Rong)来(Lai)创(Chuang)建(Jian)出(Chu)一(Yi)个(Ge)新(Xin)String对(Dui)象(Xiang)。(?)如(Ru)果(Guo)以(Yi)前(Qian)就(Jiu)用(Yong)过(Guo)’(?)abc’(?),(?)这(Zhe)句(Ju)代(Dai)表(Biao)就(Jiu)不(Bu)会(Hui)创(Chuang)建(Jian)”(?)abc”(?)自(Zi)己(Ji)了(Liao),(?)直(Zhi)接(Jie)从(Cong)缓(Huan)冲(Chong)区(Qu)拿(Na)。(?)
String str1=“(?)hello”(?);(?) Sring str2=“(?)he”(?)+new String(“(?)llo”(?));(?) Sysem.out.println(str1==str2)); Sysem.out.println(str.equal(str2));
false
true
import java.util.*; public class Test 6{ public static void main(String[] args) { for (int i = 0; i < 10; i++) { Integer k=new Integer(i); System.out.println(k+" Hello world"); } } }
0 Hello world
1 Hello world
2 Hello world
3 Hello world
4 Hello world
5 Hello world
6 Hello world
7 Hello world
8 Hello world
9 Hello world
A. | String类(Lei)是(Shi)final类(Lei)故(Gu)不(Bu)可(Ke)继(Ji)承(Cheng) |
B. | String类(Lei)final类(Lei)故(Gu)可(Ke)以(Yi)继(Ji)承(Cheng) |
C. | String类(Lei)不(Bu)是(Shi)final类(Lei)故(Gu)不(Bu)可(Ke)继(Ji)承(Cheng) |
D. | String;类(Lei)不(Bu)是(Shi)final类(Lei)故(Gu)可(Ke)以(Yi)继(Ji)承(Cheng) |
答(Da)案(An):(?)A
|
A. | String temp[ ] = new String{“(?)a”(?),”(?)b”(?),”(?)c”(?)}; |
B. | String temp[ ] = {“(?)a”(?),”(?)b”(?),”(?)c”(?)}; |
C. | String temp= {“(?)a”(?),”(?)b”(?),”(?)c”(?)}; |
D. | String[ ] temp = {“(?)a”(?),”(?)b”(?),”(?)c”(?)}; |
答(Da)案(An):(?)BD
|
package com.bjsxt; public class Test { public static void main(String[] args) { String s1 = new String("Hello"); String s2 = new String("Hello"); System.out.print(s1 == s2); String s3 = "Hello"; String s4 = "Hello"; System.out.print(s3 == s4); s1 = s3; s2 = s4; System.out.print(s1 == s2); } }
A. | false true true |
B. | true false true |
C. | true true false |
D. | true true false |
答(Da)案(An):(?)A
|
public class Test { public static void main(String[] args) { //方(Fang)式(Shi)一(Yi) int num=Integer.parseInt("123"); //方(Fang)式(Shi)二(?) int num2=Integer.valueOf("123"); System.out.println(num+" "+num2); } }
public class Test { public static void main(String[] args) { String result=reverse("abc"); System.out.println(result); } public static String reverse(String str){ StringBuilder result=new StringBuilder(""); char[] chArra=str.toCharArray(); for(int i=chArra.length-1;i>=0;i--){ char ch=chArra[i]; result.append(ch); } return result.toString(); } }
public classDemo1 { publicstaticvoid main(String[] args) { String s="I follow Bill Gate.Tom Gate.John Gate"; System.out.println(s); s=s.replaceAll("Gate","Gates"); System.out.println(s); } }
答(Da):(?) 不(Bu)是(Shi) 。(?)Java中(Zhong)的(De)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)只(Zhi)有(You)8个(Ge):(?)byte、(?)short、(?)int、(?)long、(?)float、(?)double、(?)char、(?)boolean;(?)除(Chu)了(Liao)基(Ji)本(Ben)类(Lei)型(Xing)((?)primitive type)(?)和(He)枚(Mei)举(Ju)类(Lei)型(Xing)((?)enumeration type)(?),(?)剩(Sheng)下(Xia)的(De)都(Du)是(Shi)引(Yin)用(Yong)类(Lei)型(Xing)((?)reference type)(?)。(?)
答(Da):(?) Java 平(Ping)台(Tai)提(Ti)供(Gong)了(Liao)两(Liang)种(Zhong)类(Lei)型(Xing)的(De)字(Zi)符(Fu)串(Chuan):(?)String和(He)StringBuffer / StringBuilder
相(Xiang)同(Tong)点(Dian):(?)
它(Ta)们(Men)都(Du)可(Ke)以(Yi)储(Chu)存(Cun)和(He)操(Cao)作(Zuo)字(Zi)符(Fu)串(Chuan),(?)同(Tong)时(Shi)三(San)者(Zhe)都(Du)使(Shi)用(Yong)final修(Xiu)饰(Shi),(?)都(Du)属(Shu)于(Yu)终(Zhong)结(Jie)类(Lei)不(Bu)能(Neng)派(Pai)生(Sheng)子(Zi)类(Lei),(?)操(Cao)作(Zuo)的(De)相(Xiang)关(Guan)方(Fang)法(Fa)也(Ye)类(Lei)似(Si)例(Li)如(Ru)获(Huo)取(Qu)字(Zi)符(Fu)串(Chuan)长(Chang)度(Du)等(Deng);(?)
不(Bu)同(Tong)点(Dian):(?)
其(Qi)中(Zhong)String是(Shi)只(Zhi)读(Du)字(Zi)符(Fu)串(Chuan),(?)也(Ye)就(Jiu)意(Yi)味(Wei)着(Zhuo)String引(Yin)用(Yong)的(De)字(Zi)符(Fu)串(Chuan)内(Nei)容(Rong)是(Shi)不(Bu)能(Neng)被(Bei)改(Gai)变(Bian)的(De),(?)而(?)StringBuffer和(He)StringBuilder类(Lei)表(Biao)示(Shi)的(De)字(Zi)符(Fu)串(Chuan)对(Dui)象(Xiang)可(Ke)以(Yi)直(Zhi)接(Jie)进(Jin)行(Xing)修(Xiu)改(Gai),(?)在(Zai)修(Xiu)改(Gai)的(De)同(Tong)时(Shi)地(Di)址(Zhi)值(Zhi)不(Bu)会(Hui)发(Fa)生(Sheng)改(Gai)变(Bian)。(?)StringBuilder是(Shi)JDK 1.5中(Zhong)引(Yin)入(Ru)的(De),(?)它(Ta)和(He)StringBuffer的(De)方(Fang)法(Fa)完(Wan)全(Quan)相(Xiang)同(Tong),(?)区(Qu)别(Bie)在(Zai)于(Yu)它(Ta)是(Shi)在(Zai)单(Dan)线(Xian)程(Cheng)环(Huan)境(Jing)下(Xia)使(Shi)用(Yong)的(De),(?)因(Yin)为(Wei)它(Ta)的(De)所(Suo)有(You)方(Fang)面(Mian)都(Du)没(Mei)有(You)被(Bei)synchronized修(Xiu)饰(Shi),(?)因(Yin)此(Ci)它(Ta)的(De)效(Xiao)率(Lu)也(Ye)比(Bi)StringBuffer略(Lue)高(Gao)。(?)在(Zai)此(Ci)重(Zhong)点(Dian)说(Shuo)明(Ming)一(Yi)下(Xia),(?)String、(?)StringBuffer、(?)StringBuilder三(San)者(Zhe)类(Lei)型(Xing)不(Bu)一(Yi)样(Yang),(?)无(Wu)法(Fa)使(Shi)用(Yong)equals()方(Fang)法(Fa)比(Bi)较(Jiao)其(Qi)字(Zi)符(Fu)串(Chuan)内(Nei)容(Rong)是(Shi)否(Fou)一(Yi)样(Yang)!(?)
补(Bu)充(Chong)1:(?)有(You)一(Yi)个(Ge)面(Mian)试(Shi)题(Ti)问(Wen):(?)有(You)没(Mei)有(You)哪(Na)种(Zhong)情(Qing)况(Kuang)用(Yong)+做(Zuo)字(Zi)符(Fu)串(Chuan)连(Lian)接(Jie)比(Bi)调(Diao)用(Yong)StringBuffer / StringBuilder对(Dui)象(Xiang)的(De)append方(Fang)法(Fa)性(Xing)能(Neng)更(Geng)好(Hao)?(?)如(Ru)果(Guo)连(Lian)接(Jie)后(Hou)得(De)到(Dao)的(De)字(Zi)符(Fu)串(Chuan)在(Zai)静(Jing)态(Tai)存(Cun)储(Chu)区(Qu)中(Zhong)是(Shi)早(Zao)已(Yi)存(Cun)在(Zai)的(De),(?)那(Na)么(Me)用(Yong)+做(Zuo)字(Zi)符(Fu)串(Chuan)连(Lian)接(Jie)是(Shi)优(You)于(Yu)StringBuffer / StringBuilder的(De)append方(Fang)法(Fa)的(De)。(?)
补(Bu)充(Chong)2:(?)下(Xia)面(Mian)也(Ye)是(Shi)一(Yi)个(Ge)面(Mian)试(Shi)题(Ti),(?)问(Wen)程(Cheng)序(Xu)的(De)输(Shu)出(Chu),(?)看(Kan)看(Kan)自(Zi)己(Ji)能(Neng)不(Bu)能(Neng)说(Shuo)出(Chu)正(Zheng)确(Que)答(Da)案(An)。(?)
package com.bjsxt; public class smallT { public static void main(String[] args) { String a = "Programming"; String b = new String("Programming"); String c = "Program" + "ming"; System.out.println(a == b); System.out.println(a == c); System.out.println(a.equals(b)); System.out.println(a.equals(c)); System.out.println(a.intern() == b.intern()); } }
解(Jie)析(Xi):(?)
String类(Lei)存(Cun)在(Zai)intern()方(Fang)法(Fa),(?)含(Han)义(Yi)如(Ru)下(Xia):(?)返(Fan)回(Hui)字(Zi)符(Fu)串(Chuan)对(Dui)象(Xiang)的(De)规(Gui)范(Fan)化(Hua)表(Biao)示(Shi)形(Xing)式(Shi)。(?)它(Ta)遵(Zun)循(Xun)以(Yi)下(Xia)规(Gui)则(Ze):(?)对(Dui)于(Yu)任(Ren)意(Yi)两(Liang)个(Ge)字(Zi)符(Fu)串(Chuan) s 和(He) t,(?)当(Dang)且(Qie)仅(Jin)当(Dang) s.equals(t) 为(Wei) true 时(Shi),(?)s.intern()==t.intern() 才(Cai)为(Wei) true。(?)
字(Zi)符(Fu)串(Chuan)比(Bi)较(Jiao)分(Fen)为(Wei)两(Liang)种(Zhong)形(Xing)式(Shi),(?)一(Yi)种(Zhong)使(Shi)用(Yong)比(Bi)较(Jiao)运(Yun)算(Suan)符(Fu)”(?)==”(?)比(Bi)较(Jiao),(?)他(Ta)们(Men)比(Bi)较(Jiao)的(De)是(Shi)各(Ge)自(Zi)的(De)字(Zi)符(Fu)串(Chuan)在(Zai)内(Nei)存(Cun)当(Dang)中(Zhong)的(De)地(Di)址(Zhi)值(Zhi)是(Shi)否(Fou)相(Xiang)同(Tong);(?)一(Yi)种(Zhong)是(Shi)使(Shi)用(Yong)equals()方(Fang)法(Fa)进(Jin)行(Xing)比(Bi)较(Jiao),(?)比(Bi)较(Jiao)的(De)是(Shi)两(Liang)个(Ge)字(Zi)符(Fu)串(Chuan)的(De)内(Nei)容(Rong)是(Shi)否(Fou)相(Xiang)同(Tong)!(?)

结(Jie)果(Guo)如(Ru)下(Xia):(?)
a == b-->false
a == c-->true
a.equals(b)-->true
a.equals(c)-->true
a.intern() == b.intern()-->true
答(Da):(?)1)(?) 为(Wei)了(Liao)效(Xiao)率(Lu)。(?)若(Ruo)允(Yun)许(Xu)被(Bei)继(Ji)承(Cheng),(?)则(Ze)其(Qi)高(Gao)度(Du)的(De)被(Bei)使(Shi)用(Yong)率(Lu)可(Ke)能(Neng)会(Hui)降(Jiang)低(Di)程(Cheng)序(Xu)的(De)性(Xing)能(Neng)。(?)
2)(?)为(Wei)了(Liao)安(An)全(Quan)。(?)JDK中(Zhong)提(Ti)供(Gong)的(De)好(Hao)多(Duo)核(He)心(Xin)类(Lei)比(Bi)如(Ru)String,(?)这(Zhe)类(Lei)的(De)类(Lei)的(De)内(Nei)部(Bu)好(Hao)多(Duo)方(Fang)法(Fa)的(De)实(Shi)现(Xian)都(Du)不(Bu)是(Shi)java编(Bian)程(Cheng)语(Yu)言(Yan)本(Ben)身(Shen)编(Bian)写(Xie)的(De),(?)好(Hao)多(Duo)方(Fang)法(Fa)都(Du)是(Shi)调(Diao)用(Yong)的(De)操(Cao)作(Zuo)系(Xi)统(Tong)本(Ben)地(Di)的(De)API,(?)这(Zhe)就(Jiu)是(Shi)著(Zhu)名(Ming)的(De)“(?)本(Ben)地(Di)方(Fang)法(Fa)调(Diao)用(Yong)”(?),(?)也(Ye)只(Zhi)有(You)这(Zhe)样(Yang)才(Cai)能(Neng)做(Zuo)事(Shi),(?)这(Zhe)种(Zhong)类(Lei)是(Shi)非(Fei)常(Chang)底(Di)层(Ceng)的(De),(?)和(He)操(Cao)作(Zuo)系(Xi)统(Tong)交(Jiao)流(Liu)频(Pin)繁(Fan)的(De),(?)那(Na)么(Me)如(Ru)果(Guo)这(Zhe)种(Zhong)类(Lei)可(Ke)以(Yi)被(Bei)继(Ji)承(Cheng)的(De)话(Hua),(?)如(Ru)果(Guo)我(Wo)们(Men)再(Zai)把(Ba)它(Ta)的(De)方(Fang)法(Fa)重(Zhong)写(Xie)了(Liao),(?)往(Wang)操(Cao)作(Zuo)系(Xi)统(Tong)内(Nei)部(Bu)写(Xie)入(Ru)一(Yi)段(Duan)具(Ju)有(You)恶(E)意(Yi)攻(Gong)击(Ji)性(Xing)质(Zhi)的(De)代(Dai)码(Ma)什(Shi)么(Me)的(De),(?)这(Zhe)不(Bu)就(Jiu)成(Cheng)了(Liao)核(He)心(Xin)病(Bing)毒(Du)了(Liao)么(Me)?(?)不(Bu)希(Xi)望(Wang)别(Bie)人(Ren)改(Gai),(?)这(Zhe)个(Ge)类(Lei)就(Jiu)像(Xiang)一(Yi)个(Ge)工(Gong)具(Ju)一(Yi)样(Yang),(?)类(Lei)的(De)提(Ti)供(Gong)者(Zhe)给(Gei)我(Wo)们(Men)提(Ti)供(Gong)了(Liao),(?) 就(Jiu)希(Xi)望(Wang)我(Wo)们(Men)直(Zhi)接(Jie)用(Yong)就(Jiu)完(Wan)了(Liao),(?)不(Bu)想(Xiang)让(Rang)我(Wo)们(Men)随(Sui)便(Bian)能(Neng)改(Gai),(?)其(Qi)实(Shi)说(Shuo)白(Bai)了(Liao)还(Huan)是(Shi)安(An)全(Quan)性(Xing),(?)如(Ru)果(Guo)随(Sui)便(Bian)能(Neng)改(Gai)了(Liao),(?)那(Na)么(Me)java编(Bian)写(Xie)的(De)程(Cheng)序(Xu)肯(Ken)定(Ding)就(Jiu)很(Hen)不(Bu)稳(Wen)定(Ding),(?)你(Ni)可(Ke)以(Yi)保(Bao)证(Zheng)自(Zi)己(Ji)不(Bu)乱(Luan)改(Gai),(?) 但(Dan)是(Shi)将(Jiang)来(Lai)一(Yi)个(Ge)项(Xiang)目(Mu)好(Hao)多(Duo)人(Ren)来(Lai)做(Zuo),(?)管(Guan)不(Bu)了(Liao)别(Bie)人(Ren),(?)再(Zai)说(Shuo)有(You)时(Shi)候(Hou)万(Wan)一(Yi)疏(Shu)忽(Hu)了(Liao)呢(Ne)?(?)他(Ta)也(Ye)不(Bu)是(Shi)估(Gu)计(Ji)的(De),(?) 所(Suo)以(Yi)这(Zhe)个(Ge)安(An)全(Quan)性(Xing)是(Shi)很(Hen)重(Zhong)要(Yao)的(De),(?)java和(He)C++相(Xiang)比(Bi),(?)优(You)点(Dian)之(Zhi)一(Yi)就(Jiu)包(Bao)括(Kuo)这(Zhe)一(Yi)点(Dian)。(?)
1)(?) 基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)包(Bao)括(Kuo)byte、(?)short/char、(?)int、(?)long、(?)float、(?)double、(?)boolean
2 ) java.lang.String类(Lei)是(Shi)引(Yin)用(Yong)数(Shu)据(Ju)类(Lei)型(Xing),(?)并(Bing)且(Qie)是(Shi)final类(Lei)型(Xing)的(De),(?)因(Yin)此(Ci)不(Bu)可(Ke)以(Yi)继(Ji)承(Cheng)这(Zhe)个(Ge)类(Lei)、(?)不(Bu)能(Neng)修(Xiu)改(Gai)这(Zhe)个(Ge)类(Lei)。(?)为(Wei)了(Liao)提(Ti)高(Gao)效(Xiao)率(Lu)节(Jie)省(Sheng)空(Kong)间(Jian),(?)我(Wo)们(Men)应(Ying)该(Gai)用(Yong)StringBuffer类(Lei)
答(Da):(?)不(Bu)是(Shi)对(Dui)前(Qian)面(Mian)s指(Zhi)向(Xiang)空(Kong)间(Jian)内(Nei)容(Rong)的(De)直(Zhi)接(Jie)修(Xiu)改(Gai)。(?)
因(Yin)为(Wei)String被(Bei)设(She)计(Ji)成(Cheng)不(Bu)可(Ke)变(Bian)(immutable)类(Lei),(?)所(Suo)以(Yi)它(Ta)的(De)所(Suo)有(You)对(Dui)象(Xiang)都(Du)是(Shi)不(Bu)可(Ke)变(Bian)对(Dui)象(Xiang)。(?)在(Zai)这(Zhe)段(Duan)代(Dai)码(Ma)中(Zhong),(?)s原(Yuan)先(Xian)指(Zhi)向(Xiang)一(Yi)个(Ge)String对(Dui)象(Xiang),(?)内(Nei)容(Rong)是(Shi) "Hello",(?)然(Ran)后(Hou)我(Wo)们(Men)对(Dui)s进(Jin)行(Xing)了(Liao)+操(Cao)作(Zuo),(?)那(Na)么(Me)s所(Suo)指(Zhi)向(Xiang)的(De)那(Na)个(Ge)对(Dui)象(Xiang)是(Shi)否(Fou)发(Fa)生(Sheng)了(Liao)改(Gai)变(Bian)呢(Ne)?(?)答(Da)案(An)是(Shi)没(Mei)有(You)。(?)这(Zhe)时(Shi),(?)s不(Bu)指(Zhi)向(Xiang)原(Yuan)来(Lai)那(Na)个(Ge)对(Dui)象(Xiang)了(Liao),(?)而(?)指(Zhi)向(Xiang)了(Liao)另(Ling)一(Yi)个(Ge) String对(Dui)象(Xiang),(?)内(Nei)容(Rong)为(Wei)"Helloworld!",(?)原(Yuan)来(Lai)那(Na)个(Ge)对(Dui)象(Xiang)还(Huan)存(Cun)在(Zai)于(Yu)内(Nei)存(Cun)之(Zhi)中(Zhong),(?)只(Zhi)是(Shi)s这(Zhe)个(Ge)引(Yin)用(Yong)变(Bian)量(Liang)不(Bu)再(Zai)指(Zhi)向(Xiang)它(Ta)了(Liao)。(?)
通(Tong)过(Guo)上(Shang)面(Mian)的(De)说(Shuo)明(Ming),(?)我(Wo)们(Men)很(Hen)容(Rong)易(Yi)导(Dao)出(Chu)另(Ling)一(Yi)个(Ge)结(Jie)论(Lun),(?)如(Ru)果(Guo)经(Jing)常(Chang)对(Dui)字(Zi)符(Fu)串(Chuan)进(Jin)行(Xing)各(Ge)种(Zhong)各(Ge)样(Yang)的(De)修(Xiu)改(Gai),(?)或(Huo)者(Zhe)说(Shuo),(?)不(Bu)可(Ke)预(Yu)见(Jian)的(De)修(Xiu)改(Gai),(?)那(Na)么(Me)使(Shi)用(Yong)String来(Lai)代(Dai)表(Biao)字(Zi)符(Fu)串(Chuan)的(De)话(Hua)会(Hui)引(Yin)起(Qi)很(Hen)大(Da)的(De)内(Nei)存(Cun)开(Kai)销(Xiao)。(?)因(Yin)为(Wei) String对(Dui)象(Xiang)建(Jian)立(Li)之(Zhi)后(Hou)不(Bu)能(Neng)再(Zai)改(Gai)变(Bian),(?)所(Suo)以(Yi)对(Dui)于(Yu)每(Mei)一(Yi)个(Ge)不(Bu)同(Tong)的(De)字(Zi)符(Fu)串(Chuan),(?)都(Du)需(Xu)要(Yao)一(Yi)个(Ge)String对(Dui)象(Xiang)来(Lai)表(Biao)示(Shi)。(?)这(Zhe)时(Shi),(?)应(Ying)该(Gai)考(Kao)虑(Lu)使(Shi)用(Yong)StringBuffer类(Lei),(?)它(Ta)允(Yun)许(Xu)修(Xiu)改(Gai),(?)而(?)不(Bu)是(Shi)每(Mei)个(Ge)不(Bu)同(Tong)的(De)字(Zi)符(Fu)串(Chuan)都(Du)要(Yao)生(Sheng)成(Cheng)一(Yi)个(Ge)新(Xin)的(De)对(Dui)象(Xiang)。(?)并(Bing)且(Qie),(?)这(Zhe)两(Liang)种(Zhong)类(Lei)的(De)对(Dui)象(Xiang)转(Zhuan)换(Huan)十(Shi)分(Fen)容(Rong)易(Yi)。(?)
同(Tong)时(Shi),(?)我(Wo)们(Men)还(Huan)可(Ke)以(Yi)知(Zhi)道(Dao),(?)如(Ru)果(Guo)要(Yao)使(Shi)用(Yong)内(Nei)容(Rong)相(Xiang)同(Tong)的(De)字(Zi)符(Fu)串(Chuan),(?)不(Bu)必(Bi)每(Mei)次(Ci)都(Du)new一(Yi)个(Ge)String。(?)例(Li)如(Ru)我(Wo)们(Men)要(Yao)在(Zai)构(Gou)造(Zao)器(Qi)中(Zhong)对(Dui)一(Yi)个(Ge)名(Ming)叫(Jiao)s的(De)String引(Yin)用(Yong)变(Bian)量(Liang)进(Jin)行(Xing)初(Chu)始(Shi)化(Hua),(?)把(Ba)它(Ta)设(She)置(Zhi)为(Wei)初(Chu)始(Shi)值(Zhi),(?)应(Ying)当(Dang)这(Zhe)样(Yang)做(Zuo):(?)
public class Demo { private String s; ... public Demo { s = "Initial Value"; } ... }
而(?)非(Fei)
s=newString("InitialValue");
后(Hou)者(Zhe)每(Mei)次(Ci)都(Du)会(Hui)调(Diao)用(Yong)构(Gou)造(Zao)器(Qi),(?)生(Sheng)成(Cheng)新(Xin)对(Dui)象(Xiang),(?)性(Xing)能(Neng)低(Di)下(Xia)且(Qie)内(Nei)存(Cun)开(Kai)销(Xiao)大(Da),(?)并(Bing)且(Qie)没(Mei)有(You)意(Yi)义(Yi),(?)因(Yin)为(Wei)String对(Dui)象(Xiang)不(Bu)可(Ke)改(Gai)变(Bian),(?)所(Suo)以(Yi)对(Dui)于(Yu)内(Nei)容(Rong)相(Xiang)同(Tong)的(De)字(Zi)符(Fu)串(Chuan),(?)只(Zhi)要(Yao)一(Yi)个(Ge)String对(Dui)象(Xiang)来(Lai)表(Biao)示(Shi)就(Jiu)可(Ke)以(Yi)了(Liao)。(?)也(Ye)就(Jiu)说(Shuo),(?)多(Duo)次(Ci)调(Diao)用(Yong)上(Shang)面(Mian)的(De)构(Gou)造(Zao)器(Qi)创(Chuang)建(Jian)多(Duo)个(Ge)对(Dui)象(Xiang),(?)他(Ta)们(Men)的(De)String类(Lei)型(Xing)属(Shu)性(Xing)s都(Du)指(Zhi)向(Xiang)同(Tong)一(Yi)个(Ge)对(Dui)象(Xiang)。(?)
上(Shang)面(Mian)的(De)结(Jie)论(Lun)还(Huan)基(Ji)于(Yu)这(Zhe)样(Yang)一(Yi)个(Ge)事(Shi)实(Shi):(?)对(Dui)于(Yu)字(Zi)符(Fu)串(Chuan)常(Chang)量(Liang),(?)如(Ru)果(Guo)内(Nei)容(Rong)相(Xiang)同(Tong),(?)Java认(Ren)为(Wei)它(Ta)们(Men)代(Dai)表(Biao)同(Tong)一(Yi)个(Ge)String对(Dui)象(Xiang)。(?)而(?)用(Yong)关(Guan)键(Jian)字(Zi)new调(Diao)用(Yong)构(Gou)造(Zao)器(Qi),(?)总(Zong)是(Shi)会(Hui)创(Chuang)建(Jian)一(Yi)个(Ge)新(Xin)的(De)对(Dui)象(Xiang),(?)无(Wu)论(Lun)内(Nei)容(Rong)是(Shi)否(Fou)相(Xiang)同(Tong)。(?)
至(Zhi)于(Yu)为(Wei)什(Shi)么(Me)要(Yao)把(Ba)String类(Lei)设(She)计(Ji)成(Cheng)不(Bu)可(Ke)变(Bian)类(Lei),(?)是(Shi)它(Ta)的(De)用(Yong)途(Tu)决(Jue)定(Ding)的(De)。(?)其(Qi)实(Shi)不(Bu)只(Zhi)String,(?)很(Hen)多(Duo)Java标(Biao)准(Zhun)类(Lei)库(Ku)中(Zhong)的(De)类(Lei)都(Du)是(Shi)不(Bu)可(Ke)变(Bian)的(De)。(?)在(Zai)开(Kai)发(Fa)一(Yi)个(Ge)系(Xi)统(Tong)的(De)时(Shi)候(Hou),(?)我(Wo)们(Men)有(You)时(Shi)候(Hou)也(Ye)需(Xu)要(Yao)设(She)计(Ji)不(Bu)可(Ke)变(Bian)类(Lei),(?)来(Lai)传(Chuan)递(Di)一(Yi)组(Zu)相(Xiang)关(Guan)的(De)值(Zhi),(?)这(Zhe)也(Ye)是(Shi)面(Mian)向(Xiang)对(Dui)象(Xiang)思(Si)想(Xiang)的(De)体(Ti)现(Xian)。(?)不(Bu)可(Ke)变(Bian)类(Lei)有(You)一(Yi)些(Xie)优(You)点(Dian),(?)比(Bi)如(Ru)因(Yin)为(Wei)它(Ta)的(De)对(Dui)象(Xiang)是(Shi)只(Zhi)读(Du)的(De),(?)所(Suo)以(Yi)多(Duo)线(Xian)程(Cheng)并(Bing)发(Fa)访(Fang)问(Wen)也(Ye)不(Bu)会(Hui)有(You)任(Ren)何(He)问(Wen)题(Ti)。(?)当(Dang)然(Ran)也(Ye)有(You)一(Yi)些(Xie)缺(Que)点(Dian),(?)比(Bi)如(Ru)每(Mei)个(Ge)不(Bu)同(Tong)的(De)状(Zhuang)态(Tai)都(Du)要(Yao)一(Yi)个(Ge)对(Dui)象(Xiang)来(Lai)代(Dai)表(Biao),(?)可(Ke)能(Neng)会(Hui)造(Zao)成(Cheng)性(Xing)能(Neng)上(Shang)的(De)问(Wen)题(Ti)。(?)所(Suo)以(Yi)Java标(Biao)准(Zhun)类(Lei)库(Ku)还(Huan)提(Ti)供(Gong)了(Liao)一(Yi)个(Ge)可(Ke)变(Bian)版(Ban)本(Ben),(?)即(Ji) StringBuffer。(?)
答(Da):(?)两(Liang)个(Ge)或(Huo)一(Yi)个(Ge),(?)”(?)xyz”(?)对(Dui)应(Ying)一(Yi)个(Ge)对(Dui)象(Xiang),(?)这(Zhe)个(Ge)对(Dui)象(Xiang)放(Fang)在(Zai)字(Zi)符(Fu)串(Chuan)常(Chang)量(Liang)缓(Huan)冲(Chong)区(Qu),(?)常(Chang)量(Liang)”(?)xyz”(?)不(Bu)管(Guan)出(Chu)现(Xian)多(Duo)少(Shao)遍(Bian),(?)都(Du)是(Shi)缓(Huan)冲(Chong)区(Qu)中(Zhong)的(De)那(Na)一(Yi)个(Ge)。(?)New String每(Mei)写(Xie)一(Yi)遍(Bian),(?)就(Jiu)创(Chuang)建(Jian)一(Yi)个(Ge)新(Xin)的(De)对(Dui)象(Xiang),(?)它(Ta)一(Yi)句(Ju)那(Na)个(Ge)常(Chang)量(Liang)”(?)xyz”(?)对(Dui)象(Xiang)的(De)内(Nei)容(Rong)来(Lai)创(Chuang)建(Jian)出(Chu)一(Yi)个(Ge)新(Xin)String对(Dui)象(Xiang)。(?)如(Ru)果(Guo)以(Yi)前(Qian)就(Jiu)用(Yong)过(Guo)’(?)xyz’(?),(?)这(Zhe)句(Ju)代(Dai)表(Biao)就(Jiu)不(Bu)会(Hui)创(Chuang)建(Jian)”(?)xyz”(?)自(Zi)己(Ji)了(Liao),(?)直(Zhi)接(Jie)从(Cong)缓(Huan)冲(Chong)区(Qu)拿(Na)。(?)
答(Da):(?)对(Dui)于(Yu)如(Ru)下(Xia)代(Dai)码(Ma):(?)
String s1 = "a";
String s2 = s1 + "b";
String s3 = "a" + "b";
System.out.println(s2 == "ab");
System.out.println(s3 == "ab");
第(Di)一(Yi)条(Tiao)语(Yu)句(Ju)打(Da)印(Yin)的(De)结(Jie)果(Guo)为(Wei)false,(?)第(Di)二(?)条(Tiao)语(Yu)句(Ju)打(Da)印(Yin)的(De)结(Jie)果(Guo)为(Wei)true,(?)这(Zhe)说(Shuo)明(Ming)javac编(Bian)译(Yi)可(Ke)以(Yi)对(Dui)字(Zi)符(Fu)串(Chuan)常(Chang)量(Liang)直(Zhi)接(Jie)相(Xiang)加(Jia)的(De)表(Biao)达(Da)式(Shi)进(Jin)行(Xing)优(You)化(Hua),(?)不(Bu)必(Bi)要(Yao)等(Deng)到(Dao)运(Yun)行(Xing)期(Qi)去(Qu)进(Jin)行(Xing)加(Jia)法(Fa)运(Yun)算(Suan)处(Chu)理(Li),(?)而(?)是(Shi)在(Zai)编(Bian)译(Yi)时(Shi)去(Qu)掉(Diao)其(Qi)中(Zhong)的(De)加(Jia)号(Hao),(?)直(Zhi)接(Jie)将(Jiang)其(Qi)编(Bian)译(Yi)成(Cheng)一(Yi)个(Ge)这(Zhe)些(Xie)常(Chang)量(Liang)相(Xiang)连(Lian)的(De)结(Jie)果(Guo)。(?)
题(Ti)目(Mu)中(Zhong)的(De)第(Di)一(Yi)行(Xing)代(Dai)码(Ma)被(Bei)编(Bian)译(Yi)器(Qi)在(Zai)编(Bian)译(Yi)时(Shi)优(You)化(Hua)后(Hou),(?)相(Xiang)当(Dang)于(Yu)直(Zhi)接(Jie)定(Ding)义(Yi)一(Yi)个(Ge)”(?)abcd”(?)的(De)字(Zi)符(Fu)串(Chuan),(?)所(Suo)以(Yi),(?)上(Shang)面(Mian)的(De)代(Dai)码(Ma)应(Ying)该(Gai)只(Zhi)创(Chuang)建(Jian)了(Liao)一(Yi)个(Ge)String对(Dui)象(Xiang)。(?)
写(Xie)如(Ru)下(Xia)两(Liang)行(Xing)代(Dai)码(Ma),(?)
String s = "a" + "b" + "c" + "d";
System.out.println(s == "abcd");
最(Zui)终(Zhong)打(Da)印(Yin)的(De)结(Jie)果(Guo)应(Ying)该(Gai)为(Wei)true。(?)
集(Ji)合(He):(?)


1、(?)Collection 接(Jie)口(Kou)存(Cun)储(Chu)一(Yi)组(Zu)不(Bu)唯(Wei)一(Yi),(?)无(Wu)序(Xu)的(De)对(Dui)象(Xiang)
2、(?)List 接(Jie)口(Kou)存(Cun)储(Chu)一(Yi)组(Zu)不(Bu)唯(Wei)一(Yi),(?)有(You)序(Xu)((?)插(Cha)入(Ru)顺(Shun)序(Xu))(?)的(De)对(Dui)象(Xiang)
3、(?)Set 接(Jie)口(Kou)存(Cun)储(Chu)一(Yi)组(Zu)唯(Wei)一(Yi),(?)无(Wu)序(Xu)的(De)对(Dui)象(Xiang)
4、(?)Map接(Jie)口(Kou)存(Cun)储(Chu)一(Yi)组(Zu)键(Jian)值(Zhi)对(Dui)象(Xiang),(?)提(Ti)供(Gong)key到(Dao)value的(De)映(Ying)射(She)。(?)Key无(Wu)序(Xu),(?)唯(Wei)一(Yi)。(?)value不(Bu)要(Yao)求(Qiu)有(You)序(Xu),(?)允(Yun)许(Xu)重(Zhong)复(Fu)。(?)((?)如(Ru)果(Guo)只(Zhi)使(Shi)用(Yong)key存(Cun)储(Chu),(?)而(?)不(Bu)使(Shi)用(Yong)value,(?)那(Na)就(Jiu)是(Shi)Set)(?)
相(Xiang)同(Tong)点(Dian):(?)
1)(?)实(Shi)现(Xian)原(Yuan)理(Li)相(Xiang)同(Tong)---底(Di)层(Ceng)都(Du)使(Shi)用(Yong)数(Shu)组(Zu)
2)(?)功(Gong)能(Neng)相(Xiang)同(Tong)---实(Shi)现(Xian)增(Zeng)删(Shan)改(Gai)查(Cha)等(Deng)操(Cao)作(Zuo)的(De)方(Fang)法(Fa)相(Xiang)似(Si)
3)(?)都(Du)是(Shi)长(Chang)度(Du)可(Ke)变(Bian)的(De)数(Shu)组(Zu)结(Jie)构(Gou),(?)很(Hen)多(Duo)情(Qing)况(Kuang)下(Xia)可(Ke)以(Yi)互(Hu)用(Yong)
不(Bu)同(Tong)点(Dian):(?)
1)(?)Vector是(Shi)早(Zao)期(Qi)JDK版(Ban)本(Ben)提(Ti)供(Gong),(?)ArrayList是(Shi)新(Xin)版(Ban)本(Ben)替(Ti)代(Dai)Vector的(De)
2)(?)Vector线(Xian)程(Cheng)安(An)全(Quan),(?)ArrayList重(Zhong)速(Su)度(Du)轻(Qing)安(An)全(Quan),(?)线(Xian)程(Cheng)非(Fei)安(An)全(Quan)长(Chang)度(Du)需(Xu)增(Zeng)长(Chang)时(Shi),(?)Vector默(Mo)认(Ren)增(Zeng)长(Chang)一(Yi)倍(Bei),(?)ArrayList增(Zeng)长(Chang)50%
相(Xiang)同(Tong)点(Dian):(?)
两(Liang)者(Zhe)都(Du)实(Shi)现(Xian)了(Liao)List接(Jie)口(Kou),(?)都(Du)具(Ju)有(You)List中(Zhong)元(Yuan)素(Su)有(You)序(Xu)、(?)不(Bu)唯(Wei)一(Yi)的(De)特(Te)点(Dian)。(?)
不(Bu)同(Tong)点(Dian):(?)
ArrayList实(Shi)现(Xian)了(Liao)长(Chang)度(Du)可(Ke)变(Bian)的(De)数(Shu)组(Zu),(?)在(Zai)内(Nei)存(Cun)中(Zhong)分(Fen)配(Pei)连(Lian)续(Xu)空(Kong)间(Jian)。(?)遍(Bian)历(Li)元(Yuan)素(Su)和(He)随(Sui)机(Ji)访(Fang)问(Wen)元(Yuan)素(Su)的(De)效(Xiao)率(Lu)比(Bi)较(Jiao)高(Gao);(?)

LinkedList采(Cai)用(Yong)链(Lian)表(Biao)存(Cun)储(Chu)方(Fang)式(Shi)。(?)插(Cha)入(Ru)、(?)删(Shan)除(Chu)元(Yuan)素(Su)时(Shi)效(Xiao)率(Lu)比(Bi)较(Jiao)高(Gao)

相(Xiang)同(Tong)点(Dian):(?)
实(Shi)现(Xian)原(Yuan)理(Li)相(Xiang)同(Tong),(?)功(Gong)能(Neng)相(Xiang)同(Tong),(?)底(Di)层(Ceng)都(Du)是(Shi)哈(Ha)希(Xi)表(Biao)结(Jie)构(Gou),(?)查(Cha)询(Xun)速(Su)度(Du)快(Kuai),(?)在(Zai)很(Hen)多(Duo)情(Qing)况(Kuang)下(Xia)可(Ke)以(Yi)互(Hu)用(Yong)
不(Bu)同(Tong)点(Dian):(?)
1、(?)Hashtable是(Shi)早(Zao)期(Qi)提(Ti)供(Gong)的(De)接(Jie)口(Kou),(?)HashMap是(Shi)新(Xin)版(Ban)JDK提(Ti)供(Gong)的(De)接(Jie)口(Kou)
2、(?)Hashtable继(Ji)承(Cheng)Dictionary类(Lei),(?)HashMap实(Shi)现(Xian)Map接(Jie)口(Kou)
3、(?)Hashtable线(Xian)程(Cheng)安(An)全(Quan),(?)HashMap线(Xian)程(Cheng)非(Fei)安(An)全(Quan)
4、(?)Hashtable不(Bu)允(Yun)许(Xu)null值(Zhi),(?)HashMap允(Yun)许(Xu)null值(Zhi)
1)(?)哈(Ha)希(Xi)表(Biao)的(De)查(Cha)询(Xun)速(Su)度(Du)特(Te)别(Bie)快(Kuai),(?)时(Shi)间(Jian)复(Fu)杂(Za)度(Du)为(Wei)O((?)1)(?)。(?)
2)(?)HashMap、(?)Hashtable、(?)HashSet这(Zhe)些(Xie)集(Ji)合(He)采(Cai)用(Yong)的(De)是(Shi)哈(Ha)希(Xi)表(Biao)结(Jie)构(Gou),(?)需(Xu)要(Yao)用(Yong)到(Dao)hashCode哈(Ha)希(Xi)码(Ma),(?)hashCode是(Shi)一(Yi)个(Ge)整(Zheng)数(Shu)值(Zhi)。(?)
3)(?)系(Xi)统(Tong)类(Lei)已(Yi)经(Jing)覆(Fu)盖(Gai)了(Liao)hashCode方(Fang)法(Fa) 自(Zi)定(Ding)义(Yi)类(Lei)如(Ru)果(Guo)要(Yao)放(Fang)入(Ru)hash类(Lei)集(Ji)合(He),(?)必(Bi)须(Xu)重(Zhong)写(Xie)hashcode。(?)如(Ru)果(Guo)不(Bu)重(Zhong)写(Xie),(?)调(Diao)用(Yong)的(De)是(Shi)Object的(De)hashcode,(?)而(?)Object的(De)hashCode实(Shi)际(Ji)上(Shang)是(Shi)地(Di)址(Zhi)。(?)
4)(?)向(Xiang)哈(Ha)希(Xi)表(Biao)中(Zhong)添(Tian)加(Jia)数(Shu)据(Ju)的(De)原(Yuan)理(Li):(?)当(Dang)向(Xiang)集(Ji)合(He)Set中(Zhong)增(Zeng)加(Jia)对(Dui)象(Xiang)时(Shi),(?)首(Shou)先(Xian)集(Ji)合(He)计(Ji)算(Suan)要(Yao)增(Zeng)加(Jia)对(Dui)象(Xiang)的(De)hashCode码(Ma),(?)根(Gen)据(Ju)该(Gai)值(Zhi)来(Lai)得(De)到(Dao)一(Yi)个(Ge)位(Wei)置(Zhi)用(Yong)来(Lai)存(Cun)放(Fang)当(Dang)前(Qian)对(Dui)象(Xiang),(?)如(Ru)在(Zai)该(Gai)位(Wei)置(Zhi)没(Mei)有(You)一(Yi)个(Ge)对(Dui)象(Xiang)存(Cun)在(Zai)的(De)话(Hua),(?)那(Na)么(Me)集(Ji)合(He)Set认(Ren)为(Wei)该(Gai)对(Dui)象(Xiang)在(Zai)集(Ji)合(He)中(Zhong)不(Bu)存(Cun)在(Zai),(?)直(Zhi)接(Jie)增(Zeng)加(Jia)进(Jin)去(Qu)。(?)如(Ru)果(Guo)在(Zai)该(Gai)位(Wei)置(Zhi)有(You)一(Yi)个(Ge)对(Dui)象(Xiang)存(Cun)在(Zai)的(De)话(Hua),(?)接(Jie)着(Zhuo)将(Jiang)准(Zhun)备(Bei)增(Zeng)加(Jia)到(Dao)集(Ji)合(He)中(Zhong)的(De)对(Dui)象(Xiang)与(Yu)该(Gai)位(Wei)置(Zhi)上(Shang)的(De)对(Dui)象(Xiang)进(Jin)行(Xing)equals方(Fang)法(Fa)比(Bi)较(Jiao),(?)如(Ru)果(Guo)该(Gai)equals方(Fang)法(Fa)返(Fan)回(Hui)false,那(Na)么(Me)集(Ji)合(He)认(Ren)为(Wei)集(Ji)合(He)中(Zhong)不(Bu)存(Cun)在(Zai)该(Gai)对(Dui)象(Xiang),(?)在(Zai)进(Jin)行(Xing)一(Yi)次(Ci)散(San)列(Lie),(?)将(Jiang)该(Gai)对(Dui)象(Xiang)放(Fang)到(Dao)散(San)列(Lie)后(Hou)计(Ji)算(Suan)出(Chu)的(De)新(Xin)地(Di)址(Zhi)里(Li)。(?)如(Ru)果(Guo)equals方(Fang)法(Fa)返(Fan)回(Hui)true,(?)那(Na)么(Me)集(Ji)合(He)认(Ren)为(Wei)集(Ji)合(He)中(Zhong)已(Yi)经(Jing)存(Cun)在(Zai)该(Gai)对(Dui)象(Xiang)了(Liao),(?)不(Bu)会(Hui)再(Zai)将(Jiang)该(Gai)对(Dui)象(Xiang)增(Zeng)加(Jia)到(Dao)集(Ji)合(He)中(Zhong)了(Liao)。(?)
5)(?)在(Zai)哈(Ha)希(Xi)表(Biao)中(Zhong)判(Pan)断(Duan)两(Liang)个(Ge)元(Yuan)素(Su)是(Shi)否(Fou)重(Zhong)复(Fu)要(Yao)使(Shi)用(Yong)到(Dao)hashCode()和(He)equals()。(?)hashCode决(Jue)定(Ding)数(Shu)据(Ju)在(Zai)表(Biao)中(Zhong)的(De)存(Cun)储(Chu)位(Wei)置(Zhi),(?)而(?)equals判(Pan)断(Duan)是(Shi)否(Fou)存(Cun)在(Zai)相(Xiang)同(Tong)数(Shu)据(Ju)。(?)
6)(?) Y=K(X) :(?)K是(Shi)函(Han)数(Shu),(?)X是(Shi)哈(Ha)希(Xi)码(Ma),(?)Y是(Shi)地(Di)址(Zhi)
1)(?)TreeSet集(Ji)合(He),(?)元(Yuan)素(Su)不(Bu)允(Yun)许(Xu)重(Zhong)复(Fu)且(Qie)有(You)序(Xu)(自(Zi)然(Ran)顺(Shun)序(Xu))
2)(?)TreeSet采(Cai)用(Yong)树(Shu)结(Jie)构(Gou)存(Cun)储(Chu)数(Shu)据(Ju),(?)存(Cun)入(Ru)元(Yuan)素(Su)时(Shi)需(Xu)要(Yao)和(He)树(Shu)中(Zhong)元(Yuan)素(Su)进(Jin)行(Xing)对(Dui)比(Bi),(?)需(Xu)要(Yao)指(Zhi)定(Ding)比(Bi)较(Jiao)策(Ce)略(Lue)。(?)
3)(?)可(Ke)以(Yi)通(Tong)过(Guo)Comparable(外(Wai)部(Bu)比(Bi)较(Jiao)器(Qi))和(He)Comparator(内(Nei)部(Bu)比(Bi)较(Jiao)器(Qi))来(Lai)指(Zhi)定(Ding)比(Bi)较(Jiao)策(Ce)略(Lue),(?)实(Shi)现(Xian)了(Liao)Comparable的(De)系(Xi)统(Tong)类(Lei)可(Ke)以(Yi)顺(Shun)利(Li)存(Cun)入(Ru)TreeSet。(?)自(Zi)定(Ding)义(Yi)类(Lei)可(Ke)以(Yi)实(Shi)现(Xian)Comparable接(Jie)口(Kou)来(Lai)指(Zhi)定(Ding)比(Bi)较(Jiao)策(Ce)略(Lue)。(?)
4)(?)可(Ke)创(Chuang)建(Jian)Comparator接(Jie)口(Kou)实(Shi)现(Xian)类(Lei)来(Lai)指(Zhi)定(Ding)比(Bi)较(Jiao)策(Ce)略(Lue),(?)并(Bing)通(Tong)过(Guo)TreeSet构(Gou)造(Zao)方(Fang)法(Fa)参(Can)数(Shu)传(Chuan)入(Ru)。(?)这(Zhe)种(Zhong)方(Fang)式(Shi)尤(You)其(Qi)对(Dui)系(Xi)统(Tong)类(Lei)非(Fei)常(Chang)适(Shi)用(Yong)。(?)
数(Shu)组(Zu)不(Bu)是(Shi)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De),(?)存(Cun)在(Zai)明(Ming)显(Xian)的(De)缺(Que)陷(Xian),(?)集(Ji)合(He)完(Wan)全(Quan)弥(Mi)补(Bu)了(Liao)数(Shu)组(Zu)的(De)一(Yi)些(Xie)缺(Que)点(Dian),(?)比(Bi)数(Shu)组(Zu)更(Geng)灵(Ling)活(Huo)更(Geng)实(Shi)用(Yong),(?)可(Ke)大(Da)大(Da)提(Ti)高(Gao)软(Ruan)件(Jian)的(De)开(Kai)发(Fa)效(Xiao)率(Lu)而(?)且(Qie)不(Bu)同(Tong)的(De)集(Ji)合(He)框(Kuang)架(Jia)类(Lei)可(Ke)适(Shi)用(Yong)于(Yu)不(Bu)同(Tong)场(Chang)合(He)。(?)具(Ju)体(Ti)如(Ru)下(Xia):(?)
1)(?)数(Shu)组(Zu)的(De)效(Xiao)率(Lu)高(Gao)于(Yu)集(Ji)合(He)类(Lei).
2)(?)数(Shu)组(Zu)能(Neng)存(Cun)放(Fang)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)和(He)对(Dui)象(Xiang),(?)而(?)集(Ji)合(He)类(Lei)中(Zhong)只(Zhi)能(Neng)放(Fang)对(Dui)象(Xiang)。(?)
3)(?)数(Shu)组(Zu)容(Rong)量(Liang)固(Gu)定(Ding)且(Qie)无(Wu)法(Fa)动(Dong)态(Tai)改(Gai)变(Bian),(?)集(Ji)合(He)类(Lei)容(Rong)量(Liang)动(Dong)态(Tai)改(Gai)变(Bian)。(?)
4)(?)数(Shu)组(Zu)无(Wu)法(Fa)判(Pan)断(Duan)其(Qi)中(Zhong)实(Shi)际(Ji)存(Cun)有(You)多(Duo)少(Shao)元(Yuan)素(Su),(?)length只(Zhi)告(Gao)诉(Su)了(Liao)array的(De)容(Rong)量(Liang)。(?)
5)(?)集(Ji)合(He)有(You)多(Duo)种(Zhong)实(Shi)现(Xian)方(Fang)式(Shi)和(He)不(Bu)同(Tong)的(De)适(Shi)用(Yong)场(Chang)合(He),(?)而(?)不(Bu)像(Xiang)数(Shu)组(Zu)仅(Jin)采(Cai)用(Yong)顺(Shun)序(Xu)表(Biao)方(Fang)式(Shi)。(?)
6)(?)集(Ji)合(He)以(Yi)类(Lei)的(De)形(Xing)式(Shi)存(Cun)在(Zai),(?)具(Ju)有(You)封(Feng)装(Zhuang)、(?)继(Ji)承(Cheng)、(?)多(Duo)态(Tai)等(Deng)类(Lei)的(De)特(Te)性(Xing),(?)通(Tong)过(Guo)简(Jian)单(Dan)的(De)方(Fang)法(Fa)和(He)属(Shu)性(Xing)调(Diao)用(Yong)即(Ji)可(Ke)实(Shi)现(Xian)各(Ge)种(Zhong)复(Fu)杂(Za)操(Cao)作(Zuo),(?)大(Da)大(Da)提(Ti)高(Gao)软(Ruan)件(Jian)的(De)开(Kai)发(Fa)效(Xiao)率(Lu)。(?)
1)(?)Collection是(Shi)Java提(Ti)供(Gong)的(De)集(Ji)合(He)接(Jie)口(Kou),(?)存(Cun)储(Chu)一(Yi)组(Zu)不(Bu)唯(Wei)一(Yi),(?)无(Wu)序(Xu)的(De)对(Dui)象(Xiang)。(?)它(Ta)有(You)两(Liang)个(Ge)子(Zi)接(Jie)口(Kou)List和(He)Set。(?)
2)(?)Java中(Zhong)还(Huan)有(You)一(Yi)个(Ge)Collections类(Lei),(?)专(Zhuan)门(Men)用(Yong)来(Lai)操(Cao)作(Zuo)集(Ji)合(He)类(Lei) ,(?)它(Ta)提(Ti)供(Gong)一(Yi)系(Xi)列(Lie)静(Jing)态(Tai)方(Fang)法(Fa)实(Shi)现(Xian)对(Dui)各(Ge)种(Zhong)集(Ji)合(He)的(De)搜(Sou)索(Suo)、(?)排(Pai)序(Xu)、(?)线(Xian)程(Cheng)安(An)全(Quan)化(Hua)等(Deng)操(Cao)作(Zuo)。(?)
A. | LinkedList继(Ji)承(Cheng)自(Zi)List |
B. | AbstractSet继(Ji)承(Cheng)自(Zi)Set |
C. | HashSet继(Ji)承(Cheng)自(Zi)AbstractSet |
D. | TreeMap继(Ji)承(Cheng)自(Zi)HashMap |
答(Da)案(An):(?) C
分(Fen)析(Xi):(?)A:(?)LinkedList实(Shi)现(Xian)List接(Jie)口(Kou)
B:(?)AbstractSet实(Shi)现(Xian)Set接(Jie)口(Kou)
D:(?)TreeMap继(Ji)承(Cheng)AbstractMap
|
答(Da):(?)HashMap与(Yu)Hashtable实(Shi)现(Xian)原(Yuan)理(Li)相(Xiang)同(Tong),(?)功(Gong)能(Neng)相(Xiang)同(Tong),(?)底(Di)层(Ceng)都(Du)是(Shi)哈(Ha)希(Xi)表(Biao)结(Jie)构(Gou),(?)查(Cha)询(Xun)速(Su)度(Du)快(Kuai),(?)在(Zai)很(Hen)多(Duo)情(Qing)况(Kuang)下(Xia)可(Ke)以(Yi)互(Hu)用(Yong)
两(Liang)者(Zhe)的(De)主(Zhu)要(Yao)区(Qu)别(Bie)如(Ru)下(Xia)
1、(?)Hashtable是(Shi)早(Zao)期(Qi)JDK提(Ti)供(Gong)的(De)接(Jie)口(Kou),(?)HashMap是(Shi)新(Xin)版(Ban)JDK提(Ti)供(Gong)的(De)接(Jie)口(Kou)
2、(?)Hashtable继(Ji)承(Cheng)Dictionary类(Lei),(?)HashMap实(Shi)现(Xian)Map接(Jie)口(Kou)
3、(?)Hashtable线(Xian)程(Cheng)安(An)全(Quan),(?)HashMap线(Xian)程(Cheng)非(Fei)安(An)全(Quan)
4、(?)Hashtable不(Bu)允(Yun)许(Xu)null值(Zhi),(?)HashMap允(Yun)许(Xu)null值(Zhi)
HashSet与(Yu)HashMap的(De)区(Qu)别(Bie)
1、(?)HashSet底(Di)层(Ceng)是(Shi)采(Cai)用(Yong)HashMap实(Shi)现(Xian)的(De)。(?)HashSet 的(De)实(Shi)现(Xian)比(Bi)较(Jiao)简(Jian)单(Dan),(?)HashSet 的(De)绝(Jue)大(Da)部(Bu)分(Fen)方(Fang)法(Fa)都(Du)是(Shi)通(Tong)过(Guo)调(Diao)用(Yong) HashMap 的(De)方(Fang)法(Fa)来(Lai)实(Shi)现(Xian)的(De),(?)因(Yin)此(Ci) HashSet 和(He) HashMap 两(Liang)个(Ge)集(Ji)合(He)在(Zai)实(Shi)现(Xian)本(Ben)质(Zhi)上(Shang)是(Shi)相(Xiang)同(Tong)的(De)。(?)
2、(?)HashMap的(De)key就(Jiu)是(Shi)放(Fang)进(Jin)HashSet中(Zhong)对(Dui)象(Xiang),(?)value是(Shi)Object类(Lei)型(Xing)的(De)。(?)
3、(?)当(Dang)调(Diao)用(Yong)HashSet的(De)add方(Fang)法(Fa)时(Shi),(?)实(Shi)际(Ji)上(Shang)是(Shi)向(Xiang)HashMap中(Zhong)增(Zeng)加(Jia)了(Liao)一(Yi)行(Xing)(key-value对(Dui)),(?)该(Gai)行(Xing)的(De)key就(Jiu)是(Shi)向(Xiang)HashSet增(Zeng)加(Jia)的(De)那(Na)个(Ge)对(Dui)象(Xiang),(?)该(Gai)行(Xing)的(De)value就(Jiu)是(Shi)一(Yi)个(Ge)Object类(Lei)型(Xing)的(De)常(Chang)量(Liang)
答(Da):Java中(Zhong)集(Ji)合(He)主(Zhu)要(Yao)分(Fen)为(Wei)两(Liang)种(Zhong):(?)Collection和(He)Map。(?)Collection是(Shi)List和(He)Set接(Jie)口(Kou)的(De)父(Fu)接(Jie)口(Kou);(?)ArrayList和(He)LinkedList是(Shi)List的(De)实(Shi)现(Xian)类(Lei);(?)HashSet和(He)TreeSet是(Shi)Set的(De)实(Shi)现(Xian)类(Lei);(?)LinkedHashSet是(Shi)HashSet的(De)子(Zi)类(Lei)。(?)HashMap和(He)TreeMap是(Shi)Map的(De)实(Shi)现(Xian)类(Lei);(?)LinkedHashMap是(Shi)HashMap的(De)子(Zi)类(Lei)。(?)
图(Tu)中(Zhong):(?)虚(Xu)线(Xian)框(Kuang)中(Zhong)为(Wei)接(Jie)口(Kou),(?)实(Shi)线(Xian)框(Kuang)中(Zhong)为(Wei)类(Lei)。(?)

答(Da):List 接(Jie)口(Kou)存(Cun)储(Chu)一(Yi)组(Zu)不(Bu)唯(Wei)一(Yi),(?)有(You)序(Xu)((?)插(Cha)入(Ru)顺(Shun)序(Xu))(?)的(De)对(Dui)象(Xiang)。(?)
Set 接(Jie)口(Kou)存(Cun)储(Chu)一(Yi)组(Zu)唯(Wei)一(Yi),(?)无(Wu)序(Xu)的(De)对(Dui)象(Xiang)。(?)
Map接(Jie)口(Kou)存(Cun)储(Chu)一(Yi)组(Zu)键(Jian)值(Zhi)对(Dui)象(Xiang),(?)提(Ti)供(Gong)key到(Dao)value的(De)映(Ying)射(She)。(?)key无(Wu)序(Xu),(?)唯(Wei)一(Yi)。(?)value不(Bu)要(Yao)求(Qiu)有(You)序(Xu),(?)允(Yun)许(Xu)重(Zhong)复(Fu)。(?)((?)如(Ru)果(Guo)只(Zhi)使(Shi)用(Yong)key存(Cun)储(Chu),(?)而(?)不(Bu)使(Shi)用(Yong)value,(?)那(Na)就(Jiu)是(Shi)Set)(?)。(?)
A. | 0 |
B. | 1 |
C. | 2 |
D. | 3 |
答(Da)案(An):(?)A
分(Fen)析(Xi):(?)已(Yi)经(Jing)指(Zhi)定(Ding)了(Liao)长(Chang)度(Du), 所(Suo)以(Yi)不(Bu)扩(Kuo)容(Rong)
|
A. | List Map |
B. | Set Map |
C. | List Set |
D. | List Map Set |
答(Da)案(An):(?)C
分(Fen)析(Xi):(?)Map接(Jie)口(Kou)继(Ji)承(Cheng)了(Liao)java.lang.Object类(Lei),但(Dan)没(Mei)有(You)实(Shi)现(Xian)任(Ren)何(He)接(Jie)口(Kou).
|
public class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if (l1 == null || l2 == null) { return l1 != null ? l1 : l2; } ListNode head = l1.val < l2.val ? l1 : l2; ListNode other = l1.val >= l2.val ? l1 : l2; ListNode prevHead = head; ListNode prevOther = other; while (prevHead != null) { ListNode next = prevHead.next; if (next != null && next.val > prevOther.val) { prevHead.next = prevOther; prevOther = next; } if(prevHead.next==null){ prevHead.next=prevOther; break; } prevHead=prevHead.next; } return head; } }
/** Definition for singly-linked list. public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } * } */ public class Solution { public ListNode reverseList(ListNode head) { if(head==null||head.next ==null) return head; ListNode prev = reverseList(head.next); head.next.next = head; head.next = null; return prev; } }
public class Solution { public List<List<Integer>> subsets (int[] nums) { List<List<Integer>> res = new ArrayList<ArrayList<Integer>>(); List<Integer> item = new ArrayList<Integer>(); if(nums.length == 0 || nums == null) return res; Arrays.sort(nums); //排(Pai)序(Xu) dfs(nums, 0, item, res); //递(Di)归(Gui)调(Diao)用(Yong) res.add(new ArrayList<Integer>()); //最(Zui)后(Hou)加(Jia)上(Shang)一(Yi)个(Ge)空(Kong)集(Ji) return res; } public static void dfs(int[] nums, int start, List<Integer> item, List<List<Integer>> res){ for(int i = start; i < nums.length; i ++){ item.add(nums[i]); //item是(Shi)以(Yi)整(Zheng)数(Shu)为(Wei)元(Yuan)素(Su)的(De)动(Dong)态(Tai)数(Shu)组(Zu),(?)而(?)res是(Shi)以(Yi)数(Shu)组(Zu)为(Wei)元(Yuan)素(Su)的(De)数(Shu)组(Zu),(?)在(Zai)这(Zhe)一(Yi)步(Bu),(?)当(Dang)item增(Zeng)加(Jia)完(Wan)元(Yuan)素(Su)后(Hou),(?)item所(Suo)有(You)元(Yuan)素(Su)构(Gou)成(Cheng)一(Yi)个(Ge)完(Wan)整(Zheng)的(De)子(Zi)串(Chuan),(?)再(Zai)由(You)res纳(Na)入(Ru) res.add(new ArrayList<Integer>(item)); dfs(nums, i + 1, item, res); item.remove(item.size() - 1); } } }
A. | HashMap |
B. | ConcurrentHashMap |
C. | WeakHashMap |
D. | TreeMap |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?)
A,(?)C,(?)D都(Du)线(Xian)程(Cheng)不(Bu)安(An)全(Quan),(?)B线(Xian)程(Cheng)安(An)全(Quan),(?)具(Ju)有(You)同(Tong)步(Bu)功(Gong)能(Neng)
|
A. | ArrayList |
B. | Linkedlist |
C. | tor |
D. | Collection |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?)
数(Shu)组(Zu)插(Cha)入(Ru)、(?)删(Shan)除(Chu)效(Xiao)率(Lu)差(Cha),(?)排(Pai)除(Chu)A
tor不(Bu)是(Shi)java里(Li)面(Mian)的(De)数(Shu)据(Ju)结(Jie)构(Gou),(?)是(Shi)一(Yi)种(Zhong)网(Wang)络(Luo)路(Lu)由(You)技(Ji)术(Shu);(?)因(Yin)此(Ci)排(Pai)除(Chu)C
Collection 是(Shi)集(Ji)合(He)的(De)接(Jie)口(Kou),(?)不(Bu)是(Shi)某(Mou)种(Zhong)数(Shu)据(Ju)结(Jie)构(Gou);(?)因(Yin)此(Ci)排(Pai)除(Chu)D
|
A. | LinkedHashMap |
B. | LinkedHashSet |
C. | LinkedList |
LinkedList
分(Fen)析(Xi):(?)
Stack是(Shi)先(Xian)进(Jin)后(Hou)出(Chu)的(De)线(Xian)性(Xing)结(Jie)构(Gou);(?)所(Suo)以(Yi)链(Lian)表(Biao)比(Bi)较(Jiao)合(He)适(Shi);(?)不(Bu)需(Xu)要(Yao)散(San)列(Lie)表(Biao)的(De)数(Shu)据(Ju)结(Jie)构(Gou)
|
答(Da):(?)1. Map的(De)实(Shi)现(Xian)类(Lei)有(You)HashMap,LinkedHashMap,TreeMap
2. HashMap是(Shi)有(You)无(Wu)序(Xu)的(De),(?)LinkedHashMap和(He)TreeMap都(Du)是(Shi)有(You)序(Xu)的(De)((?)LinkedHashMap记(Ji)录(Lu)了(Liao)添(Tian)加(Jia)数(Shu)据(Ju)的(De)顺(Shun)序(Xu);(?)TreeMap默(Mo)认(Ren)是(Shi)自(Zi)然(Ran)升(Sheng)序(Xu))(?)
3. LinkedHashMap底(Di)层(Ceng)存(Cun)储(Chu)结(Jie)构(Gou)是(Shi)哈(Ha)希(Xi)表(Biao)+链(Lian)表(Biao),(?)链(Lian)表(Biao)记(Ji)录(Lu)了(Liao)添(Tian)加(Jia)数(Shu)据(Ju)的(De)顺(Shun)序(Xu)
4. TreeMap底(Di)层(Ceng)存(Cun)储(Chu)结(Jie)构(Gou)是(Shi)二(?)叉(Cha)树(Shu),(?)二(?)叉(Cha)树(Shu)的(De)中(Zhong)序(Xu)遍(Bian)历(Li)保(Bao)证(Zheng)了(Liao)数(Shu)据(Ju)的(De)有(You)序(Xu)性(Xing)
5. LinkedHashMap有(You)序(Xu)性(Xing)能(Neng)比(Bi)较(Jiao)高(Gao),(?)因(Yin)为(Wei)底(Di)层(Ceng)数(Shu)据(Ju)存(Cun)储(Chu)结(Jie)构(Gou)采(Cai)用(Yong)的(De)哈(Ha)希(Xi)表(Biao)
package com.bjsxt; import java.util.LinkedList; public class Stack { LinkedList list = new LinkedList(); public synchronized void push(Object x) { synchronized (list) { list.addLast(x); notify(); } } public synchronized Object pop() throws Exception{ synchronized(list){ if(list.size()<=0){ wait(); } return list.removeLast( ); } } }
答(Da):(?)将(Jiang)if( list.size() <= 0 )改(Gai)成(Cheng):(?)while( list.size() <= 0 )
答(Da):(?)TreeSet要(Yao)求(Qiu)存(Cun)放(Fang)的(De)对(Dui)象(Xiang)所(Suo)属(Shu)的(De)类(Lei)必(Bi)须(Xu)实(Shi)现(Xian)Comparable接(Jie)口(Kou),(?)该(Gai)接(Jie)口(Kou)提(Ti)供(Gong)了(Liao)比(Bi)较(Jiao)元(Yuan)素(Su)的(De)compareTo()方(Fang)法(Fa),(?)当(Dang)插(Cha)入(Ru)元(Yuan)素(Su)时(Shi)会(Hui) 回(Hui)调(Diao)该(Gai)方(Fang)法(Fa)比(Bi)较(Jiao)元(Yuan)素(Su)的(De)大(Da)小(Xiao)。(?)TreeMap要(Yao)求(Qiu)存(Cun)放(Fang)的(De)键(Jian)值(Zhi)对(Dui)映(Ying)射(She)的(De)键(Jian)必(Bi)须(Xu)实(Shi)现(Xian)Comparable接(Jie)口(Kou)从(Cong)而(?)根(Gen)据(Ju)键(Jian)对(Dui)元(Yuan)素(Su)进(Jin)行(Xing)排(Pai)序(Xu)。(?)Collections 工(Gong)具(Ju)类(Lei)的(De)sort方(Fang)法(Fa)有(You)两(Liang)种(Zhong)重(Zhong)载(Zai)的(De)形(Xing)式(Shi),(?)第(Di)一(Yi)种(Zhong)要(Yao)求(Qiu)传(Chuan)入(Ru)的(De)待(Dai)排(Pai)序(Xu)容(Rong)器(Qi)中(Zhong)存(Cun)放(Fang)的(De)对(Dui)象(Xiang)比(Bi)较(Jiao)实(Shi)现(Xian)Comparable接(Jie)口(Kou)以(Yi)实(Shi)现(Xian)元(Yuan)素(Su)的(De)比(Bi)较(Jiao);(?)第(Di)二(?)种(Zhong)不(Bu)强(Qiang)制(Zhi)性(Xing)的(De)要(Yao)求(Qiu)容(Rong)器(Qi)中(Zhong)的(De)元(Yuan)素(Su)必(Bi)须(Xu)可(Ke)比(Bi)较(Jiao),(?)但(Dan)是(Shi)要(Yao)求(Qiu)传(Chuan)入(Ru)第(Di)二(?)个(Ge)参(Can)数(Shu),(?)参(Can)数(Shu)是(Shi)Comparator接(Jie)口(Kou)的(De)子(Zi)类(Lei)型(Xing)((?)需(Xu)要(Yao)重(Zhong)写(Xie)compare方(Fang)法(Fa)实(Shi)现(Xian)元(Yuan)素(Su)的(De)比(Bi)较(Jiao))(?),(?)相(Xiang)当(Dang)于(Yu)一(Yi)个(Ge)临(Lin)时(Shi)定(Ding)义(Yi)的(De)排(Pai)序(Xu)规(Gui)则(Ze),(?)其(Qi)实(Shi)就(Jiu)是(Shi)是(Shi)通(Tong)过(Guo)接(Jie)口(Kou)注(Zhu)入(Ru)比(Bi)较(Jiao)元(Yuan)素(Su)大(Da)小(Xiao)的(De)算(Suan)法(Fa),(?)也(Ye)是(Shi)对(Dui)回(Hui)调(Diao)模(Mo)式(Shi)的(De)应(Ying)用(Yong)。(?)
public class Test { public static void main(String[] args) { List<String> li1 = new ArrayList<String>(); li1.add("8"); li1.add("8"); li1.add("9"); li1.add("9"); li1.add("0"); System.out.println(li1); //方(Fang)法(Fa):将(Jiang)List中(Zhong)数(Shu)据(Ju)取(Qu)出(Chu)来(Lai)来(Lai)存(Cun)到(Dao)Set中(Zhong) HashSet<String> set = new HashSet<String>(); for(int i=0;i<li1.size();i++){ set.add(li1.get(i)); } System.out.println(set); } }
分(Fen)析(Xi):(?)Java中(Zhong)的(De)java.util.Map的(De)实(Shi)现(Xian)类(Lei)
1、(?)HashMap
2、(?)Hashtable
3、(?)LinkedHashMap
4、(?)TreeMap
A. | 循(Xun)环(Huan)队(Dui)列(Lie)有(You)队(Dui)头(Tou)和(He)队(Dui)尾(Wei)两(Liang)个(Ge)指(Zhi)针(Zhen),(?)因(Yin)此(Ci),(?)循(Xun)环(Huan)队(Dui)列(Lie)是(Shi)非(Fei)线(Xian)性(Xing)结(Jie)构(Gou) |
B. | 在(Zai)循(Xun)环(Huan)队(Dui)列(Lie)中(Zhong),(?)只(Zhi)需(Xu)要(Yao)队(Dui)头(Tou)指(Zhi)针(Zhen)就(Jiu)能(Neng)反(Fan)映(Ying)队(Dui)列(Lie)中(Zhong)元(Yuan)素(Su)的(De)动(Dong)态(Tai)变(Bian)化(Hua)情(Qing)况(Kuang) |
C. | 在(Zai)循(Xun)环(Huan)队(Dui)列(Lie)中(Zhong),(?)只(Zhi)需(Xu)要(Yao)队(Dui)尾(Wei)指(Zhi)针(Zhen)就(Jiu)能(Neng)反(Fan)映(Ying)队(Dui)列(Lie)中(Zhong)元(Yuan)素(Su)的(De)动(Dong)态(Tai)变(Bian)化(Hua)情(Qing)况(Kuang) |
D. | 在(Zai)循(Xun)环(Huan)队(Dui)列(Lie)中(Zhong)元(Yuan)素(Su)的(De)个(Ge)数(Shu)是(Shi)由(You)队(Dui)头(Tou)指(Zhi)针(Zhen)和(He)队(Dui)尾(Wei)指(Zhi)针(Zhen)共(Gong)同(Tong)决(Jue)定(Ding)的(De) |
答(Da)案(An):(?)D
分(Fen)析(Xi):(?)循(Xun)环(Huan)队(Dui)列(Lie)中(Zhong)元(Yuan)素(Su)的(De)个(Ge)数(Shu)是(Shi)由(You)队(Dui)首(Shou)指(Zhi)针(Zhen)和(He)队(Dui)尾(Wei)指(Zhi)针(Zhen)共(Gong)同(Tong)决(Jue)定(Ding)的(De),(?)元(Yuan)素(Su)的(De)动(Dong)态(Tai)变(Bian)化(Hua)也(Ye)是(Shi)通(Tong)过(Guo)队(Dui)首(Shou)指(Zhi)针(Zhen)和(He)队(Dui)尾(Wei)指(Zhi)针(Zhen)来(Lai)反(Fan)映(Ying)的(De),(?)当(Dang)队(Dui)首(Shou)等(Deng)于(Yu)队(Dui)尾(Wei)时(Shi),(?)队(Dui)列(Lie)为(Wei)空(Kong)。(?)
|
答(Da):(?)List、(?)Set 的(De)父(Fu)接(Jie)口(Kou)是(Shi)Collection,(?)Map 不(Bu)是(Shi)其(Qi)子(Zi)接(Jie)口(Kou),(?)而(?)是(Shi)与(Yu)Collection接(Jie)口(Kou)是(Shi)平(Ping)行(Xing)关(Guan)系(Xi),(?)互(Hu)不(Bu)包(Bao)含(Han)。(?)

Map是(Shi)键(Jian)值(Zhi)对(Dui)映(Ying)射(She)容(Rong)器(Qi),(?)与(Yu)List和(He)Set有(You)明(Ming)显(Xian)的(De)区(Qu)别(Bie),(?)而(?)Set存(Cun)储(Chu)的(De)零(Ling)散(San)的(De)元(Yuan)素(Su)且(Qie)不(Bu)允(Yun)许(Xu)有(You)重(Zhong)复(Fu)元(Yuan)素(Su)((?)数(Shu)学(Xue)中(Zhong)的(De)集(Ji)合(He)也(Ye)是(Shi)如(Ru)此(Ci))(?),(?)List是(Shi)线(Xian)性(Xing)结(Jie)构(Gou)的(De)容(Rong)器(Qi),(?)适(Shi)用(Yong)于(Yu)按(An)数(Shu)值(Zhi)索(Suo)引(Yin)访(Fang)问(Wen)元(Yuan)素(Su)的(De)情(Qing)形(Xing)。(?)
答(Da):(?)ArrayList 和(He)Vector都(Du)是(Shi)使(Shi)用(Yong)数(Shu)组(Zu)方(Fang)式(Shi)存(Cun)储(Chu)数(Shu)据(Ju),(?)此(Ci)数(Shu)组(Zu)元(Yuan)素(Su)数(Shu)大(Da)于(Yu)实(Shi)际(Ji)存(Cun)储(Chu)的(De)数(Shu)据(Ju)以(Yi)便(Bian)增(Zeng)加(Jia)和(He)插(Cha)入(Ru)元(Yuan)素(Su),(?)它(Ta)们(Men)都(Du)允(Yun)许(Xu)直(Zhi)接(Jie)按(An)序(Xu)号(Hao)索(Suo)引(Yin)元(Yuan)素(Su),(?)但(Dan)是(Shi)插(Cha)入(Ru)元(Yuan)素(Su)要(Yao)涉(She)及(Ji)数(Shu)组(Zu)元(Yuan)素(Su)移(Yi)动(Dong)等(Deng)内(Nei)存(Cun)操(Cao)作(Zuo),(?)所(Suo)以(Yi)索(Suo)引(Yin)数(Shu)据(Ju)快(Kuai)而(?)插(Cha)入(Ru)数(Shu)据(Ju)慢(Man),(?)Vector由(You)于(Yu)使(Shi)用(Yong)了(Liao)synchronized 方(Fang)法(Fa)((?)线(Xian)程(Cheng)安(An)全(Quan))(?),(?)通(Tong)常(Chang)性(Xing)能(Neng)上(Shang)较(Jiao)ArrayList 差(Cha),(?)而(?)LinkedList 使(Shi)用(Yong)双(Shuang)向(Xiang)链(Lian)表(Biao)实(Shi)现(Xian)存(Cun)储(Chu)((?)将(Jiang)内(Nei)存(Cun)中(Zhong)零(Ling)散(San)的(De)内(Nei)存(Cun)单(Dan)元(Yuan)通(Tong)过(Guo)附(Fu)加(Jia)的(De)引(Yin)用(Yong)关(Guan)联(Lian)起(Qi)来(Lai),(?)形(Xing)成(Cheng)一(Yi)个(Ge)可(Ke)以(Yi)按(An)序(Xu)号(Hao)索(Suo)引(Yin)的(De)线(Xian)性(Xing)结(Jie)构(Gou),(?)这(Zhe)种(Zhong)链(Lian)式(Shi)存(Cun)储(Chu)方(Fang)式(Shi)与(Yu)数(Shu)组(Zu)的(De)连(Lian)续(Xu)存(Cun)储(Chu)方(Fang)式(Shi)相(Xiang)比(Bi),(?)其(Qi)实(Shi)对(Dui)内(Nei)存(Cun)的(De)利(Li)用(Yong)率(Lu)更(Geng)高(Gao))(?),(?)按(An)序(Xu)号(Hao)索(Suo)引(Yin)数(Shu)据(Ju)需(Xu)要(Yao)进(Jin)行(Xing)前(Qian)向(Xiang)或(Huo)后(Hou)向(Xiang)遍(Bian)历(Li),(?)但(Dan)是(Shi)插(Cha)入(Ru)数(Shu)据(Ju)时(Shi)只(Zhi)需(Xu)要(Yao)记(Ji)录(Lu)本(Ben)项(Xiang)的(De)前(Qian)后(Hou)项(Xiang)即(Ji)可(Ke),(?)所(Suo)以(Yi)插(Cha)入(Ru)速(Su)度(Du)较(Jiao)快(Kuai)。(?)Vector属(Shu)于(Yu)遗(Yi)留(Liu)容(Rong)器(Qi)((?)早(Zao)期(Qi)的(De)JDK中(Zhong)使(Shi)用(Yong)的(De)容(Rong)器(Qi),(?)除(Chu)此(Ci)之(Zhi)外(Wai)Hashtable、(?)Dictionary、(?)BitSet、(?)Stack、(?)Properties都(Du)是(Shi)遗(Yi)留(Liu)容(Rong)器(Qi))(?),(?)现(Xian)在(Zai)已(Yi)经(Jing)不(Bu)推(Tui)荐(Jian)使(Shi)用(Yong),(?)但(Dan)是(Shi)由(You)于(Yu)ArrayList和(He)LinkedListed都(Du)是(Shi)非(Fei)线(Xian)程(Cheng)安(An)全(Quan)的(De),(?)如(Ru)果(Guo)需(Xu)要(Yao)多(Duo)个(Ge)线(Xian)程(Cheng)操(Cao)作(Zuo)同(Tong)一(Yi)个(Ge)容(Rong)器(Qi),(?)那(Na)么(Me)可(Ke)以(Yi)通(Tong)过(Guo)工(Gong)具(Ju)类(Lei)Collections中(Zhong)的(De)synchronizedList方(Fang)法(Fa)将(Jiang)其(Qi)转(Zhuan)换(Huan)成(Cheng)线(Xian)程(Cheng)安(An)全(Quan)的(De)容(Rong)器(Qi)后(Hou)再(Zai)使(Shi)用(Yong)((?)这(Zhe)其(Qi)实(Shi)是(Shi)装(Zhuang)潢(Huang)模(Mo)式(Shi)最(Zui)好(Hao)的(De)例(Li)子(Zi),(?)将(Jiang)已(Yi)有(You)对(Dui)象(Xiang)传(Chuan)入(Ru)另(Ling)一(Yi)个(Ge)类(Lei)的(De)构(Gou)造(Zao)器(Qi)中(Zhong)创(Chuang)建(Jian)新(Xin)的(De)对(Dui)象(Xiang)来(Lai)增(Zeng)加(Jia)新(Xin)功(Gong)能(Neng))(?)。(?)
补(Bu)充(Chong):(?)遗(Yi)留(Liu)容(Rong)器(Qi)中(Zhong)的(De)Properties类(Lei)和(He)Stack类(Lei)在(Zai)设(She)计(Ji)上(Shang)有(You)严(Yan)重(Zhong)的(De)问(Wen)题(Ti),(?)Properties是(Shi)一(Yi)个(Ge)键(Jian)和(He)值(Zhi)都(Du)是(Shi)字(Zi)符(Fu)串(Chuan)的(De)特(Te)殊(Shu)的(De)键(Jian)值(Zhi)对(Dui)映(Ying)射(She),(?)在(Zai)设(She)计(Ji)上(Shang)应(Ying)该(Gai)是(Shi)关(Guan)联(Lian)一(Yi)个(Ge)Hashtable并(Bing)将(Jiang)其(Qi)两(Liang)个(Ge)泛(Fan)型(Xing)参(Can)数(Shu)设(She)置(Zhi)为(Wei)String类(Lei)型(Xing),(?)但(Dan)是(Shi)Java API中(Zhong)的(De)Properties直(Zhi)接(Jie)继(Ji)承(Cheng)了(Liao)Hashtable,(?)这(Zhe)很(Hen)明(Ming)显(Xian)是(Shi)对(Dui)继(Ji)承(Cheng)的(De)滥(Lan)用(Yong)。(?)这(Zhe)里(Li)复(Fu)用(Yong)代(Dai)码(Ma)的(De)方(Fang)式(Shi)应(Ying)该(Gai)是(Shi)HAS-A关(Guan)系(Xi)而(?)不(Bu)是(Shi)IS-A关(Guan)系(Xi),(?)另(Ling)一(Yi)方(Fang)面(Mian)容(Rong)器(Qi)都(Du)属(Shu)于(Yu)工(Gong)具(Ju)类(Lei),(?)继(Ji)承(Cheng)工(Gong)具(Ju)类(Lei)本(Ben)身(Shen)就(Jiu)是(Shi)一(Yi)个(Ge)错(Cuo)误(Wu)的(De)做(Zuo)法(Fa),(?)使(Shi)用(Yong)工(Gong)具(Ju)类(Lei)最(Zui)好(Hao)的(De)方(Fang)式(Shi)是(Shi)HAS-A关(Guan)系(Xi)((?)关(Guan)联(Lian))(?)或(Huo)USE-A关(Guan)系(Xi)((?)依(Yi)赖(Lai))(?) 。(?)同(Tong)理(Li),(?)Stack类(Lei)继(Ji)承(Cheng)Vector也(Ye)是(Shi)不(Bu)正(Zheng)确(Que)的(De)。(?)
答(Da):(?)List以(Yi)特(Te)定(Ding)索(Suo)引(Yin)来(Lai)存(Cun)取(Qu)元(Yuan)素(Su),(?)可(Ke)有(You)重(Zhong)复(Fu)元(Yuan)素(Su)。(?)
Set不(Bu)能(Neng)存(Cun)放(Fang)重(Zhong)复(Fu)元(Yuan)素(Su)((?)用(Yong)对(Dui)象(Xiang)的(De)equals()方(Fang)法(Fa)来(Lai)区(Qu)分(Fen)元(Yuan)素(Su)是(Shi)否(Fou)重(Zhong)复(Fu))(?) 。(?)Map保(Bao)存(Cun)键(Jian)值(Zhi)对(Dui)((?)key-value pair)(?)映(Ying)射(She),(?)映(Ying)射(She)关(Guan)系(Xi)可(Ke)以(Yi)是(Shi)一(Yi)对(Dui)一(Yi)或(Huo)多(Duo)对(Dui)一(Yi)。(?)Set和(He)Map容(Rong)器(Qi)都(Du)有(You)基(Ji)于(Yu)哈(Ha)希(Xi)存(Cun)储(Chu)和(He)排(Pai)序(Xu)树(Shu)((?)红(Hong)黑(Hei)树(Shu))(?)的(De)两(Liang)种(Zhong)实(Shi)现(Xian)版(Ban)本(Ben),(?)基(Ji)于(Yu)哈(Ha)希(Xi)存(Cun)储(Chu)的(De)版(Ban)本(Ben)理(Li)论(Lun)存(Cun)取(Qu)时(Shi)间(Jian)复(Fu)杂(Za)度(Du)为(Wei)O(1),(?)而(?)基(Ji)于(Yu)排(Pai)序(Xu)树(Shu)版(Ban)本(Ben)的(De)实(Shi)现(Xian)在(Zai)插(Cha)入(Ru)或(Huo)删(Shan)除(Chu)元(Yuan)素(Su)时(Shi)会(Hui)按(An)照(Zhao)元(Yuan)素(Su)或(Huo)元(Yuan)素(Su)的(De)键(Jian)((?)key)(?)构(Gou)成(Cheng)排(Pai)序(Xu)树(Shu)从(Cong)而(?)达(Da)到(Dao)排(Pai)序(Xu)和(He)去(Qu)重(Zhong)的(De)效(Xiao)果(Guo)。(?)
答(Da):(?)TreeSet要(Yao)求(Qiu)存(Cun)放(Fang)的(De)对(Dui)象(Xiang)所(Suo)属(Shu)的(De)类(Lei)必(Bi)须(Xu)实(Shi)现(Xian)Comparable接(Jie)口(Kou),(?)该(Gai)接(Jie)口(Kou)提(Ti)供(Gong)了(Liao)比(Bi)较(Jiao)元(Yuan)素(Su)的(De)compareTo()方(Fang)法(Fa),(?)当(Dang)插(Cha)入(Ru)元(Yuan)素(Su)时(Shi)会(Hui)回(Hui)调(Diao)该(Gai)方(Fang)法(Fa)比(Bi)较(Jiao)元(Yuan)素(Su)的(De)大(Da)小(Xiao)。(?)
TreeMap要(Yao)求(Qiu)存(Cun)放(Fang)的(De)键(Jian)值(Zhi)对(Dui)映(Ying)射(She)的(De)键(Jian)必(Bi)须(Xu)实(Shi)现(Xian)Comparable接(Jie)口(Kou)从(Cong)而(?)根(Gen)据(Ju)键(Jian)对(Dui)元(Yuan)素(Su)进(Jin)行(Xing)排(Pai)序(Xu)。(?)
Collections工(Gong)具(Ju)类(Lei)的(De)sort方(Fang)法(Fa)有(You)两(Liang)种(Zhong)重(Zhong)载(Zai)的(De)形(Xing)式(Shi),(?)第(Di)一(Yi)种(Zhong)要(Yao)求(Qiu)传(Chuan)入(Ru)的(De)待(Dai)排(Pai)序(Xu)容(Rong)器(Qi)中(Zhong)存(Cun)放(Fang)的(De)对(Dui)象(Xiang)比(Bi)较(Jiao)实(Shi)现(Xian)Comparable接(Jie)口(Kou)以(Yi)实(Shi)现(Xian)元(Yuan)素(Su)的(De)比(Bi)较(Jiao);(?)第(Di)二(?)种(Zhong)不(Bu)强(Qiang)制(Zhi)性(Xing)的(De)要(Yao)求(Qiu)容(Rong)器(Qi)中(Zhong)的(De)元(Yuan)素(Su)必(Bi)须(Xu)可(Ke)比(Bi)较(Jiao),(?)但(Dan)是(Shi)要(Yao)求(Qiu)传(Chuan)入(Ru)第(Di)二(?)个(Ge)参(Can)数(Shu),(?)参(Can)数(Shu)是(Shi)Comparator接(Jie)口(Kou)的(De)子(Zi)类(Lei)型(Xing) ((?)需(Xu)要(Yao)重(Zhong)写(Xie)compare方(Fang)法(Fa)实(Shi)现(Xian)元(Yuan)素(Su)的(De)比(Bi)较(Jiao))(?),(?)相(Xiang)当(Dang)于(Yu)一(Yi)个(Ge)临(Lin)时(Shi)定(Ding)义(Yi)的(De)排(Pai)序(Xu)规(Gui)则(Ze),(?)其(Qi)实(Shi)就(Jiu)是(Shi)是(Shi)通(Tong)过(Guo)接(Jie)口(Kou)注(Zhu)入(Ru)比(Bi)较(Jiao)元(Yuan)素(Su)大(Da)小(Xiao)的(De)算(Suan)法(Fa),(?)也(Ye)是(Shi)对(Dui)回(Hui)调(Diao)模(Mo)式(Shi)的(De)应(Ying)用(Yong)。(?)
例(Li)子(Zi)1:(?)
Student.java
package com.bjsxt; public class Student implements Comparable<Student> { private String name; // 姓(Xing)名(Ming) private int age; // 年(Nian)龄(Ling) public Student(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + "]"; } @Override public int compareTo(Student o) { return this.age - o.age; // 比(Bi)较(Jiao)年(Nian)龄(Ling)(年(Nian)龄(Ling)的(De)升(Sheng)序(Xu)) } }
Test01.java
package com.bjsxt; import java.util.Set; import java.util.TreeSet; class Test01 { public static void main(String[] args) { Set<Student> set = new TreeSet<>(); // Java 7的(De)钻(Zuan)石(Shi)语(Yu)法(Fa)(构(Gou)造(Zao)器(Qi)后(Hou)面(Mian)的(De)尖(Jian)括(Kuo)号(Hao)中(Zhong)不(Bu)需(Xu)要(Yao)写(Xie)类(Lei)型(Xing)) set.add(new Student("Hao LUO", 33)); set.add(new Student("XJ WANG", 32)); set.add(new Student("Bruce LEE", 60)); set.add(new Student("Bob YANG", 22)); for(Student stu : set) { System.out.println(stu); } // 输(Shu)出(Chu)结(Jie)果(Guo): // Student [name=Bob YANG, age=22] // Student [name=XJ WANG, age=32] // Student [name=Hao LUO, age=33] // Student [name=Bruce LEE, age=60] } }
例(Li)子(Zi)2:(?)
Student.java
package com.bjsxt; public class Student { private String name; // 姓(Xing)名(Ming) private int age; // 年(Nian)龄(Ling) public Student(String name, int age) { this.name = name; this.age = age; } /** * 获(Huo)取(Qu)学(Xue)生(Sheng)姓(Xing)名(Ming) */ public String getName() { return name; } /** * 获(Huo)取(Qu)学(Xue)生(Sheng)年(Nian)龄(Ling) */ public int getAge() { return age; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + "]"; } }
Test02.java
package com.bjsxt; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; class Test02 { public static void main(String[] args) { List<Student> list = new ArrayList<>(); // Java 7的(De)钻(Zuan)石(Shi)语(Yu)法(Fa)(构(Gou)造(Zao)器(Qi)后(Hou)面(Mian)的(De)尖(Jian)括(Kuo)号(Hao)中(Zhong)不(Bu)需(Xu)要(Yao)写(Xie)类(Lei)型(Xing)) list.add(new Student("Hao LUO", 33)); list.add(new Student("XJ WANG", 32)); list.add(new Student("Bruce LEE", 60)); list.add(new Student("Bob YANG", 22)); // 通(Tong)过(Guo)sort方(Fang)法(Fa)的(De)第(Di)二(?)个(Ge)参(Can)数(Shu)传(Chuan)入(Ru)一(Yi)个(Ge)Comparator接(Jie)口(Kou)对(Dui)象(Xiang) // 相(Xiang)当(Dang)于(Yu)是(Shi)传(Chuan)入(Ru)一(Yi)个(Ge)比(Bi)较(Jiao)对(Dui)象(Xiang)大(Da)小(Xiao)的(De)算(Suan)法(Fa)到(Dao)sort方(Fang)法(Fa)中(Zhong) // 由(You)于(Yu)Java中(Zhong)没(Mei)有(You)函(Han)数(Shu)指(Zhi)针(Zhen)、(?)仿(Fang)函(Han)数(Shu)、(?)委(Wei)托(Tuo)这(Zhe)样(Yang)的(De)概(Gai)念(Nian) // 因(Yin)此(Ci)要(Yao)将(Jiang)一(Yi)个(Ge)算(Suan)法(Fa)传(Chuan)入(Ru)一(Yi)个(Ge)方(Fang)法(Fa)中(Zhong)唯(Wei)一(Yi)的(De)选(Xuan)择(Ze)就(Jiu)是(Shi)通(Tong)过(Guo)接(Jie)口(Kou)回(Hui)调(Diao) Collections.sort(list, new Comparator<Student> () { @Override public int compare(Student o1, Student o2) { return o1.getName().compareTo(o2.getName()); // 比(Bi)较(Jiao)学(Xue)生(Sheng)姓(Xing)名(Ming) } }); for(Student stu : list) { System.out.println(stu); } // 输(Shu)出(Chu)结(Jie)果(Guo): // Student [name=Bob YANG, age=22] // Student [name=Bruce LEE, age=60] // Student [name=Hao LUO, age=33] // Student [name=XJ WANG, age=32] } }
多(Duo)线(Xian)程(Cheng):(?)
public static void main(String[] args) { Thread t=new Thread(){ public void run(){ pong(); } }; t.run(); System.out.println("ping"); } static void pong(){ System.out.println("pong"); }
A. | pingpong |
B. | pongping |
C. | pingpong和(He)pongping都(Du)有(You)可(Ke)能(Neng) |
D. | 都(Du)不(Bu)输(Shu)出(Chu) |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?)启(Qi)动(Dong)线(Xian)程(Cheng)需(Xu)要(Yao)调(Diao)用(Yong)start()方(Fang)法(Fa),(?)而(?)t.run()方(Fang)法(Fa),(?)则(Ze)是(Shi)使(Shi)用(Yong)对(Dui)象(Xiang)名(Ming).分(Fen)析(Xi):(?)启(Qi)动(Dong)线(Xian)程(Cheng)需(Xu)要(Yao)调(Diao)用(Yong)start()方(Fang)法(Fa),(?)而(?)t.run()方(Fang)法(Fa),(?)则(Ze)是(Shi)使(Shi)用(Yong)对(Dui)象(Xiang)名(Ming).
|
A. | public class X implements Runnable{public void run() {…(?)…(?)}} |
B. | public class X extends Thread{public void run() {…(?)…(?)}} |
C. | public class X extends Thread{public int run() {…(?)…(?)}} |
D. | public class X implements Runnable{protected void run() {…(?)…(?)}} |
答(Da)案(An):(?)AB
分(Fen)析(Xi):(?) 继(Ji)承(Cheng)Thread和(He)实(Shi)现(Xian)Runable接(Jie)口(Kou)
|
作(Zuo)用(Yong):(?)
要(Yao)编(Bian)写(Xie)一(Yi)个(Ge)多(Duo)线(Xian)程(Cheng)安(An)全(Quan)(Thread-safe)的(De)程(Cheng)序(Xu)是(Shi)困(Kun)难(Nan)的(De),(?)为(Wei)了(Liao)让(Rang)线(Xian)程(Cheng)共(Gong)享(Xiang)资(Zi)源(Yuan),(?)必(Bi)须(Xu)小(Xiao)心(Xin)地(Di)对(Dui)共(Gong)享(Xiang)资(Zi)源(Yuan)进(Jin)行(Xing)同(Tong)步(Bu),(?)同(Tong)步(Bu)带(Dai)来(Lai)一(Yi)定(Ding)的(De)效(Xiao)能(Neng)延(Yan)迟(Chi),(?)而(?)另(Ling)一(Yi)方(Fang)面(Mian),(?)在(Zai)处(Chu)理(Li)同(Tong)步(Bu)的(De)时(Shi)候(Hou),(?)又(You)要(Yao)注(Zhu)意(Yi)对(Dui)象(Xiang)的(De)锁(Suo)定(Ding)与(Yu)释(Shi)放(Fang),(?)避(Bi)免(Mian)产(Chan)生(Sheng)死(Si)结(Jie),(?)种(Zhong)种(Zhong)因(Yin)素(Su)都(Du)使(Shi)得(De)编(Bian)写(Xie)多(Duo)线(Xian)程(Cheng)程(Cheng)序(Xu)变(Bian)得(De)困(Kun)难(Nan)。(?)
尝(Chang)试(Shi)从(Cong)另(Ling)一(Yi)个(Ge)角(Jiao)度(Du)来(Lai)思(Si)考(Kao)多(Duo)线(Xian)程(Cheng)共(Gong)享(Xiang)资(Zi)源(Yuan)的(De)问(Wen)题(Ti),(?)既(Ji)然(Ran)共(Gong)享(Xiang)资(Zi)源(Yuan)这(Zhe)么(Me)困(Kun)难(Nan),(?)那(Na)么(Me)就(Jiu)干(Gan)脆(Cui)不(Bu)要(Yao)共(Gong)享(Xiang),(?)何(He)不(Bu)为(Wei)每(Mei)个(Ge)线(Xian)程(Cheng)创(Chuang)造(Zao)一(Yi)个(Ge)资(Zi)源(Yuan)的(De)复(Fu)本(Ben)。(?)将(Jiang)每(Mei)一(Yi)个(Ge)线(Xian)程(Cheng)存(Cun)取(Qu)数(Shu)据(Ju)的(De)行(Xing)为(Wei)加(Jia)以(Yi)隔(Ge)离(Li),(?)实(Shi)现(Xian)的(De)方(Fang)法(Fa)就(Jiu)是(Shi)给(Gei)予(Yu)每(Mei)个(Ge)线(Xian)程(Cheng)一(Yi)个(Ge)特(Te)定(Ding)空(Kong)间(Jian)来(Lai)保(Bao)管(Guan)该(Gai)线(Xian)程(Cheng)所(Suo)独(Du)享(Xiang)的(De)资(Zi)源(Yuan)。(?)
比(Bi)如(Ru):(?)在(Zai)Hibernate中(Zhong)的(De)Session就(Jiu)有(You)使(Shi)用(Yong)。(?)
ThreadLocal的(De)原(Yuan)理(Li)
ThreadLocal是(Shi)如(Ru)何(He)做(Zuo)到(Dao)为(Wei)每(Mei)一(Yi)个(Ge)线(Xian)程(Cheng)维(Wei)护(Hu)变(Bian)量(Liang)的(De)副(Fu)本(Ben)的(De)呢(Ne)?(?)其(Qi)实(Shi)实(Shi)现(Xian)的(De)思(Si)路(Lu)很(Hen)简(Jian)单(Dan),(?)在(Zai)ThreadLocal类(Lei)中(Zhong)有(You)一(Yi)个(Ge)Map,(?)用(Yong)于(Yu)存(Cun)储(Chu)每(Mei)一(Yi)个(Ge)线(Xian)程(Cheng)的(De)变(Bian)量(Liang)的(De)副(Fu)本(Ben)。(?)
答(Da):(?)悲(Bei)观(Guan)锁(Suo)(Pessimistic Lock), 顾(Gu)名(Ming)思(Si)义(Yi),(?)就(Jiu)是(Shi)很(Hen)悲(Bei)观(Guan),(?)每(Mei)次(Ci)去(Qu)拿(Na)数(Shu)据(Ju)的(De)时(Shi)候(Hou)都(Du)认(Ren)为(Wei)别(Bie)人(Ren)会(Hui)修(Xiu)改(Gai),(?)所(Suo)以(Yi)每(Mei)次(Ci)在(Zai)拿(Na)数(Shu)据(Ju)的(De)时(Shi)候(Hou)都(Du)会(Hui)上(Shang)锁(Suo),(?)这(Zhe)样(Yang)别(Bie)人(Ren)想(Xiang)拿(Na)这(Zhe)个(Ge)数(Shu)据(Ju)就(Jiu)会(Hui)block直(Zhi)到(Dao)它(Ta)拿(Na)到(Dao)锁(Suo)。(?)传(Chuan)统(Tong)的(De)关(Guan)系(Xi)型(Xing)数(Shu)据(Ju)库(Ku)里(Li)边(Bian)就(Jiu)用(Yong)到(Dao)了(Liao)很(Hen)多(Duo)这(Zhe)种(Zhong)锁(Suo)机(Ji)制(Zhi),(?)比(Bi)如(Ru)行(Xing)锁(Suo),(?)表(Biao)锁(Suo)等(Deng),(?)读(Du)锁(Suo),(?)写(Xie)锁(Suo)等(Deng),(?)都(Du)是(Shi)在(Zai)做(Zuo)操(Cao)作(Zuo)之(Zhi)前(Qian)先(Xian)上(Shang)锁(Suo)。(?)
乐(Le)观(Guan)锁(Suo)(Optimistic Lock), 顾(Gu)名(Ming)思(Si)义(Yi),(?)就(Jiu)是(Shi)很(Hen)乐(Le)观(Guan),(?)每(Mei)次(Ci)去(Qu)拿(Na)数(Shu)据(Ju)的(De)时(Shi)候(Hou)都(Du)认(Ren)为(Wei)别(Bie)人(Ren)不(Bu)会(Hui)修(Xiu)改(Gai),(?)所(Suo)以(Yi)不(Bu)会(Hui)上(Shang)锁(Suo),(?)但(Dan)是(Shi)在(Zai)更(Geng)新(Xin)的(De)时(Shi)候(Hou)会(Hui)判(Pan)断(Duan)一(Yi)下(Xia)在(Zai)此(Ci)期(Qi)间(Jian)别(Bie)人(Ren)有(You)没(Mei)有(You)去(Qu)更(Geng)新(Xin)这(Zhe)个(Ge)数(Shu)据(Ju),(?)可(Ke)以(Yi)使(Shi)用(Yong)版(Ban)本(Ben)号(Hao)等(Deng)机(Ji)制(Zhi)。(?)乐(Le)观(Guan)锁(Suo)适(Shi)用(Yong)于(Yu)多(Duo)读(Du)的(De)应(Ying)用(Yong)类(Lei)型(Xing),(?)这(Zhe)样(Yang)可(Ke)以(Yi)提(Ti)高(Gao)吞(Tun)吐(Tu)量(Liang),(?)像(Xiang)数(Shu)据(Ju)库(Ku)如(Ru)果(Guo)提(Ti)供(Gong)类(Lei)似(Si)于(Yu)write_condition机(Ji)制(Zhi)的(De)其(Qi)实(Shi)都(Du)是(Shi)提(Ti)供(Gong)的(De)乐(Le)观(Guan)锁(Suo)。(?)
两(Liang)种(Zhong)锁(Suo)各(Ge)有(You)优(You)缺(Que)点(Dian),(?)不(Bu)可(Ke)认(Ren)为(Wei)一(Yi)种(Zhong)好(Hao)于(Yu)另(Ling)一(Yi)种(Zhong),(?)像(Xiang)乐(Le)观(Guan)锁(Suo)适(Shi)用(Yong)于(Yu)写(Xie)比(Bi)较(Jiao)少(Shao)的(De)情(Qing)况(Kuang)下(Xia),(?)即(Ji)冲(Chong)突(Tu)真(Zhen)的(De)很(Hen)少(Shao)发(Fa)生(Sheng)的(De)时(Shi)候(Hou),(?)这(Zhe)样(Yang)可(Ke)以(Yi)省(Sheng)去(Qu)了(Liao)锁(Suo)的(De)开(Kai)销(Xiao),(?)加(Jia)大(Da)了(Liao)系(Xi)统(Tong)的(De)整(Zheng)个(Ge)吞(Tun)吐(Tu)量(Liang)。(?)但(Dan)如(Ru)果(Guo)经(Jing)常(Chang)产(Chan)生(Sheng)冲(Chong)突(Tu),(?)上(Shang)层(Ceng)应(Ying)用(Yong)会(Hui)不(Bu)断(Duan)的(De)进(Jin)行(Xing)retry,(?)这(Zhe)样(Yang)反(Fan)倒(Dao)是(Shi)降(Jiang)低(Di)了(Liao)性(Xing)能(Neng),(?)所(Suo)以(Yi)这(Zhe)种(Zhong)情(Qing)况(Kuang)下(Xia)用(Yong)悲(Bei)观(Guan)锁(Suo)就(Jiu)比(Bi)较(Jiao)合(He)适(Shi)。(?)
答(Da):(?)当(Dang)多(Duo)个(Ge)线(Xian)程(Cheng)访(Fang)问(Wen)同(Tong)一(Yi)个(Ge)数(Shu)据(Ju)时(Shi),(?)容(Rong)易(Yi)出(Chu)现(Xian)线(Xian)程(Cheng)安(An)全(Quan)问(Wen)题(Ti),(?)需(Xu)要(Yao)某(Mou)种(Zhong)方(Fang)式(Shi)来(Lai)确(Que)保(Bao)资(Zi)源(Yuan)在(Zai)某(Mou)一(Yi)时(Shi)刻(Ke)只(Zhi)被(Bei)一(Yi)个(Ge)线(Xian)程(Cheng)使(Shi)用(Yong)。(?)需(Xu)要(Yao)让(Rang)线(Xian)程(Cheng)同(Tong)步(Bu),(?)保(Bao)证(Zheng)数(Shu)据(Ju)安(An)全(Quan)线(Xian)程(Cheng)同(Tong)步(Bu)的(De)实(Shi)现(Xian)方(Fang)案(An):(?) 同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai)和(He)同(Tong)步(Bu)方(Fang)法(Fa),(?)均(Jun)需(Xu)要(Yao)使(Shi)用(Yong)synchronized关(Guan)键(Jian)字(Zi)
同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai):(?)public void makeWithdrawal(int amt) {
synchronized (acct) { }
}
同(Tong)步(Bu)方(Fang)法(Fa):(?)public synchronized void makeWithdrawal(int amt) { }
线(Xian)程(Cheng)同(Tong)步(Bu)的(De)好(Hao)处(Chu):(?)解(Jie)决(Jue)了(Liao)线(Xian)程(Cheng)安(An)全(Quan)问(Wen)题(Ti)
线(Xian)程(Cheng)同(Tong)步(Bu)的(De)缺(Que)点(Dian):(?)性(Xing)能(Neng)下(Xia)降(Jiang),(?)可(Ke)能(Neng)会(Hui)带(Dai)来(Lai)死(Si)锁(Suo)
方(Fang)式(Shi)1:(?)继(Ji)承(Cheng)Java.lang.Thread类(Lei),(?)并(Bing)覆(Fu)盖(Gai)run() 方(Fang)法(Fa)。(?)优(You)势(Shi):(?)编(Bian)写(Xie)简(Jian)单(Dan);(?)劣(Lie)势(Shi):(?)无(Wu)法(Fa)继(Ji)承(Cheng)其(Qi)它(Ta)父(Fu)类(Lei)
public class ThreadDemo1 { public static void main(String args[]) { MyThread1 t = new MyThread1(); t.start(); while (true) { System.out.println("兔(Tu)子(Zi)领(Ling)先(Xian)了(Liao),(?)别(Bie)骄(Jiao)傲(Ao)"); } } } class MyThread1 extends Thread { public void run() { while (true) { System.out.println("乌(Wu)龟(Gui)领(Ling)先(Xian)了(Liao),(?)加(Jia)油(You)"); } } }
方(Fang)式(Shi)2:(?)实(Shi)现(Xian)Java.lang.Runnable接(Jie)口(Kou),(?)并(Bing)实(Shi)现(Xian)run()方(Fang)法(Fa)。(?)优(You)势(Shi):(?)可(Ke)继(Ji)承(Cheng)其(Qi)它(Ta)类(Lei),(?)多(Duo)线(Xian)程(Cheng)可(Ke)共(Gong)享(Xiang)同(Tong)一(Yi)个(Ge)Thread对(Dui)象(Xiang);(?)劣(Lie)势(Shi):(?)编(Bian)程(Cheng)方(Fang)式(Shi)稍(Shao)微(Wei)复(Fu)杂(Za),(?)如(Ru)需(Xu)访(Fang)问(Wen)当(Dang)前(Qian)线(Xian)程(Cheng),(?)需(Xu)调(Diao)用(Yong)Thread.currentThread()方(Fang)法(Fa)
public class ThreadDemo2 { public static void main(String args[]) { MyThread2 mt = new MyThread2(); Thread t = new Thread(mt); t.start(); while (true) { System.out.println("兔(Tu)子(Zi)领(Ling)先(Xian)了(Liao),(?)加(Jia)油(You)"); } } } class MyThread2 implements Runnable { public void run() { while (true) { System.out.println("乌(Wu)龟(Gui)超(Chao)过(Guo)了(Liao),(?)再(Zai)接(Jie)再(Zai)厉(Li)"); } } }
答(Da):wait方(Fang)法(Fa)是(Shi)线(Xian)程(Cheng)通(Tong)信(Xin)的(De)方(Fang)法(Fa)之(Zhi)一(Yi),(?)必(Bi)须(Xu)用(Yong)在(Zai) synchronized方(Fang)法(Fa)或(Huo)者(Zhe)synchronized代(Dai)码(Ma)块(Kuai)中(Zhong),(?)否(Fou)则(Ze)会(Hui)抛(Pao)出(Chu)异(Yi)常(Chang),(?)这(Zhe)就(Jiu)涉(She)及(Ji)到(Dao)一(Yi)个(Ge)“(?)锁(Suo)”(?)的(De)概(Gai)念(Nian),(?)而(?)wait方(Fang)法(Fa)必(Bi)须(Xu)使(Shi)用(Yong)上(Shang)锁(Suo)的(De)对(Dui)象(Xiang)来(Lai)调(Diao)用(Yong),(?)从(Cong)而(?)持(Chi)有(You)该(Gai)对(Dui)象(Xiang)的(De)锁(Suo)进(Jin)入(Ru)线(Xian)程(Cheng)等(Deng)待(Dai)状(Zhuang)态(Tai),(?)直(Zhi)到(Dao)使(Shi)用(Yong)该(Gai)上(Shang)锁(Suo)的(De)对(Dui)象(Xiang)调(Diao)用(Yong)notify或(Huo)者(Zhe)notifyAll方(Fang)法(Fa)来(Lai)唤(Huan)醒(Xing)之(Zhi)前(Qian)进(Jin)入(Ru)等(Deng)待(Dai)的(De)线(Xian)程(Cheng),(?)以(Yi)释(Shi)放(Fang)持(Chi)有(You)的(De)锁(Suo)。(?)
答(Da):线(Xian)程(Cheng)是(Shi)一(Yi)个(Ge)动(Dong)态(Tai)执(Zhi)行(Xing)的(De)过(Guo)程(Cheng),(?)它(Ta)有(You)一(Yi)个(Ge)从(Cong)产(Chan)生(Sheng)到(Dao)死(Si)亡(Wang)的(De)过(Guo)程(Cheng),(?)共(Gong)五(Wu)种(Zhong)状(Zhuang)态(Tai):(?)
新(Xin)建(Jian)((?)new Thread)(?)
当(Dang)创(Chuang)建(Jian)Thread类(Lei)的(De)一(Yi)个(Ge)实(Shi)例(Li)((?)对(Dui)象(Xiang))(?)时(Shi),(?)此(Ci)线(Xian)程(Cheng)进(Jin)入(Ru)新(Xin)建(Jian)状(Zhuang)态(Tai)((?)未(Wei)被(Bei)启(Qi)动(Dong))(?)
例(Li)如(Ru):(?)Thread t1=new Thread();
就(Jiu)绪(Xu)((?)runnable)(?)
线(Xian)程(Cheng)已(Yi)经(Jing)被(Bei)启(Qi)动(Dong),(?)正(Zheng)在(Zai)等(Deng)待(Dai)被(Bei)分(Fen)配(Pei)给(Gei)CPU时(Shi)间(Jian)片(Pian),(?)也(Ye)就(Jiu)是(Shi)说(Shuo)此(Ci)时(Shi)线(Xian)程(Cheng)正(Zheng)在(Zai)就(Jiu)绪(Xu)队(Dui)列(Lie)中(Zhong)排(Pai)队(Dui)等(Deng)候(Hou)得(De)到(Dao)CPU资(Zi)源(Yuan)。(?)例(Li)如(Ru):(?)t1.start();
运(Yun)行(Xing)((?)running)(?)
线(Xian)程(Cheng)获(Huo)得(De)CPU资(Zi)源(Yuan)正(Zheng)在(Zai)执(Zhi)行(Xing)任(Ren)务(Wu)((?)run()方(Fang)法(Fa))(?),(?)此(Ci)时(Shi)除(Chu)非(Fei)此(Ci)线(Xian)程(Cheng)自(Zi)动(Dong)放(Fang)弃(Qi)CPU资(Zi)源(Yuan)或(Huo)者(Zhe)有(You)优(You)先(Xian)级(Ji)更(Geng)高(Gao)的(De)线(Xian)程(Cheng)进(Jin)入(Ru),(?)线(Xian)程(Cheng)将(Jiang)一(Yi)直(Zhi)运(Yun)行(Xing)到(Dao)结(Jie)束(Shu)。(?)
死(Si)亡(Wang)((?)dead)(?)
当(Dang)线(Xian)程(Cheng)执(Zhi)行(Xing)完(Wan)毕(Bi)或(Huo)被(Bei)其(Qi)它(Ta)线(Xian)程(Cheng)杀(Sha)死(Si),(?)线(Xian)程(Cheng)就(Jiu)进(Jin)入(Ru)死(Si)亡(Wang)状(Zhuang)态(Tai),(?)这(Zhe)时(Shi)线(Xian)程(Cheng)不(Bu)可(Ke)能(Neng)再(Zai)进(Jin)入(Ru)就(Jiu)绪(Xu)状(Zhuang)态(Tai)等(Deng)待(Dai)执(Zhi)行(Xing)。(?)
自(Zi)然(Ran)终(Zhong)止(Zhi):(?)正(Zheng)常(Chang)运(Yun)行(Xing)run()方(Fang)法(Fa)后(Hou)终(Zhong)止(Zhi)
异(Yi)常(Chang)终(Zhong)止(Zhi):(?)调(Diao)用(Yong)stop()方(Fang)法(Fa)让(Rang)一(Yi)个(Ge)线(Xian)程(Cheng)终(Zhong)止(Zhi)运(Yun)行(Xing)
堵(Du)塞(Sai)((?)blocked)(?)
由(You)于(Yu)某(Mou)种(Zhong)原(Yuan)因(Yin)导(Dao)致(Zhi)正(Zheng)在(Zai)运(Yun)行(Xing)的(De)线(Xian)程(Cheng)让(Rang)出(Chu)CPU并(Bing)暂(Zan)停(Ting)自(Zi)己(Ji)的(De)执(Zhi)行(Xing),(?)即(Ji)进(Jin)入(Ru)堵(Du)塞(Sai)状(Zhuang)态(Tai)。(?)
正(Zheng)在(Zai)睡(Shui)眠(Mian):(?)用(Yong)sleep(long t) 方(Fang)法(Fa)可(Ke)使(Shi)线(Xian)程(Cheng)进(Jin)入(Ru)睡(Shui)眠(Mian)方(Fang)式(Shi)。(?)一(Yi)个(Ge)睡(Shui)眠(Mian)着(Zhuo)的(De)线(Xian)程(Cheng)在(Zai)指(Zhi)定(Ding)的(De)时(Shi)间(Jian)过(Guo)去(Qu)可(Ke)进(Jin)入(Ru)就(Jiu)绪(Xu)状(Zhuang)态(Tai)。(?)
正(Zheng)在(Zai)等(Deng)待(Dai):(?)调(Diao)用(Yong)wait()方(Fang)法(Fa)。(?)((?)调(Diao)用(Yong)motify()方(Fang)法(Fa)回(Hui)到(Dao)就(Jiu)绪(Xu)状(Zhuang)态(Tai))(?)
被(Bei)另(Ling)一(Yi)个(Ge)线(Xian)程(Cheng)所(Suo)阻(Zu)塞(Sai):(?)调(Diao)用(Yong)suspend()方(Fang)法(Fa)。(?)((?)调(Diao)用(Yong)resume()方(Fang)法(Fa)恢(Hui)复(Fu))(?)
A. | sleep() |
B. | Suspend() |
C. | wait() |
D. | yield() |
答(Da)案(An):(?)D
分(Fen)析(Xi):(?)yield会(Hui)是(Shi)线(Xian)程(Cheng)进(Jin)入(Ru)就(Jiu)绪(Xu)状(Zhuang)态(Tai)
|
答(Da):不(Bu)能(Neng)。(?)虽(Sui)然(Ran)volatile提(Ti)供(Gong)了(Liao)同(Tong)步(Bu)的(De)机(Ji)制(Zhi),(?)但(Dan)是(Shi)知(Zhi)识(Shi)一(Yi)种(Zhong)弱(Ruo)的(De)同(Tong)步(Bu)机(Ji)制(Zhi),(?)如(Ru)需(Xu)要(Yao)强(Qiang)线(Xian)程(Cheng)安(An)全(Quan),(?)还(Huan)需(Xu)要(Yao)使(Shi)用(Yong)synchronized。(?)
Java语(Yu)言(Yan)提(Ti)供(Gong)了(Liao)一(Yi)种(Zhong)稍(Shao)弱(Ruo)的(De)同(Tong)步(Bu)机(Ji)制(Zhi),(?)即(Ji)volatile变(Bian)量(Liang),(?)用(Yong)来(Lai)确(Que)保(Bao)将(Jiang)变(Bian)量(Liang)的(De)更(Geng)新(Xin)操(Cao)作(Zuo)通(Tong)知(Zhi)到(Dao)其(Qi)他(Ta)线(Xian)程(Cheng)。(?)当(Dang)把(Ba)变(Bian)量(Liang)声(Sheng)明(Ming)为(Wei)volatile类(Lei)型(Xing)后(Hou),(?)编(Bian)译(Yi)器(Qi)与(Yu)运(Yun)行(Xing)时(Shi)都(Du)会(Hui)注(Zhu)意(Yi)到(Dao)这(Zhe)个(Ge)变(Bian)量(Liang)是(Shi)共(Gong)享(Xiang)的(De),(?)因(Yin)此(Ci)不(Bu)会(Hui)将(Jiang)该(Gai)变(Bian)量(Liang)上(Shang)的(De)操(Cao)作(Zuo)与(Yu)其(Qi)他(Ta)内(Nei)存(Cun)操(Cao)作(Zuo)一(Yi)起(Qi)重(Zhong)排(Pai)序(Xu)。(?)volatile变(Bian)量(Liang)不(Bu)会(Hui)被(Bei)缓(Huan)存(Cun)在(Zai)寄(Ji)存(Cun)器(Qi)或(Huo)者(Zhe)对(Dui)其(Qi)他(Ta)处(Chu)理(Li)器(Qi)不(Bu)可(Ke)见(Jian)的(De)地(Di)方(Fang),(?)因(Yin)此(Ci)在(Zai)读(Du)取(Qu)volatile类(Lei)型(Xing)的(De)变(Bian)量(Liang)时(Shi)总(Zong)会(Hui)返(Fan)回(Hui)最(Zui)新(Xin)写(Xie)入(Ru)的(De)值(Zhi)。(?)
一(Yi)、(?)volatile的(De)内(Nei)存(Cun)语(Yu)义(Yi)是(Shi):(?)
当(Dang)写(Xie)一(Yi)个(Ge)volatile变(Bian)量(Liang)时(Shi),(?)JMM会(Hui)把(Ba)该(Gai)线(Xian)程(Cheng)对(Dui)应(Ying)的(De)本(Ben)地(Di)内(Nei)存(Cun)中(Zhong)的(De)共(Gong)享(Xiang)变(Bian)量(Liang)值(Zhi)立(Li)即(Ji)刷(Shua)新(Xin)到(Dao)主(Zhu)内(Nei)存(Cun)中(Zhong)。(?)
当(Dang)读(Du)一(Yi)个(Ge)volatile变(Bian)量(Liang)时(Shi),(?)JMM会(Hui)把(Ba)该(Gai)线(Xian)程(Cheng)对(Dui)应(Ying)的(De)本(Ben)地(Di)内(Nei)存(Cun)设(She)置(Zhi)为(Wei)无(Wu)效(Xiao),(?)直(Zhi)接(Jie)从(Cong)主(Zhu)内(Nei)存(Cun)中(Zhong)读(Du)取(Qu)共(Gong)享(Xiang)变(Bian)量(Liang)。(?)
二(?)、(?)volatile底(Di)层(Ceng)的(De)实(Shi)现(Xian)机(Ji)制(Zhi)
如(Ru)果(Guo)把(Ba)加(Jia)入(Ru)volatile关(Guan)键(Jian)字(Zi)的(De)代(Dai)码(Ma)和(He)未(Wei)加(Jia)入(Ru)volatile关(Guan)键(Jian)字(Zi)的(De)代(Dai)码(Ma)都(Du)生(Sheng)成(Cheng)汇(Hui)编(Bian)代(Dai)码(Ma),(?)会(Hui)发(Fa)现(Xian)加(Jia)入(Ru)volatile关(Guan)键(Jian)字(Zi)的(De)代(Dai)码(Ma)会(Hui)多(Duo)出(Chu)一(Yi)个(Ge)lock前(Qian)缀(Zhui)指(Zhi)令(Ling)。(?)
1 、(?)重(Zhong)排(Pai)序(Xu)时(Shi)不(Bu)能(Neng)把(Ba)后(Hou)面(Mian)的(De)指(Zhi)令(Ling)重(Zhong)排(Pai)序(Xu)到(Dao)内(Nei)存(Cun)屏(Ping)障(Zhang)之(Zhi)前(Qian)的(De)位(Wei)置(Zhi)
2、(?)使(Shi)得(De)本(Ben)CPU的(De)Cache写(Xie)入(Ru)内(Nei)存(Cun)
3、(?)写(Xie)入(Ru)动(Dong)作(Zuo)也(Ye)会(Hui)引(Yin)起(Qi)别(Bie)的(De)CPU或(Huo)者(Zhe)别(Bie)的(De)内(Nei)核(He)无(Wu)效(Xiao)化(Hua)其(Qi)Cache,(?)相(Xiang)当(Dang)于(Yu)让(Rang)新(Xin)写(Xie)入(Ru)的(De)值(Zhi)对(Dui)别(Bie)的(De)线(Xian)程(Cheng)可(Ke)见(Jian)。(?)
(1) 继(Ji)承(Cheng)Thread类(Lei)
public class java_thread extends Thread{ public static void main(String args[]) { new java_thread().run(); System.out.println("main thread run "); } public synchronized void run() { System.out.println("sub thread run "); } }
(2) 实(Shi)现(Xian)Runnable接(Jie)口(Kou)
public class java_thread implements Runnable{ public static void main(String args[]) { new Thread(new java_thread()).start(); System.out.println("main thread run "); } public void run() { System.out.println("sub thread run "); } }
在(Zai)Executor框(Kuang)架(Jia)下(Xia),(?)利(Li)用(Yong)Executors的(De)静(Jing)态(Tai)方(Fang)法(Fa)可(Ke)以(Yi)创(Chuang)建(Jian)三(San)种(Zhong)类(Lei)型(Xing)的(De)常(Chang)用(Yong)线(Xian)程(Cheng)池(Chi):(?)
1)(?)FixedThreadPool这(Zhe)个(Ge)线(Xian)程(Cheng)池(Chi)可(Ke)以(Yi)创(Chuang)建(Jian)固(Gu)定(Ding)线(Xian)程(Cheng)数(Shu)的(De)线(Xian)程(Cheng)池(Chi)。(?)
2)(?)SingleThreadExecutor是(Shi)使(Shi)用(Yong)单(Dan)个(Ge)worker线(Xian)程(Cheng)的(De)Executor。(?)
3)(?)CachedThreadPool是(Shi)一(Yi)个(Ge)”(?)无(Wu)限(Xian)“(?)容(Rong)量(Liang)的(De)线(Xian)程(Cheng)池(Chi),(?)它(Ta)会(Hui)根(Gen)据(Ju)需(Xu)要(Yao)创(Chuang)建(Jian)新(Xin)线(Xian)程(Cheng)。(?)
A. | sleep是(Shi)线(Xian)程(Cheng)类(Lei)((?)Thread)(?)的(De)方(Fang)法(Fa),(?)wait是(Shi)Object类(Lei)的(De)方(Fang)法(Fa) |
B. | Sleep不(Bu)释(Shi)放(Fang)对(Dui)象(Xiang)锁(Suo),(?)wait放(Fang)弃(Qi)对(Dui)象(Xiang)锁(Suo) |
C. | Sleep暂(Zan)停(Ting)线(Xian)程(Cheng)、(?)但(Dan)监(Jian)控(Kong)状(Zhuang)态(Tai)任(Ren)然(Ran)保(Bao)持(Chi),(?)结(Jie)束(Shu)后(Hou)会(Hui)自(Zi)动(Dong)恢(Hui)复(Fu) |
D. | Wait后(Hou)进(Jin)入(Ru)等(Deng)待(Dai)锁(Suo)定(Ding)池(Chi),(?)只(Zhi)针(Zhen)对(Dui)此(Ci)对(Dui)象(Xiang)发(Fa)出(Chu)notify方(Fang)法(Fa)后(Hou)获(Huo)取(Qu)对(Dui)象(Xiang)锁(Suo)进(Jin)入(Ru)运(Yun)行(Xing)状(Zhuang)态(Tai)。(?) |
答(Da)案(An):(?)D
分(Fen)析(Xi):(?)针(Zhen)对(Dui)此(Ci)对(Dui)象(Xiang)的(De)notify方(Fang)法(Fa)后(Hou)获(Huo)取(Qu)对(Dui)象(Xiang)锁(Suo)并(Bing)进(Jin)入(Ru)就(Jiu)绪(Xu)状(Zhuang)态(Tai),(?)而(?)不(Bu)是(Shi)运(Yun)行(Xing)状(Zhuang)态(Tai)。(?)另(Ling)外(Wai)针(Zhen)对(Dui)此(Ci)对(Dui)象(Xiang)的(De)notifyAll方(Fang)法(Fa)后(Hou)也(Ye)可(Ke)能(Neng)获(Huo)取(Qu)对(Dui)象(Xiang)锁(Suo)并(Bing)进(Jin)入(Ru)就(Jiu)绪(Xu)状(Zhuang)态(Tai),(?)而(?)不(Bu)是(Shi)运(Yun)行(Xing)状(Zhuang)态(Tai)
|
进(Jin)程(Cheng)是(Shi)具(Ju)有(You)一(Yi)定(Ding)独(Du)立(Li)功(Gong)能(Neng)的(De)程(Cheng)序(Xu)关(Guan)于(Yu)某(Mou)个(Ge)数(Shu)据(Ju)集(Ji)合(He)上(Shang)的(De)一(Yi)次(Ci)运(Yun)行(Xing)活(Huo)动(Dong),进(Jin)程(Cheng)是(Shi)系(Xi)统(Tong)进(Jin)行(Xing)资(Zi)源(Yuan)分(Fen)配(Pei)和(He)调(Diao)度(Du)的(De)一(Yi)个(Ge)独(Du)立(Li)单(Dan)位(Wei).
线(Xian)程(Cheng)是(Shi)进(Jin)程(Cheng)的(De)一(Yi)个(Ge)实(Shi)体(Ti),是(Shi)CPU调(Diao)度(Du)和(He)分(Fen)派(Pai)的(De)基(Ji)本(Ben)单(Dan)位(Wei),它(Ta)是(Shi)比(Bi)进(Jin)程(Cheng)更(Geng)小(Xiao)的(De)能(Neng)独(Du)立(Li)运(Yun)行(Xing)的(De)基(Ji)本(Ben)单(Dan)位(Wei).线(Xian)程(Cheng)自(Zi)己(Ji)基(Ji)本(Ben)上(Shang)不(Bu)拥(Yong)有(You)系(Xi)统(Tong)资(Zi)源(Yuan),只(Zhi)拥(Yong)有(You)一(Yi)点(Dian)在(Zai)运(Yun)行(Xing)中(Zhong)必(Bi)不(Bu)可(Ke)少(Shao)的(De)资(Zi)源(Yuan)(如(Ru)程(Cheng)序(Xu)计(Ji)数(Shu)器(Qi),一(Yi)组(Zu)寄(Ji)存(Cun)器(Qi)和(He)栈(Zhan)),但(Dan)是(Shi)它(Ta)可(Ke)与(Yu)同(Tong)属(Shu)一(Yi)个(Ge)进(Jin)程(Cheng)的(De)其(Qi)他(Ta)的(De)线(Xian)程(Cheng)共(Gong)享(Xiang)进(Jin)程(Cheng)所(Suo)拥(Yong)有(You)的(De)全(Quan)部(Bu)资(Zi)源(Yuan).
区(Qu)别(Bie) | 进(Jin)程(Cheng) | 线(Xian)程(Cheng) |
根(Gen)本(Ben)区(Qu)别(Bie) | 作(Zuo)为(Wei)资(Zi)源(Yuan)分(Fen)配(Pei)的(De)单(Dan)位(Wei) | 调(Diao)度(Du)和(He)执(Zhi)行(Xing)的(De)单(Dan)位(Wei) |
开(Kai)销(Xiao) | 每(Mei)个(Ge)进(Jin)程(Cheng)都(Du)有(You)独(Du)立(Li)的(De)代(Dai)码(Ma)和(He)数(Shu)据(Ju)空(Kong)间(Jian)(进(Jin)程(Cheng)上(Shang)下(Xia)文(Wen)),(?)进(Jin)程(Cheng)间(Jian)的(De)切(Qie)换(Huan)会(Hui)有(You)较(Jiao)大(Da)的(De)开(Kai)销(Xiao)。(?) | 线(Xian)程(Cheng)可(Ke)以(Yi)看(Kan)成(Cheng)时(Shi)轻(Qing)量(Liang)级(Ji)的(De)进(Jin)程(Cheng),(?)同(Tong)一(Yi)类(Lei)线(Xian)程(Cheng)共(Gong)享(Xiang)代(Dai)码(Ma)和(He)数(Shu)据(Ju)空(Kong)间(Jian),(?)每(Mei)个(Ge)线(Xian)程(Cheng)有(You)独(Du)立(Li)的(De)运(Yun)行(Xing)栈(Zhan)和(He)程(Cheng)序(Xu)计(Ji)数(Shu)器(Qi)(PC),(?)线(Xian)程(Cheng)切(Qie)换(Huan)的(De)开(Kai)销(Xiao)小(Xiao)。(?) |
所(Suo)处(Chu)环(Huan)境(Jing) | 系(Xi)统(Tong)在(Zai)运(Yun)行(Xing)的(De)时(Shi)候(Hou)会(Hui)为(Wei)每(Mei)个(Ge)进(Jin)程(Cheng)分(Fen)配(Pei)不(Bu)同(Tong)的(De)内(Nei)存(Cun)区(Qu)域(Yu) | 除(Chu)了(Liao)CPU之(Zhi)外(Wai),(?)不(Bu)会(Hui)为(Wei)线(Xian)程(Cheng)分(Fen)配(Pei)内(Nei)存(Cun)((?)线(Xian)程(Cheng)所(Suo)使(Shi)用(Yong)的(De)资(Zi)源(Yuan)是(Shi)它(Ta)所(Suo)属(Shu)的(De)进(Jin)程(Cheng)的(De)资(Zi)源(Yuan))(?),(?)线(Xian)程(Cheng)组(Zu)只(Zhi)能(Neng)共(Gong)享(Xiang)资(Zi)源(Yuan) |
分(Fen)配(Pei)内(Nei)存(Cun) | 系(Xi)统(Tong)在(Zai)运(Yun)行(Xing)的(De)时(Shi)候(Hou)会(Hui)为(Wei)每(Mei)个(Ge)进(Jin)程(Cheng)分(Fen)配(Pei)不(Bu)同(Tong)的(De)内(Nei)存(Cun)区(Qu)域(Yu) | 除(Chu)了(Liao)CPU之(Zhi)外(Wai),(?)不(Bu)会(Hui)为(Wei)线(Xian)程(Cheng)分(Fen)配(Pei)内(Nei)存(Cun)((?)线(Xian)程(Cheng)所(Suo)使(Shi)用(Yong)的(De)资(Zi)源(Yuan)是(Shi)它(Ta)所(Suo)属(Shu)的(De)进(Jin)程(Cheng)的(De)资(Zi)源(Yuan))(?),(?)线(Xian)程(Cheng)组(Zu)只(Zhi)能(Neng)共(Gong)享(Xiang)资(Zi)源(Yuan) |
包(Bao)含(Han)关(Guan)系(Xi) | 没(Mei)有(You)线(Xian)程(Cheng)的(De)进(Jin)程(Cheng)是(Shi)可(Ke)以(Yi)被(Bei)看(Kan)作(Zuo)单(Dan)线(Xian)程(Cheng)的(De),(?)如(Ru)果(Guo)一(Yi)个(Ge)进(Jin)程(Cheng)内(Nei)拥(Yong)有(You)多(Duo)个(Ge)线(Xian)程(Cheng),(?)则(Ze)执(Zhi)行(Xing)过(Guo)程(Cheng)不(Bu)是(Shi)一(Yi)条(Tiao)线(Xian)的(De),(?)而(?)是(Shi)多(Duo)条(Tiao)线(Xian)((?)线(Xian)程(Cheng))(?)共(Gong)同(Tong)完(Wan)成(Cheng)的(De)。(?) | 线(Xian)程(Cheng)是(Shi)进(Jin)程(Cheng)的(De)一(Yi)部(Bu)分(Fen),(?)所(Suo)以(Yi)线(Xian)程(Cheng)有(You)的(De)时(Shi)候(Hou)被(Bei)称(Cheng)为(Wei)是(Shi)轻(Qing)权(Quan)进(Jin)程(Cheng)或(Huo)者(Zhe)轻(Qing)量(Liang)级(Ji)进(Jin)程(Cheng)。(?) |
A. | Lock |
B. | Synchronized |
C. | Volatile |
答(Da)案(An):(?)C
|
答(Da):(?)用(Yong)一(Yi)个(Ge)for循(Xun)环(Huan)创(Chuang)建(Jian)线(Xian)程(Cheng)对(Dui)象(Xiang),(?)同(Tong)时(Shi)调(Diao)用(Yong)wait()方(Fang)法(Fa),(?)让(Rang)所(Suo)有(You)线(Xian)程(Cheng)等(Deng)待(Dai);(?)直(Zhi)到(Dao)最(Zui)后(Hou)一(Yi)个(Ge)线(Xian)程(Cheng)也(Ye)准(Zhun)备(Bei)就(Jiu)绪(Xu)后(Hou),(?)调(Diao)用(Yong)notifyAll(), 同(Tong)时(Shi)启(Qi)动(Dong)所(Suo)有(You)线(Xian)程(Cheng)。(?)
比(Bi)如(Ru):(?)给(Gei)你(Ni)n个(Ge)赛(Sai)车(Che),(?)让(Rang)他(Ta)们(Men)都(Du)在(Zai)起(Qi)跑(Pao)线(Xian)上(Shang)就(Jiu)绪(Xu)后(Hou),(?)同(Tong)时(Shi)出(Chu)发(Fa),(?)Java多(Duo)线(Xian)程(Cheng)如(Ru)何(He)写(Xie)代(Dai)码(Ma)?(?)
思(Si)路(Lu)是(Shi),(?)来(Lai)一(Yi)辆(Liang)赛(Sai)车(Che)就(Jiu)加(Jia)上(Shang)一(Yi)把(Ba)锁(Suo),(?)并(Bing)修(Xiu)改(Gai)对(Dui)应(Ying)的(De)操(Cao)作(Zuo)数(Shu),(?)如(Ru)果(Guo)没(Mei)有(You)全(Quan)部(Bu)就(Jiu)绪(Xu)就(Jiu)等(Deng)待(Dai),(?)并(Bing)释(Shi)放(Fang)锁(Suo),(?)直(Zhi)到(Dao)最(Zui)后(Hou)一(Yi)辆(Liang)赛(Sai)车(Che)到(Dao)场(Chang)后(Hou)唤(Huan)醒(Xing)所(Suo)有(You)的(De)赛(Sai)车(Che)线(Xian)程(Cheng)。(?)代(Dai)码(Ma)参(Can)考(Kao)如(Ru)下(Xia):(?)
public class CarCompetion { // 参(Can)赛(Sai)赛(Sai)车(Che)的(De)数(Shu)量(Liang) protected final int totalCarNum = 10; // 当(Dang)前(Qian)在(Zai)起(Qi)跑(Pao)线(Xian)的(De)赛(Sai)车(Che)数(Shu)量(Liang) protected int nowCarNum = 0; }
public class Car implements Runnable{ private int carNum; private CarCompetion competion = null; public Car(int carNum, CarCompetion competion) { this.carNum = carNum; this.competion = competion; } @Override public void run() { synchronized (competion) { competion.nowCarNum++; while (competion.nowCarNum < competion.totalCarNum) { try { competion.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } competion.notifyAll(); } startCar(); } private void startCar() { System.out.println("Car num " + this.carNum + " start to run."); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Car num " + this.carNum + " get to the finish line."); } }
public static void main(String[] args) { CarCompetion carCompetion = new CarCompetion(); final ExecutorService carPool = Executors.newFixedThreadPool(carCompetion.totalCarNum); for (int i = 0; i < carCompetion.totalCarNum; i++) { carPool.execute(new Car(i, carCompetion)); }
答(Da):(?)1.如(Ru)果(Guo)数(Shu)据(Ju)将(Jiang)在(Zai)线(Xian)程(Cheng)间(Jian)共(Gong)享(Xiang)。(?)例(Li)如(Ru)正(Zheng)在(Zai)写(Xie)的(De)数(Shu)据(Ju)以(Yi)后(Hou)可(Ke)能(Neng)被(Bei)另(Ling)一(Yi)个(Ge)线(Xian)程(Cheng)读(Du)到(Dao),(?)或(Huo)者(Zhe)正(Zheng)在(Zai)读(Du)的(De)数(Shu)据(Ju)可(Ke)能(Neng)已(Yi)经(Jing)被(Bei)另(Ling)一(Yi)个(Ge)线(Xian)程(Cheng)写(Xie)过(Guo)了(Liao),(?)那(Na)么(Me)这(Zhe)些(Xie)数(Shu)据(Ju)就(Jiu)是(Shi)共(Gong)享(Xiang)数(Shu)据(Ju),(?)必(Bi)须(Xu)进(Jin)行(Xing)同(Tong)步(Bu)存(Cun)取(Qu)。(?)
2.当(Dang)应(Ying)用(Yong)程(Cheng)序(Xu)在(Zai)对(Dui)象(Xiang)上(Shang)调(Diao)用(Yong)了(Liao)一(Yi)个(Ge)需(Xu)要(Yao)花(Hua)费(Fei)很(Hen)长(Chang)时(Shi)间(Jian)来(Lai)执(Zhi)行(Xing)的(De)方(Fang)法(Fa),(?)并(Bing)且(Qie)不(Bu)希(Xi)望(Wang)让(Rang)程(Cheng)序(Xu)等(Deng)待(Dai)方(Fang)法(Fa)的(De)返(Fan)回(Hui)时(Shi),(?)就(Jiu)应(Ying)该(Gai)使(Shi)用(Yong)异(Yi)步(Bu)编(Bian)程(Cheng),(?)在(Zai)很(Hen)多(Duo)情(Qing)况(Kuang)下(Xia)采(Cai)用(Yong)异(Yi)步(Bu)途(Tu)径(Jing)往(Wang)往(Wang)更(Geng)有(You)效(Xiao)率(Lu)。(?)
3.举(Ju)个(Ge)例(Li)子(Zi): 打(Da)电(Dian)话(Hua)是(Shi)同(Tong)步(Bu) 发(Fa)消(Xiao)息(Xi)是(Shi)异(Yi)步(Bu)
答(Da):(?)sleep是(Shi)线(Xian)程(Cheng)类(Lei)(Thread)的(De)方(Fang)法(Fa);(?)作(Zuo)用(Yong)是(Shi)导(Dao)致(Zhi)此(Ci)线(Xian)程(Cheng)暂(Zan)停(Ting)执(Zhi)行(Xing)指(Zhi)定(Ding)时(Shi)间(Jian),(?)给(Gei)执(Zhi)行(Xing)机(Ji)会(Hui)给(Gei)其(Qi)他(Ta)线(Xian)程(Cheng),(?)但(Dan)是(Shi)监(Jian)控(Kong)状(Zhuang)态(Tai)依(Yi)然(Ran)保(Bao)持(Chi),(?)到(Dao)时(Shi)后(Hou)会(Hui)自(Zi)动(Dong)恢(Hui)复(Fu);(?)调(Diao)用(Yong)sleep()不(Bu)会(Hui)释(Shi)放(Fang)对(Dui)象(Xiang)锁(Suo)。(?)
wait是(Shi)Object类(Lei)的(De)方(Fang)法(Fa);(?)对(Dui)此(Ci)对(Dui)象(Xiang)调(Diao)用(Yong)wait方(Fang)法(Fa)导(Dao)致(Zhi)本(Ben)线(Xian)程(Cheng)放(Fang)弃(Qi)对(Dui)象(Xiang)锁(Suo),(?)进(Jin)入(Ru)等(Deng) 待(Dai)此(Ci)对(Dui)象(Xiang)的(De)等(Deng)待(Dai)锁(Suo)定(Ding)池(Chi)。(?)只(Zhi)有(You)针(Zhen)对(Dui)此(Ci)对(Dui)象(Xiang)发(Fa)出(Chu)notify方(Fang)法(Fa)(或(Huo)notifyAll)后(Hou)本(Ben)线(Xian)程(Cheng)才(Cai)进(Jin)入(Ru)对(Dui)象(Xiang)锁(Suo)定(Ding)池(Chi),(?)准(Zhun)备(Bei)获(Huo)得(De)对(Dui)象(Xiang)锁(Suo)进(Jin)行(Xing)运(Yun)行(Xing)状(Zhuang)态(Tai)。(?)
A. | 由(You)调(Diao)度(Du)程(Cheng)序(Xu)为(Wei)进(Jin)程(Cheng)分(Fen)配(Pei)CPU |
B. | 建(Jian)立(Li)一(Yi)个(Ge)进(Jin)程(Cheng)控(Kong)制(Zhi)块(Kuai) |
C. | 为(Wei)进(Jin)程(Cheng)分(Fen)配(Pei)内(Nei)存(Cun) |
D. | 为(Wei)进(Jin)程(Cheng)分(Fen)配(Pei)文(Wen)件(Jian)描(Miao)述(Shu)符(Fu) |
答(Da)案(An):(?)BC
|
A. | 针(Zhen)对(Dui)计(Ji)数(Shu)器(Qi),(?)可(Ke)以(Yi)使(Shi)用(Yong)原(Yuan)子(Zi)加(Jia) |
B. | 只(Zhi)有(You)一(Yi)个(Ge)生(Sheng)产(Chan)者(Zhe)和(He)一(Yi)个(Ge)消(Xiao)费(Fei)者(Zhe),(?)那(Na)么(Me)就(Jiu)可(Ke)以(Yi)做(Zuo)到(Dao)免(Mian)锁(Suo)访(Fang)问(Wen)环(Huan)形(Xing)缓(Huan)冲(Chong)区(Qu)((?)Ring Buffer)(?) |
C. | RCU((?)Read-Copy-Update)(?),(?)新(Xin)旧(Jiu)副(Fu)本(Ben)切(Qie)换(Huan)机(Ji)制(Zhi),(?)对(Dui)于(Yu)旧(Jiu)副(Fu)本(Ben)可(Ke)以(Yi)采(Cai)用(Yong)延(Yan)迟(Chi)释(Shi)放(Fang)的(De)做(Zuo)法(Fa) |
D. | CAS((?)Compare-and-Swap)(?),(?)如(Ru)无(Wu)锁(Suo)栈(Zhan),(?)无(Wu)锁(Suo)队(Dui)列(Lie)等(Deng)待(Dai) |
答(Da)案(An):(?)D
分(Fen)析(Xi):(?)A 这(Zhe)方(Fang)法(Fa)虽(Sui)然(Ran)不(Bu)太(Tai)好(Hao),(?)但(Dan)是(Shi)常(Chang)见(Jian)
B ProducerConsumerQueue就(Jiu)是(Shi)这(Zhe)个(Ge),(?)到(Dao)处(Chu)都(Du)是(Shi)
C linux kernel里(Li)面(Mian)大(Da)量(Liang)使(Shi)用(Yong)
D 本(Ben)质(Zhi)上(Shang)其(Qi)实(Shi)就(Jiu)是(Shi)乐(Le)观(Guan)锁(Suo),(?)操(Cao)作(Zuo)起(Qi)来(Lai)很(Hen)困(Kun)难(Nan)。(?)。(?)单(Dan)生(Sheng)产(Chan)者(Zhe)多(Duo)消(Xiao)费(Fei)者(Zhe)或(Huo)者(Zhe)多(Duo)生(Sheng)产(Chan)者(Zhe)单(Dan)消(Xiao)费(Fei)者(Zhe)的(De)情(Qing)况(Kuang)下(Xia)比(Bi)较(Jiao)常(Chang)见(Jian),(?)也(Ye)不(Bu)容(Rong)易(Yi)遇(Yu)到(Dao)ABA问(Wen)题(Ti)。(?)
|
答(Da):(?)①(?) sleep()方(Fang)法(Fa)给(Gei)其(Qi)他(Ta)线(Xian)程(Cheng)运(Yun)行(Xing)机(Ji)会(Hui)时(Shi)不(Bu)考(Kao)虑(Lu)线(Xian)程(Cheng)的(De)优(You)先(Xian)级(Ji),(?)因(Yin)此(Ci)会(Hui)给(Gei)低(Di)优(You)先(Xian)级(Ji)的(De)线(Xian)程(Cheng)以(Yi)运(Yun)行(Xing)的(De)机(Ji)会(Hui);(?)yield()方(Fang)法(Fa)只(Zhi)会(Hui)给(Gei)相(Xiang)同(Tong)优(You)先(Xian)级(Ji)或(Huo)更(Geng)高(Gao)优(You)先(Xian)级(Ji)的(De)线(Xian)程(Cheng)以(Yi)运(Yun)行(Xing)的(De)机(Ji)会(Hui);(?)
②(?) 线(Xian)程(Cheng)执(Zhi)行(Xing)sleep()方(Fang)法(Fa)后(Hou)转(Zhuan)入(Ru)阻(Zu)塞(Sai)((?)blocked)(?)状(Zhuang)态(Tai),(?)而(?)执(Zhi)行(Xing)yield()方(Fang)法(Fa)后(Hou)转(Zhuan)入(Ru)就(Jiu)绪(Xu)((?)ready)(?)状(Zhuang)态(Tai);(?)
③(?) sleep()方(Fang)法(Fa)声(Sheng)明(Ming)抛(Pao)出(Chu)InterruptedException,(?)而(?)yield()方(Fang)法(Fa)没(Mei)有(You)声(Sheng)明(Ming)任(Ren)何(He)异(Yi)常(Chang);(?)
④(?) sleep()方(Fang)法(Fa)比(Bi)yield()方(Fang)法(Fa)((?)跟(Gen)操(Cao)作(Zuo)系(Xi)统(Tong)相(Xiang)关(Guan))(?)具(Ju)有(You)更(Geng)好(Hao)的(De)可(Ke)移(Yi)植(Zhi)性(Xing)。(?)
答(Da):(?)不(Bu)能(Neng)。(?)其(Qi)它(Ta)线(Xian)程(Cheng)只(Zhi)能(Neng)访(Fang)问(Wen)该(Gai)对(Dui)象(Xiang)的(De)非(Fei)同(Tong)步(Bu)方(Fang)法(Fa),(?)同(Tong)步(Bu)方(Fang)法(Fa)则(Ze)不(Bu)能(Neng)进(Jin)入(Ru)。(?)只(Zhi)有(You)等(Deng)待(Dai)当(Dang)前(Qian)线(Xian)程(Cheng)执(Zhi)行(Xing)完(Wan)毕(Bi)释(Shi)放(Fang)锁(Suo)资(Zi)源(Yuan)之(Zhi)后(Hou),(?)其(Qi)他(Ta)线(Xian)程(Cheng)才(Cai)有(You)可(Ke)能(Neng)进(Jin)行(Xing)执(Zhi)行(Xing)该(Gai)同(Tong)步(Bu)方(Fang)法(Fa)!(?)
延(Yan)伸(Shen) 对(Dui)象(Xiang)锁(Suo)分(Fen)为(Wei)三(San)种(Zhong):(?)共(Gong)享(Xiang)资(Zi)源(Yuan)、(?)this、(?)当(Dang)前(Qian)类(Lei)的(De)字(Zi)节(Jie)码(Ma)文(Wen)件(Jian)对(Dui)象(Xiang)
答(Da):(?)1. wait():使(Shi)一(Yi)个(Ge)线(Xian)程(Cheng)处(Chu)于(Yu)等(Deng)待(Dai)((?)阻(Zu)塞(Sai))(?)状(Zhuang)态(Tai),(?)并(Bing)且(Qie)释(Shi)放(Fang)所(Suo)持(Chi)有(You)的(De)对(Dui)象(Xiang)的(De)锁(Suo);(?)
2. sleep():使(Shi)一(Yi)个(Ge)正(Zheng)在(Zai)运(Yun)行(Xing)的(De)线(Xian)程(Cheng)处(Chu)于(Yu)睡(Shui)眠(Mian)状(Zhuang)态(Tai),(?)是(Shi)一(Yi)个(Ge)静(Jing)态(Tai)方(Fang)法(Fa),(?)调(Diao)用(Yong)此(Ci)方(Fang)法(Fa)要(Yao)捕(Bu)捉(Zhuo)InterruptedException 异(Yi)常(Chang);(?)
3. notify():唤(Huan)醒(Xing)一(Yi)个(Ge)处(Chu)于(Yu)等(Deng)待(Dai)状(Zhuang)态(Tai)的(De)线(Xian)程(Cheng),(?)当(Dang)然(Ran)在(Zai)调(Diao)用(Yong)此(Ci)方(Fang)法(Fa)的(De)时(Shi)候(Hou),(?)并(Bing)不(Bu)能(Neng)确(Que)切(Qie)的(De)唤(Huan)醒(Xing)某(Mou)一(Yi)个(Ge)等(Deng)待(Dai)状(Zhuang)态(Tai)的(De)线(Xian)程(Cheng),(?)而(?)是(Shi)由(You)JVM确(Que)定(Ding)唤(Huan)醒(Xing)哪(Na)个(Ge)线(Xian)程(Cheng),(?)而(?)且(Qie)与(Yu)优(You)先(Xian)级(Ji)无(Wu)关(Guan);(?)
4. notityAll():唤(Huan)醒(Xing)所(Suo)有(You)处(Chu)入(Ru)等(Deng)待(Dai)状(Zhuang)态(Tai)的(De)线(Xian)程(Cheng),(?)注(Zhu)意(Yi)并(Bing)不(Bu)是(Shi)给(Gei)所(Suo)有(You)唤(Huan)醒(Xing)线(Xian)程(Cheng)一(Yi)个(Ge)对(Dui)象(Xiang)的(De)锁(Suo),(?)而(?)是(Shi)让(Rang)它(Ta)们(Men)竞(Jing)争(Zheng);(?)
5. JDK 1.5通(Tong)过(Guo)Lock接(Jie)口(Kou)提(Ti)供(Gong)了(Liao)显(Xian)式(Shi)(explicit)的(De)锁(Suo)机(Ji)制(Zhi),(?)增(Zeng)强(Qiang)了(Liao)灵(Ling)活(Huo)性(Xing)以(Yi)及(Ji)对(Dui)线(Xian)程(Cheng)的(De)协(Xie)调(Diao)。(?)Lock接(Jie)口(Kou)中(Zhong)定(Ding)义(Yi)了(Liao)加(Jia)锁(Suo)((?)lock())(?)和(He)解(Jie)锁(Suo)(unlock())的(De)方(Fang)法(Fa),(?)同(Tong)时(Shi)还(Huan)提(Ti)供(Gong)了(Liao)newCondition()方(Fang)法(Fa)来(Lai)产(Chan)生(Sheng)用(Yong)于(Yu)线(Xian)程(Cheng)之(Zhi)间(Jian)通(Tong)信(Xin)的(De)Condition对(Dui)象(Xiang);(?)
6. JDK 1.5还(Huan)提(Ti)供(Gong)了(Liao)信(Xin)号(Hao)量(Liang)(semaphore)机(Ji)制(Zhi),(?)信(Xin)号(Hao)量(Liang)可(Ke)以(Yi)用(Yong)来(Lai)限(Xian)制(Zhi)对(Dui)某(Mou)个(Ge)共(Gong)享(Xiang)资(Zi)源(Yuan)进(Jin)行(Xing)访(Fang)问(Wen)的(De)线(Xian)程(Cheng)的(De)数(Shu)量(Liang)。(?)在(Zai)对(Dui)资(Zi)源(Yuan)进(Jin)行(Xing)访(Fang)问(Wen)之(Zhi)前(Qian),(?)线(Xian)程(Cheng)必(Bi)须(Xu)得(De)到(Dao)信(Xin)号(Hao)量(Liang)的(De)许(Xu)可(Ke)((?)调(Diao)用(Yong)Semaphore对(Dui)象(Xiang)的(De)acquire()方(Fang)法(Fa))(?);(?)在(Zai)完(Wan)成(Cheng)对(Dui)资(Zi)源(Yuan)的(De)访(Fang)问(Wen)后(Hou),(?)线(Xian)程(Cheng)必(Bi)须(Xu)向(Xiang)信(Xin)号(Hao)量(Liang)归(Gui)还(Huan)许(Xu)可(Ke)((?)调(Diao)用(Yong)Semaphore对(Dui)象(Xiang)的(De)release()方(Fang)法(Fa))(?)。(?)
下(Xia)面(Mian)的(De)例(Li)子(Zi)演(Yan)示(Shi)了(Liao)100个(Ge)线(Xian)程(Cheng)同(Tong)时(Shi)向(Xiang)一(Yi)个(Ge)银(Yin)行(Xing)账(Zhang)户(Hu)中(Zhong)存(Cun)入(Ru)1元(Yuan)钱(Qian),(?)在(Zai)没(Mei)有(You)使(Shi)用(Yong)同(Tong)步(Bu)机(Ji)制(Zhi)和(He)使(Shi)用(Yong)同(Tong)步(Bu)机(Ji)制(Zhi)情(Qing)况(Kuang)下(Xia)的(De)执(Zhi)行(Xing)情(Qing)况(Kuang)。(?)
银(Yin)行(Xing)账(Zhang)户(Hu)类(Lei):(?)
package com.bjsxt; /** * 银(Yin)行(Xing)账(Zhang)户(Hu) * @author sxt * */ public class Account { private double balance; // 账(Zhang)户(Hu)余(Yu)额(E) /** * 存(Cun)款(Kuan) * @param money 存(Cun)入(Ru)金(Jin)额(E) */ public void deposit(double money) { double newBalance = balance + money; try { Thread.sleep(10); // 模(Mo)拟(Ni)此(Ci)业(Ye)务(Wu)需(Xu)要(Yao)一(Yi)段(Duan)处(Chu)理(Li)时(Shi)间(Jian) } catch(InterruptedException ex) { ex.printStackTrace(); } balance = newBalance; } /** * 获(Huo)得(De)账(Zhang)户(Hu)余(Yu)额(E) */ public double getBalance() { return balance; } }
存(Cun)钱(Qian)线(Xian)程(Cheng)类(Lei):(?)
package com.bjsxt; /** * 存(Cun)钱(Qian)线(Xian)程(Cheng) * @author sxt李(Li)端(Duan)阳(Yang) * */ public class AddMoneyThread implements Runnable { private Account account; // 存(Cun)入(Ru)账(Zhang)户(Hu) private double money; // 存(Cun)入(Ru)金(Jin)额(E) public AddMoneyThread(Account account, double money) { this.account = account; this.money = money; } @Override public void run() { account.deposit(money); } }
测(Ce)试(Shi)类(Lei):(?)
package com.bjsxt; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Test01 { public static void main(String[] args) { Account account = new Account(); ExecutorService service = Executors.newFixedThreadPool(100); for(int i = 1; i <= 100; i++) { service.execute(new AddMoneyThread(account, 1)); } service.shutdown(); while(!service.isTerminated()) {} System.out.println("账(Zhang)户(Hu)余(Yu)额(E): " + account.getBalance()); } }
在(Zai)没(Mei)有(You)同(Tong)步(Bu)的(De)情(Qing)况(Kuang)下(Xia),(?)执(Zhi)行(Xing)结(Jie)果(Guo)通(Tong)常(Chang)是(Shi)显(Xian)示(Shi)账(Zhang)户(Hu)余(Yu)额(E)在(Zai)10元(Yuan)以(Yi)下(Xia),(?)出(Chu)现(Xian)这(Zhe)种(Zhong)状(Zhuang)况(Kuang)的(De)原(Yuan)因(Yin)是(Shi),(?)当(Dang)一(Yi)个(Ge)线(Xian)程(Cheng)A试(Shi)图(Tu)存(Cun)入(Ru)1元(Yuan)的(De)时(Shi)候(Hou),(?)另(Ling)外(Wai)一(Yi)个(Ge)线(Xian)程(Cheng)B也(Ye)能(Neng)够(Gou)进(Jin)入(Ru)存(Cun)款(Kuan)的(De)方(Fang)法(Fa)中(Zhong),(?)线(Xian)程(Cheng)B读(Du)取(Qu)到(Dao)的(De)账(Zhang)户(Hu)余(Yu)额(E)仍(Reng)然(Ran)是(Shi)线(Xian)程(Cheng)A存(Cun)入(Ru)1元(Yuan)钱(Qian)之(Zhi)前(Qian)的(De)账(Zhang)户(Hu)余(Yu)额(E),(?)因(Yin)此(Ci)也(Ye)是(Shi)在(Zai)原(Yuan)来(Lai)的(De)余(Yu)额(E)0上(Shang)面(Mian)做(Zuo)了(Liao)加(Jia)1元(Yuan)的(De)操(Cao)作(Zuo),(?)同(Tong)理(Li)线(Xian)程(Cheng)C也(Ye)会(Hui)做(Zuo)类(Lei)似(Si)的(De)事(Shi)情(Qing),(?)所(Suo)以(Yi)最(Zui)后(Hou)100个(Ge)线(Xian)程(Cheng)执(Zhi)行(Xing)结(Jie)束(Shu)时(Shi),(?)本(Ben)来(Lai)期(Qi)望(Wang)账(Zhang)户(Hu)余(Yu)额(E)为(Wei)100元(Yuan),(?)但(Dan)实(Shi)际(Ji)得(De)到(Dao)的(De)通(Tong)常(Chang)在(Zai)10元(Yuan)以(Yi)下(Xia)。(?)解(Jie)决(Jue)这(Zhe)个(Ge)问(Wen)题(Ti)的(De)办(Ban)法(Fa)就(Jiu)是(Shi)同(Tong)步(Bu),(?)当(Dang)一(Yi)个(Ge)线(Xian)程(Cheng)对(Dui)银(Yin)行(Xing)账(Zhang)户(Hu)存(Cun)钱(Qian)时(Shi),(?)需(Xu)要(Yao)将(Jiang)此(Ci)账(Zhang)户(Hu)锁(Suo)定(Ding),(?)待(Dai)其(Qi)操(Cao)作(Zuo)完(Wan)成(Cheng)后(Hou)才(Cai)允(Yun)许(Xu)其(Qi)他(Ta)的(De)线(Xian)程(Cheng)进(Jin)行(Xing)操(Cao)作(Zuo),(?)代(Dai)码(Ma)有(You)如(Ru)下(Xia)几(Ji)种(Zhong)调(Diao)整(Zheng)方(Fang)案(An):(?)
1. 在(Zai)银(Yin)行(Xing)账(Zhang)户(Hu)的(De)存(Cun)款(Kuan)((?)deposit)(?)方(Fang)法(Fa)上(Shang)同(Tong)步(Bu)((?)synchronized)(?)关(Guan)键(Jian)字(Zi)
package com.bjsxt; /** * 银(Yin)行(Xing)账(Zhang)户(Hu) * @author SXT李(Li)端(Duan)阳(Yang) */ public class Account { private double balance; // 账(Zhang)户(Hu)余(Yu)额(E) /** * 存(Cun)款(Kuan) * @param money 存(Cun)入(Ru)金(Jin)额(E) */ public synchronized void deposit(double money) { double newBalance = balance + money; try { Thread.sleep(10); // 模(Mo)拟(Ni)此(Ci)业(Ye)务(Wu)需(Xu)要(Yao)一(Yi)段(Duan)处(Chu)理(Li)时(Shi)间(Jian) } catch(InterruptedException ex) { ex.printStackTrace(); } balance = newBalance; } /** * 获(Huo)得(De)账(Zhang)户(Hu)余(Yu)额(E) */ public double getBalance() { return balance; } }
2. 在(Zai)线(Xian)程(Cheng)调(Diao)用(Yong)存(Cun)款(Kuan)方(Fang)法(Fa)时(Shi)对(Dui)银(Yin)行(Xing)账(Zhang)户(Hu)进(Jin)行(Xing)同(Tong)步(Bu)
package com.bjsxt; /** * 存(Cun)钱(Qian)线(Xian)程(Cheng) * @author SXT * */ public class AddMoneyThread implements Runnable { private Account account; // 存(Cun)入(Ru)账(Zhang)户(Hu) private double money; // 存(Cun)入(Ru)金(Jin)额(E) public AddMoneyThread(Account account, double money) { this.account = account; this.money = money; } @Override public void run() { synchronized (account) { account.deposit(money); } } }
3. 通(Tong)过(Guo)JDK 1.5显(Xian)示(Shi)的(De)锁(Suo)机(Ji)制(Zhi),(?)为(Wei)每(Mei)个(Ge)银(Yin)行(Xing)账(Zhang)户(Hu)创(Chuang)建(Jian)一(Yi)个(Ge)锁(Suo)对(Dui)象(Xiang),(?)在(Zai)存(Cun)款(Kuan)操(Cao)作(Zuo)进(Jin)行(Xing)加(Jia)锁(Suo)和(He)解(Jie)锁(Suo)的(De)操(Cao)作(Zuo)
package com.bjsxt; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 银(Yin)行(Xing)账(Zhang)户(Hu) * * @author SXT李(Li)端(Duan)阳(Yang) * */ public class Account { private Lock accountLock = new ReentrantLock(); private double balance; // 账(Zhang)户(Hu)余(Yu)额(E) /** * 存(Cun)款(Kuan) * * @param money * 存(Cun)入(Ru)金(Jin)额(E) */ public void deposit(double money) { accountLock.lock(); try { double newBalance = balance + money; try { Thread.sleep(10); // 模(Mo)拟(Ni)此(Ci)业(Ye)务(Wu)需(Xu)要(Yao)一(Yi)段(Duan)处(Chu)理(Li)时(Shi)间(Jian) } catch (InterruptedException ex) { ex.printStackTrace(); } balance = newBalance; } finally { accountLock.unlock(); } } /** * 获(Huo)得(De)账(Zhang)户(Hu)余(Yu)额(E) */ public double getBalance() { return balance; } }
按(An)照(Zhao)上(Shang)述(Shu)三(San)种(Zhong)方(Fang)式(Shi)对(Dui)代(Dai)码(Ma)进(Jin)行(Xing)修(Xiu)改(Gai)后(Hou),(?)重(Zhong)写(Xie)执(Zhi)行(Xing)测(Ce)试(Shi)代(Dai)码(Ma)Test01,(?)将(Jiang)看(Kan)到(Dao)最(Zui)终(Zhong)的(De)账(Zhang)户(Hu)余(Yu)额(E)为(Wei)100元(Yuan)。(?)
答(Da):(?)Java 5以(Yi)前(Qian)实(Shi)现(Xian)多(Duo)线(Xian)程(Cheng)有(You)两(Liang)种(Zhong)实(Shi)现(Xian)方(Fang)法(Fa):(?)一(Yi)种(Zhong)是(Shi)继(Ji)承(Cheng)Thread类(Lei);(?)另(Ling)一(Yi)种(Zhong)是(Shi)实(Shi)现(Xian)Runnable接(Jie)口(Kou)。(?)两(Liang)种(Zhong)方(Fang)式(Shi)都(Du)要(Yao)通(Tong)过(Guo)重(Zhong)写(Xie)run()方(Fang)法(Fa)来(Lai)定(Ding)义(Yi)线(Xian)程(Cheng)的(De)行(Xing)为(Wei),(?)推(Tui)荐(Jian)使(Shi)用(Yong)后(Hou)者(Zhe),(?)因(Yin)为(Wei)Java中(Zhong)的(De)继(Ji)承(Cheng)是(Shi)单(Dan)继(Ji)承(Cheng),(?)一(Yi)个(Ge)类(Lei)有(You)一(Yi)个(Ge)父(Fu)类(Lei),(?)如(Ru)果(Guo)继(Ji)承(Cheng)了(Liao)Thread类(Lei)就(Jiu)无(Wu)法(Fa)再(Zai)继(Ji)承(Cheng)其(Qi)他(Ta)类(Lei)了(Liao),(?)同(Tong)时(Shi)也(Ye)可(Ke)以(Yi)实(Shi)现(Xian)资(Zi)源(Yuan)共(Gong)享(Xiang),(?)显(Xian)然(Ran)使(Shi)用(Yong)Runnable接(Jie)口(Kou)更(Geng)为(Wei)灵(Ling)活(Huo)。(?)
补(Bu)充(Chong):(?)Java 5以(Yi)后(Hou)创(Chuang)建(Jian)线(Xian)程(Cheng)还(Huan)有(You)第(Di)三(San)种(Zhong)方(Fang)式(Shi):(?)实(Shi)现(Xian)Callable接(Jie)口(Kou),(?)该(Gai)接(Jie)口(Kou)中(Zhong)的(De)call方(Fang)法(Fa)可(Ke)以(Yi)在(Zai)线(Xian)程(Cheng)执(Zhi)行(Xing)结(Jie)束(Shu)时(Shi)产(Chan)生(Sheng)一(Yi)个(Ge)返(Fan)回(Hui)值(Zhi),(?)代(Dai)码(Ma)如(Ru)下(Xia)所(Suo)示(Shi):(?)
package com.bjsxt; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; class MyTask implements Callable<Integer> { private int upperBounds; public MyTask(int upperBounds) { this.upperBounds = upperBounds; } @Override public Integer call() throws Exception { int sum = 0; for(int i = 1; i <= upperBounds; i++) { sum += i; } return sum; } } public class Test { public static void main(String[] args) throws Exception { List<Future<Integer>> list = new ArrayList<>(); ExecutorService service = Executors.newFixedThreadPool(10); for(int i = 0; i < 10; i++) { list.add(service.submit(new MyTask((int) (Math.random() * 100)))); } int sum = 0; for(Future<Integer> future : list) { while(!future.isDone()) ; sum += future.get(); } System.out.println(sum); } }
答(Da):(?)synchronized关(Guan)键(Jian)字(Zi)可(Ke)以(Yi)将(Jiang)对(Dui)象(Xiang)或(Huo)者(Zhe)方(Fang)法(Fa)标(Biao)记(Ji)为(Wei)同(Tong)步(Bu),(?)以(Yi)实(Shi)现(Xian)对(Dui)对(Dui)象(Xiang)和(He)方(Fang)法(Fa)的(De)互(Hu)斥(Chi)访(Fang)问(Wen),(?)可(Ke)以(Yi)用(Yong)synchronized(对(Dui)象(Xiang)) { …(?) }定(Ding)义(Yi)同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai),(?)或(Huo)者(Zhe)在(Zai)声(Sheng)明(Ming)方(Fang)法(Fa)时(Shi)将(Jiang)synchronized作(Zuo)为(Wei)方(Fang)法(Fa)的(De)修(Xiu)饰(Shi)符(Fu)。(?)在(Zai)第(Di)60题(Ti)的(De)例(Li)子(Zi)中(Zhong)已(Yi)经(Jing)展(Zhan)示(Shi)了(Liao)synchronized关(Guan)键(Jian)字(Zi)的(De)用(Yong)法(Fa)。(?)
答(Da):(?)启(Qi)动(Dong)一(Yi)个(Ge)线(Xian)程(Cheng)是(Shi)调(Diao)用(Yong)start()方(Fang)法(Fa),(?)使(Shi)线(Xian)程(Cheng)所(Suo)代(Dai)表(Biao)的(De)虚(Xu)拟(Ni)处(Chu)理(Li)机(Ji)处(Chu)于(Yu)可(Ke)运(Yun)行(Xing)状(Zhuang)态(Tai),(?)这(Zhe)意(Yi)味(Wei)着(Zhuo)它(Ta)可(Ke)以(Yi)由(You)JVM 调(Diao)度(Du)并(Bing)执(Zhi)行(Xing),(?)这(Zhe)并(Bing)不(Bu)意(Yi)味(Wei)着(Zhuo)线(Xian)程(Cheng)就(Jiu)会(Hui)立(Li)即(Ji)运(Yun)行(Xing)。(?)run()方(Fang)法(Fa)是(Shi)线(Xian)程(Cheng)启(Qi)动(Dong)后(Hou)要(Yao)进(Jin)行(Xing)回(Hui)调(Diao)((?)callback)(?)的(De)方(Fang)法(Fa)。(?)
API解(Jie)释(Shi)如(Ru)下(Xia):(?)

答(Da):(?)在(Zai)面(Mian)向(Xiang)对(Dui)象(Xiang)编(Bian)程(Cheng)中(Zhong),(?)创(Chuang)建(Jian)和(He)销(Xiao)毁(Hui)对(Dui)象(Xiang)是(Shi)很(Hen)费(Fei)时(Shi)间(Jian)的(De),(?)因(Yin)为(Wei)创(Chuang)建(Jian)一(Yi)个(Ge)对(Dui)象(Xiang)要(Yao)获(Huo)取(Qu)内(Nei)存(Cun)资(Zi)源(Yuan)或(Huo)者(Zhe)其(Qi)它(Ta)更(Geng)多(Duo)资(Zi)源(Yuan)。(?)在(Zai)Java中(Zhong)更(Geng)是(Shi)如(Ru)此(Ci),(?)虚(Xu)拟(Ni)机(Ji)将(Jiang)试(Shi)图(Tu)跟(Gen)踪(Zong)每(Mei)一(Yi)个(Ge)对(Dui)象(Xiang),(?)以(Yi)便(Bian)能(Neng)够(Gou)在(Zai)对(Dui)象(Xiang)销(Xiao)毁(Hui)后(Hou)进(Jin)行(Xing)垃(La)圾(Ji)回(Hui)收(Shou)。(?)所(Suo)以(Yi)提(Ti)高(Gao)服(Fu)务(Wu)程(Cheng)序(Xu)效(Xiao)率(Lu)的(De)一(Yi)个(Ge)手(Shou)段(Duan)就(Jiu)是(Shi)尽(Jin)可(Ke)能(Neng)减(Jian)少(Shao)创(Chuang)建(Jian)和(He)销(Xiao)毁(Hui)对(Dui)象(Xiang)的(De)次(Ci)数(Shu),(?)特(Te)别(Bie)是(Shi)一(Yi)些(Xie)很(Hen)耗(Hao)资(Zi)源(Yuan)的(De)对(Dui)象(Xiang)创(Chuang)建(Jian)和(He)销(Xiao)毁(Hui),(?)这(Zhe)就(Jiu)是(Shi)"池(Chi)化(Hua)资(Zi)源(Yuan)"技(Ji)术(Shu)产(Chan)生(Sheng)的(De)原(Yuan)因(Yin)。(?)线(Xian)程(Cheng)池(Chi)顾(Gu)名(Ming)思(Si)义(Yi)就(Jiu)是(Shi)事(Shi)先(Xian)创(Chuang)建(Jian)若(Ruo)干(Gan)个(Ge)可(Ke)执(Zhi)行(Xing)的(De)线(Xian)程(Cheng)放(Fang)入(Ru)一(Yi)个(Ge)池(Chi)((?)容(Rong)器(Qi))(?)中(Zhong),(?)需(Xu)要(Yao)的(De)时(Shi)候(Hou)从(Cong)池(Chi)中(Zhong)获(Huo)取(Qu)线(Xian)程(Cheng)不(Bu)用(Yong)自(Zi)行(Xing)创(Chuang)建(Jian),(?)使(Shi)用(Yong)完(Wan)毕(Bi)不(Bu)需(Xu)要(Yao)销(Xiao)毁(Hui)线(Xian)程(Cheng)而(?)是(Shi)放(Fang)回(Hui)池(Chi)中(Zhong),(?)从(Cong)而(?)减(Jian)少(Shao)创(Chuang)建(Jian)和(He)销(Xiao)毁(Hui)线(Xian)程(Cheng)对(Dui)象(Xiang)的(De)开(Kai)销(Xiao)。(?)
Java 5+中(Zhong)的(De)Executor接(Jie)口(Kou)定(Ding)义(Yi)一(Yi)个(Ge)执(Zhi)行(Xing)线(Xian)程(Cheng)的(De)工(Gong)具(Ju)。(?)它(Ta)的(De)子(Zi)类(Lei)型(Xing)即(Ji)线(Xian)程(Cheng)池(Chi)接(Jie)口(Kou)是(Shi)ExecutorService。(?)要(Yao)配(Pei)置(Zhi)一(Yi)个(Ge)线(Xian)程(Cheng)池(Chi)是(Shi)比(Bi)较(Jiao)复(Fu)杂(Za)的(De),(?)尤(You)其(Qi)是(Shi)对(Dui)于(Yu)线(Xian)程(Cheng)池(Chi)的(De)原(Yuan)理(Li)不(Bu)是(Shi)很(Hen)清(Qing)楚(Chu)的(De)情(Qing)况(Kuang)下(Xia),(?)因(Yin)此(Ci)在(Zai)工(Gong)具(Ju)类(Lei)Executors面(Mian)提(Ti)供(Gong)了(Liao)一(Yi)些(Xie)静(Jing)态(Tai)工(Gong)厂(Chang)方(Fang)法(Fa),(?)生(Sheng)成(Cheng)一(Yi)些(Xie)常(Chang)用(Yong)的(De)线(Xian)程(Cheng)池(Chi),(?)如(Ru)下(Xia)所(Suo)示(Shi):(?)
newSingleThreadExecutor:(?)创(Chuang)建(Jian)一(Yi)个(Ge)单(Dan)线(Xian)程(Cheng)的(De)线(Xian)程(Cheng)池(Chi)。(?)这(Zhe)个(Ge)线(Xian)程(Cheng)池(Chi)只(Zhi)有(You)一(Yi)个(Ge)线(Xian)程(Cheng)在(Zai)工(Gong)作(Zuo),(?)也(Ye)就(Jiu)是(Shi)相(Xiang)当(Dang)于(Yu)单(Dan)线(Xian)程(Cheng)串(Chuan)行(Xing)执(Zhi)行(Xing)所(Suo)有(You)任(Ren)务(Wu)。(?)如(Ru)果(Guo)这(Zhe)个(Ge)唯(Wei)一(Yi)的(De)线(Xian)程(Cheng)因(Yin)为(Wei)异(Yi)常(Chang)结(Jie)束(Shu),(?)那(Na)么(Me)会(Hui)有(You)一(Yi)个(Ge)新(Xin)的(De)线(Xian)程(Cheng)来(Lai)替(Ti)代(Dai)它(Ta)。(?)此(Ci)线(Xian)程(Cheng)池(Chi)保(Bao)证(Zheng)所(Suo)有(You)任(Ren)务(Wu)的(De)执(Zhi)行(Xing)顺(Shun)序(Xu)按(An)照(Zhao)任(Ren)务(Wu)的(De)提(Ti)交(Jiao)顺(Shun)序(Xu)执(Zhi)行(Xing)。(?)
newFixedThreadPool:(?)创(Chuang)建(Jian)固(Gu)定(Ding)大(Da)小(Xiao)的(De)线(Xian)程(Cheng)池(Chi)。(?)每(Mei)次(Ci)提(Ti)交(Jiao)一(Yi)个(Ge)任(Ren)务(Wu)就(Jiu)创(Chuang)建(Jian)一(Yi)个(Ge)线(Xian)程(Cheng),(?)直(Zhi)到(Dao)线(Xian)程(Cheng)达(Da)到(Dao)线(Xian)程(Cheng)池(Chi)的(De)最(Zui)大(Da)大(Da)小(Xiao)。(?)线(Xian)程(Cheng)池(Chi)的(De)大(Da)小(Xiao)一(Yi)旦(Dan)达(Da)到(Dao)最(Zui)大(Da)值(Zhi)就(Jiu)会(Hui)保(Bao)持(Chi)不(Bu)变(Bian),(?)如(Ru)果(Guo)某(Mou)个(Ge)线(Xian)程(Cheng)因(Yin)为(Wei)执(Zhi)行(Xing)异(Yi)常(Chang)而(?)结(Jie)束(Shu),(?)那(Na)么(Me)线(Xian)程(Cheng)池(Chi)会(Hui)补(Bu)充(Chong)一(Yi)个(Ge)新(Xin)线(Xian)程(Cheng)。(?)
newCachedThreadPool:(?)创(Chuang)建(Jian)一(Yi)个(Ge)可(Ke)缓(Huan)存(Cun)的(De)线(Xian)程(Cheng)池(Chi)。(?)如(Ru)果(Guo)线(Xian)程(Cheng)池(Chi)的(De)大(Da)小(Xiao)超(Chao)过(Guo)了(Liao)处(Chu)理(Li)任(Ren)务(Wu)所(Suo)需(Xu)要(Yao)的(De)线(Xian)程(Cheng),(?)那(Na)么(Me)就(Jiu)会(Hui)回(Hui)收(Shou)部(Bu)分(Fen)空(Kong)闲(Xian)((?)60秒(Miao)不(Bu)执(Zhi)行(Xing)任(Ren)务(Wu))(?)的(De)线(Xian)程(Cheng),(?)当(Dang)任(Ren)务(Wu)数(Shu)增(Zeng)加(Jia)时(Shi),(?)此(Ci)线(Xian)程(Cheng)池(Chi)又(You)可(Ke)以(Yi)智(Zhi)能(Neng)的(De)添(Tian)加(Jia)新(Xin)线(Xian)程(Cheng)来(Lai)处(Chu)理(Li)任(Ren)务(Wu)。(?)此(Ci)线(Xian)程(Cheng)池(Chi)不(Bu)会(Hui)对(Dui)线(Xian)程(Cheng)池(Chi)大(Da)小(Xiao)做(Zuo)限(Xian)制(Zhi),(?)线(Xian)程(Cheng)池(Chi)大(Da)小(Xiao)完(Wan)全(Quan)依(Yi)赖(Lai)于(Yu)操(Cao)作(Zuo)系(Xi)统(Tong)((?)或(Huo)者(Zhe)说(Shuo)JVM)(?)能(Neng)够(Gou)创(Chuang)建(Jian)的(De)最(Zui)大(Da)线(Xian)程(Cheng)大(Da)小(Xiao)。(?)
newScheduledThreadPool:(?)创(Chuang)建(Jian)一(Yi)个(Ge)大(Da)小(Xiao)无(Wu)限(Xian)的(De)线(Xian)程(Cheng)池(Chi)。(?)此(Ci)线(Xian)程(Cheng)池(Chi)支(Zhi)持(Chi)定(Ding)时(Shi)以(Yi)及(Ji)周(Zhou)期(Qi)性(Xing)执(Zhi)行(Xing)任(Ren)务(Wu)的(De)需(Xu)求(Qiu)。(?)
newSingleThreadExecutor:(?)创(Chuang)建(Jian)一(Yi)个(Ge)单(Dan)线(Xian)程(Cheng)的(De)线(Xian)程(Cheng)池(Chi)。(?)此(Ci)线(Xian)程(Cheng)池(Chi)支(Zhi)持(Chi)定(Ding)时(Shi)以(Yi)及(Ji)周(Zhou)期(Qi)性(Xing)执(Zhi)行(Xing)任(Ren)务(Wu)的(De)需(Xu)求(Qiu)。(?)
有(You)通(Tong)过(Guo)Executors工(Gong)具(Ju)类(Lei)创(Chuang)建(Jian)线(Xian)程(Cheng)池(Chi)并(Bing)使(Shi)用(Yong)线(Xian)程(Cheng)池(Chi)执(Zhi)行(Xing)线(Xian)程(Cheng)的(De)代(Dai)码(Ma)。(?)如(Ru)果(Guo)希(Xi)望(Wang)在(Zai)服(Fu)务(Wu)器(Qi)上(Shang)使(Shi)用(Yong)线(Xian)程(Cheng)池(Chi),(?)强(Qiang)烈(Lie)建(Jian)议(Yi)使(Shi)用(Yong)newFixedThreadPool方(Fang)法(Fa)来(Lai)创(Chuang)建(Jian)线(Xian)程(Cheng)池(Chi),(?)这(Zhe)样(Yang)能(Neng)获(Huo)得(De)更(Geng)好(Hao)的(De)性(Xing)能(Neng)。(?)

除(Chu)去(Qu)起(Qi)始(Shi)((?)new)(?)状(Zhuang)态(Tai)和(He)结(Jie)束(Shu)((?)finished)(?)状(Zhuang)态(Tai),(?)线(Xian)程(Cheng)有(You)三(San)种(Zhong)状(Zhuang)态(Tai),(?)分(Fen)别(Bie)是(Shi):(?)就(Jiu)绪(Xu)((?)ready)(?)、(?)运(Yun)行(Xing)((?)running)(?)和(He)阻(Zu)塞(Sai)((?)blocked)(?)。(?)其(Qi)中(Zhong)就(Jiu)绪(Xu)状(Zhuang)态(Tai)代(Dai)表(Biao)线(Xian)程(Cheng)具(Ju)备(Bei)了(Liao)运(Yun)行(Xing)的(De)所(Suo)有(You)条(Tiao)件(Jian),(?)只(Zhi)等(Deng)待(Dai)CPU调(Diao)度(Du)((?)万(Wan)事(Shi)俱(Ju)备(Bei),(?)只(Zhi)欠(Qian)东(Dong)风(Feng))(?);(?)处(Chu)于(Yu)运(Yun)行(Xing)状(Zhuang)态(Tai)的(De)线(Xian)程(Cheng)可(Ke)能(Neng)因(Yin)为(Wei)CPU调(Diao)度(Du)((?)时(Shi)间(Jian)片(Pian)用(Yong)完(Wan)了(Liao))(?)的(De)原(Yuan)因(Yin)回(Hui)到(Dao)就(Jiu)绪(Xu)状(Zhuang)态(Tai),(?)也(Ye)有(You)可(Ke)能(Neng)因(Yin)为(Wei)调(Diao)用(Yong)了(Liao)线(Xian)程(Cheng)的(De)yield方(Fang)法(Fa)回(Hui)到(Dao)就(Jiu)绪(Xu)状(Zhuang)态(Tai),(?)此(Ci)时(Shi)线(Xian)程(Cheng)不(Bu)会(Hui)释(Shi)放(Fang)它(Ta)占(Zhan)有(You)的(De)资(Zi)源(Yuan)的(De)锁(Suo),(?)坐(Zuo)等(Deng)CPU以(Yi)继(Ji)续(Xu)执(Zhi)行(Xing);(?)运(Yun)行(Xing)状(Zhuang)态(Tai)的(De)线(Xian)程(Cheng)可(Ke)能(Neng)因(Yin)为(Wei)I/O中(Zhong)断(Duan)、(?)线(Xian)程(Cheng)休(Xiu)眠(Mian)、(?)调(Diao)用(Yong)了(Liao)对(Dui)象(Xiang)的(De)wait方(Fang)法(Fa)而(?)进(Jin)入(Ru)阻(Zu)塞(Sai)状(Zhuang)态(Tai)((?)有(You)的(De)地(Di)方(Fang)也(Ye)称(Cheng)之(Zhi)为(Wei)等(Deng)待(Dai)状(Zhuang)态(Tai))(?);(?)而(?)进(Jin)入(Ru)阻(Zu)塞(Sai)状(Zhuang)态(Tai)的(De)线(Xian)程(Cheng)会(Hui)因(Yin)为(Wei)休(Xiu)眠(Mian)结(Jie)束(Shu)、(?)调(Diao)用(Yong)了(Liao)对(Dui)象(Xiang)的(De)notify方(Fang)法(Fa)或(Huo)notifyAll方(Fang)法(Fa)或(Huo)其(Qi)他(Ta)线(Xian)程(Cheng)执(Zhi)行(Xing)结(Jie)束(Shu)而(?)进(Jin)入(Ru)就(Jiu)绪(Xu)状(Zhuang)态(Tai)。(?)注(Zhu)意(Yi):(?)调(Diao)用(Yong)wait方(Fang)法(Fa)会(Hui)让(Rang)线(Xian)程(Cheng)进(Jin)入(Ru)等(Deng)待(Dai)池(Chi)中(Zhong)等(Deng)待(Dai)被(Bei)唤(Huan)醒(Xing),(?)notify方(Fang)法(Fa)或(Huo)notifyAll方(Fang)法(Fa)会(Hui)让(Rang)等(Deng)待(Dai)锁(Suo)中(Zhong)的(De)线(Xian)程(Cheng)从(Cong)等(Deng)待(Dai)池(Chi)进(Jin)入(Ru)等(Deng)锁(Suo)池(Chi),(?)在(Zai)没(Mei)有(You)得(De)到(Dao)对(Dui)象(Xiang)的(De)锁(Suo)之(Zhi)前(Qian),(?)线(Xian)程(Cheng)仍(Reng)然(Ran)无(Wu)法(Fa)获(Huo)得(De)CPU的(De)调(Diao)度(Du)和(He)执(Zhi)行(Xing)。(?)
答(Da):(?)Lock是(Shi)Java 5以(Yi)后(Hou)引(Yin)入(Ru)的(De)新(Xin)的(De)API,(?)和(He)关(Guan)键(Jian)字(Zi)synchronized相(Xiang)比(Bi)主(Zhu)要(Yao)相(Xiang)同(Tong)点(Dian):(?)Lock 能(Neng)完(Wan)成(Cheng)synchronized所(Suo)实(Shi)现(Xian)的(De)所(Suo)有(You)功(Gong)能(Neng);(?)主(Zhu)要(Yao)不(Bu)同(Tong)点(Dian):(?)Lock 有(You)比(Bi)synchronized 更(Geng)精(Jing)确(Que)的(De)线(Xian)程(Cheng)语(Yu)义(Yi)和(He)更(Geng)好(Hao)的(De)性(Xing)能(Neng)。(?)synchronized 会(Hui)自(Zi)动(Dong)释(Shi)放(Fang)锁(Suo),(?)而(?)Lock 一(Yi)定(Ding)要(Yao)求(Qiu)程(Cheng)序(Xu)员(Yuan)手(Shou)工(Gong)释(Shi)放(Fang),(?)并(Bing)且(Qie)必(Bi)须(Xu)在(Zai)finally 块(Kuai)中(Zhong)释(Shi)放(Fang)((?)这(Zhe)是(Shi)释(Shi)放(Fang)外(Wai)部(Bu)资(Zi)源(Yuan)的(De)最(Zui)好(Hao)的(De)地(Di)方(Fang))(?)。(?)
方(Fang)式(Shi)1:(?)继(Ji)承(Cheng)Java.lang.Thread类(Lei),(?)并(Bing)覆(Fu)盖(Gai)run() 方(Fang)法(Fa)。(?)
优(You)势(Shi):(?)编(Bian)写(Xie)简(Jian)单(Dan);(?)
劣(Lie)势(Shi):(?)单(Dan)继(Ji)承(Cheng)的(De)限(Xian)制(Zhi)----无(Wu)法(Fa)继(Ji)承(Cheng)其(Qi)它(Ta)父(Fu)类(Lei),(?)同(Tong)时(Shi)不(Bu)能(Neng)实(Shi)现(Xian)资(Zi)源(Yuan)共(Gong)享(Xiang)。(?)
package com.bjsxt; public class ThreadDemo1 { public static void main(String args[]) { MyThread1 t = new MyThread1(); t.start(); while (true) { System.out.println("兔(Tu)子(Zi)领(Ling)先(Xian)了(Liao),(?)别(Bie)骄(Jiao)傲(Ao)"); } } } class MyThread1 extends Thread { public void run() { while (true) { System.out.println("乌(Wu)龟(Gui)领(Ling)先(Xian)了(Liao),(?)加(Jia)油(You)"); } } }
方(Fang)式(Shi)2:(?)实(Shi)现(Xian)Java.lang.Runnable接(Jie)口(Kou),(?)并(Bing)实(Shi)现(Xian)run()方(Fang)法(Fa)。(?)
优(You)势(Shi):(?)可(Ke)继(Ji)承(Cheng)其(Qi)它(Ta)类(Lei),(?)多(Duo)线(Xian)程(Cheng)可(Ke)共(Gong)享(Xiang)同(Tong)一(Yi)个(Ge)Thread对(Dui)象(Xiang);(?)
劣(Lie)势(Shi):(?)编(Bian)程(Cheng)方(Fang)式(Shi)稍(Shao)微(Wei)复(Fu)杂(Za),(?)如(Ru)需(Xu)访(Fang)问(Wen)当(Dang)前(Qian)线(Xian)程(Cheng),(?)需(Xu)调(Diao)用(Yong)Thread.currentThread()方(Fang)法(Fa)
package com.bjsxt; public class ThreadDemo2 { public static void main(String args[]) { MyThread2 mt = new MyThread2(); Thread t = new Thread(mt); t.start(); while (true) { System.out.println("兔(Tu)子(Zi)领(Ling)先(Xian)了(Liao),(?)加(Jia)油(You)"); } } } class MyThread2 implements Runnable { public void run() { while (true) { System.out.println("乌(Wu)龟(Gui)超(Chao)过(Guo)了(Liao),(?)再(Zai)接(Jie)再(Zai)厉(Li)"); } } }
两(Liang)种(Zhong)方(Fang)法(Fa)的(De)区(Qu)别(Bie)
1)(?) start方(Fang)法(Fa):(?)
用(Yong)start方(Fang)法(Fa)来(Lai)启(Qi)动(Dong)线(Xian)程(Cheng),(?)真(Zhen)正(Zheng)实(Shi)现(Xian)了(Liao)多(Duo)线(Xian)程(Cheng)运(Yun)行(Xing),(?)这(Zhe)时(Shi)无(Wu)需(Xu)等(Deng)待(Dai)run方(Fang)法(Fa)体(Ti)代(Dai)码(Ma)执(Zhi)行(Xing)完(Wan)毕(Bi)而(?)直(Zhi)接(Jie)继(Ji)续(Xu)执(Zhi)行(Xing)下(Xia)面(Mian)的(De)代(Dai)码(Ma)。(?)通(Tong)过(Guo)调(Diao)用(Yong)Thread类(Lei)的(De)start()方(Fang)法(Fa)来(Lai)启(Qi)动(Dong)一(Yi)个(Ge)线(Xian)程(Cheng),(?)这(Zhe)时(Shi)此(Ci)线(Xian)程(Cheng)处(Chu)于(Yu)就(Jiu)绪(Xu)((?)可(Ke)运(Yun)行(Xing))(?)状(Zhuang)态(Tai),(?)并(Bing)没(Mei)有(You)运(Yun)行(Xing),(?)一(Yi)旦(Dan)得(De)到(Dao)cpu时(Shi)间(Jian)片(Pian),(?)就(Jiu)开(Kai)始(Shi)执(Zhi)行(Xing)run()方(Fang)法(Fa),(?)这(Zhe)里(Li)方(Fang)法(Fa)run()称(Cheng)为(Wei)线(Xian)程(Cheng)体(Ti),(?)它(Ta)包(Bao)含(Han)了(Liao)要(Yao)执(Zhi)行(Xing)的(De)这(Zhe)个(Ge)线(Xian)程(Cheng)的(De)内(Nei)容(Rong),(?)Run方(Fang)法(Fa)运(Yun)行(Xing)结(Jie)束(Shu),(?)此(Ci)线(Xian)程(Cheng)随(Sui)即(Ji)终(Zhong)止(Zhi)。(?)
2)(?) run((?))(?):(?)
run()方(Fang)法(Fa)只(Zhi)是(Shi)类(Lei)的(De)一(Yi)个(Ge)普(Pu)通(Tong)方(Fang)法(Fa)而(?)已(Yi),(?)如(Ru)果(Guo)直(Zhi)接(Jie)调(Diao)用(Yong)run方(Fang)法(Fa),(?)程(Cheng)序(Xu)中(Zhong)依(Yi)然(Ran)只(Zhi)有(You)主(Zhu)线(Xian)程(Cheng)这(Zhe)一(Yi)个(Ge)线(Xian)程(Cheng),(?)其(Qi)程(Cheng)序(Xu)执(Zhi)行(Xing)路(Lu)径(Jing)还(Huan)是(Shi)只(Zhi)有(You)一(Yi)条(Tiao),(?)还(Huan)是(Shi)要(Yao)顺(Shun)序(Xu)执(Zhi)行(Xing),(?)还(Huan)是(Shi)要(Yao)等(Deng)待(Dai),(?)run方(Fang)法(Fa)体(Ti)执(Zhi)行(Xing)完(Wan)毕(Bi)后(Hou)才(Cai)可(Ke)继(Ji)续(Xu)执(Zhi)行(Xing)下(Xia)面(Mian)的(De)代(Dai)码(Ma),(?)这(Zhe)样(Yang)就(Jiu)没(Mei)有(You)达(Da)到(Dao)写(Xie)线(Xian)程(Cheng)的(De)目(Mu)的(De)。(?)
总(Zong)结(Jie):(?)调(Diao)用(Yong)start方(Fang)法(Fa)方(Fang)可(Ke)启(Qi)动(Dong)线(Xian)程(Cheng),(?)而(?)run方(Fang)法(Fa)只(Zhi)是(Shi)thread的(De)一(Yi)个(Ge)普(Pu)通(Tong)方(Fang)法(Fa)调(Diao)用(Yong),(?)还(Huan)是(Shi)在(Zai)主(Zhu)线(Xian)程(Cheng)里(Li)执(Zhi)行(Xing)。(?)这(Zhe)两(Liang)个(Ge)方(Fang)法(Fa)应(Ying)该(Gai)都(Du)比(Bi)较(Jiao)熟(Shu)悉(Xi),(?)把(Ba)需(Xu)要(Yao)并(Bing)行(Xing)处(Chu)理(Li)的(De)代(Dai)码(Ma)放(Fang)在(Zai)run()方(Fang)法(Fa)中(Zhong),(?)start()方(Fang)法(Fa)启(Qi)动(Dong)线(Xian)程(Cheng)将(Jiang)自(Zi)动(Dong)调(Diao)用(Yong) run()方(Fang)法(Fa),(?)这(Zhe)是(Shi)由(You)jvm的(De)内(Nei)存(Cun)机(Ji)制(Zhi)规(Gui)定(Ding)的(De)。(?)并(Bing)且(Qie)run()方(Fang)法(Fa)必(Bi)须(Xu)是(Shi)public访(Fang)问(Wen)权(Quan)限(Xian),(?)返(Fan)回(Hui)值(Zhi)类(Lei)型(Xing)为(Wei)void。(?)
两(Liang)种(Zhong)方(Fang)式(Shi)的(De)比(Bi)较(Jiao) :(?)
实(Shi)际(Ji)中(Zhong)往(Wang)往(Wang)采(Cai)用(Yong)实(Shi)现(Xian)Runable接(Jie)口(Kou),(?)一(Yi)方(Fang)面(Mian)因(Yin)为(Wei)java只(Zhi)支(Zhi)持(Chi)单(Dan)继(Ji)承(Cheng),(?)继(Ji)承(Cheng)了(Liao)Thread类(Lei)就(Jiu)无(Wu)法(Fa)再(Zai)继(Ji)续(Xu)继(Ji)承(Cheng)其(Qi)它(Ta)类(Lei),(?)而(?)且(Qie)Runable接(Jie)口(Kou)只(Zhi)有(You)一(Yi)个(Ge)run方(Fang)法(Fa);(?)另(Ling)一(Yi)方(Fang)面(Mian)通(Tong)过(Guo)结(Jie)果(Guo)可(Ke)以(Yi)看(Kan)出(Chu)实(Shi)现(Xian)Runable接(Jie)口(Kou)才(Cai)是(Shi)真(Zhen)正(Zheng)的(De)多(Duo)线(Xian)程(Cheng)。(?)
线(Xian)程(Cheng)是(Shi)一(Yi)个(Ge)动(Dong)态(Tai)执(Zhi)行(Xing)的(De)过(Guo)程(Cheng),(?)它(Ta)也(Ye)有(You)一(Yi)个(Ge)从(Cong)产(Chan)生(Sheng)到(Dao)死(Si)亡(Wang)的(De)过(Guo)程(Cheng)。(?)
生(Sheng)命(Ming)周(Zhou)期(Qi)的(De)五(Wu)种(Zhong)状(Zhuang)态(Tai)
新(Xin)建(Jian)((?)new Thread)(?)
当(Dang)创(Chuang)建(Jian)Thread类(Lei)的(De)一(Yi)个(Ge)实(Shi)例(Li)((?)对(Dui)象(Xiang))(?)时(Shi),(?)此(Ci)线(Xian)程(Cheng)进(Jin)入(Ru)新(Xin)建(Jian)状(Zhuang)态(Tai)((?)未(Wei)被(Bei)启(Qi)动(Dong))(?)
例(Li)如(Ru):(?)Thread t1=new Thread();
就(Jiu)绪(Xu)((?)runnable)(?)
线(Xian)程(Cheng)已(Yi)经(Jing)被(Bei)启(Qi)动(Dong),(?)正(Zheng)在(Zai)等(Deng)待(Dai)被(Bei)分(Fen)配(Pei)给(Gei)CPU时(Shi)间(Jian)片(Pian),(?)也(Ye)就(Jiu)是(Shi)说(Shuo)此(Ci)时(Shi)线(Xian)程(Cheng)正(Zheng)在(Zai)就(Jiu)绪(Xu)队(Dui)列(Lie)中(Zhong)排(Pai)队(Dui)等(Deng)候(Hou)得(De)到(Dao)CPU资(Zi)源(Yuan)。(?)例(Li)如(Ru):(?)t1.start();
运(Yun)行(Xing)((?)running)(?)
线(Xian)程(Cheng)获(Huo)得(De)CPU资(Zi)源(Yuan)正(Zheng)在(Zai)执(Zhi)行(Xing)任(Ren)务(Wu)((?)run()方(Fang)法(Fa))(?),(?)此(Ci)时(Shi)除(Chu)非(Fei)此(Ci)线(Xian)程(Cheng)自(Zi)动(Dong)放(Fang)弃(Qi)CPU资(Zi)源(Yuan)或(Huo)者(Zhe)有(You)优(You)先(Xian)级(Ji)更(Geng)高(Gao)的(De)线(Xian)程(Cheng)进(Jin)入(Ru),(?)线(Xian)程(Cheng)将(Jiang)一(Yi)直(Zhi)运(Yun)行(Xing)到(Dao)结(Jie)束(Shu)。(?)
死(Si)亡(Wang)((?)dead)(?)
当(Dang)线(Xian)程(Cheng)执(Zhi)行(Xing)完(Wan)毕(Bi)或(Huo)被(Bei)其(Qi)它(Ta)线(Xian)程(Cheng)杀(Sha)死(Si),(?)线(Xian)程(Cheng)就(Jiu)进(Jin)入(Ru)死(Si)亡(Wang)状(Zhuang)态(Tai),(?)这(Zhe)时(Shi)线(Xian)程(Cheng)不(Bu)可(Ke)能(Neng)再(Zai)进(Jin)入(Ru)就(Jiu)绪(Xu)状(Zhuang)态(Tai)等(Deng)待(Dai)执(Zhi)行(Xing)。(?)
自(Zi)然(Ran)终(Zhong)止(Zhi):(?)正(Zheng)常(Chang)运(Yun)行(Xing)run()方(Fang)法(Fa)后(Hou)终(Zhong)止(Zhi)
异(Yi)常(Chang)终(Zhong)止(Zhi):(?)调(Diao)用(Yong)stop()方(Fang)法(Fa)让(Rang)一(Yi)个(Ge)线(Xian)程(Cheng)终(Zhong)止(Zhi)运(Yun)行(Xing)
堵(Du)塞(Sai)((?)blocked)(?)
由(You)于(Yu)某(Mou)种(Zhong)原(Yuan)因(Yin)导(Dao)致(Zhi)正(Zheng)在(Zai)运(Yun)行(Xing)的(De)线(Xian)程(Cheng)让(Rang)出(Chu)CPU并(Bing)暂(Zan)停(Ting)自(Zi)己(Ji)的(De)执(Zhi)行(Xing),(?)即(Ji)进(Jin)入(Ru)堵(Du)塞(Sai)状(Zhuang)态(Tai)。(?)
正(Zheng)在(Zai)睡(Shui)眠(Mian):(?)用(Yong)sleep(long t) 方(Fang)法(Fa)可(Ke)使(Shi)线(Xian)程(Cheng)进(Jin)入(Ru)睡(Shui)眠(Mian)方(Fang)式(Shi)。(?)一(Yi)个(Ge)睡(Shui)眠(Mian)着(Zhuo)的(De)线(Xian)程(Cheng)在(Zai)指(Zhi)定(Ding)的(De)时(Shi)间(Jian)过(Guo)去(Qu)可(Ke)进(Jin)入(Ru)就(Jiu)绪(Xu)状(Zhuang)态(Tai)。(?)
正(Zheng)在(Zai)等(Deng)待(Dai):(?)调(Diao)用(Yong)wait()方(Fang)法(Fa)。(?)((?)调(Diao)用(Yong)motify()方(Fang)法(Fa)回(Hui)到(Dao)就(Jiu)绪(Xu)状(Zhuang)态(Tai))(?)
被(Bei)另(Ling)一(Yi)个(Ge)线(Xian)程(Cheng)所(Suo)阻(Zu)塞(Sai):(?)调(Diao)用(Yong)suspend()方(Fang)法(Fa)。(?)((?)调(Diao)用(Yong)resume()方(Fang)法(Fa)恢(Hui)复(Fu))(?)
当(Dang)多(Duo)个(Ge)线(Xian)程(Cheng)访(Fang)问(Wen)同(Tong)一(Yi)个(Ge)数(Shu)据(Ju)时(Shi),(?)容(Rong)易(Yi)出(Chu)现(Xian)线(Xian)程(Cheng)安(An)全(Quan)问(Wen)题(Ti),(?)需(Xu)要(Yao)某(Mou)种(Zhong)方(Fang)式(Shi)来(Lai)确(Que)保(Bao)资(Zi)源(Yuan)在(Zai)某(Mou)一(Yi)时(Shi)刻(Ke)只(Zhi)被(Bei)一(Yi)个(Ge)线(Xian)程(Cheng)使(Shi)用(Yong)。(?)需(Xu)要(Yao)让(Rang)线(Xian)程(Cheng)同(Tong)步(Bu),(?)保(Bao)证(Zheng)数(Shu)据(Ju)安(An)全(Quan)
线(Xian)程(Cheng)同(Tong)步(Bu)的(De)实(Shi)现(Xian)方(Fang)案(An):(?)
1)(?)同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai),(?)使(Shi)用(Yong)synchronized关(Guan)键(Jian)字(Zi)
同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai):(?)
synchronized (同(Tong)步(Bu)锁(Suo)) {
授(Shou)课(Ke)代(Dai)码(Ma);
}
同(Tong)步(Bu)方(Fang)法(Fa):(?)
public synchronized void makeWithdrawal(int amt) { }
线(Xian)程(Cheng)同(Tong)步(Bu)的(De)好(Hao)处(Chu):(?)解(Jie)决(Jue)了(Liao)线(Xian)程(Cheng)安(An)全(Quan)问(Wen)题(Ti)
线(Xian)程(Cheng)同(Tong)步(Bu)的(De)缺(Que)点(Dian):(?)性(Xing)能(Neng)下(Xia)降(Jiang),(?)可(Ke)能(Neng)会(Hui)带(Dai)来(Lai)死(Si)锁(Suo)
注(Zhu)意(Yi):(?) 同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai),(?)所(Suo)使(Shi)用(Yong)的(De)同(Tong)步(Bu)锁(Suo)可(Ke)以(Yi)是(Shi)三(San)种(Zhong),(?)
1、(?)this 2、(?) 共(Gong)享(Xiang)资(Zi)源(Yuan) 3、(?) 字(Zi)节(Jie)码(Ma)文(Wen)件(Jian)对(Dui)象(Xiang)
同(Tong)步(Bu)方(Fang)法(Fa)所(Suo)使(Shi)用(Yong)的(De)同(Tong)步(Bu)锁(Suo),(?)默(Mo)认(Ren)的(De)是(Shi)this
答(Da):(?)Java中(Zhong)每(Mei)个(Ge)对(Dui)象(Xiang)都(Du)有(You)一(Yi)个(Ge)内(Nei)置(Zhi)锁(Suo)。(?)
当(Dang)程(Cheng)序(Xu)运(Yun)行(Xing)到(Dao)非(Fei)静(Jing)态(Tai)的(De)synchronized同(Tong)步(Bu)方(Fang)法(Fa)上(Shang)时(Shi),(?)自(Zi)动(Dong)获(Huo)得(De)与(Yu)正(Zheng)在(Zai)执(Zhi)行(Xing)代(Dai)码(Ma)类(Lei)的(De)当(Dang)前(Qian)实(Shi)例(Li)((?)this实(Shi)例(Li))(?)有(You)关(Guan)的(De)锁(Suo)。(?)获(Huo)得(De)一(Yi)个(Ge)对(Dui)象(Xiang)的(De)锁(Suo)也(Ye)称(Cheng)为(Wei)获(Huo)取(Qu)锁(Suo)、(?)锁(Suo)定(Ding)对(Dui)象(Xiang)、(?)在(Zai)对(Dui)象(Xiang)上(Shang)锁(Suo)定(Ding)或(Huo)在(Zai)对(Dui)象(Xiang)上(Shang)同(Tong)步(Bu)。(?)
当(Dang)程(Cheng)序(Xu)运(Yun)行(Xing)到(Dao)synchronized同(Tong)步(Bu)方(Fang)法(Fa)或(Huo)代(Dai)码(Ma)块(Kuai)时(Shi)才(Cai)该(Gai)对(Dui)象(Xiang)锁(Suo)才(Cai)起(Qi)作(Zuo)用(Yong)。(?)
一(Yi)个(Ge)对(Dui)象(Xiang)只(Zhi)有(You)一(Yi)个(Ge)锁(Suo)。(?)所(Suo)以(Yi),(?)如(Ru)果(Guo)一(Yi)个(Ge)线(Xian)程(Cheng)获(Huo)得(De)该(Gai)锁(Suo),(?)就(Jiu)没(Mei)有(You)其(Qi)他(Ta)线(Xian)程(Cheng)可(Ke)以(Yi)获(Huo)得(De)锁(Suo),(?)直(Zhi)到(Dao)第(Di)一(Yi)个(Ge)线(Xian)程(Cheng)释(Shi)放(Fang)((?)或(Huo)返(Fan)回(Hui))(?)锁(Suo)。(?)这(Zhe)也(Ye)意(Yi)味(Wei)着(Zhuo)任(Ren)何(He)其(Qi)他(Ta)线(Xian)程(Cheng)都(Du)不(Bu)能(Neng)进(Jin)入(Ru)该(Gai)对(Dui)象(Xiang)上(Shang)的(De)synchronized方(Fang)法(Fa)或(Huo)代(Dai)码(Ma)块(Kuai),(?)直(Zhi)到(Dao)该(Gai)锁(Suo)被(Bei)释(Shi)放(Fang)。(?)
释(Shi)放(Fang)锁(Suo)是(Shi)指(Zhi)持(Chi)锁(Suo)线(Xian)程(Cheng)退(Tui)出(Chu)了(Liao)synchronized同(Tong)步(Bu)方(Fang)法(Fa)或(Huo)代(Dai)码(Ma)块(Kuai)。(?)
关(Guan)于(Yu)锁(Suo)和(He)同(Tong)步(Bu),(?)有(You)一(Yi)下(Xia)几(Ji)个(Ge)要(Yao)点(Dian):(?)
1)(?)只(Zhi)能(Neng)同(Tong)步(Bu)方(Fang)法(Fa),(?)而(?)不(Bu)能(Neng)同(Tong)步(Bu)变(Bian)量(Liang)和(He)类(Lei);(?)
2)(?)每(Mei)个(Ge)对(Dui)象(Xiang)只(Zhi)有(You)一(Yi)个(Ge)锁(Suo);(?)当(Dang)提(Ti)到(Dao)同(Tong)步(Bu)时(Shi),(?)应(Ying)该(Gai)清(Qing)楚(Chu)在(Zai)什(Shi)么(Me)上(Shang)同(Tong)步(Bu)?(?)也(Ye)就(Jiu)是(Shi)说(Shuo),(?)在(Zai)哪(Na)个(Ge)对(Dui)象(Xiang)上(Shang)同(Tong)步(Bu)?(?)
3)(?)不(Bu)必(Bi)同(Tong)步(Bu)类(Lei)中(Zhong)所(Suo)有(You)的(De)方(Fang)法(Fa),(?)类(Lei)可(Ke)以(Yi)同(Tong)时(Shi)拥(Yong)有(You)同(Tong)步(Bu)和(He)非(Fei)同(Tong)步(Bu)方(Fang)法(Fa)。(?)
4)(?)如(Ru)果(Guo)两(Liang)个(Ge)线(Xian)程(Cheng)要(Yao)执(Zhi)行(Xing)一(Yi)个(Ge)类(Lei)中(Zhong)的(De)synchronized方(Fang)法(Fa),(?)并(Bing)且(Qie)两(Liang)个(Ge)线(Xian)程(Cheng)使(Shi)用(Yong)相(Xiang)同(Tong)的(De)实(Shi)例(Li)来(Lai)调(Diao)用(Yong)方(Fang)法(Fa),(?)那(Na)么(Me)一(Yi)次(Ci)只(Zhi)能(Neng)有(You)一(Yi)个(Ge)线(Xian)程(Cheng)能(Neng)够(Gou)执(Zhi)行(Xing)方(Fang)法(Fa),(?)另(Ling)一(Yi)个(Ge)需(Xu)要(Yao)等(Deng)待(Dai),(?)直(Zhi)到(Dao)锁(Suo)被(Bei)释(Shi)放(Fang)。(?)也(Ye)就(Jiu)是(Shi)说(Shuo):(?)如(Ru)果(Guo)一(Yi)个(Ge)线(Xian)程(Cheng)在(Zai)对(Dui)象(Xiang)上(Shang)获(Huo)得(De)一(Yi)个(Ge)锁(Suo),(?)就(Jiu)没(Mei)有(You)任(Ren)何(He)其(Qi)他(Ta)线(Xian)程(Cheng)可(Ke)以(Yi)进(Jin)入(Ru)((?)该(Gai)对(Dui)象(Xiang)的(De))(?)类(Lei)中(Zhong)的(De)任(Ren)何(He)一(Yi)个(Ge)同(Tong)步(Bu)方(Fang)法(Fa)。(?)
5)(?)如(Ru)果(Guo)线(Xian)程(Cheng)拥(Yong)有(You)同(Tong)步(Bu)和(He)非(Fei)同(Tong)步(Bu)方(Fang)法(Fa),(?)则(Ze)非(Fei)同(Tong)步(Bu)方(Fang)法(Fa)可(Ke)以(Yi)被(Bei)多(Duo)个(Ge)线(Xian)程(Cheng)自(Zi)由(You)访(Fang)问(Wen)而(?)不(Bu)受(Shou)锁(Suo)的(De)限(Xian)制(Zhi)。(?)
6)(?)线(Xian)程(Cheng)睡(Shui)眠(Mian)时(Shi),(?)它(Ta)所(Suo)持(Chi)的(De)任(Ren)何(He)锁(Suo)都(Du)不(Bu)会(Hui)释(Shi)放(Fang)。(?)
7)(?)线(Xian)程(Cheng)可(Ke)以(Yi)获(Huo)得(De)多(Duo)个(Ge)锁(Suo)。(?)比(Bi)如(Ru),(?)在(Zai)一(Yi)个(Ge)对(Dui)象(Xiang)的(De)同(Tong)步(Bu)方(Fang)法(Fa)里(Li)面(Mian)调(Diao)用(Yong)另(Ling)外(Wai)一(Yi)个(Ge)对(Dui)象(Xiang)的(De)同(Tong)步(Bu)方(Fang)法(Fa),(?)则(Ze)获(Huo)取(Qu)了(Liao)两(Liang)个(Ge)对(Dui)象(Xiang)的(De)同(Tong)步(Bu)锁(Suo)。(?)
8)(?)同(Tong)步(Bu)损(Sun)害(Hai)并(Bing)发(Fa)性(Xing),(?)应(Ying)该(Gai)尽(Jin)可(Ke)能(Neng)缩(Suo)小(Xiao)同(Tong)步(Bu)范(Fan)围(Wei)。(?)同(Tong)步(Bu)不(Bu)但(Dan)可(Ke)以(Yi)同(Tong)步(Bu)整(Zheng)个(Ge)方(Fang)法(Fa),(?)还(Huan)可(Ke)以(Yi)同(Tong)步(Bu)方(Fang)法(Fa)中(Zhong)一(Yi)部(Bu)分(Fen)代(Dai)码(Ma)块(Kuai)。(?)
9)(?)在(Zai)使(Shi)用(Yong)同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai)时(Shi)候(Hou),(?)应(Ying)该(Gai)指(Zhi)定(Ding)在(Zai)哪(Na)个(Ge)对(Dui)象(Xiang)上(Shang)同(Tong)步(Bu),(?)也(Ye)就(Jiu)是(Shi)说(Shuo)要(Yao)获(Huo)取(Qu)哪(Na)个(Ge)对(Dui)象(Xiang)的(De)锁(Suo)。(?)
Java提(Ti)供(Gong)了(Liao)3个(Ge)方(Fang)法(Fa)解(Jie)决(Jue)线(Xian)程(Cheng)之(Zhi)间(Jian)的(De)通(Tong)信(Xin)问(Wen)题(Ti),(?)均(Jun)是(Shi)java.lang.Object类(Lei)的(De)方(Fang)法(Fa),(?)都(Du)只(Zhi)能(Neng)在(Zai)同(Tong)步(Bu)方(Fang)法(Fa)或(Huo)者(Zhe)同(Tong)步(Bu)代(Dai)码(Ma)块(Kuai)中(Zhong)使(Shi)用(Yong),(?)否(Fou)则(Ze)会(Hui)抛(Pao)出(Chu)异(Yi)常(Chang)。(?)
方(Fang)法(Fa)名(Ming) | 作(Zuo) 用(Yong) |
final void wait() | 表(Biao)示(Shi)线(Xian)程(Cheng)一(Yi)直(Zhi)等(Deng)待(Dai),(?)直(Zhi)到(Dao)其(Qi)它(Ta)线(Xian)程(Cheng)通(Tong)知(Zhi) |
void wait(long timeout) | 线(Xian)程(Cheng)等(Deng)待(Dai)指(Zhi)定(Ding)毫(Hao)秒(Miao)参(Can)数(Shu)的(De)时(Shi)间(Jian) |
final void wait(long timeout,int nanos) | 线(Xian)程(Cheng)等(Deng)待(Dai)指(Zhi)定(Ding)毫(Hao)秒(Miao)、(?)微(Wei)妙(Miao)的(De)时(Shi)间(Jian) |
final void notify() | 唤(Huan)醒(Xing)一(Yi)个(Ge)处(Chu)于(Yu)等(Deng)待(Dai)状(Zhuang)态(Tai)的(De)线(Xian)程(Cheng)。(?)注(Zhu)意(Yi)的(De)是(Shi)在(Zai)调(Diao)用(Yong)此(Ci)方(Fang)法(Fa)的(De)时(Shi)候(Hou),(?)并(Bing)不(Bu)能(Neng)确(Que)切(Qie)的(De)唤(Huan)醒(Xing)某(Mou)一(Yi)个(Ge)等(Deng)待(Dai)状(Zhuang)态(Tai)的(De)线(Xian)程(Cheng),(?)而(?)是(Shi)由(You)JVM确(Que)定(Ding)唤(Huan)醒(Xing)哪(Na)个(Ge)线(Xian)程(Cheng),(?)而(?)且(Qie)不(Bu)是(Shi)按(An)优(You)先(Xian)级(Ji)。(?) |
final void notifyAll() | 唤(Huan)醒(Xing)同(Tong)一(Yi)个(Ge)对(Dui)象(Xiang)上(Shang)所(Suo)有(You)调(Diao)用(Yong)wait()方(Fang)法(Fa)的(De)线(Xian)程(Cheng),(?)注(Zhu)意(Yi)并(Bing)不(Bu)是(Shi)给(Gei)所(Suo)有(You)唤(Huan)醒(Xing)线(Xian)程(Cheng)一(Yi)个(Ge)对(Dui)象(Xiang)的(De)锁(Suo),(?)而(?)是(Shi)让(Rang)它(Ta)们(Men)竞(Jing)争(Zheng) |
A. | BufferedWriter |
B. | FileInputStream |
C. | ObjectInputStream |
D. | InputStreamReader |
答(Da)案(An):(?)D
分(Fen)析(Xi):(?)A:(?)字(Zi)符(Fu)输(Shu)出(Chu)的(De)缓(Huan)冲(Chong)流(Liu)
B:(?)字(Zi)节(Jie)输(Shu)入(Ru)流(Liu)
C:(?)对(Dui)象(Xiang)输(Shu)入(Ru)流(Liu)
|
A. |
FileInputStream in=new FileInputStream("file.dat");
in.skip(9);
int c=in.read();
|
B. |
FileInputStream in=new FileInputStream("file.dat");
in.skip(10);
int c=in.read();
|
C. |
FileInputStream in=new FileInputStream("file.dat");
int c=in.read();
|
D. |
RandomAccessFile in=new RandomAccessFile("file.dat");
in.skip(7);
int c=in.readByte();
|
答(Da)案(An):(?)A
分(Fen)析(Xi):(?) skip(long n)该(Gai)方(Fang)法(Fa)中(Zhong)的(De)n指(Zhi)的(De)是(Shi)要(Yao)跳(Tiao)过(Guo)的(De)字(Zi)节(Jie)数(Shu)
|
A. | new BufferedWriter(new FileWriter(“(?)a.txt”(?))); |
B. | new BufferedReader (new FileInputStream(“(?)a.dat”(?))); |
C. | new GZIPOutputStream(new FileOutputStream(“(?)a.zip”(?))); |
D. | new ObjectInputStream(new FileInputStream(“(?)a.dat”(?))); |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?)BufferedReader类(Lei)的(De)参(Can)数(Shu)只(Zhi)能(Neng)是(Shi)Reader类(Lei)型(Xing)的(De),(?)不(Bu)能(Neng)是(Shi)InputStream类(Lei)型(Xing)。(?)
|
A. | BufferedWriter |
B. | FileInputStream |
C. | ObjectInputStream |
D. | InputStreamReader |
答(Da)案(An):(?)D
以(Yi)InputStream((?)输(Shu)入(Ru)流(Liu))(?)/OutputStream((?)输(Shu)出(Chu)流(Liu))(?)为(Wei)后(Hou)缀(Zhui)的(De)是(Shi)字(Zi)节(Jie)流(Liu);(?)
以(Yi)Reader((?)输(Shu)入(Ru)流(Liu))(?)/Writer((?)输(Shu)出(Chu)流(Liu))(?)为(Wei)后(Hou)缀(Zhui)的(De)是(Shi)字(Zi)符(Fu)流(Liu)。(?)
|
A. | Java.io.FileOutputStream |
B. | java.ByteArrayOutputStream |
C. | java.io.BufferedOutputStream |
D. | java,.io.DataOutputStream |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?) ACD都(Du)是(Shi)io到(Dao)文(Wen)件(Jian)
|
public class test { public static void main(String[] args) { String str = "bjsxt"; writeFile(str); } public static void writeFile(String str) { File file = new File("c:/test.txt"); PrintStream ps = null; try { OutputStream fos = new FileOutputStream(file); ps = new PrintStream(fos); ps.print(str); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { ps.close(); } } }
A. | BufferedWriter |
B. | FileInputStream |
C. | ObjectInputStream |
D. | InputStreamReader |
答(Da)案(An):(?)D
|
答(Da):(?)序(Xu)列(Lie)化(Hua)就(Jiu)是(Shi)一(Yi)种(Zhong)用(Yong)来(Lai)处(Chu)理(Li)对(Dui)象(Xiang)流(Liu)的(De)机(Ji)制(Zhi),(?)所(Suo)谓(Wei)对(Dui)象(Xiang)流(Liu)也(Ye)就(Jiu)是(Shi)将(Jiang)对(Dui)象(Xiang)的(De)内(Nei)容(Rong)进(Jin)行(Xing)流(Liu)化(Hua)。(?)可(Ke)以(Yi)对(Dui)流(Liu)化(Hua)后(Hou)的(De)对(Dui)象(Xiang)进(Jin)行(Xing)读(Du)写(Xie)操(Cao)作(Zuo),(?)也(Ye)可(Ke)将(Jiang)流(Liu)化(Hua)后(Hou)的(De)对(Dui)象(Xiang)传(Chuan)输(Shu)于(Yu)网(Wang)络(Luo)之(Zhi)间(Jian)。(?)序(Xu)列(Lie)化(Hua)是(Shi)为(Wei)了(Liao)解(Jie)决(Jue)对(Dui)象(Xiang)流(Liu)读(Du)写(Xie)操(Cao)作(Zuo)时(Shi)可(Ke)能(Neng)引(Yin)发(Fa)的(De)问(Wen)题(Ti)((?)如(Ru)果(Guo)不(Bu)进(Jin)行(Xing)序(Xu)列(Lie)化(Hua)可(Ke)能(Neng)会(Hui)存(Cun)在(Zai)数(Shu)据(Ju)乱(Luan)序(Xu)的(De)问(Wen)题(Ti))(?)。(?)
要(Yao)实(Shi)现(Xian)序(Xu)列(Lie)化(Hua),(?)需(Xu)要(Yao)让(Rang)一(Yi)个(Ge)类(Lei)实(Shi)现(Xian)Serializable接(Jie)口(Kou),(?)该(Gai)接(Jie)口(Kou)是(Shi)一(Yi)个(Ge)标(Biao)识(Shi)性(Xing)接(Jie)口(Kou),(?)标(Biao)注(Zhu)该(Gai)类(Lei)对(Dui)象(Xiang)是(Shi)可(Ke)被(Bei)序(Xu)列(Lie)化(Hua)的(De),(?)然(Ran)后(Hou)使(Shi)用(Yong)一(Yi)个(Ge)输(Shu)出(Chu)流(Liu)来(Lai)构(Gou)造(Zao)一(Yi)个(Ge)对(Dui)象(Xiang)输(Shu)出(Chu)流(Liu)并(Bing)通(Tong)过(Guo)writeObject(Object obj)方(Fang)法(Fa)就(Jiu)可(Ke)以(Yi)将(Jiang)实(Shi)现(Xian)对(Dui)象(Xiang)写(Xie)出(Chu)(即(Ji)保(Bao)存(Cun)其(Qi)状(Zhuang)态(Tai));(?)如(Ru)果(Guo)需(Xu)要(Yao)反(Fan)序(Xu)列(Lie)化(Hua)则(Ze)可(Ke)以(Yi)用(Yong)一(Yi)个(Ge)输(Shu)入(Ru)流(Liu)建(Jian)立(Li)对(Dui)象(Xiang)输(Shu)入(Ru)流(Liu),(?)然(Ran)后(Hou)通(Tong)过(Guo)readObject方(Fang)法(Fa)从(Cong)流(Liu)中(Zhong)读(Du)取(Qu)对(Dui)象(Xiang)。(?)序(Xu)列(Lie)化(Hua)除(Chu)了(Liao)能(Neng)够(Gou)实(Shi)现(Xian)对(Dui)象(Xiang)的(De)持(Chi)久(Jiu)化(Hua)之(Zhi)外(Wai),(?)还(Huan)能(Neng)够(Gou)用(Yong)于(Yu)对(Dui)象(Xiang)的(De)深(Shen)度(Du)克(Ke)隆(Long)((?)参(Can)见(Jian)Java面(Mian)试(Shi)题(Ti)集(Ji)1-29题(Ti))(?)
答(Da):(?)两(Liang)种(Zhong)流(Liu)分(Fen)别(Bie)是(Shi)字(Zi)节(Jie)流(Liu),(?)字(Zi)符(Fu)流(Liu)。(?)
字(Zi)节(Jie)流(Liu)继(Ji)承(Cheng)于(Yu)InputStream、(?)OutputStream,(?)字(Zi)符(Fu)流(Liu)继(Ji)承(Cheng)于(Yu)Reader、(?)Writer。(?)在(Zai)java.io 包(Bao)中(Zhong)还(Huan)有(You)许(Xu)多(Duo)其(Qi)他(Ta)的(De)流(Liu),(?)主(Zhu)要(Yao)是(Shi)为(Wei)了(Liao)提(Ti)高(Gao)性(Xing)能(Neng)和(He)使(Shi)用(Yong)方(Fang)便(Bian)。(?)
补(Bu)充(Chong):(?)关(Guan)于(Yu)Java的(De)IO需(Xu)要(Yao)注(Zhu)意(Yi)的(De)有(You)两(Liang)点(Dian):(?)一(Yi)是(Shi)两(Liang)种(Zhong)对(Dui)称(Cheng)性(Xing)((?)输(Shu)入(Ru)和(He)输(Shu)出(Chu)的(De)对(Dui)称(Cheng)性(Xing),(?)字(Zi)节(Jie)和(He)字(Zi)符(Fu)的(De)对(Dui)称(Cheng)性(Xing))(?);(?)二(?)是(Shi)两(Liang)种(Zhong)设(She)计(Ji)模(Mo)式(Shi)((?)适(Shi)配(Pei)器(Qi)模(Mo)式(Shi)和(He)装(Zhuang)潢(Huang)模(Mo)式(Shi))(?)。(?)另(Ling)外(Wai)Java中(Zhong)的(De)流(Liu)不(Bu)同(Tong)于(Yu)C#的(De)是(Shi)它(Ta)只(Zhi)有(You)一(Yi)个(Ge)维(Wei)度(Du)一(Yi)个(Ge)方(Fang)向(Xiang)。(?)
补(Bu)充(Chong):(?)下(Xia)面(Mian)用(Yong)IO和(He)NIO两(Liang)种(Zhong)方(Fang)式(Shi)实(Shi)现(Xian)文(Wen)件(Jian)拷(Kao)贝(Bei),(?)这(Zhe)个(Ge)题(Ti)目(Mu)在(Zai)面(Mian)试(Shi)的(De)时(Shi)候(Hou)是(Shi)经(Jing)常(Chang)被(Bei)问(Wen)到(Dao)的(De)。(?)
package com.bjsxt; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; public class MyUtil { private MyUtil() { throw new AssertionError(); } public static void fileCopy(String source, String target) throws IOException { try (InputStream in = new FileInputStream(source)) { try (OutputStream out = new FileOutputStream(target)) { byte[] buffer = new byte[4096]; int bytesToRead; while((bytesToRead = in.read(buffer)) != -1) { out.write(buffer, 0, bytesToRead); } } } } public static void fileCopyNIO(String source, String target) throws IOException { try (FileInputStream in = new FileInputStream(source)) { try (FileOutputStream out = new FileOutputStream(target)) { FileChannel inChannel = in.getChannel(); FileChannel outChannel = out.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(4096); while(inChannel.read(buffer) != -1) { buffer.flip(); outChannel.write(buffer); buffer.clear(); } } } } }
注(Zhu)意(Yi):(?)上(Shang)面(Mian)用(Yong)到(Dao)Java 7的(De)TWR,(?)使(Shi)用(Yong)TWR后(Hou)可(Ke)以(Yi)不(Bu)用(Yong)在(Zai)finally中(Zhong)释(Shi)放(Fang)外(Wai)部(Bu)资(Zi)源(Yuan) ,(?)从(Cong)而(?)让(Rang)代(Dai)码(Ma)更(Geng)加(Jia)优(You)雅(Ya)。(?)
答(Da):(?)代(Dai)码(Ma)如(Ru)下(Xia):(?)
package com.bjsxt; import java.io.BufferedReader; import java.io.FileReader; public class Account { // 工(Gong)具(Ju)类(Lei)中(Zhong)的(De)方(Fang)法(Fa)都(Du)是(Shi)静(Jing)态(Tai)方(Fang)式(Shi)访(Fang)问(Wen)的(De)因(Yin)此(Ci)将(Jiang)构(Gou)造(Zao)器(Qi)私(Si)有(You)不(Bu)允(Yun)许(Xu)创(Chuang)建(Jian)对(Dui)象(Xiang)(绝(Jue)对(Dui)好(Hao)习(Xi)惯(Guan)) private Account() { throw new AssertionError(); } /** * 统(Tong)计(Ji)给(Gei)定(Ding)文(Wen)件(Jian)中(Zhong)给(Gei)定(Ding)字(Zi)符(Fu)串(Chuan)的(De)出(Chu)现(Xian)次(Ci)数(Shu) * @param filename 文(Wen)件(Jian)名(Ming) * @param word 字(Zi)符(Fu)串(Chuan) * @return 字(Zi)符(Fu)串(Chuan)在(Zai)文(Wen)件(Jian)中(Zhong)出(Chu)现(Xian)的(De)次(Ci)数(Shu) */ public static int countWordInFile(String filename, String word) { int counter = 0; try (FileReader fr = new FileReader(filename)) { try (BufferedReader br = new BufferedReader(fr)) { String line = null; while ((line = br.readLine()) != null) { int index = -1; while (line.length() >= word.length() && (index = line.indexOf(word)) >= 0) { counter++; line = line.substring(index + word.length()); } } } } catch (Exception ex) { ex.printStackTrace(); } return counter; } }
首(Shou)先(Xian),(?)你(Ni)要(Yao)明(Ming)白(Bai)什(Shi)么(Me)是(Shi)“(?)流(Liu)”(?)。(?)直(Zhi)观(Guan)地(Di)讲(Jiang),(?)流(Liu)就(Jiu)像(Xiang)管(Guan)道(Dao)一(Yi)样(Yang),(?)在(Zai)程(Cheng)序(Xu)和(He)文(Wen)件(Jian)之(Zhi)间(Jian),(?)输(Shu)入(Ru)输(Shu)出(Chu)的(De)方(Fang)向(Xiang)是(Shi)针(Zhen)对(Dui)程(Cheng)序(Xu)而(?)言(Yan),(?)向(Xiang)程(Cheng)序(Xu)中(Zhong)读(Du)入(Ru)东(Dong)西(Xi),(?)就(Jiu)是(Shi)输(Shu)入(Ru)流(Liu),(?)从(Cong)程(Cheng)序(Xu)中(Zhong)向(Xiang)外(Wai)读(Du)东(Dong)西(Xi),(?)就(Jiu)是(Shi)输(Shu)出(Chu)流(Liu)。(?)
输(Shu)入(Ru)流(Liu)是(Shi)得(De)到(Dao)数(Shu)据(Ju),(?)输(Shu)出(Chu)流(Liu)是(Shi)输(Shu)出(Chu)数(Shu)据(Ju),(?)而(?)节(Jie)点(Dian)流(Liu),(?)处(Chu)理(Li)流(Liu)是(Shi)流(Liu)的(De)另(Ling)一(Yi)种(Zhong)划(Hua)分(Fen),(?)按(An)照(Zhao)功(Gong)能(Neng)不(Bu)同(Tong)进(Jin)行(Xing)的(De)划(Hua)分(Fen)。(?)节(Jie)点(Dian)流(Liu),(?)可(Ke)以(Yi)从(Cong)或(Huo)向(Xiang)一(Yi)个(Ge)特(Te)定(Ding)的(De)地(Di)方(Fang)(节(Jie)点(Dian))读(Du)写(Xie)数(Shu)据(Ju)。(?)处(Chu)理(Li)流(Liu)是(Shi)对(Dui)一(Yi)个(Ge)已(Yi)存(Cun)在(Zai)的(De)流(Liu)的(De)连(Lian)接(Jie)和(He)封(Feng)装(Zhuang),(?)通(Tong)过(Guo)所(Suo)封(Feng)装(Zhuang)的(De)流(Liu)的(De)功(Gong)能(Neng)调(Diao)用(Yong)实(Shi)现(Xian)数(Shu)据(Ju)读(Du)写(Xie)。(?)如(Ru)BufferedReader。(?)处(Chu)理(Li)流(Liu)的(De)构(Gou)造(Zao)方(Fang)法(Fa)总(Zong)是(Shi)要(Yao)带(Dai)一(Yi)个(Ge)其(Qi)他(Ta)的(De)流(Liu)对(Dui)象(Xiang)做(Zuo)参(Can)数(Shu)。(?)一(Yi)个(Ge)流(Liu)对(Dui)象(Xiang)经(Jing)过(Guo)其(Qi)他(Ta)流(Liu)的(De)多(Duo)次(Ci)包(Bao)装(Zhuang),(?)称(Cheng)为(Wei)流(Liu)的(De)链(Lian)接(Jie)。(?)
字(Zi)符(Fu)流(Liu)和(He)字(Zi)节(Jie)流(Liu)是(Shi)流(Liu)的(De)一(Yi)种(Zhong)划(Hua)分(Fen),(?)按(An)处(Chu)理(Li)照(Zhao)流(Liu)的(De)数(Shu)据(Ju)单(Dan)位(Wei)进(Jin)行(Xing)的(De)划(Hua)分(Fen)。(?)两(Liang)类(Lei)都(Du)分(Fen)为(Wei)输(Shu)入(Ru)和(He)输(Shu)出(Chu)操(Cao)作(Zuo)。(?)在(Zai)字(Zi)节(Jie)流(Liu)中(Zhong)输(Shu)出(Chu)数(Shu)据(Ju)主(Zhu)要(Yao)是(Shi)使(Shi)用(Yong)OutputStream完(Wan)成(Cheng),(?)输(Shu)入(Ru)使(Shi)的(De)是(Shi)InputStream,(?)在(Zai)字(Zi)符(Fu)流(Liu)中(Zhong)输(Shu)出(Chu)主(Zhu)要(Yao)是(Shi)使(Shi)用(Yong)Writer类(Lei)完(Wan)成(Cheng),(?)输(Shu)入(Ru)流(Liu)主(Zhu)要(Yao)使(Shi)用(Yong)Reader类(Lei)完(Wan)成(Cheng)。(?)这(Zhe)四(Si)个(Ge)都(Du)是(Shi)抽(Chou)象(Xiang)类(Lei)。(?)
字(Zi)符(Fu)流(Liu)处(Chu)理(Li)的(De)单(Dan)元(Yuan)为(Wei)2个(Ge)字(Zi)节(Jie)的(De)Unicode字(Zi)符(Fu),(?)分(Fen)别(Bie)操(Cao)作(Zuo)字(Zi)符(Fu)、(?)字(Zi)符(Fu)数(Shu)组(Zu)或(Huo)字(Zi)符(Fu)串(Chuan),(?)而(?)字(Zi)节(Jie)流(Liu)处(Chu)理(Li)单(Dan)元(Yuan)为(Wei)1个(Ge)字(Zi)节(Jie),(?)操(Cao)作(Zuo)字(Zi)节(Jie)和(He)字(Zi)节(Jie)数(Shu)组(Zu)。(?)字(Zi)节(Jie)流(Liu)是(Shi)最(Zui)基(Ji)本(Ben)的(De),(?)所(Suo)有(You)的(De)InputStrem和(He)OutputStream的(De)子(Zi)类(Lei)都(Du)是(Shi),主(Zhu)要(Yao)用(Yong)在(Zai)处(Chu)理(Li)二(?)进(Jin)制(Zhi)数(Shu)据(Ju),(?)它(Ta)是(Shi)按(An)字(Zi)节(Jie)来(Lai)处(Chu)理(Li)的(De) 但(Dan)实(Shi)际(Ji)中(Zhong)很(Hen)多(Duo)的(De)数(Shu)据(Ju)是(Shi)文(Wen)本(Ben),(?)又(You)提(Ti)出(Chu)了(Liao)字(Zi)符(Fu)流(Liu)的(De)概(Gai)念(Nian),(?)它(Ta)是(Shi)按(An)虚(Xu)拟(Ni)机(Ji)的(De)编(Bian)码(Ma)来(Lai)处(Chu)理(Li),(?)也(Ye)就(Jiu)是(Shi)要(Yao)进(Jin)行(Xing)字(Zi)符(Fu)集(Ji)的(De)转(Zhuan)化(Hua) 这(Zhe)两(Liang)个(Ge)之(Zhi)间(Jian)通(Tong)过(Guo) InputStreamReader,OutputStreamWriter来(Lai)关(Guan)联(Lian),(?)实(Shi)际(Ji)上(Shang)是(Shi)通(Tong)过(Guo)byte[]和(He)String来(Lai)关(Guan)联(Lian)的(De)。(?)
FileInputStream 从(Cong)文(Wen)件(Jian)系(Xi)统(Tong)中(Zhong)的(De)某(Mou)个(Ge)文(Wen)件(Jian)中(Zhong)获(Huo)得(De)输(Shu)入(Ru)字(Zi)节(Jie)。(?)
FileOutputStream 从(Cong)程(Cheng)序(Xu)当(Dang)中(Zhong)的(De)数(Shu)据(Ju),(?)写(Xie)入(Ru)到(Dao)指(Zhi)定(Ding)文(Wen)件(Jian)。(?)
ObjectInputStream 对(Dui)以(Yi)前(Qian)使(Shi)用(Yong) ObjectOutputStream 写(Xie)入(Ru)的(De)基(Ji)本(Ben)数(Shu)据(Ju)和(He)对(Dui)象(Xiang)进(Jin)行(Xing)反(Fan)序(Xu)列(Lie)化(Hua)。(?) ObjectOutputStream 和(He)ObjectInputStream 分(Fen)别(Bie)与(Yu)FileOutputStream 和(He) FileInputStream 一(Yi)起(Qi)使(Shi)用(Yong)时(Shi),(?)可(Ke)以(Yi)为(Wei)应(Ying)用(Yong)程(Cheng)序(Xu)提(Ti)供(Gong)对(Dui)对(Dui)象(Xiang)图(Tu)形(Xing)的(De)持(Chi)久(Jiu)存(Cun)储(Chu)。(?)ObjectInputStream 用(Yong)于(Yu)恢(Hui)复(Fu)那(Na)些(Xie)以(Yi)前(Qian)序(Xu)列(Lie)化(Hua)的(De)对(Dui)象(Xiang)。(?)其(Qi)他(Ta)用(Yong)途(Tu)包(Bao)括(Kuo)使(Shi)用(Yong)套(Tao)接(Jie)字(Zi)流(Liu)在(Zai)主(Zhu)机(Ji)之(Zhi)间(Jian)传(Chuan)递(Di)对(Dui)象(Xiang),(?)或(Huo)者(Zhe)用(Yong)于(Yu)编(Bian)组(Zu)和(He)解(Jie)组(Zu)远(Yuan)程(Cheng)通(Tong)信(Xin)系(Xi)统(Tong)中(Zhong)的(De)实(Shi)参(Can)和(He)形(Xing)参(Can)。(?)
ByteArrayInputStream 包(Bao)含(Han)一(Yi)个(Ge)内(Nei)部(Bu)缓(Huan)冲(Chong)区(Qu),(?)该(Gai)缓(Huan)冲(Chong)区(Qu)包(Bao)含(Han)从(Cong)流(Liu)中(Zhong)读(Du)取(Qu)的(De)字(Zi)节(Jie)。(?)内(Nei)部(Bu)计(Ji)数(Shu)器(Qi)跟(Gen)踪(Zong) read 方(Fang)法(Fa)要(Yao)提(Ti)供(Gong)的(De)下(Xia)一(Yi)个(Ge)字(Zi)节(Jie)。(?)
FilterInputStream 包(Bao)含(Han)其(Qi)他(Ta)一(Yi)些(Xie)输(Shu)入(Ru)流(Liu),(?)它(Ta)将(Jiang)这(Zhe)些(Xie)流(Liu)用(Yong)作(Zuo)其(Qi)基(Ji)本(Ben)数(Shu)据(Ju)源(Yuan),(?)它(Ta)可(Ke)以(Yi)直(Zhi)接(Jie)传(Chuan)输(Shu)数(Shu)据(Ju)或(Huo)提(Ti)供(Gong)一(Yi)些(Xie)额(E)外(Wai)的(De)功(Gong)能(Neng)。(?)FilterInputStream 类(Lei)本(Ben)身(Shen)只(Zhi)是(Shi)简(Jian)单(Dan)地(Di)重(Zhong)写(Xie)那(Na)些(Xie)将(Jiang)所(Suo)有(You)请(Qing)求(Qiu)传(Chuan)递(Di)给(Gei)所(Suo)包(Bao)含(Han)输(Shu)入(Ru)流(Liu)的(De) InputStream 的(De)所(Suo)有(You)方(Fang)法(Fa)。(?)FilterInputStream 的(De)子(Zi)类(Lei)可(Ke)进(Jin)一(Yi)步(Bu)重(Zhong)写(Xie)这(Zhe)些(Xie)方(Fang)法(Fa)中(Zhong)的(De)一(Yi)些(Xie)方(Fang)法(Fa),(?)并(Bing)且(Qie)还(Huan)可(Ke)以(Yi)提(Ti)供(Gong)一(Yi)些(Xie)额(E)外(Wai)的(De)方(Fang)法(Fa)和(He)字(Zi)段(Duan)。(?)
StringBufferInputStream此(Ci)类(Lei)允(Yun)许(Xu)应(Ying)用(Yong)程(Cheng)序(Xu)创(Chuang)建(Jian)输(Shu)入(Ru)流(Liu),(?)在(Zai)该(Gai)流(Liu)中(Zhong)读(Du)取(Qu)的(De)字(Zi)节(Jie)由(You)字(Zi)符(Fu)串(Chuan)内(Nei)容(Rong)提(Ti)供(Gong)。(?)应(Ying)用(Yong)程(Cheng)序(Xu)还(Huan)可(Ke)以(Yi)使(Shi)用(Yong)ByteArrayInputStream 从(Cong) byte 数(Shu)组(Zu)中(Zhong)读(Du)取(Qu)字(Zi)节(Jie)。(?) 只(Zhi)有(You)字(Zi)符(Fu)串(Chuan)中(Zhong)每(Mei)个(Ge)字(Zi)符(Fu)的(De)低(Di)八(Ba)位(Wei)可(Ke)以(Yi)由(You)此(Ci)类(Lei)使(Shi)用(Yong)。(?)
ByteArrayOutputStream此(Ci)类(Lei)实(Shi)现(Xian)了(Liao)一(Yi)个(Ge)输(Shu)出(Chu)流(Liu),(?)其(Qi)中(Zhong)的(De)数(Shu)据(Ju)被(Bei)写(Xie)入(Ru)一(Yi)个(Ge) byte 数(Shu)组(Zu)。(?)缓(Huan)冲(Chong)区(Qu)会(Hui)随(Sui)着(Zhuo)数(Shu)据(Ju)的(De)不(Bu)断(Duan)写(Xie)入(Ru)而(?)自(Zi)动(Dong)增(Zeng)长(Chang)。(?)可(Ke)使(Shi)用(Yong) toByteArray() 和(He) toString() 获(Huo)取(Qu)数(Shu)据(Ju)。(?)
FileOutputStream文(Wen)件(Jian)输(Shu)出(Chu)流(Liu)是(Shi)用(Yong)于(Yu)将(Jiang)数(Shu)据(Ju)写(Xie)入(Ru) File 或(Huo)FileDescriptor 的(De)输(Shu)出(Chu)流(Liu)。(?)文(Wen)件(Jian)是(Shi)否(Fou)可(Ke)用(Yong)或(Huo)能(Neng)否(Fou)可(Ke)以(Yi)被(Bei)创(Chuang)建(Jian)取(Qu)决(Jue)于(Yu)基(Ji)础(Chu)平(Ping)台(Tai)。(?)特(Te)别(Bie)是(Shi)某(Mou)些(Xie)平(Ping)台(Tai)一(Yi)次(Ci)只(Zhi)允(Yun)许(Xu)一(Yi)个(Ge) FileOutputStream((?)或(Huo)其(Qi)他(Ta)文(Wen)件(Jian)写(Xie)入(Ru)对(Dui)象(Xiang))(?)打(Da)开(Kai)文(Wen)件(Jian)进(Jin)行(Xing)写(Xie)入(Ru)。(?)在(Zai)这(Zhe)种(Zhong)情(Qing)况(Kuang)下(Xia),(?)如(Ru)果(Guo)所(Suo)涉(She)及(Ji)的(De)文(Wen)件(Jian)已(Yi)经(Jing)打(Da)开(Kai),(?)则(Ze)此(Ci)类(Lei)中(Zhong)的(De)构(Gou)造(Zao)方(Fang)法(Fa)将(Jiang)失(Shi)败(Bai)。(?)
FilterOutputStream类(Lei)是(Shi)过(Guo)滤(Lu)输(Shu)出(Chu)流(Liu)的(De)所(Suo)有(You)类(Lei)的(De)超(Chao)类(Lei)。(?)这(Zhe)些(Xie)流(Liu)位(Wei)于(Yu)已(Yi)存(Cun)在(Zai)的(De)输(Shu)出(Chu)流(Liu)((?)基(Ji)础(Chu) 输(Shu)出(Chu)流(Liu))(?)之(Zhi)上(Shang),(?)它(Ta)们(Men)将(Jiang)已(Yi)存(Cun)在(Zai)的(De)输(Shu)出(Chu)流(Liu)作(Zuo)为(Wei)其(Qi)基(Ji)本(Ben)数(Shu)据(Ju)接(Jie)收(Shou)器(Qi),(?)但(Dan)可(Ke)能(Neng)直(Zhi)接(Jie)传(Chuan)输(Shu)数(Shu)据(Ju)或(Huo)提(Ti)供(Gong)一(Yi)些(Xie)额(E)外(Wai)的(De)功(Gong)能(Neng)。(?) FilterOutputStream 类(Lei)本(Ben)身(Shen)只(Zhi)是(Shi)简(Jian)单(Dan)地(Di)重(Zhong)写(Xie)那(Na)些(Xie)将(Jiang)所(Suo)有(You)请(Qing)求(Qiu)传(Chuan)递(Di)给(Gei)所(Suo)包(Bao)含(Han)输(Shu)出(Chu)流(Liu)的(De) OutputStream 的(De)所(Suo)有(You)方(Fang)法(Fa)。(?)FilterOutputStream 的(De)子(Zi)类(Lei)可(Ke)进(Jin)一(Yi)步(Bu)地(Di)重(Zhong)写(Xie)这(Zhe)些(Xie)方(Fang)法(Fa)中(Zhong)的(De)一(Yi)些(Xie)方(Fang)法(Fa),(?)并(Bing)且(Qie)还(Huan)可(Ke)以(Yi)提(Ti)供(Gong)一(Yi)些(Xie)额(E)外(Wai)的(De)方(Fang)法(Fa)和(He)字(Zi)段(Duan)。(?)
ObjectOutputStream 将(Jiang) Java 对(Dui)象(Xiang)的(De)基(Ji)本(Ben)数(Shu)据(Ju)类(Lei)型(Xing)和(He)图(Tu)形(Xing)写(Xie)入(Ru) OutputStream。(?)可(Ke)以(Yi)使(Shi)用(Yong) ObjectInputStream 读(Du)取(Qu)((?)重(Zhong)构(Gou))(?)对(Dui)象(Xiang)。(?)通(Tong)过(Guo)在(Zai)流(Liu)中(Zhong)使(Shi)用(Yong)文(Wen)件(Jian)可(Ke)以(Yi)实(Shi)现(Xian)对(Dui)象(Xiang)的(De)持(Chi)久(Jiu)存(Cun)储(Chu)。(?)如(Ru)果(Guo)流(Liu)是(Shi)网(Wang)络(Luo)套(Tao)接(Jie)字(Zi)流(Liu),(?)则(Ze)可(Ke)以(Yi)在(Zai)另(Ling)一(Yi)台(Tai)主(Zhu)机(Ji)上(Shang)或(Huo)另(Ling)一(Yi)个(Ge)进(Jin)程(Cheng)中(Zhong)重(Zhong)构(Gou)对(Dui)象(Xiang)。(?)
PipedOutputStream可(Ke)以(Yi)将(Jiang)管(Guan)道(Dao)输(Shu)出(Chu)流(Liu)连(Lian)接(Jie)到(Dao)管(Guan)道(Dao)输(Shu)入(Ru)流(Liu)来(Lai)创(Chuang)建(Jian)通(Tong)信(Xin)管(Guan)道(Dao)。(?)管(Guan)道(Dao)输(Shu)出(Chu)流(Liu)是(Shi)管(Guan)道(Dao)的(De)发(Fa)送(Song)端(Duan)。(?)通(Tong)常(Chang),(?)数(Shu)据(Ju)由(You)某(Mou)个(Ge)线(Xian)程(Cheng)写(Xie)入(Ru) PipedOutputStream 对(Dui)象(Xiang),(?)并(Bing)由(You)其(Qi)他(Ta)线(Xian)程(Cheng)从(Cong)连(Lian)接(Jie)的(De) PipedInputStream 读(Du)取(Qu)。(?)不(Bu)建(Jian)议(Yi)对(Dui)这(Zhe)两(Liang)个(Ge)对(Dui)象(Xiang)尝(Chang)试(Shi)使(Shi)用(Yong)单(Dan)个(Ge)线(Xian)程(Cheng),(?)因(Yin)为(Wei)这(Zhe)样(Yang)可(Ke)能(Neng)会(Hui)造(Zao)成(Cheng)该(Gai)线(Xian)程(Cheng)死(Si)锁(Suo)。(?)如(Ru)果(Guo)某(Mou)个(Ge)线(Xian)程(Cheng)正(Zheng)从(Cong)连(Lian)接(Jie)的(De)管(Guan)道(Dao)输(Shu)入(Ru)流(Liu)中(Zhong)读(Du)取(Qu)数(Shu)据(Ju)字(Zi)节(Jie),(?)但(Dan)该(Gai)线(Xian)程(Cheng)不(Bu)再(Zai)处(Chu)于(Yu)活(Huo)动(Dong)状(Zhuang)态(Tai),(?)则(Ze)该(Gai)管(Guan)道(Dao)被(Bei)视(Shi)为(Wei)处(Chu)于(Yu)毁(Hui)坏(Huai)状(Zhuang)态(Tai)。(?)
不(Bu)带(Dai)缓(Huan)冲(Chong)的(De)流(Liu)的(De)工(Gong)作(Zuo)原(Yuan)理(Li):(?)
它(Ta)读(Du)取(Qu)到(Dao)一(Yi)个(Ge)字(Zi)节(Jie)/字(Zi)符(Fu),(?)就(Jiu)向(Xiang)用(Yong)户(Hu)指(Zhi)定(Ding)的(De)路(Lu)径(Jing)写(Xie)出(Chu)去(Qu),(?)读(Du)一(Yi)个(Ge)写(Xie)一(Yi)个(Ge),(?)所(Suo)以(Yi)就(Jiu)慢(Man)了(Liao)。(?)
带(Dai)缓(Huan)冲(Chong)的(De)流(Liu)的(De)工(Gong)作(Zuo)原(Yuan)理(Li):(?)
读(Du)取(Qu)到(Dao)一(Yi)个(Ge)字(Zi)节(Jie)/字(Zi)符(Fu),(?)先(Xian)不(Bu)输(Shu)出(Chu),(?)等(Deng)凑(?)足(Zu)了(Liao)缓(Huan)冲(Chong)的(De)最(Zui)大(Da)容(Rong)量(Liang)后(Hou)一(Yi)次(Ci)性(Xing)写(Xie)出(Chu)去(Qu),(?)从(Cong)而(?)提(Ti)高(Gao)了(Liao)工(Gong)作(Zuo)效(Xiao)率(Lu)
优(You)点(Dian):(?)减(Jian)少(Shao)对(Dui)硬(Ying)盘(Pan)的(De)读(Du)取(Qu)次(Ci)数(Shu),(?)降(Jiang)低(Di)对(Dui)硬(Ying)盘(Pan)的(De)损(Sun)耗(Hao)。(?)
想(Xiang)把(Ba)一(Yi)个(Ge)对(Dui)象(Xiang)写(Xie)在(Zai)硬(Ying)盘(Pan)上(Shang)或(Huo)者(Zhe)网(Wang)络(Luo)上(Shang),(?)对(Dui)其(Qi)进(Jin)行(Xing)序(Xu)列(Lie)化(Hua),(?)把(Ba)他(Ta)序(Xu)列(Lie)化(Hua)成(Cheng)为(Wei)一(Yi)个(Ge)字(Zi)节(Jie)流(Liu)。(?)
实(Shi)现(Xian)和(He)注(Zhu)意(Yi)事(Shi)项(Xiang):(?)
1)(?)实(Shi)现(Xian)接(Jie)口(Kou)Serializable Serializable接(Jie)口(Kou)中(Zhong)没(Mei)有(You)任(Ren)何(He)的(De)方(Fang)法(Fa),(?)实(Shi)现(Xian)该(Gai)接(Jie)口(Kou)的(De)类(Lei)不(Bu)需(Xu)要(Yao)实(Shi)现(Xian)额(E)外(Wai)的(De)方(Fang)法(Fa)。(?)
2)(?)如(Ru)果(Guo)对(Dui)象(Xiang)中(Zhong)的(De)某(Mou)个(Ge)属(Shu)性(Xing)是(Shi)对(Dui)象(Xiang)类(Lei)型(Xing),(?)必(Bi)须(Xu)也(Ye)实(Shi)现(Xian)Serializable接(Jie)口(Kou)才(Cai)可(Ke)以(Yi),(?)序(Xu)列(Lie)化(Hua)对(Dui)静(Jing)态(Tai)变(Bian)量(Liang)无(Wu)效(Xiao)
3)(?)如(Ru)果(Guo)不(Bu)希(Xi)望(Wang)某(Mou)个(Ge)属(Shu)性(Xing)参(Can)与(Yu)序(Xu)列(Lie)化(Hua),(?)不(Bu)是(Shi)将(Jiang)其(Qi)static,(?)而(?)是(Shi)transient串(Chuan)行(Xing)化(Hua)保(Bao)存(Cun)的(De)只(Zhi)是(Shi)变(Bian)量(Liang)的(De)值(Zhi),(?)对(Dui)于(Yu)变(Bian)量(Liang)的(De)任(Ren)何(He)修(Xiu)饰(Shi)符(Fu),(?)都(Du)不(Bu)能(Neng)保(Bao)存(Cun)序(Xu)列(Lie)化(Hua)版(Ban)本(Ben)不(Bu)兼(Jian)容(Rong)
((?)结(Jie)合(He)递(Di)归(Gui))(?)
package com.bjsxt; import java.io.*; /** * CopyDocJob定(Ding)义(Yi)了(Liao)实(Shi)际(Ji)执(Zhi)行(Xing)的(De)任(Ren)务(Wu),(?)即(Ji) * 从(Cong)源(Yuan)目(Mu)录(Lu)拷(Kao)贝(Bei)文(Wen)件(Jian)到(Dao)目(Mu)标(Biao)目(Mu)录(Lu) */ public class CopyDir2 { public static void main(String[] args) { try { copyDirectiory("d:/301sxt","d:/301sxt2"); } catch (IOException e) { e.printStackTrace(); } } /** * 复(Fu)制(Zhi)单(Dan)个(Ge)文(Wen)件(Jian) * @param sourceFile 源(Yuan)文(Wen)件(Jian) * @param targetFile 目(Mu)标(Biao)文(Wen)件(Jian) * @throws IOException */ private static void copyFile(File sourceFile, File targetFile) throws IOException { BufferedInputStream inBuff = null; BufferedOutputStream outBuff = null; try { // 新(Xin)建(Jian)文(Wen)件(Jian)输(Shu)入(Ru)流(Liu) inBuff = new BufferedInputStream(new FileInputStream(sourceFile)); // 新(Xin)建(Jian)文(Wen)件(Jian)输(Shu)出(Chu)流(Liu) outBuff = new BufferedOutputStream(new FileOutputStream(targetFile)); // 缓(Huan)冲(Chong)数(Shu)组(Zu) byte[] b = new byte[1024 * 5]; int len; while ((len = inBuff.read(b)) != -1) { outBuff.write(b, 0, len); } // 刷(Shua)新(Xin)此(Ci)缓(Huan)冲(Chong)的(De)输(Shu)出(Chu)流(Liu) outBuff.flush(); } finally { // 关(Guan)闭(Bi)流(Liu) if (inBuff != null) inBuff.close(); if (outBuff != null) outBuff.close(); } } /** * 复(Fu)制(Zhi)目(Mu)录(Lu) * @param sourceDir 源(Yuan)目(Mu)录(Lu) * @param targetDir 目(Mu)标(Biao)目(Mu)录(Lu) * @throws IOException */ private static void copyDirectiory(String sourceDir, String targetDir) throws IOException { // 检(Jian)查(Cha)源(Yuan)目(Mu)录(Lu) File fSourceDir = new File(sourceDir); if(!fSourceDir.exists() || !fSourceDir.isDirectory()){ return; } //检(Jian)查(Cha)目(Mu)标(Biao)目(Mu)录(Lu),(?)如(Ru)不(Bu)存(Cun)在(Zai)则(Ze)创(Chuang)建(Jian) File fTargetDir = new File(targetDir); if(!fTargetDir.exists()){ fTargetDir.mkdirs(); } // 遍(Bian)历(Li)源(Yuan)目(Mu)录(Lu)下(Xia)的(De)文(Wen)件(Jian)或(Huo)目(Mu)录(Lu) File[] file = fSourceDir.listFiles(); for (int i = 0; i < file.length; i++) { if (file[i].isFile()) { // 源(Yuan)文(Wen)件(Jian) File sourceFile = file[i]; // 目(Mu)标(Biao)文(Wen)件(Jian) File targetFile = new File(fTargetDir, file[i].getName()); copyFile(sourceFile, targetFile); } //递(Di)归(Gui)复(Fu)制(Zhi)子(Zi)目(Mu)录(Lu) if (file[i].isDirectory()) { // 准(Zhun)备(Bei)复(Fu)制(Zhi)的(De)源(Yuan)文(Wen)件(Jian)夹(Jia) String subSourceDir = sourceDir + File.separator + file[i].getName(); // 准(Zhun)备(Bei)复(Fu)制(Zhi)的(De)目(Mu)标(Biao)文(Wen)件(Jian)夹(Jia) String subTargetDir = targetDir + File.separator + file[i].getName(); // 复(Fu)制(Zhi)子(Zi)目(Mu)录(Lu) copyDirectiory(subSourceDir, subTargetDir); } } } }
Java BIO:(?) 同(Tong)步(Bu)并(Bing)阻(Zu)塞(Sai),(?)服(Fu)务(Wu)器(Qi)实(Shi)现(Xian)模(Mo)式(Shi)为(Wei)一(Yi)个(Ge)连(Lian)接(Jie)一(Yi)个(Ge)线(Xian)程(Cheng),(?)即(Ji)客(Ke)户(Hu)端(Duan)有(You)连(Lian)接(Jie)请(Qing)求(Qiu)时(Shi)服(Fu)务(Wu)器(Qi)端(Duan)就(Jiu)需(Xu)要(Yao)启(Qi)动(Dong)一(Yi)个(Ge)线(Xian)程(Cheng)进(Jin)行(Xing)处(Chu)理(Li),(?)如(Ru)果(Guo)这(Zhe)个(Ge)连(Lian)接(Jie)不(Bu)做(Zuo)任(Ren)何(He)事(Shi)情(Qing)会(Hui)造(Zao)成(Cheng)不(Bu)必(Bi)要(Yao)的(De)线(Xian)程(Cheng)开(Kai)销(Xiao),(?)当(Dang)然(Ran)可(Ke)以(Yi)通(Tong)过(Guo)线(Xian)程(Cheng)池(Chi)机(Ji)制(Zhi)改(Gai)善(Shan)。(?)
Java NIO:(?) 同(Tong)步(Bu)非(Fei)阻(Zu)塞(Sai),(?)服(Fu)务(Wu)器(Qi)实(Shi)现(Xian)模(Mo)式(Shi)为(Wei)一(Yi)个(Ge)请(Qing)求(Qiu)一(Yi)个(Ge)线(Xian)程(Cheng),(?)即(Ji)客(Ke)户(Hu)端(Duan)发(Fa)送(Song)的(De)连(Lian)接(Jie)请(Qing)求(Qiu)都(Du)会(Hui)注(Zhu)册(Ce)到(Dao)多(Duo)路(Lu)复(Fu)用(Yong)器(Qi)上(Shang),(?)多(Duo)路(Lu)复(Fu)用(Yong)器(Qi)轮(Lun)询(Xun)到(Dao)连(Lian)接(Jie)有(You)I/O请(Qing)求(Qiu)时(Shi)才(Cai)启(Qi)动(Dong)一(Yi)个(Ge)线(Xian)程(Cheng)进(Jin)行(Xing)处(Chu)理(Li)。(?)
Java AIO:(?) 异(Yi)步(Bu)非(Fei)阻(Zu)塞(Sai),(?)服(Fu)务(Wu)器(Qi)实(Shi)现(Xian)模(Mo)式(Shi)为(Wei)一(Yi)个(Ge)有(You)效(Xiao)请(Qing)求(Qiu)一(Yi)个(Ge)线(Xian)程(Cheng),(?)客(Ke)户(Hu)端(Duan)的(De)I/O请(Qing)求(Qiu)都(Du)是(Shi)由(You)OS先(Xian)完(Wan)成(Cheng)了(Liao)再(Zai)通(Tong)知(Zhi)服(Fu)务(Wu)器(Qi)应(Ying)用(Yong)去(Qu)启(Qi)动(Dong)线(Xian)程(Cheng)进(Jin)行(Xing)处(Chu)理(Li)。(?)
NIO比(Bi)BIO的(De)改(Gai)善(Shan)之(Zhi)处(Chu)是(Shi)把(Ba)一(Yi)些(Xie)无(Wu)效(Xiao)的(De)连(Lian)接(Jie)挡(Dang)在(Zai)了(Liao)启(Qi)动(Dong)线(Xian)程(Cheng)之(Zhi)前(Qian),(?)减(Jian)少(Shao)了(Liao)这(Zhe)部(Bu)分(Fen)资(Zi)源(Yuan)的(De)浪(Lang)费(Fei)((?)因(Yin)为(Wei)我(Wo)们(Men)都(Du)知(Zhi)道(Dao)每(Mei)创(Chuang)建(Jian)一(Yi)个(Ge)线(Xian)程(Cheng),(?)就(Jiu)要(Yao)为(Wei)这(Zhe)个(Ge)线(Xian)程(Cheng)分(Fen)配(Pei)一(Yi)定(Ding)的(De)内(Nei)存(Cun)空(Kong)间(Jian))(?)
AIO比(Bi)NIO的(De)进(Jin)一(Yi)步(Bu)改(Gai)善(Shan)之(Zhi)处(Chu)是(Shi)将(Jiang)一(Yi)些(Xie)暂(Zan)时(Shi)可(Ke)能(Neng)无(Wu)效(Xiao)的(De)请(Qing)求(Qiu)挡(Dang)在(Zai)了(Liao)启(Qi)动(Dong)线(Xian)程(Cheng)之(Zhi)前(Qian),(?)比(Bi)如(Ru)在(Zai)NIO的(De)处(Chu)理(Li)方(Fang)式(Shi)中(Zhong),(?)当(Dang)一(Yi)个(Ge)请(Qing)求(Qiu)来(Lai)的(De)话(Hua),(?)开(Kai)启(Qi)线(Xian)程(Cheng)进(Jin)行(Xing)处(Chu)理(Li),(?)但(Dan)这(Zhe)个(Ge)请(Qing)求(Qiu)所(Suo)需(Xu)要(Yao)的(De)资(Zi)源(Yuan)还(Huan)没(Mei)有(You)就(Jiu)绪(Xu),(?)此(Ci)时(Shi)必(Bi)须(Xu)等(Deng)待(Dai)后(Hou)端(Duan)的(De)应(Ying)用(Yong)资(Zi)源(Yuan),(?)这(Zhe)时(Shi)线(Xian)程(Cheng)就(Jiu)被(Bei)阻(Zu)塞(Sai)了(Liao)。(?)
适(Shi)用(Yong)场(Chang)景(Jing)分(Fen)析(Xi):(?)
BIO方(Fang)式(Shi)适(Shi)用(Yong)于(Yu)连(Lian)接(Jie)数(Shu)目(Mu)比(Bi)较(Jiao)小(Xiao)且(Qie)固(Gu)定(Ding)的(De)架(Jia)构(Gou),(?)这(Zhe)种(Zhong)方(Fang)式(Shi)对(Dui)服(Fu)务(Wu)器(Qi)资(Zi)源(Yuan)要(Yao)求(Qiu)比(Bi)较(Jiao)高(Gao),(?)并(Bing)发(Fa)局(Ju)限(Xian)于(Yu)应(Ying)用(Yong)中(Zhong),(?)JDK1.4以(Yi)前(Qian)的(De)唯(Wei)一(Yi)选(Xuan)择(Ze),(?)但(Dan)程(Cheng)序(Xu)直(Zhi)观(Guan)简(Jian)单(Dan)易(Yi)理(Li)解(Jie),(?)如(Ru)之(Zhi)前(Qian)在(Zai)Apache中(Zhong)使(Shi)用(Yong)。(?)
NIO方(Fang)式(Shi)适(Shi)用(Yong)于(Yu)连(Lian)接(Jie)数(Shu)目(Mu)多(Duo)且(Qie)连(Lian)接(Jie)比(Bi)较(Jiao)短(Duan)((?)轻(Qing)操(Cao)作(Zuo))(?)的(De)架(Jia)构(Gou),(?)比(Bi)如(Ru)聊(Liao)天(Tian)服(Fu)务(Wu)器(Qi),(?)并(Bing)发(Fa)局(Ju)限(Xian)于(Yu)应(Ying)用(Yong)中(Zhong),(?)编(Bian)程(Cheng)比(Bi)较(Jiao)复(Fu)杂(Za),(?)JDK1.4开(Kai)始(Shi)支(Zhi)持(Chi),(?)如(Ru)在(Zai) Nginx,(?)Netty中(Zhong)使(Shi)用(Yong)。(?)
AIO方(Fang)式(Shi)使(Shi)用(Yong)于(Yu)连(Lian)接(Jie)数(Shu)目(Mu)多(Duo)且(Qie)连(Lian)接(Jie)比(Bi)较(Jiao)长(Chang)((?)重(Zhong)操(Cao)作(Zuo))(?)的(De)架(Jia)构(Gou),(?)比(Bi)如(Ru)相(Xiang)册(Ce)服(Fu)务(Wu)器(Qi),(?)充(Chong)分(Fen)调(Diao)用(Yong)OS参(Can)与(Yu)并(Bing)发(Fa)操(Cao)作(Zuo),(?)编(Bian)程(Cheng)比(Bi)较(Jiao)复(Fu)杂(Za),(?)JDK7开(Kai)始(Shi)支(Zhi)持(Chi),(?)在(Zai)成(Cheng)长(Chang)中(Zhong),(?)Netty曾(Zeng)经(Jing)使(Shi)用(Yong)过(Guo),(?)后(Hou)来(Lai)放(Fang)弃(Qi)。(?)
网(Wang)络(Luo)编(Bian)程(Cheng):(?)
1)(?)IP地(Di)址(Zhi)
用(Yong)来(Lai)标(Biao)志(Zhi)网(Wang)络(Luo)中(Zhong)的(De)一(Yi)个(Ge)通(Tong)信(Xin)实(Shi)体(Ti)的(De)地(Di)址(Zhi)。(?)通(Tong)信(Xin)实(Shi)体(Ti)可(Ke)以(Yi)是(Shi)计(Ji)算(Suan)机(Ji),(?)路(Lu)由(You)器(Qi)等(Deng)。(?)
2)(?)IP地(Di)址(Zhi)分(Fen)类(Lei)
IPV4:(?)32位(Wei)地(Di)址(Zhi),(?)以(Yi)点(Dian)分(Fen)十(Shi)进(Jin)制(Zhi)表(Biao)示(Shi),(?)如(Ru)192.168.0.1
IPV6:(?)128位(Wei)((?)16个(Ge)字(Zi)节(Jie))(?)写(Xie)成(Cheng)8个(Ge)16位(Wei)的(De)无(Wu)符(Fu)号(Hao)整(Zheng)数(Shu),(?)每(Mei)个(Ge)整(Zheng)数(Shu)用(Yong)四(Si)个(Ge)十(Shi)六(Liu)进(Jin)制(Zhi)位(Wei)表(Biao)示(Shi),(?)数(Shu)之(Zhi)间(Jian)用(Yong)冒(Mao)号(Hao)((?):(?))(?)分(Fen)开(Kai),(?)如(Ru):(?)3ffe:3201:1401:1280:c8ff:fe4d:db39:1984
3)(?)特(Te)殊(Shu)的(De)IP地(Di)址(Zhi)
127.0.0.1 本(Ben)机(Ji)地(Di)址(Zhi)
192.168.0.0--192.168.255.255私(Si)有(You)地(Di)址(Zhi),(?)属(Shu)于(Yu)非(Fei)注(Zhu)册(Ce)地(Di)址(Zhi),(?)专(Zhuan)门(Men)为(Wei)组(Zu)织(Zhi)机(Ji)构(Gou)内(Nei)部(Bu)使(Shi)用(Yong)。(?)
4)(?)端(Duan)口(Kou):port
IP地(Di)址(Zhi)用(Yong)来(Lai)标(Biao)志(Zhi)一(Yi)台(Tai)计(Ji)算(Suan)机(Ji),(?)但(Dan)是(Shi)一(Yi)台(Tai)计(Ji)算(Suan)机(Ji)上(Shang)可(Ke)能(Neng)提(Ti)供(Gong)多(Duo)种(Zhong)应(Ying)用(Yong)程(Cheng)序(Xu),(?)使(Shi)用(Yong)端(Duan)口(Kou)来(Lai)区(Qu)分(Fen)这(Zhe)些(Xie)应(Ying)用(Yong)程(Cheng)序(Xu)。(?) 端(Duan)口(Kou)是(Shi)虚(Xu)拟(Ni)的(De)概(Gai)念(Nian),(?)并(Bing)不(Bu)是(Shi)说(Shuo)在(Zai)主(Zhu)机(Ji)上(Shang)真(Zhen)的(De)有(You)若(Ruo)干(Gan)个(Ge)端(Duan)口(Kou)。(?)通(Tong)过(Guo)端(Duan)口(Kou),(?)可(Ke)以(Yi)在(Zai)一(Yi)个(Ge)主(Zhu)机(Ji)上(Shang)运(Yun)行(Xing)多(Duo)个(Ge)网(Wang)络(Luo)应(Ying)用(Yong)程(Cheng)序(Xu)。(?) 端(Duan)口(Kou)范(Fan)围(Wei)0---65535,16位(Wei)整(Zheng)数(Shu)
5)(?)端(Duan)口(Kou)分(Fen)类(Lei)
公(Gong)认(Ren)端(Duan)口(Kou) 0—(?)1023 比(Bi)如(Ru)80端(Duan)口(Kou)分(Fen)配(Pei)给(Gei)WWW,(?)21端(Duan)口(Kou)分(Fen)配(Pei)给(Gei)FTP,(?)22端(Duan)口(Kou)分(Fen)配(Pei)给(Gei)SSH,23端(Duan)口(Kou)分(Fen)配(Pei)给(Gei)telnet,(?)25端(Duan)口(Kou)分(Fen)配(Pei)给(Gei)smtp
注(Zhu)册(Ce)端(Duan)口(Kou) 1024—(?)49151 分(Fen)配(Pei)给(Gei)用(Yong)户(Hu)进(Jin)程(Cheng)或(Huo)应(Ying)用(Yong)程(Cheng)序(Xu)
动(Dong)态(Tai)/私(Si)有(You)端(Duan)口(Kou) 49152--65535
6)(?)理(Li)解(Jie)IP和(He)端(Duan)口(Kou)的(De)关(Guan)系(Xi)
IP地(Di)址(Zhi)好(Hao)比(Bi)每(Mei)个(Ge)人(Ren)的(De)地(Di)址(Zhi)((?)门(Men)牌(Pai)号(Hao))(?),(?)端(Duan)口(Kou)好(Hao)比(Bi)是(Shi)房(Fang)间(Jian)号(Hao)。(?)必(Bi)须(Xu)同(Tong)时(Shi)指(Zhi)定(Ding)IP地(Di)址(Zhi)和(He)端(Duan)口(Kou)号(Hao)才(Cai)能(Neng)够(Gou)正(Zheng)确(Que)的(De)发(Fa)送(Song)数(Shu)据(Ju)
IP地(Di)址(Zhi)好(Hao)比(Bi)为(Wei)电(Dian)话(Hua)号(Hao)码(Ma),(?)而(?)端(Duan)口(Kou)号(Hao)就(Jiu)好(Hao)比(Bi)为(Wei)分(Fen)机(Ji)号(Hao)。(?)

OSI(Open System Interconnection),(?)开(Kai)放(Fang)式(Shi)系(Xi)统(Tong)互(Hu)联(Lian)参(Can)考(Kao)模(Mo)型(Xing) 。(?)是(Shi)一(Yi)个(Ge)逻(Luo)辑(Ji)上(Shang)的(De)定(Ding)义(Yi),(?)一(Yi)个(Ge)规(Gui)范(Fan),(?)它(Ta)把(Ba)网(Wang)络(Luo)协(Xie)议(Yi)从(Cong)逻(Luo)辑(Ji)上(Shang)分(Fen)为(Wei)了(Liao)7层(Ceng)。(?)每(Mei)一(Yi)层(Ceng)都(Du)有(You)相(Xiang)关(Guan)、(?)相(Xiang)对(Dui)应(Ying)的(De)物(Wu)理(Li)设(She)备(Bei),(?)比(Bi)如(Ru)常(Chang)规(Gui)的(De)路(Lu)由(You)器(Qi)是(Shi)三(San)层(Ceng)交(Jiao)换(Huan)设(She)备(Bei),(?)常(Chang)规(Gui)的(De)交(Jiao)换(Huan)机(Ji)是(Shi)二(?)层(Ceng)交(Jiao)换(Huan)设(She)备(Bei)。(?)OSI七(Qi)层(Ceng)模(Mo)型(Xing)是(Shi)一(Yi)种(Zhong)框(Kuang)架(Jia)性(Xing)的(De)设(She)计(Ji)方(Fang)法(Fa),(?)建(Jian)立(Li)七(Qi)层(Ceng)模(Mo)型(Xing)的(De)主(Zhu)要(Yao)目(Mu)的(De)是(Shi)为(Wei)解(Jie)决(Jue)异(Yi)种(Zhong)网(Wang)络(Luo)互(Hu)连(Lian)时(Shi)所(Suo)遇(Yu)到(Dao)的(De)兼(Jian)容(Rong)性(Xing)问(Wen)题(Ti),(?)其(Qi)最(Zui)主(Zhu)要(Yao)的(De)功(Gong)能(Neng)就(Jiu)是(Shi)帮(Bang)助(Zhu)不(Bu)同(Tong)类(Lei)型(Xing)的(De)主(Zhu)机(Ji)实(Shi)现(Xian)数(Shu)据(Ju)传(Chuan)输(Shu)。(?)它(Ta)的(De)最(Zui)大(Da)优(You)点(Dian)是(Shi)将(Jiang)服(Fu)务(Wu)、(?)接(Jie)口(Kou)和(He)协(Xie)议(Yi)这(Zhe)三(San)个(Ge)概(Gai)念(Nian)明(Ming)确(Que)地(Di)区(Qu)分(Fen)开(Kai)来(Lai),(?)通(Tong)过(Guo)七(Qi)个(Ge)层(Ceng)次(Ci)化(Hua)的(De)结(Jie)构(Gou)模(Mo)型(Xing)使(Shi)不(Bu)同(Tong)的(De)系(Xi)统(Tong)不(Bu)同(Tong)的(De)网(Wang)络(Luo)之(Zhi)间(Jian)实(Shi)现(Xian)可(Ke)靠(Kao)的(De)通(Tong)讯(Xun)。(?)
TCP/IP协(Xie)议(Yi)是(Shi)Internet最(Zui)基(Ji)本(Ben)的(De)协(Xie)议(Yi)、(?)Internet国(Guo)际(Ji)互(Hu)联(Lian)网(Wang)络(Luo)的(De)基(Ji)础(Chu),(?)主(Zhu)要(Yao)由(You)网(Wang)络(Luo)层(Ceng)的(De)IP协(Xie)议(Yi)和(He)传(Chuan)输(Shu)层(Ceng)的(De)TCP协(Xie)议(Yi)组(Zu)成(Cheng)。(?)TCP/IP 定(Ding)义(Yi)了(Liao)电(Dian)子(Zi)设(She)备(Bei)如(Ru)何(He)连(Lian)入(Ru)因(Yin)特(Te)网(Wang),(?)以(Yi)及(Ji)数(Shu)据(Ju)如(Ru)何(He)在(Zai)它(Ta)们(Men)之(Zhi)间(Jian)传(Chuan)输(Shu)的(De)标(Biao)准(Zhun)。(?)协(Xie)议(Yi)采(Cai)用(Yong)了(Liao)4层(Ceng)的(De)层(Ceng)级(Ji)结(Jie)构(Gou),(?)每(Mei)一(Yi)层(Ceng)都(Du)呼(Hu)叫(Jiao)它(Ta)的(De)下(Xia)一(Yi)层(Ceng)所(Suo)提(Ti)供(Gong)的(De)协(Xie)议(Yi)来(Lai)完(Wan)成(Cheng)自(Zi)己(Ji)的(De)需(Xu)求(Qiu)。(?)
ISO制(Zhi)定(Ding)的(De)OSI参(Can)考(Kao)模(Mo)型(Xing)的(De)过(Guo)于(Yu)庞(Pang)大(Da)、(?)复(Fu)杂(Za)招(Zhao)致(Zhi)了(Liao)许(Xu)多(Duo)批(Pi)评(Ping)。(?)伴(Ban)随(Sui)着(Zhuo)互(Hu)联(Lian)网(Wang)的(De)流(Liu)行(Xing),(?)其(Qi)本(Ben)身(Shen)所(Suo)采(Cai)用(Yong)的(De)TCP/IP协(Xie)议(Yi)栈(Zhan)获(Huo)得(De)了(Liao)更(Geng)为(Wei)广(Guang)泛(Fan)的(De)应(Ying)用(Yong)和(He)认(Ren)可(Ke)。(?)在(Zai)TCP/IP参(Can)考(Kao)模(Mo)型(Xing)中(Zhong),(?)去(Qu)掉(Diao)了(Liao)OSI参(Can)考(Kao)模(Mo)型(Xing)中(Zhong)的(De)会(Hui)话(Hua)层(Ceng)和(He)表(Biao)示(Shi)层(Ceng)((?)这(Zhe)两(Liang)层(Ceng)的(De)功(Gong)能(Neng)被(Bei)合(He)并(Bing)到(Dao)应(Ying)用(Yong)层(Ceng)实(Shi)现(Xian))(?)。(?)同(Tong)时(Shi)将(Jiang)OSI参(Can)考(Kao)模(Mo)型(Xing)中(Zhong)的(De)数(Shu)据(Ju)链(Lian)路(Lu)层(Ceng)和(He)物(Wu)理(Li)层(Ceng)合(He)并(Bing)为(Wei)主(Zhu)机(Ji)到(Dao)网(Wang)络(Luo)层(Ceng)。(?)
TCP和(He)UDP是(Shi)TCP/IP协(Xie)议(Yi)栈(Zhan)中(Zhong)传(Chuan)输(Shu)层(Ceng)的(De)两(Liang)个(Ge)协(Xie)议(Yi),(?)它(Ta)们(Men)使(Shi)用(Yong)IP路(Lu)由(You)功(Gong)能(Neng)把(Ba)数(Shu)据(Ju)包(Bao)发(Fa)送(Song)到(Dao)目(Mu)的(De)地(Di),(?)从(Cong)而(?)为(Wei)应(Ying)用(Yong)程(Cheng)序(Xu)及(Ji)应(Ying)用(Yong)层(Ceng)协(Xie)议(Yi)((?)包(Bao)括(Kuo):(?)HTTP、(?)SMTP、(?)SNMP、(?)FTP和(He)Telnet)(?)提(Ti)供(Gong)网(Wang)络(Luo)服(Fu)务(Wu)。(?)
TCP的(De)server和(He)client之(Zhi)间(Jian)通(Tong)信(Xin)就(Jiu)好(Hao)比(Bi)两(Liang)个(Ge)人(Ren)打(Da)电(Dian)话(Hua),(?)需(Xu)要(Yao)互(Hu)相(Xiang)知(Zhi)道(Dao)对(Dui)方(Fang)的(De)电(Dian)话(Hua)号(Hao)码(Ma),(?)然(Ran)后(Hou)开(Kai)始(Shi)对(Dui)话(Hua)。(?)所(Suo)以(Yi)在(Zai)两(Liang)者(Zhe)的(De)连(Lian)接(Jie)过(Guo)程(Cheng)中(Zhong)间(Jian)需(Xu)要(Yao)指(Zhi)定(Ding)端(Duan)口(Kou)和(He)地(Di)址(Zhi)。(?)
UDP的(De)server和(He)client之(Zhi)间(Jian)的(De)通(Tong)信(Xin)就(Jiu)像(Xiang)两(Liang)个(Ge)人(Ren)互(Hu)相(Xiang)发(Fa)信(Xin)。(?)我(Wo)只(Zhi)需(Xu)要(Yao)知(Zhi)道(Dao)对(Dui)方(Fang)的(De)地(Di)址(Zhi),(?)然(Ran)后(Hou)就(Jiu)发(Fa)信(Xin)过(Guo)去(Qu)。(?)对(Dui)方(Fang)是(Shi)否(Fou)收(Shou)到(Dao)我(Wo)不(Bu)知(Zhi)道(Dao),(?)也(Ye)不(Bu)需(Xu)要(Yao)专(Zhuan)门(Men)对(Dui)口(Kou)令(Ling)似(Si)的(De)来(Lai)建(Jian)立(Li)连(Lian)接(Jie)。(?)具(Ju)体(Ti)区(Qu)别(Bie)如(Ru)下(Xia):(?)
1)(?)TCP是(Shi)面(Mian)向(Xiang)连(Lian)接(Jie)的(De)传(Chuan)输(Shu)。(?)UDP是(Shi)无(Wu)连(Lian)接(Jie)的(De)传(Chuan)输(Shu)
2)(?)TCP有(You)流(Liu)量(Liang)控(Kong)制(Zhi)、(?)拥(Yong)塞(Sai)控(Kong)制(Zhi),(?)检(Jian)验(Yan)数(Shu)据(Ju)数(Shu)据(Ju)按(An)序(Xu)到(Dao)达(Da),(?)而(?)UDP则(Ze)相(Xiang)反(Fan)。(?)
3)(?)TCP的(De)路(Lu)由(You)选(Xuan)择(Ze)只(Zhi)发(Fa)生(Sheng)在(Zai)建(Jian)立(Li)连(Lian)接(Jie)的(De)时(Shi)候(Hou),(?)而(?)UDP的(De)每(Mei)个(Ge)报(Bao)文(Wen)都(Du)要(Yao)进(Jin)行(Xing)路(Lu)由(You)选(Xuan)择(Ze)
4)(?)TCP是(Shi)可(Ke)靠(Kao)性(Xing)传(Chuan)输(Shu),(?)他(Ta)的(De)可(Ke)靠(Kao)性(Xing)是(Shi)由(You)超(Chao)时(Shi)重(Zhong)发(Fa)机(Ji)制(Zhi)实(Shi)现(Xian)的(De),(?)而(?)UDP则(Ze)是(Shi)不(Bu)可(Ke)靠(Kao)传(Chuan)输(Shu)
5)(?)UDP因(Yin)为(Wei)少(Shao)了(Liao)很(Hen)多(Duo)控(Kong)制(Zhi)信(Xin)息(Xi),(?)所(Suo)以(Yi)传(Chuan)输(Shu)速(Su)度(Du)比(Bi)TCP速(Su)度(Du)快(Kuai)
6)(?)TCP适(Shi)合(He)用(Yong)于(Yu)传(Chuan)输(Shu)大(Da)量(Liang)数(Shu)据(Ju),(?)UDP适(Shi)合(He)用(Yong)于(Yu)传(Chuan)输(Shu)小(Xiao)量(Liang)数(Shu)据(Ju)
Socket编(Bian)程(Cheng)的(De)定(Ding)义(Yi)如(Ru)下(Xia):(?)
所(Suo)谓(Wei)socket通(Tong)常(Chang)也(Ye)称(Cheng)作(Zuo)"套(Tao)接(Jie)字(Zi)",(?)用(Yong)于(Yu)描(Miao)述(Shu)IP地(Di)址(Zhi)和(He)端(Duan)口(Kou),(?)是(Shi)一(Yi)个(Ge)通(Tong)信(Xin)链(Lian)的(De)句(Ju)柄(Bing)。(?)应(Ying)用(Yong)程(Cheng)序(Xu)通(Tong)常(Chang)通(Tong)过(Guo)"套(Tao)接(Jie)字(Zi)"向(Xiang)网(Wang)络(Luo)发(Fa)出(Chu)请(Qing)求(Qiu)或(Huo)者(Zhe)应(Ying)答(Da)网(Wang)络(Luo)请(Qing)求(Qiu)。(?)
我(Wo)们(Men)开(Kai)发(Fa)的(De)网(Wang)络(Luo)应(Ying)用(Yong)程(Cheng)序(Xu)位(Wei)于(Yu)应(Ying)用(Yong)层(Ceng),(?)TCP和(He)UDP属(Shu)于(Yu)传(Chuan)输(Shu)层(Ceng)协(Xie)议(Yi),(?)在(Zai)应(Ying)用(Yong)层(Ceng)如(Ru)何(He)使(Shi)用(Yong)传(Chuan)输(Shu)层(Ceng)的(De)服(Fu)务(Wu)呢(Ne)?(?)在(Zai)应(Ying)用(Yong)层(Ceng)和(He)传(Chuan)输(Shu)层(Ceng)之(Zhi)间(Jian),(?)则(Ze)是(Shi)使(Shi)用(Yong)套(Tao)接(Jie)字(Zi)来(Lai)进(Jin)行(Xing)分(Fen)离(Li)。(?)
套(Tao)接(Jie)字(Zi)就(Jiu)像(Xiang)是(Shi)传(Chuan)输(Shu)层(Ceng)为(Wei)应(Ying)用(Yong)层(Ceng)开(Kai)的(De)一(Yi)个(Ge)小(Xiao)口(Kou),(?)应(Ying)用(Yong)程(Cheng)序(Xu)通(Tong)过(Guo)这(Zhe)个(Ge)小(Xiao)口(Kou)向(Xiang)远(Yuan)程(Cheng)发(Fa)送(Song)数(Shu)据(Ju),(?)或(Huo)者(Zhe)接(Jie)收(Shou)远(Yuan)程(Cheng)发(Fa)来(Lai)的(De)数(Shu)据(Ju);(?)而(?)这(Zhe)个(Ge)小(Xiao)口(Kou)以(Yi)内(Nei),(?)也(Ye)就(Jiu)是(Shi)数(Shu)据(Ju)进(Jin)入(Ru)这(Zhe)个(Ge)口(Kou)之(Zhi)后(Hou),(?)或(Huo)者(Zhe)数(Shu)据(Ju)从(Cong)这(Zhe)个(Ge)口(Kou)出(Chu)来(Lai)之(Zhi)前(Qian),(?)是(Shi)不(Bu)知(Zhi)道(Dao)也(Ye)不(Bu)需(Xu)要(Yao)知(Zhi)道(Dao)的(De),(?)也(Ye)不(Bu)会(Hui)关(Guan)心(Xin)它(Ta)如(Ru)何(He)传(Chuan)输(Shu),(?)这(Zhe)属(Shu)于(Yu)网(Wang)络(Luo)其(Qi)它(Ta)层(Ceng)次(Ci)的(De)工(Gong)作(Zuo)。(?)
Socket实(Shi)际(Ji)是(Shi)传(Chuan)输(Shu)层(Ceng)供(Gong)给(Gei)应(Ying)用(Yong)层(Ceng)的(De)编(Bian)程(Cheng)接(Jie)口(Kou)。(?)传(Chuan)输(Shu)层(Ceng)则(Ze)在(Zai)网(Wang)络(Luo)层(Ceng)的(De)基(Ji)础(Chu)上(Shang)提(Ti)供(Gong)进(Jin)程(Cheng)到(Dao)进(Jin)程(Cheng)问(Wen)的(De)逻(Luo)辑(Ji)通(Tong)道(Dao),(?)而(?)应(Ying)用(Yong)层(Ceng)的(De)进(Jin)程(Cheng)则(Ze)利(Li)用(Yong)传(Chuan)输(Shu)层(Ceng)向(Xiang)另(Ling)一(Yi)台(Tai)主(Zhu)机(Ji)的(De)某(Mou)一(Yi)进(Jin)程(Cheng)通(Tong)信(Xin)。(?)Socket就(Jiu)是(Shi)应(Ying)用(Yong)层(Ceng)与(Yu)传(Chuan)输(Shu)层(Ceng)之(Zhi)间(Jian)的(De)桥(Qiao)梁(Liang)
使(Shi)用(Yong)Socket编(Bian)程(Cheng)可(Ke)以(Yi)开(Kai)发(Fa)客(Ke)户(Hu)机(Ji)和(He)服(Fu)务(Wu)器(Qi)应(Ying)用(Yong)程(Cheng)序(Xu),(?)可(Ke)以(Yi)在(Zai)本(Ben)地(Di)网(Wang)络(Luo)上(Shang)进(Jin)行(Xing)通(Tong)信(Xin),(?)也(Ye)可(Ke)通(Tong)过(Guo)Internet在(Zai)全(Quan)球(Qiu)范(Fan)围(Wei)内(Nei)通(Tong)信(Xin)。(?)


生(Sheng)活(Huo)案(An)例(Li)1如(Ru)果(Guo)你(Ni)想(Xiang)写(Xie)封(Feng)邮(You)件(Jian)发(Fa)给(Gei)远(Yuan)方(Fang)的(De)朋(Peng)友(You),(?)如(Ru)何(He)写(Xie)信(Xin)、(?)将(Jiang)信(Xin)打(Da)包(Bao),(?)属(Shu)于(Yu)应(Ying)用(Yong)层(Ceng)。(?)信(Xin)怎(Zen)么(Me)写(Xie),(?)怎(Zen)么(Me)打(Da)包(Bao)完(Wan)全(Quan)由(You)我(Wo)们(Men)做(Zuo)主(Zhu);(?)而(?)当(Dang)我(Wo)们(Men)将(Jiang)信(Xin)投(Tou)入(Ru)邮(You)筒(Tong)时(Shi),(?)邮(You)筒(Tong)的(De)那(Na)个(Ge)口(Kou)就(Jiu)是(Shi)套(Tao)接(Jie)字(Zi),(?)在(Zai)进(Jin)入(Ru)套(Tao)接(Jie)字(Zi)之(Zhi)后(Hou),(?)就(Jiu)是(Shi)传(Chuan)输(Shu)层(Ceng)、(?)网(Wang)络(Luo)层(Ceng)等(Deng)((?)邮(You)局(Ju)、(?)公(Gong)路(Lu)交(Jiao)管(Guan)或(Huo)者(Zhe)航(Hang)线(Xian)等(Deng))(?)其(Qi)它(Ta)层(Ceng)次(Ci)的(De)工(Gong)作(Zuo)了(Liao)。(?)我(Wo)们(Men)从(Cong)来(Lai)不(Bu)会(Hui)去(Qu)关(Guan)心(Xin)信(Xin)是(Shi)如(Ru)何(He)从(Cong)西(Xi)安(An)发(Fa)往(Wang)北(Bei)京(Jing)的(De),(?)我(Wo)们(Men)只(Zhi)知(Zhi)道(Dao)写(Xie)好(Hao)了(Liao)投(Tou)入(Ru)邮(You)筒(Tong)就(Jiu)OK了(Liao)。(?)
生(Sheng)活(Huo)案(An)例(Li)2:(?)可(Ke)以(Yi)把(Ba)Socket比(Bi)作(Zuo)是(Shi)一(Yi)个(Ge)港(Gang)口(Kou)码(Ma)头(Tou),(?)应(Ying)用(Yong)程(Cheng)序(Xu)只(Zhi)要(Yao)将(Jiang)数(Shu)据(Ju)交(Jiao)给(Gei)Socket,(?)就(Jiu)算(Suan)完(Wan)成(Cheng)了(Liao)数(Shu)据(Ju)的(De)发(Fa)送(Song),(?)具(Ju)体(Ti)细(Xi)节(Jie)由(You)Socket来(Lai)完(Wan)成(Cheng),(?)细(Xi)节(Jie)不(Bu)必(Bi)了(Liao)解(Jie)。(?)同(Tong)理(Li),(?)对(Dui)于(Yu)接(Jie)收(Shou)方(Fang),(?)应(Ying)用(Yong)程(Cheng)序(Xu)也(Ye)要(Yao)创(Chuang)建(Jian)一(Yi)个(Ge)码(Ma)头(Tou),(?)等(Deng)待(Dai)数(Shu)据(Ju)的(De)到(Dao)达(Da),(?)并(Bing)获(Huo)取(Qu)数(Shu)据(Ju)。(?)
Java分(Fen)别(Bie)为(Wei)TCP和(He)UDP 两(Liang)种(Zhong)通(Tong)信(Xin)协(Xie)议(Yi)提(Ti)供(Gong)了(Liao)相(Xiang)应(Ying)的(De)Socket编(Bian)程(Cheng)类(Lei),(?)这(Zhe)些(Xie)类(Lei)存(Cun)放(Fang)在(Zai)java.net包(Bao)中(Zhong)。(?)与(Yu)TCP对(Dui)应(Ying)的(De)是(Shi)服(Fu)务(Wu)器(Qi)的(De)ServerSocket和(He)客(Ke)户(Hu)端(Duan)的(De)Socket,(?)与(Yu)UDP对(Dui)应(Ying)的(De)是(Shi)DatagramSocket。(?)
基(Ji)于(Yu)TCP创(Chuang)建(Jian)的(De)套(Tao)接(Jie)字(Zi)可(Ke)以(Yi)叫(Jiao)做(Zuo)流(Liu)套(Tao)接(Jie)字(Zi),(?)服(Fu)务(Wu)器(Qi)端(Duan)相(Xiang)当(Dang)于(Yu)一(Yi)个(Ge)监(Jian)听(Ting)器(Qi),(?)用(Yong)来(Lai)监(Jian)听(Ting)端(Duan)口(Kou)。(?)服(Fu)务(Wu)器(Qi)与(Yu)客(Ke)服(Fu)端(Duan)之(Zhi)间(Jian)的(De)通(Tong)讯(Xun)都(Du)是(Shi)输(Shu)入(Ru)输(Shu)出(Chu)流(Liu)来(Lai)实(Shi)现(Xian)的(De)。(?)基(Ji)于(Yu)UDP的(De)套(Tao)接(Jie)字(Zi)就(Jiu)是(Shi)数(Shu)据(Ju)报(Bao)套(Tao)接(Jie)字(Zi),(?) 两(Liang)个(Ge)都(Du)要(Yao)先(Xian)构(Gou)造(Zao)好(Hao)相(Xiang)应(Ying)的(De)数(Shu)据(Ju)包(Bao)。(?)
基(Ji)于(Yu)TCP协(Xie)议(Yi)的(De)Socket编(Bian)程(Cheng)的(De)主(Zhu)要(Yao)步(Bu)骤(Zhou)
服(Fu)务(Wu)器(Qi)端(Duan)((?)server)(?):(?)
1. 构(Gou)建(Jian)一(Yi)个(Ge)ServerSocket实(Shi)例(Li),(?)指(Zhi)定(Ding)本(Ben)地(Di)的(De)端(Duan)口(Kou)。(?)这(Zhe)个(Ge)socket就(Jiu)是(Shi)用(Yong)来(Lai)监(Jian)听(Ting)指(Zhi)定(Ding)端(Duan)口(Kou)的(De)连(Lian)接(Jie)请(Qing)求(Qiu)的(De)。(?)
2. 重(Zhong)复(Fu)如(Ru)下(Xia)几(Ji)个(Ge)步(Bu)骤(Zhou):(?)
a. 调(Diao)用(Yong)socket的(De)accept()方(Fang)法(Fa)来(Lai)获(Huo)得(De)下(Xia)面(Mian)客(Ke)户(Hu)端(Duan)的(De)连(Lian)接(Jie)请(Qing)求(Qiu)。(?)通(Tong)过(Guo)accept()方(Fang)法(Fa)返(Fan)回(Hui)的(De)socket实(Shi)例(Li),(?)建(Jian)立(Li)了(Liao)一(Yi)个(Ge)和(He)客(Ke)户(Hu)端(Duan)的(De)新(Xin)连(Lian)接(Jie)。(?)
b. 通(Tong)过(Guo)这(Zhe)个(Ge)返(Fan)回(Hui)的(De)socket实(Shi)例(Li)获(Huo)取(Qu)InputStream和(He)OutputStream,可(Ke)以(Yi)通(Tong)过(Guo)这(Zhe)两(Liang)个(Ge)stream来(Lai)分(Fen)别(Bie)读(Du)和(He)写(Xie)数(Shu)据(Ju)。(?)
c. 结(Jie)束(Shu)的(De)时(Shi)候(Hou)调(Diao)用(Yong)socket实(Shi)例(Li)的(De)close()方(Fang)法(Fa)关(Guan)闭(Bi)socket连(Lian)接(Jie)。(?)
客(Ke)户(Hu)端(Duan)((?)client)(?):(?)
1.构(Gou)建(Jian)Socket实(Shi)例(Li),(?)通(Tong)过(Guo)指(Zhi)定(Ding)的(De)远(Yuan)程(Cheng)服(Fu)务(Wu)器(Qi)地(Di)址(Zhi)和(He)端(Duan)口(Kou)来(Lai)建(Jian)立(Li)连(Lian)接(Jie)。(?)
2.通(Tong)过(Guo)Socket实(Shi)例(Li)包(Bao)含(Han)的(De)InputStream和(He)OutputStream来(Lai)进(Jin)行(Xing)数(Shu)据(Ju)的(De)读(Du)写(Xie)。(?)
3.操(Cao)作(Zuo)结(Jie)束(Shu)后(Hou)调(Diao)用(Yong)socket实(Shi)例(Li)的(De)close方(Fang)法(Fa),(?)关(Guan)闭(Bi)。(?)

UDP
服(Fu)务(Wu)器(Qi)端(Duan)((?)server)(?):(?)
1. 构(Gou)造(Zao)DatagramSocket实(Shi)例(Li),(?)指(Zhi)定(Ding)本(Ben)地(Di)端(Duan)口(Kou)。(?)
2. 通(Tong)过(Guo)DatagramSocket实(Shi)例(Li)的(De)receive方(Fang)法(Fa)接(Jie)收(Shou)DatagramPacket.DatagramPacket中(Zhong)间(Jian)就(Jiu)包(Bao)含(Han)了(Liao)通(Tong)信(Xin)的(De)内(Nei)容(Rong)。(?)
3. 通(Tong)过(Guo)DatagramSocket的(De)send和(He)receive方(Fang)法(Fa)来(Lai)收(Shou)和(He)发(Fa)DatagramPacket.
客(Ke)户(Hu)端(Duan)((?)client)(?):(?)
1. 构(Gou)造(Zao)DatagramSocket实(Shi)例(Li)。(?)
2. 通(Tong)过(Guo)DatagramSocket实(Shi)例(Li)的(De)send和(He)receive方(Fang)法(Fa)发(Fa)送(Song)DatagramPacket报(Bao)文(Wen)。(?)
3. 结(Jie)束(Shu)后(Hou),(?)调(Diao)用(Yong)DatagramSocket的(De)close方(Fang)法(Fa)关(Guan)闭(Bi)。(?)
异(Yi)常(Chang)处(Chu)理(Li):(?)
A. | NullPointerException |
B. | ClassCastException |
C. | FileNotFoundException |
D. | IndexOutOfBoundsException |
答(Da)案(An):(?)C
分(Fen)析(Xi):(?)NullPointerException空(Kong)指(Zhi)针(Zhen)异(Yi)常(Chang)
ClassCastException类(Lei)型(Xing)转(Zhuan)换(Huan)异(Yi)常(Chang)
IndexOutOfBoundsException索(Suo)引(Yin)超(Chao)出(Chu)边(Bian)界(Jie)的(De)异(Yi)常(Chang)
以(Yi)上(Shang)这(Zhe)些(Xie)异(Yi)常(Chang)都(Du)是(Shi)程(Cheng)序(Xu)在(Zai)运(Yun)行(Xing)时(Shi)发(Fa)生(Sheng)的(De)异(Yi)常(Chang),(?)所(Suo)以(Yi)不(Bu)需(Xu)要(Yao)在(Zai)编(Bian)写(Xie)程(Cheng)序(Xu)时(Shi)声(Sheng)明(Ming)
|
答(Da):OutOf MemoryError这(Zhe)种(Zhong)错(Cuo)误(Wu)可(Ke)以(Yi)细(Xi)分(Fen)为(Wei)多(Duo)种(Zhong)不(Bu)同(Tong)的(De)错(Cuo)误(Wu),(?)每(Mei)种(Zhong)错(Cuo)误(Wu)都(Du)有(You)自(Zi)身(Shen)的(De)原(Yuan)因(Yin)和(He)解(Jie)决(Jue)办(Ban)法(Fa),(?)如(Ru)下(Xia)所(Suo)示(Shi):(?)
java.lang.OutOfMemoryError: Java heap space
错(Cuo)误(Wu)原(Yuan)因(Yin):(?)此(Ci)OOM是(Shi)由(You)于(Yu)JVM中(Zhong)heap的(De)最(Zui)大(Da)值(Zhi)不(Bu)满(Man)足(Zu)需(Xu)要(Yao)。(?)
解(Jie)决(Jue)方(Fang)法(Fa):(?)1) 调(Diao)高(Gao)heap的(De)最(Zui)大(Da)值(Zhi),(?)即(Ji)-Xmx的(De)值(Zhi)调(Diao)大(Da)。(?)2) 如(Ru)果(Guo)你(Ni)的(De)程(Cheng)序(Xu)存(Cun)在(Zai)内(Nei)存(Cun)泄(Xie)漏(Lou),(?)一(Yi)味(Wei)的(De)增(Zeng)加(Jia)heap空(Kong)间(Jian)也(Ye)只(Zhi)是(Shi)推(Tui)迟(Chi)该(Gai)错(Cuo)误(Wu)出(Chu)现(Xian)的(De)时(Shi)间(Jian)而(?)已(Yi),(?)所(Suo)以(Yi)要(Yao)检(Jian)查(Cha)程(Cheng)序(Xu)是(Shi)否(Fou)存(Cun)在(Zai)内(Nei)存(Cun)泄(Xie)漏(Lou)。(?)
java.lang.OutOfMemoryError: GC overhead limit exceeded
错(Cuo)误(Wu)原(Yuan)因(Yin):(?)此(Ci)OOM是(Shi)由(You)于(Yu)JVM在(Zai)GC时(Shi),(?)对(Dui)象(Xiang)过(Guo)多(Duo),(?)导(Dao)致(Zhi)内(Nei)存(Cun)溢(Yi)出(Chu),(?)建(Jian)议(Yi)调(Diao)整(Zheng)GC的(De)策(Ce)略(Lue),(?)在(Zai)一(Yi)定(Ding)比(Bi)例(Li)下(Xia)开(Kai)始(Shi)GC而(?)不(Bu)要(Yao)使(Shi)用(Yong)默(Mo)认(Ren)的(De)策(Ce)略(Lue),(?)或(Huo)者(Zhe)将(Jiang)新(Xin)代(Dai)和(He)老(Lao)代(Dai)设(She)置(Zhi)合(He)适(Shi)的(De)大(Da)小(Xiao),(?)需(Xu)要(Yao)进(Jin)行(Xing)微(Wei)调(Diao)存(Cun)活(Huo)率(Lu)。(?)
解(Jie)决(Jue)方(Fang)法(Fa):(?)改(Gai)变(Bian)GC策(Ce)略(Lue),(?)在(Zai)老(Lao)代(Dai)80%时(Shi)就(Jiu)是(Shi)开(Kai)始(Shi)GC,(?)并(Bing)且(Qie)将(Jiang)-XX:SurvivorRatio((?)-XX:SurvivorRatio=8)(?)和(He)-XX:NewRatio((?)-XX:NewRatio=4)(?)设(She)置(Zhi)的(De)更(Geng)合(He)理(Li)。(?)
java.lang.OutOfMemoryError: Java perm space
错(Cuo)误(Wu)原(Yuan)因(Yin):(?)此(Ci)OOM是(Shi)由(You)于(Yu)JVM中(Zhong)perm的(De)最(Zui)大(Da)值(Zhi)不(Bu)满(Man)足(Zu)需(Xu)要(Yao)。(?)
解(Jie)决(Jue)方(Fang)法(Fa):(?)调(Diao)高(Gao)heap的(De)最(Zui)大(Da)值(Zhi),(?)即(Ji)-XX:MaxPermSize的(De)值(Zhi)调(Diao)大(Da)。(?)
另(Ling)外(Wai),(?)注(Zhu)意(Yi)一(Yi)点(Dian),(?)Perm一(Yi)般(Ban)是(Shi)在(Zai)JVM启(Qi)动(Dong)时(Shi)加(Jia)载(Zai)类(Lei)进(Jin)来(Lai),(?)如(Ru)果(Guo)是(Shi)JVM运(Yun)行(Xing)较(Jiao)长(Chang)一(Yi)段(Duan)时(Shi)间(Jian)而(?)不(Bu)是(Shi)刚(Gang)启(Qi)动(Dong)后(Hou)溢(Yi)出(Chu)的(De)话(Hua),(?)很(Hen)有(You)可(Ke)能(Neng)是(Shi)由(You)于(Yu)运(Yun)行(Xing)时(Shi)有(You)类(Lei)被(Bei)动(Dong)态(Tai)加(Jia)载(Zai)进(Jin)来(Lai),(?)此(Ci)时(Shi)建(Jian)议(Yi)用(Yong)CMS策(Ce)略(Lue)中(Zhong)的(De)类(Lei)卸(Xie)载(Zai)配(Pei)置(Zhi)。(?)如(Ru):(?)-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled。(?)
java.lang.OutOfMemoryError: unable to create new native thread
错(Cuo)误(Wu)原(Yuan)因(Yin):(?)当(Dang)JVM向(Xiang)OS请(Qing)求(Qiu)创(Chuang)建(Jian)一(Yi)个(Ge)新(Xin)线(Xian)程(Cheng)时(Shi),(?)而(?)OS却(Que)由(You)于(Yu)内(Nei)存(Cun)不(Bu)足(Zu)无(Wu)法(Fa)创(Chuang)建(Jian)新(Xin)的(De)native线(Xian)程(Cheng)。(?)
解(Jie)决(Jue)方(Fang)法(Fa):(?)如(Ru)果(Guo)JVM内(Nei)存(Cun)调(Diao)的(De)过(Guo)大(Da)或(Huo)者(Zhe)可(Ke)利(Li)用(Yong)率(Lu)小(Xiao)于(Yu)20%,(?)可(Ke)以(Yi)建(Jian)议(Yi)将(Jiang)heap及(Ji)perm的(De)最(Zui)大(Da)值(Zhi)下(Xia)调(Diao),(?)并(Bing)将(Jiang)线(Xian)程(Cheng)栈(Zhan)调(Diao)小(Xiao),(?)即(Ji)-Xss调(Diao)小(Xiao),(?)如(Ru):(?)-Xss128k。(?)
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
错(Cuo)误(Wu)原(Yuan)因(Yin):(?)此(Ci)类(Lei)信(Xin)息(Xi)表(Biao)明(Ming)应(Ying)用(Yong)程(Cheng)序(Xu)((?)或(Huo)者(Zhe)被(Bei)应(Ying)用(Yong)程(Cheng)序(Xu)调(Diao)用(Yong)的(De)APIs)(?)试(Shi)图(Tu)分(Fen)配(Pei)一(Yi)个(Ge)大(Da)于(Yu)堆(Dui)大(Da)小(Xiao)的(De)数(Shu)组(Zu)。(?)例(Li)如(Ru),(?)如(Ru)果(Guo)应(Ying)用(Yong)程(Cheng)序(Xu)new一(Yi)个(Ge)数(Shu)组(Zu)对(Dui)象(Xiang),(?)大(Da)小(Xiao)为(Wei)512M,(?)但(Dan)是(Shi)最(Zui)大(Da)堆(Dui)大(Da)小(Xiao)为(Wei)256M,(?)因(Yin)此(Ci)OutOfMemoryError会(Hui)抛(Pao)出(Chu),(?)因(Yin)为(Wei)数(Shu)组(Zu)的(De)大(Da)小(Xiao)超(Chao)过(Guo)虚(Xu)拟(Ni)机(Ji)的(De)限(Xian)制(Zhi)。(?)
解(Jie)决(Jue)方(Fang)法(Fa):(?)1) 首(Shou)先(Xian)检(Jian)查(Cha)heap的(De)-Xmx是(Shi)不(Bu)是(Shi)设(She)置(Zhi)的(De)过(Guo)小(Xiao)。(?)2) 如(Ru)果(Guo)heap的(De)-Xmx已(Yi)经(Jing)足(Zu)够(Gou)大(Da),(?)那(Na)么(Me)请(Qing)检(Jian)查(Cha)应(Ying)用(Yong)程(Cheng)序(Xu)是(Shi)不(Bu)是(Shi)存(Cun)在(Zai)bug,(?)例(Li)如(Ru):(?)应(Ying)用(Yong)程(Cheng)序(Xu)可(Ke)能(Neng)在(Zai)计(Ji)算(Suan)数(Shu)组(Zu)的(De)大(Da)小(Xiao)时(Shi),(?)存(Cun)在(Zai)算(Suan)法(Fa)错(Cuo)误(Wu),(?)导(Dao)致(Zhi)数(Shu)组(Zu)的(De)size很(Hen)大(Da),(?)从(Cong)而(?)导(Dao)致(Zhi)巨(Ju)大(Da)的(De)数(Shu)组(Zu)被(Bei)分(Fen)配(Pei)。(?)
java.lang.OutOfMemoryError: request < size> bytes for < reason>. Out of swap space
错(Cuo)误(Wu)原(Yuan)因(Yin):(?)抛(Pao)出(Chu)这(Zhe)类(Lei)错(Cuo)误(Wu),(?)是(Shi)由(You)于(Yu)从(Cong)native堆(Dui)中(Zhong)分(Fen)配(Pei)内(Nei)存(Cun)失(Shi)败(Bai),(?)并(Bing)且(Qie)堆(Dui)内(Nei)存(Cun)可(Ke)能(Neng)接(Jie)近(Jin)耗(Hao)尽(Jin)。(?)这(Zhe)类(Lei)错(Cuo)误(Wu)可(Ke)能(Neng)跟(Gen)应(Ying)用(Yong)程(Cheng)序(Xu)没(Mei)有(You)关(Guan)系(Xi),(?)例(Li)如(Ru)下(Xia)面(Mian)两(Liang)种(Zhong)原(Yuan)因(Yin)也(Ye)会(Hui)导(Dao)致(Zhi)错(Cuo)误(Wu)的(De)发(Fa)生(Sheng):(?)1) 操(Cao)作(Zuo)系(Xi)统(Tong)配(Pei)置(Zhi)了(Liao)较(Jiao)小(Xiao)的(De)交(Jiao)换(Huan)区(Qu)。(?)2)系(Xi)统(Tong)的(De)另(Ling)外(Wai)一(Yi)个(Ge)进(Jin)程(Cheng)正(Zheng)在(Zai)消(Xiao)耗(Hao)所(Suo)有(You)的(De)内(Nei)存(Cun)。(?)
解(Jie)决(Jue)办(Ban)法(Fa):(?)1) 检(Jian)查(Cha)os的(De)swap是(Shi)不(Bu)是(Shi)没(Mei)有(You)设(She)置(Zhi)或(Huo)者(Zhe)设(She)置(Zhi)的(De)过(Guo)小(Xiao)。(?)2) 检(Jian)查(Cha)是(Shi)否(Fou)有(You)其(Qi)他(Ta)进(Jin)程(Cheng)在(Zai)消(Xiao)耗(Hao)大(Da)量(Liang)的(De)内(Nei)存(Cun),(?)从(Cong)而(?)导(Dao)致(Zhi)当(Dang)前(Qian)的(De)JVM内(Nei)存(Cun)不(Bu)够(Gou)分(Fen)配(Pei)。(?)
注(Zhu)意(Yi):(?)虽(Sui)然(Ran)有(You)时(Shi)< reason>部(Bu)分(Fen)显(Xian)示(Shi)导(Dao)致(Zhi)OOM的(De)原(Yuan)因(Yin),(?)但(Dan)大(Da)多(Duo)数(Shu)情(Qing)况(Kuang)下(Xia),(?)< reason>显(Xian)示(Shi)的(De)是(Shi)提(Ti)示(Shi)分(Fen)配(Pei)失(Shi)败(Bai)的(De)源(Yuan)模(Mo)块(Kuai)的(De)名(Ming)称(Cheng),(?)所(Suo)以(Yi)有(You)必(Bi)要(Yao)查(Cha)看(Kan)日(Ri)志(Zhi)文(Wen)件(Jian),(?)如(Ru)crash时(Shi)的(De)hs文(Wen)件(Jian)。(?)
答(Da):ClassCastException(类(Lei)转(Zhuan)换(Huan)异(Yi)常(Chang))
比(Bi)如(Ru) Object obj=new Object(); String s=(String)obj;
IndexOutOfBoundsException(下(Xia)标(Biao)越(Yue)界(Jie)异(Yi)常(Chang))
NullPointerException(空(Kong)指(Zhi)针(Zhen)异(Yi)常(Chang))
ArrayStoreException(数(Shu)据(Ju)存(Cun)储(Chu)异(Yi)常(Chang),(?)操(Cao)作(Zuo)数(Shu)组(Zu)时(Shi)类(Lei)型(Xing)不(Bu)一(Yi)致(Zhi))
BufferOverflowException(IO操(Cao)作(Zuo)时(Shi)出(Chu)现(Xian)的(De)缓(Huan)冲(Chong)区(Qu)上(Shang)溢(Yi)异(Yi)常(Chang))
InputMismatchException(输(Shu)入(Ru)类(Lei)型(Xing)不(Bu)匹(Pi)配(Pei)异(Yi)常(Chang))
ArithmeticException(算(Suan)术(Shu)异(Yi)常(Chang))
注(Zhu)意(Yi):(?)运(Yun)行(Xing)时(Shi)异(Yi)常(Chang)都(Du)是(Shi)RuntimeException子(Zi)类(Lei)异(Yi)常(Chang)。(?)
A. | 继(Ji)承(Cheng)自(Zi) Throwable |
B. | 不(Bu)支(Zhi)持(Chi)Serializable |
C. | 继(Ji)承(Cheng)自(Zi) AbstractSet |
D. | 继(Ji)承(Cheng)自(Zi)FitelnputStream |
答(Da)案(An):(?)A
分(Fen)析(Xi):(?)Throwable是(Shi)Exception和(He)Error的(De)父(Fu)类(Lei),(?)Exception虽(Sui)然(Ran)没(Mei)有(You)实(Shi)现(Xian)Serializable接(Jie)口(Kou),(?)但(Dan)是(Shi)其(Qi)父(Fu)类(Lei)Throwable已(Yi)经(Jing)实(Shi)现(Xian)了(Liao)该(Gai)接(Jie)口(Kou),(?)因(Yin)此(Ci)Exception也(Ye)支(Zhi)持(Chi)Serializable。(?)
|
答(Da):(?)问(Wen)题(Ti)的(De)根(Gen)本(Ben)原(Yuan)因(Yin)是(Shi)工(Gong)程(Cheng)中(Zhong)某(Mou)个(Ge)jar包(Bao)的(De)版(Ban)本(Ben)((?)jar包(Bao)编(Bian)译(Yi)时(Shi)的(De)所(Suo)用(Yong)的(De)jdk版(Ban)本(Ben))(?)高(Gao)于(Yu)工(Gong)程(Cheng)build path中(Zhong)jdk的(De)版(Ban)本(Ben),(?)这(Zhe)个(Ge)是(Shi)不(Bu)兼(Jian)容(Rong)的(De)! 编(Bian)程(Cheng)中(Zhong)遇(Yu)到(Dao)此(Ci)异(Yi)常(Chang)Unsupported major.minor version 52.0((?)根(Gen)据(Ju)版(Ban)本(Ben)号(Hao),(?)这(Zhe)里(Li)可(Ke)以(Yi)为(Wei)其(Qi)他(Ta)数(Shu)值(Zhi),(?)52是(Shi)1.8jdk jar包(Bao)与(Yu) 1.8以(Yi)下(Xia)低(Di)版(Ban)本(Ben)jdk不(Bu)匹(Pi)配(Pei))(?),(?)在(Zai)将(Jiang)build path中(Zhong)jdk的(De)版(Ban)本(Ben)调(Diao)整(Zheng)与(Yu)jar包(Bao)匹(Pi)配(Pei)后(Hou),(?)解(Jie)决(Jue)异(Yi)常(Chang)。(?)
答(Da):(?)会(Hui)执(Zhi)行(Xing),(?)在(Zai)方(Fang)法(Fa)返(Fan)回(Hui)调(Diao)用(Yong)者(Zhe)前(Qian)执(Zhi)行(Xing)。(?)Java允(Yun)许(Xu)在(Zai)finally中(Zhong)改(Gai)变(Bian)返(Fan)回(Hui)值(Zhi)的(De)做(Zuo)法(Fa)是(Shi)不(Bu)好(Hao)的(De),(?)因(Yin)为(Wei)如(Ru)果(Guo)存(Cun)在(Zai)finally代(Dai)码(Ma)块(Kuai),(?)try中(Zhong)的(De)return语(Yu)句(Ju)不(Bu)会(Hui)立(Li)马(Ma)返(Fan)回(Hui)调(Diao)用(Yong)者(Zhe),(?)而(?)是(Shi)记(Ji)录(Lu)下(Xia)返(Fan)回(Hui)值(Zhi)待(Dai)finally代(Dai)码(Ma)块(Kuai)执(Zhi)行(Xing)完(Wan)毕(Bi)之(Zhi)后(Hou)再(Zai)向(Xiang)调(Diao)用(Yong)者(Zhe)返(Fan)回(Hui)其(Qi)值(Zhi),(?)然(Ran)后(Hou)如(Ru)果(Guo)在(Zai)finally中(Zhong)修(Xiu)改(Gai)了(Liao)返(Fan)回(Hui)值(Zhi),(?)这(Zhe)会(Hui)对(Dui)程(Cheng)序(Xu)造(Zao)成(Cheng)很(Hen)大(Da)的(De)困(Kun)扰(Rao),(?)C#中(Zhong)就(Jiu)从(Cong)语(Yu)法(Fa)上(Shang)规(Gui)定(Ding)不(Bu)能(Neng)做(Zuo)这(Zhe)样(Yang)的(De)事(Shi)。(?)
(也(Ye)许(Xu)你(Ni)的(De)答(Da)案(An)是(Shi)在(Zai)return之(Zhi)前(Qian),(?)但(Dan)往(Wang)更(Geng)细(Xi)地(Di)说(Shuo),(?)我(Wo)的(De)答(Da)案(An)是(Shi)在(Zai)return中(Zhong)间(Jian)执(Zhi)行(Xing),(?)请(Qing)看(Kan)下(Xia)面(Mian)程(Cheng)序(Xu)代(Dai)码(Ma)的(De)运(Yun)行(Xing)结(Jie)果(Guo):(?)
public classTest { /** * @paramargs add by zxx ,Dec 9, 2008 */ public static voidmain(String[] args) { // TODO Auto-generated method stub System.out.println(newTest().test());; } static int test() { int x = 1; try { returnx; } finally { ++x; } } }
执(Zhi)行(Xing)结(Jie)果(Guo)
运(Yun)行(Xing)结(Jie)果(Guo)是(Shi)1,(?)为(Wei)什(Shi)么(Me)呢(Ne)?(?)主(Zhu)函(Han)数(Shu)调(Diao)用(Yong)子(Zi)函(Han)数(Shu)并(Bing)得(De)到(Dao)结(Jie)果(Guo)的(De)过(Guo)程(Cheng),(?)好(Hao)比(Bi)主(Zhu)函(Han)数(Shu)准(Zhun)备(Bei)一(Yi)个(Ge)空(Kong)罐(Guan)子(Zi),(?)当(Dang)子(Zi)函(Han)数(Shu)要(Yao)返(Fan)回(Hui)结(Jie)果(Guo)时(Shi),(?)先(Xian)把(Ba)结(Jie)果(Guo)放(Fang)在(Zai)罐(Guan)子(Zi)里(Li),(?)然(Ran)后(Hou)再(Zai)将(Jiang)程(Cheng)序(Xu)逻(Luo)辑(Ji)返(Fan)回(Hui)到(Dao)主(Zhu)函(Han)数(Shu)。(?)所(Suo)谓(Wei)返(Fan)回(Hui),(?)就(Jiu)是(Shi)子(Zi)函(Han)数(Shu)说(Shuo),(?)我(Wo)不(Bu)运(Yun)行(Xing)了(Liao),(?)你(Ni)主(Zhu)函(Han)数(Shu)继(Ji)续(Xu)运(Yun)行(Xing)吧(Ba),(?)这(Zhe)没(Mei)什(Shi)么(Me)结(Jie)果(Guo)可(Ke)言(Yan),(?)结(Jie)果(Guo)是(Shi)在(Zai)说(Shuo)这(Zhe)话(Hua)之(Zhi)前(Qian)放(Fang)进(Jin)罐(Guan)子(Zi)里(Li)的(De)。(?)
答(Da):(?)Java 通(Tong)过(Guo)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)方(Fang)法(Fa)进(Jin)行(Xing)异(Yi)常(Chang)处(Chu)理(Li),(?)把(Ba)各(Ge)种(Zhong)不(Bu)同(Tong)的(De)异(Yi)常(Chang)进(Jin)行(Xing)分(Fen)类(Lei),(?)并(Bing)提(Ti)供(Gong)了(Liao)良(Liang)好(Hao)的(De)接(Jie)口(Kou)。(?)在(Zai)Java 中(Zhong),(?)每(Mei)个(Ge)异(Yi)常(Chang)都(Du)是(Shi)一(Yi)个(Ge)对(Dui)象(Xiang),(?)它(Ta)是(Shi)Throwable 类(Lei)或(Huo)其(Qi)子(Zi)类(Lei)的(De)实(Shi)例(Li)。(?)当(Dang)一(Yi)个(Ge)方(Fang)法(Fa)出(Chu)现(Xian)异(Yi)常(Chang)后(Hou)便(Bian)抛(Pao)出(Chu)一(Yi)个(Ge)异(Yi)常(Chang)对(Dui)象(Xiang),(?)该(Gai)对(Dui)象(Xiang)中(Zhong)包(Bao)含(Han)有(You)异(Yi)常(Chang)信(Xin)息(Xi),(?)调(Diao)用(Yong)这(Zhe)个(Ge)对(Dui)象(Xiang)的(De)方(Fang)法(Fa)可(Ke)以(Yi)捕(Bu)获(Huo)到(Dao)这(Zhe)个(Ge)异(Yi)常(Chang)并(Bing)进(Jin)行(Xing)处(Chu)理(Li)。(?)Java 的(De)异(Yi)常(Chang)处(Chu)理(Li)是(Shi)通(Tong)过(Guo)5 个(Ge)关(Guan)键(Jian)词(Ci)来(Lai)实(Shi)现(Xian)的(De):(?)try、(?)catch、(?)throw、(?)throws和(He)finally。(?)一(Yi)般(Ban)情(Qing)况(Kuang)下(Xia)是(Shi)用(Yong)try来(Lai)执(Zhi)行(Xing)一(Yi)段(Duan)程(Cheng)序(Xu),(?)如(Ru)果(Guo)出(Chu)现(Xian)异(Yi)常(Chang),(?)系(Xi)统(Tong)会(Hui)抛(Pao)出(Chu)((?)throw)(?)一(Yi)个(Ge)异(Yi)常(Chang),(?)这(Zhe)时(Shi)候(Hou)你(Ni)可(Ke)以(Yi)通(Tong)过(Guo)它(Ta)的(De)类(Lei)型(Xing)来(Lai)捕(Bu)捉(Zhuo)((?)catch)(?)它(Ta),(?)或(Huo)最(Zui)后(Hou)((?)finally)(?)由(You)缺(Que)省(Sheng)处(Chu)理(Li)器(Qi)来(Lai)处(Chu)理(Li);(?)try用(Yong)来(Lai)指(Zhi)定(Ding)一(Yi)块(Kuai)预(Yu)防(Fang)所(Suo)有(You)“(?)异(Yi)常(Chang)”(?)的(De)程(Cheng)序(Xu);(?)catch 子(Zi)句(Ju)紧(Jin)跟(Gen)在(Zai)try块(Kuai)后(Hou)面(Mian),(?)用(Yong)来(Lai)指(Zhi)定(Ding)你(Ni)想(Xiang)要(Yao)捕(Bu)捉(Zhuo)的(De)“(?)异(Yi)常(Chang)”(?)的(De)类(Lei)型(Xing);(?)throw 语(Yu)句(Ju)用(Yong)来(Lai)明(Ming)确(Que)地(Di)抛(Pao)出(Chu)一(Yi)个(Ge)“(?)异(Yi)常(Chang)”(?);(?)throws用(Yong)来(Lai)标(Biao)明(Ming)一(Yi)个(Ge)成(Cheng)员(Yuan)函(Han)数(Shu)可(Ke)能(Neng)抛(Pao)出(Chu)的(De)各(Ge)种(Zhong)“(?)异(Yi)常(Chang)”(?);(?)finally 为(Wei)确(Que)保(Bao)一(Yi)段(Duan)代(Dai)码(Ma)不(Bu)管(Guan)发(Fa)生(Sheng)什(Shi)么(Me)“(?)异(Yi)常(Chang)”(?)都(Du)被(Bei)执(Zhi)行(Xing)一(Yi)段(Duan)代(Dai)码(Ma);(?)可(Ke)以(Yi)在(Zai)一(Yi)个(Ge)成(Cheng)员(Yuan)函(Han)数(Shu)调(Diao)用(Yong)的(De)外(Wai)面(Mian)写(Xie)一(Yi)个(Ge)try语(Yu)句(Ju),(?)在(Zai)这(Zhe)个(Ge)成(Cheng)员(Yuan)函(Han)数(Shu)内(Nei)部(Bu)写(Xie)另(Ling)一(Yi)个(Ge)try语(Yu)句(Ju)保(Bao)护(Hu)其(Qi)他(Ta)代(Dai)码(Ma)。(?)每(Mei)当(Dang)遇(Yu)到(Dao)一(Yi)个(Ge)try 语(Yu)句(Ju),(?)“(?)异(Yi)常(Chang)”(?)的(De)框(Kuang)架(Jia)就(Jiu)放(Fang)到(Dao)栈(Zhan)上(Shang)面(Mian),(?)直(Zhi)到(Dao)所(Suo)有(You)的(De)try语(Yu)句(Ju)都(Du)完(Wan)成(Cheng)。(?)如(Ru)果(Guo)下(Xia)一(Yi)级(Ji)的(De)try语(Yu)句(Ju)没(Mei)有(You)对(Dui)某(Mou)种(Zhong)“(?)异(Yi)常(Chang)”(?)进(Jin)行(Xing)处(Chu)理(Li),(?)栈(Zhan)就(Jiu)会(Hui)展(Zhan)开(Kai),(?)直(Zhi)到(Dao)遇(Yu)到(Dao)有(You)处(Chu)理(Li)这(Zhe)种(Zhong)“(?)异(Yi)常(Chang)”(?)的(De)try 语(Yu)句(Ju)。(?)
答(Da):(?)异(Yi)常(Chang)表(Biao)示(Shi)程(Cheng)序(Xu)运(Yun)行(Xing)过(Guo)程(Cheng)中(Zhong)可(Ke)能(Neng)出(Chu)现(Xian)的(De)非(Fei)正(Zheng)常(Chang)状(Zhuang)态(Tai),(?)运(Yun)行(Xing)时(Shi)异(Yi)常(Chang)表(Biao)示(Shi)虚(Xu)拟(Ni)机(Ji)的(De)通(Tong)常(Chang)操(Cao)作(Zuo)中(Zhong)可(Ke)能(Neng)遇(Yu)到(Dao)的(De)异(Yi)常(Chang),(?)是(Shi)一(Yi)种(Zhong)常(Chang)见(Jian)运(Yun)行(Xing)错(Cuo)误(Wu),(?)只(Zhi)要(Yao)程(Cheng)序(Xu)设(She)计(Ji)得(De)没(Mei)有(You)问(Wen)题(Ti)通(Tong)常(Chang)就(Jiu)不(Bu)会(Hui)发(Fa)生(Sheng)。(?)受(Shou)检(Jian)异(Yi)常(Chang)跟(Gen)程(Cheng)序(Xu)运(Yun)行(Xing)的(De)上(Shang)下(Xia)文(Wen)环(Huan)境(Jing)有(You)关(Guan),(?)即(Ji)使(Shi)程(Cheng)序(Xu)设(She)计(Ji)无(Wu)误(Wu),(?)仍(Reng)然(Ran)可(Ke)能(Neng)因(Yin)使(Shi)用(Yong)的(De)问(Wen)题(Ti)而(?)引(Yin)发(Fa)。(?)Java编(Bian)译(Yi)器(Qi)要(Yao)求(Qiu)方(Fang)法(Fa)必(Bi)须(Xu)声(Sheng)明(Ming)抛(Pao)出(Chu)可(Ke)能(Neng)发(Fa)生(Sheng)的(De)受(Shou)检(Jian)异(Yi)常(Chang),(?)但(Dan)是(Shi)并(Bing)不(Bu)要(Yao)求(Qiu)必(Bi)须(Xu)声(Sheng)明(Ming)抛(Pao)出(Chu)未(Wei)被(Bei)捕(Bu)获(Huo)的(De)运(Yun)行(Xing)时(Shi)异(Yi)常(Chang)。(?)异(Yi)常(Chang)和(He)继(Ji)承(Cheng)一(Yi)样(Yang),(?)是(Shi)面(Mian)向(Xiang)对(Dui)象(Xiang)程(Cheng)序(Xu)设(She)计(Ji)中(Zhong)经(Jing)常(Chang)被(Bei)滥(Lan)用(Yong)的(De)东(Dong)西(Xi),(?)神(Shen)作(Zuo)《(?)Effective Java》(?)中(Zhong)对(Dui)异(Yi)常(Chang)的(De)使(Shi)用(Yong)给(Gei)出(Chu)了(Liao)以(Yi)下(Xia)指(Zhi)导(Dao)原(Yuan)则(Ze):(?)
不(Bu)要(Yao)将(Jiang)异(Yi)常(Chang)处(Chu)理(Li)用(Yong)于(Yu)正(Zheng)常(Chang)的(De)控(Kong)制(Zhi)流(Liu)((?)设(She)计(Ji)良(Liang)好(Hao)的(De)API不(Bu)应(Ying)该(Gai)强(Qiang)迫(Po)它(Ta)的(De)调(Diao)用(Yong)者(Zhe)为(Wei)了(Liao)正(Zheng)常(Chang)的(De)控(Kong)制(Zhi)流(Liu)而(?)使(Shi)用(Yong)异(Yi)常(Chang))(?)
对(Dui)可(Ke)以(Yi)恢(Hui)复(Fu)的(De)情(Qing)况(Kuang)使(Shi)用(Yong)受(Shou)检(Jian)异(Yi)常(Chang),(?)对(Dui)编(Bian)程(Cheng)错(Cuo)误(Wu)使(Shi)用(Yong)运(Yun)行(Xing)时(Shi)异(Yi)常(Chang)
避(Bi)免(Mian)不(Bu)必(Bi)要(Yao)的(De)使(Shi)用(Yong)受(Shou)检(Jian)异(Yi)常(Chang)((?)可(Ke)以(Yi)通(Tong)过(Guo)一(Yi)些(Xie)状(Zhuang)态(Tai)检(Jian)测(Ce)手(Shou)段(Duan)来(Lai)避(Bi)免(Mian)异(Yi)常(Chang)发(Fa)生(Sheng))(?)
优(You)先(Xian)使(Shi)用(Yong)标(Biao)准(Zhun)的(De)异(Yi)常(Chang)
每(Mei)个(Ge)方(Fang)法(Fa)抛(Pao)出(Chu)的(De)异(Yi)常(Chang)都(Du)要(Yao)有(You)文(Wen)档(Dang)
保(Bao)持(Chi)异(Yi)常(Chang)的(De)原(Yuan)子(Zi)性(Xing)
不(Bu)要(Yao)在(Zai)catch中(Zhong)忽(Hu)略(Lue)掉(Diao)捕(Bu)获(Huo)到(Dao)的(De)异(Yi)常(Chang)
(异(Yi)常(Chang)表(Biao)示(Shi)程(Cheng)序(Xu)运(Yun)行(Xing)过(Guo)程(Cheng)中(Zhong)可(Ke)能(Neng)出(Chu)现(Xian)的(De)非(Fei)正(Zheng)常(Chang)状(Zhuang)态(Tai),(?)运(Yun)行(Xing)时(Shi)异(Yi)常(Chang)表(Biao)示(Shi)虚(Xu)拟(Ni)机(Ji)的(De)通(Tong)常(Chang)操(Cao)作(Zuo)中(Zhong)可(Ke)能(Neng)遇(Yu)到(Dao)的(De)异(Yi)常(Chang),(?)是(Shi)一(Yi)种(Zhong)常(Chang)见(Jian)运(Yun)行(Xing)错(Cuo)误(Wu)。(?)java编(Bian)译(Yi)器(Qi)要(Yao)求(Qiu)方(Fang)法(Fa)必(Bi)须(Xu)声(Sheng)明(Ming)抛(Pao)出(Chu)可(Ke)能(Neng)发(Fa)生(Sheng)的(De)非(Fei)运(Yun)行(Xing)时(Shi)异(Yi)常(Chang),(?)但(Dan)是(Shi)并(Bing)不(Bu)要(Yao)求(Qiu)必(Bi)须(Xu)声(Sheng)明(Ming)抛(Pao)出(Chu)未(Wei)被(Bei)捕(Bu)获(Huo)的(De)运(Yun)行(Xing)时(Shi)异(Yi)常(Chang)。(?))
有(You)如(Ru)下(Xia)代(Dai)码(Ma)片(Pian)断(Duan):(?)
try{ throw new ExampleB("b") }catch((?)ExampleA e)(?){ System.out.println("ExampleA"); }catch((?)Exception e)(?){ System.out.println("Exception"); } }
请(Qing)问(Wen)执(Zhi)行(Xing)此(Ci)段(Duan)代(Dai)码(Ma)的(De)输(Shu)出(Chu)是(Shi)什(Shi)么(Me)?(?)
答(Da):(?)输(Shu)出(Chu):(?)ExampleA。(?)((?)根(Gen)据(Ju)里(Li)氏(Shi)代(Dai)换(Huan)原(Yuan)则(Ze)[能(Neng)使(Shi)用(Yong)父(Fu)类(Lei)型(Xing)的(De)地(Di)方(Fang)一(Yi)定(Ding)能(Neng)使(Shi)用(Yong)子(Zi)类(Lei)型(Xing)],(?)抓(Zhua)取(Qu)ExampleA类(Lei)型(Xing)异(Yi)常(Chang)的(De)catch块(Kuai)能(Neng)够(Gou)抓(Zhua)住(Zhu)try块(Kuai)中(Zhong)抛(Pao)出(Chu)的(De)ExampleB类(Lei)型(Xing)的(De)异(Yi)常(Chang))(?)
补(Bu)充(Chong):(?) 比(Bi)此(Ci)题(Ti)略(Lue)复(Fu)杂(Za)的(De)一(Yi)道(Dao)面(Mian)试(Shi)题(Ti)如(Ru)下(Xia)所(Suo)示(Shi)((?)此(Ci)题(Ti)的(De)出(Chu)处(Chu)是(Shi)《(?)Java编(Bian)程(Cheng)思(Si)想(Xiang)》(?))(?),(?)说(Shuo)出(Chu)你(Ni)的(De)答(Da)案(An)吧(Ba)!(?)
package com.bjsxt; class Annoyance extends Exception {} class Sneeze extends Annoyance {} class Human { public static void main(String[] args) throws Exception { try { try { throw new Sneeze(); } catch ( Annoyance a ) { System.out.println("Caught Annoyance"); throw a; } } catch ( Sneeze s ) { System.out.println("Caught Sneeze"); return ; } finally { System.out.println("Hello World!"); } } }
输(Shu)出(Chu)为(Wei):(?)
Caught Annoyance
Caught Sneeze
Hello World!

Error类(Lei),(?)表(Biao)示(Shi)仅(Jin)靠(Kao)程(Cheng)序(Xu)本(Ben)身(Shen)无(Wu)法(Fa)恢(Hui)复(Fu)的(De)严(Yan)重(Zhong)错(Cuo)误(Wu),(?)比(Bi)如(Ru)说(Shuo)内(Nei)存(Cun)溢(Yi)出(Chu)、(?)动(Dong)态(Tai)链(Lian)接(Jie)异(Yi)常(Chang)、(?)虚(Xu)拟(Ni)机(Ji)错(Cuo)误(Wu)。(?)应(Ying)用(Yong)程(Cheng)序(Xu)不(Bu)应(Ying)该(Gai)抛(Pao)出(Chu)这(Zhe)种(Zhong)类(Lei)型(Xing)的(De)对(Dui)象(Xiang)。(?)假(Jia)如(Ru)出(Chu)现(Xian)这(Zhe)种(Zhong)错(Cuo)误(Wu),(?)除(Chu)了(Liao)尽(Jin)力(Li)使(Shi)程(Cheng)序(Xu)安(An)全(Quan)退(Tui)出(Chu)外(Wai),(?)在(Zai)其(Qi)他(Ta)方(Fang)面(Mian)是(Shi)无(Wu)能(Neng)为(Wei)力(Li)的(De)。(?)所(Suo)以(Yi)在(Zai)进(Jin)行(Xing)程(Cheng)序(Xu)设(She)计(Ji)时(Shi),(?)应(Ying)该(Gai)更(Geng)关(Guan)注(Zhu)Exception类(Lei)。(?)
Exception类(Lei),(?)由(You)Java应(Ying)用(Yong)程(Cheng)序(Xu)抛(Pao)出(Chu)和(He)处(Chu)理(Li)的(De)非(Fei)严(Yan)重(Zhong)错(Cuo)误(Wu),(?)比(Bi)如(Ru)所(Suo)需(Xu)文(Wen)件(Jian)没(Mei)有(You)找(Zhao)到(Dao)、(?)零(Ling)作(Zuo)除(Chu)数(Shu),(?)数(Shu)组(Zu)下(Xia)标(Biao)越(Yue)界(Jie)等(Deng)。(?)它(Ta)的(De)各(Ge)种(Zhong)不(Bu)同(Tong)子(Zi)类(Lei)分(Fen)别(Bie)对(Dui)应(Ying)不(Bu)同(Tong)类(Lei)型(Xing)异(Yi)常(Chang)。(?)可(Ke)分(Fen)为(Wei)两(Liang)类(Lei):(?)Checked异(Yi)常(Chang)和(He)Runtime异(Yi)常(Chang)
try-catch-finally程(Cheng)序(Xu)块(Kuai)的(De)执(Zhi)行(Xing)流(Liu)程(Cheng)以(Yi)及(Ji)执(Zhi)行(Xing)结(Jie)果(Guo)比(Bi)较(Jiao)复(Fu)杂(Za)。(?)
基(Ji)本(Ben)执(Zhi)行(Xing)过(Guo)程(Cheng)如(Ru)下(Xia):(?)
1)(?)程(Cheng)序(Xu)首(Shou)先(Xian)执(Zhi)行(Xing)可(Ke)能(Neng)发(Fa)生(Sheng)异(Yi)常(Chang)的(De)try语(Yu)句(Ju)块(Kuai)。(?)
2)(?)如(Ru)果(Guo)try语(Yu)句(Ju)没(Mei)有(You)出(Chu)现(Xian)异(Yi)常(Chang)则(Ze)执(Zhi)行(Xing)完(Wan)后(Hou)跳(Tiao)至(Zhi)finally语(Yu)句(Ju)块(Kuai)执(Zhi)行(Xing);(?)
3)(?)如(Ru)果(Guo)try语(Yu)句(Ju)出(Chu)现(Xian)异(Yi)常(Chang),(?)则(Ze)中(Zhong)断(Duan)执(Zhi)行(Xing)并(Bing)根(Gen)据(Ju)发(Fa)生(Sheng)的(De)异(Yi)常(Chang)类(Lei)型(Xing)跳(Tiao)至(Zhi)相(Xiang)应(Ying)的(De)catch语(Yu)句(Ju)块(Kuai)执(Zhi)行(Xing)处(Chu)理(Li)。(?)
4)(?)catch语(Yu)句(Ju)块(Kuai)可(Ke)以(Yi)有(You)多(Duo)个(Ge),(?)分(Fen)别(Bie)捕(Bu)获(Huo)不(Bu)同(Tong)类(Lei)型(Xing)的(De)异(Yi)常(Chang)。(?)
5)(?)catch语(Yu)句(Ju)块(Kuai)执(Zhi)行(Xing)完(Wan)后(Hou)程(Cheng)序(Xu)会(Hui)继(Ji)续(Xu)执(Zhi)行(Xing)finally语(Yu)句(Ju)块(Kuai)。(?)
finally语(Yu)句(Ju)是(Shi)可(Ke)选(Xuan)的(De),(?)如(Ru)果(Guo)有(You)的(De)话(Hua),(?)则(Ze)不(Bu)管(Guan)是(Shi)否(Fou)发(Fa)生(Sheng)异(Yi)常(Chang),(?)finally语(Yu)句(Ju)都(Du)会(Hui)被(Bei)执(Zhi)行(Xing)。(?)需(Xu)要(Yao)注(Zhu)意(Yi)的(De)是(Shi)即(Ji)使(Shi)try和(He)catch块(Kuai)中(Zhong)存(Cun)在(Zai)return语(Yu)句(Ju),(?)finally语(Yu)句(Ju)也(Ye)会(Hui)执(Zhi)行(Xing),(?)是(Shi)在(Zai)执(Zhi)行(Xing)完(Wan)finally语(Yu)句(Ju)后(Hou)再(Zai)通(Tong)过(Guo)return退(Tui)出(Chu)。(?)
1)(?)作(Zuo)用(Yong)不(Bu)同(Tong):(?)
throw用(Yong)于(Yu)程(Cheng)序(Xu)员(Yuan)自(Zi)行(Xing)产(Chan)生(Sheng)并(Bing)抛(Pao)出(Chu)异(Yi)常(Chang);(?)
throws用(Yong)于(Yu)声(Sheng)明(Ming)在(Zai)该(Gai)方(Fang)法(Fa)内(Nei)抛(Pao)出(Chu)了(Liao)异(Yi)常(Chang)
2)(?) 使(Shi)用(Yong)的(De)位(Wei)置(Zhi)不(Bu)同(Tong):(?)
throw位(Wei)于(Yu)方(Fang)法(Fa)体(Ti)内(Nei)部(Bu),(?)可(Ke)以(Yi)作(Zuo)为(Wei)单(Dan)独(Du)语(Yu)句(Ju)使(Shi)用(Yong);(?)
throws必(Bi)须(Xu)跟(Gen)在(Zai)方(Fang)法(Fa)参(Can)数(Shu)列(Lie)表(Biao)的(De)后(Hou)面(Mian),(?)不(Bu)能(Neng)单(Dan)独(Du)使(Shi)用(Yong)。(?)
3)(?)内(Nei)容(Rong)不(Bu)同(Tong):(?)
throw抛(Pao)出(Chu)一(Yi)个(Ge)异(Yi)常(Chang)对(Dui)象(Xiang),(?)且(Qie)只(Zhi)能(Neng)是(Shi)一(Yi)个(Ge);(?)
throws后(Hou)面(Mian)跟(Gen)异(Yi)常(Chang)类(Lei),(?)而(?)且(Qie)可(Ke)以(Yi)有(You)多(Duo)个(Ge)。(?)
答(Da):.class文(Wen)件(Jian)放(Fang)在(Zai)WEB-INF/classes文(Wen)件(Jian)下(Xia),(?).jar文(Wen)件(Jian)放(Fang)在(Zai)WEB-INF/lib文(Wen)件(Jian)夹(Jia)下(Xia)
答(Da):document.getElementById(“(?)username”(?)).value;
区(Qu)别(Bie):(?)
JSP是(Shi)在(Zai)HTML代(Dai)码(Ma)里(Li)写(Xie)JAVA代(Dai)码(Ma),框(Kuang)架(Jia)是(Shi)HTML;而(?)Servlet是(Shi)在(Zai)JAVA代(Dai)码(Ma)中(Zhong)写(Xie)HTML代(Dai)码(Ma),(?)本(Ben)身(Shen)是(Shi)个(Ge)JAVA类(Lei)。(?)
JSP使(Shi)人(Ren)们(Men)把(Ba)显(Xian)示(Shi)和(He)逻(Luo)辑(Ji)分(Fen)隔(Ge)成(Cheng)为(Wei)可(Ke)能(Neng),(?)这(Zhe)意(Yi)味(Wei)着(Zhuo)两(Liang)者(Zhe)的(De)开(Kai)发(Fa)可(Ke)并(Bing)行(Xing)进(Jin)行(Xing);(?)而(?)Servlet并(Bing)没(Mei)有(You)把(Ba)两(Liang)者(Zhe)分(Fen)开(Kai)。(?)
Servlet独(Du)立(Li)地(Di)处(Chu)理(Li)静(Jing)态(Tai)表(Biao)示(Shi)逻(Luo)辑(Ji)与(Yu)动(Dong)态(Tai)业(Ye)务(Wu)逻(Luo)辑(Ji).这(Zhe)样(Yang),任(Ren)何(He)文(Wen)件(Jian)的(De)变(Bian)动(Dong)都(Du)需(Xu)要(Yao)对(Dui)此(Ci)服(Fu)务(Wu)程(Cheng)序(Xu)重(Zhong)新(Xin)编(Bian)译(Yi);JSP允(Yun)许(Xu)用(Yong)特(Te)殊(Shu)标(Biao)签(Qian)直(Zhi)接(Jie)嵌(Qian)入(Ru)到(Dao)HTML页(Ye)面(Mian), HTML内(Nei)容(Rong)与(Yu)JAVA内(Nei)容(Rong)也(Ye)可(Ke)放(Fang)在(Zai)单(Dan)独(Du)文(Wen)件(Jian)中(Zhong),HTML内(Nei)容(Rong)的(De)任(Ren)何(He)变(Bian)动(Dong)会(Hui)自(Zi)动(Dong)编(Bian)译(Yi)装(Zhuang)入(Ru)到(Dao)服(Fu)务(Wu)程(Cheng)序(Xu).
Servlet需(Xu)要(Yao)在(Zai)web.xml中(Zhong)配(Pei)置(Zhi),(?)而(?)JSP无(Wu)需(Xu)配(Pei)置(Zhi)。(?)
目(Mu)前(Qian)JSP主(Zhu)要(Yao)用(Yong)在(Zai)视(Shi)图(Tu)层(Ceng),(?)负(Fu)责(Ze)显(Xian)示(Shi),(?)而(?)Servlet主(Zhu)要(Yao)用(Yong)在(Zai)控(Kong)制(Zhi)层(Ceng),(?)负(Fu)责(Ze)调(Diao)度(Du)
联(Lian)系(Xi):(?)
都(Du)是(Shi)Sun公(Gong)司(Si)推(Tui)出(Chu)的(De)动(Dong)态(Tai)网(Wang)页(Ye)技(Ji)术(Shu)。(?)
先(Xian)有(You)Servlet,(?)针(Zhen)对(Dui)Servlet缺(Que)点(Dian)推(Tui)出(Chu)JSP。(?)JSP是(Shi)Servlet的(De)一(Yi)种(Zhong)特(Te)殊(Shu)形(Xing)式(Shi),(?)每(Mei)个(Ge)JSP页(Ye)面(Mian)就(Jiu)是(Shi)一(Yi)个(Ge)Servlet实(Shi)例(Li)—(?)—(?)JSP页(Ye)面(Mian)由(You)系(Xi)统(Tong)翻(Fan)译(Yi)成(Cheng)Servlet,(?)Servlet再(Zai)负(Fu)责(Ze)响(Xiang)应(Ying)用(Yong)户(Hu)请(Qing)求(Qiu)。(?)
JavaScript 高(Gao)级(Ji)程(Cheng)序(Xu)设(She)计(Ji)((?)特(Te)别(Bie)是(Shi)对(Dui)浏(Liu)览(Lan)器(Qi)差(Cha)异(Yi)的(De)复(Fu)杂(Za)处(Chu)理(Li))(?),(?)通(Tong)常(Chang)很(Hen)困(Kun)难(Nan)也(Ye)很(Hen)耗(Hao)时(Shi)。(?)为(Wei)了(Liao)应(Ying)对(Dui)这(Zhe)些(Xie)调(Diao)整(Zheng),(?)许(Xu)多(Duo)的(De) JavaScript库(Ku)应(Ying)运(Yun)而(?)生(Sheng)。(?)这(Zhe)些(Xie) JavaScript 库(Ku)常(Chang)被(Bei)称(Cheng)为(Wei) JavaScript 框(Kuang)架(Jia)。(?)
jQuery:
Ext JS - 可(Ke)定(Ding)制(Zhi)的(De) widget,(?)用(Yong)于(Yu)构(Gou)建(Jian)富(Fu)因(Yin)特(Te)网(Wang)应(Ying)用(Yong)程(Cheng)序(Xu)((?)rich Internet applications)(?)。(?)
Prototype
MooTools。(?)
YUI - Yahoo! User Interface Framework,(?)涵(Han)盖(Gai)大(Da)量(Liang)函(Han)数(Shu)的(De)大(Da)型(Xing)库(Ku),(?)从(Cong)简(Jian)单(Dan)的(De) JavaScript 功(Gong)能(Neng)到(Dao)完(Wan)整(Zheng)的(De) internet widget。(?)
1、(?)什(Shi)么(Me)是(Shi)HTML((?)超(Chao)文(Wen)本(Ben)标(Biao)记(Ji)语(Yu)言(Yan) Hyper Text Markup Language)(?),(?)HTML 是(Shi)用(Yong)来(Lai)描(Miao)述(Shu)网(Wang)页(Ye)的(De)一(Yi)种(Zhong)语(Yu)言(Yan)。(?)
2、(?)CSS(层(Ceng)叠(Die)样(Yang)式(Shi)表(Biao) Cascading Style Sheets),样(Yang)式(Shi)定(Ding)义(Yi)如(Ru)何(He)显(Xian)示(Shi) HTML 元(Yuan)素(Su),(?)语(Yu)法(Fa)为(Wei):(?)selector {property:(?)value} (选(Xuan)择(Ze)符(Fu) {属(Shu)性(Xing):(?)值(Zhi)})
3、(?)JavaScript是(Shi)一(Yi)种(Zhong)脚(Jiao)本(Ben)语(Yu)言(Yan),(?)其(Qi)源(Yuan)代(Dai)码(Ma)在(Zai)发(Fa)往(Wang)客(Ke)户(Hu)端(Duan)运(Yun)行(Xing)之(Zhi)前(Qian)不(Bu)需(Xu)经(Jing)过(Guo)编(Bian)译(Yi),(?)而(?)是(Shi)将(Jiang)文(Wen)本(Ben)格(Ge)式(Shi)的(De)字(Zi)符(Fu)代(Dai)码(Ma)发(Fa)送(Song)给(Gei)浏(Liu)览(Lan)器(Qi)由(You)浏(Liu)览(Lan)器(Qi)解(Jie)释(Shi)运(Yun)行(Xing)
对(Dui)于(Yu)一(Yi)个(Ge)网(Wang)页(Ye),(?)HTML定(Ding)义(Yi)网(Wang)页(Ye)的(De)结(Jie)构(Gou),(?)CSS描(Miao)述(Shu)网(Wang)页(Ye)的(De)样(Yang)子(Zi),(?)JavaScript设(She)置(Zhi)一(Yi)个(Ge)很(Hen)经(Jing)典(Dian)的(De)例(Li)子(Zi)是(Shi)说(Shuo)HTML就(Jiu)像(Xiang) 一(Yi)个(Ge)人(Ren)的(De)骨(Gu)骼(Ge)、(?)器(Qi)官(Guan),(?)而(?)CSS就(Jiu)是(Shi)人(Ren)的(De)皮(Pi)肤(Fu),(?)有(You)了(Liao)这(Zhe)两(Liang)样(Yang)也(Ye)就(Jiu)构(Gou)成(Cheng)了(Liao)一(Yi)个(Ge)植(Zhi)物(Wu)人(Ren)了(Liao),(?)加(Jia)上(Shang)javascript这(Zhe)个(Ge)植(Zhi)物(Wu)人(Ren)就(Jiu)可(Ke)以(Yi)对(Dui)外(Wai)界(Jie)刺(Ci)激(Ji)做(Zuo)出(Chu)反(Fan)应(Ying),(?)可(Ke)以(Yi)思(Si) 考(Kao)、(?)运(Yun)动(Dong)、(?)可(Ke)以(Yi)给(Gei)自(Zi)己(Ji)整(Zheng)容(Rong)化(Hua)妆(Zhuang)((?)改(Gai)变(Bian)CSS)(?)等(Deng)等(Deng),(?)成(Cheng)为(Wei)一(Yi)个(Ge)活(Huo)生(Sheng)生(Sheng)的(De)人(Ren)。(?)
如(Ru)果(Guo)说(Shuo)HTML是(Shi)肉(Rou)身(Shen)、(?)CSS就(Jiu)是(Shi)皮(Pi)相(Xiang)、(?)Javascript就(Jiu)是(Shi)灵(Ling)魂(Hun)。(?)没(Mei)有(You)Javascript,HTML+CSS是(Shi)植(Zhi)物(Wu)人(Ren),(?)没(Mei)有(You)Javascript、(?)CSS是(Shi)个(Ge)毁(Hui)容(Rong)的(De)植(Zhi)物(Wu)人(Ren)。(?)
如(Ru)果(Guo)说(Shuo)HTML是(Shi)建(Jian)筑(Zhu)师(Shi),(?)CSS就(Jiu)是(Shi)干(Gan)装(Zhuang)修(Xiu)的(De),(?)Javascript是(Shi)魔(Mo)术(Shu)师(Shi)。(?)
A. | JQuery((?)expression, [context])(?) |
B. | JQuery((?)html, [ownerDocument])(?) |
C. | JQuery((?)callback)(?) |
答(Da)案(An):(?)C
|
答(Da):(?)1. DOM((?)Document Object Model)
DOM是(Shi)用(Yong)与(Yu)平(Ping)台(Tai)和(He)语(Yu)言(Yan)无(Wu)关(Guan)的(De)方(Fang)式(Shi)表(Biao)示(Shi)XML文(Wen)档(Dang)的(De)官(Guan)方(Fang)W3C标(Biao)准(Zhun)。(?)DOM是(Shi)以(Yi)层(Ceng)次(Ci)结(Jie)构(Gou)组(Zu)织(Zhi)的(De)节(Jie)点(Dian)或(Huo)信(Xin)息(Xi)片(Pian)断(Duan)的(De)集(Ji)合(He)。(?)这(Zhe)个(Ge)层(Ceng)次(Ci)结(Jie)构(Gou)允(Yun)许(Xu)开(Kai)发(Fa)人(Ren)员(Yuan)在(Zai)树(Shu)中(Zhong)寻(Xun)找(Zhao)特(Te)定(Ding)信(Xin)息(Xi)。(?)分(Fen)析(Xi)该(Gai)结(Jie)构(Gou)通(Tong)常(Chang)需(Xu)要(Yao)加(Jia)载(Zai)整(Zheng)个(Ge)文(Wen)档(Dang)和(He)构(Gou)造(Zao)层(Ceng)次(Ci)结(Jie)构(Gou),(?)然(Ran)后(Hou)才(Cai)能(Neng)做(Zuo)任(Ren)何(He)工(Gong)作(Zuo)。(?)由(You)于(Yu)它(Ta)是(Shi)基(Ji)于(Yu)信(Xin)息(Xi)层(Ceng)次(Ci)的(De),(?)因(Yin)而(?)DOM被(Bei)认(Ren)为(Wei)是(Shi)基(Ji)于(Yu)树(Shu)或(Huo)基(Ji)于(Yu)对(Dui)象(Xiang)的(De)。(?)
【(?)优(You)点(Dian)】(?)
①(?)允(Yun)许(Xu)应(Ying)用(Yong)程(Cheng)序(Xu)对(Dui)数(Shu)据(Ju)和(He)结(Jie)构(Gou)做(Zuo)出(Chu)更(Geng)改(Gai)。(?)
②(?)访(Fang)问(Wen)是(Shi)双(Shuang)向(Xiang)的(De),(?)可(Ke)以(Yi)在(Zai)任(Ren)何(He)时(Shi)候(Hou)在(Zai)树(Shu)中(Zhong)上(Shang)下(Xia)导(Dao)航(Hang),(?)获(Huo)取(Qu)和(He)操(Cao)作(Zuo)任(Ren)意(Yi)部(Bu)分(Fen)的(De)数(Shu)据(Ju)。(?)
【(?)缺(Que)点(Dian)】(?)
①(?)通(Tong)常(Chang)需(Xu)要(Yao)加(Jia)载(Zai)整(Zheng)个(Ge)XML文(Wen)档(Dang)来(Lai)构(Gou)造(Zao)层(Ceng)次(Ci)结(Jie)构(Gou),(?)消(Xiao)耗(Hao)资(Zi)源(Yuan)大(Da)。(?)
2. SAX((?)Simple API for XML)
SAX处(Chu)理(Li)的(De)优(You)点(Dian)非(Fei)常(Chang)类(Lei)似(Si)于(Yu)流(Liu)媒(Mei)体(Ti)的(De)优(You)点(Dian)。(?)分(Fen)析(Xi)能(Neng)够(Gou)立(Li)即(Ji)开(Kai)始(Shi),(?)而(?)不(Bu)是(Shi)等(Deng)待(Dai)所(Suo)有(You)的(De)数(Shu)据(Ju)被(Bei)处(Chu)理(Li)。(?)而(?)且(Qie),(?)由(You)于(Yu)应(Ying)用(Yong)程(Cheng)序(Xu)只(Zhi)是(Shi)在(Zai)读(Du)取(Qu)数(Shu)据(Ju)时(Shi)检(Jian)查(Cha)数(Shu)据(Ju),(?)因(Yin)此(Ci)不(Bu)需(Xu)要(Yao)将(Jiang)数(Shu)据(Ju)存(Cun)储(Chu)在(Zai)内(Nei)存(Cun)中(Zhong)。(?)这(Zhe)对(Dui)于(Yu)大(Da)型(Xing)文(Wen)档(Dang)来(Lai)说(Shuo)是(Shi)个(Ge)巨(Ju)大(Da)的(De)优(You)点(Dian)。(?)事(Shi)实(Shi)上(Shang),(?)应(Ying)用(Yong)程(Cheng)序(Xu)甚(Shen)至(Zhi)不(Bu)必(Bi)解(Jie)析(Xi)整(Zheng)个(Ge)文(Wen)档(Dang);(?)它(Ta)可(Ke)以(Yi)在(Zai)某(Mou)个(Ge)条(Tiao)件(Jian)得(De)到(Dao)满(Man)足(Zu)时(Shi)停(Ting)止(Zhi)解(Jie)析(Xi)。(?)一(Yi)般(Ban)来(Lai)说(Shuo),(?)SAX还(Huan)比(Bi)它(Ta)的(De)替(Ti)代(Dai)者(Zhe)DOM快(Kuai)许(Xu)多(Duo)。(?)
选(Xuan)择(Ze)DOM还(Huan)是(Shi)选(Xuan)择(Ze)SAX?(?) 对(Dui)于(Yu)需(Xu)要(Yao)自(Zi)己(Ji)编(Bian)写(Xie)代(Dai)码(Ma)来(Lai)处(Chu)理(Li)XML文(Wen)档(Dang)的(De)开(Kai)发(Fa)人(Ren)员(Yuan)来(Lai)说(Shuo),(?) 选(Xuan)择(Ze)DOM还(Huan)是(Shi)SAX解(Jie)析(Xi)模(Mo)型(Xing)是(Shi)一(Yi)个(Ge)非(Fei)常(Chang)重(Zhong)要(Yao)的(De)设(She)计(Ji)决(Jue)策(Ce)。(?) DOM采(Cai)用(Yong)建(Jian)立(Li)树(Shu)形(Xing)结(Jie)构(Gou)的(De)方(Fang)式(Shi)访(Fang)问(Wen)XML文(Wen)档(Dang),(?)而(?)SAX采(Cai)用(Yong)的(De)是(Shi)事(Shi)件(Jian)模(Mo)型(Xing)。(?)
DOM解(Jie)析(Xi)器(Qi)把(Ba)XML文(Wen)档(Dang)转(Zhuan)化(Hua)为(Wei)一(Yi)个(Ge)包(Bao)含(Han)其(Qi)内(Nei)容(Rong)的(De)树(Shu),(?)并(Bing)可(Ke)以(Yi)对(Dui)树(Shu)进(Jin)行(Xing)遍(Bian)历(Li)。(?)用(Yong)DOM解(Jie)析(Xi)模(Mo)型(Xing)的(De)优(You)点(Dian)是(Shi)编(Bian)程(Cheng)容(Rong)易(Yi),(?)开(Kai)发(Fa)人(Ren)员(Yuan)只(Zhi)需(Xu)要(Yao)调(Diao)用(Yong)建(Jian)树(Shu)的(De)指(Zhi)令(Ling),(?)然(Ran)后(Hou)利(Li)用(Yong)navigation APIs访(Fang)问(Wen)所(Suo)需(Xu)的(De)树(Shu)节(Jie)点(Dian)来(Lai)完(Wan)成(Cheng)任(Ren)务(Wu)。(?)可(Ke)以(Yi)很(Hen)容(Rong)易(Yi)的(De)添(Tian)加(Jia)和(He)修(Xiu)改(Gai)树(Shu)中(Zhong)的(De)元(Yuan)素(Su)。(?)然(Ran)而(?)由(You)于(Yu)使(Shi)用(Yong)DOM解(Jie)析(Xi)器(Qi)的(De)时(Shi)候(Hou)需(Xu)要(Yao)处(Chu)理(Li)整(Zheng)个(Ge)XML文(Wen)档(Dang),(?)所(Suo)以(Yi)对(Dui)性(Xing)能(Neng)和(He)内(Nei)存(Cun)的(De)要(Yao)求(Qiu)比(Bi)较(Jiao)高(Gao),(?)尤(You)其(Qi)是(Shi)遇(Yu)到(Dao)很(Hen)大(Da)的(De)XML文(Wen)件(Jian)的(De)时(Shi)候(Hou)。(?)由(You)于(Yu)它(Ta)的(De)遍(Bian)历(Li)能(Neng)力(Li),(?)DOM解(Jie)析(Xi)器(Qi)常(Chang)用(Yong)于(Yu)XML文(Wen)档(Dang)需(Xu)要(Yao)频(Pin)繁(Fan)的(De)改(Gai)变(Bian)的(De)服(Fu)务(Wu)中(Zhong)。(?)
SAX解(Jie)析(Xi)器(Qi)采(Cai)用(Yong)了(Liao)基(Ji)于(Yu)事(Shi)件(Jian)的(De)模(Mo)型(Xing),(?)它(Ta)在(Zai)解(Jie)析(Xi)XML文(Wen)档(Dang)的(De)时(Shi)候(Hou)可(Ke)以(Yi)触(Chu)发(Fa)一(Yi)系(Xi)列(Lie)的(De)事(Shi)件(Jian),(?)当(Dang)发(Fa)现(Xian)给(Gei)定(Ding)的(De)tag的(De)时(Shi)候(Hou),(?)它(Ta)可(Ke)以(Yi)激(Ji)活(Huo)一(Yi)个(Ge)回(Hui)调(Diao)方(Fang)法(Fa),(?)告(Gao)诉(Su)该(Gai)方(Fang)法(Fa)制(Zhi)定(Ding)的(De)标(Biao)签(Qian)已(Yi)经(Jing)找(Zhao)到(Dao)。(?)SAX对(Dui)内(Nei)存(Cun)的(De)要(Yao)求(Qiu)通(Tong)常(Chang)会(Hui)比(Bi)较(Jiao)低(Di),(?)因(Yin)为(Wei)它(Ta)让(Rang)开(Kai)发(Fa)人(Ren)员(Yuan)自(Zi)己(Ji)来(Lai)决(Jue)定(Ding)所(Suo)要(Yao)处(Chu)理(Li)的(De)tag.特(Te)别(Bie)是(Shi)当(Dang)开(Kai)发(Fa)人(Ren)员(Yuan)只(Zhi)需(Xu)要(Yao)处(Chu)理(Li)文(Wen)档(Dang)中(Zhong)所(Suo)包(Bao)含(Han)的(De)部(Bu)分(Fen)数(Shu)据(Ju)时(Shi),(?)SAX这(Zhe)种(Zhong)扩(Kuo)展(Zhan)能(Neng)力(Li)得(De)到(Dao)了(Liao)更(Geng)好(Hao)的(De)体(Ti)现(Xian)。(?)但(Dan)用(Yong)SAX解(Jie)析(Xi)器(Qi)的(De)时(Shi)候(Hou)编(Bian)码(Ma)工(Gong)作(Zuo)会(Hui)比(Bi)较(Jiao)困(Kun)难(Nan),(?)而(?)且(Qie)很(Hen)难(Nan)同(Tong)时(Shi)访(Fang)问(Wen)同(Tong)一(Yi)个(Ge)文(Wen)档(Dang)中(Zhong)的(De)多(Duo)处(Chu)不(Bu)同(Tong)数(Shu)据(Ju)。(?)
【(?)优(You)势(Shi)】(?)
①(?)不(Bu)需(Xu)要(Yao)等(Deng)待(Dai)所(Suo)有(You)数(Shu)据(Ju)都(Du)被(Bei)处(Chu)理(Li),(?)分(Fen)析(Xi)就(Jiu)能(Neng)立(Li)即(Ji)开(Kai)始(Shi)。(?)
②(?)只(Zhi)在(Zai)读(Du)取(Qu)数(Shu)据(Ju)时(Shi)检(Jian)查(Cha)数(Shu)据(Ju),(?)不(Bu)需(Xu)要(Yao)保(Bao)存(Cun)在(Zai)内(Nei)存(Cun)中(Zhong)。(?)
③(?)可(Ke)以(Yi)在(Zai)某(Mou)个(Ge)条(Tiao)件(Jian)得(De)到(Dao)满(Man)足(Zu)时(Shi)停(Ting)止(Zhi)解(Jie)析(Xi),(?)不(Bu)必(Bi)解(Jie)析(Xi)整(Zheng)个(Ge)文(Wen)档(Dang)。(?)
④(?)效(Xiao)率(Lu)和(He)性(Xing)能(Neng)较(Jiao)高(Gao),(?)能(Neng)解(Jie)析(Xi)大(Da)于(Yu)系(Xi)统(Tong)内(Nei)存(Cun)的(De)文(Wen)档(Dang)。(?)
【(?)缺(Que)点(Dian)】(?)
①(?)需(Xu)要(Yao)应(Ying)用(Yong)程(Cheng)序(Xu)自(Zi)己(Ji)负(Fu)责(Ze)TAG的(De)处(Chu)理(Li)逻(Luo)辑(Ji)((?)例(Li)如(Ru)维(Wei)护(Hu)父(Fu)/子(Zi)关(Guan)系(Xi)等(Deng))(?),(?)文(Wen)档(Dang)越(Yue)复(Fu)杂(Za)程(Cheng)序(Xu)就(Jiu)越(Yue)复(Fu)杂(Za)。(?)
②(?)单(Dan)向(Xiang)导(Dao)航(Hang),(?)无(Wu)法(Fa)定(Ding)位(Wei)文(Wen)档(Dang)层(Ceng)次(Ci),(?)很(Hen)难(Nan)同(Tong)时(Shi)访(Fang)问(Wen)同(Tong)一(Yi)文(Wen)档(Dang)的(De)不(Bu)同(Tong)部(Bu)分(Fen)数(Shu)据(Ju),(?)不(Bu)支(Zhi)持(Chi)XPath。(?)
3. JDOM(Java-based Document Object Model)
JDOM的(De)目(Mu)的(De)是(Shi)成(Cheng)为(Wei)Java特(Te)定(Ding)文(Wen)档(Dang)模(Mo)型(Xing),(?)它(Ta)简(Jian)化(Hua)与(Yu)XML的(De)交(Jiao)互(Hu)并(Bing)且(Qie)比(Bi)使(Shi)用(Yong)DOM实(Shi)现(Xian)更(Geng)快(Kuai)。(?)由(You)于(Yu)是(Shi)第(Di)一(Yi)个(Ge)Java特(Te)定(Ding)模(Mo)型(Xing),(?)JDOM一(Yi)直(Zhi)得(De)到(Dao)大(Da)力(Li)推(Tui)广(Guang)和(He)促(Cu)进(Jin)。(?)正(Zheng)在(Zai)考(Kao)虑(Lu)通(Tong)过(Guo)“(?)Java规(Gui)范(Fan)请(Qing)求(Qiu)JSR-102”(?)将(Jiang)它(Ta)最(Zui)终(Zhong)用(Yong)作(Zuo)“(?)Java标(Biao)准(Zhun)扩(Kuo)展(Zhan)”(?)。(?)从(Cong)2000年(Nian)初(Chu)就(Jiu)已(Yi)经(Jing)开(Kai)始(Shi)了(Liao)JDOM开(Kai)发(Fa)。(?)
JDOM与(Yu)DOM主(Zhu)要(Yao)有(You)两(Liang)方(Fang)面(Mian)不(Bu)同(Tong)。(?)首(Shou)先(Xian),(?)JDOM仅(Jin)使(Shi)用(Yong)具(Ju)体(Ti)类(Lei)而(?)不(Bu)使(Shi)用(Yong)接(Jie)口(Kou)。(?)这(Zhe)在(Zai)某(Mou)些(Xie)方(Fang)面(Mian)简(Jian)化(Hua)了(Liao)API,(?)但(Dan)是(Shi)也(Ye)限(Xian)制(Zhi)了(Liao)灵(Ling)活(Huo)性(Xing)。(?)第(Di)二(?),(?)API大(Da)量(Liang)使(Shi)用(Yong)了(Liao)Collections类(Lei),(?)简(Jian)化(Hua)了(Liao)那(Na)些(Xie)已(Yi)经(Jing)熟(Shu)悉(Xi)这(Zhe)些(Xie)类(Lei)的(De)Java开(Kai)发(Fa)者(Zhe)的(De)使(Shi)用(Yong)。(?)
JDOM文(Wen)档(Dang)声(Sheng)明(Ming)其(Qi)目(Mu)的(De)是(Shi)“(?)使(Shi)用(Yong)20%((?)或(Huo)更(Geng)少(Shao))(?)的(De)精(Jing)力(Li)解(Jie)决(Jue)80%((?)或(Huo)更(Geng)多(Duo))(?)Java/XML问(Wen)题(Ti)”(?)((?)根(Gen)据(Ju)学(Xue)习(Xi)曲(Qu)线(Xian)假(Jia)定(Ding)为(Wei)20%)(?)。(?)JDOM对(Dui)于(Yu)大(Da)多(Duo)数(Shu)Java/XML应(Ying)用(Yong)程(Cheng)序(Xu)来(Lai)说(Shuo)当(Dang)然(Ran)是(Shi)有(You)用(Yong)的(De),(?)并(Bing)且(Qie)大(Da)多(Duo)数(Shu)开(Kai)发(Fa)者(Zhe)发(Fa)现(Xian)API比(Bi)DOM容(Rong)易(Yi)理(Li)解(Jie)得(De)多(Duo)。(?)JDOM还(Huan)包(Bao)括(Kuo)对(Dui)程(Cheng)序(Xu)行(Xing)为(Wei)的(De)相(Xiang)当(Dang)广(Guang)泛(Fan)检(Jian)查(Cha)以(Yi)防(Fang)止(Zhi)用(Yong)户(Hu)做(Zuo)任(Ren)何(He)在(Zai)XML中(Zhong)无(Wu)意(Yi)义(Yi)的(De)事(Shi)。(?)然(Ran)而(?),(?)它(Ta)仍(Reng)需(Xu)要(Yao)您(Nin)充(Chong)分(Fen)理(Li)解(Jie)XML以(Yi)便(Bian)做(Zuo)一(Yi)些(Xie)超(Chao)出(Chu)基(Ji)本(Ben)的(De)工(Gong)作(Zuo)((?)或(Huo)者(Zhe)甚(Shen)至(Zhi)理(Li)解(Jie)某(Mou)些(Xie)情(Qing)况(Kuang)下(Xia)的(De)错(Cuo)误(Wu))(?)。(?)这(Zhe)也(Ye)许(Xu)是(Shi)比(Bi)学(Xue)习(Xi)DOM或(Huo)JDOM接(Jie)口(Kou)都(Du)更(Geng)有(You)意(Yi)义(Yi)的(De)工(Gong)作(Zuo)。(?)
JDOM自(Zi)身(Shen)不(Bu)包(Bao)含(Han)解(Jie)析(Xi)器(Qi)。(?)它(Ta)通(Tong)常(Chang)使(Shi)用(Yong)SAX2解(Jie)析(Xi)器(Qi)来(Lai)解(Jie)析(Xi)和(He)验(Yan)证(Zheng)输(Shu)入(Ru)XML文(Wen)档(Dang)((?)尽(Jin)管(Guan)它(Ta)还(Huan)可(Ke)以(Yi)将(Jiang)以(Yi)前(Qian)构(Gou)造(Zao)的(De)DOM表(Biao)示(Shi)作(Zuo)为(Wei)输(Shu)入(Ru))(?)。(?)它(Ta)包(Bao)含(Han)一(Yi)些(Xie)转(Zhuan)换(Huan)器(Qi)以(Yi)将(Jiang)JDOM表(Biao)示(Shi)输(Shu)出(Chu)成(Cheng)SAX2事(Shi)件(Jian)流(Liu)、(?)DOM模(Mo)型(Xing)或(Huo)XML文(Wen)本(Ben)文(Wen)档(Dang)。(?)JDOM是(Shi)在(Zai)Apache许(Xu)可(Ke)证(Zheng)变(Bian)体(Ti)下(Xia)发(Fa)布(Bu)的(De)开(Kai)放(Fang)源(Yuan)码(Ma)。(?)
【(?)优(You)点(Dian)】(?)
①(?)使(Shi)用(Yong)具(Ju)体(Ti)类(Lei)而(?)不(Bu)是(Shi)接(Jie)口(Kou),(?)简(Jian)化(Hua)了(Liao)DOM的(De)API。(?)
②(?)大(Da)量(Liang)使(Shi)用(Yong)了(Liao)Java集(Ji)合(He)类(Lei),(?)方(Fang)便(Bian)了(Liao)Java开(Kai)发(Fa)人(Ren)员(Yuan)。(?)
【(?)缺(Que)点(Dian)】(?)
①(?)没(Mei)有(You)较(Jiao)好(Hao)的(De)灵(Ling)活(Huo)性(Xing)。(?)
②(?)性(Xing)能(Neng)较(Jiao)差(Cha)。(?)
4. DOM4J(Document Object Model for Java)
虽(Sui)然(Ran)DOM4J代(Dai)表(Biao)了(Liao)完(Wan)全(Quan)独(Du)立(Li)的(De)开(Kai)发(Fa)结(Jie)果(Guo),(?)但(Dan)最(Zui)初(Chu),(?)它(Ta)是(Shi)JDOM的(De)一(Yi)种(Zhong)智(Zhi)能(Neng)分(Fen)支(Zhi)。(?)它(Ta)合(He)并(Bing)了(Liao)许(Xu)多(Duo)超(Chao)出(Chu)基(Ji)本(Ben)XML文(Wen)档(Dang)表(Biao)示(Shi)的(De)功(Gong)能(Neng),(?)包(Bao)括(Kuo)集(Ji)成(Cheng)的(De)XPath支(Zhi)持(Chi)、(?)XML Schema支(Zhi)持(Chi)以(Yi)及(Ji)用(Yong)于(Yu)大(Da)文(Wen)档(Dang)或(Huo)流(Liu)化(Hua)文(Wen)档(Dang)的(De)基(Ji)于(Yu)事(Shi)件(Jian)的(De)处(Chu)理(Li)。(?)它(Ta)还(Huan)提(Ti)供(Gong)了(Liao)构(Gou)建(Jian)文(Wen)档(Dang)表(Biao)示(Shi)的(De)选(Xuan)项(Xiang),(?)它(Ta)通(Tong)过(Guo)DOM4J API和(He)标(Biao)准(Zhun)DOM接(Jie)口(Kou)具(Ju)有(You)并(Bing)行(Xing)访(Fang)问(Wen)功(Gong)能(Neng)。(?)从(Cong)2000下(Xia)半(Ban)年(Nian)开(Kai)始(Shi),(?)它(Ta)就(Jiu)一(Yi)直(Zhi)处(Chu)于(Yu)开(Kai)发(Fa)之(Zhi)中(Zhong)。(?)
为(Wei)支(Zhi)持(Chi)所(Suo)有(You)这(Zhe)些(Xie)功(Gong)能(Neng),(?)DOM4J使(Shi)用(Yong)接(Jie)口(Kou)和(He)抽(Chou)象(Xiang)基(Ji)本(Ben)类(Lei)方(Fang)法(Fa)。(?)DOM4J大(Da)量(Liang)使(Shi)用(Yong)了(Liao)API中(Zhong)的(De)Collections类(Lei),(?)但(Dan)是(Shi)在(Zai)许(Xu)多(Duo)情(Qing)况(Kuang)下(Xia),(?)它(Ta)还(Huan)提(Ti)供(Gong)一(Yi)些(Xie)替(Ti)代(Dai)方(Fang)法(Fa)以(Yi)允(Yun)许(Xu)更(Geng)好(Hao)的(De)性(Xing)能(Neng)或(Huo)更(Geng)直(Zhi)接(Jie)的(De)编(Bian)码(Ma)方(Fang)法(Fa)。(?)直(Zhi)接(Jie)好(Hao)处(Chu)是(Shi),(?)虽(Sui)然(Ran)DOM4J付(Fu)出(Chu)了(Liao)更(Geng)复(Fu)杂(Za)的(De)API的(De)代(Dai)价(Jia),(?)但(Dan)是(Shi)它(Ta)提(Ti)供(Gong)了(Liao)比(Bi)JDOM大(Da)得(De)多(Duo)的(De)灵(Ling)活(Huo)性(Xing)。(?)
在(Zai)添(Tian)加(Jia)灵(Ling)活(Huo)性(Xing)、(?)XPath集(Ji)成(Cheng)和(He)对(Dui)大(Da)文(Wen)档(Dang)处(Chu)理(Li)的(De)目(Mu)标(Biao)时(Shi),(?)DOM4J的(De)目(Mu)标(Biao)与(Yu)JDOM是(Shi)一(Yi)样(Yang)的(De):(?)针(Zhen)对(Dui)Java开(Kai)发(Fa)者(Zhe)的(De)易(Yi)用(Yong)性(Xing)和(He)直(Zhi)观(Guan)操(Cao)作(Zuo)。(?)它(Ta)还(Huan)致(Zhi)力(Li)于(Yu)成(Cheng)为(Wei)比(Bi)JDOM更(Geng)完(Wan)整(Zheng)的(De)解(Jie)决(Jue)方(Fang)案(An),(?)实(Shi)现(Xian)在(Zai)本(Ben)质(Zhi)上(Shang)处(Chu)理(Li)所(Suo)有(You)Java/XML问(Wen)题(Ti)的(De)目(Mu)标(Biao)。(?)在(Zai)完(Wan)成(Cheng)该(Gai)目(Mu)标(Biao)时(Shi),(?)它(Ta)比(Bi)JDOM更(Geng)少(Shao)强(Qiang)调(Diao)防(Fang)止(Zhi)不(Bu)正(Zheng)确(Que)的(De)应(Ying)用(Yong)程(Cheng)序(Xu)行(Xing)为(Wei)。(?)
DOM4J是(Shi)一(Yi)个(Ge)非(Fei)常(Chang)非(Fei)常(Chang)优(You)秀(Xiu)的(De)Java XML API,(?)具(Ju)有(You)性(Xing)能(Neng)优(You)异(Yi)、(?)功(Gong)能(Neng)强(Qiang)大(Da)和(He)极(Ji)端(Duan)易(Yi)用(Yong)使(Shi)用(Yong)的(De)特(Te)点(Dian),(?)同(Tong)时(Shi)它(Ta)也(Ye)是(Shi)一(Yi)个(Ge)开(Kai)放(Fang)源(Yuan)代(Dai)码(Ma)的(De)软(Ruan)件(Jian)。(?)如(Ru)今(Jin)你(Ni)可(Ke)以(Yi)看(Kan)到(Dao)越(Yue)来(Lai)越(Yue)多(Duo)的(De)Java软(Ruan)件(Jian)都(Du)在(Zai)使(Shi)用(Yong)DOM4J来(Lai)读(Du)写(Xie)XML,(?)特(Te)别(Bie)值(Zhi)得(De)一(Yi)提(Ti)的(De)是(Shi)连(Lian)Sun的(De)JAXM也(Ye)在(Zai)用(Yong)DOM4J.
【(?)优(You)点(Dian)】(?)
①(?)大(Da)量(Liang)使(Shi)用(Yong)了(Liao)Java集(Ji)合(He)类(Lei),(?)方(Fang)便(Bian)Java开(Kai)发(Fa)人(Ren)员(Yuan),(?)同(Tong)时(Shi)提(Ti)供(Gong)一(Yi)些(Xie)提(Ti)高(Gao)性(Xing)能(Neng)的(De)替(Ti)代(Dai)方(Fang)法(Fa)。(?)
②(?)支(Zhi)持(Chi)XPath。(?)
③(?)有(You)很(Hen)好(Hao)的(De)性(Xing)能(Neng)。(?)
【(?)缺(Que)点(Dian)】(?)
①(?)大(Da)量(Liang)使(Shi)用(Yong)了(Liao)接(Jie)口(Kou),(?)API较(Jiao)为(Wei)复(Fu)杂(Za)。(?)
二(?)、(?)比(Bi)较(Jiao)
1. DOM4J性(Xing)能(Neng)最(Zui)好(Hao),(?)连(Lian)Sun的(De)JAXM也(Ye)在(Zai)用(Yong)DOM4J。(?)目(Mu)前(Qian)许(Xu)多(Duo)开(Kai)源(Yuan)项(Xiang)目(Mu)中(Zhong)大(Da)量(Liang)采(Cai)用(Yong)DOM4J,(?)例(Li)如(Ru)大(Da)名(Ming)鼎(Ding)鼎(Ding)的(De)Hibernate也(Ye)用(Yong)DOM4J来(Lai)读(Du)取(Qu)XML配(Pei)置(Zhi)文(Wen)件(Jian)。(?)如(Ru)果(Guo)不(Bu)考(Kao)虑(Lu)可(Ke)移(Yi)植(Zhi)性(Xing),(?)那(Na)就(Jiu)采(Cai)用(Yong)DOM4J.
2. JDOM和(He)DOM在(Zai)性(Xing)能(Neng)测(Ce)试(Shi)时(Shi)表(Biao)现(Xian)不(Bu)佳(Jia),(?)在(Zai)测(Ce)试(Shi)10M文(Wen)档(Dang)时(Shi)内(Nei)存(Cun)溢(Yi)出(Chu),(?)但(Dan)可(Ke)移(Yi)植(Zhi)。(?)在(Zai)小(Xiao)文(Wen)档(Dang)情(Qing)况(Kuang)下(Xia)还(Huan)值(Zhi)得(De)考(Kao)虑(Lu)使(Shi)用(Yong)DOM和(He)JDOM.虽(Sui)然(Ran)JDOM的(De)开(Kai)发(Fa)者(Zhe)已(Yi)经(Jing)说(Shuo)明(Ming)他(Ta)们(Men)期(Qi)望(Wang)在(Zai)正(Zheng)式(Shi)发(Fa)行(Xing)版(Ban)前(Qian)专(Zhuan)注(Zhu)性(Xing)能(Neng)问(Wen)题(Ti),(?)但(Dan)是(Shi)从(Cong)性(Xing)能(Neng)观(Guan)点(Dian)来(Lai)看(Kan),(?)它(Ta)确(Que)实(Shi)没(Mei)有(You)值(Zhi)得(De)推(Tui)荐(Jian)之(Zhi)处(Chu)。(?)另(Ling)外(Wai),(?)DOM仍(Reng)是(Shi)一(Yi)个(Ge)非(Fei)常(Chang)好(Hao)的(De)选(Xuan)择(Ze)。(?)DOM实(Shi)现(Xian)广(Guang)泛(Fan)应(Ying)用(Yong)于(Yu)多(Duo)种(Zhong)编(Bian)程(Cheng)语(Yu)言(Yan)。(?)它(Ta)还(Huan)是(Shi)许(Xu)多(Duo)其(Qi)它(Ta)与(Yu)XML相(Xiang)关(Guan)的(De)标(Biao)准(Zhun)的(De)基(Ji)础(Chu),(?)因(Yin)为(Wei)它(Ta)正(Zheng)式(Shi)获(Huo)得(De)W3C推(Tui)荐(Jian)((?)与(Yu)基(Ji)于(Yu)非(Fei)标(Biao)准(Zhun)的(De)Java模(Mo)型(Xing)相(Xiang)对(Dui))(?),(?)所(Suo)以(Yi)在(Zai)某(Mou)些(Xie)类(Lei)型(Xing)的(De)项(Xiang)目(Mu)中(Zhong)可(Ke)能(Neng)也(Ye)需(Xu)要(Yao)它(Ta)((?)如(Ru)在(Zai)JavaScript中(Zhong)使(Shi)用(Yong)DOM)(?)。(?)
3. SAX表(Biao)现(Xian)较(Jiao)好(Hao),(?)这(Zhe)要(Yao)依(Yi)赖(Lai)于(Yu)它(Ta)特(Te)定(Ding)的(De)解(Jie)析(Xi)方(Fang)式(Shi)-(?)事(Shi)件(Jian)驱(Qu)动(Dong)。(?)一(Yi)个(Ge)SAX检(Jian)测(Ce)即(Ji)将(Jiang)到(Dao)来(Lai)的(De)XML流(Liu),(?)但(Dan)并(Bing)没(Mei)有(You)载(Zai)入(Ru)到(Dao)内(Nei)存(Cun)((?)当(Dang)然(Ran)当(Dang)XML流(Liu)被(Bei)读(Du)入(Ru)时(Shi),(?)会(Hui)有(You)部(Bu)分(Fen)文(Wen)档(Dang)暂(Zan)时(Shi)隐(Yin)藏(Cang)在(Zai)内(Nei)存(Cun)中(Zhong))(?)。(?)
我(Wo)的(De)看(Kan)法(Fa):(?)如(Ru)果(Guo)XML文(Wen)档(Dang)较(Jiao)大(Da)且(Qie)不(Bu)考(Kao)虑(Lu)移(Yi)植(Zhi)性(Xing)问(Wen)题(Ti)建(Jian)议(Yi)采(Cai)用(Yong)DOM4J;(?)如(Ru)果(Guo)XML文(Wen)档(Dang)较(Jiao)小(Xiao)则(Ze)建(Jian)议(Yi)采(Cai)用(Yong)JDOM;(?)如(Ru)果(Guo)需(Xu)要(Yao)及(Ji)时(Shi)处(Chu)理(Li)而(?)不(Bu)需(Xu)要(Yao)保(Bao)存(Cun)数(Shu)据(Ju)则(Ze)考(Kao)虑(Lu)SAX。(?)但(Dan)无(Wu)论(Lun)如(Ru)何(He),(?)还(Huan)是(Shi)那(Na)句(Ju)话(Hua):(?)适(Shi)合(He)自(Zi)己(Ji)的(De)才(Cai)是(Shi)最(Zui)好(Hao)的(De),(?)如(Ru)果(Guo)时(Shi)间(Jian)允(Yun)许(Xu),(?)建(Jian)议(Yi)大(Da)家(Jia)讲(Jiang)这(Zhe)四(Si)种(Zhong)方(Fang)法(Fa)都(Du)尝(Chang)试(Shi)一(Yi)遍(Bian)然(Ran)后(Hou)选(Xuan)择(Ze)一(Yi)种(Zhong)适(Shi)合(He)自(Zi)己(Ji)的(De)即(Ji)可(Ke)。(?)
答(Da):(?)1.java采(Cai)用(Yong)unicode编(Bian)码(Ma),(?)2个(Ge)字(Zi)节(Jie)((?)16位(Wei))(?)来(Lai)表(Biao)示(Shi)一(Yi)个(Ge)字(Zi)符(Fu),(?) 无(Wu)论(Lun)是(Shi)汉(Han)字(Zi)还(Huan)是(Shi)数(Shu)字(Zi),(?)字(Zi)母(Mu),(?)或(Huo)其(Qi)他(Ta)语(Yu)言(Yan)都(Du)可(Ke)以(Yi)存(Cun)储(Chu)。(?)
2.char 在(Zai)java中(Zhong)是(Shi)2个(Ge)字(Zi)节(Jie),(?)所(Suo)以(Yi)可(Ke)以(Yi)存(Cun)储(Chu)中(Zhong)文(Wen)
下(Xia)面(Mian)接(Jie)着(Zhuo)再(Zai)说(Shuo)说(Shuo)两(Liang)者(Zhe)在(Zai)应(Ying)用(Yong)上(Shang)的(De)区(Qu)别(Bie):(?)
接(Jie)口(Kou)更(Geng)多(Duo)的(De)是(Shi)在(Zai)系(Xi)统(Tong)架(Jia)构(Gou)设(She)计(Ji)方(Fang)法(Fa)发(Fa)挥(Hui)作(Zuo)用(Yong),(?)主(Zhu)要(Yao)用(Yong)于(Yu)定(Ding)义(Yi)模(Mo)块(Kuai)之(Zhi)间(Jian)的(De)通(Tong)信(Xin)契(Qi)约(Yue)。(?)而(?)抽(Chou)象(Xiang)类(Lei)在(Zai)代(Dai)码(Ma)实(Shi)现(Xian)方(Fang)面(Mian)发(Fa)挥(Hui)作(Zuo)用(Yong),(?)可(Ke)以(Yi)实(Shi)现(Xian)代(Dai)码(Ma)的(De)重(Zhong)用(Yong),(?)例(Li)如(Ru),(?)模(Mo)板(Ban)方(Fang)法(Fa)设(She)计(Ji)模(Mo)式(Shi)是(Shi)抽(Chou)象(Xiang)类(Lei)的(De)一(Yi)个(Ge)典(Dian)型(Xing)应(Ying)用(Yong),(?)假(Jia)设(She)某(Mou)个(Ge)项(Xiang)目(Mu)的(De)所(Suo)有(You)Servlet类(Lei)都(Du)要(Yao)用(Yong)相(Xiang)同(Tong)的(De)方(Fang)式(Shi)进(Jin)行(Xing)权(Quan)限(Xian)判(Pan)断(Duan)、(?)记(Ji)录(Lu)访(Fang)问(Wen)日(Ri)志(Zhi)和(He)处(Chu)理(Li)异(Yi)常(Chang),(?)那(Na)么(Me)就(Jiu)可(Ke)以(Yi)定(Ding)义(Yi)一(Yi)个(Ge)抽(Chou)象(Xiang)的(De)基(Ji)类(Lei),(?)让(Rang)所(Suo)有(You)的(De)Servlet都(Du)继(Ji)承(Cheng)这(Zhe)个(Ge)抽(Chou)象(Xiang)基(Ji)类(Lei),(?)在(Zai)抽(Chou)象(Xiang)基(Ji)类(Lei)的(De)service方(Fang)法(Fa)中(Zhong)完(Wan)成(Cheng)权(Quan)限(Xian)判(Pan)断(Duan)、(?)记(Ji)录(Lu)访(Fang)问(Wen)日(Ri)志(Zhi)和(He)处(Chu)理(Li)异(Yi)常(Chang)的(De)代(Dai)码(Ma),(?)在(Zai)各(Ge)个(Ge)子(Zi)类(Lei)中(Zhong)只(Zhi)是(Shi)完(Wan)成(Cheng)各(Ge)自(Zi)的(De)业(Ye)务(Wu)逻(Luo)辑(Ji)代(Dai)码(Ma),(?)伪(Wei)代(Dai)码(Ma)如(Ru)下(Xia):(?)
public abstract classBaseServlet extends HttpServlet{ public final void service(HttpServletRequest request,HttpServletResponse response) throws IOExcetion,ServletException { 记(Ji)录(Lu)访(Fang)问(Wen)日(Ri)志(Zhi) 进(Jin)行(Xing)权(Quan)限(Xian)判(Pan)断(Duan) if(具(Ju)有(You)权(Quan)限(Xian)){ try{ doService(request,response); } catch(Excetpion e) { 记(Ji)录(Lu)异(Yi)常(Chang)信(Xin)息(Xi) } } } protected abstract void doService(HttpServletRequest request,HttpServletResponse response) throws IOExcetion,ServletException; //注(Zhu)意(Yi)访(Fang)问(Wen)权(Quan)限(Xian)定(Ding)义(Yi)成(Cheng)protected,(?)显(Xian)得(De)既(Ji)专(Zhuan)业(Ye),(?)又(You)严(Yan)谨(Jin),(?)因(Yin)为(Wei)它(Ta)是(Shi)专(Zhuan)门(Men)给(Gei)子(Zi)类(Lei)用(Yong)的(De) } public class MyServlet1 extendsBaseServlet { protected voiddoService(HttpServletRequest request, HttpServletResponse response) throwsIOExcetion,ServletException { 本(Ben)Servlet只(Zhi)处(Chu)理(Li)的(De)具(Ju)体(Ti)业(Ye)务(Wu)逻(Luo)辑(Ji)代(Dai)码(Ma) } }
父(Fu)类(Lei)方(Fang)法(Fa)中(Zhong)间(Jian)的(De)某(Mou)段(Duan)代(Dai)码(Ma)不(Bu)确(Que)定(Ding),(?)留(Liu)给(Gei)子(Zi)类(Lei)干(Gan),(?)就(Jiu)用(Yong)模(Mo)板(Ban)方(Fang)法(Fa)设(She)计(Ji)模(Mo)式(Shi)。(?)
备(Bei)注(Zhu):(?)这(Zhe)道(Dao)题(Ti)的(De)思(Si)路(Lu)是(Shi)先(Xian)从(Cong)总(Zong)体(Ti)解(Jie)释(Shi)抽(Chou)象(Xiang)类(Lei)和(He)接(Jie)口(Kou)的(De)基(Ji)本(Ben)概(Gai)念(Nian),(?)然(Ran)后(Hou)再(Zai)比(Bi)较(Jiao)两(Liang)者(Zhe)的(De)语(Yu)法(Fa)细(Xi)节(Jie),(?)最(Zui)后(Hou)再(Zai)说(Shuo)两(Liang)者(Zhe)的(De)应(Ying)用(Yong)区(Qu)别(Bie)。(?)比(Bi)较(Jiao)两(Liang)者(Zhe)语(Yu)法(Fa)细(Xi)节(Jie)区(Qu)别(Bie)的(De)条(Tiao)理(Li)是(Shi):(?)先(Xian)从(Cong)一(Yi)个(Ge)类(Lei)中(Zhong)的(De)构(Gou)造(Zao)方(Fang)法(Fa)、(?)普(Pu)通(Tong)成(Cheng)员(Yuan)变(Bian)量(Liang)和(He)方(Fang)法(Fa)((?)包(Bao)括(Kuo)抽(Chou)象(Xiang)方(Fang)法(Fa))(?),(?)静(Jing)态(Tai)变(Bian)量(Liang)和(He)方(Fang)法(Fa),(?)继(Ji)承(Cheng)性(Xing)等(Deng)6个(Ge)方(Fang)面(Mian)逐(Zhu)一(Yi)去(Qu)比(Bi)较(Jiao)回(Hui)答(Da),(?)接(Jie)着(Zhuo)从(Cong)第(Di)三(San)者(Zhe)继(Ji)承(Cheng)的(De)角(Jiao)度(Du)的(De)回(Hui)答(Da),(?)特(Te)别(Bie)是(Shi)最(Zui)后(Hou)用(Yong)了(Liao)一(Yi)个(Ge)典(Dian)型(Xing)的(De)例(Li)子(Zi)来(Lai)展(Zhan)现(Xian)自(Zi)己(Ji)深(Shen)厚(Hou)的(De)技(Ji)术(Shu)功(Gong)底(Di)。(?)
答(Da):(?)JavaScript 与(Yu)Java是(Shi)两(Liang)个(Ge)公(Gong)司(Si)开(Kai)发(Fa)的(De)不(Bu)同(Tong)的(De)两(Liang)个(Ge)产(Chan)品(Pin)。(?)Java 是(Shi)原(Yuan)Sun 公(Gong)司(Si)推(Tui)出(Chu)的(De)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)程(Cheng)序(Xu)设(She)计(Ji)语(Yu)言(Yan),(?)特(Te)别(Bie)适(Shi)合(He)于(Yu)互(Hu)联(Lian)网(Wang)应(Ying)用(Yong)程(Cheng)序(Xu)开(Kai)发(Fa);(?)而(?)JavaScript是(Shi)Netscape公(Gong)司(Si)的(De)产(Chan)品(Pin),(?)为(Wei)了(Liao)扩(Kuo)展(Zhan)Netscape浏(Liu)览(Lan)器(Qi)的(De)功(Gong)能(Neng)而(?)开(Kai)发(Fa)的(De)一(Yi)种(Zhong)可(Ke)以(Yi)嵌(Qian)入(Ru)Web页(Ye)面(Mian)中(Zhong)运(Yun)行(Xing)的(De)基(Ji)于(Yu)对(Dui)象(Xiang)和(He)事(Shi)件(Jian)驱(Qu)动(Dong)的(De)解(Jie)释(Shi)性(Xing)语(Yu)言(Yan),(?)它(Ta)的(De)前(Qian)身(Shen)是(Shi)LiveScript;(?)而(?)Java 的(De)前(Qian)身(Shen)是(Shi)Oak语(Yu)言(Yan)。(?)
下(Xia)面(Mian)对(Dui)两(Liang)种(Zhong)语(Yu)言(Yan)间(Jian)的(De)异(Yi)同(Tong)作(Zuo)如(Ru)下(Xia)比(Bi)较(Jiao):(?)
1)(?)基(Ji)于(Yu)对(Dui)象(Xiang)和(He)面(Mian)向(Xiang)对(Dui)象(Xiang):(?)Java是(Shi)一(Yi)种(Zhong)真(Zhen)正(Zheng)的(De)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)语(Yu)言(Yan),(?)即(Ji)使(Shi)是(Shi)开(Kai)发(Fa)简(Jian)单(Dan)的(De)程(Cheng)序(Xu),(?)必(Bi)须(Xu)设(She)计(Ji)对(Dui)象(Xiang);(?)JavaScript是(Shi)种(Zhong)脚(Jiao)本(Ben)语(Yu)言(Yan),(?)它(Ta)可(Ke)以(Yi)用(Yong)来(Lai)制(Zhi)作(Zuo)与(Yu)网(Wang)络(Luo)无(Wu)关(Guan)的(De),(?)与(Yu)用(Yong)户(Hu)交(Jiao)互(Hu)作(Zuo)用(Yong)的(De)复(Fu)杂(Za)软(Ruan)件(Jian)。(?)它(Ta)是(Shi)一(Yi)种(Zhong)基(Ji)于(Yu)对(Dui)象(Xiang)((?)Object-Based)(?)和(He)事(Shi)件(Jian)驱(Qu)动(Dong)((?)Event-Driven)(?)的(De)编(Bian)程(Cheng)语(Yu)言(Yan)。(?)因(Yin)而(?)它(Ta)本(Ben)身(Shen)提(Ti)供(Gong)了(Liao)非(Fei)常(Chang)丰(Feng)富(Fu)的(De)内(Nei)部(Bu)对(Dui)象(Xiang)供(Gong)设(She)计(Ji)人(Ren)员(Yuan)使(Shi)用(Yong);(?)
2)(?)解(Jie)释(Shi)和(He)编(Bian)译(Yi):(?)Java 的(De)源(Yuan)代(Dai)码(Ma)在(Zai)执(Zhi)行(Xing)之(Zhi)前(Qian),(?)必(Bi)须(Xu)经(Jing)过(Guo)编(Bian)译(Yi);(?)JavaScript 是(Shi)一(Yi)种(Zhong)解(Jie)释(Shi)性(Xing)编(Bian)程(Cheng)语(Yu)言(Yan),(?)其(Qi)源(Yuan)代(Dai)码(Ma)不(Bu)需(Xu)经(Jing)过(Guo)编(Bian)译(Yi),(?)由(You)浏(Liu)览(Lan)器(Qi)解(Jie)释(Shi)执(Zhi)行(Xing);(?)
3)(?)强(Qiang)类(Lei)型(Xing)变(Bian)量(Liang)和(He)类(Lei)型(Xing)弱(Ruo)变(Bian)量(Liang):(?)Java采(Cai)用(Yong)强(Qiang)类(Lei)型(Xing)变(Bian)量(Liang)检(Jian)查(Cha),(?)即(Ji)所(Suo)有(You)变(Bian)量(Liang)在(Zai)编(Bian)译(Yi)之(Zhi)前(Qian)必(Bi)须(Xu)作(Zuo)声(Sheng)明(Ming);(?)JavaScript中(Zhong)变(Bian)量(Liang)声(Sheng)明(Ming),(?)采(Cai)用(Yong)其(Qi)弱(Ruo)类(Lei)型(Xing)。(?)即(Ji)变(Bian)量(Liang)在(Zai)使(Shi)用(Yong)前(Qian)不(Bu)需(Xu)作(Zuo)声(Sheng)明(Ming),(?)而(?)是(Shi)解(Jie)释(Shi)器(Qi)在(Zai)运(Yun)行(Xing)时(Shi)检(Jian)查(Cha)其(Qi)数(Shu)据(Ju)类(Lei)型(Xing);(?)
4)(?)代(Dai)码(Ma)格(Ge)式(Shi)不(Bu)一(Yi)样(Yang)。(?)
补(Bu)充(Chong):(?)上(Shang)面(Mian)列(Lie)出(Chu)的(De)四(Si)点(Dian)是(Shi)原(Yuan)来(Lai)所(Suo)谓(Wei)的(De)标(Biao)准(Zhun)答(Da)案(An)中(Zhong)给(Gei)出(Chu)的(De)。(?)其(Qi)实(Shi)Java和(He)JavaScript最(Zui)重(Zhong)要(Yao)的(De)区(Qu)别(Bie)是(Shi)一(Yi)个(Ge)是(Shi)静(Jing)态(Tai)语(Yu)言(Yan),(?)一(Yi)个(Ge)是(Shi)动(Dong)态(Tai)语(Yu)言(Yan)。(?)目(Mu)前(Qian)的(De)编(Bian)程(Cheng)语(Yu)言(Yan)的(De)发(Fa)展(Zhan)趋(Qu)势(Shi)是(Shi)函(Han)数(Shu)式(Shi)语(Yu)言(Yan)和(He)动(Dong)态(Tai)语(Yu)言(Yan)。(?)在(Zai)Java中(Zhong)类(Lei)((?)class)(?)是(Shi)一(Yi)等(Deng)公(Gong)民(Min),(?)而(?)JavaScript中(Zhong)函(Han)数(Shu)((?)function)(?)是(Shi)一(Yi)等(Deng)公(Gong)民(Min)。(?)对(Dui)于(Yu)这(Zhe)种(Zhong)问(Wen)题(Ti),(?)在(Zai)面(Mian)试(Shi)时(Shi)还(Huan)是(Shi)用(Yong)自(Zi)己(Ji)的(De)语(Yu)言(Yan)回(Hui)答(Da)会(Hui)更(Geng)加(Jia)靠(Kao)谱(Pu)。(?)
答(Da):(?)assertion(断(Duan)言(Yan))在(Zai)软(Ruan)件(Jian)开(Kai)发(Fa)中(Zhong)是(Shi)一(Yi)种(Zhong)常(Chang)用(Yong)的(De)调(Diao)试(Shi)方(Fang)式(Shi),(?)很(Hen)多(Duo)开(Kai)发(Fa)语(Yu)言(Yan)中(Zhong)都(Du)支(Zhi)持(Chi)这(Zhe)种(Zhong)机(Ji)制(Zhi)。(?)一(Yi)般(Ban)来(Lai)说(Shuo),(?)assertion用(Yong)于(Yu)保(Bao)证(Zheng)程(Cheng)序(Xu)最(Zui)基(Ji)本(Ben)、(?)关(Guan)键(Jian)的(De)正(Zheng)确(Que)性(Xing)。(?)assertion检(Jian)查(Cha)通(Tong)常(Chang)在(Zai)开(Kai)发(Fa)和(He)测(Ce)试(Shi)时(Shi)开(Kai)启(Qi)。(?)为(Wei)了(Liao)提(Ti)高(Gao)性(Xing)能(Neng),(?)在(Zai)软(Ruan)件(Jian)发(Fa)布(Bu)后(Hou),(?) assertion检(Jian)查(Cha)通(Tong)常(Chang)是(Shi)关(Guan)闭(Bi)的(De)。(?)在(Zai)实(Shi)现(Xian)中(Zhong),(?)断(Duan)言(Yan)是(Shi)一(Yi)个(Ge)包(Bao)含(Han)布(Bu)尔(?)表(Biao)达(Da)式(Shi)的(De)语(Yu)句(Ju),(?)在(Zai)执(Zhi)行(Xing)这(Zhe)个(Ge)语(Yu)句(Ju)时(Shi)假(Jia)定(Ding)该(Gai)表(Biao)达(Da)式(Shi)为(Wei)true;(?)如(Ru)果(Guo)表(Biao)达(Da)式(Shi)计(Ji)算(Suan)为(Wei)false,(?)那(Na)么(Me)系(Xi)统(Tong)会(Hui)报(Bao)告(Gao)一(Yi)个(Ge)AssertionError。(?)
断(Duan)言(Yan)用(Yong)于(Yu)调(Diao)试(Shi)目(Mu)的(De):(?)
assert(a > 0); // throws an AssertionError if a <= 0
断(Duan)言(Yan)可(Ke)以(Yi)有(You)两(Liang)种(Zhong)形(Xing)式(Shi):(?)
assert Expression1;
assert Expression1 : Expression2 ;
Expression1 应(Ying)该(Gai)总(Zong)是(Shi)产(Chan)生(Sheng)一(Yi)个(Ge)布(Bu)尔(?)值(Zhi)。(?)
Expression2 可(Ke)以(Yi)是(Shi)得(De)出(Chu)一(Yi)个(Ge)值(Zhi)的(De)任(Ren)意(Yi)表(Biao)达(Da)式(Shi);(?)这(Zhe)个(Ge)值(Zhi)用(Yong)于(Yu)生(Sheng)成(Cheng)显(Xian)示(Shi)更(Geng)多(Duo)调(Diao)试(Shi)信(Xin)息(Xi)的(De)字(Zi)符(Fu)串(Chuan)消(Xiao)息(Xi)。(?)
断(Duan)言(Yan)在(Zai)默(Mo)认(Ren)情(Qing)况(Kuang)下(Xia)是(Shi)禁(Jin)用(Yong)的(De),(?)要(Yao)在(Zai)编(Bian)译(Yi)时(Shi)启(Qi)用(Yong)断(Duan)言(Yan),(?)需(Xu)使(Shi)用(Yong)source 1.4 标(Biao)记(Ji):(?)
javac -source 1.4 Test.java
要(Yao)在(Zai)运(Yun)行(Xing)时(Shi)启(Qi)用(Yong)断(Duan)言(Yan),(?)可(Ke)使(Shi)用(Yong)-enableassertions 或(Huo)者(Zhe)-ea 标(Biao)记(Ji)。(?)
要(Yao)在(Zai)运(Yun)行(Xing)时(Shi)选(Xuan)择(Ze)禁(Jin)用(Yong)断(Duan)言(Yan),(?)可(Ke)使(Shi)用(Yong)-da 或(Huo)者(Zhe)-disableassertions 标(Biao)记(Ji)。(?)
要(Yao)在(Zai)系(Xi)统(Tong)类(Lei)中(Zhong)启(Qi)用(Yong)断(Duan)言(Yan),(?)可(Ke)使(Shi)用(Yong)-esa 或(Huo)者(Zhe)-dsa 标(Biao)记(Ji)。(?)还(Huan)可(Ke)以(Yi)在(Zai)包(Bao)的(De)基(Ji)础(Chu)上(Shang)启(Qi)用(Yong)或(Huo)者(Zhe)禁(Jin)用(Yong)断(Duan)言(Yan)。(?)可(Ke)以(Yi)在(Zai)预(Yu)计(Ji)正(Zheng)常(Chang)情(Qing)况(Kuang)下(Xia)不(Bu)会(Hui)到(Dao)达(Da)的(De)任(Ren)何(He)位(Wei)置(Zhi)上(Shang)放(Fang)置(Zhi)断(Duan)言(Yan)。(?)断(Duan)言(Yan)可(Ke)以(Yi)用(Yong)于(Yu)验(Yan)证(Zheng)传(Chuan)递(Di)给(Gei)私(Si)有(You)方(Fang)法(Fa)的(De)参(Can)数(Shu)。(?)不(Bu)过(Guo),(?)断(Duan)言(Yan)不(Bu)应(Ying)该(Gai)用(Yong)于(Yu)验(Yan)证(Zheng)传(Chuan)递(Di)给(Gei)公(Gong)有(You)方(Fang)法(Fa)的(De)参(Can)数(Shu),(?)因(Yin)为(Wei)不(Bu)管(Guan)是(Shi)否(Fou)启(Qi)用(Yong)了(Liao)断(Duan)言(Yan),(?)公(Gong)有(You)方(Fang)法(Fa)都(Du)必(Bi)须(Xu)检(Jian)查(Cha)其(Qi)参(Can)数(Shu)。(?)不(Bu)过(Guo),(?)既(Ji)可(Ke)以(Yi)在(Zai)公(Gong)有(You)方(Fang)法(Fa)中(Zhong),(?)也(Ye)可(Ke)以(Yi)在(Zai)非(Fei)公(Gong)有(You)方(Fang)法(Fa)中(Zhong)利(Li)用(Yong)断(Duan)言(Yan)测(Ce)试(Shi)后(Hou)置(Zhi)条(Tiao)件(Jian)。(?)另(Ling)外(Wai),(?)断(Duan)言(Yan)不(Bu)应(Ying)该(Gai)以(Yi)任(Ren)何(He)方(Fang)式(Shi)改(Gai)变(Bian)程(Cheng)序(Xu)的(De)状(Zhuang)态(Tai)。(?)
答(Da):(?)UML是(Shi)统(Tong)一(Yi)建(Jian)模(Mo)语(Yu)言(Yan)((?)Unified Modeling Language)(?)的(De)缩(Suo)写(Xie),(?)它(Ta)发(Fa)表(Biao)于(Yu)1997年(Nian),(?)综(Zong)合(He)了(Liao)当(Dang)时(Shi)已(Yi)经(Jing)存(Cun)在(Zai)的(De)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)建(Jian)模(Mo)语(Yu)言(Yan)、(?)方(Fang)法(Fa)和(He)过(Guo)程(Cheng),(?)是(Shi)一(Yi)个(Ge)支(Zhi)持(Chi)模(Mo)型(Xing)化(Hua)和(He)软(Ruan)件(Jian)系(Xi)统(Tong)开(Kai)发(Fa)的(De)图(Tu)形(Xing)化(Hua)语(Yu)言(Yan),(?)为(Wei)软(Ruan)件(Jian)开(Kai)发(Fa)的(De)所(Suo)有(You)阶(Jie)段(Duan)提(Ti)供(Gong)模(Mo)型(Xing)化(Hua)和(He)可(Ke)视(Shi)化(Hua)支(Zhi)持(Chi)。(?)使(Shi)用(Yong)UML可(Ke)以(Yi)帮(Bang)助(Zhu)沟(Gou)通(Tong)与(Yu)交(Jiao)流(Liu),(?)辅(Fu)助(Zhu)应(Ying)用(Yong)设(She)计(Ji)和(He)文(Wen)档(Dang)的(De)生(Sheng)成(Cheng),(?)还(Huan)能(Neng)够(Gou)阐(Chan)释(Shi)系(Xi)统(Tong)的(De)结(Jie)构(Gou)和(He)行(Xing)为(Wei)。(?)UML定(Ding)义(Yi)了(Liao)多(Duo)种(Zhong)图(Tu)形(Xing)化(Hua)的(De)符(Fu)号(Hao)来(Lai)描(Miao)述(Shu)软(Ruan)件(Jian)系(Xi)统(Tong)部(Bu)分(Fen)或(Huo)全(Quan)部(Bu)的(De)静(Jing)态(Tai)结(Jie)构(Gou)和(He)动(Dong)态(Tai)结(Jie)构(Gou),(?)包(Bao)括(Kuo):(?)用(Yong)例(Li)图(Tu)((?)use case diagram)(?)、(?)类(Lei)图(Tu)((?)class diagram)(?)、(?)时(Shi)序(Xu)图(Tu)((?)sequence diagram)(?)、(?)协(Xie)作(Zuo)图(Tu)((?)collaboration diagram)(?)、(?)状(Zhuang)态(Tai)图(Tu)((?)statechart diagram)(?)、(?)活(Huo)动(Dong)图(Tu)((?)activity diagram)(?)、(?)构(Gou)件(Jian)图(Tu)((?)component diagram)(?)、(?)部(Bu)署(Shu)图(Tu)((?)deployment diagram)(?)等(Deng)。(?)在(Zai)这(Zhe)些(Xie)图(Tu)形(Xing)化(Hua)符(Fu)号(Hao)中(Zhong),(?)有(You)三(San)种(Zhong)图(Tu)最(Zui)为(Wei)重(Zhong)要(Yao),(?)分(Fen)别(Bie)是(Shi):(?)用(Yong)例(Li)图(Tu)((?)用(Yong)来(Lai)捕(Bu)获(Huo)需(Xu)求(Qiu),(?)描(Miao)述(Shu)系(Xi)统(Tong)的(De)功(Gong)能(Neng),(?)通(Tong)过(Guo)该(Gai)图(Tu)可(Ke)以(Yi)迅(Xun)速(Su)的(De)了(Liao)解(Jie)系(Xi)统(Tong)的(De)功(Gong)能(Neng)模(Mo)块(Kuai)及(Ji)其(Qi)关(Guan)系(Xi))(?)、(?)类(Lei)图(Tu)((?)描(Miao)述(Shu)类(Lei)以(Yi)及(Ji)类(Lei)与(Yu)类(Lei)之(Zhi)间(Jian)的(De)关(Guan)系(Xi),(?)通(Tong)过(Guo)该(Gai)图(Tu)可(Ke)以(Yi)快(Kuai)速(Su)了(Liao)解(Jie)系(Xi)统(Tong))(?)、(?)时(Shi)序(Xu)图(Tu)((?)描(Miao)述(Shu)执(Zhi)行(Xing)特(Te)定(Ding)任(Ren)务(Wu)时(Shi)对(Dui)象(Xiang)之(Zhi)间(Jian)的(De)交(Jiao)互(Hu)关(Guan)系(Xi)以(Yi)及(Ji)执(Zhi)行(Xing)顺(Shun)序(Xu),(?)通(Tong)过(Guo)该(Gai)图(Tu)可(Ke)以(Yi)了(Liao)解(Jie)对(Dui)象(Xiang)能(Neng)接(Jie)收(Shou)的(De)消(Xiao)息(Xi)也(Ye)就(Jiu)是(Shi)说(Shuo)对(Dui)象(Xiang)能(Neng)够(Gou)向(Xiang)外(Wai)界(Jie)提(Ti)供(Gong)的(De)服(Fu)务(Wu))(?)。(?)
用(Yong)例(Li)图(Tu):(?)



答(Da):(?) XML文(Wen)档(Dang)定(Ding)义(Yi)分(Fen)为(Wei)DTD和(He)Schema两(Liang)种(Zhong)形(Xing)式(Shi);(?)其(Qi)本(Ben)质(Zhi)区(Qu)别(Bie)在(Zai)于(Yu)Schema本(Ben)身(Shen)也(Ye)是(Shi)一(Yi)个(Ge)XML文(Wen)件(Jian),(?)可(Ke)以(Yi)被(Bei)XML解(Jie)析(Xi)器(Qi)解(Jie)析(Xi)。(?)对(Dui)XML的(De)解(Jie)析(Xi)主(Zhu)要(Yao)有(You)DOM((?)文(Wen)档(Dang)对(Dui)象(Xiang)模(Mo)型(Xing))(?)、(?)SAX、(?)StAX((?)JDK 1.6中(Zhong)引(Yin)入(Ru)的(De)新(Xin)的(De)解(Jie)析(Xi)XML的(De)方(Fang)式(Shi),(?)Streaming API for XML)(?) 等(Deng),(?)其(Qi)中(Zhong)DOM处(Chu)理(Li)大(Da)型(Xing)文(Wen)件(Jian)时(Shi)其(Qi)性(Xing)能(Neng)下(Xia)降(Jiang)的(De)非(Fei)常(Chang)厉(Li)害(Hai),(?)这(Zhe)个(Ge)问(Wen)题(Ti)是(Shi)由(You)DOM 的(De)树(Shu)结(Jie)构(Gou)所(Suo)造(Zao)成(Cheng)的(De),(?)这(Zhe)种(Zhong)结(Jie)构(Gou)占(Zhan)用(Yong)的(De)内(Nei)存(Cun)较(Jiao)多(Duo),(?)而(?)且(Qie)DOM 必(Bi)须(Xu)在(Zai)解(Jie)析(Xi)文(Wen)件(Jian)之(Zhi)前(Qian)把(Ba)整(Zheng)个(Ge)文(Wen)档(Dang)装(Zhuang)入(Ru)内(Nei)存(Cun),适(Shi)合(He)对(Dui)XML 的(De)随(Sui)机(Ji)访(Fang)问(Wen)((?)典(Dian)型(Xing)的(De)用(Yong)空(Kong)间(Jian)换(Huan)取(Qu)时(Shi)间(Jian)的(De)策(Ce)略(Lue))(?);(?)SAX是(Shi)事(Shi)件(Jian)驱(Qu)动(Dong)型(Xing)的(De)XML解(Jie)析(Xi)方(Fang)式(Shi),(?)它(Ta)顺(Shun)序(Xu)读(Du)取(Qu)XML文(Wen)件(Jian),(?)不(Bu)需(Xu)要(Yao)一(Yi)次(Ci)全(Quan)部(Bu)装(Zhuang)载(Zai)整(Zheng)个(Ge)文(Wen)件(Jian)。(?)当(Dang)遇(Yu)到(Dao)像(Xiang)文(Wen)件(Jian)开(Kai)头(Tou),(?)文(Wen)档(Dang)结(Jie)束(Shu),(?)或(Huo)者(Zhe)标(Biao)签(Qian)开(Kai)头(Tou)与(Yu)标(Biao)签(Qian)结(Jie)束(Shu)时(Shi),(?)它(Ta)会(Hui)触(Chu)发(Fa)一(Yi)个(Ge)事(Shi)件(Jian),(?)用(Yong)户(Hu)通(Tong)过(Guo)在(Zai)其(Qi)回(Hui)调(Diao)事(Shi)件(Jian)中(Zhong)写(Xie)入(Ru)处(Chu)理(Li)代(Dai)码(Ma)来(Lai)处(Chu)理(Li)XML文(Wen)件(Jian),(?)适(Shi)合(He)对(Dui)XML 的(De)顺(Shun)序(Xu)访(Fang)问(Wen);(?)如(Ru)其(Qi)名(Ming)称(Cheng)所(Suo)暗(An)示(Shi)的(De)那(Na)样(Yang),(?)StAX把(Ba)重(Zhong)点(Dian)放(Fang)在(Zai)流(Liu)上(Shang)。(?)实(Shi)际(Ji)上(Shang),(?)StAX与(Yu)其(Qi)他(Ta)方(Fang)法(Fa)的(De)区(Qu)别(Bie)就(Jiu)在(Zai)于(Yu)应(Ying)用(Yong)程(Cheng)序(Xu)能(Neng)够(Gou)把(Ba)XML作(Zuo)为(Wei)一(Yi)个(Ge)事(Shi)件(Jian)流(Liu)来(Lai)处(Chu)理(Li)。(?)将(Jiang)XML作(Zuo)为(Wei)一(Yi)组(Zu)事(Shi)件(Jian)来(Lai)处(Chu)理(Li)的(De)想(Xiang)法(Fa)并(Bing)不(Bu)新(Xin)颖(Ying)((?)事(Shi)实(Shi)上(Shang) SAX 已(Yi)经(Jing)提(Ti)出(Chu)来(Lai)了(Liao))(?),(?)但(Dan)不(Bu)同(Tong)之(Zhi)处(Chu)在(Zai)于(Yu)StAX允(Yun)许(Xu)应(Ying)用(Yong)程(Cheng)序(Xu)代(Dai)码(Ma)把(Ba)这(Zhe)些(Xie)事(Shi)件(Jian)逐(Zhu)个(Ge)拉(La)出(Chu)来(Lai),(?)而(?)不(Bu)用(Yong)提(Ti)供(Gong)在(Zai)解(Jie)析(Xi)器(Qi)方(Fang)便(Bian)时(Shi)从(Cong)解(Jie)析(Xi)器(Qi)中(Zhong)接(Jie)收(Shou)事(Shi)件(Jian)的(De)处(Chu)理(Li)程(Cheng)序(Xu)。(?)
答(Da):(?) XML的(De)主(Zhu)要(Yao)作(Zuo)用(Yong)有(You)两(Liang)个(Ge)方(Fang)面(Mian):(?)数(Shu)据(Ju)交(Jiao)换(Huan)((?)曾(Zeng)经(Jing)被(Bei)称(Cheng)为(Wei)业(Ye)界(Jie)数(Shu)据(Ju)交(Jiao)换(Huan)的(De)事(Shi)实(Shi)标(Biao)准(Zhun),(?)现(Xian)在(Zai)此(Ci)项(Xiang)功(Gong)能(Neng)在(Zai)很(Hen)多(Duo)时(Shi)候(Hou)都(Du)被(Bei)JSON取(Qu)代(Dai))(?)和(He)信(Xin)息(Xi)配(Pei)置(Zhi)。(?)在(Zai)做(Zuo)数(Shu)据(Ju)交(Jiao)换(Huan)时(Shi),(?)XML将(Jiang)数(Shu)据(Ju)用(Yong)标(Biao)签(Qian)组(Zu)装(Zhuang)成(Cheng)起(Qi)来(Lai),(?)然(Ran)后(Hou)压(Ya)缩(Suo)打(Da)包(Bao)加(Jia)密(Mi)后(Hou)通(Tong)过(Guo)网(Wang)络(Luo)传(Chuan)送(Song)给(Gei)接(Jie)收(Shou)者(Zhe),(?)接(Jie)收(Shou)解(Jie)密(Mi)与(Yu)解(Jie)压(Ya)缩(Suo)后(Hou)再(Zai)从(Cong)XML文(Wen)件(Jian)中(Zhong)还(Huan)原(Yuan)相(Xiang)关(Guan)信(Xin)息(Xi)进(Jin)行(Xing)处(Chu)理(Li)。(?)目(Mu)前(Qian)很(Hen)多(Duo)软(Ruan)件(Jian)都(Du)使(Shi)用(Yong)XML来(Lai)存(Cun)储(Chu)配(Pei)置(Zhi)信(Xin)息(Xi),(?)很(Hen)多(Duo)项(Xiang)目(Mu)中(Zhong)我(Wo)们(Men)通(Tong)常(Chang)也(Ye)会(Hui)将(Jiang)作(Zuo)为(Wei)配(Pei)置(Zhi)的(De)硬(Ying)代(Dai)码(Ma)((?)hard code)(?)写(Xie)在(Zai)XML文(Wen)件(Jian)中(Zhong),(?)Java的(De)很(Hen)多(Duo)框(Kuang)架(Jia)也(Ye)是(Shi)这(Zhe)么(Me)做(Zuo)的(De)。(?)
Function testE(ss){ var reg=/^[1-9][0-9]{5}$/;(?) if(req.test(ss)){ alert(“(?)邮(You)编(Bian)OK”(?)) }else{ alert(“(?)邮(You)编(Bian)格(Ge)式(Shi)不(Bu)正(Zheng)确(Que)”(?));(?) } }
$(“(?)*”(?)).css(“(?)border”(?),”(?)2px dashed”(?))
答(Da)案(An):(?)调(Diao)用(Yong)jQuery中(Zhong)的(De)ajax函(Han)数(Shu),(?)设(She)置(Zhi)其(Qi)async属(Shu)性(Xing)来(Lai)表(Biao)明(Ming)是(Shi)异(Yi)步(Bu)还(Huan)是(Shi)同(Tong)步(Bu),(?)如(Ru)下(Xia):(?)
$.ajax({
async:true//表(Biao)示(Shi)异(Yi)步(Bu),(?)false表(Biao)示(Shi)同(Tong)步(Bu)
})
答(Da)案(An):(?)兼(Jian)容(Rong)firefox的(De) outerHTML,(?)FF中(Zhong)没(Mei)有(You)outerHtml的(De)方(Fang)法(Fa)
IE下(Xia),可(Ke)以(Yi)使(Shi)用(Yong)()或(Huo)[]获(Huo)取(Qu)集(Ji)合(He)类(Lei)对(Dui)象(Xiang);Firefox下(Xia),只(Zhi)能(Neng)使(Shi)用(Yong)[]获(Huo)取(Qu)集(Ji)合(He)类(Lei)对(Dui)象(Xiang).解(Jie)决(Jue)方(Fang)法(Fa):统(Tong)一(Yi)使(Shi)用(Yong)[]获(Huo)取(Qu)集(Ji)合(He)类(Lei)对(Dui)象(Xiang).
IE下(Xia),可(Ke)以(Yi)使(Shi)用(Yong)获(Huo)取(Qu)常(Chang)规(Gui)属(Shu)性(Xing)的(De)方(Fang)法(Fa)来(Lai)获(Huo)取(Qu)自(Zi)定(Ding)义(Yi)属(Shu)性(Xing),也(Ye)可(Ke)以(Yi)使(Shi)用(Yong)getAttribute()获(Huo)取(Qu)自(Zi)定(Ding)义(Yi)属(Shu)性(Xing);Firefox下(Xia),只(Zhi)能(Neng)使(Shi)用(Yong)getAttribute()获(Huo)取(Qu)自(Zi)定(Ding)义(Yi)属(Shu)性(Xing).解(Jie)决(Jue)方(Fang)法(Fa):统(Tong)一(Yi)通(Tong)过(Guo)getAttribute()获(Huo)取(Qu)自(Zi)定(Ding)义(Yi)属(Shu)性(Xing)
$.post(“(?)show”(?),{uname=”(?)张(Zhang)三(San)”(?),(?)pwd=”(?)123”(?)},function(data){ alert(data) })
答(Da)案(An):(?)ready 事(Shi)件(Jian)的(De)触(Chu)发(Fa),(?)表(Biao)示(Shi)文(Wen)档(Dang)结(Jie)构(Gou)已(Yi)经(Jing)加(Jia)载(Zai)完(Wan)成(Cheng)((?)不(Bu)包(Bao)含(Han)图(Tu)片(Pian)等(Deng)非(Fei)文(Wen)字(Zi)媒(Mei)体(Ti)文(Wen)件(Jian))(?)
onload 事(Shi)件(Jian)的(De)触(Chu)发(Fa),(?)表(Biao)示(Shi)页(Ye)面(Mian)包(Bao)含(Han)图(Tu)片(Pian)等(Deng)文(Wen)件(Jian)在(Zai)内(Nei)的(De)所(Suo)有(You)元(Yuan)素(Su)都(Du)加(Jia)载(Zai)完(Wan)成(Cheng)。(?)
答(Da)案(An):(?)
基(Ji)本(Ben)选(Xuan)择(Ze)器(Qi)
层(Ceng)次(Ci)选(Xuan)择(Ze)器(Qi)
基(Ji)本(Ben)过(Guo)滤(Lu)选(Xuan)择(Ze)器(Qi)
内(Nei)容(Rong)过(Guo)滤(Lu)选(Xuan)择(Ze)器(Qi)
可(Ke)见(Jian)性(Xing)过(Guo)滤(Lu)选(Xuan)择(Ze)器(Qi)
属(Shu)性(Xing)过(Guo)滤(Lu)选(Xuan)择(Ze)器(Qi)
子(Zi)元(Yuan)素(Su)过(Guo)滤(Lu)选(Xuan)择(Ze)器(Qi)
表(Biao)单(Dan)选(Xuan)择(Ze)器(Qi)
表(Biao)单(Dan)过(Guo)滤(Lu)选(Xuan)择(Ze)器(Qi)
答(Da)案(An):(?)使(Shi)用(Yong)reload()即(Ji)可(Ke)
Div居(Ju)中(Zhong):(?)
margin:auto 0px;
内(Nei)容(Rong)居(Ju)中(Zhong):
text-align:center;
答(Da)案(An):(?)
存(Cun)储(Chu)角(Jiao)度(Du):(?)
Session是(Shi)服(Fu)务(Wu)器(Qi)端(Duan)的(De)数(Shu)据(Ju)存(Cun)储(Chu)技(Ji)术(Shu),(?)cookie是(Shi)客(Ke)户(Hu)端(Duan)的(De)数(Shu)据(Ju)存(Cun)储(Chu)技(Ji)术(Shu)
解(Jie)决(Jue)问(Wen)题(Ti)角(Jiao)度(Du):(?)
Session解(Jie)决(Jue)的(De)是(Shi)一(Yi)个(Ge)用(Yong)户(Hu)不(Bu)同(Tong)请(Qing)求(Qiu)的(De)数(Shu)据(Ju)共(Gong)享(Xiang)问(Wen)题(Ti),(?)cookie解(Jie)决(Jue)的(De)是(Shi)不(Bu)同(Tong)请(Qing)求(Qiu)的(De)请(Qing)求(Qiu)数(Shu)据(Ju)的(De)共(Gong)享(Xiang)问(Wen)题(Ti)
生(Sheng)命(Ming)周(Zhou)期(Qi)角(Jiao)度(Du):(?)
Session的(De)id是(Shi)依(Yi)赖(Lai)于(Yu)cookie来(Lai)进(Jin)行(Xing)存(Cun)储(Chu)的(De),(?)浏(Liu)览(Lan)器(Qi)关(Guan)闭(Bi)id就(Jiu)会(Hui)失(Shi)效(Xiao)
Cookie可(Ke)以(Yi)单(Dan)独(Du)的(De)设(She)置(Zhi)其(Qi)在(Zai)浏(Liu)览(Lan)器(Qi)的(De)存(Cun)储(Chu)时(Shi)间(Jian)。(?)
答(Da)案(An):(?)
赋(Fu)值(Zhi)角(Jiao)度(Du)说(Shuo)明(Ming):(?)
null 表(Biao)示(Shi)此(Ci)处(Chu)没(Mei)有(You)值(Zhi),(?)undefined表(Biao)示(Shi)此(Ci)处(Chu)定(Ding)义(Yi)了(Liao)但(Dan)是(Shi)没(Mei)有(You)赋(Fu)值(Zhi)
从(Cong)数(Shu)据(Ju)转(Zhuan)换(Huan)角(Jiao)度(Du):(?)
Null在(Zai)做(Zuo)数(Shu)值(Zhi)转(Zhuan)换(Huan)时(Shi)会(Hui)被(Bei)转(Zhuan)换(Huan)为(Wei)0,(?)undefined会(Hui)被(Bei)转(Zhuan)换(Huan)为(Wei)NaN
答(Da)案(An):(?)
区(Qu)别(Bie):(?)doPost用(Yong)来(Lai)处(Chu)理(Li)post请(Qing)求(Qiu),(?)doGet用(Yong)来(Lai)处(Chu)理(Li)get请(Qing)求(Qiu),(?)获(Huo)取(Qu)参(Can)数(Shu):(?)获(Huo)取(Qu)的(De)参(Can)数(Shu)是(Shi)相(Xiang)同(Tong)的(De)都(Du)是(Shi)HttpServletRequest \HttpServletResponse
答(Da)案(An):(?)$(“(?)a[class=view-link]”(?)).attr(“(?)target”(?),”(?)_blank”(?))
var scope ="global scope"; function checkscope() { var scope ="local scope”(?);(?) return function() { return scope} } console.log (checkscope()());
eq返(Fan)回(Hui)的(De)是(Shi)一(Yi)个(Ge)jquery对(Dui)象(Xiang) get返(Fan)回(Hui)的(De)是(Shi)一(Yi)个(Ge)html对(Dui)象(Xiang)
在(Zai)启(Qi)动(Dong)Weblogic的(De)脚(Jiao)本(Ben)中(Zhong)((?)位(Wei)于(Yu)所(Suo)在(Zai)Domian对(Dui)应(Ying)服(Fu)务(Wu)器(Qi)目(Mu)录(Lu)下(Xia)的(De)startServerName)(?),(?)增(Zeng)加(Jia)set MEM_ARGS=-Xms32m -Xmx200m,(?)可(Ke)以(Yi)调(Diao)整(Zheng)最(Zui)小(Xiao)内(Nei)存(Cun)为(Wei)32M,(?)最(Zui)大(Da)200M
三(San)次(Ci)握(Wo)手(Shou)是(Shi)为(Wei)了(Liao)防(Fang)止(Zhi)已(Yi)失(Shi)效(Xiao)的(De)连(Lian)接(Jie)请(Qing)求(Qiu)再(Zai)次(Ci)传(Chuan)送(Song)到(Dao)服(Fu)务(Wu)器(Qi)端(Duan)。(?) 二(?)次(Ci)握(Wo)手(Shou)不(Bu)可(Ke)行(Xing),(?)因(Yin)为(Wei):(?)如(Ru)果(Guo)由(You)于(Yu)网(Wang)络(Luo)不(Bu)稳(Wen)定(Ding),(?)虽(Sui)然(Ran)客(Ke)户(Hu)端(Duan)以(Yi)前(Qian)发(Fa)送(Song)的(De)连(Lian)接(Jie)请(Qing)求(Qiu)以(Yi)到(Dao)达(Da)服(Fu)务(Wu)方(Fang),(?)但(Dan)服(Fu)务(Wu)方(Fang)的(De)同(Tong)意(Yi)连(Lian)接(Jie)的(De)应(Ying)答(Da)未(Wei)能(Neng)到(Dao)达(Da)客(Ke)户(Hu)端(Duan)。(?)则(Ze)客(Ke)户(Hu)方(Fang)要(Yao)重(Zhong)新(Xin)发(Fa)送(Song)连(Lian)接(Jie)请(Qing)求(Qiu),(?)若(Ruo)采(Cai)用(Yong)二(?)次(Ci)握(Wo)手(Shou),(?)服(Fu)务(Wu)方(Fang)收(Shou)到(Dao)重(Zhong)传(Chuan)的(De)请(Qing)求(Qiu)连(Lian)接(Jie)后(Hou),(?)会(Hui)以(Yi)为(Wei)是(Shi)新(Xin)的(De)请(Qing)求(Qiu),(?)就(Jiu)会(Hui)发(Fa)送(Song)同(Tong)意(Yi)连(Lian)接(Jie)报(Bao)文(Wen),(?)并(Bing)新(Xin)开(Kai)进(Jin)程(Cheng)提(Ti)供(Gong)服(Fu)务(Wu),(?)这(Zhe)样(Yang)会(Hui)造(Zao)成(Cheng)服(Fu)务(Wu)方(Fang)资(Zi)源(Yuan)的(De)无(Wu)谓(Wei)浪(Lang)费(Fei)
A. | 200ok表(Biao)示(Shi)请(Qing)求(Qiu)成(Cheng)功(Gong) |
B. | 400不(Bu)良(Liang)请(Qing)求(Qiu)表(Biao)示(Shi)服(Fu)务(Wu)器(Qi)未(Wei)发(Fa)现(Xian)与(Yu)请(Qing)求(Qiu)URL匹(Pi)配(Pei)内(Nei)容(Rong) |
C. | 404未(Wei)发(Fa)现(Xian)表(Biao)示(Shi)由(You)于(Yu)语(Yu)法(Fa)错(Cuo)误(Wu)儿(?)导(Dao)致(Zhi)服(Fu)务(Wu)器(Qi)无(Wu)法(Fa)理(Li)解(Jie)请(Qing)求(Qiu)信(Xin)息(Xi) |
D. | 500内(Nei)部(Bu)服(Fu)务(Wu)器(Qi)错(Cuo)误(Wu),(?)无(Wu)法(Fa)处(Chu)理(Li)请(Qing)求(Qiu) |
答(Da)案(An):(?)D
分(Fen)析(Xi):(?)
A 200ok 表(Biao)示(Shi)的(De)意(Yi)思(Si)是(Shi)一(Yi)切(Qie)正(Zheng)常(Chang)。(?)一(Yi)般(Ban)用(Yong)于(Yu)相(Xiang)应(Ying)GET和(He)POST请(Qing)求(Qiu)。(?)这(Zhe)个(Ge)状(Zhuang)态(Tai)码(Ma)对(Dui)servlet是(Shi)缺(Que)省(Sheng)的(De);(?)如(Ru)果(Guo)没(Mei)有(You)调(Diao)用(Yong)setStatus方(Fang)法(Fa)的(De)话(Hua),(?)就(Jiu)会(Hui)得(De)到(Dao)200。(?)
B 400 表(Biao)示(Shi)指(Zhi)出(Chu)客(Ke)户(Hu)端(Duan)请(Qing)求(Qiu)中(Zhong)的(De)语(Yu)法(Fa)错(Cuo)误(Wu)
C 404 客(Ke)户(Hu)端(Duan)所(Suo)给(Gei)的(De)地(Di)址(Zhi)无(Wu)法(Fa)找(Zhao)到(Dao)任(Ren)何(He)资(Zi)源(Yuan)
|
A. | JSP命(Ming)令(Ling) |
B. | JSP Action |
C. | JSP脚(Jiao)本(Ben) |
D. | JSP控(Kong)件(Jian) |
答(Da)案(An):(?)C
分(Fen)析(Xi):(?)JSP页(Ye)面(Mian)元(Yuan)素(Su)构(Gou)成(Cheng)如(Ru)下(Xia),(?)因(Yin)此(Ci)ABD错(Cuo)误(Wu)
A 200ok 表(Biao)示(Shi)的(De)意(Yi)思(Si)是(Shi)一(Yi)切(Qie)正(Zheng)常(Chang)。(?)一(Yi)般(Ban)用(Yong)于(Yu)相(Xiang)应(Ying)GET和(He)POST请(Qing)求(Qiu)。(?)这(Zhe)个(Ge)状(Zhuang)态(Tai)码(Ma)对(Dui)servlet是(Shi)缺(Que)省(Sheng)的(De);(?)如(Ru)果(Guo)没(Mei)有(You)调(Diao)用(Yong)setStatus方(Fang)法(Fa)的(De)话(Hua),(?)就(Jiu)会(Hui)得(De)到(Dao)200。(?)
B 400 表(Biao)示(Shi)指(Zhi)出(Chu)客(Ke)户(Hu)端(Duan)请(Qing)求(Qiu)中(Zhong)的(De)语(Yu)法(Fa)错(Cuo)误(Wu)
C 404 客(Ke)户(Hu)端(Duan)所(Suo)给(Gei)的(De)地(Di)址(Zhi)无(Wu)法(Fa)找(Zhao)到(Dao)任(Ren)何(He)资(Zi)源(Yuan)
![]() |
A. | DOM |
B. | CSS |
C. | JavaScript |
D. | XmlHttpRequest |
答(Da)案(An):(?)A
|
A. | HttpSession session=new HttpSession(); |
B. | String haha=session getParameler(:haha”(?)); |
C. | session.removeAttribute(“(?)haha”(?)); |
D. | session.setAttribute(:haha:);XmlHttpRequest |
答(Da)案(An):(?)A
|
答(Da)案(An):(?)1、(?)request对(Dui)象(Xiang)
request 对(Dui)象(Xiang)是(Shi) javax.servlet.httpServletRequest类(Lei)型(Xing)的(De)对(Dui)象(Xiang)。(?) 该(Gai)对(Dui)象(Xiang)代(Dai)表(Biao)了(Liao)客(Ke)户(Hu)端(Duan)的(De)请(Qing)求(Qiu)信(Xin)息(Xi),(?)主(Zhu)要(Yao)用(Yong)于(Yu)接(Jie)受(Shou)通(Tong)过(Guo)HTTP协(Xie)议(Yi)传(Chuan)送(Song)到(Dao)服(Fu)务(Wu)器(Qi)的(De)数(Shu)据(Ju)。(?)((?)包(Bao)括(Kuo)头(Tou)信(Xin)息(Xi)、(?)系(Xi)统(Tong)信(Xin)息(Xi)、(?)请(Qing)求(Qiu)方(Fang)式(Shi)以(Yi)及(Ji)请(Qing)求(Qiu)参(Can)数(Shu)等(Deng))(?)。(?)request对(Dui)象(Xiang)的(De)作(Zuo)用(Yong)域(Yu)为(Wei)一(Yi)次(Ci)请(Qing)求(Qiu)。(?)
2、(?)response对(Dui)象(Xiang)
response 代(Dai)表(Biao)的(De)是(Shi)对(Dui)客(Ke)户(Hu)端(Duan)的(De)响(Xiang)应(Ying),(?)主(Zhu)要(Yao)是(Shi)将(Jiang)JSP容(Rong)器(Qi)处(Chu)理(Li)过(Guo)的(De)对(Dui)象(Xiang)传(Chuan)回(Hui)到(Dao)客(Ke)户(Hu)端(Duan)。(?)response对(Dui)象(Xiang)也(Ye)具(Ju)有(You)作(Zuo)用(Yong)域(Yu),(?)它(Ta)只(Zhi)在(Zai)JSP页(Ye)面(Mian)内(Nei)有(You)效(Xiao)。(?)
3、(?)session对(Dui)象(Xiang)
session 对(Dui)象(Xiang)是(Shi)由(You)服(Fu)务(Wu)器(Qi)自(Zi)动(Dong)创(Chuang)建(Jian)的(De)与(Yu)用(Yong)户(Hu)请(Qing)求(Qiu)相(Xiang)关(Guan)的(De)对(Dui)象(Xiang)。(?)服(Fu)务(Wu)器(Qi)为(Wei)每(Mei)个(Ge)用(Yong)户(Hu)都(Du)生(Sheng)成(Cheng)一(Yi)个(Ge)session对(Dui)象(Xiang),(?)用(Yong)于(Yu)保(Bao)存(Cun)该(Gai)用(Yong)户(Hu)的(De)信(Xin)息(Xi),(?)跟(Gen)踪(Zong)用(Yong)户(Hu)的(De)操(Cao)作(Zuo)状(Zhuang)态(Tai)。(?)session对(Dui)象(Xiang)内(Nei)部(Bu)使(Shi)用(Yong)Map类(Lei)来(Lai)保(Bao)存(Cun)数(Shu)据(Ju),(?)因(Yin)此(Ci)保(Bao)存(Cun)数(Shu)据(Ju)的(De)格(Ge)式(Shi)为(Wei) “(?)Key/value”(?)。(?) session对(Dui)象(Xiang)的(De)value可(Ke)以(Yi)使(Shi)复(Fu)杂(Za)的(De)对(Dui)象(Xiang)类(Lei)型(Xing),(?)而(?)不(Bu)仅(Jin)仅(Jin)局(Ju)限(Xian)于(Yu)字(Zi)符(Fu)串(Chuan)类(Lei)型(Xing)。(?)
4、(?)application对(Dui)象(Xiang)
application 对(Dui)象(Xiang)可(Ke)将(Jiang)信(Xin)息(Xi)保(Bao)存(Cun)在(Zai)服(Fu)务(Wu)器(Qi)中(Zhong),(?)直(Zhi)到(Dao)服(Fu)务(Wu)器(Qi)关(Guan)闭(Bi),(?)否(Fou)则(Ze)application对(Dui)象(Xiang)中(Zhong)保(Bao)存(Cun)的(De)信(Xin)息(Xi)会(Hui)在(Zai)整(Zheng)个(Ge)应(Ying)用(Yong)中(Zhong)都(Du)有(You)效(Xiao)。(?)与(Yu)session对(Dui)象(Xiang)相(Xiang)比(Bi),(?)application对(Dui)象(Xiang)生(Sheng)命(Ming)周(Zhou)期(Qi)更(Geng)长(Chang),(?)类(Lei)似(Si)于(Yu)系(Xi)统(Tong)的(De)“(?)全(Quan)局(Ju)变(Bian)量(Liang)”(?)。(?)
5、(?)out 对(Dui)象(Xiang)
out 对(Dui)象(Xiang)用(Yong)于(Yu)在(Zai)Web浏(Liu)览(Lan)器(Qi)内(Nei)输(Shu)出(Chu)信(Xin)息(Xi),(?)并(Bing)且(Qie)管(Guan)理(Li)应(Ying)用(Yong)服(Fu)务(Wu)器(Qi)上(Shang)的(De)输(Shu)出(Chu)缓(Huan)冲(Chong)区(Qu)。(?)在(Zai)使(Shi)用(Yong) out 对(Dui)象(Xiang)输(Shu)出(Chu)数(Shu)据(Ju)时(Shi),(?)可(Ke)以(Yi)对(Dui)数(Shu)据(Ju)缓(Huan)冲(Chong)区(Qu)进(Jin)行(Xing)操(Cao)作(Zuo),(?)及(Ji)时(Shi)清(Qing)除(Chu)缓(Huan)冲(Chong)区(Qu)中(Zhong)的(De)残(Can)余(Yu)数(Shu)据(Ju),(?)为(Wei)其(Qi)他(Ta)的(De)输(Shu)出(Chu)让(Rang)出(Chu)缓(Huan)冲(Chong)空(Kong)间(Jian)。(?)待(Dai)数(Shu)据(Ju)输(Shu)出(Chu)完(Wan)毕(Bi)后(Hou),(?)要(Yao)及(Ji)时(Shi)关(Guan)闭(Bi)输(Shu)出(Chu)流(Liu)。(?)
6、(?)pageContext 对(Dui)象(Xiang)
pageContext 对(Dui)象(Xiang)的(De)作(Zuo)用(Yong)是(Shi)取(Qu)得(De)任(Ren)何(He)范(Fan)围(Wei)的(De)参(Can)数(Shu),(?)通(Tong)过(Guo)它(Ta)可(Ke)以(Yi)获(Huo)取(Qu) JSP页(Ye)面(Mian)的(De)out、(?)request、(?)reponse、(?)session、(?)application 等(Deng)对(Dui)象(Xiang)。(?)pageContext对(Dui)象(Xiang)的(De)创(Chuang)建(Jian)和(He)初(Chu)始(Shi)化(Hua)都(Du)是(Shi)由(You)容(Rong)器(Qi)来(Lai)完(Wan)成(Cheng)的(De),(?)在(Zai)JSP页(Ye)面(Mian)中(Zhong)可(Ke)以(Yi)直(Zhi)接(Jie)使(Shi)用(Yong) pageContext对(Dui)象(Xiang)。(?)
7、(?)config 对(Dui)象(Xiang)
config 对(Dui)象(Xiang)的(De)主(Zhu)要(Yao)作(Zuo)用(Yong)是(Shi)取(Qu)得(De)服(Fu)务(Wu)器(Qi)的(De)配(Pei)置(Zhi)信(Xin)息(Xi)。(?)通(Tong)过(Guo) pageConext对(Dui)象(Xiang)的(De) getServletConfig() 方(Fang)法(Fa)可(Ke)以(Yi)获(Huo)取(Qu)一(Yi)个(Ge)config对(Dui)象(Xiang)。(?)当(Dang)一(Yi)个(Ge)Servlet 初(Chu)始(Shi)化(Hua)时(Shi),(?)容(Rong)器(Qi)把(Ba)某(Mou)些(Xie)信(Xin)息(Xi)通(Tong)过(Guo) config对(Dui)象(Xiang)传(Chuan)递(Di)给(Gei)这(Zhe)个(Ge) Servlet。(?) 开(Kai)发(Fa)者(Zhe)可(Ke)以(Yi)在(Zai)web.xml 文(Wen)件(Jian)中(Zhong)为(Wei)应(Ying)用(Yong)程(Cheng)序(Xu)环(Huan)境(Jing)中(Zhong)的(De)Servlet程(Cheng)序(Xu)和(He)JSP页(Ye)面(Mian)提(Ti)供(Gong)初(Chu)始(Shi)化(Hua)参(Can)数(Shu)。(?)
8、(?)page 对(Dui)象(Xiang)
page 对(Dui)象(Xiang)代(Dai)表(Biao)JSP本(Ben)身(Shen),(?)只(Zhi)有(You)在(Zai)JSP页(Ye)面(Mian)内(Nei)才(Cai)是(Shi)合(He)法(Fa)的(De)。(?) page隐(Yin)含(Han)对(Dui)象(Xiang)本(Ben)质(Zhi)上(Shang)包(Bao)含(Han)当(Dang)前(Qian) Servlet接(Jie)口(Kou)引(Yin)用(Yong)的(De)变(Bian)量(Liang),(?)类(Lei)似(Si)于(Yu)Java编(Bian)程(Cheng)中(Zhong)的(De) this 指(Zhi)针(Zhen)。(?)
9、(?)exception 对(Dui)象(Xiang)
exception 对(Dui)象(Xiang)的(De)作(Zuo)用(Yong)是(Shi)显(Xian)示(Shi)异(Yi)常(Chang)信(Xin)息(Xi),(?)只(Zhi)有(You)在(Zai)包(Bao)含(Han) isErrorPage="true" 的(De)页(Ye)面(Mian)中(Zhong)才(Cai)可(Ke)以(Yi)被(Bei)使(Shi)用(Yong),(?)在(Zai)一(Yi)般(Ban)的(De)JSP页(Ye)面(Mian)中(Zhong)使(Shi)用(Yong)该(Gai)对(Dui)象(Xiang)将(Jiang)无(Wu)法(Fa)编(Bian)译(Yi)JSP文(Wen)件(Jian)。(?)excepation对(Dui)象(Xiang)和(He)Java的(De)所(Suo)有(You)对(Dui)象(Xiang)一(Yi)样(Yang),(?)都(Du)具(Ju)有(You)系(Xi)统(Tong)提(Ti)供(Gong)的(De)继(Ji)承(Cheng)结(Jie)构(Gou)。(?)exception 对(Dui)象(Xiang)几(Ji)乎(Hu)定(Ding)义(Yi)了(Liao)所(Suo)有(You)异(Yi)常(Chang)情(Qing)况(Kuang)。(?)在(Zai)Java程(Cheng)序(Xu)中(Zhong),(?)可(Ke)以(Yi)使(Shi)用(Yong)try/catch关(Guan)键(Jian)字(Zi)来(Lai)处(Chu)理(Li)异(Yi)常(Chang)情(Qing)况(Kuang);(?) 如(Ru)果(Guo)在(Zai)JSP页(Ye)面(Mian)中(Zhong)出(Chu)现(Xian)没(Mei)有(You)捕(Bu)获(Huo)到(Dao)的(De)异(Yi)常(Chang),(?)就(Jiu)会(Hui)生(Sheng)成(Cheng) exception 对(Dui)象(Xiang),(?)并(Bing)把(Ba) exception 对(Dui)象(Xiang)传(Chuan)送(Song)到(Dao)在(Zai)page指(Zhi)令(Ling)中(Zhong)设(She)定(Ding)的(De)错(Cuo)误(Wu)页(Ye)面(Mian)中(Zhong),(?)然(Ran)后(Hou)在(Zai)错(Cuo)误(Wu)页(Ye)面(Mian)中(Zhong)处(Chu)理(Li)相(Xiang)应(Ying)的(De) exception 对(Dui)象(Xiang)。(?)
在(Zai)web.xml中(Zhong)使(Shi)用(Yong)如(Ru)下(Xia)标(Biao)签(Qian):
<servlet> <servlet-name></servlet-name> <servlet-class></servlet-class> </servlet> <servlet-mapping> <servlet-name></servlet-name> <url-pattern></url-pattern> </servlet-mapping> 或(Huo)者(Zhe)使(Shi)用(Yong)注(Zhu)解(Jie)方(Fang)式(Shi):(?) @WebServlet(name="servlet", urlPatterns={"/*"})
答(Da):(?) var arr=[1,2,3,4,5,6,7,8]
A. | var obj=( ); |
B. | var obj=[ ]; |
C. | var obj=//; |
D. | var obj=1; |
答(Da)案(An):(?)AC
|
A. | <% %> |
B. | <% ! %> |
C. | <%@ %> |
D. | <%=%> |
答(Da)案(An):(?)B
分(Fen)析(Xi):(?)B <% ! %> 可(Ke)用(Yong)作(Zuo)声(Sheng)明(Ming)
A不(Bu)正(Zheng)确(Que)
C为(Wei)引(Yin)用(Yong)xxx,(?)比(Bi)如(Ru)<% @page xxxxx%>
D为(Wei)表(Biao)达(Da)式(Shi)
|
HTML含(Han)义(Yi):(?)
Hyper Text Markup Language 超(Chao)文(Wen)本(Ben)标(Biao)记(Ji)语(Yu)言(Yan),(?)是(Shi)一(Yi)种(Zhong)用(Yong)来(Lai)制(Zhi)作(Zuo)“(?)网(Wang)页(Ye)”(?)的(De)简(Jian)单(Dan)标(Biao)记(Ji)语(Yu)言(Yan);(?)用(Yong)HTML编(Bian)写(Xie)的(De)超(Chao)文(Wen)本(Ben)文(Wen)档(Dang)称(Cheng)为(Wei)HTML文(Wen)档(Dang),(?)HTML文(Wen)档(Dang)的(De)扩(Kuo)展(Zhan)名(Ming)是(Shi)html或(Huo)者(Zhe)htm
版(Ban)本(Ben)变(Bian)化(Hua):(?)
HTML1.0—(?)—(?)在(Zai)1993年(Nian)6月(Yue)作(Zuo)为(Wei)IETF工(Gong)作(Zuo)草(Cao)案(An)发(Fa)布(Bu)((?)并(Bing)非(Fei)标(Biao)准(Zhun))(?)
HTML 2.0—(?)—(?)1995年(Nian)11月(Yue)作(Zuo)为(Wei)RFC 1866发(Fa)布(Bu)
HTML 3.2—(?)—(?)1997年(Nian)1月(Yue)14日(Ri),(?)W3C推(Tui)荐(Jian)标(Biao)准(Zhun)
HTML 4.0—(?)—(?)1997年(Nian)12月(Yue)18日(Ri),(?)W3C推(Tui)荐(Jian)标(Biao)准(Zhun)
HTML 4.01((?)微(Wei)小(Xiao)改(Gai)进(Jin))(?)—(?)—(?)1999年(Nian)12月(Yue)24日(Ri),(?)W3C推(Tui)荐(Jian)标(Biao)准(Zhun)
HTML 5—(?)2014年(Nian)10月(Yue)28日(Ri),(?)W3C推(Tui)荐(Jian)标(Biao)准(Zhun)HTML文(Wen)档(Dang)结(Jie)构(Gou);(?)
HTML 5.1 - 2016年(Nian)
HTML 5.2 2018年(Nian)最(Zui)新(Xin)版(Ban)本(Ben)
HTML 5.3 is coming…(?)
锚(Mao)链(Lian)接(Jie)是(Shi)带(Dai)有(You)文(Wen)本(Ben)的(De)超(Chao)链(Lian)接(Jie)。(?)可(Ke)以(Yi)跳(Tiao)转(Zhuan)到(Dao)页(Ye)面(Mian)的(De)某(Mou)个(Ge)位(Wei)置(Zhi),(?)适(Shi)用(Yong)于(Yu)页(Ye)面(Mian)内(Nei)容(Rong)较(Jiao)多(Duo),(?)超(Chao)过(Guo)一(Yi)屏(Ping)的(De)场(Chang)合(He) 。(?)分(Fen)为(Wei)页(Ye)面(Mian)内(Nei)的(De)锚(Mao)链(Lian)接(Jie)和(He)页(Ye)面(Mian)间(Jian)的(De)锚(Mao)链(Lian)接(Jie) 。(?)
跳(Tiao)转(Zhuan)到(Dao)2F标(Biao)记(Ji)位(Wei)置(Zhi)
说(Shuo)明(Ming):(?)
1.在(Zai)标(Biao)记(Ji)位(Wei)置(Zhi)利(Li)用(Yong)a标(Biao)签(Qian)的(De)name属(Shu)性(Xing)设(She)置(Zhi)标(Biao)记(Ji)。(?)
2.在(Zai)导(Dao)航(Hang)位(Wei)置(Zhi)通(Tong)过(Guo)a标(Biao)签(Qian)的(De)href属(Shu)性(Xing)用(Yong)#开(Kai)头(Tou)加(Jia)name属(Shu)性(Xing)值(Zhi)即(Ji)可(Ke)跳(Tiao)转(Zhuan)锚(Mao)点(Dian)位(Wei)置(Zhi)。(?)
有(You)些(Xie)字(Zi)符(Fu),(?)比(Bi)如(Ru)说(Shuo)“(?)<”(?)字(Zi)符(Fu),(?)在(Zai)HTML中(Zhong)有(You)特(Te)殊(Shu)的(De)含(Han)义(Yi),(?)因(Yin)此(Ci)不(Bu)能(Neng)在(Zai)文(Wen)本(Ben)中(Zhong)使(Shi)用(Yong)。(?)想(Xiang)要(Yao)在(Zai)HTML中(Zhong)显(Xian)示(Shi)一(Yi)个(Ge)小(Xiao)于(Yu)号(Hao)“(?)<”(?),(?)需(Xu)要(Yao)用(Yong)到(Dao)字(Zi)符(Fu)实(Shi)体(Ti):(?)<或(Huo)者(Zhe)<
字(Zi)符(Fu)实(Shi)体(Ti)拥(Yong)有(You)三(San)个(Ge)部(Bu)分(Fen):(?)一(Yi)个(Ge)and符(Fu)号(Hao)((?)&)(?),(?)一(Yi)个(Ge)实(Shi)体(Ti)名(Ming)或(Huo)者(Zhe)一(Yi)个(Ge)实(Shi)体(Ti)号(Hao),(?)最(Zui)后(Hou)是(Shi)一(Yi)个(Ge)分(Fen)号(Hao)((?);)(?)
常(Chang)用(Yong)字(Zi)符(Fu)实(Shi)体(Ti):(?)
显(Xian)示(Shi)结(Jie)果(Guo) | 描(Miao)述(Shu) | 实(Shi)体(Ti) | 实(Shi)体(Ti)号(Hao) |
空(Kong)格(Ge) | |||
< | 小(Xiao)于(Yu) | < | < |
> | 大(Da)于(Yu) | > | |
& | and符(Fu)号(Hao) | & | & |
' | 单(Dan)引(Yin)号(Hao) | ' (IE不(Bu)支(Zhi)持(Chi)) | ' |
" | 引(Yin)号(Hao) | " | " |
英(Ying)镑(Bang) | £ | £ | |
人(Ren)民(Min)币(Bi)元(Yuan) | ¥ | ¥ | |
§(?) | 章(Zhang)节(Jie) | ¥ | ¥ |
版(Ban)权(Quan) | © | © |
表(Biao)单(Dan)的(De)作(Zuo)用(Yong):(?)
利(Li)用(Yong)表(Biao)单(Dan)可(Ke)以(Yi)收(Shou)集(Ji)客(Ke)户(Hu)端(Duan)提(Ti)交(Jiao)的(De)有(You)关(Guan)信(Xin)息(Xi)。(?)
常(Chang)用(Yong)表(Biao)单(Dan)项(Xiang)类(Lei)型(Xing):(?)
input标(Biao)签(Qian) type属(Shu)性(Xing) |
功(Gong)能(Neng) | input标(Biao)签(Qian) type属(Shu)性(Xing) |
功(Gong)能(Neng) |
text | 单(Dan)行(Xing)本(Ben)框(Kuang) | reset | 重(Zhong)置(Zhi)按(An)钮(Niu) |
password | 密(Mi)码(Ma)框(Kuang) | submit | 提(Ti)交(Jiao)按(An)钮(Niu) |
radio | 单(Dan)选(Xuan)按(An)钮(Niu) | textarea | 文(Wen)本(Ben)域(Yu) |
checkbox | 复(Fu)选(Xuan)框(Kuang) | select | 下(Xia)拉(La)框(Kuang) |
button | 普(Pu)通(Tong)按(An)钮(Niu) | hidden | 隐(Yin)藏(Cang)域(Yu) |
335.表(Biao)格(Ge)、(?)框(Kuang)架(Jia)、(?)div三(San)种(Zhong)HTML布(Bu)局(Ju)方(Fang)式(Shi)的(De)特(Te)点(Dian)
优(You)点(Dian) | 缺(Que)点(Dian) | 应(Ying)用(Yong)场(Chang)合(He) | |
表(Biao)格(Ge) | 方(Fang)便(Bian)排(Pai)列(Lie)有(You)规(Gui)律(Lu)、(?)结(Jie)构(Gou)均(Jun)匀(Yun)的(De)内(Nei)容(Rong)或(Huo)数(Shu)据(Ju) | 产(Chan)生(Sheng)垃(La)圾(Ji)代(Dai)码(Ma)、(?)影(Ying)响(Xiang)页(Ye)面(Mian)下(Xia)载(Zai)时(Shi)间(Jian)、(?)灵(Ling)活(Huo)性(Xing)不(Bu)大(Da)难(Nan)于(Yu)修(Xiu)改(Gai) | 内(Nei)容(Rong)或(Huo)数(Shu)据(Ju)整(Zheng)齐(Qi)的(De)页(Ye)面(Mian) |
框(Kuang)架(Jia) | 支(Zhi)持(Chi)滚(Gun)动(Dong)条(Tiao)、(?)方(Fang)便(Bian)导(Dao)航(Hang) 节(Jie)省(Sheng)页(Ye)面(Mian)下(Xia)载(Zai)时(Shi)间(Jian)等(Deng) | 兼(Jian)容(Rong)性(Xing)不(Bu)好(Hao),(?)保(Bao)存(Cun)时(Shi)不(Bu)方(Fang)便(Bian)、(?)应(Ying)用(Yong)范(Fan)围(Wei)有(You)限(Xian) | 小(Xiao)型(Xing)商(Shang)业(Ye)网(Wang)站(Zhan)、(?)论(Lun)坛(Tan)后(Hou)台(Tai)管(Guan)理(Li) |
Div | 代(Dai)码(Ma)精(Jing)简(Jian)、(?)提(Ti)高(Gao)页(Ye)面(Mian)下(Xia)载(Zai)速(Su)度(Du)、(?)表(Biao)现(Xian)和(He)内(Nei)容(Rong)分(Fen)离(Li) | 比(Bi)较(Jiao)灵(Ling)活(Huo)、(?)难(Nan)于(Yu)控(Kong)制(Zhi) | 复(Fu)杂(Za)的(De)不(Bu)规(Gui)则(Ze)页(Ye)面(Mian)、(?)业(Ye)务(Wu)种(Zhong)类(Lei)较(Jiao)多(Duo)的(De)大(Da)型(Xing)商(Shang)业(Ye)网(Wang)站(Zhan) |
336.form中(Zhong)input设(She)置(Zhi)为(Wei)readonly和(He)disabled的(De)区(Qu)别(Bie)
readonly | disabled | |
有(You)效(Xiao)对(Dui)象(Xiang) | .只(Zhi)针(Zhen)对(Dui)type为(Wei)text/password有(You)效(Xiao) | 对(Dui)所(Suo)有(You)表(Biao)单(Dan)元(Yuan)素(Su)有(You)效(Xiao) |
表(Biao)单(Dan)提(Ti)交(Jiao) | 当(Dang)表(Biao)单(Dan)元(Yuan)素(Su)设(She)置(Zhi)readonly后(Hou),(?)表(Biao)单(Dan)提(Ti)交(Jiao)能(Neng)将(Jiang)该(Gai)表(Biao)单(Dan)元(Yuan)素(Su)的(De)值(Zhi)传(Chuan)递(Di)出(Chu)去(Qu)。(?) | 当(Dang)表(Biao)单(Dan)元(Yuan)素(Su)设(She)置(Zhi)disabled后(Hou),(?)表(Biao)单(Dan)提(Ti)交(Jiao)不(Bu)能(Neng)将(Jiang)该(Gai)表(Biao)单(Dan)元(Yuan)素(Su)的(De)值(Zhi)传(Chuan)递(Di)出(Chu)去(Qu)。(?) |
337.CSS的(De)定(Ding)义(Yi)和(He)作(Zuo)用(Yong)
CSS的(De)定(Ding)义(Yi):(?)CSS是(Shi)Cascading Style Sheets(层(Ceng)叠(Die)样(Yang)式(Shi)表(Biao))的(De)简(Jian)称(Cheng)。(?)
CSS是(Shi)一(Yi)系(Xi)列(Lie)格(Ge)式(Shi)规(Gui)则(Ze),(?)它(Ta)们(Men)控(Kong)制(Zhi)网(Wang)页(Ye)内(Nei)容(Rong)的(De)外(Wai)观(Guan)。(?)CSS简(Jian)单(Dan)来(Lai)说(Shuo)就(Jiu)是(Shi)用(Yong)来(Lai)美(Mei)化(Hua)网(Wang)页(Ye)用(Yong)的(De)。(?)
CSS的(De)具(Ju)体(Ti)作(Zuo)用(Yong)包(Bao)括(Kuo):(?)
使(Shi)网(Wang)页(Ye)丰(Feng)富(Fu)多(Duo)彩(Cai),(?)易(Yi)于(Yu)控(Kong)制(Zhi)。(?)
页(Ye)面(Mian)的(De)精(Jing)确(Que)控(Kong)制(Zhi),(?)实(Shi)现(Xian)精(Jing)美(Mei)、(?)复(Fu)杂(Za)页(Ye)面(Mian) 。(?)
338.CSS2常(Chang)用(Yong)选(Xuan)择(Ze)器(Qi)类(Lei)型(Xing)及(Ji)其(Qi)含(Han)义(Yi)
选(Xuan)择(Ze)器(Qi)名(Ming)称(Cheng) | 案(An)例(Li) | 语(Yu)法(Fa)格(Ge)式(Shi) |
标(Biao)签(Qian)选(Xuan)择(Ze)器(Qi) | h3{font-size:24px;font-family:"隶(Li)书(Shu)“(?); }< h3>JSP< /h3> | 元(Yuan)素(Su)标(Biao)签(Qian)名(Ming){样(Yang)式(Shi)属(Shu)性(Xing)} |
类(Lei)选(Xuan)择(Ze)器(Qi) | .red {color:#F00;} < li class="red">Oracle< /li> | . 元(Yuan)素(Su)标(Biao)签(Qian)class属(Shu)性(Xing)值(Zhi){样(Yang)式(Shi)属(Shu)性(Xing)} |
ID选(Xuan)择(Ze)器(Qi) | #p1 {background-color:#0F0;} < p id="p1">content< /p> | #元(Yuan)素(Su)标(Biao)签(Qian)id属(Shu)性(Xing)值(Zhi){样(Yang)式(Shi)属(Shu)性(Xing)} |
包(Bao)含(Han)选(Xuan)择(Ze)器(Qi) | div h3{color:red;} < div> < h3>CSS层(Ceng)叠(Die)样(Yang)式(Shi)表(Biao)< /h3> < /div> | 父(Fu)元(Yuan)素(Su)标(Biao)签(Qian) 子(Zi)元(Yuan)素(Su)标(Biao)签(Qian){ 样(Yang)式(Shi)属(Shu)性(Xing) } |
子(Zi)选(Xuan)择(Ze)器(Qi) | div>ul{color:blue;} < div> < ul> < li>测(Ce)试(Shi)1 < ol> < li>嵌(Qian)套(Tao)元(Yuan)素(Su)< /li> < li>嵌(Qian)套(Tao)元(Yuan)素(Su)< /li> < li>嵌(Qian)套(Tao)元(Yuan)素(Su)< /li> < li>嵌(Qian)套(Tao)元(Yuan)素(Su)< /li> < /ol> < /li> < li>测(Ce)试(Shi)1< /li> < li>测(Ce)试(Shi)1< /li> < /ul> < /div> | 父(Fu)元(Yuan)素(Su)标(Biao)签(Qian)名(Ming)>子(Zi)元(Yuan)素(Su)名(Ming){ 样(Yang)式(Shi)属(Shu)性(Xing) } |
339.引(Yin)入(Ru)样(Yang)式(Shi)的(De)三(San)种(Zhong)方(Fang)式(Shi)及(Ji)其(Qi)优(You)先(Xian)级(Ji)别(Bie)
三(San)种(Zhong)引(Yin)用(Yong)方(Fang)式(Shi):(?)
1. 外(Wai)部(Bu)样(Yang)式(Shi)表(Biao)((?)存(Cun)放(Fang).css文(Wen)件(Jian)中(Zhong))(?)
不(Bu)需(Xu)要(Yao)style标(Biao)签(Qian)
< link rel=”(?)stylesheet”(?) href=”(?)引(Yin)用(Yong)文(Wen)件(Jian)地(Di)址(Zhi)”(?) />
2. 嵌(Qian)入(Ru)式(Shi)样(Yang)式(Shi)表(Biao)
< style type=“(?)text/css”(?)>
p{color:red;}
< /style>
3.内(Nei)联(Lian)样(Yang)式(Shi)
标(Biao)签(Qian)属(Shu)性(Xing)名(Ming)为(Wei)style
< p style=“(?)color:red;”(?)>< /p>
优(You)先(Xian)级(Ji)级(Ji)别(Bie):(?)内(Nei)联(Lian)定(Ding)义(Yi)最(Zui)高(Gao)、(?)内(Nei)部(Bu)CSS次(Ci)之(Zhi)、(?)外(Wai)部(Bu)CSS优(You)先(Xian)级(Ji)最(Zui)低(Di)。(?)。(?)
340.盒(He)子(Zi)模(Mo)型(Xing)
盒(He)子(Zi)模(Mo)型(Xing)类(Lei)似(Si)于(Yu)生(Sheng)活(Huo)中(Zhong)的(De)盒(He)子(Zi),(?)具(Ju)有(You)4个(Ge)属(Shu)性(Xing),(?)外(Wai)边(Bian)距(Ju),(?)内(Nei)边(Bian)距(Ju),(?)边(Bian)框(Kuang),(?)内(Nei)容(Rong)。(?)
外(Wai)边(Bian)距(Ju):(?)margin,(?)用(Yong)于(Yu)设(She)置(Zhi)元(Yuan)素(Su)和(He)其(Qi)他(Ta)元(Yuan)素(Su)之(Zhi)间(Jian)的(De)距(Ju)离(Li)。(?)
内(Nei)边(Bian)距(Ju):(?)padding,用(Yong)于(Yu)设(She)置(Zhi)元(Yuan)素(Su)内(Nei)容(Rong)和(He)边(Bian)框(Kuang)之(Zhi)间(Jian)的(De)距(Ju)离(Li)。(?)
边(Bian)框(Kuang):(?)border,用(Yong)于(Yu)设(She)置(Zhi)元(Yuan)素(Su)边(Bian)框(Kuang)粗(Cu)细(Xi),(?)颜(Yan)色(Se),(?)线(Xian)型(Xing)。(?)
内(Nei)容(Rong):(?)width,height,用(Yong)于(Yu)设(She)置(Zhi)元(Yuan)素(Su)内(Nei)容(Rong)显(Xian)示(Shi)的(De)大(Da)小(Xiao)。(?)

例(Li)如(Ru):(?)
<style> body{ margin: 0; /*取(Qu)消(Xiao)body默(Mo)认(Ren)的(De)外(Wai)边(Bian)距(Ju)*/ } #img1{ width:200px; /*设(She)置(Zhi)图(Tu)片(Pian)的(De)宽(Kuan)度(Du)*/ border: 2px solid black; /*设(She)置(Zhi)图(Tu)片(Pian)边(Bian)框(Kuang)*/ margin: 5px; /*设(She)置(Zhi)图(Tu)片(Pian)外(Wai)边(Bian)距(Ju)((?)表(Biao)示(Shi)该(Gai)图(Tu)片(Pian)与(Yu)其(Qi)他(Ta)图(Tu)片(Pian)的(De)距(Ju)离(Li)为(Wei)5px)(?)*/ padding:10px; /*设(She)置(Zhi)图(Tu)片(Pian)与(Yu)边(Bian)框(Kuang)之(Zhi)间(Jian)的(De)距(Ju)离(Li)*/ } #img2{ height: 200px; /* 设(She)置(Zhi)图(Tu)片(Pian)的(De)高(Gao)度(Du)*/ border: 2px solid black; /*设(She)置(Zhi)图(Tu)片(Pian)的(De)边(Bian)框(Kuang)*/ margin: 5px; /*设(She)置(Zhi)图(Tu)片(Pian)外(Wai)边(Bian)距(Ju)*/ padding: 20px; /*设(She)置(Zhi)图(Tu)片(Pian)与(Yu)边(Bian)框(Kuang)之(Zhi)间(Jian)的(De)距(Ju)离(Li)*/ } </style> <img id="img1" src="img/2.jpg" /> <img id="img2" src="img/lss.jpg" />
341.JavaScript语(Yu)言(Yan)及(Ji)其(Qi)特(Te)点(Dian)
Javascript一(Yi)种(Zhong)基(Ji)于(Yu)对(Dui)象(Xiang)(object-based)和(He)事(Shi)件(Jian)驱(Qu)动(Dong)(Event Driven)的(De)简(Jian)单(Dan)的(De)并(Bing)具(Ju)有(You)安(An)全(Quan)性(Xing)能(Neng)的(De)脚(Jiao)本(Ben)语(Yu)言(Yan)。(?)特(Te)点(Dian):(?)
解(Jie)释(Shi)性(Xing):(?) JavaScript不(Bu)同(Tong)于(Yu)一(Yi)些(Xie)编(Bian)译(Yi)性(Xing)的(De)程(Cheng)序(Xu)语(Yu)言(Yan),(?)例(Li)如(Ru)C、(?)C++等(Deng),(?)它(Ta)是(Shi)一(Yi)种(Zhong)解(Jie)释(Shi)性(Xing)的(De)程(Cheng)序(Xu)语(Yu)言(Yan),(?)它(Ta)的(De)源(Yuan)代(Dai)码(Ma)不(Bu)需(Xu)要(Yao)经(Jing)过(Guo)编(Bian)译(Yi),(?)而(?)直(Zhi)接(Jie)在(Zai)浏(Liu)览(Lan)器(Qi)中(Zhong)运(Yun)行(Xing)时(Shi)被(Bei)解(Jie)释(Shi)。(?)
基(Ji)于(Yu)对(Dui)象(Xiang):(?)JavaScript是(Shi)一(Yi)种(Zhong)基(Ji)于(Yu)对(Dui)象(Xiang)的(De)语(Yu)言(Yan)。(?)这(Zhe)意(Yi)味(Wei)着(Zhuo)它(Ta)能(Neng)运(Yun)用(Yong)自(Zi)己(Ji)已(Yi)经(Jing)创(Chuang)建(Jian)的(De)对(Dui)象(Xiang)。(?)因(Yin)此(Ci),(?)许(Xu)多(Duo)功(Gong)能(Neng)可(Ke)以(Yi)来(Lai)自(Zi)于(Yu)脚(Jiao)本(Ben)环(Huan)境(Jing)中(Zhong)对(Dui)象(Xiang)的(De)方(Fang)法(Fa)与(Yu)脚(Jiao)本(Ben)的(De)相(Xiang)互(Hu)作(Zuo)用(Yong)。(?)
事(Shi)件(Jian)驱(Qu)动(Dong):(?) JavaScript可(Ke)以(Yi)直(Zhi)接(Jie)对(Dui)用(Yong)户(Hu)或(Huo)客(Ke)户(Hu)输(Shu)入(Ru)做(Zuo)出(Chu)响(Xiang)应(Ying),(?)无(Wu)须(Xu)经(Jing)过(Guo)Web服(Fu)务(Wu)程(Cheng)序(Xu)。(?)它(Ta)对(Dui)用(Yong)户(Hu)的(De)响(Xiang)应(Ying),(?)是(Shi)以(Yi)事(Shi)件(Jian)驱(Qu)动(Dong)的(De)方(Fang)式(Shi)进(Jin)行(Xing)的(De)。(?)所(Suo)谓(Wei)事(Shi)件(Jian)驱(Qu)动(Dong),(?)就(Jiu)是(Shi)指(Zhi)在(Zai)主(Zhu)页(Ye)中(Zhong)执(Zhi)行(Xing)了(Liao)某(Mou)种(Zhong)操(Cao)作(Zuo)所(Suo)产(Chan)生(Sheng)的(De)动(Dong)作(Zuo),(?)此(Ci)动(Dong)作(Zuo)称(Cheng)为(Wei)“(?)事(Shi)件(Jian)”(?)。(?)比(Bi)如(Ru)按(An)下(Xia)鼠(Shu)标(Biao)、(?)移(Yi)动(Dong)窗(Chuang)口(Kou)、(?)选(Xuan)择(Ze)菜(Cai)单(Dan)等(Deng)都(Du)可(Ke)以(Yi)视(Shi)为(Wei)事(Shi)件(Jian)。(?)当(Dang)事(Shi)件(Jian)发(Fa)生(Sheng)后(Hou),(?)可(Ke)能(Neng)会(Hui)引(Yin)起(Qi)相(Xiang)应(Ying)的(De)事(Shi)件(Jian)响(Xiang)应(Ying)。(?)
跨(Kua)平(Ping)台(Tai):JavaScript依(Yi)赖(Lai)于(Yu)浏(Liu)览(Lan)器(Qi)本(Ben)身(Shen),(?)与(Yu)操(Cao)作(Zuo)环(Huan)境(Jing)无(Wu)关(Guan),(?)只(Zhi)要(Yao)能(Neng)运(Yun)行(Xing)浏(Liu)览(Lan)器(Qi)的(De)计(Ji)算(Suan)机(Ji),(?)并(Bing)支(Zhi)持(Chi)JavaScript的(De)浏(Liu)览(Lan)器(Qi)就(Jiu)可(Ke)正(Zheng)确(Que)执(Zhi)行(Xing)。(?)
342.JavaScript常(Chang)用(Yong)数(Shu)据(Ju)类(Lei)型(Xing)有(You)哪(Na)些(Xie)
1、(?)数(Shu)值(Zhi)型(Xing)(Number):(?)整(Zheng)数(Shu)和(He)浮(Fu)点(Dian)数(Shu)统(Tong)称(Cheng)为(Wei)数(Shu)值(Zhi)。(?)例(Li)如(Ru)85或(Huo)3.1415926等(Deng)。(?)
2、(?)字(Zi)符(Fu)串(Chuan)型(Xing)(String):(?)由(You)0个(Ge),1个(Ge)或(Huo)多(Duo)个(Ge)字(Zi)符(Fu)组(Zu)成(Cheng)的(De)序(Xu)列(Lie)。(?)在(Zai)JavaScript中(Zhong),(?)用(Yong)双(Shuang)引(Yin)号(Hao)或(Huo)单(Dan)引(Yin)号(Hao)括(Kuo)起(Qi)来(Lai)表(Biao)示(Shi),(?)如(Ru)“(?)您(Nin)好(Hao)”(?)、(?)‘(?)学(Xue)习(Xi)JavaScript’(?)等(Deng)。(?) 不(Bu)区(Qu)分(Fen)单(Dan)引(Yin)号(Hao)、(?)双(Shuang)引(Yin)号(Hao)。(?)
3、(?)逻(Luo)辑(Ji)((?)布(Bu)尔(?))(?)型(Xing)(Boolean):(?)用(Yong)true或(Huo)false来(Lai)表(Biao)示(Shi)。(?)
4、(?)空(Kong)((?)null)(?)值(Zhi)(Null):(?)表(Biao)示(Shi)没(Mei)有(You)值(Zhi),(?)用(Yong)于(Yu)定(Ding)义(Yi)空(Kong)的(De)或(Huo)不(Bu)存(Cun)在(Zai)的(De)引(Yin)用(Yong)。(?)
要(Yao)注(Zhu)意(Yi),(?)空(Kong)值(Zhi)不(Bu)等(Deng)同(Tong)于(Yu)空(Kong)字(Zi)符(Fu)串(Chuan)""或(Huo)0。(?)
5、(?)未(Wei)定(Ding)义(Yi)((?)Undefined)(?)值(Zhi):(?)它(Ta)也(Ye)是(Shi)一(Yi)个(Ge)保(Bao)留(Liu)字(Zi)。(?)表(Biao)示(Shi)变(Bian)量(Liang)虽(Sui)然(Ran)已(Yi)经(Jing)声(Sheng)明(Ming),(?)但(Dan)却(Que)没(Mei)有(You)赋(Fu)值(Zhi)。(?)
除(Chu)了(Liao)以(Yi)上(Shang)五(Wu)种(Zhong)基(Ji)本(Ben)的(De)数(Shu)据(Ju)类(Lei)型(Xing)之(Zhi)外(Wai),(?)JavaScript还(Huan)支(Zhi)持(Chi)复(Fu)合(He)数(Shu)据(Ju)类(Lei)型(Xing),(?)包(Bao)括(Kuo)对(Dui)象(Xiang)和(He)数(Shu)组(Zu)两(Liang)种(Zhong)。(?)
343.html语(Yu)法(Fa)中(Zhong)哪(Na)条(Tiao)命(Ming)令(Ling)用(Yong)于(Yu)使(Shi)一(Yi)行(Xing)文(Wen)本(Ben)折(Zhe)行(Xing),(?)而(?)不(Bu)是(Shi)插(Cha)入(Ru)一(Yi)个(Ge)新(Xin)的(De)段(Duan)落(Luo)?(?) (B)
A. | < TD> |
B. | < BR> |
C. | < P> |
D. | < H1> |
分(Fen)析(Xi):(?)
A < td>定(Ding)义(Yi)标(Biao)准(Zhun)表(Biao)格(Ge)
C < p>表(Biao)示(Shi)文(Wen)本(Ben)一(Yi)个(Ge)段(Duan)落(Luo)
D < h1>表(Biao)示(Shi)对(Dui)文(Wen)本(Ben)标(Biao)题(Ti)进(Jin)行(Xing)强(Qiang)调(Diao)的(De)一(Yi)种(Zhong)标(Biao)签(Qian)
|
344.Ajax的(De)优(You)点(Dian)和(He)缺(Que)点(Dian)
优(You)点(Dian):(?)减(Jian)轻(Qing)服(Fu)务(Wu)器(Qi)的(De)负(Fu)担(Dan),按(An)需(Xu)取(Qu)数(Shu)据(Ju),最(Zui)大(Da)程(Cheng)度(Du)的(De)减(Jian)少(Shao)冗(Rong)余(Yu)请(Qing)求(Qiu),(?)局(Ju)部(Bu)刷(Shua)新(Xin)页(Ye)面(Mian),减(Jian)少(Shao)用(Yong)户(Hu)心(Xin)理(Li)和(He)实(Shi)际(Ji)的(De)等(Deng)待(Dai)时(Shi)间(Jian),带(Dai)来(Lai)更(Geng)好(Hao)的(De)用(Yong)户(Hu)体(Ti)验(Yan),(?)基(Ji)于(Yu)xml标(Biao)准(Zhun)化(Hua),并(Bing)被(Bei)广(Guang)泛(Fan)支(Zhi)持(Chi),不(Bu)需(Xu)安(An)装(Zhuang)插(Cha)件(Jian)等(Deng),(?)进(Jin)一(Yi)步(Bu)促(Cu)进(Jin)页(Ye)面(Mian)和(He)数(Shu)据(Ju)的(De)分(Fen)离(Li)
缺(Que)点(Dian):(?)AJAX大(Da)量(Liang)的(De)使(Shi)用(Yong)了(Liao)javascript和(He)ajax引(Yin)擎(Qing),这(Zhe)些(Xie)取(Qu)决(Jue)于(Yu)浏(Liu)览(Lan)器(Qi)的(De)支(Zhi)持(Chi).在(Zai)编(Bian)写(Xie)的(De)时(Shi)候(Hou)考(Kao)虑(Lu)对(Dui)浏(Liu)览(Lan)器(Qi)的(De)兼(Jian)容(Rong)性(Xing).
345.怎(Zen)样(Yang)防(Fang)止(Zhi)表(Biao)单(Dan)刷(Shua)新(Xin)重(Zhong)复(Fu)提(Ti)交(Jiao)问(Wen)题(Ti)?(?)((?)说(Shuo)出(Chu)思(Si)路(Lu)即(Ji)可(Ke))(?)
JS脚(Jiao)本(Ben)方(Fang)式(Shi):
第(Di)一(Yi)种(Zhong):(?)定(Ding)义(Yi)全(Quan)局(Ju)变(Bian)量(Liang),(?)在(Zai)form提(Ti)交(Jiao)前(Qian)判(Pan)断(Duan)是(Shi)否(Fou)已(Yi)有(You)提(Ti)交(Jiao)过(Guo)
<script> var checkSubmitFlg = false; function checkSubmit(){ if(checkSubmitFlg == true){ return false; } checkSubmitFlg = true; return true; } </script> <form action="" onsubmit="return checkSubmit();"> </form>
第(Di)二(?)种(Zhong):(?)单(Dan)击(Ji)提(Ti)交(Jiao)按(An)钮(Niu)后(Hou),(?)立(Li)刻(Ke)禁(Jin)用(Yong)改(Gai)按(An)钮(Niu)
第(Di)三(San)种(Zhong):(?)单(Dan)击(Ji)提(Ti)交(Jiao)按(An)钮(Niu)后(Hou),(?)弹(Dan)出(Chu)屏(Ping)蔽(Bi)层(Ceng),(?)防(Fang)止(Zhi)用(Yong)户(Hu)第(Di)二(?)次(Ci)点(Dian)击(Ji)
346.JQuery.get()和(He)JQuery.ajax()方(Fang)法(Fa)之(Zhi)间(Jian)的(De)区(Qu)别(Bie)是(Shi)什(Shi)么(Me)?(?)
JQuery.ajax()是(Shi)对(Dui)原(Yuan)生(Sheng)的(De)javaScript的(De)ajax的(De)封(Feng)装(Zhuang),(?)简(Jian)化(Hua)了(Liao)ajax的(De)步(Bu)骤(Zhou),(?)用(Yong)户(Hu)可(Ke)用(Yong)JQuery.ajax()发(Fa)送(Song)get或(Huo)者(Zhe)post方(Fang)式(Shi)请(Qing)求(Qiu),Jquery.get()是(Shi)对(Dui)ajax的(De)get方(Fang)式(Shi)的(De)封(Feng)装(Zhuang),(?)只(Zhi)能(Neng)发(Fa)送(Song)get方(Fang)式(Shi)的(De)请(Qing)求(Qiu)。(?)
347.Jquery里(Li)的(De)缓(Huan)存(Cun)问(Wen)题(Ti)如(Ru)何(He)解(Jie)决(Jue)?(?)例(Li)如(Ru)((?)$.ajax()以(Yi)及(Ji)$.get())(?)
$.ajax()请(Qing)求(Qiu)时(Shi)候(Hou)加(Jia)上(Shang)cache:false的(De)参(Can)数(Shu),(?)如(Ru):(?)
$.ajax({ type : "get", url : "XX", dataType : "json", cache:false, success : function(json) { } });
$.get()请(Qing)求(Qiu)时(Shi)候(Hou)加(Jia)上(Shang)时(Shi)间(Jian),(?)如(Ru):
$.get("url","data"+new Date(),function(data){});
348.Javascript是(Shi)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De),(?)怎(Zen)么(Me)体(Ti)现(Xian)Javascript的(De)继(Ji)承(Cheng)关(Guan)系(Xi)?(?)
Javascript里(Li)面(Mian)没(Mei)有(You)像(Xiang)java那(Na)样(Yang)的(De)继(Ji)承(Cheng),(?)javascript中(Zhong)的(De)继(Ji)承(Cheng)机(Ji)制(Zhi)仅(Jin)仅(Jin)是(Shi)靠(Kao)模(Mo)拟(Ni)的(De),(?)可(Ke)以(Yi)使(Shi)用(Yong)prototype原(Yuan)型(Xing)来(Lai)实(Shi)现(Xian)
349.Javascript的(De)有(You)几(Ji)种(Zhong)种(Zhong)变(Bian)量(Liang)。(?)变(Bian)量(Liang)范(Fan)围(Wei)有(You)什(Shi)么(Me)不(Bu)同(Tong)?(?)
可(Ke)以(Yi)分(Fen)为(Wei)三(San)种(Zhong)
1、(?)原(Yuan)生(Sheng)类(Lei)型(Xing)((?)string,number,boolean)(?)
2、(?)对(Dui)象(Xiang)((?)Date,Array)(?)
3、(?)特(Te)殊(Shu)类(Lei)型(Xing)((?)var vara;(只(Zhi)什(Shi)么(Me)没(Mei)有(You)定(Ding)义(Yi)),var varb = null;(定(Ding)义(Yi)一(Yi)个(Ge)变(Bian)量(Liang)并(Bing)赋(Fu)值(Zhi)为(Wei)null))(?)
350.Js如(Ru)何(He)获(Huo)取(Qu)页(Ye)面(Mian)的(De)dom对(Dui)象(Xiang)
1、(?)直(Zhi)接(Jie)获(Huo)取(Qu)
//1.1 -- id方(Fang)式(Shi)获(Huo)取(Qu)
var varid = document.getElementById("unameid");
//1.2 -- name获(Huo)取(Qu)(获(Huo)取(Qu)的(De)是(Shi)数(Shu)组(Zu)对(Dui)象(Xiang))
var varname = document.getElementsByName("sex");
//1.3 -- 元(Yuan)素(Su)获(Huo)取(Qu)(获(Huo)取(Qu)的(De)是(Shi)数(Shu)组(Zu)对(Dui)象(Xiang))
var varinput = document.getElementsByTagName("input");
2、(?)间(Jian)接(Jie)方(Fang)式(Shi)获(Huo)取(Qu)
//2.1 父(Fu)子(Zi)关(Guan)系(Xi) --childNodes
var varchilds = document.getElementById("div01").childNodes;
//2.2 子(Zi)父(Fu)关(Guan)系(Xi)--parentNode
var varfather2 = document.getElementById("unameid").parentNode;
//2.3 兄(Xiong)弟(Di)之(Zhi)间(Jian)相(Xiang)互(Hu)获(Huo)取(Qu) nextSibling:(?)下(Xia)一(Yi)个(Ge)节(Jie)点(Dian) previousSibling:(?)上(Shang)一(Yi)个(Ge)节(Jie)点(Dian)
351.Servlet API中(Zhong)forward() 与(Yu)redirect()的(De)区(Qu)别(Bie)?(?)
答(Da):(?)为(Wei)实(Shi)现(Xian)程(Cheng)序(Xu)的(De)模(Mo)块(Kuai)化(Hua),(?)就(Jiu)需(Xu)要(Yao)保(Bao)证(Zheng)在(Zai)不(Bu)同(Tong)的(De)Servlet之(Zhi)间(Jian)可(Ke)以(Yi)相(Xiang)互(Hu)跳(Tiao)转(Zhuan),(?)而(?)Servlet中(Zhong)主(Zhu)要(Yao)有(You)两(Liang)种(Zhong)实(Shi)现(Xian)跳(Tiao)转(Zhuan)的(De)方(Fang)式(Shi):(?)FORWARD方(Fang)式(Shi)与(Yu)redirect方(Fang)式(Shi)。(?)
Forward() : 是(Shi)服(Fu)务(Wu)器(Qi)内(Nei)部(Bu)的(De)重(Zhong)定(Ding)向(Xiang),(?)服(Fu)务(Wu)器(Qi)直(Zhi)接(Jie)访(Fang)问(Wen)目(Mu)标(Biao)地(Di)址(Zhi)的(De)URL,(?)把(Ba)那(Na)个(Ge)URL的(De)响(Xiang)应(Ying)内(Nei)容(Rong)读(Du)取(Qu)出(Chu)来(Lai),(?)而(?)客(Ke)户(Hu)端(Duan)并(Bing)不(Bu)知(Zhi)道(Dao),(?)因(Yin)此(Ci)在(Zai)客(Ke)户(Hu)端(Duan)浏(Liu)览(Lan)器(Qi)的(De)地(Di)址(Zhi)栏(Lan)里(Li)不(Bu)会(Hui)显(Xian)示(Shi)跳(Tiao)转(Zhuan)后(Hou)的(De)地(Di)址(Zhi),(?)还(Huan)是(Shi)原(Yuan)来(Lai)的(De)地(Di)址(Zhi)。(?)由(You)于(Yu)在(Zai)整(Zheng)个(Ge)定(Ding)向(Xiang)的(De)过(Guo)程(Cheng)中(Zhong)用(Yong)的(De)是(Shi)同(Tong)一(Yi)个(Ge)Request,(?)因(Yin)此(Ci)FORWARD会(Hui)将(Jiang)Request的(De)信(Xin)息(Xi)带(Dai)到(Dao)被(Bei)定(Ding)向(Xiang)的(De)J(?)S(?)P(?)或(Huo)Servlet中(Zhong)使(Shi)用(Yong)。(?)
Redirect():则(Ze)是(Shi)客(Ke)户(Hu)端(Duan)的(De)重(Zhong)定(Ding)向(Xiang),(?)是(Shi)完(Wan)全(Quan)的(De)跳(Tiao)转(Zhuan),(?)即(Ji)客(Ke)户(Hu)端(Duan)浏(Liu)览(Lan)器(Qi)会(Hui)获(Huo)取(Qu)跳(Tiao)转(Zhuan)后(Hou)的(De)地(Di)址(Zhi),(?)然(Ran)后(Hou)重(Zhong)新(Xin)发(Fa)送(Song)请(Qing)求(Qiu),(?)因(Yin)此(Ci)浏(Liu)览(Lan)器(Qi)中(Zhong)会(Hui)显(Xian)示(Shi)跳(Tiao)转(Zhuan)后(Hou)的(De)地(Di)址(Zhi)。(?)同(Tong)时(Shi),(?)由(You)于(Yu)这(Zhe)种(Zhong)方(Fang)式(Shi)比(Bi)FORWARD方(Fang)式(Shi)多(Duo)了(Liao)一(Yi)次(Ci)网(Wang)络(Luo)请(Qing)求(Qiu),(?)因(Yin)此(Ci)其(Qi)效(Xiao)率(Lu)低(Di)于(Yu)FORWARD方(Fang)式(Shi),(?)需(Xu)要(Yao)注(Zhu)意(Yi)到(Dao)的(De)是(Shi),(?)客(Ke)户(Hu)端(Duan)的(De)重(Zhong)定(Ding)向(Xiang)可(Ke)以(Yi)通(Tong)过(Guo)设(She)置(Zhi)特(Te)定(Ding)的(De)HTTP 头(Tou)或(Huo)写(Xie)JavaScript脚(Jiao)本(Ben)来(Lai)实(Shi)现(Xian)。(?)
鉴(Jian)于(Yu)以(Yi)上(Shang)的(De)区(Qu)别(Bie),(?)一(Yi)般(Ban)当(Dang)FORWARD方(Fang)式(Shi)可(Ke)以(Yi)满(Man)足(Zu)需(Xu)求(Qiu)时(Shi),(?)尽(Jin)可(Ke)能(Neng)的(De)使(Shi)用(Yong)FORWARD方(Fang)式(Shi)。(?)但(Dan)在(Zai)有(You)些(Xie)情(Qing)况(Kuang)下(Xia),(?)例(Li)如(Ru),(?)需(Xu)要(Yao)跳(Tiao)转(Zhuan)到(Dao)一(Yi)个(Ge)其(Qi)他(Ta)服(Fu)务(Wu)器(Qi)上(Shang)的(De)资(Zi)源(Yuan)时(Shi),(?)则(Ze)必(Bi)须(Xu)使(Shi)用(Yong)redirect 方(Fang)式(Shi)。(?)
352.Session域(Yu)和(He)request域(Yu)什(Shi)么(Me)区(Qu)别(Bie)?(?)
作(Zuo)用(Yong)域(Yu):(?)存(Cun)放(Fang)数(Shu)据(Ju),(?)获(Huo)取(Qu)数(Shu)据(Ju)((?)传(Chuan)递(Di)数(Shu)据(Ju))(?)
有(You)效(Xiao)的(De)作(Zuo)用(Yong)域(Yu):(?)生(Sheng)命(Ming)周(Zhou)期(Qi),(?)作(Zuo)用(Yong)范(Fan)围(Wei)
httpServeltRequest:
生(Sheng)命(Ming)周(Zhou)期(Qi):(?)一(Yi)次(Ci)请(Qing)求(Qiu)之(Zhi)间(Jian)
作(Zuo)用(Yong)范(Fan)围(Wei):(?)所(Suo)有(You)被(Bei)请(Qing)求(Qiu)转(Zhuan)发(Fa)过(Guo)的(De)servlet都(Du)能(Neng)获(Huo)取(Qu)到(Dao)
httpSession:
生(Sheng)命(Ming)周(Zhou)期(Qi):(?)一(Yi)次(Ci)会(Hui)话(Hua)
作(Zuo)用(Yong)范(Fan)围(Wei):(?)所(Suo)有(You)的(De)servlet都(Du)可(Ke)以(Yi)获(Huo)取(Qu)到(Dao)
servletContex:
生(Sheng)命(Ming)周(Zhou)期(Qi):(?)从(Cong)项(Xiang)目(Mu)开(Kai)始(Shi)运(Yun)行(Xing)到(Dao)服(Fu)务(Wu)器(Qi)关(Guan)闭(Bi)
作(Zuo)用(Yong)范(Fan)围(Wei):(?)所(Suo)有(You)的(De)servlet都(Du)可(Ke)以(Yi)获(Huo)取(Qu)到(Dao)
作(Zuo)用(Yong)域(Yu)如(Ru)何(He)选(Xuan)用(Yong)?(?)
httpServeltRequest:(?)和(He)当(Dang)前(Qian)请(Qing)求(Qiu)有(You)关(Guan)的(De)信(Xin)息(Xi)
httpSession:(?)和(He)当(Dang)前(Qian)用(Yong)户(Hu)有(You)关(Guan)的(De)信(Xin)息(Xi)
servletContex:(?)访(Fang)问(Wen)量(Liang)比(Bi)较(Jiao)大(Da),(?)不(Bu)易(Yi)更(Geng)改(Gai)
353.页(Ye)面(Mian)中(Zhong)有(You)一(Yi)个(Ge)命(Ming)名(Ming)为(Wei)bankNo的(De)下(Xia)拉(La)列(Lie)表(Biao),(?)写(Xie)js脚(Jiao)本(Ben)获(Huo)取(Qu)当(Dang)前(Qian)选(Xuan)项(Xiang)的(De)索(Suo)引(Yin)值(Zhi),(?)如(Ru)果(Guo)用(Yong)jquery如(Ru)何(He)获(Huo)取(Qu)
var a = document.getElementsByName("bankNo")[0].value;
var b = $("select[name=bankNo]").val();
354.写(Xie)出(Chu)要(Yao)求(Qiu)11位(Wei)数(Shu)字(Zi)的(De)正(Zheng)则(Ze)表(Biao)达(Da)式(Shi)
^[1-9]\d{10}$
355.分(Fen)别(Bie)获(Huo)取(Qu)指(Zhi)定(Ding)name、(?)Id的(De)javascript对(Dui)象(Xiang),(?)如(Ru)果(Guo)用(Yong)jquey如(Ru)何(He)获(Huo)取(Qu)
js: id--document.getElementById("id"); name--document.getElementsByName("name"); jquery id--$("#id"); name--$("元(Yuan)素(Su)名(Ming)称(Cheng)[name="name值(Zhi)"]")(?);
356.一(Yi)个(Ge)页(Ye)面(Mian)有(You)两(Liang)个(Ge)form,(?)如(Ru)何(He)获(Huo)取(Qu)第(Di)一(Yi)个(Ge)form
用(Yong)id方(Fang)式(Shi)获(Huo)取(Qu);(?)document.getElementById("id");
357.如(Ru)何(He)设(She)置(Zhi)一(Yi)个(Ge)层(Ceng)的(De)可(Ke)见(Jian)/隐(Yin)藏(Cang)
可(Ke)见(Jian) : document.getElementById("divid").style.display = "block";
隐(Yin)藏(Cang) : document.getElementById("divid").style.display = "none";
358.描(Miao)述(Shu)JSP中(Zhong)动(Dong)态(Tai)INCLUDE与(Yu)静(Jing)态(Tai)INCLUDE的(De)区(Qu)别(Bie)?(?)
动(Dong)态(Tai)导(Dao)入(Ru)
1、(?)会(Hui)将(Jiang)多(Duo)个(Ge)jsp页(Ye)面(Mian)分(Fen)别(Bie)再(Zai)编(Bian)写(Xie)成(Cheng)java文(Wen)件(Jian),(?)编(Bian)译(Yi)成(Cheng)class文(Wen)件(Jian)
2、(?)jsp文(Wen)件(Jian)中(Zhong)允(Yun)许(Xu)有(You)相(Xiang)同(Tong)的(De)变(Bian)量(Liang)名(Ming),(?)每(Mei)个(Ge)页(Ye)面(Mian)互(Hu)不(Bu)影(Ying)响(Xiang)
3、(?)当(Dang)java代(Dai)码(Ma)比(Bi)较(Jiao)多(Duo)优(You)先(Xian)选(Xuan)用(Yong)动(Dong)态(Tai)导(Dao)入(Ru)
4、(?)效(Xiao)率(Lu)相(Xiang)对(Dui)较(Jiao)低(Di),(?)耦(Ou)合(He)性(Xing)低(Di)
静(Jing)态(Tai)导(Dao)入(Ru)
1、(?)会(Hui)将(Jiang)多(Duo)个(Ge)jsp页(Ye)面(Mian)合(He)成(Cheng)一(Yi)个(Ge)jsp页(Ye)面(Mian),(?)再(Zai)编(Bian)写(Xie)成(Cheng)java文(Wen)件(Jian),(?)编(Bian)译(Yi)成(Cheng)class文(Wen)件(Jian)
2、(?)jsp文(Wen)件(Jian)中(Zhong)不(Bu)允(Yun)许(Xu)有(You)相(Xiang)同(Tong)的(De)变(Bian)量(Liang)名(Ming)
3、(?)当(Dang)java代(Dai)码(Ma)比(Bi)较(Jiao)少(Shao)或(Huo)者(Zhe)没(Mei)有(You)java代(Dai)码(Ma)是(Shi)优(You)先(Xian)选(Xuan)用(Yong)静(Jing)态(Tai)导(Dao)入(Ru)
4、(?)效(Xiao)率(Lu)相(Xiang)对(Dui)较(Jiao)高(Gao),(?)耦(Ou)合(He)性(Xing)高(Gao)
359.列(Lie)举(Ju)JSP的(De)内(Nei)置(Zhi)对(Dui)象(Xiang)及(Ji)方(Fang)法(Fa)
request表(Biao)示(Shi)HttpServletRequest对(Dui)象(Xiang)。(?)它(Ta)包(Bao)含(Han)了(Liao)有(You)关(Guan)浏(Liu)览(Lan)器(Qi)请(Qing)求(Qiu)的(De)信(Xin)息(Xi),(?)并(Bing)且(Qie)提(Ti)供(Gong)了(Liao)几(Ji)个(Ge)用(Yong)于(Yu)获(Huo)取(Qu)cookie,header,和(He)session数(Shu)据(Ju)的(De)有(You)用(Yong)的(De)方(Fang)法(Fa)。(?)
response表(Biao)示(Shi)HttpServletResponse对(Dui)象(Xiang),(?)并(Bing)提(Ti)供(Gong)了(Liao)几(Ji)个(Ge)用(Yong)于(Yu)设(She)置(Zhi)送(Song)回(Hui)浏(Liu)览(Lan)器(Qi)的(De)响(Xiang)应(Ying)的(De)方(Fang)法(Fa)((?)如(Ru)cookies,头(Tou)信(Xin)息(Xi)等(Deng))(?)
out对(Dui)象(Xiang)是(Shi)javax.jsp.JspWriter的(De)一(Yi)个(Ge)实(Shi)例(Li),(?)提(Ti)供(Gong)了(Liao)几(Ji)个(Ge)方(Fang)法(Fa)使(Shi)你(Ni)能(Neng)用(Yong)于(Yu)向(Xiang)浏(Liu)览(Lan)器(Qi)回(Hui)送(Song)输(Shu)出(Chu)结(Jie)果(Guo)
pageContext表(Biao)示(Shi)一(Yi)个(Ge)javax.servlejt.sp.PageContext对(Dui)象(Xiang)。(?)它(Ta)是(Shi)用(Yong)于(Yu)方(Fang)便(Bian)存(Cun)取(Qu)各(Ge)种(Zhong)范(Fan)围(Wei)的(De)名(Ming)字(Zi)空(Kong)间(Jian)、(?)servlet相(Xiang)关(Guan)的(De)对(Dui)象(Xiang)的(De)API,(?)并(Bing)且(Qie)包(Bao)装(Zhuang)了(Liao)通(Tong)用(Yong)的(De)servlet相(Xiang)关(Guan)功(Gong)能(Neng)的(De)方(Fang)法(Fa)。(?)
session表(Biao)示(Shi)一(Yi)个(Ge)请(Qing)求(Qiu)的(De)javax.servlet.http.HttpSession对(Dui)象(Xiang)。(?)Session可(Ke)以(Yi)存(Cun)贮(Zhu)用(Yong)户(Hu)的(De)状(Zhuang)态(Tai)信(Xin)息(Xi)
applicaton表(Biao)示(Shi)一(Yi)个(Ge)javax.servle.ServletContext对(Dui)象(Xiang)。(?)这(Zhe)有(You)助(Zhu)于(Yu)查(Cha)找(Zhao)有(You)关(Guan)servlet引(Yin)擎(Qing)和(He)servlet环(Huan)境(Jing)的(De)信(Xin)息(Xi)
config表(Biao)示(Shi)一(Yi)个(Ge)javax.servlet.ServletConfig对(Dui)象(Xiang)。(?)该(Gai)对(Dui)象(Xiang)用(Yong)于(Yu)存(Cun)取(Qu)servlet实(Shi)例(Li)的(De)初(Chu)始(Shi)化(Hua)参(Can)数(Shu)。(?)
page表(Biao)示(Shi)从(Cong)该(Gai)页(Ye)面(Mian)产(Chan)生(Sheng)的(De)一(Yi)个(Ge)servlet实(Shi)例(Li)
Exception异(Yi)常(Chang)
360.列(Lie)举(Ju)jsp的(De)四(Si)大(Da)作(Zuo)用(Yong)域(Yu)
page、(?)request、(?)session、(?)application
361.html和(He)xhtml的(De)区(Qu)别(Bie)是(Shi)什(Shi)么(Me)?(?)
HTML与(Yu)XHTML之(Zhi)间(Jian)的(De)差(Cha)别(Bie),(?)粗(Cu)略(Lue)可(Ke)以(Yi)分(Fen)为(Wei)两(Liang)大(Da)类(Lei)比(Bi)较(Jiao):(?)一(Yi)个(Ge)是(Shi)功(Gong)能(Neng)上(Shang)的(De)差(Cha)别(Bie),(?)另(Ling)外(Wai)是(Shi)书(Shu)写(Xie)习(Xi)惯(Guan)的(De)差(Cha)别(Bie)。(?)关(Guan)于(Yu)功(Gong)能(Neng)上(Shang)的(De)差(Cha)别(Bie),(?)主(Zhu)要(Yao)是(Shi)XHTML可(Ke)兼(Jian)容(Rong)各(Ge)大(Da)浏(Liu)览(Lan)器(Qi)、(?)手(Shou)机(Ji)以(Yi)及(Ji)PDA,(?)并(Bing)且(Qie)浏(Liu)览(Lan)器(Qi)也(Ye)能(Neng)快(Kuai)速(Su)正(Zheng)确(Que)地(Di)编(Bian)译(Yi)网(Wang)页(Ye)。(?)
因(Yin)为(Wei)XHTML的(De)语(Yu)法(Fa)较(Jiao)为(Wei)严(Yan)谨(Jin),(?) 所(Suo)以(Yi)如(Ru)果(Guo)你(Ni)是(Shi)习(Xi)惯(Guan)松(Song)散(San)结(Jie)构(Gou)的(De)HTML编(Bian)写(Xie)者(Zhe),(?)那(Na)需(Xu)要(Yao)特(Te)别(Bie)注(Zhu)意(Yi)XHTML的(De)规(Gui)则(Ze)。(?)但(Dan)也(Ye)不(Bu)必(Bi)太(Tai)过(Guo)担(Dan)心(Xin),(?)因(Yin)为(Wei)XHTML的(De)规(Gui)则(Ze)并(Bing)不(Bu)太(Tai)难(Nan)。(?)下(Xia)面(Mian)列(Lie)出(Chu)了(Liao)几(Ji)条(Tiao)容(Rong)易(Yi)犯(Fan)的(De)错(Cuo)误(Wu),(?)供(Gong)大(Da)家(Jia)引(Yin)用(Yong)。(?)
1:所(Suo)有(You)标(Biao)签(Qian)都(Du)必(Bi)须(Xu)小(Xiao)写(Xie)
在(Zai)XHTML中(Zhong),(?)所(Suo)有(You)的(De)标(Biao)签(Qian)都(Du)必(Bi)须(Xu)小(Xiao)写(Xie),(?)不(Bu)能(Neng)大(Da)小(Xiao)写(Xie)穿(Chuan)插(Cha)其(Qi)中(Zhong),(?)也(Ye)不(Bu)能(Neng)全(Quan)部(Bu)都(Du)是(Shi)大(Da)写(Xie)。(?)看(Kan)一(Yi)个(Ge)例(Li)子(Zi)。(?)
错(Cuo)误(Wu):(?)< Head>< /Head>< Body>
正(Zheng)确(Que):(?)< head>< /head>< body>< /body>
2:标(Biao)签(Qian)必(Bi)须(Xu)成(Cheng)双(Shuang)成(Cheng)对(Dui)
像(Xiang)是(Shi)< p>...< /p>、(?)< a>...< /a>、(?)< div>...< /div>标(Biao)签(Qian)等(Deng),(?)当(Dang)出(Chu)现(Xian)一(Yi)个(Ge)标(Biao)签(Qian)时(Shi),(?)必(Bi)须(Xu)要(Yao)有(You)对(Dui)应(Ying)的(De)结(Jie)束(Shu)标(Biao)签(Qian),(?)缺(Que)一(Yi)不(Bu)可(Ke),(?)就(Jiu)像(Xiang)在(Zai)任(Ren)何(He)程(Cheng)序(Xu)语(Yu)言(Yan)中(Zhong)的(De)括(Kuo)号(Hao)一(Yi)样(Yang)。(?)
错(Cuo)误(Wu):(?)大(Da)家(Jia)好(Hao)< p>我(Wo)是(Shi)muki
正(Zheng)确(Que):(?)< p>大(Da)家(Jia)好(Hao)< /p>< p>我(Wo)是(Shi)muki< /p>
3:标(Biao)签(Qian)顺(Shun)序(Xu)必(Bi)须(Xu)正(Zheng)确(Que)
标(Biao)签(Qian)由(You)外(Wai)到(Dao)内(Nei),(?)一(Yi)层(Ceng)层(Ceng)包(Bao)覆(Fu)着(Zhuo),(?)所(Suo)以(Yi)假(Jia)设(She)你(Ni)先(Xian)写(Xie)div后(Hou)写(Xie)h1,(?)结(Jie)尾(Wei)就(Jiu)要(Yao)先(Xian)写(Xie)h1后(Hou)写(Xie)div。(?)只(Zhi)要(Yao)记(Ji)住(Zhu)一(Yi)个(Ge)原(Yuan)则(Ze)“(?)先(Xian)进(Jin)后(Hou)出(Chu)”(?),(?)先(Xian)弹(Dan)出(Chu)的(De)标(Biao)签(Qian)要(Yao)后(Hou)结(Jie)尾(Wei)。(?)
错(Cuo)误(Wu):(?)< div>< h1>大(Da)家(Jia)好(Hao)< /div>< /h1>
正(Zheng)确(Que):(?)< div>< h1>大(Da)家(Jia)好(Hao)< /h1>< /div>
4:所(Suo)有(You)属(Shu)性(Xing)都(Du)必(Bi)须(Xu)使(Shi)用(Yong)双(Shuang)引(Yin)号(Hao)
在(Zai)XHTML 1.0中(Zhong)规(Gui)定(Ding)连(Lian)单(Dan)引(Yin)号(Hao)也(Ye)不(Bu)能(Neng)使(Shi)用(Yong),(?)所(Suo)以(Yi)全(Quan)程(Cheng)都(Du)得(De)用(Yong)双(Shuang)引(Yin)号(Hao)。(?)
错(Cuo)误(Wu):(?)< div style=font-size:11px>hello< /div>
正(Zheng)确(Que):(?)< div style="font-size:11px">hello< /div
5:不(Bu)允(Yun)许(Xu)使(Shi)用(Yong)target="_blank"
从(Cong)XHTML 1.1开(Kai)始(Shi)全(Quan)面(Mian)禁(Jin)止(Zhi)target属(Shu)性(Xing),(?)如(Ru)果(Guo)想(Xiang)要(Yao)有(You)开(Kai)新(Xin)窗(Chuang)口(Kou)的(De)功(Gong)能(Neng),(?)就(Jiu)必(Bi)须(Xu)改(Gai)写(Xie)为(Wei)rel="external",(?)并(Bing)搭(Da)配(Pei)JavaScript实(Shi)现(Xian)此(Ci)效(Xiao)果(Guo)。(?)
错(Cuo)误(Wu):(?)< a href="http://blog.mukispace.com" target="_blank">MUKI space< /a>
正(Zheng)确(Que):(?)< a href="http://blog.mukispace.com" rel="external">MUKI space< /a>
362.你(Ni)做(Zuo)的(De)页(Ye)面(Mian)用(Yong)哪(Na)些(Xie)浏(Liu)览(Lan)器(Qi)测(Ce)试(Shi)过(Guo)?(?)这(Zhe)些(Xie)测(Ce)试(Shi)的(De)内(Nei)核(He)分(Fen)别(Bie)是(Shi)什(Shi)么(Me)?(?)
1、(?)Trident内(Nei)核(He)代(Dai)表(Biao)产(Chan)品(Pin)Internet Explorer,(?)又(You)称(Cheng)其(Qi)为(Wei)IE内(Nei)核(He)。(?)Trident((?)又(You)称(Cheng)为(Wei)MSHTML)(?),(?)是(Shi)微(Wei)软(Ruan)开(Kai)发(Fa)的(De)一(Yi)种(Zhong)排(Pai)版(Ban)引(Yin)擎(Qing)。(?)使(Shi)用(Yong)Trident渲(Xuan)染(Ran)引(Yin)擎(Qing)的(De)浏(Liu)览(Lan)器(Qi)包(Bao)括(Kuo):(?)IE、(?)傲(Ao)游(You)、(?)世(Shi)界(Jie)之(Zhi)窗(Chuang)浏(Liu)览(Lan)器(Qi)、(?)Avant、(?)腾(Teng)讯(Xun)TT、(?)Netscape 8、(?)NetCaptor、(?)Sleipnir、(?)GOSURF、(?)GreenBrowser和(He)KKman等(Deng)。(?)
2、(?)Gecko内(Nei)核(He)代(Dai)表(Biao)作(Zuo)品(Pin)Mozilla,FirefoxGecko是(Shi)一(Yi)套(Tao)开(Kai)放(Fang)源(Yuan)代(Dai)码(Ma)的(De)、(?)以(Yi)C++编(Bian)写(Xie)的(De)网(Wang)页(Ye)排(Pai)版(Ban)引(Yin)擎(Qing)。(?)Gecko是(Shi)最(Zui)流(Liu)行(Xing)的(De)排(Pai)版(Ban)引(Yin)擎(Qing)之(Zhi)一(Yi),(?)仅(Jin)次(Ci)于(Yu)Trident。(?)使(Shi)用(Yong)它(Ta)的(De)最(Zui)著(Zhu)名(Ming)浏(Liu)览(Lan)器(Qi)有(You)Firefox、(?)Netscape6至(Zhi)9
3、(?)WebKit内(Nei)核(He)代(Dai)表(Biao)作(Zuo)品(Pin)Safari、(?)Chromewebkit, 是(Shi)一(Yi)个(Ge)开(Kai)源(Yuan)项(Xiang)目(Mu),(?)包(Bao)含(Han)了(Liao)来(Lai)自(Zi)KDE项(Xiang)目(Mu)和(He)苹(Ping)果(Guo)公(Gong)司(Si)的(De)一(Yi)些(Xie)组(Zu)件(Jian),(?)主(Zhu)要(Yao)用(Yong)于(Yu)Mac OS系(Xi)统(Tong),(?)它(Ta)的(De)特(Te)点(Dian)在(Zai)于(Yu)源(Yuan)码(Ma)结(Jie)构(Gou)清(Qing)晰(Xi)、(?)渲(Xuan)染(Ran)速(Su)度(Du)极(Ji)快(Kuai)。(?)缺(Que)点(Dian)是(Shi)对(Dui)网(Wang)页(Ye)代(Dai)码(Ma)的(De)兼(Jian)容(Rong)性(Xing)不(Bu)高(Gao),(?)导(Dao)致(Zhi)一(Yi)些(Xie)编(Bian)写(Xie)不(Bu)标(Biao)准(Zhun)的(De)网(Wang)页(Ye)无(Wu)法(Fa)正(Zheng)常(Chang)显(Xian)示(Shi)。(?)主(Zhu)要(Yao)代(Dai)表(Biao)作(Zuo)品(Pin)有(You)Safari和(He)Google的(De)浏(Liu)览(Lan)器(Qi)Chrome。(?)
4、(?)Presto内(Nei)核(He)代(Dai)表(Biao)作(Zuo)品(Pin)OperaPresto,是(Shi)由(You)Opera Software开(Kai)发(Fa)的(De)浏(Liu)览(Lan)器(Qi)排(Pai)版(Ban)引(Yin)擎(Qing),(?)供(Gong)Opera 7.0及(Ji)以(Yi)上(Shang)使(Shi)用(Yong)。(?)它(Ta)取(Qu)代(Dai)了(Liao)旧(Jiu)版(Ban)Opera 4至(Zhi)6版(Ban)本(Ben)使(Shi)用(Yong)的(De)Elektra排(Pai)版(Ban)引(Yin)擎(Qing),(?)包(Bao)括(Kuo)加(Jia)入(Ru)动(Dong)态(Tai)功(Gong)能(Neng),(?)例(Li)如(Ru)网(Wang)页(Ye)或(Huo)其(Qi)部(Bu)分(Fen)可(Ke)随(Sui)着(Zhuo)DOM及(Ji)Script语(Yu)法(Fa)的(De)事(Shi)件(Jian)而(?)重(Zhong)新(Xin)排(Pai)版(Ban)。(?)
363.你(Ni)遇(Yu)到(Dao)了(Liao)哪(Na)些(Xie)浏(Liu)览(Lan)器(Qi)的(De)兼(Jian)容(Rong)性(Xing)问(Wen)题(Ti)?(?)怎(Zen)么(Me)解(Jie)决(Jue)的(De)?(?)
答(Da):(?)因(Yin)为(Wei)不(Bu)同(Tong)的(De)浏(Liu)览(Lan)器(Qi)对(Dui)同(Tong)一(Yi)段(Duan)代(Dai)码(Ma)有(You)不(Bu)同(Tong)的(De)解(Jie)析(Xi),(?)造(Zao)成(Cheng)页(Ye)面(Mian)显(Xian)示(Shi)效(Xiao)果(Guo)不(Bu)统(Tong)一(Yi)的(De)情(Qing)况(Kuang);(?)这(Zhe)是(Shi)我(Wo)们(Men)常(Chang)见(Jian)的(De)兼(Jian)容(Rong)性(Xing)问(Wen)题(Ti)。(?)
解(Jie)决(Jue)方(Fang)法(Fa):(?)
1、(?)针(Zhen)对(Dui)不(Bu)同(Tong)的(De)浏(Liu)览(Lan)器(Qi)写(Xie)不(Bu)同(Tong)的(De)代(Dai)码(Ma)
2、(?)使(Shi)用(Yong)jquery屏(Ping)蔽(Bi)浏(Liu)览(Lan)器(Qi)差(Cha)异(Yi)
遇(Yu)到(Dao)不(Bu)同(Tong)的(De)兼(Jian)容(Rong)问(Wen)题(Ti),(?)需(Xu)要(Yao)针(Zhen)对(Dui)前(Qian)端(Duan)进(Jin)行(Xing)兼(Jian)容(Rong)适(Shi)配(Pei);(?)
364.你(Ni)知(Zhi)道(Dao)的(De)常(Chang)用(Yong)的(De)js库(Ku)有(You)哪(Na)些(Xie)?(?)
1.moment.js
举(Ju)个(Ge)例(Li)子(Zi):(?)
用(Yong)js转(Zhuan)换(Huan)时(Shi)间(Jian)戳(Chuo)为(Wei)日(Ri)期(Qi)
let date = new Date(1437925575663); let year = date.getFullYear() + '-'; let month = ( date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 ) + '-'; let day = date.getDate(); ... return year + month + day; 用(Yong)moment.js return moment(1437925575663).format('YYYY-MM-DD HH:mm:ss')
2.chart.js
绘(Hui)制(Zhi)简(Jian)单(Dan)的(De)柱(Zhu)状(Zhuang)图(Tu),(?)曲(Qu)线(Xian)图(Tu),(?)蛛(Zhu)网(Wang)图(Tu),(?)环(Huan)形(Xing)图(Tu),(?)饼(Bing)图(Tu)等(Deng)完(Wan)全(Quan)够(Gou)用(Yong),(?)用(Yong)法(Fa)比(Bi)较(Jiao)简(Jian)单(Dan)。(?)
3.D3.js
功(Gong)能(Neng)太(Tai)强(Qiang)大(Da)了(Liao),(?)看(Kan)首(Shou)页(Ye)就(Jiu)知(Zhi)道(Dao)了(Liao),(?)感(Gan)觉(Jue)没(Mei)有(You)什(Shi)么(Me)图(Tu)d3绘(Hui)不(Bu)出(Chu)来(Lai)的(De)。(?)
4.Rx.js
很(Hen)好(Hao)的(De)解(Jie)决(Jue)了(Liao)异(Yi)步(Bu)和(He)事(Shi)件(Jian)组(Zu)合(He)的(De)问(Wen)题(Ti)。(?)
5.lodash.js
365.Js中(Zhong)的(De)三(San)种(Zhong)弹(Dan)出(Chu)式(Shi)消(Xiao)息(Xi)提(Ti)醒(Xing)((?)警(Jing)告(Gao)窗(Chuang)口(Kou)、(?)确(Que)认(Ren)窗(Chuang)口(Kou)、(?)信(Xin)息(Xi)输(Shu)入(Ru)窗(Chuang)口(Kou))(?)的(De)命(Ming)令(Ling)是(Shi)什(Shi)么(Me)?(?)
alter(),confirm(),prompt()
366.谈(Tan)谈(Tan)js的(De)闭(Bi)包(Bao)
答(Da):(?)闭(Bi)包(Bao)无(Wu)处(Chu)不(Bu)在(Zai),(?)比(Bi)如(Ru):(?)jQuery、(?)zepto的(De)核(He)心(Xin)代(Dai)码(Ma)都(Du)包(Bao)含(Han)在(Zai)一(Yi)个(Ge)大(Da)的(De)闭(Bi)包(Bao)中(Zhong),(?)所(Suo)以(Yi)下(Xia)面(Mian)我(Wo)先(Xian)写(Xie)一(Yi)个(Ge)最(Zui)简(Jian)单(Dan)最(Zui)原(Yuan)始(Shi)的(De)闭(Bi)包(Bao),(?)以(Yi)便(Bian)让(Rang)你(Ni)在(Zai)大(Da)脑(Nao)里(Li)产(Chan)生(Sheng)闭(Bi)包(Bao)的(De)画(Hua)面(Mian):(?)
function A(){ function B(){ console.log("Hello Closure!"); } return B; } var C = A(); C();//Hello Closure!
这(Zhe)是(Shi)最(Zui)简(Jian)单(Dan)的(De)闭(Bi)包(Bao)。(?)
有(You)了(Liao)初(Chu)步(Bu)认(Ren)识(Shi)后(Hou),(?)我(Wo)们(Men)简(Jian)单(Dan)分(Fen)析(Xi)一(Yi)下(Xia)它(Ta)和(He)普(Pu)通(Tong)函(Han)数(Shu)有(You)什(Shi)么(Me)不(Bu)同(Tong),(?)上(Shang)面(Mian)代(Dai)码(Ma)翻(Fan)译(Yi)成(Cheng)自(Zi)然(Ran)语(Yu)言(Yan)如(Ru)下(Xia):(?)
((?)1)(?)定(Ding)义(Yi)普(Pu)通(Tong)函(Han)数(Shu) A
((?)2)(?)在(Zai) A 中(Zhong)定(Ding)义(Yi)普(Pu)通(Tong)函(Han)数(Shu) B
((?)3)(?)在(Zai) A 中(Zhong)返(Fan)回(Hui) B
((?)4)(?)执(Zhi)行(Xing) A, 并(Bing)把(Ba) A 的(De)返(Fan)回(Hui)结(Jie)果(Guo)赋(Fu)值(Zhi)给(Gei)变(Bian)量(Liang) C
((?)5)(?)执(Zhi)行(Xing) C
把(Ba)这(Zhe)5步(Bu)操(Cao)作(Zuo)总(Zong)结(Jie)成(Cheng)一(Yi)句(Ju)话(Hua)就(Jiu)是(Shi):(?)
函(Han)数(Shu)A的(De)内(Nei)部(Bu)函(Han)数(Shu)B被(Bei)函(Han)数(Shu)A外(Wai)的(De)一(Yi)个(Ge)变(Bian)量(Liang) c 引(Yin)用(Yong)。(?)
把(Ba)这(Zhe)句(Ju)话(Hua)再(Zai)加(Jia)工(Gong)一(Yi)下(Xia)就(Jiu)变(Bian)成(Cheng)了(Liao)闭(Bi)包(Bao)的(De)定(Ding)义(Yi):(?)
当(Dang)一(Yi)个(Ge)内(Nei)部(Bu)函(Han)数(Shu)被(Bei)其(Qi)外(Wai)部(Bu)函(Han)数(Shu)之(Zhi)外(Wai)的(De)变(Bian)量(Liang)引(Yin)用(Yong)时(Shi),(?)就(Jiu)形(Xing)成(Cheng)了(Liao)一(Yi)个(Ge)闭(Bi)包(Bao)。(?)
因(Yin)此(Ci),(?)当(Dang)你(Ni)执(Zhi)行(Xing)上(Shang)述(Shu)5步(Bu)操(Cao)作(Zuo)时(Shi),(?)就(Jiu)已(Yi)经(Jing)定(Ding)义(Yi)了(Liao)一(Yi)个(Ge)闭(Bi)包(Bao)!(?)
这(Zhe)就(Jiu)是(Shi)闭(Bi)包(Bao)。(?)
367.写(Xie)一(Yi)段(Duan)js,(?)遍(Bian)历(Li)所(Suo)有(You)的(De)li,(?)将(Jiang)每(Mei)个(Ge)li的(De)内(Nei)容(Rong)逐(Zhu)个(Ge)alert出(Chu)来(Lai)
<body> <ul> <li>张(Zhang)三(San):(?)123</li> <li>李(Li)四(Si):(?)456</li> <li>王(Wang)五(Wu):(?)789</li> <li>赵(Zhao)六(Liu):(?)147</li> <ul> <body>
function test(){ var varli = document.getElementsByTagName("li"); for (var i=0;i<varli.length;i++) { alert(varli[i].innerText); } }
368.页(Ye)面(Mian)上(Shang)如(Ru)何(He)用(Yong)JavaScript对(Dui)多(Duo)个(Ge)checkbox全(Quan)选(Xuan)
//全(Quan)选(Xuan) function checkAll(){ //获(Huo)取(Qu)复(Fu)选(Xuan)框(Kuang)对(Dui)象(Xiang)--数(Shu)组(Zu)对(Dui)象(Xiang) var varcheck = document.getElementsByName("name"); //alert(varcheck.length); //遍(Bian)历(Li)for for(var i=0;i<varcheck.length;i++){ varcheck[i].checked = true; } }
369.写(Xie)一(Yi)个(Ge)简(Jian)单(Dan)的(De)JQuery的(De)ajax
<script type="text/javascript" src="js/jquery-1.9.1.js" charset="utf-8"></script> <script type="text/javascript"> function testJqAjax(){ //url :请(Qing)求(Qiu)地(Di)址(Zhi) //type :请(Qing)求(Qiu)的(De)方(Fang)式(Shi) get/post //data :请(Qing)求(Qiu)的(De)参(Can)数(Shu)(json/String) //cache:true(走(Zou)缓(Huan)存(Cun) ) false(不(Bu)走(Zou)缓(Huan)存(Cun)) //result:当(Dang)ajax发(Fa)送(Song)成(Cheng)功(Gong)后(Hou)会(Hui)调(Diao)用(Yong)success后(Hou)面(Mian)的(De)函(Han)数(Shu),(?)result:(?)相(Xiang)当(Dang)于(Yu)形(Xing)参(Can),(?)返(Fan)回(Hui)的(De)数(Shu)据(Ju) //async:是(Shi)否(Fou)为(Wei)异(Yi)步(Bu)请(Qing)求(Qiu) 默(Mo)认(Ren)true异(Yi)步(Bu) , false同(Tong)步(Bu) $.ajax({ url:"TestJqAjax", type:"get", /* data:"uname=zhangsan&realname=张(Zhang)三(San)丰(Feng)", */ data:{uname:"zhangsan",realname:"张(Zhang)三(San)丰(Feng)"}, cache:false, async:false, success:function(result){ alert(result); } }); } //ajax的(De)get方(Fang)式(Shi)的(De)请(Qing)求(Qiu) function jqAjaxGet(){ //url,[data],[callback](当(Dang)ajax发(Fa)送(Song)成(Cheng)功(Gong)后(Hou)调(Diao)用(Yong)的(De)函(Han)数(Shu)) $.get("TestJqAjax",{uname:"zhangsan",realname:"张(Zhang)三(San)丰(Feng)"},function(result){ alert(result); }); } function jqAjaxPost() { //url,[data],[callback](当(Dang)ajax发(Fa)送(Song)成(Cheng)功(Gong)后(Hou)调(Diao)用(Yong)的(De)函(Han)数(Shu)) $.post("TestJqAjax",{uname:"zhangsan",realname:"张(Zhang)三(San)丰(Feng)"},function(result){ alert(result); }); } </script>
370.Js截(Jie)取(Qu)字(Zi)符(Fu)串(Chuan)abcdefg的(De)efg
function test2(){ var str = "abcdefg"; var substr = str.substring(4); alert(substr); }
371.http的(De)请(Qing)求(Qiu)头(Tou)信(Xin)息(Xi)包(Bao)含(Han)了(Liao)什(Shi)么(Me)?
请(Qing)求(Qiu)行(Xing)((?)请(Qing)求(Qiu)方(Fang)式(Shi),(?)资(Zi)源(Yuan)路(Lu)径(Jing),(?)协(Xie)议(Yi)和(He)协(Xie)议(Yi)版(Ban)本(Ben)号(Hao))(?)
若(Ruo)干(Gan)请(Qing)求(Qiu)头(Tou)
请(Qing)求(Qiu)实(Shi)体(Ti)内(Nei)容(Rong)
372.http的(De)响(Xiang)应(Ying)码(Ma)200,(?)404,(?)302,(?)500表(Biao)示(Shi)的(De)含(Han)义(Yi)分(Fen)别(Bie)是(Shi)?(?)
200 - 确(Que)定(Ding)。(?)客(Ke)户(Hu)端(Duan)请(Qing)求(Qiu)已(Yi)成(Cheng)功(Gong)
302 - 临(Lin)时(Shi)移(Yi)动(Dong)转(Zhuan)移(Yi),(?)请(Qing)求(Qiu)的(De)内(Nei)容(Rong)已(Yi)临(Lin)时(Shi)移(Yi)动(Dong)新(Xin)的(De)位(Wei)置(Zhi)
404 - 未(Wei)找(Zhao)到(Dao)文(Wen)件(Jian)或(Huo)目(Mu)录(Lu)
500 - 服(Fu)务(Wu)器(Qi)内(Nei)部(Bu)错(Cuo)误(Wu)
373.Servlet中(Zhong)request对(Dui)象(Xiang)的(De)方(Fang)法(Fa)有(You)?(?)
/获(Huo)取(Qu)网(Wang)络(Luo)信(Xin)息(Xi) private void getNet(HttpServletRequest req, HttpServletResponse resp) { System.out.println("TestHttpRequest.getNet(获(Huo)取(Qu)客(Ke)户(Hu)端(Duan)的(De)ip):"+req.getRemoteAddr()); System.out.println("TestHttpRequest.getNet(获(Huo)取(Qu)客(Ke)户(Hu)端(Duan)的(De)端(Duan)口(Kou)):"+req.getRemotePort()); System.out.println("TestHttpRequest.getNet(获(Huo)取(Qu)服(Fu)务(Wu)器(Qi)的(De)ip):"+req.getLocalAddr()); System.out.println("TestHttpRequest.getNet(获(Huo)取(Qu)服(Fu)务(Wu)器(Qi)的(De)端(Duan)口(Kou)):"+req.getLocalPort()); } //获(Huo)取(Qu)实(Shi)体(Ti)内(Nei)容(Rong) private void getContent(HttpServletRequest req, HttpServletResponse resp) { //获(Huo)取(Qu)单(Dan)条(Tiao)信(Xin)息(Xi) String uname = req.getParameter("uname"); //获(Huo)取(Qu)多(Duo)条(Tiao)信(Xin)息(Xi),(?)数(Shu)组(Zu)格(Ge)式(Shi) String[] favs = req.getParameterValues("fav"); //遍(Bian)历(Li)数(Shu)组(Zu) //判(Pan)断(Duan) if(favs!=null&&favs.length>0){ for (int i = 0; i < favs.length; i++) { System.out.println("TestHttpRequest.getContent(fav):"+favs[i]); } } String un = req.getParameter("un"); System.out.println("TestHttpRequest.getContent():"+uname+"--"+favs+"--"+un); } //获(Huo)取(Qu)请(Qing)求(Qiu)头(Tou)信(Xin)息(Xi) private void getHeads(HttpServletRequest req, HttpServletResponse resp) { //获(Huo)取(Qu)单(Dan)条(Tiao)头(Tou)信(Xin)息(Xi) //System.out.println("TestHttpRequest.getHeads(获(Huo)取(Qu)请(Qing)求(Qiu)头(Tou)信(Xin)息(Xi)-浏(Liu)览(Lan)器(Qi)头(Tou)信(Xin)息(Xi)):(?)"+req.getHeader("User-Agent")); //获(Huo)取(Qu)所(Suo)有(You)头(Tou)信(Xin)息(Xi)--返(Fan)回(Hui)枚(Mei)举(Ju)类(Lei)型(Xing) Enumeration strHeads = req.getHeaderNames(); //遍(Bian)历(Li)枚(Mei)举(Ju)类(Lei)型(Xing) while (strHeads.hasMoreElements()) { String strhead = (String) strHeads.nextElement(); System.out.println("TestHttpRequest.getHeads(获(Huo)取(Qu)头(Tou)信(Xin)息(Xi)):"+req.getHeader(strhead)); } } //获(Huo)取(Qu)请(Qing)求(Qiu)行(Xing)的(De)信(Xin)息(Xi) private void getLines(HttpServletRequest req, HttpServletResponse resp) { System.out.println("TestHttpRequest.getLines(请(Qing)求(Qiu)方(Fang)式(Shi)***):"+req.getMethod()); System.out.println("TestHttpRequest.getLines(资(Zi)源(Yuan)路(Lu)径(Jing)):"+req.getRequestURI()); System.out.println("TestHttpRequest.getLines(地(Di)址(Zhi)):"+req.getRequestURL()); System.out.println("TestHttpRequest.getLines(协(Xie)议(Yi)):"+req.getScheme()); System.out.println("TestHttpRequest.getLines(协(Xie)议(Yi)的(De)版(Ban)本(Ben)号(Hao)):"+req.getProtocol()); System.out.println("TestHttpRequest.getLines(获(Huo)取(Qu)参(Can)数(Shu)信(Xin)息(Xi)):"+req.getQueryString()); System.out.println("TestHttpRequest.getLines(项(Xiang)目(Mu)名(Ming)称(Cheng)***):"+req.getContextPath()); }
374.Javascript的(De)常(Chang)用(Yong)对(Dui)象(Xiang)有(You)哪(Na)些(Xie)
常(Chang)用(Yong)对(Dui)象(Xiang)包(Bao)括(Kuo)日(Ri)期(Qi)对(Dui)象(Xiang)Date,(?)字(Zi)符(Fu)串(Chuan)对(Dui)象(Xiang)String,(?)数(Shu)组(Zu)对(Dui)象(Xiang)Array
//获(Huo)取(Qu)并(Bing)显(Xian)示(Shi)系(Xi)统(Tong)当(Dang)前(Qian)时(Shi)间(Jian)
function testDate(){ var date = new Date(); var fmtDate = date.getFullYear()+"-"+(date.getMonth()+1)+ "-"+date.getDate()+"-"+date.getHours() +":"+date.getMinutes()+":"+date.getSeconds(); alert(fmtDate); }
//获(Huo)取(Qu)出(Chu)’(?)sxt’(?)的(De)下(Xia)标(Biao)位(Wei)置(Zhi)
function testString(){ var str = 'welcome to beijingsxt'; alert(str.indexOf('sxt')); }
//遍(Bian)历(Li)数(Shu)组(Zu)信(Xin)息(Xi)
function testArray(){ var arr = new Array('a',123,'c',true,'e'); for(var item in arr){ document.write(arr[item]+" "); } }
375.DOM和(He)BOM及(Ji)其(Qi)关(Guan)系(Xi)
BOM浏(Liu)览(Lan)器(Qi)对(Dui)象(Xiang)模(Mo)型(Xing),(?)由(You)一(Yi)系(Xi)列(Lie)对(Dui)象(Xiang)组(Zu)成(Cheng),(?)是(Shi)访(Fang)问(Wen)、(?)控(Kong)制(Zhi)、(?)修(Xiu)改(Gai)浏(Liu)览(Lan)器(Qi)的(De)属(Shu)性(Xing)的(De)方(Fang)法(Fa)。(?)
DOM文(Wen)档(Dang)对(Dui)象(Xiang)模(Mo)型(Xing),(?)由(You)一(Yi)系(Xi)列(Lie)对(Dui)象(Xiang)组(Zu)成(Cheng),(?)是(Shi)访(Fang)问(Wen)、(?)检(Jian)索(Suo)、(?)修(Xiu)改(Gai)XHTML文(Wen)档(Dang)内(Nei)容(Rong)与(Yu)结(Jie)构(Gou)的(De)标(Biao)准(Zhun)方(Fang)法(Fa)。(?)

关(Guan)系(Xi):(?)
BOM描(Miao)述(Shu)了(Liao)与(Yu)浏(Liu)览(Lan)器(Qi)进(Jin)行(Xing)交(Jiao)互(Hu)的(De)方(Fang)法(Fa)和(He)接(Jie)口(Kou)
DOM描(Miao)述(Shu)了(Liao)处(Chu)理(Li)网(Wang)页(Ye)内(Nei)容(Rong)的(De)方(Fang)法(Fa)和(He)接(Jie)口(Kou)
DOM属(Shu)于(Yu)BOM的(De)一(Yi)个(Ge)属(Shu)性(Xing)
376.JavaScript中(Zhong)获(Huo)取(Qu)某(Mou)个(Ge)元(Yuan)素(Su)的(De)三(San)种(Zhong)方(Fang)式(Shi)JavaScript中(Zhong)的(De)三(San)种(Zhong)弹(Dan)出(Chu)式(Shi)消(Xiao)息(Xi)提(Ti)醒(Xing)命(Ming)令(Ling)是(Shi)什(Shi)么(Me)?
window.alert() 显(Xian)示(Shi)一(Yi)个(Ge)提(Ti)示(Shi)信(Xin)息(Xi)
window.confirm() 显(Xian)示(Shi)一(Yi)个(Ge)带(Dai)有(You)提(Ti)示(Shi)信(Xin)息(Xi)、(?)确(Que)定(Ding)和(He)取(Qu)消(Xiao)按(An)钮(Niu)的(De)对(Dui)话(Hua)框(Kuang)
window.prompt() 显(Xian)示(Shi)可(Ke)提(Ti)示(Shi)用(Yong)户(Hu)输(Shu)入(Ru)的(De)对(Dui)话(Hua)框(Kuang)
setTimeout与(Yu)setInterval 的(De)区(Qu)别(Bie)
setTimeout和(He)setInterval的(De)语(Yu)法(Fa)相(Xiang)同(Tong)。(?)它(Ta)们(Men)都(Du)有(You)两(Liang)个(Ge)参(Can)数(Shu),(?)一(Yi)个(Ge)是(Shi)将(Jiang)要(Yao)执(Zhi)行(Xing)的(De)代(Dai)码(Ma)字(Zi)符(Fu)串(Chuan),(?)还(Huan)有(You)一(Yi)个(Ge)是(Shi)以(Yi)毫(Hao)秒(Miao)为(Wei)单(Dan)位(Wei)的(De)时(Shi)间(Jian)间(Jian)隔(Ge),(?)当(Dang)过(Guo)了(Liao)那(Na)个(Ge)时(Shi)间(Jian)段(Duan)之(Zhi)后(Hou)就(Jiu)将(Jiang)执(Zhi)行(Xing)那(Na)段(Duan)代(Dai)码(Ma)。(?)
不(Bu)过(Guo)这(Zhe)两(Liang)个(Ge)函(Han)数(Shu)还(Huan)是(Shi)有(You)区(Qu)别(Bie)的(De),(?)setInterval在(Zai)执(Zhi)行(Xing)完(Wan)一(Yi)次(Ci)代(Dai)码(Ma)之(Zhi)后(Hou),(?)经(Jing)过(Guo)了(Liao)那(Na)个(Ge)固(Gu)定(Ding)的(De)时(Shi)间(Jian)间(Jian)隔(Ge),(?)它(Ta)还(Huan)会(Hui)自(Zi)动(Dong)重(Zhong)复(Fu)执(Zhi)行(Xing)代(Dai)码(Ma),(?)而(?)setTimeout只(Zhi)执(Zhi)行(Xing)一(Yi)次(Ci)那(Na)段(Duan)代(Dai)码(Ma)。(?)
window.setTimeout("function",time);(?)//设(She)置(Zhi)一(Yi)个(Ge)超(Chao)时(Shi)对(Dui)象(Xiang),(?)只(Zhi)执(Zhi)行(Xing)一(Yi)次(Ci),无(Wu)周(Zhou)期(Qi)
window.setInterval("function",time);(?)//设(She)置(Zhi)一(Yi)个(Ge)超(Chao)时(Shi)对(Dui)象(Xiang),(?)周(Zhou)期(Qi)=(?)'交(Jiao)互(Hu)时(Shi)间(Jian)'
377.JavaScript操(Cao)作(Zuo)CSS的(De)两(Liang)种(Zhong)方(Fang)式(Shi)
第(Di)一(Yi)种(Zhong)方(Fang)式(Shi):(?)操(Cao)作(Zuo)元(Yuan)素(Su)的(De)属(Shu)性(Xing)((?)对(Dui)象(Xiang).style.样(Yang)式(Shi)名(Ming)=样(Yang)式(Shi)值(Zhi);)(?)
//改(Gai)变(Bian)直(Zhi)接(Jie)样(Yang)式(Shi)
var child2 = document.createElement("div"); child2.innerHTML = "child2"; child2.style.fontWeight = "bold"; parent.appendChild(child2);
第(Di)二(?)种(Zhong)方(Fang)式(Shi):(?)操(Cao)作(Zuo)元(Yuan)素(Su)的(De)类(Lei)((?)对(Dui)象(Xiang).className=类(Lei);)(?)
例(Li)如(Ru):(?)
var parent = document.getElementById("parent"); //改(Gai)变(Bian)className var child0 = document.createElement("div"); child0.innerHTML = "child0"; child0.className = "newDiv"; parent.appendChild(child0);
378.静(Jing)态(Tai)网(Wang)页(Ye)和(He)动(Dong)态(Tai)网(Wang)页(Ye)的(De)联(Lian)系(Xi)和(He)区(Qu)别(Bie)
联(Lian)系(Xi):(?)
1)(?)静(Jing)态(Tai)网(Wang)页(Ye)是(Shi)网(Wang)站(Zhan)建(Jian)设(She)的(De)基(Ji)础(Chu),(?)静(Jing)态(Tai)网(Wang)页(Ye)和(He)动(Dong)态(Tai)网(Wang)页(Ye)都(Du)要(Yao)使(Shi)用(Yong)到(Dao)HTMl语(Yu)言(Yan)。(?)
2)(?)静(Jing)态(Tai)网(Wang)页(Ye)是(Shi)相(Xiang)对(Dui)于(Yu)动(Dong)态(Tai)网(Wang)页(Ye)而(?)言(Yan),(?)指(Zhi)没(Mei)有(You)后(Hou)台(Tai)数(Shu)据(Ju)库(Ku)、(?)不(Bu)含(Han)程(Cheng)序(Xu)和(He)不(Bu)可(Ke)交(Jiao)互(Hu)的(De)网(Wang)页(Ye)、(?)是(Shi)标(Biao)准(Zhun)的(De)HTML文(Wen)件(Jian),(?)它(Ta)的(De)文(Wen)件(Jian)扩(Kuo)展(Zhan)名(Ming)是(Shi).htm或(Huo).html。(?)你(Ni)编(Bian)的(De)是(Shi)什(Shi)么(Me)它(Ta)显(Xian)示(Shi)的(De)就(Jiu)是(Shi)什(Shi)么(Me)、(?)不(Bu)会(Hui)有(You)任(Ren)何(He)改(Gai)变(Bian)。(?)
3)(?)静(Jing)态(Tai)网(Wang)页(Ye)和(He)动(Dong)态(Tai)网(Wang)页(Ye)之(Zhi)间(Jian)并(Bing)不(Bu)矛(Mao)盾(Dun),(?)为(Wei)了(Liao)网(Wang)站(Zhan)适(Shi)应(Ying)搜(Sou)索(Suo)引(Yin)擎(Qing)检(Jian)索(Suo)的(De)需(Xu)要(Yao),(?)动(Dong)态(Tai)网(Wang)站(Zhan)可(Ke)以(Yi)采(Cai)用(Yong)静(Jing)动(Dong)结(Jie)合(He)的(De)原(Yuan)则(Ze),(?)适(Shi)合(He)采(Cai)用(Yong)动(Dong)态(Tai)网(Wang)页(Ye)的(De)地(Di)方(Fang)用(Yong)动(Dong)态(Tai)网(Wang)页(Ye),(?)如(Ru)果(Guo)必(Bi)要(Yao)使(Shi)用(Yong)静(Jing)态(Tai)网(Wang)页(Ye),(?)则(Ze)可(Ke)以(Yi)考(Kao)虑(Lu)用(Yong)静(Jing)态(Tai)网(Wang)页(Ye)的(De)方(Fang)法(Fa)来(Lai)实(Shi)现(Xian),(?)在(Zai)同(Tong)一(Yi)个(Ge)网(Wang)站(Zhan)上(Shang),(?)动(Dong)态(Tai)网(Wang)页(Ye)内(Nei)容(Rong)和(He)静(Jing)态(Tai)网(Wang)页(Ye)内(Nei)容(Rong)同(Tong)时(Shi)存(Cun)在(Zai)也(Ye)是(Shi)很(Hen)常(Chang)见(Jian)的(De)事(Shi)情(Qing)。(?)
区(Qu)别(Bie):(?)
1)(?)程(Cheng)序(Xu)是(Shi)否(Fou)在(Zai)服(Fu)务(Wu)器(Qi)端(Duan)运(Yun)行(Xing),(?)是(Shi)重(Zhong)要(Yao)标(Biao)志(Zhi)。(?)在(Zai)服(Fu)务(Wu)器(Qi)端(Duan)运(Yun)行(Xing)的(De)程(Cheng)序(Xu)、(?)网(Wang)页(Ye)、(?)组(Zu)件(Jian),(?)属(Shu)于(Yu)动(Dong)态(Tai)网(Wang)页(Ye),(?)它(Ta)们(Men)会(Hui)随(Sui)不(Bu)同(Tong)客(Ke)户(Hu)、(?)不(Bu)同(Tong)时(Shi)间(Jian),(?)返(Fan)回(Hui)不(Bu)同(Tong)的(De)网(Wang)页(Ye),(?)例(Li)如(Ru)ASP、(?)PHP、(?)JSP、(?)ASP.net、(?)CGI等(Deng)。(?)运(Yun)行(Xing)于(Yu)客(Ke)户(Hu)端(Duan)的(De)程(Cheng)序(Xu)、(?)网(Wang)页(Ye)、(?)插(Cha)件(Jian)、(?)组(Zu)件(Jian),(?)属(Shu)于(Yu)静(Jing)态(Tai)网(Wang)页(Ye),(?)例(Li)如(Ru)html页(Ye)、(?)Flash、(?)javascript、(?)VBscript等(Deng)等(Deng),(?)它(Ta)们(Men)是(Shi)永(Yong)远(Yuan)不(Bu)变(Bian)的(De)。(?)
2)(?)编(Bian)程(Cheng)技(Ji)术(Shu)不(Bu)同(Tong)。(?)静(Jing)态(Tai)网(Wang)页(Ye)和(He)动(Dong)态(Tai)网(Wang)页(Ye)主(Zhu)要(Yao)根(Gen)据(Ju)网(Wang)页(Ye)制(Zhi)作(Zuo)的(De)语(Yu)言(Yan)来(Lai)区(Qu)分(Fen)。(?)静(Jing)态(Tai)网(Wang)页(Ye)使(Shi)用(Yong)语(Yu)言(Yan):(?)HTML。(?) 动(Dong)态(Tai)网(Wang)页(Ye)使(Shi)用(Yong)语(Yu)言(Yan):(?)HTML+(?)ASP 或(Huo) HTML+(?)PHP 或(Huo) HTML+(?)JSP 等(Deng)其(Qi)它(Ta)网(Wang)站(Zhan)动(Dong)态(Tai)语(Yu)言(Yan)。(?)
3)(?)被(Bei)搜(Sou)索(Suo)引(Yin)擎(Qing)收(Shou)录(Lu)情(Qing)况(Kuang)不(Bu)同(Tong)。(?)由(You)于(Yu)编(Bian)程(Cheng)技(Ji)术(Shu)不(Bu)容(Rong),(?)静(Jing)态(Tai)网(Wang)页(Ye)是(Shi)纯(Chun)粹(Cui)HTML格(Ge)式(Shi)的(De)网(Wang)页(Ye),(?)页(Ye)面(Mian)内(Nei)容(Rong)稳(Wen)定(Ding),(?)不(Bu)论(Lun)是(Shi)网(Wang)页(Ye)是(Shi)否(Fou)被(Bei)访(Fang)问(Wen),(?)页(Ye)面(Mian)都(Du)被(Bei)保(Bao)存(Cun)在(Zai)网(Wang)站(Zhan)服(Fu)务(Wu)器(Qi)上(Shang),(?)很(Hen)容(Rong)易(Yi)被(Bei)搜(Sou)索(Suo)引(Yin)擎(Qing)收(Shou)录(Lu)。(?)而(?)动(Dong)态(Tai)网(Wang)页(Ye)的(De)内(Nei)容(Rong)是(Shi)当(Dang)用(Yong)户(Hu)点(Dian)击(Ji)请(Qing)求(Qiu)时(Shi)才(Cai)从(Cong)数(Shu)据(Ju)库(Ku)中(Zhong)调(Diao)出(Chu)返(Fan)回(Hui)给(Gei)用(Yong)户(Hu)一(Yi)个(Ge)网(Wang)页(Ye)的(De)内(Nei)容(Rong),(?)并(Bing)不(Bu)是(Shi)存(Cun)放(Fang)在(Zai)服(Fu)务(Wu)器(Qi)上(Shang)的(De)独(Du)立(Li)文(Wen)件(Jian),(?)相(Xiang)比(Bi)较(Jiao)于(Yu)静(Jing)态(Tai)网(Wang)页(Ye)而(?)言(Yan),(?)动(Dong)态(Tai)网(Wang)页(Ye)很(Hen)难(Nan)被(Bei)搜(Sou)索(Suo)引(Yin)擎(Qing)收(Shou)录(Lu)。(?)
4)(?)用(Yong)户(Hu)访(Fang)问(Wen)速(Su)度(Du)不(Bu)同(Tong)。(?)用(Yong)户(Hu)访(Fang)问(Wen)动(Dong)态(Tai)网(Wang)页(Ye)时(Shi),(?)网(Wang)页(Ye)在(Zai)获(Huo)得(De)搜(Sou)索(Suo)指(Zhi)令(Ling)后(Hou)经(Jing)过(Guo)数(Shu)据(Ju)库(Ku)的(De)调(Diao)查(Cha)匹(Pi)配(Pei),(?)再(Zai)将(Jiang)与(Yu)指(Zhi)令(Ling)相(Xiang)符(Fu)的(De)内(Nei)容(Rong)传(Chuan)递(Di)给(Gei)服(Fu)务(Wu)器(Qi),(?)通(Tong)过(Guo)服(Fu)务(Wu)器(Qi)的(De)编(Bian)译(Yi)将(Jiang)网(Wang)页(Ye)编(Bian)译(Yi)成(Cheng)标(Biao)准(Zhun)的(De)HTML代(Dai)码(Ma),(?)从(Cong)而(?)传(Chuan)递(Di)给(Gei)用(Yong)户(Hu)浏(Liu)览(Lan)器(Qi),(?)多(Duo)个(Ge)读(Du)取(Qu)过(Guo)程(Cheng)大(Da)大(Da)降(Jiang)低(Di)了(Liao)用(Yong)户(Hu)的(De)访(Fang)问(Wen)速(Su)度(Du)。(?)而(?)静(Jing)态(Tai)网(Wang)页(Ye)不(Bu)同(Tong),(?)由(You)于(Yu)网(Wang)页(Ye)内(Nei)容(Rong)直(Zhi)接(Jie)存(Cun)取(Qu)在(Zai)服(Fu)务(Wu)器(Qi)上(Shang),(?)省(Sheng)去(Qu)了(Liao)服(Fu)务(Wu)器(Qi)的(De)编(Bian)译(Yi)过(Guo)程(Cheng),(?)用(Yong)户(Hu)访(Fang)问(Wen)网(Wang)页(Ye)速(Su)度(Du)很(Hen)快(Kuai)。(?)
5)(?)制(Zhi)作(Zuo)和(He)后(Hou)期(Qi)维(Wei)护(Hu)工(Gong)作(Zuo)量(Liang)不(Bu)同(Tong)。(?)动(Dong)态(Tai)网(Wang)页(Ye)的(De)设(She)计(Ji)以(Yi)数(Shu)据(Ju)库(Ku)技(Ji)术(Shu)为(Wei)基(Ji)础(Chu),(?)可(Ke)以(Yi)实(Shi)现(Xian)多(Duo)种(Zhong)功(Gong)能(Neng),(?)降(Jiang)低(Di)了(Liao)网(Wang)站(Zhan)维(Wei)护(Hu)的(De)工(Gong)作(Zuo)量(Liang)。(?)而(?)静(Jing)态(Tai)网(Wang)页(Ye)由(You)于(Yu)没(Mei)有(You)数(Shu)据(Ju)库(Ku)的(De)支(Zhi)持(Chi),(?)网(Wang)页(Ye)内(Nei)容(Rong)更(Geng)改(Gai)时(Shi)需(Xu)要(Yao)直(Zhi)接(Jie)修(Xiu)改(Gai)代(Dai)码(Ma),(?)在(Zai)网(Wang)站(Zhan)内(Nei)容(Rong)制(Zhi)作(Zuo)和(He)维(Wei)护(Hu)中(Zhong),(?)所(Suo)需(Xu)的(De)工(Gong)作(Zuo)量(Liang)更(Geng)大(Da)。(?)动(Dong)态(Tai)网(Wang)页(Ye)与(Yu)静(Jing)态(Tai)网(Wang)页(Ye)各(Ge)有(You)特(Te)点(Dian),(?)网(Wang)站(Zhan)设(She)计(Ji)师(Shi)在(Zai)网(Wang)页(Ye)设(She)计(Ji)时(Shi),(?)主(Zhu)要(Yao)根(Gen)据(Ju)网(Wang)站(Zhan)的(De)功(Gong)能(Neng)需(Xu)求(Qiu)和(He)网(Wang)站(Zhan)内(Nei)容(Rong)多(Duo)少(Shao)选(Xuan)择(Ze)不(Bu)同(Tong)网(Wang)页(Ye)。(?)如(Ru),(?)网(Wang)站(Zhan)包(Bao)含(Han)信(Xin)息(Xi)量(Liang)太(Tai)大(Da)时(Shi),(?)就(Jiu)需(Xu)要(Yao)选(Xuan)择(Ze)动(Dong)态(Tai)网(Wang)页(Ye),(?)反(Fan)之(Zhi),(?)则(Ze)选(Xuan)择(Ze)静(Jing)态(Tai)网(Wang)页(Ye)。(?)
379.JSP/ASP/PHP的(De)比(Bi)较(Jiao)
ASP(Active Server Pages),JSP(JavaServer Pages),PHP(Hypertext Preprocessor)是(Shi)目(Mu)前(Qian)主(Zhu)流(Liu)的(De)三(San)种(Zhong)动(Dong)态(Tai)网(Wang)页(Ye)语(Yu)言(Yan)。(?)
ASP是(Shi)微(Wei)软(Ruan)((?)Microsoft)(?)所(Suo)开(Kai)发(Fa)的(De)一(Yi)种(Zhong)后(Hou)台(Tai)脚(Jiao)本(Ben)语(Yu)言(Yan),(?)它(Ta)的(De)语(Yu)法(Fa)和(He)Visual BASIC类(Lei)似(Si),(?)可(Ke)以(Yi)像(Xiang)SSI((?)Server Side Include)(?)那(Na)样(Yang)把(Ba)后(Hou)台(Tai)脚(Jiao)本(Ben)代(Dai)码(Ma)内(Nei)嵌(Qian)到(Dao)HTML页(Ye)面(Mian)中(Zhong)。(?)虽(Sui)然(Ran)ASP简(Jian)单(Dan)易(Yi)用(Yong),(?)但(Dan)是(Shi)它(Ta)自(Zi)身(Shen)存(Cun)在(Zai)着(Zhuo)许(Xu)多(Duo)缺(Que)陷(Xian),(?)最(Zui)重(Zhong)要(Yao)的(De)就(Jiu)是(Shi)安(An)全(Quan)性(Xing)问(Wen)题(Ti)。(?)
PHP是(Shi)一(Yi)种(Zhong)跨(Kua)平(Ping)台(Tai)的(De)服(Fu)务(Wu)器(Qi)端(Duan)的(De)嵌(Qian)入(Ru)式(Shi)脚(Jiao)本(Ben)语(Yu)言(Yan)。(?)它(Ta)大(Da)量(Liang)地(Di)借(Jie)用(Yong)C,Java和(He)Perl语(Yu)言(Yan)的(De)语(Yu)法(Fa), 并(Bing)耦(Ou)合(He)PHP自(Zi)己(Ji)的(De)特(Te)性(Xing),使(Shi)WEB开(Kai)发(Fa)者(Zhe)能(Neng)够(Gou)快(Kuai)速(Su)地(Di)写(Xie)出(Chu)动(Dong)态(Tai)产(Chan)生(Sheng)页(Ye)面(Mian)。(?)它(Ta)支(Zhi)持(Chi)目(Mu)前(Qian)绝(Jue)大(Da)多(Duo)数(Shu)数(Shu)据(Ju)库(Ku)。(?)
JSP是(Shi)一(Yi)个(Ge)简(Jian)化(Hua)的(De)Servlet,(?)它(Ta)是(Shi)由(You)Sun公(Gong)司(Si)倡(Chang)导(Dao)、(?)许(Xu)多(Duo)公(Gong)司(Si)参(Can)与(Yu)一(Yi)起(Qi)建(Jian)立(Li)的(De)一(Yi)种(Zhong)动(Dong)态(Tai)网(Wang)页(Ye)技(Ji)术(Shu)标(Biao)准(Zhun)。(?)JSP技(Ji)术(Shu)有(You)点(Dian)类(Lei)似(Si)ASP技(Ji)术(Shu),(?)它(Ta)是(Shi)在(Zai)传(Chuan)统(Tong)的(De)网(Wang)页(Ye)HTML中(Zhong)插(Cha)入(Ru)Java程(Cheng)序(Xu)段(Duan)和(He)JSP标(Biao)记(Ji)(tag),(?)从(Cong)而(?)形(Xing)成(Cheng)JSP文(Wen)件(Jian),(?)后(Hou)缀(Zhui)名(Ming)为(Wei)(*.jsp)。(?) 用(Yong)JSP开(Kai)发(Fa)的(De)Web应(Ying)用(Yong)是(Shi)跨(Kua)平(Ping)台(Tai)的(De),(?)既(Ji)能(Neng)在(Zai)Linux下(Xia)运(Yun)行(Xing),(?)也(Ye)能(Neng)在(Zai)其(Qi)他(Ta)操(Cao)作(Zuo)系(Xi)统(Tong)上(Shang)运(Yun)行(Xing)。(?)
ASP优(You)点(Dian): 无(Wu)需(Xu)编(Bian)译(Yi)、(?)易(Yi)于(Yu)生(Sheng)成(Cheng)、(?)独(Du)立(Li)于(Yu)浏(Liu)览(Lan)器(Qi)、(?)面(Mian)向(Xiang)对(Dui)象(Xiang)、(?)与(Yu)任(Ren)何(He)ActiveX scripting 语(Yu)言(Yan)兼(Jian)容(Rong)、(?)源(Yuan)程(Cheng)序(Xu)码(Ma)不(Bu)会(Hui)外(Wai)漏(Lou)。(?)
缺(Que)点(Dian):
1)(?)Windows本(Ben)身(Shen)的(De)所(Suo)有(You)问(Wen)题(Ti)都(Du)会(Hui)一(Yi)成(Cheng)不(Bu)变(Bian)的(De)也(Ye)累(Lei)加(Jia)到(Dao)了(Liao)它(Ta)的(De)身(Shen)上(Shang)。(?)安(An)全(Quan)性(Xing)、(?)稳(Wen)定(Ding)性(Xing)、(?)跨(Kua)平(Ping)台(Tai)性(Xing)都(Du)会(Hui)因(Yin)为(Wei)与(Yu)NT的(De)捆(Kun)绑(Bang)而(?)显(Xian)现(Xian)出(Chu)来(Lai)。(?)
2)(?)ASP由(You)于(Yu)使(Shi)用(Yong)了(Liao)COM组(Zu)件(Jian)所(Suo)以(Yi)它(Ta)会(Hui)变(Bian)的(De)十(Shi)分(Fen)强(Qiang)大(Da),(?)但(Dan)是(Shi)这(Zhe)样(Yang)的(De)强(Qiang)大(Da)由(You)于(Yu)Windows NT系(Xi)统(Tong)最(Zui)初(Chu)的(De)设(She)计(Ji)问(Wen)题(Ti)而(?)会(Hui)引(Yin)发(Fa)大(Da)量(Liang)的(De)安(An)全(Quan)问(Wen)题(Ti)。(?)只(Zhi)要(Yao)在(Zai)这(Zhe)样(Yang)的(De)组(Zu)件(Jian)或(Huo)是(Shi)操(Cao)作(Zuo)中(Zhong)一(Yi)不(Bu)注(Zhu)意(Yi),(?)那(Na)么(Me)外(Wai)部(Bu)攻(Gong)击(Ji)就(Jiu)可(Ke)以(Yi)取(Qu)得(De)相(Xiang)当(Dang)高(Gao)的(De)权(Quan)限(Xian)而(?)导(Dao)致(Zhi)网(Wang)站(Zhan)瘫(Tan)痪(Huan)或(Huo)者(Zhe)数(Shu)据(Ju)丢(Diu)失(Shi)。(?)
3)(?)还(Huan)无(Wu)法(Fa)完(Wan)全(Quan)实(Shi)现(Xian)一(Yi)些(Xie)企(Qi)业(Ye)级(Ji)的(De)功(Gong)能(Neng):(?)完(Wan)全(Quan)的(De)集(Ji)群(Qun)、(?)负(Fu)载(Zai)均(Jun)横(Heng)。(?)
PHP优(You)点(Dian):(?)
1)(?)一(Yi)种(Zhong)能(Neng)快(Kuai)速(Su)学(Xue)习(Xi)、(?)跨(Kua)平(Ping)台(Tai)、(?)有(You)良(Liang)好(Hao)数(Shu)据(Ju)库(Ku)交(Jiao)互(Hu)能(Neng)力(Li)的(De)开(Kai)发(Fa)语(Yu)言(Yan)。(?)
2)(?)简(Jian)单(Dan)轻(Qing)便(Bian),(?)易(Yi)学(Xue)易(Yi)用(Yong)。(?)
3 ) 与(Yu)Apache及(Ji)其(Qi)它(Ta)扩(Kuo)展(Zhan)库(Ku)结(Jie)合(He)紧(Jin)密(Mi)。(?)
缺(Que)点(Dian):(?)
1 ) 数(Shu)据(Ju)库(Ku)支(Zhi)持(Chi)的(De)极(Ji)大(Da)变(Bian)化(Hua)。(?)
2 ) 不(Bu)适(Shi)合(He)应(Ying)用(Yong)于(Yu)大(Da)型(Xing)电(Dian)子(Zi)商(Shang)务(Wu)站(Zhan)点(Dian)。(?)
JSP优(You)点(Dian):(?)
1 ) 一(Yi)处(Chu)编(Bian)写(Xie)随(Sui)处(Chu)运(Yun)行(Xing)。(?)
2 ) 系(Xi)统(Tong)的(De)多(Duo)台(Tai)平(Ping)支(Zhi)持(Chi)。(?)
3 ) 强(Qiang)大(Da)的(De)的(De)可(Ke)伸(Shen)缩(Suo)性(Xing)。(?)
4 ) 多(Duo)样(Yang)化(Hua)和(He)功(Gong)能(Neng)强(Qiang)大(Da)的(De)开(Kai)发(Fa)工(Gong)具(Ju)支(Zhi)持(Chi)。(?)
缺(Que)点(Dian):(?)
1)(?) 与(Yu)ASP一(Yi)样(Yang),(?)Java的(De)一(Yi)些(Xie)优(You)势(Shi)正(Zheng)是(Shi)它(Ta)致(Zhi)命(Ming)的(De)问(Wen)题(Ti)所(Suo)在(Zai)。(?)
2 ) 开(Kai)发(Fa)速(Su)度(Du)慢(Man)
380.CGI/Servlet/JSP的(De)比(Bi)较(Jiao)
CGI(Common Gateway Interface),(?)通(Tong)用(Yong)网(Wang)关(Guan)接(Jie)口(Kou),是(Shi)一(Yi)种(Zhong)根(Gen)据(Ju)请(Qing)求(Qiu)信(Xin)息(Xi)动(Dong)态(Tai)产(Chan)生(Sheng)回(Hui)应(Ying)内(Nei)容(Rong)的(De)技(Ji)术(Shu)。(?)
通(Tong)过(Guo)CGI,(?)Web 服(Fu)务(Wu)器(Qi)可(Ke)以(Yi)将(Jiang)根(Gen)据(Ju)请(Qing)求(Qiu)不(Bu)同(Tong)启(Qi)动(Dong)不(Bu)同(Tong)的(De)外(Wai)部(Bu)程(Cheng)序(Xu),(?)并(Bing)将(Jiang)请(Qing)求(Qiu)内(Nei)容(Rong)转(Zhuan)发(Fa)给(Gei)该(Gai)程(Cheng)序(Xu),(?)在(Zai)程(Cheng)序(Xu)执(Zhi)行(Xing)结(Jie)束(Shu)后(Hou),(?)将(Jiang)执(Zhi)行(Xing)结(Jie)果(Guo)作(Zuo)为(Wei)回(Hui)应(Ying)返(Fan)回(Hui)给(Gei)客(Ke)户(Hu)端(Duan)。(?)也(Ye)就(Jiu)是(Shi)说(Shuo),(?)对(Dui)于(Yu)每(Mei)个(Ge)请(Qing)求(Qiu),(?)都(Du)要(Yao)产(Chan)生(Sheng)一(Yi)个(Ge)新(Xin)的(De)进(Jin)程(Cheng)进(Jin)行(Xing)处(Chu)理(Li)。(?)
Servlet 是(Shi)在(Zai)服(Fu)务(Wu)器(Qi)上(Shang)运(Yun)行(Xing)的(De)小(Xiao)程(Cheng)序(Xu)。(?)在(Zai)实(Shi)际(Ji)运(Yun)行(Xing)的(De)时(Shi)候(Hou)Java Servlet与(Yu)Web服(Fu)务(Wu)器(Qi)会(Hui)融(Rong)为(Wei)一(Yi)体(Ti)。(?)与(Yu)CGI不(Bu)同(Tong)的(De)是(Shi),(?)Servlet对(Dui)每(Mei)个(Ge)请(Qing)求(Qiu)都(Du)是(Shi)单(Dan)独(Du)启(Qi)动(Dong)一(Yi)个(Ge)线(Xian)程(Cheng),(?)而(?)不(Bu)是(Shi)进(Jin)程(Cheng)。(?)这(Zhe)种(Zhong)处(Chu)理(Li)方(Fang)式(Shi)大(Da)幅(Fu)度(Du)地(Di)降(Jiang)低(Di)了(Liao)系(Xi)统(Tong)里(Li)的(De)进(Jin)程(Cheng)数(Shu)量(Liang),(?)提(Ti)高(Gao)了(Liao)系(Xi)统(Tong)的(De)并(Bing)发(Fa)处(Chu)理(Li)能(Neng)力(Li)。(?)
比(Bi)较(Jiao):(?)
1)(?) JSP从(Cong)本(Ben)质(Zhi)上(Shang)说(Shuo)就(Jiu)是(Shi)Servlet。(?)JSP技(Ji)术(Shu)产(Chan)生(Sheng)于(Yu)Servlet之(Zhi)后(Hou),(?)两(Liang)者(Zhe)分(Fen)工(Gong)协(Xie)作(Zuo),(?)Servlet侧(Ce)重(Zhong)于(Yu)解(Jie)决(Jue)运(Yun)算(Suan)和(He)业(Ye)务(Wu)逻(Luo)辑(Ji)问(Wen)题(Ti),(?)JSP则(Ze)侧(Ce)重(Zhong)于(Yu)解(Jie)决(Jue)展(Zhan)示(Shi)问(Wen)题(Ti)。(?)
2 ) 与(Yu)CGI相(Xiang)比(Bi),(?)Servlet效(Xiao)率(Lu)更(Geng)高(Gao)。(?)Servlet处(Chu)于(Yu)服(Fu)务(Wu)器(Qi)进(Jin)程(Cheng)中(Zhong),(?)它(Ta)通(Tong)过(Guo)多(Duo)线(Xian)程(Cheng)方(Fang)式(Shi)运(Yun)行(Xing)其(Qi)service方(Fang)法(Fa),(?)一(Yi)个(Ge)实(Shi)例(Li)可(Ke)以(Yi)服(Fu)务(Wu)于(Yu)多(Duo)个(Ge)请(Qing)求(Qiu),(?)并(Bing)且(Qie)其(Qi)实(Shi)例(Li)一(Yi)般(Ban)不(Bu)会(Hui)销(Xiao)毁(Hui)。(?)而(?)CGI对(Dui)每(Mei)个(Ge)请(Qing)求(Qiu)都(Du)产(Chan)生(Sheng)新(Xin)的(De)进(Jin)程(Cheng),(?)服(Fu)务(Wu)完(Wan)成(Cheng)后(Hou)就(Jiu)销(Xiao)毁(Hui),(?)所(Suo)以(Yi)效(Xiao)率(Lu)上(Shang)低(Di)于(Yu)Servlet 。(?)
3)(?)与(Yu)CGI相(Xiang)比(Bi),(?)Servlet更(Geng)容(Rong)易(Yi)使(Shi)用(Yong),(?)功(Gong)能(Neng)更(Geng)强(Qiang)大(Da),(?)具(Ju)有(You)更(Geng)好(Hao)的(De)可(Ke)移(Yi)植(Zhi)性(Xing),(?)更(Geng)节(Jie)省(Sheng)投(Tou)资(Zi)。(?)在(Zai)未(Wei)来(Lai)的(De)技(Ji)术(Shu)发(Fa)展(Zhan)过(Guo)程(Cheng)中(Zhong),(?)Servlet有(You)可(Ke)能(Neng)彻(Che)底(Di)取(Qu)代(Dai)CGI。(?)
381.HTTP协(Xie)议(Yi)工(Gong)作(Zuo)原(Yuan)理(Li)及(Ji)其(Qi)特(Te)点(Dian)
超(Chao)文(Wen)本(Ben)传(Chuan)输(Shu)协(Xie)议(Yi)((?)HTTP:(?)Hypertext Transport Protocol)(?)是(Shi)万(Wan)维(Wei)网(Wang)应(Ying)用(Yong)层(Ceng)的(De)协(Xie)议(Yi),(?)它(Ta)通(Tong)过(Guo)两(Liang)个(Ge)程(Cheng)序(Xu)实(Shi)现(Xian):(?)一(Yi)个(Ge)是(Shi)客(Ke)户(Hu)端(Duan)程(Cheng)序(Xu)((?)各(Ge)种(Zhong)浏(Liu)览(Lan)器(Qi))(?),(?)另(Ling)一(Yi)个(Ge)是(Shi)服(Fu)务(Wu)器(Qi) ((?)常(Chang)称(Cheng)Web服(Fu)务(Wu)器(Qi))(?) 。(?)这(Zhe)两(Liang)个(Ge)通(Tong)常(Chang)运(Yun)行(Xing)在(Zai)不(Bu)同(Tong)的(De)主(Zhu)机(Ji)上(Shang),(?)通(Tong)过(Guo)交(Jiao)换(Huan)报(Bao)文(Wen)来(Lai)完(Wan)成(Cheng)网(Wang)页(Ye)请(Qing)求(Qiu)和(He)响(Xiang)应(Ying),(?)报(Bao)文(Wen)可(Ke)简(Jian)单(Dan)分(Fen)为(Wei)请(Qing)求(Qiu)报(Bao)文(Wen)和(He)响(Xiang)应(Ying)报(Bao)文(Wen)。(?)
工(Gong)作(Zuo)原(Yuan)理(Li)((?)流(Liu)程(Cheng))(?):(?)
客(Ke)户(Hu)机(Ji)与(Yu)服(Fu)务(Wu)器(Qi)建(Jian)立(Li)连(Lian)接(Jie)后(Hou),(?)浏(Liu)览(Lan)器(Qi)可(Ke)以(Yi)向(Xiang)web服(Fu)务(Wu)器(Qi)发(Fa)送(Song)请(Qing)求(Qiu)并(Bing)显(Xian)示(Shi)收(Shou)到(Dao)的(De)网(Wang)页(Ye),(?)当(Dang)用(Yong)户(Hu)在(Zai)浏(Liu)览(Lan)器(Qi)地(Di)址(Zhi)栏(Lan)中(Zhong)输(Shu)入(Ru)一(Yi)个(Ge)URL或(Huo)点(Dian)击(Ji)一(Yi)个(Ge)超(Chao)连(Lian)接(Jie)时(Shi),(?)浏(Liu)览(Lan)器(Qi)就(Jiu)向(Xiang)服(Fu)务(Wu)器(Qi)发(Fa)出(Chu)了(Liao)HTTP请(Qing)求(Qiu),(?)请(Qing)求(Qiu)方(Fang)式(Shi)的(De)格(Ge)式(Shi)为(Wei):(?)统(Tong)一(Yi)资(Zi)源(Yuan)标(Biao)识(Shi)符(Fu)、(?)协(Xie)议(Yi)版(Ban)本(Ben)号(Hao),(?)后(Hou)边(Bian)是(Shi)MIME((?)Multipurpose Internet Mail Extensions)(?)信(Xin)息(Xi)包(Bao)括(Kuo)请(Qing)求(Qiu)修(Xiu)饰(Shi)符(Fu)、(?)客(Ke)户(Hu)机(Ji)信(Xin)息(Xi)和(He)可(Ke)能(Neng)的(De)内(Nei)容(Rong)。(?)该(Gai)请(Qing)求(Qiu)被(Bei)送(Song)往(Wang)由(You)URL指(Zhi)定(Ding)的(De)WEB服(Fu)务(Wu)器(Qi),(?)WEB服(Fu)务(Wu)器(Qi)接(Jie)收(Shou)到(Dao)请(Qing)求(Qiu)后(Hou),(?)进(Jin)行(Xing)相(Xiang)应(Ying)反(Fan)映(Ying),(?)其(Qi)格(Ge)式(Shi)为(Wei):(?)一(Yi)个(Ge)状(Zhuang)态(Tai)行(Xing)包(Bao)括(Kuo)信(Xin)息(Xi)的(De)协(Xie)议(Yi)版(Ban)本(Ben)号(Hao)、(?)一(Yi)个(Ge)成(Cheng)功(Gong)或(Huo)错(Cuo)误(Wu)的(De)代(Dai)码(Ma),(?)后(Hou)边(Bian)服(Fu)务(Wu)器(Qi)信(Xin)息(Xi)、(?)实(Shi)体(Ti)信(Xin)息(Xi)和(He)可(Ke)能(Neng)的(De)内(Nei)容(Rong)。(?)即(Ji)以(Yi)HTTP规(Gui)定(Ding)的(De)格(Ge)式(Shi)送(Song)回(Hui)所(Suo)要(Yao)求(Qiu)的(De)文(Wen)件(Jian)或(Huo)其(Qi)他(Ta)相(Xiang)关(Guan)信(Xin)息(Xi),(?)再(Zai)由(You)用(Yong)户(Hu)计(Ji)算(Suan)机(Ji)上(Shang)的(De)浏(Liu)览(Lan)器(Qi)负(Fu)责(Ze)解(Jie)释(Shi)和(He)显(Xian)示(Shi)。(?)

特(Te)点(Dian):(?)
1)(?)支(Zhi)持(Chi)客(Ke)户(Hu)/服(Fu)务(Wu)器(Qi)模(Mo)式(Shi)。(?)
2)(?)简(Jian)单(Dan)快(Kuai)速(Su):(?)客(Ke)户(Hu)向(Xiang)服(Fu)务(Wu)器(Qi)请(Qing)求(Qiu)服(Fu)务(Wu)时(Shi),(?)只(Zhi)需(Xu)传(Chuan)送(Song)请(Qing)求(Qiu)方(Fang)法(Fa)和(He)路(Lu)径(Jing)。(?)请(Qing)求(Qiu)方(Fang)法(Fa)常(Chang)用(Yong)的(De)有(You)GET、(?)HEAD、(?)POST。(?)每(Mei)种(Zhong)方(Fang)法(Fa)规(Gui)定(Ding)了(Liao)客(Ke)户(Hu)与(Yu)服(Fu)务(Wu)器(Qi)联(Lian)系(Xi)的(De)类(Lei)型(Xing)不(Bu)同(Tong)。(?)由(You)于(Yu)HTTP协(Xie)议(Yi)简(Jian)单(Dan),(?)使(Shi)得(De)HTTP服(Fu)务(Wu)器(Qi)的(De)程(Cheng)序(Xu)规(Gui)模(Mo)小(Xiao),(?)因(Yin)而(?)通(Tong)信(Xin)速(Su)度(Du)很(Hen)快(Kuai)。(?)
3)(?)灵(Ling)活(Huo):(?)HTTP允(Yun)许(Xu)传(Chuan)输(Shu)任(Ren)意(Yi)类(Lei)型(Xing)的(De)数(Shu)据(Ju)对(Dui)象(Xiang)。(?)正(Zheng)在(Zai)传(Chuan)输(Shu)的(De)类(Lei)型(Xing)由(You)Content-Type加(Jia)以(Yi)标(Biao)记(Ji)。(?)
4)(?)无(Wu)连(Lian)接(Jie):(?)无(Wu)连(Lian)接(Jie)的(De)含(Han)义(Yi)是(Shi)限(Xian)制(Zhi)每(Mei)次(Ci)连(Lian)接(Jie)只(Zhi)处(Chu)理(Li)一(Yi)个(Ge)请(Qing)求(Qiu)。(?)服(Fu)务(Wu)器(Qi)处(Chu)理(Li)完(Wan)客(Ke)户(Hu)的(De)请(Qing)求(Qiu),(?)并(Bing)收(Shou)到(Dao)客(Ke)户(Hu)的(De)应(Ying)答(Da)后(Hou),(?)即(Ji)断(Duan)开(Kai)连(Lian)接(Jie)。(?)采(Cai)用(Yong)这(Zhe)种(Zhong)方(Fang)式(Shi)可(Ke)以(Yi)节(Jie)省(Sheng)传(Chuan)输(Shu)时(Shi)间(Jian)。(?)
5)(?)无(Wu)状(Zhuang)态(Tai):(?)HTTP协(Xie)议(Yi)是(Shi)无(Wu)状(Zhuang)态(Tai)协(Xie)议(Yi)。(?)无(Wu)状(Zhuang)态(Tai)是(Shi)指(Zhi)协(Xie)议(Yi)对(Dui)于(Yu)事(Shi)务(Wu)处(Chu)理(Li)没(Mei)有(You)记(Ji)忆(Yi)能(Neng)力(Li)。(?)缺(Que)少(Shao)状(Zhuang)态(Tai)意(Yi)味(Wei)着(Zhuo)如(Ru)果(Guo)后(Hou)续(Xu)处(Chu)理(Li)需(Xu)要(Yao)前(Qian)面(Mian)的(De)信(Xin)息(Xi),(?)则(Ze)它(Ta)必(Bi)须(Xu)重(Zhong)传(Chuan),(?)这(Zhe)样(Yang)可(Ke)能(Neng)导(Dao)致(Zhi)每(Mei)次(Ci)连(Lian)接(Jie)传(Chuan)送(Song)的(De)数(Shu)据(Ju)量(Liang)增(Zeng)大(Da)。(?)另(Ling)一(Yi)方(Fang)面(Mian),(?)在(Zai)服(Fu)务(Wu)器(Qi)不(Bu)需(Xu)要(Yao)先(Xian)前(Qian)信(Xin)息(Xi)时(Shi)它(Ta)的(De)应(Ying)答(Da)就(Jiu)较(Jiao)快(Kuai)。(?)
382.get和(He)post的(De)区(Qu)别(Bie)
1. Get是(Shi)不(Bu)安(An)全(Quan)的(De),(?)因(Yin)为(Wei)在(Zai)传(Chuan)输(Shu)过(Guo)程(Cheng),(?)数(Shu)据(Ju)被(Bei)放(Fang)在(Zai)请(Qing)求(Qiu)的(De)URL中(Zhong);(?)Post的(De)所(Suo)有(You)操(Cao)作(Zuo)对(Dui)用(Yong)户(Hu)来(Lai)说(Shuo)都(Du)是(Shi)不(Bu)可(Ke)见(Jian)的(De)。(?)
2. Get传(Chuan)送(Song)的(De)数(Shu)据(Ju)量(Liang)较(Jiao)小(Xiao),(?)这(Zhe)主(Zhu)要(Yao)是(Shi)因(Yin)为(Wei)受(Shou)URL长(Chang)度(Du)限(Xian)制(Zhi);(?)Post传(Chuan)送(Song)的(De)数(Shu)据(Ju)量(Liang)较(Jiao)大(Da),(?)一(Yi)般(Ban)被(Bei)默(Mo)认(Ren)为(Wei)不(Bu)受(Shou)限(Xian)制(Zhi)。(?)
3. Get限(Xian)制(Zhi)Form表(Biao)单(Dan)的(De)数(Shu)据(Ju)集(Ji)的(De)值(Zhi)必(Bi)须(Xu)为(Wei)ASCII字(Zi)符(Fu);(?)而(?)Post支(Zhi)持(Chi)整(Zheng)个(Ge)ISO10646字(Zi)符(Fu)集(Ji)。(?)
4. Get执(Zhi)行(Xing)效(Xiao)率(Lu)却(Que)比(Bi)Post方(Fang)法(Fa)好(Hao)。(?)Get是(Shi)form提(Ti)交(Jiao)的(De)默(Mo)认(Ren)方(Fang)法(Fa)。(?)
383.如(Ru)何(He)解(Jie)决(Jue)表(Biao)单(Dan)提(Ti)交(Jiao)的(De)中(Zhong)文(Wen)乱(Luan)码(Ma)问(Wen)题(Ti)
1)(?)设(She)置(Zhi)页(Ye)面(Mian)编(Bian)码(Ma),(?)若(Ruo)是(Shi)jsp页(Ye)面(Mian),(?)需(Xu)编(Bian)写(Xie)代(Dai)码(Ma)
<%@page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>
若(Ruo)是(Shi)html页(Ye)面(Mian),(?)在(Zai)网(Wang)页(Ye)头(Tou)部(Bu)((?)< head>< /head>)(?)中(Zhong)添(Tian)加(Jia)下(Xia)面(Mian)这(Zhe)段(Duan)代(Dai)码(Ma)
< meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2)(?)将(Jiang)form表(Biao)单(Dan)提(Ti)交(Jiao)方(Fang)式(Shi)变(Bian)为(Wei)post方(Fang)式(Shi),(?)即(Ji)添(Tian)加(Jia)method="post";(?))(?)在(Zai)Servlet类(Lei)中(Zhong)编(Bian)写(Xie)代(Dai)码(Ma)request.setCharacterEncoding("UTF-8"),(?)而(?)且(Qie)必(Bi)须(Xu)写(Xie)在(Zai)第(Di)一(Yi)行(Xing)。(?)
3)(?)如(Ru)果(Guo)是(Shi)get请(Qing)求(Qiu),(?)在(Zai)Servlet类(Lei)中(Zhong)编(Bian)写(Xie)代(Dai)码(Ma)
byte [] bytes = str.getBytes("iso-8859-1");
String cstr = new String(bytes,"utf-8");
或(Huo)者(Zhe)直(Zhi)接(Jie)修(Xiu)改(Gai)Tomcat服(Fu)务(Wu)器(Qi)配(Pei)置(Zhi)文(Wen)件(Jian)server.xml增(Zeng)加(Jia)内(Nei)容(Rong):(?)
URIEncoding="utf-8"
384.绝(Jue)对(Dui)路(Lu)径(Jing)、(?)根(Gen)路(Lu)径(Jing)、(?)相(Xiang)对(Dui)路(Lu)径(Jing)的(De)含(Han)义(Yi)及(Ji)其(Qi)区(Qu)别(Bie)
绝(Jue)对(Dui)路(Lu)径(Jing)指(Zhi)对(Dui)站(Zhan)点(Dian)的(De)根(Gen)目(Mu)录(Lu)而(?)言(Yan)某(Mou)文(Wen)件(Jian)的(De)位(Wei)置(Zhi),(?)相(Xiang)对(Dui)路(Lu)径(Jing)指(Zhi)以(Yi)当(Dang)前(Qian)文(Wen)件(Jian)所(Suo)处(Chu)目(Mu)录(Lu)而(?)言(Yan)某(Mou)文(Wen)件(Jian)的(De)位(Wei)置(Zhi),相(Xiang)对(Dui)路(Lu)径(Jing)-以(Yi)引(Yin)用(Yong)文(Wen)件(Jian)之(Zhi)网(Wang)页(Ye)所(Suo)在(Zai)位(Wei)置(Zhi)为(Wei)参(Can)考(Kao)基(Ji)础(Chu),(?)而(?)建(Jian)立(Li)出(Chu)的(De)目(Mu)录(Lu)路(Lu)径(Jing)。(?)绝(Jue)对(Dui)路(Lu)径(Jing)-以(Yi)Web站(Zhan)点(Dian)根(Gen)目(Mu)录(Lu)为(Wei)参(Can)考(Kao)基(Ji)础(Chu)的(De)目(Mu)录(Lu)路(Lu)径(Jing)。(?)
先(Xian)给(Gei)出(Chu)一(Yi)个(Ge)网(Wang)站(Zhan)结(Jie)构(Gou)图(Tu)做(Zuo)实(Shi)例(Li)加(Jia)深(Shen)理(Li)解(Jie),(?)A网(Wang)站(Zhan)((?)域(Yu)名(Ming)为(Wei)http://www.a.com)(?):(?)/include/a-test.html,(?)/img/a-next.jpg;(?)B网(Wang)站(Zhan)((?)域(Yu)名(Ming)为(Wei)http://www.b.com)(?):(?)/include/b-test.html,(?)/img/b-next.jpg。(?)
相(Xiang)对(Dui)路(Lu)径(Jing)是(Shi)从(Cong)引(Yin)用(Yong)的(De)网(Wang)页(Ye)文(Wen)件(Jian)本(Ben)身(Shen)开(Kai)始(Shi)构(Gou)建(Jian)的(De),(?)如(Ru)果(Guo)在(Zai)A网(Wang)站(Zhan)中(Zhong)的(De)a-test.html中(Zhong)要(Yao)插(Cha)入(Ru)图(Tu)片(Pian)a-next.jpg,(?)可(Ke)以(Yi)这(Zhe)样(Yang)做(Zuo):< img src="../img/a-next.jpg" />,(?)重(Zhong)点(Dian)是(Shi)img前(Qian)面(Mian)的(De)../,(?)表(Biao)示(Shi)从(Cong)html处(Chu)于(Yu)的(De)include开(Kai)始(Shi)起(Qi)步(Bu),(?)输(Shu)入(Ru)一(Yi)个(Ge)../表(Biao)示(Shi)回(Hui)到(Dao)上(Shang)面(Mian)一(Yi)级(Ji)父(Fu)文(Wen)件(Jian)夹(Jia)下(Xia),(?)然(Ran)后(Hou)再(Zai)接(Jie)着(Zhuo)img/表(Biao)示(Shi)又(You)从(Cong)父(Fu)级(Ji)文(Wen)件(Jian)夹(Jia)下(Xia)的(De)img文(Wen)件(Jian)开(Kai)始(Shi)了(Liao),(?)最(Zui)后(Hou)定(Ding)位(Wei)img下(Xia)面(Mian)的(De)next.jpg。(?)
根(Gen)路(Lu)径(Jing)是(Shi)从(Cong)网(Wang)站(Zhan)的(De)最(Zui)底(Di)层(Ceng)开(Kai)始(Shi)起(Qi),(?)一(Yi)般(Ban)的(De)网(Wang)站(Zhan)的(De)根(Gen)目(Mu)录(Lu)就(Jiu)是(Shi)域(Yu)名(Ming)下(Xia)对(Dui)应(Ying)的(De)文(Wen)件(Jian)夹(Jia),(?)就(Jiu)如(Ru)D盘(Pan)是(Shi)一(Yi)个(Ge)网(Wang)站(Zhan),(?)双(Shuang)击(Ji)D盘(Pan)进(Jin)入(Ru)到(Dao)D盘(Pan)看(Kan)到(Dao)的(De)就(Jiu)是(Shi)网(Wang)站(Zhan)的(De)根(Gen)目(Mu)录(Lu),(?)这(Zhe)种(Zhong)路(Lu)径(Jing)的(De)链(Lian)接(Jie)样(Yang)式(Shi)是(Shi)这(Zhe)样(Yang)的(De):(?)如(Ru)果(Guo)在(Zai)A网(Wang)站(Zhan)中(Zhong)的(De)a-test.html中(Zhong)要(Yao)插(Cha)入(Ru)图(Tu)片(Pian)a-next.jpg,(?)可(Ke)以(Yi)这(Zhe)样(Yang)做(Zuo):< img src="/img/a-next.jpg" >,(?)以(Yi)/开(Kai)头(Tou)表(Biao)示(Shi)从(Cong)网(Wang)站(Zhan)根(Gen)目(Mu)录(Lu)算(Suan)起(Qi),(?)找(Zhao)到(Dao)根(Gen)目(Mu)录(Lu)下(Xia)面(Mian)的(De)img文(Wen)件(Jian)夹(Jia)下(Xia)的(De)next.jpg。(?)
绝(Jue)对(Dui)路(Lu)径(Jing)就(Jiu)很(Hen)好(Hao)理(Li)解(Jie)了(Liao),(?)这(Zhe)种(Zhong)路(Lu)径(Jing)一(Yi)般(Ban)带(Dai)有(You)网(Wang)站(Zhan)的(De)域(Yu)名(Ming),(?)如(Ru)果(Guo)在(Zai)A网(Wang)站(Zhan)中(Zhong)的(De)a-test.html中(Zhong)要(Yao)插(Cha)入(Ru)图(Tu)片(Pian)a-next.jpg,(?)需(Xu)要(Yao)这(Zhe)样(Yang)这(Zhe)样(Yang)写(Xie):< img src="http://www.a.com/img/a-next.jpg" >,(?)将(Jiang)图(Tu)片(Pian)路(Lu)径(Jing)上(Shang)带(Dai)有(You)了(Liao)域(Yu)名(Ming)信(Xin)息(Xi),(?)再(Zai)打(Da)个(Ge)比(Bi)方(Fang):(?)如(Ru)果(Guo)在(Zai)A网(Wang)站(Zhan)中(Zhong)的(De)a-test.html中(Zhong)要(Yao)插(Cha)入(Ru)B网(Wang)站(Zhan)的(De)图(Tu)片(Pian)b-next.jpg,(?)就(Jiu)需(Xu)要(Yao)这(Zhe)样(Yang)写(Xie):(?)< img src="http://www.b.com/img/b-next.jpg" >,(?)这(Zhe)种(Zhong)方(Fang)法(Fa)适(Shi)用(Yong)与(Yu)在(Zai)不(Bu)同(Tong)网(Wang)站(Zhan)之(Zhi)间(Jian)插(Cha)入(Ru)外(Wai)部(Bu)网(Wang)站(Zhan)的(De)图(Tu)片(Pian)。(?)
385.如(Ru)实(Shi)现(Xian)servlet的(De)单(Dan)线(Xian)程(Cheng)模(Mo)式(Shi)
实(Shi)现(Xian)servlet的(De)单(Dan)线(Xian)程(Cheng)的(De)jsp命(Ming)令(Ling)是(Shi):(?) <%@ page isThreadSafe=”(?)false”(?)%>。(?)默(Mo)认(Ren)isThreadSafe值(Zhi)为(Wei)true。(?)
属(Shu)性(Xing)isThreadSafe=false模(Mo)式(Shi)表(Biao)示(Shi)它(Ta)是(Shi)以(Yi)Singleton模(Mo)式(Shi)运(Yun)行(Xing),(?)该(Gai)模(Mo)式(Shi)implements了(Liao)接(Jie)口(Kou)SingleThreadMode, 该(Gai)模(Mo)式(Shi)同(Tong)一(Yi)时(Shi)刻(Ke)只(Zhi)有(You)一(Yi)个(Ge)实(Shi)例(Li),(?)不(Bu)会(Hui)出(Chu)现(Xian)信(Xin)息(Xi)同(Tong)步(Bu)与(Yu)否(Fou)的(De)概(Gai)念(Nian)。(?)若(Ruo)多(Duo)个(Ge)用(Yong)户(Hu)同(Tong)时(Shi)访(Fang)问(Wen)一(Yi)个(Ge)这(Zhe)种(Zhong)模(Mo)式(Shi)的(De)页(Ye)面(Mian),(?)那(Na)么(Me)先(Xian)访(Fang)问(Wen)者(Zhe)完(Wan)全(Quan)执(Zhi)行(Xing)完(Wan)该(Gai)页(Ye)面(Mian)后(Hou),(?)后(Hou)访(Fang)问(Wen)者(Zhe)才(Cai)开(Kai)始(Shi)执(Zhi)行(Xing)。(?)
属(Shu)性(Xing)isThreadSafe=true模(Mo)式(Shi)表(Biao)示(Shi)它(Ta)以(Yi)多(Duo)线(Xian)程(Cheng)方(Fang)式(Shi)运(Yun)行(Xing)。(?)该(Gai)模(Mo)式(Shi)的(De)信(Xin)息(Xi)同(Tong)步(Bu),(?)需(Xu)访(Fang)问(Wen)同(Tong)步(Bu)方(Fang)法(Fa)(用(Yong)synchronized标(Biao)记(Ji)的(De))来(Lai)实(Shi)现(Xian)。(?) 一(Yi)般(Ban)格(Ge)式(Shi)如(Ru)下(Xia):(?)
public synchronized void syncmethod(...){ while(...) { this.wait(); } this.notifyAll(); }
386.Servlet的(De)生(Sheng)命(Ming)周(Zhou)期(Qi)
1、(?)加(Jia)载(Zai):(?)在(Zai)下(Xia)列(Lie)时(Shi)刻(Ke)加(Jia)载(Zai) Servlet:(?)((?)1)(?)如(Ru)果(Guo)已(Yi)配(Pei)置(Zhi)自(Zi)动(Dong)加(Jia)载(Zai)选(Xuan)项(Xiang),(?)则(Ze)在(Zai)启(Qi)动(Dong)服(Fu)务(Wu)器(Qi)时(Shi)自(Zi)动(Dong)
2、(?)加(Jia)载(Zai) (web.xml中(Zhong)设(She)置(Zhi)< load-on-start>);(?)((?)2)(?)在(Zai)服(Fu)务(Wu)器(Qi)启(Qi)动(Dong)后(Hou),(?)客(Ke)户(Hu)机(Ji)首(Shou)次(Ci)向(Xiang) Servlet 发(Fa)出(Chu)请(Qing)求(Qiu)时(Shi);((?)3)(?)重(Zhong)新(Xin)加(Jia)载(Zai) Servlet 时(Shi)((?)只(Zhi)执(Zhi)行(Xing)一(Yi)次(Ci))(?)
3、(?)实(Shi)例(Li)化(Hua):(?)加(Jia)载(Zai) Servlet 后(Hou),(?)服(Fu)务(Wu)器(Qi)创(Chuang)建(Jian)一(Yi)个(Ge) Servlet 实(Shi)例(Li)。(?)((?)只(Zhi)执(Zhi)行(Xing)一(Yi)次(Ci))(?)
4、(?)初(Chu)始(Shi)化(Hua):(?)调(Diao)用(Yong) Servlet 的(De) init() 方(Fang)法(Fa)。(?)在(Zai)初(Chu)始(Shi)化(Hua)阶(Jie)段(Duan),(?)Servlet 初(Chu)始(Shi)化(Hua)参(Can)数(Shu)被(Bei)传(Chuan)递(Di)给(Gei) Servlet 配(Pei)置(Zhi)对(Dui)象(Xiang)ServletConfig。(?) ((?)只(Zhi)执(Zhi)行(Xing)一(Yi)次(Ci))(?)
5、(?)请(Qing)求(Qiu)处(Chu)理(Li):(?)对(Dui)于(Yu)到(Dao)达(Da)服(Fu)务(Wu)器(Qi)的(De)客(Ke)户(Hu)机(Ji)请(Qing)求(Qiu),(?)服(Fu)务(Wu)器(Qi)创(Chuang)建(Jian)针(Zhen)对(Dui)此(Ci)次(Ci)请(Qing)求(Qiu)的(De)一(Yi)个(Ge)“(?)请(Qing)求(Qiu)”(?)对(Dui)象(Xiang)和(He)一(Yi)个(Ge)“(?)响(Xiang)应(Ying)”(?)对(Dui)象(Xiang)。(?)服(Fu)务(Wu)器(Qi)调(Diao)用(Yong) Servlet 的(De) service() 方(Fang)法(Fa),(?)该(Gai)方(Fang)法(Fa)用(Yong)于(Yu)传(Chuan)递(Di)“(?)请(Qing)求(Qiu)”(?)和(He)“(?)响(Xiang)应(Ying)”(?)对(Dui)象(Xiang)。(?)service() 方(Fang)法(Fa)从(Cong)“(?)请(Qing)求(Qiu)”(?)对(Dui)象(Xiang)获(Huo)得(De)请(Qing)求(Qiu)信(Xin)息(Xi)、(?)处(Chu)理(Li)该(Gai)请(Qing)求(Qiu)并(Bing)用(Yong)“(?)响(Xiang)应(Ying)”(?)对(Dui)象(Xiang)的(De)方(Fang)法(Fa)以(Yi)将(Jiang)响(Xiang)应(Ying)传(Chuan)回(Hui)客(Ke)户(Hu)机(Ji)。(?)service() 方(Fang)法(Fa)可(Ke)以(Yi)调(Diao)用(Yong)其(Qi)它(Ta)方(Fang)法(Fa)来(Lai)处(Chu)理(Li)请(Qing)求(Qiu),(?)例(Li)如(Ru) doGet()、(?)doPost() 或(Huo)其(Qi)它(Ta)的(De)方(Fang)法(Fa)。(?)((?)每(Mei)次(Ci)请(Qing)求(Qiu)都(Du)执(Zhi)行(Xing)该(Gai)步(Bu)骤(Zhou))(?)
6、(?)销(Xiao)毁(Hui):(?)当(Dang)服(Fu)务(Wu)器(Qi)不(Bu)再(Zai)需(Xu)要(Yao) Servlet, 或(Huo)重(Zhong)新(Xin)装(Zhuang)入(Ru) Servlet 的(De)新(Xin)实(Shi)例(Li)时(Shi),(?)服(Fu)务(Wu)器(Qi)会(Hui)调(Diao)用(Yong) Servlet 的(De) destroy() 方(Fang)法(Fa)。(?)((?)只(Zhi)执(Zhi)行(Xing)一(Yi)次(Ci))(?)
387.转(Zhuan)发(Fa)和(He)重(Zhong)定(Ding)向(Xiang)的(De)区(Qu)别(Bie)
转(Zhuan)发(Fa)是(Shi)在(Zai)服(Fu)务(Wu)端(Duan)直(Zhi)接(Jie)做(Zuo)的(De)事(Shi)情(Qing),(?)是(Shi)对(Dui)客(Ke)户(Hu)端(Duan)的(De)同(Tong)一(Yi)个(Ge)request进(Jin)行(Xing)传(Chuan)递(Di),(?)浏(Liu)览(Lan)器(Qi)并(Bing)不(Bu)知(Zhi)道(Dao)。(?)重(Zhong)定(Ding)向(Xiang)是(Shi)由(You)浏(Liu)览(Lan)器(Qi)来(Lai)做(Zuo)的(De)事(Shi)情(Qing)。(?)重(Zhong)定(Ding)向(Xiang)时(Shi),(?)服(Fu)务(Wu)端(Duan)返(Fan)回(Hui)一(Yi)个(Ge)response,(?)里(Li)面(Mian)包(Bao)含(Han)了(Liao)跳(Tiao)转(Zhuan)的(De)地(Di)址(Zhi),(?)由(You)浏(Liu)览(Lan)器(Qi)获(Huo)得(De)后(Hou),(?)自(Zi)动(Dong)发(Fa)送(Song)一(Yi)个(Ge)新(Xin)request。(?)转(Zhuan)发(Fa)像(Xiang)呼(Hu)叫(Jiao)转(Zhuan)移(Yi)或(Huo)者(Zhe)110报(Bao)警(Jing)中(Zhong)心(Xin),(?)重(Zhong)定(Ding)向(Xiang)似(Si)114查(Cha)号(Hao)台(Tai)。(?)

a) 区(Qu)别(Bie)1:跳(Tiao)转(Zhuan)效(Xiao)率(Lu)的(De)不(Bu)同(Tong)
转(Zhuan)发(Fa)效(Xiao)率(Lu)相(Xiang)对(Dui)高(Gao);(?)重(Zhong)定(Ding)向(Xiang)效(Xiao)率(Lu)相(Xiang)对(Dui)低(Di)
b) 区(Qu)别(Bie)2:实(Shi)现(Xian)语(Yu)句(Ju)不(Bu)同(Tong)
转(Zhuan)发(Fa) request.getRequestDispatcher("xxxx").forward(request,response) ;
重(Zhong)定(Ding)向(Xiang) response.sendRedirect("xxxx")
c) 区(Qu)别(Bie)3:是(Shi)否(Fou)共(Gong)有(You)同(Tong)一(Yi)个(Ge)request的(De)数(Shu)据(Ju)
转(Zhuan)发(Fa)源(Yuan)组(Zu)件(Jian)与(Yu)目(Mu)标(Biao)组(Zu)件(Jian)共(Gong)有(You)同(Tong)一(Yi)个(Ge)request数(Shu)据(Ju)
重(Zhong)定(Ding)向(Xiang)源(Yuan)组(Zu)件(Jian)与(Yu)目(Mu)标(Biao)组(Zu)件(Jian)不(Bu)共(Gong)有(You)同(Tong)一(Yi)个(Ge)request数(Shu)据(Ju)((?)可(Ke)使(Shi)用(Yong)session共(Gong)有(You)数(Shu)据(Ju))(?)
d) 区(Qu)别(Bie)4:浏(Liu)览(Lan)器(Qi)URL地(Di)址(Zhi)的(De)不(Bu)同(Tong)
转(Zhuan)发(Fa)后(Hou)浏(Liu)览(Lan)器(Qi)URL地(Di)址(Zhi)保(Bao)持(Chi)不(Bu)变(Bian)((?)源(Yuan)组(Zu)件(Jian)地(Di)址(Zhi))(?)
重(Zhong)定(Ding)向(Xiang)后(Hou)浏(Liu)览(Lan)器(Qi)URL地(Di)址(Zhi)改(Gai)变(Bian)为(Wei)重(Zhong)定(Ding)向(Xiang)后(Hou)的(De)地(Di)址(Zhi)((?)目(Mu)标(Biao)组(Zu)件(Jian)地(Di)址(Zhi))(?)
e) 区(Qu)别(Bie)5:"/"路(Lu)径(Jing)的(De)含(Han)义(Yi)不(Bu)同(Tong)
转(Zhuan)发(Fa)时(Shi)"/"代(Dai)表(Biao)当(Dang)前(Qian)项(Xiang)目(Mu)的(De)根(Gen)路(Lu)径(Jing) ;(?)重(Zhong)定(Ding)向(Xiang)时(Shi)"/"代(Dai)表(Biao)当(Dang)前(Qian)服(Fu)务(Wu)器(Qi)的(De)根(Gen)路(Lu)径(Jing)
f) 区(Qu)别(Bie)6:跳(Tiao)转(Zhuan)范(Fan)围(Wei)的(De)不(Bu)同(Tong)
只(Zhi)能(Neng)转(Zhuan)发(Fa)到(Dao)同(Tong)一(Yi)应(Ying)用(Yong)中(Zhong)的(De)URL((?)默(Mo)认(Ren))(?) ;(?)可(Ke)以(Yi)重(Zhong)定(Ding)向(Xiang)任(Ren)何(He)服(Fu)务(Wu)器(Qi)、(?)任(Ren)何(He)应(Ying)用(Yong)的(De)URL
g) 区(Qu)别(Bie)7:刷(Shua)新(Xin)是(Shi)否(Fou)导(Dao)致(Zhi)重(Zhong)复(Fu)提(Ti)交(Jiao)
转(Zhuan)发(Fa)会(Hui)导(Dao)致(Zhi)重(Zhong)复(Fu)提(Ti)交(Jiao)(可(Ke)以(Yi)通(Tong)过(Guo)同(Tong)步(Bu)令(Ling)牌(Pai)解(Jie)决(Jue));(?)重(Zhong)定(Ding)向(Xiang)不(Bu)会(Hui)导(Dao)致(Zhi)重(Zhong)复(Fu)提(Ti)交(Jiao)
h) 区(Qu)别(Bie)8:是(Shi)否(Fou)经(Jing)过(Guo)过(Guo)滤(Lu)器(Qi)
转(Zhuan)发(Fa)不(Bu)经(Jing)过(Guo)过(Guo)滤(Lu)器(Qi)((?)默(Mo)认(Ren)情(Qing)况(Kuang))(?);(?)重(Zhong)定(Ding)向(Xiang)经(Jing)过(Guo)过(Guo)滤(Lu)器(Qi)
388.JSP的(De)执(Zhi)行(Xing)过(Guo)程(Cheng)
在(Zai)JSP运(Yun)行(Xing)过(Guo)程(Cheng)中(Zhong),(?)首(Shou)先(Xian)由(You)客(Ke)户(Hu)端(Duan)发(Fa)出(Chu)请(Qing)求(Qiu),(?)Web服(Fu)务(Wu)器(Qi)接(Jie)收(Shou)到(Dao)请(Qing)求(Qiu)后(Hou),(?)如(Ru)果(Guo)是(Shi)第(Di)一(Yi)次(Ci)访(Fang)问(Wen)某(Mou)个(Ge)jsp页(Ye)面(Mian),(?)Web服(Fu)务(Wu)器(Qi)对(Dui)它(Ta)进(Jin)行(Xing)以(Yi)下(Xia)3个(Ge)操(Cao)作(Zuo)。(?)
1)翻(Fan)译(Yi):(?)由(You).jsp变(Bian)为(Wei).java,由(You)JSP引(Yin)擎(Qing)实(Shi)现(Xian)。(?)
2)编(Bian)译(Yi):(?)由(You).java变(Bian)为(Wei).class,由(You) Java编(Bian)译(Yi)器(Qi)实(Shi)现(Xian)。(?)
3)执(Zhi)行(Xing):(?)由(You).class变(Bian)为(Wei).html,用(Yong)Java虚(Xu)拟(Ni)机(Ji)执(Zhi)行(Xing)编(Bian)译(Yi)文(Wen)件(Jian),然(Ran)后(Hou)将(Jiang)执(Zhi)行(Xing)结(Jie)果(Guo)返(Fan)回(Hui)给(Gei)Web服(Fu)务(Wu)器(Qi),(?)并(Bing)最(Zui)终(Zhong)返(Fan)回(Hui)给(Gei)客(Ke)户(Hu)端(Duan)
如(Ru)果(Guo)不(Bu)是(Shi)第(Di)一(Yi)次(Ci)访(Fang)问(Wen)某(Mou)个(Ge)JSP页(Ye)面(Mian),(?)则(Ze)只(Zhi)执(Zhi)行(Xing)第(Di)三(San)步(Bu)。(?)所(Suo)以(Yi)第(Di)一(Yi)次(Ci)访(Fang)问(Wen)JSP较(Jiao)慢(Man)。(?)
389.JSP动(Dong)作(Zuo)有(You)哪(Na)些(Xie),简(Jian)述(Shu)作(Zuo)用(Yong)?
jsp:include:(?)在(Zai)页(Ye)面(Mian)被(Bei)请(Qing)求(Qiu)的(De)时(Shi)候(Hou)引(Yin)入(Ru)一(Yi)个(Ge)文(Wen)件(Jian)。(?)
jsp:useBean:(?)寻(Xun)找(Zhao)或(Huo)者(Zhe)实(Shi)例(Li)化(Hua)一(Yi)个(Ge)JavaBean。(?) jsp:setProperty:(?)设(She)置(Zhi)JavaBean的(De)属(Shu)性(Xing)。(?)
jsp:getProperty:(?)输(Shu)出(Chu)某(Mou)个(Ge)JavaBean的(De)属(Shu)性(Xing)。(?)
jsp:forward:(?)把(Ba)请(Qing)求(Qiu)转(Zhuan)到(Dao)一(Yi)个(Ge)新(Xin)的(De)页(Ye)面(Mian)。(?) jsp:plugin:(?)根(Gen)据(Ju)浏(Liu)览(Lan)器(Qi)类(Lei)型(Xing)为(Wei)Java插(Cha)件(Jian)生(Sheng)成(Cheng)OBJECT或(Huo)EMBED标(Biao)记(Ji)。(?)
390.page/request/session/application作(Zuo)用(Yong)域(Yu)区(Qu)别(Bie)
page:(?)当(Dang)前(Qian)页(Ye)面(Mian)范(Fan)围(Wei)
request:(?)当(Dang)前(Qian)页(Ye)面(Mian)范(Fan)围(Wei)+转(Zhuan)发(Fa)页(Ye)面(Mian)((?)forward)(?)+包(Bao)含(Han)页(Ye)面(Mian)((?)include)(?)
session:(?)当(Dang)前(Qian)会(Hui)话(Hua):(?)session在(Zai)以(Yi)下(Xia)几(Ji)种(Zhong)情(Qing)况(Kuang)下(Xia)失(Shi)效(Xiao)
1)销(Xiao)毁(Hui)session:(?)Session.invalidate();
2)超(Chao)过(Guo)最(Zui)大(Da)非(Fei)活(Huo)动(Dong)间(Jian)隔(Ge)时(Shi)间(Jian)
3)手(Shou)动(Dong)关(Guan)闭(Bi)浏(Liu)览(Lan)器(Qi)((?)session并(Bing)没(Mei)有(You)立(Li)刻(Ke)失(Shi)效(Xiao),(?)因(Yin)为(Wei)服(Fu)务(Wu)器(Qi)端(Duan)session仍(Reng)旧(Jiu)存(Cun)在(Zai),(?)超(Chao)过(Guo)最(Zui)大(Da)非(Fei)活(Huo)动(Dong)间(Jian)隔(Ge)时(Shi)间(Jian)后(Hou)真(Zhen)正(Zheng)失(Shi)效(Xiao))(?)
application:(?)当(Dang)前(Qian)应(Ying)用(Yong);(?)服(Fu)务(Wu)器(Qi)重(Zhong)新(Xin)启(Qi)动(Dong)前(Qian)一(Yi)直(Zhi)有(You)效(Xiao)
391.JSP和(He)Servlet的(De)区(Qu)别(Bie)和(He)联(Lian)系(Xi)
区(Qu)别(Bie):(?)
1)JSP是(Shi)在(Zai)HTML代(Dai)码(Ma)里(Li)写(Xie)JAVA代(Dai)码(Ma),框(Kuang)架(Jia)是(Shi)HTML;而(?)Servlet是(Shi)在(Zai)JAVA代(Dai)码(Ma)中(Zhong)写(Xie)HTML代(Dai)码(Ma),(?)本(Ben)身(Shen)是(Shi)个(Ge)JAVA类(Lei)。(?)
2)JSP使(Shi)人(Ren)们(Men)把(Ba)显(Xian)示(Shi)和(He)逻(Luo)辑(Ji)分(Fen)隔(Ge)成(Cheng)为(Wei)可(Ke)能(Neng),(?)这(Zhe)意(Yi)味(Wei)着(Zhuo)两(Liang)者(Zhe)的(De)开(Kai)发(Fa)可(Ke)并(Bing)行(Xing)进(Jin)行(Xing);(?)而(?)Servlet并(Bing)没(Mei)有(You)把(Ba)两(Liang)者(Zhe)分(Fen)开(Kai)。(?)
3)Servlet独(Du)立(Li)地(Di)处(Chu)理(Li)静(Jing)态(Tai)表(Biao)示(Shi)逻(Luo)辑(Ji)与(Yu)动(Dong)态(Tai)业(Ye)务(Wu)逻(Luo)辑(Ji).这(Zhe)样(Yang),任(Ren)何(He)文(Wen)件(Jian)的(De)变(Bian)动(Dong)都(Du)需(Xu)要(Yao)对(Dui)此(Ci)服(Fu)务(Wu)程(Cheng)序(Xu)重(Zhong)新(Xin)编(Bian)译(Yi);JSP允(Yun)许(Xu)用(Yong)特(Te)殊(Shu)标(Biao)签(Qian)直(Zhi)接(Jie)嵌(Qian)入(Ru)到(Dao)HTML页(Ye)面(Mian), HTML内(Nei)容(Rong)与(Yu)JAVA内(Nei)容(Rong)也(Ye)可(Ke)放(Fang)在(Zai)单(Dan)独(Du)文(Wen)件(Jian)中(Zhong),HTML内(Nei)容(Rong)的(De)任(Ren)何(He)变(Bian)动(Dong)会(Hui)自(Zi)动(Dong)编(Bian)译(Yi)装(Zhuang)入(Ru)到(Dao)服(Fu)务(Wu)程(Cheng)序(Xu).
4)Servlet需(Xu)要(Yao)在(Zai)web.xml中(Zhong)配(Pei)置(Zhi),(?)而(?)JSP无(Wu)需(Xu)配(Pei)置(Zhi)。(?)
5)目(Mu)前(Qian)JSP主(Zhu)要(Yao)用(Yong)在(Zai)视(Shi)图(Tu)层(Ceng),(?)负(Fu)责(Ze)显(Xian)示(Shi),(?)而(?)Servlet主(Zhu)要(Yao)用(Yong)在(Zai)控(Kong)制(Zhi)层(Ceng),(?)负(Fu)责(Ze)调(Diao)度(Du)
联(Lian)系(Xi):(?)
1)都(Du)是(Shi)Sun公(Gong)司(Si)推(Tui)出(Chu)的(De)动(Dong)态(Tai)网(Wang)页(Ye)技(Ji)术(Shu)。(?)
2)先(Xian)有(You)Servlet,(?)针(Zhen)对(Dui)Servlet缺(Que)点(Dian)推(Tui)出(Chu)JSP。(?)JSP是(Shi)Servlet的(De)一(Yi)种(Zhong)特(Te)殊(Shu)形(Xing)式(Shi),(?)每(Mei)个(Ge)JSP页(Ye)面(Mian)就(Jiu)是(Shi)一(Yi)个(Ge)Servlet实(Shi)例(Li)—(?)—(?)JSP页(Ye)面(Mian)由(You)系(Xi)统(Tong)翻(Fan)译(Yi)成(Cheng)Servlet,(?)Servlet再(Zai)负(Fu)责(Ze)响(Xiang)应(Ying)用(Yong)户(Hu)请(Qing)求(Qiu)。(?)
392.谈(Tan)谈(Tan)过(Guo)滤(Lu)器(Qi)原(Yuan)理(Li)及(Ji)其(Qi)作(Zuo)用(Yong)?
原(Yuan)理(Li):
过(Guo)滤(Lu)器(Qi)是(Shi)运(Yun)行(Xing)在(Zai)服(Fu)务(Wu)器(Qi)端(Duan)的(De)一(Yi)个(Ge)拦(Lan)截(Jie)作(Zuo)用(Yong)的(De)web组(Zu)件(Jian),(?)一(Yi)个(Ge)请(Qing)求(Qiu)来(Lai)到(Dao)时(Shi),(?)web容(Rong)器(Qi)会(Hui)判(Pan)断(Duan)是(Shi)否(Fou)有(You)过(Guo)滤(Lu)器(Qi)与(Yu)该(Gai)信(Xin)息(Xi)资(Zi)源(Yuan)相(Xiang)关(Guan)联(Lian),(?)如(Ru)果(Guo)有(You)则(Ze)交(Jiao)给(Gei)过(Guo)滤(Lu)器(Qi)处(Chu)理(Li),(?)然(Ran)后(Hou)再(Zai)交(Jiao)给(Gei)目(Mu)标(Biao)资(Zi)源(Yuan),(?)响(Xiang)应(Ying)的(De)时(Shi)候(Hou)则(Ze)以(Yi)相(Xiang)反(Fan)的(De)顺(Shun)序(Xu)交(Jiao)给(Gei)过(Guo)滤(Lu)器(Qi)处(Chu)理(Li),(?)最(Zui)后(Hou)再(Zai)返(Fan)回(Hui)给(Gei)用(Yong)户(Hu)浏(Liu)览(Lan)器(Qi)
一(Yi)般(Ban)用(Yong)于(Yu)日(Ri)志(Zhi)记(Ji)录(Lu)、(?)性(Xing)能(Neng)、(?)安(An)全(Quan)、(?)权(Quan)限(Xian)管(Guan)理(Li)等(Deng)公(Gong)共(Gong)模(Mo)块(Kuai)。(?)
过(Guo)滤(Lu)器(Qi)开(Kai)发(Fa):
过(Guo)滤(Lu)器(Qi)是(Shi)一(Yi)个(Ge)实(Shi)现(Xian)了(Liao)javax.servlet.Filter接(Jie)口(Kou)的(De)java类(Lei)
主(Zhu)要(Yao)业(Ye)务(Wu)代(Dai)码(Ma)放(Fang)在(Zai)doFilter方(Fang)法(Fa)中(Zhong)
业(Ye)务(Wu)代(Dai)码(Ma)完(Wan)成(Cheng)后(Hou)要(Yao)将(Jiang)请(Qing)求(Qiu)向(Xiang)后(Hou)传(Chuan)递(Di),(?)即(Ji)调(Diao)用(Yong)FilterChain对(Dui)象(Xiang)的(De)doFilter方(Fang)法(Fa)
配(Pei)置(Zhi):
在(Zai)web.xml中(Zhong)增(Zeng)加(Jia)如(Ru)下(Xia)代(Dai)码(Ma) <filter> <filter-name>MyFilter</filter-name> <filter-class>Filter完(Wan)整(Zheng)类(Lei)名(Ming)</filter-class> </filter> <filter-mapping> <filter-name>MyFilter</filter-name> <url-pattern>/*(要(Yao)过(Guo)虑(Lu)的(De)url,(?)此(Ci)处(Chu)*表(Biao)示(Shi)过(Guo)虑(Lu)所(Suo)有(You)的(De)url)</url-pattern> </filter-mapping>
谈(Tan)谈(Tan)监(Jian)听(Ting)器(Qi)作(Zuo)用(Yong)及(Ji)其(Qi)分(Fen)类(Lei)?
监(Jian)听(Ting)器(Qi)也(Ye)叫(Jiao)Listener,(?)是(Shi)一(Yi)个(Ge)实(Shi)现(Xian)特(Te)定(Ding)接(Jie)口(Kou)的(De)java类(Lei),(?)使(Shi)用(Yong)时(Shi)需(Xu)要(Yao)在(Zai)web.xml中(Zhong)配(Pei)置(Zhi),(?)它(Ta)是(Shi)web服(Fu)务(Wu)器(Qi)端(Duan)的(De)一(Yi)个(Ge)组(Zu)件(Jian),(?)它(Ta)们(Men)用(Yong)于(Yu)监(Jian)听(Ting)的(De)事(Shi)件(Jian)源(Yuan)分(Fen)别(Bie)为(Wei)SerlvetConext,HttpSession和(He)ServletRequest这(Zhe)三(San)个(Ge)域(Yu)对(Dui)象(Xiang)
主(Zhu)要(Yao)有(You)以(Yi)下(Xia)三(San)种(Zhong)操(Cao)作(Zuo):
监(Jian)听(Ting)三(San)个(Ge)域(Yu)对(Dui)象(Xiang)创(Chuang)建(Jian)和(He)销(Xiao)毁(Hui)的(De)事(Shi)件(Jian)监(Jian)听(Ting)器(Qi)
监(Jian)听(Ting)域(Yu)对(Dui)象(Xiang)中(Zhong)属(Shu)性(Xing)的(De)增(Zeng)加(Jia)和(He)删(Shan)除(Chu)的(De)事(Shi)件(Jian)监(Jian)听(Ting)器(Qi)
监(Jian)听(Ting)绑(Bang)定(Ding)到(Dao)HttpSession域(Yu)中(Zhong)的(De)某(Mou)个(Ge)对(Dui)象(Xiang)的(De)状(Zhuang)态(Tai)的(De)时(Shi)间(Jian)监(Jian)听(Ting)器(Qi)
接(Jie)口(Kou)分(Fen)类(Lei):
ServletContextListener
HttpSessionListener
ServletRequestListener
ServletContextAttributeListener
HttpSessionAttributeListener
ServletRequestAttributeListener
HttpSessionBindingListener(不(Bu)需(Xu)要(Yao)配(Pei)置(Zhi))
HttpSessionActivationListener(不(Bu)需(Xu)要(Yao)配(Pei)置(Zhi))
配(Pei)置(Zhi):(?)
< listener>< listener-class>实(Shi)现(Xian)以(Yi)上(Shang)任(Ren)意(Yi)接(Jie)口(Kou)的(De)java类(Lei)全(Quan)名(Ming)< /listener-class>< /listener>
393.jQuery相(Xiang)比(Bi)JavaScript的(De)优(You)势(Shi)在(Zai)哪(Na)里(Li)
jQuery的(De)语(Yu)法(Fa)更(Geng)加(Jia)简(Jian)单(Dan)。(?)
jQuery消(Xiao)除(Chu)了(Liao)JavaScript跨(Kua)平(Ping)台(Tai)兼(Jian)容(Rong)问(Wen)题(Ti)。(?)
相(Xiang)比(Bi)其(Qi)他(Ta)JavaScript和(He)JavaScript库(Ku),(?)jQuery更(Geng)容(Rong)易(Yi)使(Shi)用(Yong)。(?)
jQuery有(You)一(Yi)个(Ge)庞(Pang)大(Da)的(De)库(Ku)/函(Han)数(Shu)。(?)
jQuery有(You)良(Liang)好(Hao)的(De)文(Wen)档(Dang)和(He)帮(Bang)助(Zhu)手(Shou)册(Ce)。(?)
jQuery支(Zhi)持(Chi)AJAX
394.DOM对(Dui)象(Xiang)和(He)jQuery对(Dui)象(Xiang)的(De)区(Qu)别(Bie)及(Ji)其(Qi)转(Zhuan)换(Huan)
DOM对(Dui)象(Xiang),(?)是(Shi)我(Wo)们(Men)用(Yong)传(Chuan)统(Tong)的(De)方(Fang)法(Fa)(javascript)获(Huo)得(De)的(De)对(Dui)象(Xiang),(?)jQuery对(Dui)象(Xiang)即(Ji)是(Shi)用(Yong)jQuery类(Lei)库(Ku)的(De)选(Xuan)择(Ze)器(Qi)获(Huo)得(De)的(De)对(Dui)象(Xiang),(?)它(Ta)是(Shi)对(Dui)DOM对(Dui)象(Xiang)的(De)一(Yi)种(Zhong)封(Feng)装(Zhuang),(?)jQuery对(Dui)象(Xiang)不(Bu)能(Neng)使(Shi)用(Yong)DOM对(Dui)象(Xiang)的(De)方(Fang)法(Fa),(?)只(Zhi)能(Neng)使(Shi)用(Yong)jQuery对(Dui)象(Xiang)自(Zi)己(Ji)的(De)方(Fang)法(Fa)。(?)
普(Pu)通(Tong)的(De)dom对(Dui)象(Xiang)一(Yi)般(Ban)可(Ke)以(Yi)通(Tong)过(Guo)$()转(Zhuan)换(Huan)成(Cheng)jquery对(Dui)象(Xiang)
如(Ru):(?)var cr=document.getElementById("cr"); //dom对(Dui)象(Xiang)
var $cr = $(cr); //转(Zhuan)换(Huan)成(Cheng)jquery对(Dui)象(Xiang)
由(You)于(Yu)jquery对(Dui)象(Xiang)本(Ben)身(Shen)是(Shi)一(Yi)个(Ge)集(Ji)合(He)。(?)所(Suo)以(Yi)如(Ru)果(Guo)jquery对(Dui)象(Xiang)要(Yao)转(Zhuan)换(Huan)为(Wei)dom对(Dui)象(Xiang)则(Ze)必(Bi)须(Xu)取(Qu)出(Chu)其(Qi)中(Zhong)的(De)某(Mou)一(Yi)项(Xiang),(?)一(Yi)般(Ban)可(Ke)通(Tong)过(Guo)索(Suo)引(Yin)取(Qu)出(Chu)
如(Ru):(?)$("#msg")[0],(?)$("div").eq(1)[0],(?)$("div").get()[1],(?)$("td")[5]这(Zhe)几(Ji)种(Zhong)语(Yu)法(Fa)在(Zai)jQuery中(Zhong)都(Du)是(Shi)合(He)法(Fa)的(De)
395.jQuery中(Zhong)$的(De)作(Zuo)用(Yong)主(Zhu)要(Yao)有(You)哪(Na)些(Xie)
1)$用(Yong)作(Zuo)选(Xuan)择(Ze)器(Qi)
例(Li)如(Ru):根(Gen)据(Ju)id获(Huo)得(De)页(Ye)面(Mian)元(Yuan)素(Su)$("#元(Yuan)素(Su)ID")
2)$相(Xiang)当(Dang)于(Yu)window.onload 和(He) $(document).ready(...)
例(Li)如(Ru):$(function(){...}); function(){...}会(Hui)在(Zai)DOM树(Shu)加(Jia)载(Zai)完(Wan)毕(Bi)之(Zhi)后(Hou)执(Zhi)行(Xing)。(?)
3)$用(Yong)作(Zuo)JQuery的(De)工(Gong)具(Ju)函(Han)数(Shu)的(De)前(Qian)缀(Zhui)
例(Li)如(Ru):(?) var str = ' Welcome to shanghai.com ';
str = $.trim(str);去(Qu)掉(Diao)空(Kong)格(Ge)
4)$(element):(?)把(Ba)DOM节(Jie)点(Dian)转(Zhuan)化(Hua)成(Cheng)jQuery节(Jie)点(Dian)
例(Li)如(Ru):(?)var cr=document.getElementById("cr"); //dom对(Dui)象(Xiang)
var $cr = $(cr); //转(Zhuan)换(Huan)成(Cheng)jquery对(Dui)象(Xiang)
5)(?)$(html):(?)使(Shi)用(Yong)HTML字(Zi)符(Fu)串(Chuan)创(Chuang)建(Jian)jQuery节(Jie)点(Dian)
例(Li)如(Ru):(?)var obj = $("< div>尚(Shang)学(Xue)堂(Tang),(?)实(Shi)战(Zhan)化(Hua)教(Jiao)学(Xue)第(Di)一(Yi)品(Pin)牌(Pai)< /div>")
396.Ajax含(Han)义(Yi)及(Ji)其(Qi)主(Zhu)要(Yao)技(Ji)术(Shu)
Ajax (Asynchronous JavaScript and XML 阿(A)贾(Jia)克(Ke)斯(Si))不(Bu)是(Shi)一(Yi)个(Ge)新(Xin)的(De)技(Ji)术(Shu),(?)事(Shi)实(Shi)上(Shang),(?)它(Ta)是(Shi)一(Yi)些(Xie)旧(Jiu)有(You)的(De)成(Cheng)熟(Shu)的(De)技(Ji)术(Shu)以(Yi)一(Yi)种(Zhong)全(Quan)新(Xin)的(De)更(Geng)加(Jia)强(Qiang)大(Da)的(De)方(Fang)式(Shi)整(Zheng)合(He)在(Zai)一(Yi)起(Qi)。(?)
Ajax的(De)关(Guan)键(Jian)技(Ji)术(Shu):(?)
1)使(Shi)用(Yong)CSS构(Gou)建(Jian)用(Yong)户(Hu)界(Jie)面(Mian)样(Yang)式(Shi),(?)负(Fu)责(Ze)页(Ye)面(Mian)排(Pai)版(Ban)和(He)美(Mei)工(Gong)
2)使(Shi)用(Yong)DOM进(Jin)行(Xing)动(Dong)态(Tai)显(Xian)示(Shi)和(He)交(Jiao)互(Hu),(?)对(Dui)页(Ye)面(Mian)进(Jin)行(Xing)局(Ju)部(Bu)修(Xiu)改(Gai)
3)使(Shi)用(Yong)XMLHttpRequest异(Yi)步(Bu)获(Huo)取(Qu)数(Shu)据(Ju)
4)使(Shi)用(Yong)JavaScript将(Jiang)所(Suo)有(You)元(Yuan)素(Su)绑(Bang)定(Ding)在(Zai)一(Yi)起(Qi)
397.Ajax的(De)工(Gong)作(Zuo)原(Yuan)理(Li)
Ajax的(De)原(Yuan)理(Li)简(Jian)单(Dan)来(Lai)说(Shuo)通(Tong)过(Guo)XmlHttpRequest对(Dui)象(Xiang)来(Lai)向(Xiang)服(Fu)务(Wu)器(Qi)发(Fa)异(Yi)步(Bu)请(Qing)求(Qiu),(?)从(Cong)服(Fu)务(Wu)器(Qi)获(Huo)得(De)数(Shu)据(Ju),(?)然(Ran)后(Hou)用(Yong)javascript来(Lai)操(Cao)作(Zuo)DOM而(?)更(Geng)新(Xin)页(Ye)面(Mian)。(?)这(Zhe)其(Qi)中(Zhong)最(Zui)关(Guan)键(Jian)的(De)一(Yi)步(Bu)就(Jiu)是(Shi)从(Cong)服(Fu)务(Wu)器(Qi)获(Huo)得(De)请(Qing)求(Qiu)数(Shu)据(Ju)。(?)要(Yao)清(Qing)楚(Chu)这(Zhe)个(Ge)过(Guo)程(Cheng)和(He)原(Yuan)理(Li),(?)我(Wo)们(Men)必(Bi)须(Xu)对(Dui) XMLHttpRequest有(You)所(Suo)了(Liao)解(Jie)。(?)
XMLHttpRequest是(Shi)ajax的(De)核(He)心(Xin)机(Ji)制(Zhi),(?)它(Ta)是(Shi)在(Zai)IE5中(Zhong)首(Shou)先(Xian)引(Yin)入(Ru)的(De),(?)是(Shi)一(Yi)种(Zhong)支(Zhi)持(Chi)异(Yi)步(Bu)请(Qing)求(Qiu)的(De)技(Ji)术(Shu)。(?)简(Jian)单(Dan)的(De)说(Shuo),(?)也(Ye)就(Jiu)是(Shi)javascript可(Ke)以(Yi)及(Ji)时(Shi)向(Xiang)服(Fu)务(Wu)器(Qi)提(Ti)出(Chu)请(Qing)求(Qiu)和(He)处(Chu)理(Li)响(Xiang)应(Ying),(?)而(?)不(Bu)阻(Zu)塞(Sai)用(Yong)户(Hu)。(?)达(Da)到(Dao)无(Wu)刷(Shua)新(Xin)的(De)效(Xiao)果(Guo)。(?)
398.JSON及(Ji)其(Qi)作(Zuo)用(Yong)
JSON(JavaScript Object Notation) 是(Shi)一(Yi)种(Zhong)轻(Qing)量(Liang)级(Ji)的(De)数(Shu)据(Ju)交(Jiao)换(Huan)格(Ge)式(Shi),(?)采(Cai)用(Yong)完(Wan)全(Quan)独(Du)立(Li)于(Yu)语(Yu)言(Yan)的(De)文(Wen)本(Ben)格(Ge)式(Shi),(?)是(Shi)理(Li)想(Xiang)的(De)数(Shu)据(Ju)交(Jiao)换(Huan)格(Ge)式(Shi)。(?)同(Tong)时(Shi),(?)JSON是(Shi) JavaScript 原(Yuan)生(Sheng)格(Ge)式(Shi),(?)这(Zhe)意(Yi)味(Wei)着(Zhuo)在(Zai) JavaScript 中(Zhong)处(Chu)理(Li) JSON数(Shu)据(Ju)不(Bu)须(Xu)要(Yao)任(Ren)何(He)特(Te)殊(Shu)的(De) API 或(Huo)工(Gong)具(Ju)包(Bao)。(?)
在(Zai)JSON中(Zhong),(?)有(You)两(Liang)种(Zhong)结(Jie)构(Gou):(?)对(Dui)象(Xiang)和(He)数(Shu)组(Zu)。(?)
{} 对(Dui)象(Xiang)
[] 数(Shu)组(Zu)
, 分(Fen)隔(Ge)属(Shu)性(Xing)
: 左(Zuo)边(Bian)为(Wei)属(Shu)性(Xing)名(Ming),(?)右(You)边(Bian)为(Wei)属(Shu)性(Xing)值(Zhi)
属(Shu)性(Xing)名(Ming)可(Ke)用(Yong)可(Ke)不(Bu)用(Yong)引(Yin)号(Hao)括(Kuo)起(Qi),(?)属(Shu)性(Xing)值(Zhi)为(Wei)字(Zi)符(Fu)串(Chuan)一(Yi)定(Ding)要(Yao)用(Yong)引(Yin)号(Hao)括(Kuo)起(Qi)
举(Ju)例(Li):(?)
varo={ "xlid": "cxh", "xldigitid": 123456, "topscore": 2000, "topplaytime": "2009-08-20" };(?) jsonranklist=[ { "xlid": "cxh", "xldigitid": 123456, "topscore": 2000, "topplaytime": "2009-08-20" }, { "xlid": "zd", "xldigitid": 123456, "topscore": 1500, "topplaytime": "2009-11-20" } ];
399.文(Wen)件(Jian)上(Shang)传(Chuan)组(Zu)件(Jian)Common-fileUpload的(De)常(Chang)用(Yong)类(Lei)及(Ji)其(Qi)作(Zuo)用(Yong)?(?)
DiskFileItemFactory:(?)磁(Ci)盘(Pan)文(Wen)件(Jian)工(Gong)厂(Chang)类(Lei),(?)设(She)置(Zhi)上(Shang)传(Chuan)文(Wen)件(Jian)保(Bao)存(Cun)的(De)磁(Ci)盘(Pan)目(Mu)录(Lu),(?)缓(Huan)冲(Chong)区(Qu)大(Da)小(Xiao)。(?)
ServletFileUpload:(?)上(Shang)传(Chuan)处(Chu)理(Li)类(Lei),(?)此(Ci)类(Lei)真(Zhen)正(Zheng)读(Du)取(Qu)客(Ke)户(Hu)上(Shang)传(Chuan)的(De)文(Wen)件(Jian),(?)同(Tong)时(Shi)可(Ke)以(Yi)设(She)置(Zhi)最(Zui)大(Da)接(Jie)收(Shou)大(Da)小(Xiao)。(?)
FileItem:(?)上(Shang)传(Chuan)的(De)文(Wen)件(Jian)对(Dui)象(Xiang),(?)可(Ke)以(Yi)是(Shi)多(Duo)个(Ge)文(Wen)件(Jian),(?)每(Mei)个(Ge)上(Shang)传(Chuan)的(De)文(Wen)件(Jian)都(Du)是(Shi)一(Yi)个(Ge)单(Dan)独(Du)的(De)FileItem对(Dui)象(Xiang)。(?)
400.说(Shuo)出(Chu)Servlet的(De)生(Sheng)命(Ming)周(Zhou)期(Qi),(?)并(Bing)说(Shuo)出(Chu)Servlet和(He)CGI的(De)区(Qu)别(Bie)?
答(Da):(?)Web容(Rong)器(Qi)加(Jia)载(Zai)Servlet并(Bing)将(Jiang)其(Qi)实(Shi)例(Li)化(Hua)后(Hou),(?)Servlet生(Sheng)命(Ming)周(Zhou)期(Qi)开(Kai)始(Shi),(?)容(Rong)器(Qi)运(Yun)行(Xing)其(Qi)init()方(Fang)法(Fa)进(Jin)行(Xing)Servlet的(De)初(Chu)始(Shi)化(Hua);(?)请(Qing)求(Qiu)到(Dao)达(Da)时(Shi)调(Diao)用(Yong)Servlet的(De)service方(Fang)法(Fa),(?)service方(Fang)法(Fa)会(Hui)调(Diao)用(Yong)与(Yu)请(Qing)求(Qiu)对(Dui)应(Ying)的(De)doGet或(Huo)doPost等(Deng)方(Fang)法(Fa);(?)当(Dang)服(Fu)务(Wu)器(Qi)关(Guan)闭(Bi)会(Hui)项(Xiang)目(Mu)被(Bei)卸(Xie)载(Zai)时(Shi)服(Fu)务(Wu)器(Qi)会(Hui)将(Jiang)Servlet实(Shi)例(Li)销(Xiao)毁(Hui),(?)此(Ci)时(Shi)会(Hui)调(Diao)用(Yong)Servlet的(De)destroy方(Fang)法(Fa)。(?)Servlet与(Yu)CGI的(De)区(Qu)别(Bie)在(Zai)于(Yu)Servlet处(Chu)于(Yu)服(Fu)务(Wu)器(Qi)进(Jin)程(Cheng)中(Zhong),(?)它(Ta)通(Tong)过(Guo)多(Duo)线(Xian)程(Cheng)方(Fang)式(Shi)运(Yun)行(Xing)其(Qi)service方(Fang)法(Fa),(?)一(Yi)个(Ge)实(Shi)例(Li)可(Ke)以(Yi)服(Fu)务(Wu)于(Yu)多(Duo)个(Ge)请(Qing)求(Qiu),(?)并(Bing)且(Qie)其(Qi)实(Shi)例(Li)一(Yi)般(Ban)不(Bu)会(Hui)销(Xiao)毁(Hui),(?)而(?)CGI 对(Dui)每(Mei)个(Ge)请(Qing)求(Qiu)都(Du)产(Chan)生(Sheng)新(Xin)的(De)进(Jin)程(Cheng),(?)服(Fu)务(Wu)完(Wan)成(Cheng)后(Hou)就(Jiu)销(Xiao)毁(Hui),(?)所(Suo)以(Yi)效(Xiao)率(Lu)上(Shang)低(Di)于(Yu)Servlet。(?)
【(?)补(Bu)充(Chong)1】(?)SUN公(Gong)司(Si)在(Zai)1996年(Nian)发(Fa)布(Bu)Servlet技(Ji)术(Shu)就(Jiu)是(Shi)为(Wei)了(Liao)和(He)CGI进(Jin)行(Xing)竞(Jing)争(Zheng),(?)Servlet是(Shi)一(Yi)个(Ge)特(Te)殊(Shu)的(De)Java程(Cheng)序(Xu),(?)一(Yi)个(Ge)基(Ji)于(Yu)Java的(De)Web应(Ying)用(Yong)通(Tong)常(Chang)包(Bao)含(Han)一(Yi)个(Ge)或(Huo)多(Duo)个(Ge)Servlet类(Lei)。(?) Servlet不(Bu)能(Neng)够(Gou)自(Zi)行(Xing)创(Chuang)建(Jian)并(Bing)执(Zhi)行(Xing),(?)它(Ta)是(Shi)在(Zai)Servlet容(Rong)器(Qi)中(Zhong)运(Yun)行(Xing)的(De),(?)容(Rong)器(Qi)将(Jiang)用(Yong)户(Hu)的(De)请(Qing)求(Qiu)传(Chuan)递(Di)给(Gei)Servlet程(Cheng)序(Xu),(?)此(Ci)外(Wai)将(Jiang)Servlet的(De)响(Xiang)应(Ying)回(Hui)传(Chuan)给(Gei)用(Yong)户(Hu)。(?)通(Tong)常(Chang)一(Yi)个(Ge)Servlet会(Hui)关(Guan)联(Lian)一(Yi)个(Ge)或(Huo)多(Duo)个(Ge)JSP页(Ye)面(Mian)。(?)以(Yi)前(Qian)CGI经(Jing)常(Chang)因(Yin)为(Wei)性(Xing)能(Neng)开(Kai)销(Xiao)上(Shang)的(De)问(Wen)题(Ti)被(Bei)诟(Gou)病(Bing),(?)然(Ran)而(?)Fast CGI早(Zao)就(Jiu)已(Yi)经(Jing)解(Jie)决(Jue)了(Liao)CGI效(Xiao)率(Lu)上(Shang)的(De)问(Wen)题(Ti),(?)所(Suo)以(Yi)面(Mian)试(Shi)的(De)时(Shi)候(Hou)大(Da)可(Ke)不(Bu)必(Bi)诟(Gou)病(Bing)CGI,(?)腾(Teng)讯(Xun)的(De)网(Wang)站(Zhan)就(Jiu)使(Shi)用(Yong)了(Liao)CGI技(Ji)术(Shu),(?)相(Xiang)信(Xin)你(Ni)也(Ye)没(Mei)感(Gan)觉(Jue)它(Ta)哪(Na)里(Li)不(Bu)好(Hao)。(?)
【(?)补(Bu)充(Chong)2】(?)Servlet接(Jie)口(Kou)定(Ding)义(Yi)了(Liao)5个(Ge)方(Fang)法(Fa),(?)其(Qi)中(Zhong)前(Qian)三(San)个(Ge)方(Fang)法(Fa)与(Yu)Servlet生(Sheng)命(Ming)周(Zhou)期(Qi)相(Xiang)关(Guan):(?)
void init(ServletConfig config) throws ServletException
void service(ServletRequest req, ServletResponse resp) throws ServletException, java.io.IOException
void destory()
java.lang.String getServletInfo()
ServletConfig getServletConfig()
401.JSP 和(He)Servlet 有(You)有(You)什(Shi)么(Me)关(Guan)系(Xi)?(?)
答(Da):(?)其(Qi)实(Shi)这(Zhe)个(Ge)问(Wen)题(Ti)在(Zai)上(Shang)面(Mian)已(Yi)经(Jing)阐(Chan)述(Shu)过(Guo)了(Liao),(?)Servlet是(Shi)一(Yi)个(Ge)特(Te)殊(Shu)的(De)Java程(Cheng)序(Xu),(?)它(Ta)运(Yun)行(Xing)于(Yu)服(Fu)务(Wu)器(Qi)的(De)JVM中(Zhong),(?)能(Neng)够(Gou)依(Yi)靠(Kao)服(Fu)务(Wu)器(Qi)的(De)支(Zhi)持(Chi)向(Xiang)浏(Liu)览(Lan)器(Qi)提(Ti)供(Gong)显(Xian)示(Shi)内(Nei)容(Rong)。(?)JSP本(Ben)质(Zhi)上(Shang)是(Shi)Servlet的(De)一(Yi)种(Zhong)简(Jian)易(Yi)形(Xing)式(Shi),(?) JSP会(Hui)被(Bei)服(Fu)务(Wu)器(Qi)处(Chu)理(Li)成(Cheng)一(Yi)个(Ge)类(Lei)似(Si)于(Yu)Servlet的(De)Java程(Cheng)序(Xu),(?)可(Ke)以(Yi)简(Jian)化(Hua)页(Ye)面(Mian)内(Nei)容(Rong)的(De)生(Sheng)成(Cheng)。(?)Servlet和(He)JSP最(Zui)主(Zhu)要(Yao)的(De)不(Bu)同(Tong)点(Dian)在(Zai)于(Yu),(?)Servlet 的(De)应(Ying)用(Yong)逻(Luo)辑(Ji)是(Shi)在(Zai)Java 文(Wen)件(Jian)中(Zhong),(?)并(Bing)且(Qie)完(Wan)全(Quan)从(Cong)表(Biao)示(Shi)层(Ceng)中(Zhong)的(De)HTML分(Fen)离(Li)开(Kai)来(Lai)。(?)而(?)JSP的(De)情(Qing)况(Kuang)是(Shi)Java和(He)HTML可(Ke)以(Yi)组(Zu)合(He)成(Cheng)一(Yi)个(Ge)扩(Kuo)展(Zhan)名(Ming)为(Wei).jsp 的(De)文(Wen)件(Jian)((?)有(You)人(Ren)说(Shuo),(?)Servlet就(Jiu)是(Shi)在(Zai)Java中(Zhong)写(Xie)HTML,(?)而(?)JSP就(Jiu)是(Shi)在(Zai)HTML中(Zhong)写(Xie)Java代(Dai)码(Ma),(?)当(Dang)然(Ran),(?)这(Zhe)个(Ge)说(Shuo)法(Fa)还(Huan)是(Shi)很(Hen)片(Pian)面(Mian)的(De))(?)。(?)JSP侧(Ce)重(Zhong)于(Yu)视(Shi)图(Tu),(?)Servlet更(Geng)侧(Ce)重(Zhong)于(Yu)控(Kong)制(Zhi)逻(Luo)辑(Ji),(?)在(Zai)MVC架(Jia)构(Gou)模(Mo)式(Shi)中(Zhong),(?)JSP适(Shi)合(He)充(Chong)当(Dang)视(Shi)图(Tu)((?)view)(?)而(?)Servlet适(Shi)合(He)充(Chong)当(Dang)控(Kong)制(Zhi)器(Qi)((?)controller)(?)。(?)
402.JSP中(Zhong)的(De)四(Si)种(Zhong)作(Zuo)用(Yong)域(Yu)?(?)
答(Da):(?)page、(?)request、(?)session和(He)application,(?)具(Ju)体(Ti)如(Ru)下(Xia):(?)
①(?)page 代(Dai)表(Biao)与(Yu)一(Yi)个(Ge)页(Ye)面(Mian)相(Xiang)关(Guan)的(De)对(Dui)象(Xiang)和(He)属(Shu)性(Xing)。(?)
②(?)request 代(Dai)表(Biao)与(Yu)Web客(Ke)户(Hu)机(Ji)发(Fa)出(Chu)的(De)一(Yi)个(Ge)请(Qing)求(Qiu)相(Xiang)关(Guan)的(De)对(Dui)象(Xiang)和(He)属(Shu)性(Xing)。(?)一(Yi)个(Ge)请(Qing)求(Qiu)可(Ke)能(Neng)跨(Kua)越(Yue)多(Duo)个(Ge)页(Ye)面(Mian),(?)涉(She)及(Ji)多(Duo)个(Ge)Web 组(Zu)件(Jian);(?)需(Xu)要(Yao)在(Zai)页(Ye)面(Mian)显(Xian)示(Shi)的(De)临(Lin)时(Shi)数(Shu)据(Ju)可(Ke)以(Yi)置(Zhi)于(Yu)此(Ci)作(Zuo)用(Yong)域(Yu)
③(?)session代(Dai)表(Biao)与(Yu)某(Mou)个(Ge)用(Yong)户(Hu)与(Yu)服(Fu)务(Wu)器(Qi)建(Jian)立(Li)的(De)一(Yi)次(Ci)会(Hui)话(Hua)相(Xiang)关(Guan)的(De)对(Dui)象(Xiang)和(He)属(Shu)性(Xing)。(?)跟(Gen)某(Mou)个(Ge)用(Yong)户(Hu)相(Xiang)关(Guan)的(De)数(Shu)据(Ju)应(Ying)该(Gai)放(Fang)在(Zai)用(Yong)户(Hu)自(Zi)己(Ji)的(De)session中(Zhong)
④(?)application代(Dai)表(Biao)与(Yu)整(Zheng)个(Ge)Web应(Ying)用(Yong)程(Cheng)序(Xu)相(Xiang)关(Guan)的(De)对(Dui)象(Xiang)和(He)属(Shu)性(Xing),(?)它(Ta)实(Shi)质(Zhi)上(Shang)是(Shi)跨(Kua)越(Yue)整(Zheng)个(Ge)Web应(Ying)用(Yong)程(Cheng)序(Xu),(?)包(Bao)括(Kuo)多(Duo)个(Ge)页(Ye)面(Mian)、(?)请(Qing)求(Qiu)和(He)会(Hui)话(Hua)的(De)一(Yi)个(Ge)全(Quan)局(Ju)作(Zuo)用(Yong)域(Yu)。(?)
403.如(Ru)何(He)实(Shi)现(Xian)JSP或(Huo)Servlet的(De)单(Dan)线(Xian)程(Cheng)模(Mo)式(Shi)?(?)
<%@page isThreadSafe=”(?)false”(?)%>
【(?)补(Bu)充(Chong)】(?)Servlet默(Mo)认(Ren)的(De)工(Gong)作(Zuo)模(Mo)式(Shi)是(Shi)单(Dan)实(Shi)例(Li)多(Duo)线(Xian)程(Cheng),(?)如(Ru)果(Guo)Servlet实(Shi)现(Xian)了(Liao)标(Biao)识(Shi)接(Jie)口(Kou)SingleThreadModel又(You)或(Huo)是(Shi)JSP页(Ye)面(Mian)通(Tong)过(Guo)page指(Zhi)令(Ling)设(She)置(Zhi)isThreadSafe属(Shu)性(Xing)为(Wei)false,(?)那(Na)么(Me)它(Ta)们(Men)生(Sheng)成(Cheng)的(De)Java代(Dai)码(Ma)会(Hui)以(Yi)单(Dan)线(Xian)程(Cheng)多(Duo)实(Shi)例(Li)方(Fang)式(Shi)工(Gong)作(Zuo)。(?)显(Xian)然(Ran),(?)这(Zhe)样(Yang)做(Zuo)会(Hui)导(Dao)致(Zhi)每(Mei)个(Ge)请(Qing)求(Qiu)创(Chuang)建(Jian)一(Yi)个(Ge)Servlet实(Shi)例(Li),(?)这(Zhe)种(Zhong)实(Shi)践(Jian)将(Jiang)导(Dao)致(Zhi)严(Yan)重(Zhong)的(De)性(Xing)能(Neng)问(Wen)题(Ti)。(?)
404.实(Shi)现(Xian)会(Hui)话(Hua)跟(Gen)踪(Zong)的(De)技(Ji)术(Shu)有(You)哪(Na)些(Xie)?(?)
答(Da):(?)由(You)于(Yu)HTTP协(Xie)议(Yi)本(Ben)身(Shen)是(Shi)无(Wu)状(Zhuang)态(Tai)的(De),(?)服(Fu)务(Wu)器(Qi)为(Wei)了(Liao)区(Qu)分(Fen)不(Bu)同(Tong)的(De)用(Yong)户(Hu),(?)就(Jiu)需(Xu)要(Yao)对(Dui)用(Yong)户(Hu)会(Hui)话(Hua)进(Jin)行(Xing)跟(Gen)踪(Zong),(?)简(Jian)单(Dan)的(De)说(Shuo)就(Jiu)是(Shi)为(Wei)用(Yong)户(Hu)进(Jin)行(Xing)登(Deng)记(Ji),(?)为(Wei)用(Yong)户(Hu)分(Fen)配(Pei)唯(Wei)一(Yi)的(De)ID,(?)下(Xia)一(Yi)次(Ci)用(Yong)户(Hu)在(Zai)请(Qing)求(Qiu)中(Zhong)包(Bao)含(Han)此(Ci)ID,(?)服(Fu)务(Wu)器(Qi)据(Ju)此(Ci)判(Pan)断(Duan)到(Dao)底(Di)是(Shi)哪(Na)一(Yi)个(Ge)用(Yong)户(Hu)。(?)
①(?)URL 重(Zhong)写(Xie):(?)在(Zai)URL中(Zhong)添(Tian)加(Jia)用(Yong)户(Hu)会(Hui)话(Hua)的(De)信(Xin)息(Xi)作(Zuo)为(Wei)请(Qing)求(Qiu)的(De)参(Can)数(Shu),(?)或(Huo)者(Zhe)将(Jiang)唯(Wei)一(Yi)的(De)会(Hui)话(Hua)ID添(Tian)加(Jia)到(Dao)URL结(Jie)尾(Wei)以(Yi)标(Biao)识(Shi)一(Yi)个(Ge)会(Hui)话(Hua)。(?)
②(?)设(She)置(Zhi)表(Biao)单(Dan)隐(Yin)藏(Cang)域(Yu):(?)将(Jiang)和(He)会(Hui)话(Hua)跟(Gen)踪(Zong)相(Xiang)关(Guan)的(De)字(Zi)段(Duan)添(Tian)加(Jia)到(Dao)隐(Yin)式(Shi)表(Biao)单(Dan)域(Yu)中(Zhong),(?)这(Zhe)些(Xie)信(Xin)息(Xi)不(Bu)会(Hui)在(Zai)浏(Liu)览(Lan)器(Qi)中(Zhong)显(Xian)示(Shi)但(Dan)是(Shi)提(Ti)交(Jiao)表(Biao)单(Dan)时(Shi)会(Hui)提(Ti)交(Jiao)给(Gei)服(Fu)务(Wu)器(Qi)。(?)
这(Zhe)两(Liang)种(Zhong)方(Fang)式(Shi)很(Hen)难(Nan)处(Chu)理(Li)跨(Kua)越(Yue)多(Duo)个(Ge)页(Ye)面(Mian)的(De)信(Xin)息(Xi)传(Chuan)递(Di),(?)因(Yin)为(Wei)如(Ru)果(Guo)每(Mei)次(Ci)都(Du)要(Yao)修(Xiu)改(Gai)URL或(Huo)在(Zai)页(Ye)面(Mian)中(Zhong)添(Tian)加(Jia)隐(Yin)式(Shi)表(Biao)单(Dan)域(Yu)来(Lai)存(Cun)储(Chu)用(Yong)户(Hu)会(Hui)话(Hua)相(Xiang)关(Guan)信(Xin)息(Xi),(?)事(Shi)情(Qing)将(Jiang)变(Bian)得(De)非(Fei)常(Chang)麻(Ma)烦(Fan)。(?)
③(?)cookie:(?)cookie有(You)两(Liang)种(Zhong),(?)一(Yi)种(Zhong)是(Shi)基(Ji)于(Yu)窗(Chuang)口(Kou)的(De),(?)浏(Liu)览(Lan)器(Qi)窗(Chuang)口(Kou)关(Guan)闭(Bi)后(Hou),(?)cookie就(Jiu)没(Mei)有(You)了(Liao);(?)另(Ling)一(Yi)种(Zhong)是(Shi)将(Jiang)信(Xin)息(Xi)存(Cun)储(Chu)在(Zai)一(Yi)个(Ge)临(Lin)时(Shi)文(Wen)件(Jian)中(Zhong),(?)并(Bing)设(She)置(Zhi)存(Cun)在(Zai)的(De)时(Shi)间(Jian)。(?)当(Dang)用(Yong)户(Hu)通(Tong)过(Guo)浏(Liu)览(Lan)器(Qi)和(He)服(Fu)务(Wu)器(Qi)建(Jian)立(Li)一(Yi)次(Ci)会(Hui)话(Hua)后(Hou),(?)会(Hui)话(Hua)ID就(Jiu)会(Hui)随(Sui)响(Xiang)应(Ying)信(Xin)息(Xi)返(Fan)回(Hui)存(Cun)储(Chu)在(Zai)基(Ji)于(Yu)窗(Chuang)口(Kou)的(De)cookie中(Zhong),(?)那(Na)就(Jiu)意(Yi)味(Wei)着(Zhuo)只(Zhi)要(Yao)浏(Liu)览(Lan)器(Qi)没(Mei)有(You)关(Guan)闭(Bi),(?)会(Hui)话(Hua)没(Mei)有(You)超(Chao)时(Shi),(?)下(Xia)一(Yi)次(Ci)请(Qing)求(Qiu)时(Shi)这(Zhe)个(Ge)会(Hui)话(Hua)ID又(You)会(Hui)提(Ti)交(Jiao)给(Gei)服(Fu)务(Wu)器(Qi)让(Rang)服(Fu)务(Wu)器(Qi)识(Shi)别(Bie)用(Yong)户(Hu)身(Shen)份(Fen)。(?)会(Hui)话(Hua)中(Zhong)可(Ke)以(Yi)为(Wei)用(Yong)户(Hu)保(Bao)存(Cun)信(Xin)息(Xi)。(?)会(Hui)话(Hua)对(Dui)象(Xiang)是(Shi)在(Zai)服(Fu)务(Wu)器(Qi)内(Nei)存(Cun)中(Zhong)的(De),(?)而(?)基(Ji)于(Yu)窗(Chuang)口(Kou)的(De)cookie是(Shi)在(Zai)客(Ke)户(Hu)端(Duan)内(Nei)存(Cun)中(Zhong)的(De)。(?)如(Ru)果(Guo)浏(Liu)览(Lan)器(Qi)禁(Jin)用(Yong)了(Liao)cookie,(?)那(Na)么(Me)就(Jiu)需(Xu)要(Yao)通(Tong)过(Guo)下(Xia)面(Mian)两(Liang)种(Zhong)方(Fang)式(Shi)进(Jin)行(Xing)会(Hui)话(Hua)跟(Gen)踪(Zong)。(?)当(Dang)然(Ran),(?)在(Zai)使(Shi)用(Yong)cookie时(Shi)要(Yao)注(Zhu)意(Yi)几(Ji)点(Dian):(?)首(Shou)先(Xian)不(Bu)要(Yao)在(Zai)cookie中(Zhong)存(Cun)放(Fang)敏(Min)感(Gan)信(Xin)息(Xi);(?)其(Qi)次(Ci)cookie存(Cun)储(Chu)的(De)数(Shu)据(Ju)量(Liang)有(You)限(Xian)((?)4k)(?),(?)不(Bu)能(Neng)将(Jiang)过(Guo)多(Duo)的(De)内(Nei)容(Rong)存(Cun)储(Chu)cookie中(Zhong);(?)再(Zai)者(Zhe)浏(Liu)览(Lan)器(Qi)通(Tong)常(Chang)只(Zhi)允(Yun)许(Xu)一(Yi)个(Ge)站(Zhan)点(Dian)最(Zui)多(Duo)存(Cun)放(Fang)20个(Ge)cookie。(?)当(Dang)然(Ran),(?)和(He)用(Yong)户(Hu)会(Hui)话(Hua)相(Xiang)关(Guan)的(De)其(Qi)他(Ta)信(Xin)息(Xi)((?)除(Chu)了(Liao)会(Hui)话(Hua)ID)(?)也(Ye)可(Ke)以(Yi)存(Cun)在(Zai)cookie方(Fang)便(Bian)进(Jin)行(Xing)会(Hui)话(Hua)跟(Gen)踪(Zong)。(?)
④(?)HttpSession:(?)在(Zai)所(Suo)有(You)会(Hui)话(Hua)跟(Gen)踪(Zong)技(Ji)术(Shu)中(Zhong),(?)HttpSession对(Dui)象(Xiang)是(Shi)最(Zui)强(Qiang)大(Da)也(Ye)是(Shi)功(Gong)能(Neng)最(Zui)多(Duo)的(De)。(?)当(Dang)一(Yi)个(Ge)用(Yong)户(Hu)第(Di)一(Yi)次(Ci)访(Fang)问(Wen)某(Mou)个(Ge)网(Wang)站(Zhan)时(Shi)会(Hui)自(Zi)动(Dong)创(Chuang)建(Jian)HttpSession,(?)每(Mei)个(Ge)用(Yong)户(Hu)可(Ke)以(Yi)访(Fang)问(Wen)他(Ta)自(Zi)己(Ji)的(De)HttpSession。(?)可(Ke)以(Yi)通(Tong)过(Guo)HttpServletRequest对(Dui)象(Xiang)的(De)getSession方(Fang)法(Fa)获(Huo)得(De)HttpSession,(?)通(Tong)过(Guo)HttpSession的(De)setAttribute方(Fang)法(Fa)可(Ke)以(Yi)将(Jiang)一(Yi)个(Ge)值(Zhi)放(Fang)在(Zai)HttpSession中(Zhong),(?)通(Tong)过(Guo)调(Diao)用(Yong)HttpSession对(Dui)象(Xiang)的(De)getAttribute方(Fang)法(Fa),(?)同(Tong)时(Shi)传(Chuan)入(Ru)属(Shu)性(Xing)名(Ming)就(Jiu)可(Ke)以(Yi)获(Huo)取(Qu)保(Bao)存(Cun)在(Zai)HttpSession中(Zhong)的(De)对(Dui)象(Xiang)。(?)与(Yu)上(Shang)面(Mian)三(San)种(Zhong)方(Fang)式(Shi)不(Bu)同(Tong)的(De)是(Shi),(?)HttpSession放(Fang)在(Zai)服(Fu)务(Wu)器(Qi)的(De)内(Nei)存(Cun)中(Zhong),(?)因(Yin)此(Ci)不(Bu)要(Yao)将(Jiang)过(Guo)大(Da)的(De)对(Dui)象(Xiang)放(Fang)在(Zai)里(Li)面(Mian),(?)即(Ji)使(Shi)目(Mu)前(Qian)的(De)Servlet容(Rong)器(Qi)可(Ke)以(Yi)在(Zai)内(Nei)存(Cun)将(Jiang)满(Man)时(Shi)将(Jiang)HttpSession中(Zhong)的(De)对(Dui)象(Xiang)移(Yi)到(Dao)其(Qi)他(Ta)存(Cun)储(Chu)设(She)备(Bei)中(Zhong),(?)但(Dan)是(Shi)这(Zhe)样(Yang)势(Shi)必(Bi)影(Ying)响(Xiang)性(Xing)能(Neng)。(?)添(Tian)加(Jia)到(Dao)HttpSession中(Zhong)的(De)值(Zhi)可(Ke)以(Yi)是(Shi)任(Ren)意(Yi)Java对(Dui)象(Xiang),(?)这(Zhe)个(Ge)对(Dui)象(Xiang)最(Zui)好(Hao)实(Shi)现(Xian)了(Liao)Serializable接(Jie)口(Kou),(?)这(Zhe)样(Yang)Servlet容(Rong)器(Qi)在(Zai)必(Bi)要(Yao)的(De)时(Shi)候(Hou)可(Ke)以(Yi)将(Jiang)其(Qi)序(Xu)列(Lie)化(Hua)到(Dao)文(Wen)件(Jian)中(Zhong),(?)否(Fou)则(Ze)在(Zai)序(Xu)列(Lie)化(Hua)时(Shi)就(Jiu)会(Hui)出(Chu)现(Xian)异(Yi)常(Chang)。(?)
405.过(Guo)滤(Lu)器(Qi)有(You)哪(Na)些(Xie)作(Zuo)用(Yong)和(He)用(Yong)法(Fa)?(?)
答(Da):(?) Java Web开(Kai)发(Fa)中(Zhong)的(De)过(Guo)滤(Lu)器(Qi)((?)filter)(?)是(Shi)从(Cong)Servlet 2.3规(Gui)范(Fan)开(Kai)始(Shi)增(Zeng)加(Jia)的(De)功(Gong)能(Neng),(?)并(Bing)在(Zai)Servlet 2.4规(Gui)范(Fan)中(Zhong)得(De)到(Dao)增(Zeng)强(Qiang)。(?)对(Dui)Web应(Ying)用(Yong)来(Lai)说(Shuo),(?)过(Guo)滤(Lu)器(Qi)是(Shi)一(Yi)个(Ge)驻(Zhu)留(Liu)在(Zai)服(Fu)务(Wu)器(Qi)端(Duan)的(De)Web组(Zu)件(Jian),(?)它(Ta)可(Ke)以(Yi)截(Jie)取(Qu)客(Ke)户(Hu)端(Duan)和(He)服(Fu)务(Wu)器(Qi)之(Zhi)间(Jian)的(De)请(Qing)求(Qiu)与(Yu)响(Xiang)应(Ying)信(Xin)息(Xi),(?)并(Bing)对(Dui)这(Zhe)些(Xie)信(Xin)息(Xi)进(Jin)行(Xing)过(Guo)滤(Lu)。(?)当(Dang)Web容(Rong)器(Qi)接(Jie)受(Shou)到(Dao)一(Yi)个(Ge)对(Dui)资(Zi)源(Yuan)的(De)请(Qing)求(Qiu)时(Shi),(?)它(Ta)将(Jiang)判(Pan)断(Duan)是(Shi)否(Fou)有(You)过(Guo)滤(Lu)器(Qi)与(Yu)这(Zhe)个(Ge)资(Zi)源(Yuan)相(Xiang)关(Guan)联(Lian)。(?)如(Ru)果(Guo)有(You),(?)那(Na)么(Me)容(Rong)器(Qi)将(Jiang)把(Ba)请(Qing)求(Qiu)交(Jiao)给(Gei)过(Guo)滤(Lu)器(Qi)进(Jin)行(Xing)处(Chu)理(Li)。(?)在(Zai)过(Guo)滤(Lu)器(Qi)中(Zhong),(?)你(Ni)可(Ke)以(Yi)改(Gai)变(Bian)请(Qing)求(Qiu)的(De)内(Nei)容(Rong),(?)或(Huo)者(Zhe)重(Zhong)新(Xin)设(She)置(Zhi)请(Qing)求(Qiu)的(De)报(Bao)头(Tou)信(Xin)息(Xi),(?)然(Ran)后(Hou)再(Zai)将(Jiang)请(Qing)求(Qiu)发(Fa)送(Song)给(Gei)目(Mu)标(Biao)资(Zi)源(Yuan)。(?)当(Dang)目(Mu)标(Biao)资(Zi)源(Yuan)对(Dui)请(Qing)求(Qiu)作(Zuo)出(Chu)响(Xiang)应(Ying)时(Shi)候(Hou),(?)容(Rong)器(Qi)同(Tong)样(Yang)会(Hui)将(Jiang)响(Xiang)应(Ying)先(Xian)转(Zhuan)发(Fa)给(Gei)过(Guo)滤(Lu)器(Qi),(?)再(Zai)过(Guo)滤(Lu)器(Qi)中(Zhong),(?)你(Ni)可(Ke)以(Yi)对(Dui)响(Xiang)应(Ying)的(De)内(Nei)容(Rong)进(Jin)行(Xing)转(Zhuan)换(Huan),(?)然(Ran)后(Hou)再(Zai)将(Jiang)响(Xiang)应(Ying)发(Fa)送(Song)到(Dao)客(Ke)户(Hu)端(Duan)。(?)
常(Chang)见(Jian)的(De)过(Guo)滤(Lu)器(Qi)用(Yong)途(Tu)主(Zhu)要(Yao)包(Bao)括(Kuo):(?)对(Dui)用(Yong)户(Hu)请(Qing)求(Qiu)进(Jin)行(Xing)统(Tong)一(Yi)认(Ren)证(Zheng)、(?)对(Dui)用(Yong)户(Hu)的(De)访(Fang)问(Wen)请(Qing)求(Qiu)进(Jin)行(Xing)记(Ji)录(Lu)和(He)审(Shen)核(He)、(?)对(Dui)用(Yong)户(Hu)发(Fa)送(Song)的(De)数(Shu)据(Ju)进(Jin)行(Xing)过(Guo)滤(Lu)或(Huo)替(Ti)换(Huan)、(?)转(Zhuan)换(Huan)图(Tu)象(Xiang)格(Ge)式(Shi)、(?)对(Dui)响(Xiang)应(Ying)内(Nei)容(Rong)进(Jin)行(Xing)压(Ya)缩(Suo)以(Yi)减(Jian)少(Shao)传(Chuan)输(Shu)量(Liang)、(?)对(Dui)请(Qing)求(Qiu)或(Huo)响(Xiang)应(Ying)进(Jin)行(Xing)加(Jia)解(Jie)密(Mi)处(Chu)理(Li)、(?)触(Chu)发(Fa)资(Zi)源(Yuan)访(Fang)问(Wen)事(Shi)件(Jian)、(?)对(Dui)XML的(De)输(Shu)出(Chu)应(Ying)用(Yong)XSLT等(Deng)。(?)
和(He)过(Guo)滤(Lu)器(Qi)相(Xiang)关(Guan)的(De)接(Jie)口(Kou)主(Zhu)要(Yao)有(You):(?)Filter、(?)FilterConfig、(?)FilterChain
406.监(Jian)听(Ting)器(Qi)有(You)哪(Na)些(Xie)作(Zuo)用(Yong)和(He)用(Yong)法(Fa)?(?)
答(Da):(?)Java Web开(Kai)发(Fa)中(Zhong)的(De)监(Jian)听(Ting)器(Qi)((?)listener)(?)就(Jiu)是(Shi)application、(?)session、(?)request三(San)个(Ge)对(Dui)象(Xiang)创(Chuang)建(Jian)、(?)销(Xiao)毁(Hui)或(Huo)者(Zhe)往(Wang)其(Qi)中(Zhong)添(Tian)加(Jia)修(Xiu)改(Gai)删(Shan)除(Chu)属(Shu)性(Xing)时(Shi)自(Zi)动(Dong)执(Zhi)行(Xing)代(Dai)码(Ma)的(De)功(Gong)能(Neng)组(Zu)件(Jian),(?)如(Ru)下(Xia)所(Suo)示(Shi):(?)
①(?)ServletContextListener:(?)对(Dui)Servlet上(Shang)下(Xia)文(Wen)的(De)创(Chuang)建(Jian)和(He)销(Xiao)毁(Hui)进(Jin)行(Xing)监(Jian)听(Ting)。(?)
②(?)ServletContextAttributeListener:(?)监(Jian)听(Ting)Servlet上(Shang)下(Xia)文(Wen)属(Shu)性(Xing)的(De)添(Tian)加(Jia)、(?)删(Shan)除(Chu)和(He)替(Ti)换(Huan)。(?)
③(?)HttpSessionListener:(?)对(Dui)Session的(De)创(Chuang)建(Jian)和(He)销(Xiao)毁(Hui)进(Jin)行(Xing)监(Jian)听(Ting)。(?)
补(Bu)充(Chong):(?)session的(De)销(Xiao)毁(Hui)有(You)两(Liang)种(Zhong)情(Qing)况(Kuang):(?)1session超(Chao)时(Shi)((?)可(Ke)以(Yi)在(Zai)web.xml中(Zhong)通(Tong)过(Guo)< session-config>/< session-timeout>标(Biao)签(Qian)配(Pei)置(Zhi)超(Chao)时(Shi)时(Shi)间(Jian))(?);(?)2通(Tong)过(Guo)调(Diao)用(Yong)session对(Dui)象(Xiang)的(De)invalidate()方(Fang)法(Fa)使(Shi)session失(Shi)效(Xiao)。(?)
④(?)HttpSessionAttributeListener:(?)对(Dui)Session对(Dui)象(Xiang)中(Zhong)属(Shu)性(Xing)的(De)添(Tian)加(Jia)、(?)删(Shan)除(Chu)和(He)替(Ti)换(Huan)进(Jin)行(Xing)监(Jian)听(Ting)。(?)
⑤(?)ServletRequestListener:(?)对(Dui)请(Qing)求(Qiu)对(Dui)象(Xiang)的(De)初(Chu)始(Shi)化(Hua)和(He)销(Xiao)毁(Hui)进(Jin)行(Xing)监(Jian)听(Ting)。(?)
⑥(?)ServletRequestAttributeListener:(?)对(Dui)请(Qing)求(Qiu)对(Dui)象(Xiang)属(Shu)性(Xing)的(De)添(Tian)加(Jia)、(?)删(Shan)除(Chu)和(He)替(Ti)换(Huan)进(Jin)行(Xing)监(Jian)听(Ting)。(?)
407.你(Ni)的(De)项(Xiang)目(Mu)中(Zhong)使(Shi)用(Yong)过(Guo)哪(Na)些(Xie)JSTL标(Biao)签(Qian)?(?)
答(Da):(?)项(Xiang)目(Mu)中(Zhong)主(Zhu)要(Yao)使(Shi)用(Yong)了(Liao)JSTL的(De)核(He)心(Xin)标(Biao)签(Qian)库(Ku),(?)包(Bao)括(Kuo)< c:if>、(?)< c:choose>、(?)< c: when>、(?)< c: otherwise>、(?)< c:forEach>等(Deng),(?)主(Zhu)要(Yao)用(Yong)于(Yu)构(Gou)造(Zao)循(Xun)环(Huan)和(He)分(Fen)支(Zhi)结(Jie)构(Gou)以(Yi)控(Kong)制(Zhi)显(Xian)示(Shi)逻(Luo)辑(Ji)。(?)
【(?)说(Shuo)明(Ming)】(?)虽(Sui)然(Ran)JSTL标(Biao)签(Qian)库(Ku)提(Ti)供(Gong)了(Liao)core、(?)sql、(?)fmt、(?)xml等(Deng)标(Biao)签(Qian)库(Ku),(?)但(Dan)是(Shi)实(Shi)际(Ji)开(Kai)发(Fa)中(Zhong)建(Jian)议(Yi)只(Zhi)使(Shi)用(Yong)核(He)心(Xin)标(Biao)签(Qian)库(Ku)((?)core)(?),(?)而(?)且(Qie)最(Zui)好(Hao)只(Zhi)使(Shi)用(Yong)分(Fen)支(Zhi)和(He)循(Xun)环(Huan)标(Biao)签(Qian)并(Bing)辅(Fu)以(Yi)表(Biao)达(Da)式(Shi)语(Yu)言(Yan)((?)EL)(?),(?)这(Zhe)样(Yang)才(Cai)能(Neng)真(Zhen)正(Zheng)做(Zuo)到(Dao)数(Shu)据(Ju)显(Xian)示(Shi)和(He)业(Ye)务(Wu)逻(Luo)辑(Ji)的(De)分(Fen)离(Li),(?)这(Zhe)才(Cai)是(Shi)最(Zui)佳(Jia)实(Shi)践(Jian)。(?)
408.使(Shi)用(Yong)标(Biao)签(Qian)库(Ku)有(You)什(Shi)么(Me)好(Hao)处(Chu)?(?)如(Ru)何(He)自(Zi)定(Ding)义(Yi)JSP标(Biao)签(Qian)?(?)
答(Da):(?)使(Shi)用(Yong)标(Biao)签(Qian)库(Ku)的(De)好(Hao)处(Chu)包(Bao)括(Kuo)以(Yi)下(Xia)几(Ji)个(Ge)方(Fang)面(Mian):(?)
分(Fen)离(Li)JSP页(Ye)面(Mian)的(De)内(Nei)容(Rong)和(He)逻(Luo)辑(Ji),(?)简(Jian)化(Hua)了(Liao)Web开(Kai)发(Fa);(?)
开(Kai)发(Fa)者(Zhe)可(Ke)以(Yi)创(Chuang)建(Jian)自(Zi)定(Ding)义(Yi)标(Biao)签(Qian)来(Lai)封(Feng)装(Zhuang)业(Ye)务(Wu)逻(Luo)辑(Ji)和(He)显(Xian)示(Shi)逻(Luo)辑(Ji);(?)
标(Biao)签(Qian)具(Ju)有(You)很(Hen)好(Hao)的(De)可(Ke)移(Yi)植(Zhi)性(Xing)、(?)可(Ke)维(Wei)护(Hu)性(Xing)和(He)可(Ke)重(Zhong)用(Yong)性(Xing);(?)
避(Bi)免(Mian)了(Liao)对(Dui)Scriptlet((?)小(Xiao)脚(Jiao)本(Ben))(?)的(De)使(Shi)用(Yong)((?)很(Hen)多(Duo)公(Gong)司(Si)的(De)项(Xiang)目(Mu)开(Kai)发(Fa)都(Du)不(Bu)允(Yun)许(Xu)在(Zai)JSP中(Zhong)书(Shu)写(Xie)小(Xiao)脚(Jiao)本(Ben))(?)
自(Zi)定(Ding)义(Yi)JSP标(Biao)签(Qian)包(Bao)括(Kuo)以(Yi)下(Xia)几(Ji)个(Ge)步(Bu)骤(Zhou):(?)
编(Bian)写(Xie)一(Yi)个(Ge)Java类(Lei)实(Shi)现(Xian)实(Shi)现(Xian)Tag/BodyTag/IterationTag接(Jie)口(Kou)(通(Tong)常(Chang)不(Bu)直(Zhi)接(Jie)实(Shi)现(Xian)这(Zhe)些(Xie)接(Jie)口(Kou)而(?)是(Shi)继(Ji)承(Cheng)TagSupport/BodyTagSupport/SimpleTagSupport类(Lei),(?)这(Zhe)是(Shi)对(Dui)适(Shi)配(Pei)器(Qi)模(Mo)式(Shi)中(Zhong)缺(Que)省(Sheng)适(Shi)配(Pei)模(Mo)式(Shi)的(De)应(Ying)用(Yong))
重(Zhong)写(Xie)doStartTag()、(?)doEndTag()等(Deng)方(Fang)法(Fa),(?)定(Ding)义(Yi)标(Biao)签(Qian)要(Yao)完(Wan)成(Cheng)的(De)功(Gong)能(Neng)
编(Bian)写(Xie)扩(Kuo)展(Zhan)名(Ming)为(Wei)tld的(De)标(Biao)签(Qian)描(Miao)述(Shu)文(Wen)件(Jian)对(Dui)自(Zi)定(Ding)义(Yi)标(Biao)签(Qian)进(Jin)行(Xing)部(Bu)署(Shu),(?)tld文(Wen)件(Jian)通(Tong)常(Chang)放(Fang)在(Zai)WEB-INF文(Wen)件(Jian)夹(Jia)或(Huo)其(Qi)子(Zi)目(Mu)录(Lu)
在(Zai)JSP页(Ye)面(Mian)中(Zhong)使(Shi)用(Yong)taglib指(Zhi)令(Ling)引(Yin)用(Yong)该(Gai)标(Biao)签(Qian)库(Ku)
下(Xia)面(Mian)是(Shi)一(Yi)个(Ge)例(Li)子(Zi):(?)
package com.bjsxt; package com.lovo.tags; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; public class TimeTag extends TagSupport { private static final long serialVersionUID = 1L; private String format = "yyyy-MM-dd hh:mm:ss"; private String foreColor = "black"; private String backColor = "white"; public int doStartTag() throws JspException { SimpleDateFormat sdf = new SimpleDateFormat(format); JspWriter writer = pageContext.getOut(); StringBuilder sb = new StringBuilder(); sb.append(String.format("<span style='color:%s;background-color:%s'>%s</span>", foreColor, backColor, sdf.format(new Date()))); try { writer.print(sb.toString()); } catch(IOException e) { e.printStackTrace(); } return SKIP_BODY; } public void setFormat(String format) { this.format = format; } public void setForeColor(String foreColor) { this.foreColor = foreColor; } public void setBackColor(String backColor) { this.backColor = backColor; } }
标(Biao)签(Qian)库(Ku)描(Miao)述(Shu)文(Wen)件(Jian)((?)该(Gai)文(Wen)件(Jian)通(Tong)常(Chang)放(Fang)在(Zai)WEB-INF目(Mu)录(Lu)或(Huo)其(Qi)子(Zi)目(Mu)录(Lu)下(Xia))(?)
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <description>定(Ding)义(Yi)标(Biao)签(Qian)库(Ku)</description> <tlib-version>1.0</tlib-version> <short-name>MyTag</short-name> <tag> <name>time</name> <tag-class>com.lovo.tags.TimeTag</tag-class> <body-content>empty</body-content> <attribute> <name>format</name> <required>false</required> </attribute> <attribute> <name>foreColor</name> </attribute> <attribute> <name>backColor</name> </attribute> </tag> </taglib>
JSP页(Ye)面(Mian)
<%@ page pageEncoding="UTF-8"%> <%@ taglib prefix="my" uri="/WEB-INF/tld/my.tld" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html> <html> <head> <base href="<%=basePath%>"> <title>首(Shou)页(Ye)</title> <style type="text/css"> * { font-family: "Arial"; font-size:72px; } </style> </head> <body> <my:time format="yyyy-MM-dd" backColor="blue" foreColor="yellow"/> </body> </html>
运(Yun)行(Xing)结(Jie)果(Guo)

【(?)注(Zhu)意(Yi)】(?)如(Ru)果(Guo)要(Yao)将(Jiang)自(Zi)定(Ding)义(Yi)的(De)标(Biao)签(Qian)库(Ku)发(Fa)布(Bu)成(Cheng)JAR文(Wen)件(Jian),(?)需(Xu)要(Yao)将(Jiang)标(Biao)签(Qian)库(Ku)描(Miao)述(Shu)文(Wen)件(Jian)((?)tld文(Wen)件(Jian))(?)放(Fang)在(Zai)JAR文(Wen)件(Jian)的(De)META-INF目(Mu)录(Lu)下(Xia),(?)可(Ke)以(Yi)JDK自(Zi)带(Dai)的(De)jar工(Gong)具(Ju)完(Wan)成(Cheng)JAR文(Wen)件(Jian)的(De)生(Sheng)成(Cheng)。(?)
409.表(Biao)达(Da)式(Shi)语(Yu)言(Yan)((?)EL)(?)的(De)隐(Yin)式(Shi)对(Dui)象(Xiang)及(Ji)其(Qi)作(Zuo)用(Yong)?(?)
答(Da):(?) pageContext、(?)initParam((?)访(Fang)问(Wen)上(Shang)下(Xia)文(Wen)参(Can)数(Shu))(?)、(?)param((?)访(Fang)问(Wen)请(Qing)求(Qiu)参(Can)数(Shu))(?)、(?)paramValues、(?)header((?)访(Fang)问(Wen)请(Qing)求(Qiu)头(Tou))(?)、(?)headerValues、(?)cookie((?)访(Fang)问(Wen)cookie)(?)、(?)applicationScope((?)访(Fang)问(Wen)application作(Zuo)用(Yong)域(Yu))(?)、(?)sessionScope((?)访(Fang)问(Wen)session作(Zuo)用(Yong)域(Yu))(?)、(?)requestScope((?)访(Fang)问(Wen)request作(Zuo)用(Yong)域(Yu))(?)、(?)pageScope((?)访(Fang)问(Wen)page作(Zuo)用(Yong)域(Yu))(?)。(?)用(Yong)法(Fa)如(Ru)下(Xia)所(Suo)示(Shi):(?)
${pageContext.request.method}
${pageContext["request"]["method"]}
${pageContext.request["method"]}
${pageContext["request"].method}
${initParam.defaultEncoding}
${header["accept-language"]}
${headerValues["accept-language"][0]}
${cookie.jsessionid.value}
${sessionScope.loginUser.username}
【(?)补(Bu)充(Chong)】(?)表(Biao)达(Da)式(Shi)语(Yu)言(Yan)的(De).和(He)[]运(Yun)算(Suan)作(Zuo)用(Yong)是(Shi)一(Yi)致(Zhi)的(De),(?)唯(Wei)一(Yi)的(De)差(Cha)别(Bie)在(Zai)于(Yu)如(Ru)果(Guo)访(Fang)问(Wen)的(De)属(Shu)性(Xing)名(Ming)不(Bu)符(Fu)合(He)Java标(Biao)识(Shi)符(Fu)命(Ming)名(Ming)规(Gui)则(Ze),(?)例(Li)如(Ru)上(Shang)面(Mian)的(De)accept-language就(Jiu)不(Bu)是(Shi)一(Yi)个(Ge)有(You)效(Xiao)的(De)Java标(Biao)识(Shi)符(Fu),(?)那(Na)么(Me)这(Zhe)时(Shi)候(Hou)就(Jiu)只(Zhi)能(Neng)用(Yong)[]运(Yun)算(Suan)符(Fu)而(?)不(Bu)能(Neng)使(Shi)用(Yong).获(Huo)取(Qu)它(Ta)的(De)值(Zhi)
410.表(Biao)达(Da)式(Shi)语(Yu)言(Yan)((?)EL)(?)支(Zhi)持(Chi)哪(Na)些(Xie)运(Yun)算(Suan)符(Fu)?(?)
答(Da):(?)除(Chu)了(Liao).和(He)[]运(Yun)算(Suan)符(Fu),(?)EL还(Huan)提(Ti)供(Gong)了(Liao):(?)
算(Suan)术(Shu)运(Yun)算(Suan)符(Fu):(?)+、(?)-、(?)*、(?)/或(Huo)div、(?)%或(Huo)mod
关(Guan)系(Xi)运(Yun)算(Suan)符(Fu):(?)==或(Huo)eq、(?)!=或(Huo)ne、(?)>或(Huo)gt、(?)>=或(Huo)ge、(?)< 或(Huo)lt、(?)< =或(Huo)le
逻(Luo)辑(Ji)运(Yun)算(Suan)符(Fu):(?)&&或(Huo)and、(?)||或(Huo)or、(?)!或(Huo)not
条(Tiao)件(Jian)运(Yun)算(Suan)符(Fu):(?)${statement? A : B}((?)跟(Gen)Java的(De)条(Tiao)件(Jian)运(Yun)算(Suan)符(Fu)类(Lei)似(Si))(?)
empty运(Yun)算(Suan)符(Fu):(?)检(Jian)查(Cha)一(Yi)个(Ge)值(Zhi)是(Shi)否(Fou)为(Wei)null或(Huo)者(Zhe)空(Kong)((?)数(Shu)组(Zu)长(Chang)度(Du)为(Wei)0或(Huo)集(Ji)合(He)中(Zhong)没(Mei)有(You)元(Yuan)素(Su)也(Ye)返(Fan)回(Hui)true)(?)
411.Servlet 3中(Zhong)的(De)异(Yi)步(Bu)处(Chu)理(Li)指(Zhi)的(De)是(Shi)什(Shi)么(Me)?(?)
答(Da):(?)在(Zai)Servlet 3中(Zhong)引(Yin)入(Ru)了(Liao)一(Yi)项(Xiang)新(Xin)的(De)技(Ji)术(Shu)可(Ke)以(Yi)让(Rang)Servlet异(Yi)步(Bu)处(Chu)理(Li)请(Qing)求(Qiu)。(?)有(You)人(Ren)可(Ke)能(Neng)会(Hui)质(Zhi)疑(Yi),(?)既(Ji)然(Ran)都(Du)有(You)多(Duo)线(Xian)程(Cheng)了(Liao),(?)还(Huan)需(Xu)要(Yao)异(Yi)步(Bu)处(Chu)理(Li)请(Qing)求(Qiu)吗(Ma)?(?)答(Da)案(An)是(Shi)肯(Ken)定(Ding)的(De),(?)因(Yin)为(Wei)如(Ru)果(Guo)一(Yi)个(Ge)任(Ren)务(Wu)处(Chu)理(Li)时(Shi)间(Jian)相(Xiang)当(Dang)长(Chang),(?)那(Na)么(Me)Servlet或(Huo)Filter会(Hui)一(Yi)直(Zhi)占(Zhan)用(Yong)着(Zhuo)请(Qing)求(Qiu)处(Chu)理(Li)线(Xian)程(Cheng)直(Zhi)到(Dao)任(Ren)务(Wu)结(Jie)束(Shu),(?)随(Sui)着(Zhuo)并(Bing)发(Fa)用(Yong)户(Hu)的(De)增(Zeng)加(Jia),(?)容(Rong)器(Qi)将(Jiang)会(Hui)遭(Zao)遇(Yu)线(Xian)程(Cheng)超(Chao)出(Chu)的(De)风(Feng)险(Xian),(?)这(Zhe)这(Zhe)种(Zhong)情(Qing)况(Kuang)下(Xia)很(Hen)多(Duo)的(De)请(Qing)求(Qiu)将(Jiang)会(Hui)被(Bei)堆(Dui)积(Ji)起(Qi)来(Lai)而(?)后(Hou)续(Xu)的(De)请(Qing)求(Qiu)可(Ke)能(Neng)会(Hui)遭(Zao)遇(Yu)拒(Ju)绝(Jue)服(Fu)务(Wu),(?)直(Zhi)到(Dao)有(You)资(Zi)源(Yuan)可(Ke)以(Yi)处(Chu)理(Li)请(Qing)求(Qiu)为(Wei)止(Zhi)。(?)异(Yi)步(Bu)特(Te)性(Xing)可(Ke)以(Yi)帮(Bang)助(Zhu)应(Ying)用(Yong)节(Jie)省(Sheng)容(Rong)器(Qi)中(Zhong)的(De)线(Xian)程(Cheng),(?)特(Te)别(Bie)适(Shi)合(He)执(Zhi)行(Xing)时(Shi)间(Jian)长(Chang)而(?)且(Qie)用(Yong)户(Hu)需(Xu)要(Yao)得(De)到(Dao)结(Jie)果(Guo)的(De)任(Ren)务(Wu),(?)如(Ru)果(Guo)用(Yong)户(Hu)不(Bu)需(Xu)要(Yao)得(De)到(Dao)结(Jie)果(Guo)则(Ze)直(Zhi)接(Jie)将(Jiang)一(Yi)个(Ge)Runnable对(Dui)象(Xiang)交(Jiao)给(Gei)Executor((?)如(Ru)果(Guo)不(Bu)清(Qing)楚(Chu)请(Qing)查(Cha)看(Kan)前(Qian)文(Wen)关(Guan)于(Yu)多(Duo)线(Xian)程(Cheng)和(He)线(Xian)程(Cheng)池(Chi)的(De)部(Bu)分(Fen))(?)并(Bing)立(Li)即(Ji)返(Fan)回(Hui)即(Ji)可(Ke)。(?)
【(?)补(Bu)充(Chong)】(?)多(Duo)线(Xian)程(Cheng)在(Zai)Java诞(Dan)生(Sheng)初(Chu)期(Qi)无(Wu)疑(Yi)是(Shi)一(Yi)个(Ge)亮(Liang)点(Dian),(?)而(?)Servlet单(Dan)实(Shi)例(Li)多(Duo)线(Xian)程(Cheng)的(De)工(Gong)作(Zuo)方(Fang)式(Shi)也(Ye)曾(Zeng)为(Wei)其(Qi)赢(Ying)得(De)美(Mei)名(Ming),(?)然(Ran)而(?)技(Ji)术(Shu)的(De)发(Fa)展(Zhan)往(Wang)往(Wang)会(Hui)颠(Dian)覆(Fu)我(Wo)们(Men)很(Hen)多(Duo)的(De)认(Ren)知(Zhi),(?)就(Jiu)如(Ru)同(Tong)当(Dang)年(Nian)爱(Ai)因(Yin)斯(Si)坦(Tan)的(De)相(Xiang)对(Dui)论(Lun)颠(Dian)覆(Fu)了(Liao)牛(Niu)顿(Dun)的(De)经(Jing)典(Dian)力(Li)学(Xue)一(Yi)般(Ban)。(?)事(Shi)实(Shi)上(Shang),(?)异(Yi)步(Bu)处(Chu)理(Li)绝(Jue)不(Bu)是(Shi)Serlvet 3首(Shou)创(Chuang),(?)如(Ru)果(Guo)你(Ni)了(Liao)解(Jie)Node.js的(De)话(Hua),(?)对(Dui)Servlet 3的(De)这(Zhe)个(Ge)重(Zhong)要(Yao)改(Gai)进(Jin)就(Jiu)不(Bu)以(Yi)为(Wei)奇(Qi)了(Liao)。(?)
412.如(Ru)何(He)在(Zai)基(Ji)于(Yu)Java的(De)Web项(Xiang)目(Mu)中(Zhong)实(Shi)现(Xian)文(Wen)件(Jian)上(Shang)传(Chuan)和(He)下(Xia)载(Zai)?(?)
答(Da):(?)((?)稍(Shao)后(Hou)呈(Cheng)现(Xian),(?)我(Wo)准(Zhun)备(Bei)用(Yong)HTML5写(Xie)一(Yi)个(Ge)带(Dai)进(Jin)度(Du)条(Tiao)的(De)客(Ke)户(Hu)端(Duan),(?)然(Ran)后(Hou)再(Zai)用(Yong)Servlet 3提(Ti)供(Gong)的(De)文(Wen)件(Jian)上(Shang)传(Chuan)支(Zhi)持(Chi)来(Lai)做(Zuo)一(Yi)个(Ge)多(Duo)文(Wen)件(Jian)上(Shang)传(Chuan)的(De)例(Li)子(Zi))(?)
413.简(Jian)述(Shu)值(Zhi)栈(Zhan)(Value-Stack)的(De)原(Yuan)理(Li)和(He)生(Sheng)命(Ming)周(Zhou)期(Qi)
答(Da):(?) Value-Stack贯(Guan)穿(Chuan)整(Zheng)个(Ge) Action 的(De)生(Sheng)命(Ming)周(Zhou)期(Qi),(?)保(Bao)存(Cun)在(Zai)request作(Zuo)用(Yong)域(Yu)中(Zhong),(?)所(Suo)以(Yi)它(Ta)和(He)request的(De)生(Sheng)命(Ming)周(Zhou)期(Qi)一(Yi)样(Yang)。(?)当(Dang)Struts 2接(Jie)受(Shou)一(Yi)个(Ge)请(Qing)求(Qiu)时(Shi),(?)会(Hui)创(Chuang)建(Jian)ActionContext、(?)Value-Stack和(He)Action对(Dui)象(Xiang),(?)然(Ran)后(Hou)把(Ba)Action存(Cun)放(Fang)进(Jin)Value-Stack,(?)所(Suo)以(Yi)Action的(De)实(Shi)例(Li)变(Bian)量(Liang)可(Ke)以(Yi)通(Tong)过(Guo)OGNL访(Fang)问(Wen)。(?)由(You)于(Yu)Action是(Shi)多(Duo)实(Shi)例(Li)的(De),(?)和(He)使(Shi)用(Yong)单(Dan)例(Li)的(De)Servlet不(Bu)同(Tong),(?) 每(Mei)个(Ge)Action都(Du)有(You)一(Yi)个(Ge)对(Dui)应(Ying)的(De)Value-Stack,(?)Value-Stack存(Cun)放(Fang)的(De)数(Shu)据(Ju)类(Lei)型(Xing)是(Shi)该(Gai)Action的(De)实(Shi)例(Li),(?)以(Yi)及(Ji)该(Gai)Action中(Zhong)的(De)实(Shi)例(Li)变(Bian)量(Liang),(?)Action对(Dui)象(Xiang)默(Mo)认(Ren)保(Bao)存(Cun)在(Zai)栈(Zhan)顶(Ding)。(?)
414.阐(Chan)述(Shu)Session加(Jia)载(Zai)实(Shi)体(Ti)对(Dui)象(Xiang)的(De)过(Guo)程(Cheng)。(?)
答(Da):(?)Session加(Jia)载(Zai)实(Shi)体(Ti)对(Dui)象(Xiang)的(De)步(Bu)骤(Zhou)是(Shi):(?)
①(?) Session在(Zai)调(Diao)用(Yong)数(Shu)据(Ju)库(Ku)查(Cha)询(Xun)功(Gong)能(Neng)之(Zhi)前(Qian), 首(Shou)先(Xian)会(Hui)在(Zai)缓(Huan)存(Cun)中(Zhong)进(Jin)行(Xing)查(Cha)询(Xun), 在(Zai)一(Yi)级(Ji)缓(Huan)存(Cun)中(Zhong), 通(Tong)过(Guo)实(Shi)体(Ti)类(Lei)型(Xing)和(He)主(Zhu)键(Jian)进(Jin)行(Xing)查(Cha)找(Zhao), 如(Ru)果(Guo)一(Yi)级(Ji)缓(Huan)存(Cun)查(Cha)找(Zhao)命(Ming)中(Zhong)且(Qie)数(Shu)据(Ju)状(Zhuang)态(Tai)合(He)法(Fa), 则(Ze)直(Zhi)接(Jie)返(Fan)回(Hui)
②(?) 如(Ru)果(Guo)一(Yi)级(Ji)缓(Huan)存(Cun)没(Mei)有(You)命(Ming)中(Zhong), 接(Jie)下(Xia)来(Lai)Session会(Hui)在(Zai)当(Dang)前(Qian)NonExists记(Ji)录(Lu)(相(Xiang)当(Dang)于(Yu)一(Yi)个(Ge)查(Cha)询(Xun)黑(Hei)名(Ming)单(Dan), 如(Ru)果(Guo)出(Chu)现(Xian)重(Zhong)复(Fu)的(De)无(Wu)效(Xiao)查(Cha)询(Xun)可(Ke)以(Yi)迅(Xun)速(Su)判(Pan)断(Duan), 从(Cong)而(?)提(Ti)升(Sheng)性(Xing)能(Neng))中(Zhong)进(Jin)行(Xing)查(Cha)找(Zhao), 如(Ru)果(Guo)NonExists中(Zhong)存(Cun)在(Zai)同(Tong)样(Yang)的(De)查(Cha)询(Xun)条(Tiao)件(Jian),则(Ze)返(Fan)回(Hui)null
③(?) 对(Dui)于(Yu)load方(Fang)法(Fa), 如(Ru)果(Guo)一(Yi)级(Ji)缓(Huan)存(Cun)查(Cha)询(Xun)失(Shi)败(Bai)则(Ze)查(Cha)询(Xun)二(?)级(Ji)缓(Huan)存(Cun), 如(Ru)果(Guo)二(?)级(Ji)缓(Huan)存(Cun)命(Ming)中(Zhong)则(Ze)直(Zhi)接(Jie)返(Fan)回(Hui)
④(?) 如(Ru)果(Guo)之(Zhi)前(Qian)的(De)查(Cha)询(Xun)都(Du)未(Wei)命(Ming)中(Zhong), 则(Ze)发(Fa)出(Chu)SQL语(Yu)句(Ju), 如(Ru)果(Guo)查(Cha)询(Xun)未(Wei)发(Fa)现(Xian)对(Dui)应(Ying)记(Ji)录(Lu)则(Ze)将(Jiang)此(Ci)次(Ci)查(Cha)询(Xun)添(Tian)加(Jia)到(Dao)Session的(De)NonExists中(Zhong)加(Jia)以(Yi)记(Ji)录(Lu), 并(Bing)返(Fan)回(Hui)null
⑤(?) 根(Gen)据(Ju)映(Ying)射(She)配(Pei)置(Zhi)和(He)SQL语(Yu)句(Ju)得(De)到(Dao)ResultSet,并(Bing)创(Chuang)建(Jian)对(Dui)应(Ying)的(De)实(Shi)体(Ti)对(Dui)象(Xiang)
⑥(?) 将(Jiang)对(Dui)象(Xiang)纳(Na)入(Ru)Session(一(Yi)级(Ji)缓(Huan)存(Cun))管(Guan)理(Li)
⑦(?) 执(Zhi)行(Xing)拦(Lan)截(Jie)器(Qi)的(De)onLoad方(Fang)法(Fa)(如(Ru)果(Guo)有(You)对(Dui)应(Ying)的(De)拦(Lan)截(Jie)器(Qi))
⑧(?) 将(Jiang)数(Shu)据(Ju)对(Dui)象(Xiang)纳(Na)入(Ru)二(?)级(Ji)缓(Huan)存(Cun)
⑨(?) 返(Fan)回(Hui)数(Shu)据(Ju)对(Dui)象(Xiang)
415.怎(Zen)么(Me)防(Fang)止(Zhi)重(Zhong)复(Fu)提(Ti)交(Jiao)
1.禁(Jin)掉(Diao)提(Ti)交(Jiao)按(An)钮(Niu)。(?)表(Biao)单(Dan)提(Ti)交(Jiao)后(Hou)使(Shi)用(Yong)Javascript使(Shi)提(Ti)交(Jiao)按(An)钮(Niu)disable。(?)这(Zhe)种(Zhong)方(Fang)法(Fa)防(Fang)止(Zhi)心(Xin)急(Ji)的(De)用(Yong)户(Hu)多(Duo)次(Ci)点(Dian)击(Ji)按(An)钮(Niu)。(?)但(Dan)有(You)个(Ge)问(Wen)题(Ti),(?)如(Ru)果(Guo)客(Ke)户(Hu)端(Duan)把(Ba)Javascript给(Gei)禁(Jin)止(Zhi)掉(Diao),(?)这(Zhe)种(Zhong)方(Fang)法(Fa)就(Jiu)无(Wu)效(Xiao)了(Liao)。(?)
2.Post/Redirect/Get模(Mo)式(Shi)。(?)在(Zai)提(Ti)交(Jiao)后(Hou)执(Zhi)行(Xing)页(Ye)面(Mian)重(Zhong)定(Ding)向(Xiang),(?)这(Zhe)就(Jiu)是(Shi)所(Suo)谓(Wei)的(De)Post-Redirect-Get (PRG)模(Mo)式(Shi)。(?)简(Jian)言(Yan)之(Zhi),(?)当(Dang)用(Yong)户(Hu)提(Ti)交(Jiao)了(Liao)表(Biao)单(Dan)后(Hou),(?)你(Ni)去(Qu)执(Zhi)行(Xing)一(Yi)个(Ge)客(Ke)户(Hu)端(Duan)的(De)重(Zhong)定(Ding)向(Xiang),(?)转(Zhuan)到(Dao)提(Ti)交(Jiao)成(Cheng)功(Gong)信(Xin)息(Xi)页(Ye)面(Mian)。(?)
这(Zhe)能(Neng)避(Bi)免(Mian)用(Yong)户(Hu)按(An)F5导(Dao)致(Zhi)的(De)重(Zhong)复(Fu)提(Ti)交(Jiao),(?)而(?)其(Qi)也(Ye)不(Bu)会(Hui)出(Chu)现(Xian)浏(Liu)览(Lan)器(Qi)表(Biao)单(Dan)重(Zhong)复(Fu)提(Ti)交(Jiao)的(De)警(Jing)告(Gao),(?)也(Ye)能(Neng)消(Xiao)除(Chu)按(An)浏(Liu)览(Lan)器(Qi)前(Qian)进(Jin)和(He)后(Hou)退(Tui)按(An)导(Dao)致(Zhi)的(De)同(Tong)样(Yang)问(Wen)题(Ti)。(?)
3.在(Zai)session中(Zhong)存(Cun)放(Fang)一(Yi)个(Ge)特(Te)殊(Shu)标(Biao)志(Zhi)。(?)当(Dang)表(Biao)单(Dan)页(Ye)面(Mian)被(Bei)请(Qing)求(Qiu)时(Shi),(?)生(Sheng)成(Cheng)一(Yi)个(Ge)特(Te)殊(Shu)的(De)字(Zi)符(Fu)标(Biao)志(Zhi)串(Chuan),(?)存(Cun)在(Zai)session中(Zhong),(?)同(Tong)时(Shi)放(Fang)在(Zai)表(Biao)单(Dan)的(De)隐(Yin)藏(Cang)域(Yu)里(Li)。(?)接(Jie)受(Shou)处(Chu)理(Li)表(Biao)单(Dan)数(Shu)据(Ju)时(Shi),(?)检(Jian)查(Cha)标(Biao)识(Shi)字(Zi)串(Chuan)是(Shi)否(Fou)存(Cun)在(Zai),(?)并(Bing)立(Li)即(Ji)从(Cong)session中(Zhong)删(Shan)除(Chu)它(Ta),(?)然(Ran)后(Hou)正(Zheng)常(Chang)处(Chu)理(Li)数(Shu)据(Ju)。(?)
如(Ru)果(Guo)发(Fa)现(Xian)表(Biao)单(Dan)提(Ti)交(Jiao)里(Li)没(Mei)有(You)有(You)效(Xiao)的(De)标(Biao)志(Zhi)串(Chuan),(?)这(Zhe)说(Shuo)明(Ming)表(Biao)单(Dan)已(Yi)经(Jing)被(Bei)提(Ti)交(Jiao)过(Guo)了(Liao),(?)忽(Hu)略(Lue)这(Zhe)次(Ci)提(Ti)交(Jiao)。(?)
4.在(Zai)数(Shu)据(Ju)库(Ku)里(Li)添(Tian)加(Jia)约(Yue)束(Shu)。(?)在(Zai)数(Shu)据(Ju)库(Ku)里(Li)添(Tian)加(Jia)唯(Wei)一(Yi)约(Yue)束(Shu)或(Huo)创(Chuang)建(Jian)唯(Wei)一(Yi)索(Suo)引(Yin),(?)防(Fang)止(Zhi)出(Chu)现(Xian)重(Zhong)复(Fu)数(Shu)据(Ju)。(?)这(Zhe)是(Shi)最(Zui)有(You)效(Xiao)的(De)防(Fang)止(Zhi)重(Zhong)复(Fu)提(Ti)交(Jiao)数(Shu)据(Ju)的(De)方(Fang)法(Fa)。(?)
416.$(document).ready(function(){}) jQuery(document).ready(function(){}); 有(You)什(Shi)么(Me)区(Qu)别(Bie)?(?)
window.jQuery = window.$ = jQuery;
这(Zhe)两(Liang)者(Zhe)可(Ke)以(Yi)互(Hu)换(Huan)使(Shi)用(Yong)。(?)一(Yi)般(Ban)建(Jian)议(Yi)优(You)先(Xian)使(Shi)用(Yong)$
417.写(Xie)出(Chu)输(Shu)出(Chu)结(Jie)果(Guo)
<script> function Foo() { getName = function (){alert(1);}; return this; } Foo.getName = function() {alert (2);}; Foo.prototype.getName = function (){ alert (3);}; var getName = function (){alert (4);}; function getName(){alert (5);} </script>
//请(Qing)写(Xie)出(Chu)以(Yi)下(Xia)输(Shu)出(Chu)结(Jie)果(Guo):(?)
Foo.getName(); // 2
getName(); // 4
Foo().getName(); // 1
getName(); // 1
new Foo.getName(); // 2
new Foo().getName(); // 3
new new Foo().getName(); // 3
418.web项(Xiang)目(Mu)从(Cong)浏(Liu)览(Lan)器(Qi)发(Fa)起(Qi)交(Jiao)易(Yi)响(Xiang)应(Ying)缓(Huan)慢(Man),(?)请(Qing)简(Jian)述(Shu)从(Cong)哪(Na)些(Xie)方(Fang)面(Mian)如(Ru)数(Shu)分(Fen)析(Xi)
从(Cong)前(Qian)端(Duan)后(Hou)端(Duan)分(Fen)别(Bie)取(Qu)考(Kao)虑(Lu),(?)后(Hou)台(Tai)是(Shi)不(Bu)是(Shi)数(Shu)据(Ju)库(Ku)死(Si)锁(Suo)等(Deng)。(?)
前(Qian)台(Tai)看(Kan)看(Kan)是(Shi)不(Bu)是(Shi)js 错(Cuo)误(Wu),(?)或(Huo)者(Zhe)图(Tu)片(Pian)过(Guo)大(Da),(?)dom 渲(Xuan)染(Ran)dom树(Shu),(?)画(Hua)面(Mian)优(You)化(Hua)。(?)cmd amd 规(Gui)范(Fan)等(Deng)
答(Da):(?)工(Gong)厂(Chang)设(She)计(Ji)模(Mo)式(Shi):(?)程(Cheng)序(Xu)在(Zai)接(Jie)口(Kou)和(He)子(Zi)类(Lei)之(Zhi)间(Jian)加(Jia)入(Ru)了(Liao)一(Yi)个(Ge)过(Guo)渡(Du)端(Duan),(?)通(Tong)过(Guo)此(Ci)过(Guo)渡(Du)端(Duan)可(Ke)以(Yi)动(Dong)态(Tai)取(Qu)得(De)实(Shi)现(Xian)了(Liao)共(Gong)同(Tong)接(Jie)口(Kou)的(De)子(Zi)类(Lei)实(Shi)例(Li)化(Hua)对(Dui)象(Xiang)。(?)
代(Dai)理(Li)设(She)计(Ji)模(Mo)式(Shi):(?)指(Zhi)由(You)一(Yi)个(Ge)代(Dai)理(Li)主(Zhu)题(Ti)来(Lai)操(Cao)作(Zuo)真(Zhen)实(Shi)主(Zhu)题(Ti),(?)真(Zhen)实(Shi)主(Zhu)题(Ti)执(Zhi)行(Xing)具(Ju)体(Ti)的(De)业(Ye)务(Wu)操(Cao)作(Zuo),(?)而(?)代(Dai)理(Li)主(Zhu)题(Ti)负(Fu)责(Ze)其(Qi)他(Ta)相(Xiang)关(Guan)业(Ye)务(Wu)的(De)处(Chu)理(Li)。(?)比(Bi)如(Ru)生(Sheng)活(Huo)中(Zhong)的(De)通(Tong)过(Guo)代(Dai)理(Li)访(Fang)问(Wen)网(Wang)络(Luo),(?)客(Ke)户(Hu)通(Tong)过(Guo)网(Wang)络(Luo)代(Dai)理(Li)连(Lian)接(Jie)网(Wang)络(Luo)((?)具(Ju)体(Ti)业(Ye)务(Wu))(?),(?)由(You)代(Dai)理(Li)服(Fu)务(Wu)器(Qi)完(Wan)成(Cheng)用(Yong)户(Hu)权(Quan)限(Xian)和(He)访(Fang)问(Wen)限(Xian)制(Zhi)等(Deng)与(Yu)上(Shang)网(Wang)相(Xiang)关(Guan)的(De)其(Qi)他(Ta)操(Cao)作(Zuo)((?)相(Xiang)关(Guan)业(Ye)务(Wu))(?)
适(Shi)配(Pei)器(Qi)模(Mo)式(Shi):(?)如(Ru)果(Guo)一(Yi)个(Ge)类(Lei)要(Yao)实(Shi)现(Xian)一(Yi)个(Ge)具(Ju)有(You)很(Hen)多(Duo)抽(Chou)象(Xiang)方(Fang)法(Fa)的(De)接(Jie)口(Kou),(?)但(Dan)是(Shi)本(Ben)身(Shen)只(Zhi)需(Xu)要(Yao)实(Shi)现(Xian)接(Jie)口(Kou)中(Zhong)的(De)部(Bu)分(Fen)方(Fang)法(Fa)便(Bian)可(Ke)以(Yi)达(Da)成(Cheng)目(Mu)的(De),(?)所(Suo)以(Yi)此(Ci)时(Shi)就(Jiu)需(Xu)要(Yao)一(Yi)个(Ge)中(Zhong)间(Jian)的(De)过(Guo)渡(Du)类(Lei),(?)但(Dan)此(Ci)过(Guo)渡(Du)类(Lei)又(You)不(Bu)希(Xi)望(Wang)直(Zhi)接(Jie)使(Shi)用(Yong),(?)所(Suo)以(Yi)将(Jiang)此(Ci)类(Lei)定(Ding)义(Yi)为(Wei)抽(Chou)象(Xiang)类(Lei)最(Zui)为(Wei)合(He)适(Shi),(?)再(Zai)让(Rang)以(Yi)后(Hou)的(De)子(Zi)类(Lei)直(Zhi)接(Jie)继(Ji)承(Cheng)该(Gai)抽(Chou)象(Xiang)类(Lei)便(Bian)可(Ke)选(Xuan)择(Ze)性(Xing)的(De)覆(Fu)写(Xie)所(Suo)需(Xu)要(Yao)的(De)方(Fang)法(Fa),(?)而(?)此(Ci)抽(Chou)象(Xiang)类(Lei)便(Bian)是(Shi)适(Shi)配(Pei)器(Qi)类(Lei)。(?)
工(Gong)厂(Chang)设(She)计(Ji)模(Mo)式(Shi):(?)
思(Si)路(Lu)说(Shuo)明(Ming):(?)由(You)一(Yi)个(Ge)工(Gong)厂(Chang)类(Lei)根(Gen)据(Ju)传(Chuan)入(Ru)的(De)参(Can)数(Shu)((?)一(Yi)般(Ban)是(Shi)字(Zi)符(Fu)串(Chuan)参(Can)数(Shu))(?),(?)动(Dong)态(Tai)决(Jue)定(Ding)应(Ying)该(Gai)创(Chuang)建(Jian)哪(Na)一(Yi)个(Ge)产(Chan)品(Pin)子(Zi)类(Lei)((?)这(Zhe)些(Xie)产(Chan)品(Pin)子(Zi)类(Lei)继(Ji)承(Cheng)自(Zi)同(Tong)一(Yi)个(Ge)父(Fu)类(Lei)或(Huo)接(Jie)口(Kou))(?)的(De)实(Shi)例(Li),(?)并(Bing)以(Yi)父(Fu)类(Lei)形(Xing)式(Shi)返(Fan)回(Hui)
优(You)点(Dian):(?)客(Ke)户(Hu)端(Duan)不(Bu)负(Fu)责(Ze)对(Dui)象(Xiang)的(De)创(Chuang)建(Jian),(?)而(?)是(Shi)由(You)专(Zhuan)门(Men)的(De)工(Gong)厂(Chang)类(Lei)完(Wan)成(Cheng);(?)客(Ke)户(Hu)端(Duan)只(Zhi)负(Fu)责(Ze)对(Dui)象(Xiang)的(De)调(Diao)用(Yong),(?)实(Shi)现(Xian)了(Liao)创(Chuang)建(Jian)和(He)调(Diao)用(Yong)的(De)分(Fen)离(Li),(?)降(Jiang)低(Di)了(Liao)客(Ke)户(Hu)端(Duan)代(Dai)码(Ma)的(De)难(Nan)度(Du);(?)
缺(Que)点(Dian):(?)如(Ru)果(Guo)增(Zeng)加(Jia)和(He)减(Jian)少(Shao)产(Chan)品(Pin)子(Zi)类(Lei),(?)需(Xu)要(Yao)修(Xiu)改(Gai)简(Jian)单(Dan)工(Gong)厂(Chang)类(Lei),(?)违(Wei)背(Bei)了(Liao)开(Kai)闭(Bi)原(Yuan)则(Ze);(?)如(Ru)果(Guo)产(Chan)品(Pin)子(Zi)类(Lei)过(Guo)多(Duo),(?)会(Hui)导(Dao)致(Zhi)工(Gong)厂(Chang)类(Lei)非(Fei)常(Chang)的(De)庞(Pang)大(Da),(?)违(Wei)反(Fan)了(Liao)高(Gao)内(Nei)聚(Ju)原(Yuan)则(Ze),(?)不(Bu)利(Li)于(Yu)后(Hou)期(Qi)维(Wei)护(Hu)。(?)
public class SimpleFactory { public static Product createProduct(String pname){ Product product=null; if("p1".equals(pname)){ product = new Product1(); }else if("p2".equals(pname)){ product = new Product2(); }else if("pn".equals(pname)){ product = new ProductN(); } return product; } }
单(Dan)例(Li)模(Mo)式(Shi)
/** * 饿(E)汉(Han)式(Shi)的(De)单(Dan)例(Li)模(Mo)式(Shi) * 在(Zai)类(Lei)加(Jia)载(Zai)的(De)时(Shi)候(Hou)创(Chuang)建(Jian)单(Dan)例(Li)实(Shi)例(Li),(?)而(?)不(Bu)是(Shi)等(Deng)到(Dao)第(Di)一(Yi)次(Ci)请(Qing)求(Qiu)实(Shi)例(Li)的(De)时(Shi)候(Hou)的(De)时(Shi)候(Hou)创(Chuang)建(Jian) * 1、(?)私(Si)有(You) 的(De)无(Wu)参(Can)数(Shu)构(Gou)造(Zao)方(Fang)法(Fa)Singleton(),(?)避(Bi)免(Mian)外(Wai)部(Bu)创(Chuang)建(Jian)实(Shi)例(Li) * 2、(?)私(Si)有(You)静(Jing)态(Tai)属(Shu)性(Xing)instance * 3、(?)公(Gong)有(You)静(Jing)态(Tai)方(Fang)法(Fa)getInstance() */ public class Singleton { private static Singleton instance = new Singleton(); private Singleton(){ } public static Singleton getInstance(){ return instance; } } /** * 懒(Lan)汉(Han)式(Shi)的(De)单(Dan)例(Li)模(Mo)式(Shi) *在(Zai)类(Lei)加(Jia)载(Zai)的(De)时(Shi)候(Hou)不(Bu)创(Chuang)建(Jian)单(Dan)例(Li)实(Shi)例(Li),(?)只(Zhi)有(You)在(Zai)第(Di)一(Yi)次(Ci)请(Qing)求(Qiu)实(Shi)例(Li)的(De)时(Shi)候(Hou)的(De)时(Shi)候(Hou)创(Chuang)建(Jian) */ public class Singleton { private static Singleton instance; private Singleton(){ } /** * 多(Duo)线(Xian)程(Cheng)情(Qing)况(Kuang)的(De)单(Dan)例(Li)模(Mo)式(Shi),(?)避(Bi)免(Mian)创(Chuang)建(Jian)多(Duo)个(Ge)对(Dui)象(Xiang) */ public static Singleton getInstance(){ if(instance ==null){//避(Bi)免(Mian)每(Mei)次(Ci)加(Jia)锁(Suo),(?)只(Zhi)有(You)第(Di)一(Yi)次(Ci)没(Mei)有(You)创(Chuang)建(Jian)对(Dui)象(Xiang)时(Shi)才(Cai)加(Jia)锁(Suo) synchronized(Singleton.class){//加(Jia)锁(Suo),(?)只(Zhi)允(Yun)许(Xu)一(Yi)个(Ge)线(Xian)程(Cheng)进(Jin)入(Ru) if(instance==null){ //只(Zhi)创(Chuang)建(Jian)一(Yi)次(Ci)对(Dui)象(Xiang) instance = new Singleton(); } } } return instance; }}
答(Da):工(Gong)厂(Chang)模(Mo)式(Shi):(?)工(Gong)厂(Chang)模(Mo)式(Shi)是(Shi) Java 中(Zhong)最(Zui)常(Chang)用(Yong)的(De)设(She)计(Ji)模(Mo)式(Shi)之(Zhi)一(Yi)。(?)这(Zhe)种(Zhong)类(Lei)型(Xing)的(De)设(She)计(Ji)模(Mo)式(Shi)属(Shu)于(Yu)创(Chuang)建(Jian)型(Xing)模(Mo)式(Shi),(?)它(Ta)提(Ti)供(Gong)了(Liao)一(Yi)种(Zhong)创(Chuang)建(Jian)对(Dui)象(Xiang)的(De)最(Zui)佳(Jia)方(Fang)式(Shi)。(?)在(Zai)工(Gong)厂(Chang)模(Mo)式(Shi)中(Zhong),(?)我(Wo)们(Men)在(Zai)创(Chuang)建(Jian)对(Dui)象(Xiang)时(Shi)不(Bu)会(Hui)对(Dui)客(Ke)户(Hu)端(Duan)暴(Bao)露(Lu)创(Chuang)建(Jian)逻(Luo)辑(Ji),(?)并(Bing)且(Qie)是(Shi)通(Tong)过(Guo)使(Shi)用(Yong)一(Yi)个(Ge)共(Gong)同(Tong)的(De)接(Jie)口(Kou)来(Lai)指(Zhi)向(Xiang)新(Xin)创(Chuang)建(Jian)的(De)对(Dui)象(Xiang)。(?)
适(Shi)配(Pei)器(Qi)模(Mo)式(Shi):(?)适(Shi)配(Pei)器(Qi)模(Mo)式(Shi)是(Shi)作(Zuo)为(Wei)两(Liang)个(Ge)不(Bu)兼(Jian)容(Rong)的(De)接(Jie)口(Kou)之(Zhi)间(Jian)的(De)桥(Qiao)梁(Liang)。(?)这(Zhe)种(Zhong)类(Lei)型(Xing)的(De)设(She)计(Ji)模(Mo)式(Shi)属(Shu)于(Yu)结(Jie)构(Gou)型(Xing)模(Mo)式(Shi),(?)它(Ta)结(Jie)合(He)了(Liao)两(Liang)个(Ge)独(Du)立(Li)接(Jie)口(Kou)的(De)功(Gong)能(Neng)。(?)这(Zhe)种(Zhong)模(Mo)式(Shi)涉(She)及(Ji)到(Dao)一(Yi)个(Ge)单(Dan)一(Yi)的(De)类(Lei),(?)该(Gai)类(Lei)负(Fu)责(Ze)加(Jia)入(Ru)独(Du)立(Li)的(De)或(Huo)不(Bu)兼(Jian)容(Rong)的(De)接(Jie)口(Kou)功(Gong)能(Neng)。(?)
模(Mo)板(Ban)模(Mo)式(Shi):(?)在(Zai)模(Mo)板(Ban)模(Mo)式(Shi)中(Zhong),(?)一(Yi)个(Ge)抽(Chou)象(Xiang)类(Lei)公(Gong)开(Kai)定(Ding)义(Yi)了(Liao)执(Zhi)行(Xing)它(Ta)的(De)方(Fang)法(Fa)的(De)方(Fang)式(Shi)/模(Mo)板(Ban)。(?)它(Ta)的(De)子(Zi)类(Lei)可(Ke)以(Yi)按(An)需(Xu)要(Yao)重(Zhong)写(Xie)方(Fang)法(Fa)实(Shi)现(Xian),(?)但(Dan)调(Diao)用(Yong)将(Jiang)以(Yi)抽(Chou)象(Xiang)类(Lei)中(Zhong)定(Ding)义(Yi)的(De)方(Fang)式(Shi)进(Jin)行(Xing)。(?)
答(Da):(?)struts2中(Zhong)action是(Shi)多(Duo)例(Li)的(De),(?)即(Ji)一(Yi)个(Ge)session产(Chan)生(Sheng)一(Yi)个(Ge)action
背(Bei)景(Jing):
1) Struts2会(Hui)对(Dui)每(Mei)一(Yi)个(Ge)请(Qing)求(Qiu),产(Chan)生(Sheng)一(Yi)个(Ge)Action的(De)实(Shi)例(Li)来(Lai)处(Chu)理(Li).
2) Spring的(De)Ioc容(Rong)器(Qi)管(Guan)理(Li)的(De)bean默(Mo)认(Ren)是(Shi)单(Dan)实(Shi)例(Li)的(De).
首(Shou)先(Xian)从(Cong)数(Shu)据(Ju)安(An)全(Quan)性(Xing)的(De)问(Wen)题(Ti)上(Shang)考(Kao)虑(Lu),(?)我(Wo)们(Men)的(De)Action应(Ying)该(Gai)保(Bao)证(Zheng)是(Shi)多(Duo)例(Li)的(De),(?)这(Zhe)样(Yang)才(Cai)不(Bu)会(Hui)出(Chu)现(Xian)数(Shu)据(Ju)问(Wen)题(Ti)。(?)但(Dan)是(Shi)如(Ru)果(Guo)有(You)的(De)action比(Bi)如(Ru)只(Zhi)有(You)admin才(Cai)能(Neng)操(Cao)作(Zuo),(?)或(Huo)者(Zhe)某(Mou)些(Xie)action,(?)全(Quan)站(Zhan)公(Gong)用(Yong)一(Yi)个(Ge)来(Lai)提(Ti)高(Gao)性(Xing)能(Neng),(?)这(Zhe)样(Yang)的(De)话(Hua),(?)就(Jiu)可(Ke)以(Yi)使(Shi)用(Yong)单(Dan)例(Li)模(Mo)式(Shi)。(?)
不(Bu)过(Guo)幸(Xing)好(Hao),(?)Spring的(De)bean可(Ke)以(Yi)针(Zhen)对(Dui)每(Mei)一(Yi)个(Ge)设(She)置(Zhi)它(Ta)的(De)scope,(?)所(Suo)以(Yi),(?)上(Shang)面(Mian)的(De)问(Wen)题(Ti)就(Jiu)不(Bu)是(Shi)问(Wen)题(Ti)了(Liao)。(?)如(Ru)果(Guo)用(Yong)单(Dan)例(Li),(?)就(Jiu)在(Zai)spring的(De)action bean配(Pei)置(Zhi)的(De)时(Shi)候(Hou)设(She)置(Zhi)scope=”(?)prototype”(?)
如(Ru)果(Guo)是(Shi)单(Dan)例(Li)的(De)话(Hua),若(Ruo)出(Chu)现(Xian)两(Liang)个(Ge)用(Yong)户(Hu)都(Du)修(Xiu)改(Gai)一(Yi)个(Ge)对(Dui)象(Xiang)的(De)属(Shu)性(Xing)值(Zhi),则(Ze)会(Hui)因(Yin)为(Wei)用(Yong)户(Hu)修(Xiu)改(Gai)时(Shi)间(Jian)不(Bu)同(Tong),两(Liang)个(Ge)用(Yong)户(Hu)访(Fang)问(Wen)得(De)到(Dao)的(De)属(Shu)性(Xing)不(Bu)一(Yi)样(Yang),操(Cao)作(Zuo)得(De)出(Chu)的(De)结(Jie)果(Guo)不(Bu)一(Yi)样(Yang).
举(Ju)个(Ge)例(Li)子(Zi):有(You)一(Yi)块(Kuai)布(Bu)长(Chang)度(Du)300cm,能(Neng)做(Zuo)一(Yi)件(Jian)上(Shang)衣(Yi)(用(Yong)掉(Diao)100cm)和(He)一(Yi)件(Jian)裤(Ku)子(Zi)(用(Yong)掉(Diao)200cm);甲(Jia)和(He)乙(Yi)同(Tong)时(Shi)访(Fang)问(Wen)得(De)到(Dao)的(De)长(Chang)度(Du)都(Du)是(Shi)300cm,
甲(Jia)想(Xiang)做(Zuo)上(Shang)衣(Yi)和(He)裤(Ku)子(Zi),他(Ta)先(Xian)截(Jie)取(Qu)100cm去(Qu)做(Zuo)上(Shang)衣(Yi),等(Deng)上(Shang)衣(Yi)做(Zuo)完(Wan)再(Zai)去(Qu)做(Zuo)裤(Ku)子(Zi),而(?)乙(Yi)这(Zhe)时(Shi)正(Zheng)好(Hao)也(Ye)拿(Na)100cm去(Qu)做(Zuo)上(Shang)衣(Yi),那(Na)好(Hao),等(Deng)甲(Jia)做(Zuo)完(Wan)上(Shang)衣(Yi)再(Zai)做(Zuo)裤(Ku)子(Zi)的(De)时(Shi)候(Hou)发(Fa)现(Xian)剩(Sheng)下(Xia)的(De)布(Bu)(100cm)已(Yi)经(Jing)不(Bu)够(Gou)做(Zuo)裤(Ku)子(Zi)了(Liao)…(?)..这(Zhe)就(Jiu)是(Shi)影(Ying)响(Xiang)系(Xi)统(Tong)的(De)性(Xing)能(Neng),解(Jie)决(Jue)的(De)办(Ban)法(Fa)就(Jiu)是(Shi)给(Gei)甲(Jia)和(He)乙(Yi)一(Yi)人(Ren)一(Yi)块(Kuai)300cm的(De)布(Bu),就(Jiu)不(Bu)会(Hui)出(Chu)现(Xian)布(Bu)被(Bei)别(Bie)人(Ren)偷(Tou)用(Yong)的(De)事(Shi)情(Qing),也(Ye)是(Shi)就(Jiu)单(Dan)实(Shi)例(Li)和(He)多(Duo)实(Shi)例(Li)的(De)区(Qu)别(Bie)
如(Ru)果(Guo)设(She)置(Zhi)成(Cheng)单(Dan)例(Li),(?)那(Na)么(Me)多(Duo)个(Ge)线(Xian)程(Cheng)会(Hui)共(Gong)享(Xiang)一(Yi)个(Ge)ActionContext和(He)ValueStack,(?)这(Zhe)样(Yang)并(Bing)发(Fa)访(Fang)问(Wen)的(De)时(Shi)候(Hou)就(Jiu)会(Hui)出(Chu)现(Xian)问(Wen)题(Ti)了(Liao)
struts 2的(De)Action是(Shi)多(Duo)实(Shi)例(Li)的(De)并(Bing)非(Fei)单(Dan)例(Li),(?)也(Ye)就(Jiu)是(Shi)每(Mei)次(Ci)请(Qing)求(Qiu)产(Chan)生(Sheng)一(Yi)个(Ge)Action的(De)对(Dui)象(Xiang)。(?)原(Yuan)因(Yin)是(Shi):(?)struts 2的(De)Action中(Zhong)包(Bao)含(Han)数(Shu)据(Ju),(?)例(Li)如(Ru)你(Ni)在(Zai)页(Ye)面(Mian)填(Tian)写(Xie)的(De)数(Shu)据(Ju)就(Jiu)会(Hui)包(Bao)含(Han)在(Zai)Action的(De)成(Cheng)员(Yuan)变(Bian)量(Liang)里(Li)面(Mian)。(?)如(Ru)果(Guo)Action是(Shi)单(Dan)实(Shi)例(Li)的(De)话(Hua),(?)这(Zhe)些(Xie)数(Shu)据(Ju)在(Zai)多(Duo)线(Xian)程(Cheng)的(De)环(Huan)境(Jing)下(Xia)就(Jiu)会(Hui)相(Xiang)互(Hu)影(Ying)响(Xiang),(?)例(Li)如(Ru)造(Zao)成(Cheng)别(Bie)人(Ren)填(Tian)写(Xie)的(De)数(Shu)据(Ju)被(Bei)你(Ni)看(Kan)到(Dao)了(Liao)。(?)所(Suo)以(Yi)Struts2的(De)Action是(Shi)多(Duo)例(Li)模(Mo)式(Shi)的(De)。(?)
问(Wen)题(Ti)出(Chu)现(Xian)了(Liao),(?)可(Ke)以(Yi)让(Rang)Struts2的(De)action变(Bian)成(Cheng)单(Dan)例(Li)模(Mo)式(Shi)么(Me)?(?)
Struts2中(Zhong),(?)可(Ke)以(Yi)使(Shi)用(Yong)注(Zhu)解(Jie)开(Kai)发(Fa),在(Zai)Action上(Shang)@Scope(“(?)prototype”(?)) 指(Zhi)定(Ding)为(Wei)多(Duo)例(Li) , 默(Mo)认(Ren)为(Wei)singleton()单(Dan)例(Li))
基(Ji)本(Ben)上(Shang)action的(De)scope需(Xu)要(Yao)是(Shi)prototype,(?)就(Jiu)是(Shi)每(Mei)次(Ci)请(Qing)求(Qiu)都(Du)建(Jian)立(Li)新(Xin)的(De)线(Xian)程(Cheng)
不(Bu)写(Xie)的(De)话(Hua),(?)默(Mo)认(Ren)是(Shi)singleton了(Liao)
答(Da):(?)单(Dan)例(Li)模(Mo)式(Shi)主(Zhu)要(Yao)作(Zuo)用(Yong)是(Shi)保(Bao)证(Zheng)在(Zai)Java应(Ying)用(Yong)程(Cheng)序(Xu)中(Zhong),(?)一(Yi)个(Ge)类(Lei)只(Zhi)有(You)一(Yi)个(Ge)实(Shi)例(Li)存(Cun)在(Zai)。(?)下(Xia)面(Mian)给(Gei)出(Chu)两(Liang)种(Zhong)不(Bu)同(Tong)形(Xing)式(Shi)的(De)单(Dan)例(Li):(?)
第(Di)一(Yi)种(Zhong)形(Xing)式(Shi):(?)饿(E)汉(Han)式(Shi)单(Dan)例(Li)
package com.bjsxt; public class Singleton { private Singleton(){} private static Singleton instance = new Singleton(); public static Singleton getInstance(){ return instance; } }
第(Di)二(?)种(Zhong)形(Xing)式(Shi):(?)懒(Lan)汉(Han)式(Shi)单(Dan)例(Li)
package com.bjsxt; public class Singleton { private static Singleton instance = null; private Singleton() {} public static synchronized Singleton getInstance(){ if (instance==null) instance=(?)newSingleton(); return instance; } }
单(Dan)例(Li)的(De)特(Te)点(Dian):(?)外(Wai)界(Jie)无(Wu)法(Fa)通(Tong)过(Guo)构(Gou)造(Zao)器(Qi)来(Lai)创(Chuang)建(Jian)对(Dui)象(Xiang),(?)该(Gai)类(Lei)必(Bi)须(Xu)提(Ti)供(Gong)一(Yi)个(Ge)静(Jing)态(Tai)方(Fang)法(Fa)向(Xiang)外(Wai)界(Jie)提(Ti)供(Gong)该(Gai)类(Lei)的(De)唯(Wei)一(Yi)实(Shi)例(Li)。(?)
【(?)补(Bu)充(Chong)】(?)用(Yong)Java进(Jin)行(Xing)服(Fu)务(Wu)器(Qi)端(Duan)编(Bian)程(Cheng)时(Shi),(?)使(Shi)用(Yong)单(Dan)例(Li)模(Mo)式(Shi)的(De)机(Ji)会(Hui)还(Huan)是(Shi)很(Hen)多(Duo)的(De),(?)服(Fu)务(Wu)器(Qi)上(Shang)的(De)资(Zi)源(Yuan)都(Du)是(Shi)很(Hen)宝(Bao)贵(Gui)的(De),(?)对(Dui)于(Yu)那(Na)些(Xie)无(Wu)状(Zhuang)态(Tai)的(De)对(Dui)象(Xiang)其(Qi)实(Shi)都(Du)可(Ke)以(Yi)单(Dan)例(Li)化(Hua)或(Huo)者(Zhe)静(Jing)态(Tai)化(Hua)((?)在(Zai)内(Nei)存(Cun)中(Zhong)仅(Jin)有(You)唯(Wei)一(Yi)拷(Kao)贝(Bei))(?),(?)如(Ru)果(Guo)使(Shi)用(Yong)了(Liao)spring这(Zhe)样(Yang)的(De)框(Kuang)架(Jia)来(Lai)进(Jin)行(Xing)对(Dui)象(Xiang)托(Tuo)管(Guan),(?)Spring的(De)IoC容(Rong)器(Qi)在(Zai)默(Mo)认(Ren)情(Qing)况(Kuang)下(Xia)对(Dui)所(Suo)有(You)托(Tuo)管(Guan)对(Dui)象(Xiang)都(Du)是(Shi)进(Jin)行(Xing)了(Liao)单(Dan)例(Li)化(Hua)处(Chu)理(Li)的(De)。(?)
答(Da):(?)在(Zai)GoF的(De)《(?)Design Patterns: Elements of Reusable Object-Oriented Software》(?)中(Zhong)给(Gei)出(Chu)了(Liao)三(San)类(Lei)((?)创(Chuang)建(Jian)型(Xing)[对(Dui)类(Lei)的(De)实(Shi)例(Li)化(Hua)过(Guo)程(Cheng)的(De)抽(Chou)象(Xiang)化(Hua)]、(?)结(Jie)构(Gou)型(Xing)[描(Miao)述(Shu)如(Ru)何(He)将(Jiang)类(Lei)或(Huo)对(Dui)象(Xiang)结(Jie)合(He)在(Zai)一(Yi)起(Qi)形(Xing)成(Cheng)更(Geng)大(Da)的(De)结(Jie)构(Gou)]、(?)行(Xing)为(Wei)型(Xing)[对(Dui)在(Zai)不(Bu)同(Tong)的(De)对(Dui)象(Xiang)之(Zhi)间(Jian)划(Hua)分(Fen)责(Ze)任(Ren)和(He)算(Suan)法(Fa)的(De)抽(Chou)象(Xiang)化(Hua)])(?)共(Gong)23种(Zhong)设(She)计(Ji)模(Mo)式(Shi),(?)包(Bao)括(Kuo):(?)Abstract Factory((?)抽(Chou)象(Xiang)工(Gong)厂(Chang)模(Mo)式(Shi))(?),(?)Builder((?)建(Jian)造(Zao)者(Zhe)模(Mo)式(Shi))(?),(?)Factory Method((?)工(Gong)厂(Chang)方(Fang)法(Fa)模(Mo)式(Shi))(?),(?)Prototype((?)原(Yuan)始(Shi)模(Mo)型(Xing)模(Mo)式(Shi))(?),(?)Singleton((?)单(Dan)例(Li)模(Mo)式(Shi))(?);(?)Facade((?)门(Men)面(Mian)模(Mo)式(Shi))(?),(?)Adapter((?)适(Shi)配(Pei)器(Qi)模(Mo)式(Shi))(?),(?)Bridge((?)桥(Qiao)梁(Liang)模(Mo)式(Shi))(?),(?)Composite((?)合(He)成(Cheng)模(Mo)式(Shi))(?),(?)Decorator((?)装(Zhuang)饰(Shi)模(Mo)式(Shi))(?),(?)Flyweight((?)享(Xiang)元(Yuan)模(Mo)式(Shi))(?),(?)Proxy((?)代(Dai)理(Li)模(Mo)式(Shi))(?);(?)Command((?)命(Ming)令(Ling)模(Mo)式(Shi))(?),(?)Interpreter((?)解(Jie)释(Shi)器(Qi)模(Mo)式(Shi))(?),(?)Visitor((?)访(Fang)问(Wen)者(Zhe)模(Mo)式(Shi))(?),(?)Iterator((?)迭(Die)代(Dai)子(Zi)模(Mo)式(Shi))(?),(?)Mediator((?)调(Diao)停(Ting)者(Zhe)模(Mo)式(Shi))(?),(?)Memento((?)备(Bei)忘(Wang)录(Lu)模(Mo)式(Shi))(?),(?)Observer((?)观(Guan)察(Cha)者(Zhe)模(Mo)式(Shi))(?),(?)State((?)状(Zhuang)态(Tai)模(Mo)式(Shi))(?),(?)Strategy((?)策(Ce)略(Lue)模(Mo)式(Shi))(?),(?)Template Method((?)模(Mo)板(Ban)方(Fang)法(Fa)模(Mo)式(Shi))(?),(?) Chain Of Responsibility((?)责(Ze)任(Ren)链(Lian)模(Mo)式(Shi))(?)。(?)
所(Suo)谓(Wei)设(She)计(Ji)模(Mo)式(Shi),(?)就(Jiu)是(Shi)一(Yi)套(Tao)被(Bei)反(Fan)复(Fu)使(Shi)用(Yong)的(De)代(Dai)码(Ma)设(She)计(Ji)经(Jing)验(Yan)的(De)总(Zong)结(Jie)((?)情(Qing)境(Jing)中(Zhong)一(Yi)个(Ge)问(Wen)题(Ti)经(Jing)过(Guo)证(Zheng)实(Shi)的(De)一(Yi)个(Ge)解(Jie)决(Jue)方(Fang)案(An))(?)。(?)使(Shi)用(Yong)设(She)计(Ji)模(Mo)式(Shi)是(Shi)为(Wei)了(Liao)可(Ke)重(Zhong)用(Yong)代(Dai)码(Ma)、(?)让(Rang)代(Dai)码(Ma)更(Geng)容(Rong)易(Yi)被(Bei)他(Ta)人(Ren)理(Li)解(Jie)、(?)保(Bao)证(Zheng)代(Dai)码(Ma)可(Ke)靠(Kao)性(Xing)。(?)设(She)计(Ji)模(Mo)式(Shi)使(Shi)人(Ren)们(Men)可(Ke)以(Yi)更(Geng)加(Jia)简(Jian)单(Dan)方(Fang)便(Bian)的(De)复(Fu)用(Yong)成(Cheng)功(Gong)的(De)设(She)计(Ji)和(He)体(Ti)系(Xi)结(Jie)构(Gou)。(?)将(Jiang)已(Yi)证(Zheng)实(Shi)的(De)技(Ji)术(Shu)表(Biao)述(Shu)成(Cheng)设(She)计(Ji)模(Mo)式(Shi)也(Ye)会(Hui)使(Shi)新(Xin)系(Xi)统(Tong)开(Kai)发(Fa)者(Zhe)更(Geng)加(Jia)容(Rong)易(Yi)理(Li)解(Jie)其(Qi)设(She)计(Ji)思(Si)路(Lu)。(?)
【(?)补(Bu)充(Chong)】(?)设(She)计(Ji)模(Mo)式(Shi)并(Bing)不(Bu)是(Shi)像(Xiang)某(Mou)些(Xie)地(Di)方(Fang)吹(Chui)嘘(Xu)的(De)那(Na)样(Yang)是(Shi)遥(Yao)不(Bu)可(Ke)及(Ji)的(De)编(Bian)程(Cheng)理(Li)念(Nian),(?)说(Shuo)白(Bai)了(Liao)设(She)计(Ji)模(Mo)式(Shi)就(Jiu)是(Shi)对(Dui)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)编(Bian)程(Cheng)原(Yuan)则(Ze)的(De)实(Shi)践(Jian),(?)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)编(Bian)程(Cheng)原(Yuan)则(Ze)包(Bao)括(Kuo):(?)
单(Dan)一(Yi)职(Zhi)责(Ze)原(Yuan)则(Ze):(?)一(Yi)个(Ge)类(Lei)只(Zhi)做(Zuo)它(Ta)该(Gai)做(Zuo)的(De)事(Shi)情(Qing)。(?)((?)单(Dan)一(Yi)职(Zhi)责(Ze)原(Yuan)则(Ze)想(Xiang)表(Biao)达(Da)的(De)就(Jiu)是(Shi)“(?)高(Gao)内(Nei)聚(Ju)”(?),(?)写(Xie)代(Dai)码(Ma)最(Zui)终(Zhong)极(Ji)的(De)原(Yuan)则(Ze)只(Zhi)有(You)六(Liu)个(Ge)字(Zi)“(?)高(Gao)内(Nei)聚(Ju)、(?)低(Di)耦(Ou)合(He)”(?),(?)就(Jiu)如(Ru)同(Tong)葵(Kui)花(Hua)宝(Bao)典(Dian)或(Huo)辟(Bi)邪(Xie)剑(Jian)谱(Pu)的(De)中(Zhong)心(Xin)思(Si)想(Xiang)就(Jiu)八(Ba)个(Ge)字(Zi)“(?)欲(Yu)练(Lian)此(Ci)功(Gong)必(Bi)先(Xian)自(Zi)宫(Gong)”(?),(?)所(Suo)谓(Wei)的(De)高(Gao)内(Nei)聚(Ju)就(Jiu)是(Shi)一(Yi)个(Ge)代(Dai)码(Ma)模(Mo)块(Kuai)只(Zhi)完(Wan)成(Cheng)一(Yi)项(Xiang)功(Gong)能(Neng),(?)在(Zai)面(Mian)向(Xiang)对(Dui)象(Xiang)中(Zhong),(?)如(Ru)果(Guo)只(Zhi)让(Rang)一(Yi)个(Ge)类(Lei)完(Wan)成(Cheng)它(Ta)该(Gai)做(Zuo)的(De)事(Shi),(?)而(?)不(Bu)涉(She)及(Ji)与(Yu)它(Ta)无(Wu)关(Guan)的(De)领(Ling)域(Yu)就(Jiu)是(Shi)践(Jian)行(Xing)了(Liao)高(Gao)内(Nei)聚(Ju)的(De)原(Yuan)则(Ze),(?)这(Zhe)个(Ge)类(Lei)就(Jiu)只(Zhi)有(You)单(Dan)一(Yi)职(Zhi)责(Ze)。(?)我(Wo)们(Men)都(Du)知(Zhi)道(Dao)一(Yi)句(Ju)话(Hua)叫(Jiao)“(?)因(Yin)为(Wei)专(Zhuan)注(Zhu),(?)所(Suo)以(Yi)专(Zhuan)业(Ye)”(?),(?)一(Yi)个(Ge)对(Dui)象(Xiang)如(Ru)果(Guo)承(Cheng)担(Dan)太(Tai)多(Duo)的(De)职(Zhi)责(Ze),(?)那(Na)么(Me)注(Zhu)定(Ding)它(Ta)什(Shi)么(Me)都(Du)做(Zuo)不(Bu)好(Hao)。(?)这(Zhe)个(Ge)世(Shi)界(Jie)上(Shang)任(Ren)何(He)好(Hao)的(De)东(Dong)西(Xi)都(Du)有(You)两(Liang)个(Ge)特(Te)征(Zheng),(?)一(Yi)个(Ge)是(Shi)功(Gong)能(Neng)单(Dan)一(Yi),(?)好(Hao)的(De)相(Xiang)机(Ji)绝(Jue)对(Dui)不(Bu)是(Shi)电(Dian)视(Shi)购(Gou)物(Wu)里(Li)面(Mian)卖(Mai)的(De)那(Na)种(Zhong)一(Yi)个(Ge)机(Ji)器(Qi)有(You)一(Yi)百(Bai)多(Duo)种(Zhong)功(Gong)能(Neng)的(De),(?)它(Ta)基(Ji)本(Ben)上(Shang)只(Zhi)能(Neng)照(Zhao)相(Xiang);(?)另(Ling)一(Yi)个(Ge)是(Shi)模(Mo)块(Kuai)化(Hua),(?)好(Hao)的(De)自(Zi)行(Xing)车(Che)是(Shi)组(Zu)装(Zhuang)车(Che),(?)从(Cong)减(Jian)震(Zhen)叉(Cha)、(?)刹(Sha)车(Che)到(Dao)变(Bian)速(Su)器(Qi),(?)所(Suo)有(You)的(De)部(Bu)件(Jian)都(Du)是(Shi)可(Ke)以(Yi)拆(Chai)卸(Xie)和(He)重(Zhong)新(Xin)组(Zu)装(Zhuang)的(De),(?)好(Hao)的(De)乒(Ping)乓(Pang)球(Qiu)拍(Pai)也(Ye)不(Bu)是(Shi)成(Cheng)品(Pin)拍(Pai),(?)一(Yi)定(Ding)是(Shi)底(Di)板(Ban)和(He)胶(Jiao)皮(Pi)可(Ke)以(Yi)拆(Chai)分(Fen)和(He)自(Zi)行(Xing)组(Zu)装(Zhuang)的(De),(?)一(Yi)个(Ge)好(Hao)的(De)软(Ruan)件(Jian)系(Xi)统(Tong),(?)它(Ta)里(Li)面(Mian)的(De)每(Mei)个(Ge)功(Gong)能(Neng)模(Mo)块(Kuai)也(Ye)应(Ying)该(Gai)是(Shi)可(Ke)以(Yi)轻(Qing)易(Yi)的(De)拿(Na)到(Dao)其(Qi)他(Ta)系(Xi)统(Tong)中(Zhong)使(Shi)用(Yong)的(De),(?)这(Zhe)样(Yang)才(Cai)能(Neng)实(Shi)现(Xian)软(Ruan)件(Jian)复(Fu)用(Yong)的(De)目(Mu)标(Biao)。(?))(?)
开(Kai)闭(Bi)原(Yuan)则(Ze):(?)软(Ruan)件(Jian)实(Shi)体(Ti)应(Ying)当(Dang)对(Dui)扩(Kuo)展(Zhan)开(Kai)放(Fang),(?)对(Dui)修(Xiu)改(Gai)关(Guan)闭(Bi)。(?)((?)在(Zai)理(Li)想(Xiang)的(De)状(Zhuang)态(Tai)下(Xia),(?)当(Dang)我(Wo)们(Men)需(Xu)要(Yao)为(Wei)一(Yi)个(Ge)软(Ruan)件(Jian)系(Xi)统(Tong)增(Zeng)加(Jia)新(Xin)功(Gong)能(Neng)时(Shi),(?)只(Zhi)需(Xu)要(Yao)从(Cong)原(Yuan)来(Lai)的(De)系(Xi)统(Tong)派(Pai)生(Sheng)出(Chu)一(Yi)些(Xie)新(Xin)类(Lei)就(Jiu)可(Ke)以(Yi),(?)不(Bu)需(Xu)要(Yao)修(Xiu)改(Gai)原(Yuan)来(Lai)的(De)任(Ren)何(He)一(Yi)行(Xing)代(Dai)码(Ma)。(?)要(Yao)做(Zuo)到(Dao)开(Kai)闭(Bi)有(You)两(Liang)个(Ge)要(Yao)点(Dian):(?)①(?)抽(Chou)象(Xiang)是(Shi)关(Guan)键(Jian),(?)一(Yi)个(Ge)系(Xi)统(Tong)中(Zhong)如(Ru)果(Guo)没(Mei)有(You)抽(Chou)象(Xiang)类(Lei)或(Huo)接(Jie)口(Kou)系(Xi)统(Tong)就(Jiu)没(Mei)有(You)扩(Kuo)展(Zhan)点(Dian);(?)②(?)封(Feng)装(Zhuang)可(Ke)变(Bian)性(Xing),(?)将(Jiang)系(Xi)统(Tong)中(Zhong)的(De)各(Ge)种(Zhong)可(Ke)变(Bian)因(Yin)素(Su)封(Feng)装(Zhuang)到(Dao)一(Yi)个(Ge)继(Ji)承(Cheng)结(Jie)构(Gou)中(Zhong),(?)如(Ru)果(Guo)多(Duo)个(Ge)可(Ke)变(Bian)因(Yin)素(Su)混(Hun)杂(Za)在(Zai)一(Yi)起(Qi),(?)系(Xi)统(Tong)将(Jiang)变(Bian)得(De)复(Fu)杂(Za)而(?)换(Huan)乱(Luan),(?)如(Ru)果(Guo)不(Bu)清(Qing)楚(Chu)如(Ru)何(He)封(Feng)装(Zhuang)可(Ke)变(Bian)性(Xing),(?)可(Ke)以(Yi)参(Can)考(Kao)《(?)设(She)计(Ji)模(Mo)式(Shi)精(Jing)解(Jie)》(?)一(Yi)书(Shu)中(Zhong)对(Dui)桥(Qiao)梁(Liang)模(Mo)式(Shi)的(De)讲(Jiang)解(Jie)的(De)章(Zhang)节(Jie)。(?))(?)
依(Yi)赖(Lai)倒(Dao)转(Zhuan)原(Yuan)则(Ze):(?)面(Mian)向(Xiang)接(Jie)口(Kou)编(Bian)程(Cheng)。(?)((?)该(Gai)原(Yuan)则(Ze)说(Shuo)得(De)直(Zhi)白(Bai)和(He)具(Ju)体(Ti)一(Yi)些(Xie)就(Jiu)是(Shi)声(Sheng)明(Ming)方(Fang)法(Fa)的(De)参(Can)数(Shu)类(Lei)型(Xing)、(?)方(Fang)法(Fa)的(De)返(Fan)回(Hui)类(Lei)型(Xing)、(?)变(Bian)量(Liang)的(De)引(Yin)用(Yong)类(Lei)型(Xing)时(Shi),(?)尽(Jin)可(Ke)能(Neng)使(Shi)用(Yong)抽(Chou)象(Xiang)类(Lei)型(Xing)而(?)不(Bu)用(Yong)具(Ju)体(Ti)类(Lei)型(Xing),(?)因(Yin)为(Wei)抽(Chou)象(Xiang)类(Lei)型(Xing)可(Ke)以(Yi)被(Bei)它(Ta)的(De)任(Ren)何(He)一(Yi)个(Ge)子(Zi)类(Lei)型(Xing)所(Suo)替(Ti)代(Dai),(?)请(Qing)参(Can)考(Kao)下(Xia)面(Mian)的(De)里(Li)氏(Shi)替(Ti)换(Huan)原(Yuan)则(Ze)。(?))(?)
里(Li)氏(Shi)替(Ti)换(Huan)原(Yuan)则(Ze):(?)任(Ren)何(He)时(Shi)候(Hou)都(Du)可(Ke)以(Yi)用(Yong)子(Zi)类(Lei)型(Xing)替(Ti)换(Huan)掉(Diao)父(Fu)类(Lei)型(Xing)。(?)((?)关(Guan)于(Yu)里(Li)氏(Shi)替(Ti)换(Huan)原(Yuan)则(Ze)的(De)描(Miao)述(Shu),(?)Barbara Liskov女(Nu)士(Shi)的(De)描(Miao)述(Shu)比(Bi)这(Zhe)个(Ge)要(Yao)复(Fu)杂(Za)得(De)多(Duo),(?)但(Dan)简(Jian)单(Dan)的(De)说(Shuo)就(Jiu)是(Shi)能(Neng)用(Yong)父(Fu)类(Lei)型(Xing)的(De)地(Di)方(Fang)就(Jiu)一(Yi)定(Ding)能(Neng)使(Shi)用(Yong)子(Zi)类(Lei)型(Xing)。(?)里(Li)氏(Shi)替(Ti)换(Huan)原(Yuan)则(Ze)可(Ke)以(Yi)检(Jian)查(Cha)继(Ji)承(Cheng)关(Guan)系(Xi)是(Shi)否(Fou)合(He)理(Li),(?)如(Ru)果(Guo)一(Yi)个(Ge)继(Ji)承(Cheng)关(Guan)系(Xi)违(Wei)背(Bei)了(Liao)里(Li)氏(Shi)替(Ti)换(Huan)原(Yuan)则(Ze),(?)那(Na)么(Me)这(Zhe)个(Ge)继(Ji)承(Cheng)关(Guan)系(Xi)一(Yi)定(Ding)是(Shi)错(Cuo)误(Wu)的(De),(?)需(Xu)要(Yao)对(Dui)代(Dai)码(Ma)进(Jin)行(Xing)重(Zhong)构(Gou)。(?)例(Li)如(Ru)让(Rang)猫(Mao)继(Ji)承(Cheng)狗(Gou),(?)或(Huo)者(Zhe)狗(Gou)继(Ji)承(Cheng)猫(Mao),(?)又(You)或(Huo)者(Zhe)让(Rang)正(Zheng)方(Fang)形(Xing)继(Ji)承(Cheng)长(Chang)方(Fang)形(Xing)都(Du)是(Shi)错(Cuo)误(Wu)的(De)继(Ji)承(Cheng)关(Guan)系(Xi),(?)因(Yin)为(Wei)你(Ni)很(Hen)容(Rong)易(Yi)找(Zhao)到(Dao)违(Wei)反(Fan)里(Li)氏(Shi)替(Ti)换(Huan)原(Yuan)则(Ze)的(De)场(Chang)景(Jing)。(?)需(Xu)要(Yao)注(Zhu)意(Yi)的(De)是(Shi):(?)子(Zi)类(Lei)一(Yi)定(Ding)是(Shi)增(Zeng)加(Jia)父(Fu)类(Lei)的(De)能(Neng)力(Li)而(?)不(Bu)是(Shi)减(Jian)少(Shao)父(Fu)类(Lei)的(De)能(Neng)力(Li),(?)因(Yin)为(Wei)子(Zi)类(Lei)比(Bi)父(Fu)类(Lei)的(De)能(Neng)力(Li)更(Geng)多(Duo),(?)把(Ba)能(Neng)力(Li)多(Duo)的(De)对(Dui)象(Xiang)当(Dang)成(Cheng)能(Neng)力(Li)少(Shao)的(De)对(Dui)象(Xiang)来(Lai)用(Yong)当(Dang)然(Ran)没(Mei)有(You)任(Ren)何(He)问(Wen)题(Ti)。(?))(?)
接(Jie)口(Kou)隔(Ge)离(Li)原(Yuan)则(Ze):(?)接(Jie)口(Kou)要(Yao)小(Xiao)而(?)专(Zhuan),(?)绝(Jue)不(Bu)能(Neng)大(Da)而(?)全(Quan)。(?)((?)臃(Yong)肿(Zhong)的(De)接(Jie)口(Kou)是(Shi)对(Dui)接(Jie)口(Kou)的(De)污(Wu)染(Ran),(?)既(Ji)然(Ran)接(Jie)口(Kou)表(Biao)示(Shi)能(Neng)力(Li),(?)那(Na)么(Me)一(Yi)个(Ge)接(Jie)口(Kou)只(Zhi)应(Ying)该(Gai)描(Miao)述(Shu)一(Yi)种(Zhong)能(Neng)力(Li),(?)接(Jie)口(Kou)也(Ye)应(Ying)该(Gai)是(Shi)高(Gao)度(Du)内(Nei)聚(Ju)的(De)。(?)例(Li)如(Ru),(?)琴(Qin)棋(Qi)书(Shu)画(Hua)就(Jiu)应(Ying)该(Gai)分(Fen)别(Bie)设(She)计(Ji)为(Wei)四(Si)个(Ge)接(Jie)口(Kou),(?)而(?)不(Bu)应(Ying)设(She)计(Ji)成(Cheng)一(Yi)个(Ge)接(Jie)口(Kou)中(Zhong)的(De)四(Si)个(Ge)方(Fang)法(Fa),(?)因(Yin)为(Wei)如(Ru)果(Guo)设(She)计(Ji)成(Cheng)一(Yi)个(Ge)接(Jie)口(Kou)中(Zhong)的(De)四(Si)个(Ge)方(Fang)法(Fa),(?)那(Na)么(Me)这(Zhe)个(Ge)接(Jie)口(Kou)很(Hen)难(Nan)用(Yong),(?)毕(Bi)竟(Jing)琴(Qin)棋(Qi)书(Shu)画(Hua)四(Si)样(Yang)都(Du)精(Jing)通(Tong)的(De)人(Ren)还(Huan)是(Shi)少(Shao)数(Shu),(?)而(?)如(Ru)果(Guo)设(She)计(Ji)成(Cheng)四(Si)个(Ge)接(Jie)口(Kou),(?)会(Hui)几(Ji)项(Xiang)就(Jiu)实(Shi)现(Xian)几(Ji)个(Ge)接(Jie)口(Kou),(?)这(Zhe)样(Yang)的(De)话(Hua)每(Mei)个(Ge)接(Jie)口(Kou)被(Bei)复(Fu)用(Yong)的(De)可(Ke)能(Neng)性(Xing)是(Shi)很(Hen)高(Gao)的(De)。(?)Java中(Zhong)的(De)接(Jie)口(Kou)代(Dai)表(Biao)能(Neng)力(Li)、(?)代(Dai)表(Biao)约(Yue)定(Ding)、(?)代(Dai)表(Biao)角(Jiao)色(Se),(?)能(Neng)否(Fou)正(Zheng)确(Que)的(De)使(Shi)用(Yong)接(Jie)口(Kou)一(Yi)定(Ding)是(Shi)编(Bian)程(Cheng)水(Shui)平(Ping)高(Gao)低(Di)的(De)重(Zhong)要(Yao)标(Biao)识(Shi)。(?))(?)
合(He)成(Cheng)聚(Ju)合(He)复(Fu)用(Yong)原(Yuan)则(Ze):(?)优(You)先(Xian)使(Shi)用(Yong)聚(Ju)合(He)或(Huo)合(He)成(Cheng)关(Guan)系(Xi)复(Fu)用(Yong)代(Dai)码(Ma)。(?)((?)通(Tong)过(Guo)继(Ji)承(Cheng)来(Lai)复(Fu)用(Yong)代(Dai)码(Ma)是(Shi)面(Mian)向(Xiang)对(Dui)象(Xiang)程(Cheng)序(Xu)设(She)计(Ji)中(Zhong)被(Bei)滥(Lan)用(Yong)得(De)最(Zui)多(Duo)的(De)东(Dong)西(Xi),(?)因(Yin)为(Wei)所(Suo)有(You)的(De)教(Jiao)科(Ke)书(Shu)都(Du)无(Wu)一(Yi)例(Li)外(Wai)的(De)对(Dui)继(Ji)承(Cheng)进(Jin)行(Xing)了(Liao)鼓(Gu)吹(Chui)从(Cong)而(?)误(Wu)导(Dao)了(Liao)初(Chu)学(Xue)者(Zhe),(?)类(Lei)与(Yu)类(Lei)之(Zhi)间(Jian)简(Jian)单(Dan)的(De)说(Shuo)有(You)三(San)种(Zhong)关(Guan)系(Xi),(?)IS-A关(Guan)系(Xi)、(?)HAS-A关(Guan)系(Xi)、(?)USE-A关(Guan)系(Xi),(?)分(Fen)别(Bie)代(Dai)表(Biao)继(Ji)承(Cheng)、(?)关(Guan)联(Lian)和(He)依(Yi)赖(Lai)。(?)其(Qi)中(Zhong),(?)关(Guan)联(Lian)关(Guan)系(Xi)根(Gen)据(Ju)其(Qi)关(Guan)联(Lian)的(De)强(Qiang)度(Du)又(You)可(Ke)以(Yi)进(Jin)一(Yi)步(Bu)划(Hua)分(Fen)为(Wei)关(Guan)联(Lian)、(?)聚(Ju)合(He)和(He)合(He)成(Cheng),(?)但(Dan)说(Shuo)白(Bai)了(Liao)都(Du)是(Shi)HAS-A关(Guan)系(Xi),(?)合(He)成(Cheng)聚(Ju)合(He)复(Fu)用(Yong)原(Yuan)则(Ze)想(Xiang)表(Biao)达(Da)的(De)是(Shi)优(You)先(Xian)考(Kao)虑(Lu)HAS-A关(Guan)系(Xi)而(?)不(Bu)是(Shi)IS-A关(Guan)系(Xi)复(Fu)用(Yong)代(Dai)码(Ma),(?)原(Yuan)因(Yin)嘛(Ma)可(Ke)以(Yi)自(Zi)己(Ji)从(Cong)百(Bai)度(Du)上(Shang)找(Zhao)到(Dao)一(Yi)万(Wan)个(Ge)理(Li)由(You),(?)需(Xu)要(Yao)说(Shuo)明(Ming)的(De)是(Shi),(?)即(Ji)使(Shi)在(Zai)Java的(De)API中(Zhong)也(Ye)有(You)不(Bu)少(Shao)滥(Lan)用(Yong)继(Ji)承(Cheng)的(De)例(Li)子(Zi),(?)例(Li)如(Ru)Properties类(Lei)继(Ji)承(Cheng)了(Liao)Hashtable类(Lei),(?)Stack类(Lei)继(Ji)承(Cheng)了(Liao)Vector类(Lei),(?)这(Zhe)些(Xie)继(Ji)承(Cheng)明(Ming)显(Xian)就(Jiu)是(Shi)错(Cuo)误(Wu)的(De),(?)更(Geng)好(Hao)的(De)做(Zuo)法(Fa)是(Shi)在(Zai)Properties类(Lei)中(Zhong)放(Fang)置(Zhi)一(Yi)个(Ge)Hashtable类(Lei)型(Xing)的(De)成(Cheng)员(Yuan)并(Bing)且(Qie)将(Jiang)其(Qi)键(Jian)和(He)值(Zhi)都(Du)设(She)置(Zhi)为(Wei)字(Zi)符(Fu)串(Chuan)来(Lai)存(Cun)储(Chu)数(Shu)据(Ju),(?)而(?)Stack类(Lei)的(De)设(She)计(Ji)也(Ye)应(Ying)该(Gai)是(Shi)在(Zai)Stack类(Lei)中(Zhong)放(Fang)一(Yi)个(Ge)Vector对(Dui)象(Xiang)来(Lai)存(Cun)储(Chu)数(Shu)据(Ju)。(?)记(Ji)住(Zhu):(?)任(Ren)何(He)时(Shi)候(Hou)都(Du)不(Bu)要(Yao)继(Ji)承(Cheng)工(Gong)具(Ju)类(Lei),(?)工(Gong)具(Ju)是(Shi)可(Ke)以(Yi)拥(Yong)有(You)并(Bing)可(Ke)以(Yi)使(Shi)用(Yong)的(De)((?)HAS/USE)(?),(?)而(?)不(Bu)是(Shi)拿(Na)来(Lai)继(Ji)承(Cheng)的(De)。(?))(?)
迪(Di)米(Mi)特(Te)法(Fa)则(Ze):(?)迪(Di)米(Mi)特(Te)法(Fa)则(Ze)又(You)叫(Jiao)最(Zui)少(Shao)知(Zhi)识(Shi)原(Yuan)则(Ze),(?)一(Yi)个(Ge)对(Dui)象(Xiang)应(Ying)当(Dang)对(Dui)其(Qi)他(Ta)对(Dui)象(Xiang)有(You)尽(Jin)可(Ke)能(Neng)少(Shao)的(De)了(Liao)解(Jie)。(?)((?)迪(Di)米(Mi)特(Te)法(Fa)则(Ze)简(Jian)单(Dan)的(De)说(Shuo)就(Jiu)是(Shi)如(Ru)何(He)做(Zuo)到(Dao)“(?)低(Di)耦(Ou)合(He)”(?),(?)门(Men)面(Mian)模(Mo)式(Shi)和(He)调(Diao)停(Ting)者(Zhe)模(Mo)式(Shi)就(Jiu)是(Shi)对(Dui)迪(Di)米(Mi)特(Te)法(Fa)则(Ze)的(De)践(Jian)行(Xing)。(?)对(Dui)于(Yu)门(Men)面(Mian)模(Mo)式(Shi)可(Ke)以(Yi)举(Ju)一(Yi)个(Ge)简(Jian)单(Dan)的(De)例(Li)子(Zi),(?)你(Ni)去(Qu)一(Yi)家(Jia)公(Gong)司(Si)洽(Qia)谈(Tan)业(Ye)务(Wu),(?)你(Ni)不(Bu)需(Xu)要(Yao)了(Liao)解(Jie)这(Zhe)个(Ge)公(Gong)司(Si)内(Nei)部(Bu)是(Shi)如(Ru)何(He)运(Yun)作(Zuo)的(De),(?)你(Ni)甚(Shen)至(Zhi)可(Ke)以(Yi)对(Dui)这(Zhe)个(Ge)公(Gong)司(Si)一(Yi)无(Wu)所(Suo)知(Zhi),(?)去(Qu)的(De)时(Shi)候(Hou)只(Zhi)需(Xu)要(Yao)找(Zhao)到(Dao)公(Gong)司(Si)入(Ru)口(Kou)处(Chu)的(De)前(Qian)台(Tai)美(Mei)女(Nu),(?)告(Gao)诉(Su)她(Ta)们(Men)你(Ni)要(Yao)做(Zuo)什(Shi)么(Me),(?)她(Ta)们(Men)会(Hui)找(Zhao)到(Dao)合(He)适(Shi)的(De)人(Ren)跟(Gen)你(Ni)接(Jie)洽(Qia),(?)前(Qian)台(Tai)的(De)美(Mei)女(Nu)就(Jiu)是(Shi)公(Gong)司(Si)这(Zhe)个(Ge)系(Xi)统(Tong)的(De)门(Men)面(Mian)。(?)再(Zai)复(Fu)杂(Za)的(De)系(Xi)统(Tong)都(Du)可(Ke)以(Yi)为(Wei)用(Yong)户(Hu)提(Ti)供(Gong)一(Yi)个(Ge)简(Jian)单(Dan)的(De)门(Men)面(Mian),(?)Java Web开(Kai)发(Fa)中(Zhong)作(Zuo)为(Wei)前(Qian)端(Duan)控(Kong)制(Zhi)器(Qi)的(De)Servlet或(Huo)Filter不(Bu)就(Jiu)是(Shi)一(Yi)个(Ge)门(Men)面(Mian)吗(Ma),(?)浏(Liu)览(Lan)器(Qi)对(Dui)服(Fu)务(Wu)器(Qi)的(De)运(Yun)作(Zuo)方(Fang)式(Shi)一(Yi)无(Wu)所(Suo)知(Zhi),(?)但(Dan)是(Shi)通(Tong)过(Guo)前(Qian)端(Duan)控(Kong)制(Zhi)器(Qi)就(Jiu)能(Neng)够(Gou)根(Gen)据(Ju)你(Ni)的(De)请(Qing)求(Qiu)得(De)到(Dao)相(Xiang)应(Ying)的(De)服(Fu)务(Wu)。(?)调(Diao)停(Ting)者(Zhe)模(Mo)式(Shi)也(Ye)可(Ke)以(Yi)举(Ju)一(Yi)个(Ge)简(Jian)单(Dan)的(De)例(Li)子(Zi)来(Lai)说(Shuo)明(Ming),(?)例(Li)如(Ru)一(Yi)台(Tai)计(Ji)算(Suan)机(Ji),(?)CPU、(?)内(Nei)存(Cun)、(?)硬(Ying)盘(Pan)、(?)显(Xian)卡(Ka)、(?)声(Sheng)卡(Ka)各(Ge)种(Zhong)设(She)备(Bei)需(Xu)要(Yao)相(Xiang)互(Hu)配(Pei)合(He)才(Cai)能(Neng)很(Hen)好(Hao)的(De)工(Gong)作(Zuo),(?)但(Dan)是(Shi)如(Ru)果(Guo)这(Zhe)些(Xie)东(Dong)西(Xi)都(Du)直(Zhi)接(Jie)连(Lian)接(Jie)到(Dao)一(Yi)起(Qi),(?)计(Ji)算(Suan)机(Ji)的(De)布(Bu)线(Xian)将(Jiang)异(Yi)常(Chang)复(Fu)杂(Za),(?)在(Zai)这(Zhe)种(Zhong)情(Qing)况(Kuang)下(Xia),(?)主(Zhu)板(Ban)作(Zuo)为(Wei)一(Yi)个(Ge)调(Diao)停(Ting)者(Zhe)的(De)身(Shen)份(Fen)出(Chu)现(Xian),(?)它(Ta)将(Jiang)各(Ge)个(Ge)设(She)备(Bei)连(Lian)接(Jie)在(Zai)一(Yi)起(Qi)而(?)不(Bu)需(Xu)要(Yao)每(Mei)个(Ge)设(She)备(Bei)之(Zhi)间(Jian)直(Zhi)接(Jie)交(Jiao)换(Huan)数(Shu)据(Ju),(?)这(Zhe)样(Yang)就(Jiu)减(Jian)小(Xiao)了(Liao)系(Xi)统(Tong)的(De)耦(Ou)合(He)度(Du)和(He)复(Fu)杂(Za)度(Du)。(?)迪(Di)米(Mi)特(Te)法(Fa)则(Ze)用(Yong)通(Tong)俗(Su)的(De)话(Hua)来(Lai)将(Jiang)就(Jiu)是(Shi)不(Bu)要(Yao)和(He)陌(Mo)生(Sheng)人(Ren)打(Da)交(Jiao)道(Dao),(?)如(Ru)果(Guo)真(Zhen)的(De)需(Xu)要(Yao),(?)找(Zhao)一(Yi)个(Ge)自(Zi)己(Ji)的(De)朋(Peng)友(You),(?)让(Rang)他(Ta)替(Ti)你(Ni)和(He)陌(Mo)生(Sheng)人(Ren)打(Da)交(Jiao)道(Dao)。(?))(?)


答(Da):(?) 按(An)照(Zhao)分(Fen)层(Ceng)开(Kai)发(Fa)的(De)观(Guan)点(Dian),(?)可(Ke)以(Yi)将(Jiang)应(Ying)用(Yong)划(Hua)分(Fen)为(Wei):(?)表(Biao)示(Shi)层(Ceng)、(?)业(Ye)务(Wu)逻(Luo)辑(Ji)层(Ceng)和(He)持(Chi)久(Jiu)层(Ceng),(?)每(Mei)一(Yi)层(Ceng)都(Du)有(You)属(Shu)于(Yu)自(Zi)己(Ji)类(Lei)别(Bie)的(De)设(She)计(Ji)模(Mo)式(Shi)。(?)
表(Biao)示(Shi)层(Ceng)设(She)计(Ji)模(Mo)式(Shi):(?)
1) Interceptor Filter:(?)拦(Lan)截(Jie)过(Guo)滤(Lu)器(Qi),(?)提(Ti)供(Gong)请(Qing)求(Qiu)预(Yu)处(Chu)理(Li)和(He)后(Hou)处(Chu)理(Li)的(De)方(Fang)案(An),(?)可(Ke)以(Yi)对(Dui)请(Qing)求(Qiu)和(He)响(Xiang)应(Ying)进(Jin)行(Xing)过(Guo)滤(Lu)。(?)/p>
2) Front Controller:(?)通(Tong)过(Guo)中(Zhong)央(Yang)控(Kong)制(Zhi)器(Qi)提(Ti)供(Gong)请(Qing)求(Qiu)管(Guan)理(Li)和(He)处(Chu)理(Li),(?)管(Guan)理(Li)内(Nei)容(Rong)读(Du)取(Qu)、(?)安(An)全(Quan)性(Xing)、(?)视(Shi)图(Tu)管(Guan)理(Li)和(He)导(Dao)航(Hang)等(Deng)功(Gong)能(Neng)。(?)Struts 2中(Zhong)的(De)StrutsPrepareAndExecuteFilter、(?)Spring MVC中(Zhong)的(De)DispatcherServlet都(Du)是(Shi)前(Qian)端(Duan)控(Kong)制(Zhi)器(Qi),(?)后(Hou)者(Zhe)如(Ru)下(Xia)图(Tu)所(Suo)示(Shi):(?)

3) View Helper:(?)视(Shi)图(Tu)帮(Bang)助(Zhu)器(Qi),(?)负(Fu)责(Ze)将(Jiang)显(Xian)示(Shi)逻(Luo)辑(Ji)和(He)业(Ye)务(Wu)逻(Luo)辑(Ji)分(Fen)开(Kai)。(?)显(Xian)示(Shi)的(De)部(Bu)分(Fen)放(Fang)在(Zai)视(Shi)图(Tu)组(Zu)件(Jian)中(Zhong),(?)业(Ye)务(Wu)逻(Luo)辑(Ji)代(Dai)码(Ma)放(Fang)在(Zai)帮(Bang)助(Zhu)器(Qi)中(Zhong),(?)典(Dian)型(Xing)的(De)功(Gong)能(Neng)是(Shi)内(Nei)容(Rong)读(Du)取(Qu)、(?)验(Yan)证(Zheng)与(Yu)适(Shi)配(Pei)。(?)
4) Composite View:(?)复(Fu)合(He)视(Shi)图(Tu)。(?)
业(Ye)务(Wu)逻(Luo)辑(Ji)层(Ceng)设(She)计(Ji)模(Mo)式(Shi):(?)
1) Business Delegate:(?)业(Ye)务(Wu)委(Wei)托(Tuo),(?)减(Jian)少(Shao)表(Biao)示(Shi)层(Ceng)和(He)业(Ye)务(Wu)逻(Luo)辑(Ji)层(Ceng)之(Zhi)间(Jian)的(De)耦(Ou)合(He)。(?)
2) Value Object:(?)值(Zhi)对(Dui)象(Xiang),(?)解(Jie)决(Jue)层(Ceng)之(Zhi)间(Jian)交(Jiao)换(Huan)数(Shu)据(Ju)的(De)开(Kai)销(Xiao)问(Wen)题(Ti)。(?)
3) Session Faade:(?)会(Hui)话(Hua)门(Men)面(Mian),(?)隐(Yin)藏(Cang)业(Ye)务(Wu)逻(Luo)辑(Ji)组(Zu)件(Jian)的(De)细(Xi)节(Jie),(?)集(Ji)中(Zhong)工(Gong)作(Zuo)流(Liu)程(Cheng)。(?)
4) Value Object Assembler:(?)灵(Ling)活(Huo)的(De)组(Zu)装(Zhuang)不(Bu)同(Tong)的(De)值(Zhi)对(Dui)象(Xiang)
5) Value List Handler:(?)提(Ti)供(Gong)执(Zhi)行(Xing)查(Cha)询(Xun)和(He)处(Chu)理(Li)结(Jie)果(Guo)的(De)解(Jie)决(Jue)方(Fang)案(An),(?)还(Huan)可(Ke)以(Yi)缓(Huan)存(Cun)查(Cha)询(Xun)结(Jie)果(Guo),(?)从(Cong)而(?)达(Da)到(Dao)提(Ti)升(Sheng)性(Xing)能(Neng)的(De)目(Mu)的(De)。(?)
6) Service Locator:(?)服(Fu)务(Wu)定(Ding)位(Wei)器(Qi),(?)可(Ke)以(Yi)查(Cha)找(Zhao)、(?)创(Chuang)建(Jian)和(He)定(Ding)位(Wei)服(Fu)务(Wu)工(Gong)厂(Chang),(?)封(Feng)装(Zhuang)其(Qi)实(Shi)现(Xian)细(Xi)节(Jie),(?)减(Jian)少(Shao)复(Fu)杂(Za)性(Xing),(?)提(Ti)供(Gong)单(Dan)个(Ge)控(Kong)制(Zhi)点(Dian),(?)通(Tong)过(Guo)缓(Huan)存(Cun)提(Ti)高(Gao)性(Xing)能(Neng)。(?)
持(Chi)久(Jiu)层(Ceng)设(She)计(Ji)模(Mo)式(Shi):(?)
Data Access Object:(?)数(Shu)据(Ju)访(Fang)问(Wen)对(Dui)象(Xiang),(?)以(Yi)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)方(Fang)式(Shi)完(Wan)成(Cheng)对(Dui)数(Shu)据(Ju)的(De)增(Zeng)删(Shan)改(Gai)查(Cha)。(?)
【(?)补(Bu)充(Chong)】(?)如(Ru)果(Guo)想(Xiang)深(Shen)入(Ru)的(De)了(Liao)解(Jie)Java企(Qi)业(Ye)级(Ji)应(Ying)用(Yong)的(De)设(She)计(Ji)模(Mo)式(Shi)和(He)架(Jia)构(Gou)模(Mo)式(Shi),(?)可(Ke)以(Yi)参(Can)考(Kao)这(Zhe)些(Xie)书(Shu)籍(Ji):(?)《(?)Pro Java EE Spring Patterns》(?)、(?)《(?)POJO in Action》(?)、(?)《(?)Patterns of Enterprise Application Architecture》(?)。(?)
答(Da):(?)面(Mian)试(Shi)被(Bei)问(Wen)到(Dao)关(Guan)于(Yu)设(She)计(Ji)模(Mo)式(Shi)的(De)知(Zhi)识(Shi)时(Shi),(?)可(Ke)以(Yi)拣(Jian)最(Zui)常(Chang)用(Yong)的(De)作(Zuo)答(Da),(?)例(Li)如(Ru):(?)
1) 工(Gong)厂(Chang)模(Mo)式(Shi):(?)工(Gong)厂(Chang)类(Lei)可(Ke)以(Yi)根(Gen)据(Ju)条(Tiao)件(Jian)生(Sheng)成(Cheng)不(Bu)同(Tong)的(De)子(Zi)类(Lei)实(Shi)例(Li),(?)这(Zhe)些(Xie)子(Zi)类(Lei)有(You)一(Yi)个(Ge)公(Gong)共(Gong)的(De)抽(Chou)象(Xiang)父(Fu)类(Lei)并(Bing)且(Qie)实(Shi)现(Xian)了(Liao)相(Xiang)同(Tong)的(De)方(Fang)法(Fa),(?)但(Dan)是(Shi)这(Zhe)些(Xie)方(Fang)法(Fa)针(Zhen)对(Dui)不(Bu)同(Tong)的(De)数(Shu)据(Ju)进(Jin)行(Xing)了(Liao)不(Bu)同(Tong)的(De)操(Cao)作(Zuo)((?)多(Duo)态(Tai)方(Fang)法(Fa))(?)。(?)当(Dang)得(De)到(Dao)子(Zi)类(Lei)的(De)实(Shi)例(Li)后(Hou),(?)开(Kai)发(Fa)人(Ren)员(Yuan)可(Ke)以(Yi)调(Diao)用(Yong)基(Ji)类(Lei)中(Zhong)的(De)方(Fang)法(Fa)而(?)不(Bu)必(Bi)考(Kao)虑(Lu)到(Dao)底(Di)返(Fan)回(Hui)的(De)是(Shi)哪(Na)一(Yi)个(Ge)子(Zi)类(Lei)的(De)实(Shi)例(Li)。(?)
2) 代(Dai)理(Li)模(Mo)式(Shi):(?)给(Gei)一(Yi)个(Ge)对(Dui)象(Xiang)提(Ti)供(Gong)一(Yi)个(Ge)代(Dai)理(Li)对(Dui)象(Xiang),(?)并(Bing)由(You)代(Dai)理(Li)对(Dui)象(Xiang)控(Kong)制(Zhi)原(Yuan)对(Dui)象(Xiang)的(De)引(Yin)用(Yong)。(?)实(Shi)际(Ji)开(Kai)发(Fa)中(Zhong),(?)按(An)照(Zhao)使(Shi)用(Yong)目(Mu)的(De)的(De)不(Bu)同(Tong),(?)代(Dai)理(Li)可(Ke)以(Yi)分(Fen)为(Wei):(?)远(Yuan)程(Cheng)代(Dai)理(Li)、(?)虚(Xu)拟(Ni)代(Dai)理(Li)、(?)保(Bao)护(Hu)代(Dai)理(Li)、(?)Cache代(Dai)理(Li)、(?)防(Fang)火(Huo)墙(Qiang)代(Dai)理(Li)、(?)同(Tong)步(Bu)化(Hua)代(Dai)理(Li)、(?)智(Zhi)能(Neng)引(Yin)用(Yong)代(Dai)理(Li)。(?)
3) 适(Shi)配(Pei)器(Qi)模(Mo)式(Shi):(?)把(Ba)一(Yi)个(Ge)类(Lei)的(De)接(Jie)口(Kou)变(Bian)换(Huan)成(Cheng)客(Ke)户(Hu)端(Duan)所(Suo)期(Qi)待(Dai)的(De)另(Ling)一(Yi)种(Zhong)接(Jie)口(Kou),(?)从(Cong)而(?)使(Shi)原(Yuan)本(Ben)因(Yin)接(Jie)口(Kou)不(Bu)匹(Pi)配(Pei)而(?)无(Wu)法(Fa)在(Zai)一(Yi)起(Qi)使(Shi)用(Yong)的(De)类(Lei)能(Neng)够(Gou)一(Yi)起(Qi)工(Gong)作(Zuo)。(?)
4) 模(Mo)板(Ban)方(Fang)法(Fa)模(Mo)式(Shi):(?)提(Ti)供(Gong)一(Yi)个(Ge)抽(Chou)象(Xiang)类(Lei),(?)将(Jiang)部(Bu)分(Fen)逻(Luo)辑(Ji)以(Yi)具(Ju)体(Ti)方(Fang)法(Fa)或(Huo)构(Gou)造(Zao)器(Qi)的(De)形(Xing)式(Shi)实(Shi)现(Xian),(?)然(Ran)后(Hou)声(Sheng)明(Ming)一(Yi)些(Xie)抽(Chou)象(Xiang)方(Fang)法(Fa)来(Lai)迫(Po)使(Shi)子(Zi)类(Lei)实(Shi)现(Xian)剩(Sheng)余(Yu)的(De)逻(Luo)辑(Ji)。(?)不(Bu)同(Tong)的(De)子(Zi)类(Lei)可(Ke)以(Yi)以(Yi)不(Bu)同(Tong)的(De)方(Fang)式(Shi)实(Shi)现(Xian)这(Zhe)些(Xie)抽(Chou)象(Xiang)方(Fang)法(Fa)((?)多(Duo)态(Tai)实(Shi)现(Xian))(?),(?)从(Cong)而(?)实(Shi)现(Xian)不(Bu)同(Tong)的(De)业(Ye)务(Wu)逻(Luo)辑(Ji)。(?)
除(Chu)此(Ci)之(Zhi)外(Wai),(?)还(Huan)可(Ke)以(Yi)讲(Jiang)讲(Jiang)上(Shang)面(Mian)提(Ti)到(Dao)的(De)门(Men)面(Mian)模(Mo)式(Shi)、(?)桥(Qiao)梁(Liang)模(Mo)式(Shi)、(?)单(Dan)例(Li)模(Mo)式(Shi)、(?)装(Zhuang)潢(Huang)模(Mo)式(Shi)((?)Collections工(Gong)具(Ju)类(Lei)里(Li)面(Mian)的(De)synchronizedXXX方(Fang)法(Fa)把(Ba)一(Yi)个(Ge)线(Xian)程(Cheng)不(Bu)安(An)全(Quan)的(De)容(Rong)器(Qi)变(Bian)成(Cheng)线(Xian)程(Cheng)安(An)全(Quan)容(Rong)器(Qi)就(Jiu)是(Shi)对(Dui)装(Zhuang)潢(Huang)模(Mo)式(Shi)的(De)应(Ying)用(Yong),(?)而(?)Java IO里(Li)面(Mian)的(De)过(Guo)滤(Lu)流(Liu)((?)有(You)的(De)翻(Fan)译(Yi)成(Cheng)处(Chu)理(Li)流(Liu))(?)也(Ye)是(Shi)应(Ying)用(Yong)装(Zhuang)潢(Huang)模(Mo)式(Shi)的(De)经(Jing)典(Dian)例(Li)子(Zi))(?)等(Deng),(?)反(Fan)正(Zheng)原(Yuan)则(Ze)就(Jiu)是(Shi)拣(Jian)自(Zi)己(Ji)最(Zui)熟(Shu)悉(Xi)的(De)用(Yong)得(De)最(Zui)多(Duo)的(De)作(Zuo)答(Da),(?)以(Yi)免(Mian)言(Yan)多(Duo)必(Bi)失(Shi)。(?)
设(She)计(Ji)模(Mo)式(Shi)是(Shi)一(Yi)套(Tao)被(Bei)反(Fan)复(Fu)使(Shi)用(Yong)的(De)、(?)多(Duo)数(Shu)人(Ren)知(Zhi)晓(Xiao)、(?)经(Jing)过(Guo)分(Fen)类(Lei)编(Bian)目(Mu)的(De)优(You)秀(Xiu)代(Dai)码(Ma)设(She)计(Ji)经(Jing)验(Yan)的(De)总(Zong)结(Jie)。(?)特(Te)定(Ding)环(Huan)境(Jing)下(Xia)特(Te)定(Ding)问(Wen)题(Ti)的(De)处(Chu)理(Li)方(Fang)法(Fa)。(?)
1)(?)重(Zhong)用(Yong)设(She)计(Ji)和(He)代(Dai)码(Ma) 重(Zhong)用(Yong)设(She)计(Ji)比(Bi)重(Zhong)用(Yong)代(Dai)码(Ma)更(Geng)有(You)意(Yi)义(Yi),(?)自(Zi)动(Dong)带(Dai)来(Lai)代(Dai)码(Ma)重(Zhong)用(Yong)
2)(?)提(Ti)高(Gao)扩(Kuo)展(Zhan)性(Xing) 大(Da)量(Liang)使(Shi)用(Yong)面(Mian)向(Xiang)接(Jie)口(Kou)编(Bian)程(Cheng),(?)预(Yu)留(Liu)扩(Kuo)展(Zhan)插(Cha)槽(Cao),(?)新(Xin)的(De)功(Gong)能(Neng)或(Huo)特(Te)性(Xing)很(Hen)容(Rong)易(Yi)加(Jia)入(Ru)到(Dao)系(Xi)统(Tong)中(Zhong)来(Lai)
3)(?)提(Ti)高(Gao)灵(Ling)活(Huo)性(Xing) 通(Tong)过(Guo)组(Zu)合(He)提(Ti)高(Gao)灵(Ling)活(Huo)性(Xing),(?)可(Ke)允(Yun)许(Xu)代(Dai)码(Ma)修(Xiu)改(Gai)平(Ping)稳(Wen)发(Fa)生(Sheng),(?)对(Dui)一(Yi)处(Chu)修(Xiu)改(Gai)不(Bu)会(Hui)波(Bo)及(Ji)到(Dao)其(Qi)他(Ta)模(Mo)块(Kuai)
4)(?) 提(Ti)高(Gao)开(Kai)发(Fa)效(Xiao)率(Lu) 正(Zheng)确(Que)使(Shi)用(Yong)设(She)计(Ji)模(Mo)式(Shi),(?)可(Ke)以(Yi)节(Jie)省(Sheng)大(Da)量(Liang)的(De)时(Shi)间(Jian)


package com.bjsxt; public class SimpleFactory { public static Product createProduct(String pname){ Product product=null; if("p1".equals(pname)){ product = new Product(); }else if("p2".equals(pname)){ product = new Product(); }else if("pn".equals(pname)){ product = new Product(); } return product; } }
基(Ji)本(Ben)原(Yuan)理(Li):(?)由(You)一(Yi)个(Ge)工(Gong)厂(Chang)类(Lei)根(Gen)据(Ju)传(Chuan)入(Ru)的(De)参(Can)数(Shu)((?)一(Yi)般(Ban)是(Shi)字(Zi)符(Fu)串(Chuan)参(Can)数(Shu))(?),(?)动(Dong)态(Tai)决(Jue)定(Ding)应(Ying)该(Gai)创(Chuang)建(Jian)哪(Na)一(Yi)个(Ge)产(Chan)品(Pin)子(Zi)类(Lei)((?)这(Zhe)些(Xie)产(Chan)品(Pin)子(Zi)类(Lei)继(Ji)承(Cheng)自(Zi)同(Tong)一(Yi)个(Ge)父(Fu)类(Lei)或(Huo)接(Jie)口(Kou))(?)的(De)实(Shi)例(Li),(?)并(Bing)以(Yi)父(Fu)类(Lei)形(Xing)式(Shi)返(Fan)回(Hui)
优(You)点(Dian):(?)客(Ke)户(Hu)端(Duan)不(Bu)负(Fu)责(Ze)对(Dui)象(Xiang)的(De)创(Chuang)建(Jian),(?)而(?)是(Shi)由(You)专(Zhuan)门(Men)的(De)工(Gong)厂(Chang)类(Lei)完(Wan)成(Cheng);(?)客(Ke)户(Hu)端(Duan)只(Zhi)负(Fu)责(Ze)对(Dui)象(Xiang)的(De)调(Diao)用(Yong),(?)实(Shi)现(Xian)了(Liao)创(Chuang)建(Jian)和(He)调(Diao)用(Yong)的(De)分(Fen)离(Li),(?)降(Jiang)低(Di)了(Liao)客(Ke)户(Hu)端(Duan)代(Dai)码(Ma)的(De)难(Nan)度(Du);(?)
缺(Que)点(Dian):(?)如(Ru)果(Guo)增(Zeng)加(Jia)和(He)减(Jian)少(Shao)产(Chan)品(Pin)子(Zi)类(Lei),(?)需(Xu)要(Yao)修(Xiu)改(Gai)简(Jian)单(Dan)工(Gong)厂(Chang)类(Lei),(?)违(Wei)背(Bei)了(Liao)开(Kai)闭(Bi)原(Yuan)则(Ze);(?)如(Ru)果(Guo)产(Chan)品(Pin)子(Zi)类(Lei)过(Guo)多(Duo),(?)会(Hui)导(Dao)致(Zhi)工(Gong)厂(Chang)类(Lei)非(Fei)常(Chang)的(De)庞(Pang)大(Da),(?)违(Wei)反(Fan)了(Liao)高(Gao)内(Nei)聚(Ju)原(Yuan)则(Ze),(?)不(Bu)利(Li)于(Yu)后(Hou)期(Qi)维(Wei)护(Hu)
分(Fen)析(Xi):(?)建(Jian)议(Yi)挑(Tiao)选(Xuan)有(You)一(Yi)定(Ding)技(Ji)术(Shu)难(Nan)度(Du),(?)并(Bing)且(Qie)在(Zai)实(Shi)际(Ji)开(Kai)发(Fa)中(Zhong)应(Ying)用(Yong)较(Jiao)多(Duo)的(De)设(She)计(Ji)模(Mo)式(Shi)。(?)可(Ke)以(Yi)挑(Tiao)选(Xuan)装(Zhuang)饰(Shi)模(Mo)式(Shi)和(He)动(Dong)态(Tai)代(Dai)理(Li)模(Mo)式(Shi)。(?)此(Ci)处(Chu)挑(Tiao)选(Xuan)动(Dong)态(Tai)代(Dai)理(Li)设(She)计(Ji)模(Mo)式(Shi)。(?)
讲(Jiang)解(Jie)思(Si)路(Lu):(?)生(Sheng)活(Huo)案(An)例(Li)引(Yin)入(Ru)、(?)技(Ji)术(Shu)讲(Jiang)解(Jie)、(?)优(You)缺(Que)点(Dian)分(Fen)析(Xi)、(?)典(Dian)型(Xing)应(Ying)用(Yong)。(?)
1、(?)生(Sheng)活(Huo)案(An)例(Li)引(Yin)入(Ru):(?)送(Song)生(Sheng)日(Ri)蛋(Dan)糕(Gao):(?)
MM们(Men)要(Yao)过(Guo)生(Sheng)日(Ri)了(Liao),(?)怎(Zen)么(Me)也(Ye)得(De)表(Biao)示(Shi)下(Xia)吧(Ba)。(?)最(Zui)起(Qi)码(Ma)先(Xian)送(Song)个(Ge)蛋(Dan)糕(Gao)。(?)蛋(Dan)糕(Gao)多(Duo)种(Zhong)多(Duo)样(Yang)了(Liao)。(?)巧(Qiao)克(Ke)力(Li),(?)冰(Bing)淇(Qi)淋(Lin),(?)奶(Nai)油(You)等(Deng)等(Deng)。(?)这(Zhe)都(Du)是(Shi)基(Ji)本(Ben)的(De)了(Liao),(?)再(Zai)加(Jia)点(Dian)额(E)外(Wai)的(De)装(Zhuang)饰(Shi),(?)如(Ru)蛋(Dan)糕(Gao)里(Li)放(Fang)点(Dian)花(Hua)、(?)放(Fang)贺(He)卡(Ka)、(?)放(Fang)点(Dian)干(Gan)果(Guo)吃(Chi)着(Zhuo)更(Geng)香(Xiang)等(Deng)等(Deng)。(?)
分(Fen)析(Xi):(?)
方(Fang)案(An)1:(?)如(Ru)果(Guo)采(Cai)用(Yong)继(Ji)承(Cheng)会(Hui)造(Zao)成(Cheng)大(Da)量(Liang)的(De)蛋(Dan)糕(Gao)子(Zi)类(Lei)
方(Fang)案(An)2:(?)蛋(Dan)糕(Gao)作(Zuo)为(Wei)主(Zhu)体(Ti),(?)花(Hua),(?)贺(He)卡(Ka),(?)果(Guo)仁(Ren)等(Deng)是(Shi)装(Zhuang)饰(Shi)者(Zhe),(?)需(Xu)要(Yao)时(Shi)加(Jia)到(Dao)蛋(Dan)糕(Gao)上(Shang)。(?)要(Yao)啥(Sha)我(Wo)就(Jiu)加(Jia)啥(Sha)。(?)
技(Ji)术(Shu)讲(Jiang)解(Jie)
装(Zhuang)饰(Shi)模(Mo)式(Shi)((?)别(Bie)名(Ming)Wrapper)(?)是(Shi)在(Zai)不(Bu)必(Bi)改(Gai)变(Bian)原(Yuan)类(Lei)文(Wen)件(Jian)和(He)使(Shi)用(Yong)继(Ji)承(Cheng)的(De)情(Qing)况(Kuang)下(Xia),(?)动(Dong)态(Tai)的(De)扩(Kuo)展(Zhan)一(Yi)个(Ge)对(Dui)象(Xiang)的(De)功(Gong)能(Neng)。(?)它(Ta)通(Tong)过(Guo)创(Chuang)建(Jian)一(Yi)个(Ge)包(Bao)装(Zhuang)对(Dui)象(Xiang),(?)也(Ye)就(Jiu)是(Shi)装(Zhuang)饰(Shi)来(Lai)包(Bao)裹(Guo)真(Zhen)实(Shi)对(Dui)象(Xiang),(?)提(Ti)供(Gong)了(Liao)比(Bi)继(Ji)承(Cheng)更(Geng)具(Ju)弹(Dan)性(Xing)的(De)代(Dai)替(Ti)方(Fang)案(An)。(?)
装(Zhuang)饰(Shi)模(Mo)式(Shi)一(Yi)般(Ban)涉(She)及(Ji)到(Dao)的(De)角(Jiao)色(Se)
抽(Chou)象(Xiang)构(Gou)建(Jian)角(Jiao)色(Se)(Component):给(Gei)出(Chu)一(Yi)个(Ge)抽(Chou)象(Xiang)的(De)接(Jie)口(Kou),(?)以(Yi)规(Gui)范(Fan)准(Zhun)备(Bei)接(Jie)受(Shou)附(Fu)加(Jia)责(Ze)任(Ren)的(De)对(Dui)象(Xiang)。(?)
具(Ju)体(Ti)的(De)构(Gou)建(Jian)角(Jiao)色(Se)(ConcreteComponent):(?)定(Ding)义(Yi)一(Yi)个(Ge)将(Jiang)要(Yao)接(Jie)受(Shou)附(Fu)加(Jia)责(Ze)任(Ren)的(De)类(Lei)。(?)
抽(Chou)象(Xiang)的(De)装(Zhuang)饰(Shi)角(Jiao)色(Se) (Decorator):持(Chi)有(You)一(Yi)个(Ge)抽(Chou)象(Xiang)构(Gou)建(Jian)(Component)角(Jiao)色(Se)的(De)引(Yin)用(Yong),(?)并(Bing)定(Ding)义(Yi)一(Yi)个(Ge)与(Yu)抽(Chou)象(Xiang)构(Gou)件(Jian)一(Yi)致(Zhi)的(De)接(Jie)口(Kou)。(?)
具(Ju)体(Ti)的(De)装(Zhuang)饰(Shi)角(Jiao)色(Se)(ConcreteDecorator):负(Fu)责(Ze)给(Gei)构(Gou)建(Jian)对(Dui)象(Xiang)“(?)贴(Tie)上(Shang)”(?)附(Fu)加(Jia)的(De)责(Ze)任(Ren)。(?)

3、(?)优(You)缺(Que)点(Dian)分(Fen)析(Xi)
优(You)点(Dian)
1)(?)Decorator模(Mo)式(Shi)与(Yu)继(Ji)承(Cheng)关(Guan)系(Xi)的(De)目(Mu)的(De)都(Du)是(Shi)要(Yao)扩(Kuo)展(Zhan)对(Dui)象(Xiang)的(De)功(Gong)能(Neng),(?)但(Dan)是(Shi)Decorato更(Geng)多(Duo)的(De)灵(Ling)活(Huo)性(Xing)。(?)
2)(?)把(Ba)类(Lei)中(Zhong)的(De)装(Zhuang)饰(Shi)功(Gong)能(Neng)从(Cong)类(Lei)中(Zhong)搬(Ban)移(Yi)出(Chu)去(Qu),(?)这(Zhe)样(Yang)可(Ke)以(Yi)简(Jian)化(Hua)原(Yuan)有(You)的(De)类(Lei)。(?)有(You)效(Xiao)地(Di)把(Ba)类(Lei)的(De)核(He)心(Xin)功(Gong)能(Neng)和(He)装(Zhuang)饰(Shi)功(Gong)能(Neng)区(Qu)分(Fen)开(Kai)了(Liao)。(?)
3)(?)通(Tong)过(Guo)使(Shi)用(Yong)不(Bu)同(Tong)的(De)具(Ju)体(Ti)装(Zhuang)饰(Shi)类(Lei)以(Yi)及(Ji)这(Zhe)些(Xie)装(Zhuang)饰(Shi)类(Lei)的(De)排(Pai)列(Lie)组(Zu)合(He),(?)可(Ke)创(Chuang)造(Zao)出(Chu)很(Hen)多(Duo)不(Bu)同(Tong)行(Xing)为(Wei)的(De)组(Zu)合(He)。(?)
缺(Que)点(Dian)
这(Zhe)种(Zhong)比(Bi)继(Ji)承(Cheng)更(Geng)加(Jia)灵(Ling)活(Huo)机(Ji)动(Dong)的(De)特(Te)性(Xing),(?)也(Ye)同(Tong)时(Shi)意(Yi)味(Wei)着(Zhuo)更(Geng)加(Jia)多(Duo)的(De)复(Fu)杂(Za)性(Xing)。(?)
装(Zhuang)饰(Shi)模(Mo)式(Shi)会(Hui)导(Dao)致(Zhi)设(She)计(Ji)中(Zhong)出(Chu)现(Xian)许(Xu)多(Duo)小(Xiao)类(Lei),(?)如(Ru)果(Guo)过(Guo)度(Du)使(Shi)用(Yong),(?)会(Hui)使(Shi)程(Cheng)序(Xu)变(Bian)得(De)很(Hen)复(Fu)杂(Za)。(?)
符(Fu)合(He)的(De)设(She)计(Ji)原(Yuan)则(Ze):(?)
多(Duo)用(Yong)组(Zu)合(He),(?)少(Shao)用(Yong)继(Ji)承(Cheng)。(?)利(Li)用(Yong)继(Ji)承(Cheng)设(She)计(Ji)子(Zi)类(Lei)的(De)行(Xing)为(Wei)是(Shi)在(Zai)编(Bian)译(Yi)时(Shi)静(Jing)态(Tai)决(Jue)定(Ding)的(De),(?)且(Qie)所(Suo)有(You)的(De)子(Zi)类(Lei)都(Du)会(Hui)继(Ji)承(Cheng)到(Dao)相(Xiang)同(Tong)的(De)行(Xing)为(Wei)。(?)如(Ru)能(Neng)够(Gou)利(Li)用(Yong)组(Zu)合(He)扩(Kuo)展(Zhan)对(Dui)象(Xiang)的(De)行(Xing)为(Wei),(?)就(Jiu)可(Ke)在(Zai)运(Yun)行(Xing)时(Shi)动(Dong)态(Tai)进(Jin)行(Xing)扩(Kuo)展(Zhan)。(?)
类(Lei)应(Ying)设(She)计(Ji)的(De)对(Dui)扩(Kuo)展(Zhan)开(Kai)放(Fang),(?)对(Dui)修(Xiu)改(Gai)关(Guan)闭(Bi)。(?)
4、(?)典(Dian)型(Xing)应(Ying)用(Yong)
java IO中(Zhong)需(Xu)要(Yao)完(Wan)成(Cheng)对(Dui)不(Bu)同(Tong)输(Shu)入(Ru)输(Shu)出(Chu)源(Yuan)的(De)操(Cao)作(Zuo),(?)如(Ru)果(Guo)单(Dan)纯(Chun)的(De)使(Shi)用(Yong)继(Ji)承(Cheng)这(Zhe)一(Yi)方(Fang)式(Shi),(?)无(Wu)疑(Yi)需(Xu)要(Yao)很(Hen)多(Duo)的(De)类(Lei)。(?)比(Bi)如(Ru)说(Shuo),(?)我(Wo)们(Men)操(Cao)作(Zuo)文(Wen)件(Jian)需(Xu)要(Yao)一(Yi)个(Ge)类(Lei),(?)实(Shi)现(Xian)文(Wen)件(Jian)的(De)字(Zi)节(Jie)读(Du)取(Qu)需(Xu)要(Yao)一(Yi)个(Ge)类(Lei),(?)实(Shi)现(Xian)文(Wen)件(Jian)的(De)字(Zi)符(Fu)读(Du)取(Qu)又(You)需(Xu)要(Yao)一(Yi)个(Ge)类(Lei)....一(Yi)次(Ci)类(Lei)推(Tui)每(Mei)个(Ge)特(Te)定(Ding)的(De)操(Cao)作(Zuo)都(Du)需(Xu)要(Yao)一(Yi)个(Ge)特(Te)定(Ding)的(De)类(Lei)。(?)这(Zhe)无(Wu)疑(Yi)会(Hui)导(Dao)致(Zhi)大(Da)量(Liang)的(De)IO继(Ji)承(Cheng)类(Lei)的(De)出(Chu)现(Xian)。(?)显(Xian)然(Ran)对(Dui)于(Yu)编(Bian)程(Cheng)是(Shi)很(Hen)不(Bu)利(Li)的(De)。(?)而(?)是(Shi)用(Yong)装(Zhuang)饰(Shi)模(Mo)式(Shi)则(Ze)可(Ke)以(Yi)很(Hen)好(Hao)的(De)解(Jie)决(Jue)这(Zhe)一(Yi)问(Wen)题(Ti),(?)在(Zai)装(Zhuang)饰(Shi)模(Mo)式(Shi)中(Zhong):(?)节(Jie)点(Dian)流(Liu)((?)如(Ru)FileInputStream)(?)直(Zhi)接(Jie)与(Yu)输(Shu)入(Ru)源(Yuan)交(Jiao)互(Hu),(?)之(Zhi)后(Hou)通(Tong)过(Guo)过(Guo)滤(Lu)流(Liu)((?)FilterInputStream)(?)进(Jin)行(Xing)装(Zhuang)饰(Shi),(?)这(Zhe)样(Yang)获(Huo)得(De)的(De)io对(Dui)象(Xiang)便(Bian)具(Ju)有(You)某(Mou)几(Ji)个(Ge)的(De)功(Gong)能(Neng),(?)很(Hen)好(Hao)的(De)拓(Tuo)展(Zhan)了(Liao)IO的(De)功(Gong)能(Neng)。(?)

高(Gao)级(Ji)框(Kuang)架(Jia)
Maven使(Shi)用(Yong)项(Xiang)目(Mu)对(Dui)象(Xiang)模(Mo)型(Xing)(POM)的(De)概(Gai)念(Nian),(?)可(Ke)以(Yi)通(Tong)过(Guo)一(Yi)小(Xiao)段(Duan)描(Miao)述(Shu)信(Xin)息(Xi)来(Lai)管(Guan)理(Li)项(Xiang)目(Mu)的(De)构(Gou)建(Jian),(?)报(Bao)告(Gao)和(He)文(Wen)档(Dang)的(De)软(Ruan)件(Jian)项(Xiang)目(Mu)管(Guan)理(Li)工(Gong)具(Ju)。(?)
Maven 除(Chu)了(Liao)以(Yi)程(Cheng)序(Xu)构(Gou)建(Jian)能(Neng)力(Li)为(Wei)特(Te)色(Se)之(Zhi)外(Wai),(?)还(Huan)提(Ti)供(Gong)高(Gao)级(Ji)项(Xiang)目(Mu)管(Guan)理(Li)工(Gong)具(Ju)。(?)由(You)于(Yu) Maven 的(De)缺(Que)省(Sheng)构(Gou)建(Jian)规(Gui)则(Ze)有(You)较(Jiao)高(Gao)的(De)可(Ke)重(Zhong)用(Yong)性(Xing),(?)所(Suo)以(Yi)常(Chang)常(Chang)用(Yong)两(Liang)三(San)行(Xing) Maven 构(Gou)建(Jian)脚(Jiao)本(Ben)就(Jiu)可(Ke)以(Yi)构(Gou)建(Jian)简(Jian)单(Dan)的(De)项(Xiang)目(Mu)。(?)由(You)于(Yu) Maven 的(De)面(Mian)向(Xiang)项(Xiang)目(Mu)的(De)方(Fang)法(Fa),(?)许(Xu)多(Duo) Apache Jakarta 项(Xiang)目(Mu)发(Fa)布(Bu)时(Shi)使(Shi)用(Yong) Maven,(?)而(?)且(Qie)公(Gong)司(Si)项(Xiang)目(Mu)采(Cai)用(Yong) Maven 的(De)比(Bi)例(Li)在(Zai)持(Chi)续(Xu)增(Zeng)长(Chang)。(?)
Maven的(De)出(Chu)现(Xian),(?)解(Jie)决(Jue)了(Liao)开(Kai)发(Fa)过(Guo)程(Cheng)中(Zhong)的(De)jar包(Bao)升(Sheng)级(Ji)及(Ji)依(Yi)赖(Lai)的(De)难(Nan)题(Ti)。(?)它(Ta)可(Ke)以(Yi)对(Dui)项(Xiang)目(Mu)依(Yi)赖(Lai)的(De)jar包(Bao)进(Jin)行(Xing)管(Guan)理(Li),(?)可(Ke)以(Yi)让(Rang)你(Ni)的(De)项(Xiang)目(Mu)保(Bao)持(Chi)基(Ji)本(Ben)的(De)依(Yi)赖(Lai),(?)排(Pai)除(Chu)冗(Rong)余(Yu)jar包(Bao),(?)并(Bing)且(Qie)可(Ke)以(Yi)让(Rang)你(Ni)非(Fei)常(Chang)轻(Qing)松(Song)的(De)对(Dui)依(Yi)赖(Lai)的(De)jar包(Bao)进(Jin)行(Xing)版(Ban)本(Ben)升(Sheng)级(Ji)。(?)而(?)这(Zhe)些(Xie)仅(Jin)仅(Jin)是(Shi)Maven最(Zui)基(Ji)本(Ben)的(De)功(Gong)能(Neng),(?)它(Ta)可(Ke)以(Yi)在(Zai)这(Zhe)基(Ji)础(Chu)上(Shang)对(Dui)项(Xiang)目(Mu)进(Jin)行(Xing)清(Qing)理(Li)、(?)编(Bian)译(Yi)、(?)测(Ce)试(Shi)、(?)打(Da)包(Bao)、(?)发(Fa)布(Bu)等(Deng)等(Deng)构(Gou)建(Jian)项(Xiang)目(Mu)的(De)工(Gong)作(Zuo)。(?)
可(Ke)以(Yi)说(Shuo),(?)Maven是(Shi)现(Xian)在(Zai)Java社(She)区(Qu)中(Zhong)最(Zui)强(Qiang)大(Da)的(De)项(Xiang)目(Mu)管(Guan)理(Li)和(He)项(Xiang)目(Mu)构(Gou)建(Jian)工(Gong)具(Ju),(?)而(?)更(Geng)加(Jia)值(Zhi)得(De)庆(Qing)幸(Xing)的(De)是(Shi),(?)这(Zhe)样(Yang)一(Yi)个(Ge)强(Qiang)大(Da)的(De)工(Gong)具(Ju),(?)它(Ta)的(De)使(Shi)用(Yong)也(Ye)是(Shi)非(Fei)常(Chang)简(Jian)单(Dan)的(De)。(?)
现(Xian)在(Zai),(?)JavaEE项(Xiang)目(Mu)使(Shi)用(Yong)的(De)开(Kai)源(Yuan)软(Ruan)件(Jian)都(Du)可(Ke)以(Yi)通(Tong)过(Guo)Maven来(Lai)获(Huo)取(Qu),(?)并(Bing)且(Qie),(?)越(Yue)来(Lai)越(Yue)多(Duo)的(De)公(Gong)司(Si)也(Ye)开(Kai)始(Shi)使(Shi)用(Yong)Maven来(Lai)管(Guan)理(Li)构(Gou)建(Jian)项(Xiang)目(Mu)了(Liao)。(?)
1.maven&ant同(Tong)属(Shu)apach是(Shi)流(Liu)行(Xing)的(De)构(Gou)建(Jian)工(Gong)具(Ju)。(?)
都(Du)是(Shi)为(Wei)了(Liao)简(Jian)化(Hua)软(Ruan)件(Jian)开(Kai)发(Fa)而(?)存(Cun)在(Zai)的(De)。(?)但(Dan)是(Shi)maven因(Yin)为(Wei)自(Zi)身(Shen)管(Guan)理(Li)一(Yi)个(Ge)项(Xiang)目(Mu)对(Dui)象(Xiang)模(Mo)型(Xing)((?)project object model)(?),(?)这(Zhe)个(Ge)模(Mo)型(Xing)其(Qi)实(Shi)就(Jiu)是(Shi)抽(Chou)象(Xiang)了(Liao)一(Yi)个(Ge)项(Xiang)目(Mu)的(De)开(Kai)发(Fa)流(Liu)程(Cheng),(?)它(Ta)包(Bao)含(Han)了(Liao)一(Yi)个(Ge)项(Xiang)目(Mu)的(De)生(Sheng)命(Ming)周(Zhou)期(Qi)的(De)各(Ge)个(Ge)阶(Jie)段(Duan),(?)并(Bing)将(Jiang)这(Zhe)个(Ge)周(Zhou)期(Qi)固(Gu)定(Ding)下(Xia)来(Lai),(?)这(Zhe)也(Ye)就(Jiu)是(Shi)约(Yue)定(Ding)大(Da)于(Yu)配(Pei)置(Zhi)。(?)约(Yue)定(Ding)大(Da)于(Yu)配(Pei)置(Zhi)的(De)意(Yi)思(Si)就(Jiu)是(Shi),(?)我(Wo)maven将(Jiang)项(Xiang)目(Mu)开(Kai)发(Fa)的(De)各(Ge)个(Ge)阶(Jie)段(Duan)固(Gu)定(Ding)起(Qi)来(Lai)了(Liao),(?)每(Mei)个(Ge)文(Wen)件(Jian)的(De)存(Cun)放(Fang)位(Wei)置(Zhi),(?)每(Mei)个(Ge)阶(Jie)段(Duan)要(Yao)生(Sheng)成(Cheng)什(Shi)么(Me)文(Wen)件(Jian)、(?)保(Bao)存(Cun)为(Wei)什(Shi)么(Me)格(Ge)式(Shi)并(Bing)且(Qie)要(Yao)把(Ba)它(Ta)放(Fang)在(Zai)什(Shi)么(Me)位(Wei)置(Zhi),(?)我(Wo)都(Du)固(Gu)定(Ding)好(Hao)了(Liao)。(?)我(Wo)知(Zhi)道(Dao)一(Yi)个(Ge)软(Ruan)件(Jian)是(Shi)怎(Zen)么(Me)开(Kai)发(Fa)出(Chu)来(Lai),(?)如(Ru)果(Guo)一(Yi)个(Ge)项(Xiang)目(Mu)要(Yao)使(Shi)用(Yong)maven,(?)可(Ke)以(Yi),(?)但(Dan)你(Ni)要(Yao)遵(Zun)循(Xun)我(Wo)的(De)规(Gui)则(Ze),(?)文(Wen)件(Jian)目(Mu)录(Lu)不(Bu)要(Yao)乱(Luan)建(Jian)乱(Luan)放(Fang),(?)只(Zhi)有(You)这(Zhe)样(Yang)maven才(Cai)会(Hui)将(Jiang)源(Yuan)码(Ma)用(Yong)起(Qi)来(Lai)。(?)这(Zhe)就(Jiu)是(Shi)约(Yue)定(Ding)大(Da)于(Yu)配(Pei)置(Zhi),(?)因(Yin)为(Wei)maven已(Yi)经(Jing)将(Jiang)流(Liu)程(Cheng)固(Gu)定(Ding)下(Xia)来(Lai)了(Liao),(?)只(Zhi)要(Yao)遵(Zun)守(Shou)约(Yue)定(Ding),(?)就(Jiu)不(Bu)需(Xu)要(Yao)自(Zi)己(Ji)手(Shou)动(Dong)去(Qu)配(Pei)置(Zhi)了(Liao),(?)这(Zhe)将(Jiang)大(Da)大(Da)地(Di)提(Ti)高(Gao)开(Kai)发(Fa)效(Xiao)率(Lu)。(?)就(Jiu)像(Xiang)是(Shi)开(Kai)车(Che)一(Yi)样(Yang),(?)只(Zhi)要(Yao)知(Zhi)道(Dao)点(Dian)火(Huo)、(?)油(You)门(Men)、(?)方(Fang)向(Xiang)、(?)刹(Sha)车(Che),(?)就(Jiu)可(Ke)以(Yi)将(Jiang)车(Che)子(Zi)开(Kai)东(Dong)起(Qi)来(Lai)((?)当(Dang)然(Ran)出(Chu)于(Yu)安(An)全(Quan)和(He)法(Fa)律(Lu)考(Kao)虑(Lu),(?)还(Huan)是(Shi)要(Yao)考(Kao)驾(Jia)照(Zhao)的(De)。(?))(?),(?)关(Guan)于(Yu)车(Che)子(Zi)内(Nei)部(Bu)的(De)传(Chuan)动(Dong)原(Yuan)理(Li),(?)电(Dian)气(Qi)原(Yuan)理(Li),(?)工(Gong)程(Cheng)原(Yuan)理(Li),(?)普(Pu)通(Tong)人(Ren)并(Bing)不(Bu)需(Xu)要(Yao)了(Liao)解(Jie)多(Duo)少(Shao),(?)日(Ri)常(Chang)够(Gou)用(Yong)就(Jiu)好(Hao)了(Liao)。(?)这(Zhe)也(Ye)是(Shi)约(Yue)定(Ding)大(Da)于(Yu)配(Pei)置(Zhi)的(De)一(Yi)个(Ge)例(Li)子(Zi)。(?)配(Pei)置(Zhi)就(Jiu)是(Shi)自(Zi)己(Ji)造(Zao)一(Yi)辆(Liang)车(Che)去(Qu)开(Kai),(?)有(You)必(Bi)要(Yao),(?)有(You)能(Neng)力(Li),(?)有(You)时(Shi)间(Jian)吗(Ma)?(?)
2.maven的(De)中(Zhong)央(Yang)仓(Cang)库(Ku)和(He)pom.xml文(Wen)件(Jian)。(?)中(Zhong)央(Yang)仓(Cang)库(Ku)统(Tong)一(Yi)存(Cun)放(Fang)了(Liao)开(Kai)发(Fa)用(Yong)到(Dao)的(De)各(Ge)种(Zhong)jar包(Bao),(?)要(Yao)用(Yong)时(Shi)只(Zhi)需(Xu)要(Yao)添(Tian)加(Jia)依(Yi)赖(Lai)到(Dao)pom文(Wen)件(Jian)中(Zhong),(?)maven就(Jiu)会(Hui)自(Zi)动(Dong)下(Xia)载(Zai),(?)当(Dang)然(Ran)为(Wei)了(Liao)方(Fang)便(Bian)一(Yi)般(Ban)会(Hui)在(Zai)本(Ben)地(Di)建(Jian)一(Yi)个(Ge)仓(Cang)库(Ku),(?)减(Jian)少(Shao)下(Xia)载(Zai)时(Shi)间(Jian)。(?)pom文(Wen)件(Jian)是(Shi)maven的(De)配(Pei)置(Zhi)文(Wen)件(Jian),(?)maven就(Jiu)是(Shi)通(Tong)过(Guo)管(Guan)理(Li)pom文(Wen)件(Jian)和(He)一(Yi)些(Xie)核(He)心(Xin)插(Cha)件(Jian)来(Lai)管(Guan)理(Li)项(Xiang)目(Mu)。(?)当(Dang)然(Ran)我(Wo)前(Qian)面(Mian)将(Jiang)maven拟(Ni)人(Ren)化(Hua)了(Liao),(?)其(Qi)实(Shi)maven是(Shi)没(Mei)有(You)智(Zhi)力(Li)的(De),(?)一(Yi)切(Qie)都(Du)是(Shi)封(Feng)装(Zhuang)好(Hao)的(De)流(Liu)程(Cheng),(?)只(Zhi)是(Shi)maven将(Jiang)很(Hen)多(Duo)操(Cao)作(Zuo)隐(Yin)藏(Cang)起(Qi)来(Lai)了(Liao)。(?)
3.ant的(De)build.xml文(Wen)件(Jian)。(?)build文(Wen)件(Jian)是(Shi)ant的(De)配(Pei)置(Zhi)文(Wen)件(Jian),(?)ant依(Yi)靠(Kao)它(Ta)来(Lai)执(Zhi)行(Xing)操(Cao)作(Zuo),(?)与(Yu)maven不(Bu)同(Tong)的(De)是(Shi)ant没(Mei)有(You)固(Gu)定(Ding)一(Yi)条(Tiao)程(Cheng)序(Xu)链(Lian)。(?)你(Ni)想(Xiang)要(Yao)执(Zhi)行(Xing)什(Shi)么(Me)操(Cao)作(Zuo)以(Yi)及(Ji)操(Cao)作(Zuo)之(Zhi)间(Jian)的(De)顺(Shun)序(Xu)和(He)依(Yi)赖(Lai)关(Guan)系(Xi),(?)都(Du)需(Xu)要(Yao)手(Shou)动(Dong)添(Tian)加(Jia)到(Dao)build文(Wen)件(Jian)中(Zhong),(?)一(Yi)点(Dian)一(Yi)滴(Di)都(Du)要(Yao)写(Xie)清(Qing)楚(Chu),(?)否(Fou)则(Ze)ant就(Jiu)不(Bu)会(Hui)执(Zhi)行(Xing)。(?)
4.maven和(He)ant区(Qu)别(Bie)
Maven 拥(Yong)有(You)约(Yue)定(Ding),(?)只(Zhi)要(Yao)遵(Zun)守(Shou)约(Yue)定(Ding),(?)它(Ta)就(Jiu)知(Zhi)道(Dao)你(Ni)的(De)源(Yuan)代(Dai)码(Ma)在(Zai)哪(Na)里(Li)。(?)Maven 是(Shi)声(Sheng)明(Ming)式(Shi)的(De)。(?)你(Ni)需(Xu)要(Yao)做(Zuo)的(De)只(Zhi)是(Shi)创(Chuang)建(Jian)一(Yi)个(Ge) pom.xml 文(Wen)件(Jian)然(Ran)后(Hou)将(Jiang)源(Yuan)代(Dai)码(Ma)放(Fang)到(Dao)默(Mo)认(Ren)的(De)目(Mu)录(Lu)。(?)Maven 会(Hui)帮(Bang)你(Ni)处(Chu)理(Li)其(Qi)它(Ta)的(De)事(Shi)情(Qing)。(?)Maven 有(You)一(Yi)个(Ge)生(Sheng)命(Ming)周(Zhou)期(Qi),(?)当(Dang)你(Ni)运(Yun)行(Xing) mvn install 的(De)时(Shi)候(Hou)被(Bei)调(Diao)用(Yong)。(?)这(Zhe)条(Tiao)命(Ming)令(Ling)告(Gao)诉(Su) Maven 执(Zhi)行(Xing)一(Yi)系(Xi)列(Lie)的(De)有(You)序(Xu)的(De)步(Bu)骤(Zhou),(?)直(Zhi)到(Dao)到(Dao)达(Da)你(Ni)指(Zhi)定(Ding)的(De)生(Sheng)命(Ming)周(Zhou)期(Qi)。(?)缺(Que)点(Dian)是(Shi)运(Yun)行(Xing)许(Xu)多(Duo)默(Mo)认(Ren)目(Mu)标(Biao)。(?)
而(?)ant没(Mei)有(You)约(Yue)定(Ding),(?)项(Xiang)目(Mu)生(Sheng)命(Ming)周(Zhou)期(Qi),(?)它(Ta)是(Shi)命(Ming)令(Ling)式(Shi)的(De)。(?)所(Suo)有(You)操(Cao)作(Zuo)都(Du)要(Yao)手(Shou)动(Dong)去(Qu)创(Chuang)建(Jian)、(?)布(Bu)置(Zhi)。(?)甚(Shen)至(Zhi)连(Lian)build.xml文(Wen)件(Jian)都(Du)需(Xu)要(Yao)手(Shou)动(Dong)创(Chuang)建(Jian)。(?)
Maven仓(Cang)库(Ku)是(Shi)基(Ji)于(Yu)简(Jian)单(Dan)文(Wen)件(Jian)系(Xi)统(Tong)存(Cun)储(Chu)的(De),(?)集(Ji)中(Zhong)化(Hua)管(Guan)理(Li)Java API资(Zi)源(Yuan)((?)构(Gou)件(Jian))(?)的(De)一(Yi)个(Ge)服(Fu)务(Wu)。(?)仓(Cang)库(Ku)中(Zhong)的(De)任(Ren)何(He)一(Yi)个(Ge)构(Gou)件(Jian)都(Du)有(You)其(Qi)唯(Wei)一(Yi)的(De)坐(Zuo)标(Biao),(?)根(Gen)据(Ju)这(Zhe)个(Ge)坐(Zuo)标(Biao)可(Ke)以(Yi)定(Ding)义(Yi)其(Qi)在(Zai)仓(Cang)库(Ku)中(Zhong)的(De)唯(Wei)一(Yi)存(Cun)储(Chu)路(Lu)径(Jing)。(?)得(De)益(Yi)于(Yu) Maven 的(De)坐(Zuo)标(Biao)机(Ji)制(Zhi),(?)任(Ren)何(He) Maven项(Xiang)目(Mu)使(Shi)用(Yong)任(Ren)何(He)一(Yi)个(Ge)构(Gou)件(Jian)的(De)方(Fang)式(Shi)都(Du)是(Shi)完(Wan)全(Quan)相(Xiang)同(Tong)的(De),(?)Maven 可(Ke)以(Yi)在(Zai)某(Mou)个(Ge)位(Wei)置(Zhi)统(Tong)一(Yi)存(Cun)储(Chu)所(Suo)有(You)的(De) Maven 项(Xiang)目(Mu)共(Gong)享(Xiang)的(De)构(Gou)件(Jian),(?)这(Zhe)个(Ge)统(Tong)一(Yi)的(De)位(Wei)置(Zhi)就(Jiu)是(Shi)仓(Cang)库(Ku),(?)项(Xiang)目(Mu)构(Gou)建(Jian)完(Wan)毕(Bi)后(Hou)生(Sheng)成(Cheng)的(De)构(Gou)件(Jian)也(Ye)可(Ke)以(Yi)安(An)装(Zhuang)或(Huo)者(Zhe)部(Bu)署(Shu)到(Dao)仓(Cang)库(Ku)中(Zhong),(?)供(Gong)其(Qi)它(Ta)项(Xiang)目(Mu)使(Shi)用(Yong)。(?)
对(Dui)于(Yu)Maven来(Lai)说(Shuo),(?)仓(Cang)库(Ku)分(Fen)为(Wei)两(Liang)类(Lei):(?)本(Ben)地(Di)仓(Cang)库(Ku)和(He)远(Yuan)程(Cheng)仓(Cang)库(Ku)。(?)
POM工(Gong)程(Cheng)
POM工(Gong)程(Cheng)是(Shi)逻(Luo)辑(Ji)工(Gong)程(Cheng)。(?)用(Yong)在(Zai)父(Fu)级(Ji)工(Gong)程(Cheng)或(Huo)聚(Ju)合(He)工(Gong)程(Cheng)中(Zhong)。(?)用(Yong)来(Lai)做(Zuo)jar包(Bao)的(De)版(Ban)本(Ben)控(Kong)制(Zhi)。(?)
JAR工(Gong)程(Cheng)
将(Jiang)会(Hui)打(Da)包(Bao)成(Cheng)jar用(Yong)作(Zuo)jar包(Bao)使(Shi)用(Yong)。(?)即(Ji)常(Chang)见(Jian)的(De)本(Ben)地(Di)工(Gong)程(Cheng) - Java Project。(?)
WAR工(Gong)程(Cheng)
将(Jiang)会(Hui)打(Da)包(Bao)成(Cheng)war,(?)发(Fa)布(Bu)在(Zai)服(Fu)务(Wu)器(Qi)上(Shang)的(De)工(Gong)程(Cheng)。(?)如(Ru)网(Wang)站(Zhan)或(Huo)服(Fu)务(Wu)。(?)即(Ji)常(Chang)见(Jian)的(De)网(Wang)络(Luo)工(Gong)程(Cheng) - Dynamic Web Project。(?)war工(Gong)程(Cheng)默(Mo)认(Ren)没(Mei)有(You)WEB-INF目(Mu)录(Lu)及(Ji)web.xml配(Pei)置(Zhi)文(Wen)件(Jian),(?)IDE通(Tong)常(Chang)会(Hui)显(Xian)示(Shi)工(Gong)程(Cheng)错(Cuo)误(Wu),(?)提(Ti)供(Gong)完(Wan)整(Zheng)工(Gong)程(Cheng)结(Jie)构(Gou)可(Ke)以(Yi)解(Jie)决(Jue)。(?)
install
本(Ben)地(Di)安(An)装(Zhuang),(?) 包(Bao)含(Han)编(Bian)译(Yi),(?)打(Da)包(Bao),(?)安(An)装(Zhuang)到(Dao)本(Ben)地(Di)仓(Cang)库(Ku)
编(Bian)译(Yi) - javac
打(Da)包(Bao) - jar,(?) 将(Jiang)java代(Dai)码(Ma)打(Da)包(Bao)为(Wei)jar文(Wen)件(Jian)
安(An)装(Zhuang)到(Dao)本(Ben)地(Di)仓(Cang)库(Ku) - 将(Jiang)打(Da)包(Bao)的(De)jar文(Wen)件(Jian),(?)保(Bao)存(Cun)到(Dao)本(Ben)地(Di)仓(Cang)库(Ku)目(Mu)录(Lu)中(Zhong)。(?)
clean
清(Qing)除(Chu)已(Yi)编(Bian)译(Yi)信(Xin)息(Xi)。(?)
删(Shan)除(Chu)工(Gong)程(Cheng)中(Zhong)的(De)target目(Mu)录(Lu)。(?)
compile
只(Zhi)编(Bian)译(Yi)。(?) javac命(Ming)令(Ling)
deploy
部(Bu)署(Shu)。(?) 常(Chang)见(Jian)于(Yu)结(Jie)合(He)私(Si)服(Fu)使(Shi)用(Yong)的(De)命(Ming)令(Ling)。(?)
相(Xiang)当(Dang)于(Yu)是(Shi)install+上(Shang)传(Chuan)jar到(Dao)私(Si)服(Fu)。(?)
包(Bao)含(Han)编(Bian)译(Yi),(?)打(Da)包(Bao),(?)安(An)装(Zhuang)到(Dao)本(Ben)地(Di)仓(Cang)库(Ku),(?)上(Shang)传(Chuan)到(Dao)私(Si)服(Fu)仓(Cang)库(Ku)。(?)
package
打(Da)包(Bao)。(?) 包(Bao)含(Han)编(Bian)译(Yi),(?)打(Da)包(Bao)两(Liang)个(Ge)功(Gong)能(Neng)。(?)
配(Pei)置(Zhi)管(Guan)理(Li)
在(Zai)我(Wo)们(Men)的(De)应(Ying)用(Yong)中(Zhong)除(Chu)了(Liao)代(Dai)码(Ma)外(Wai),(?)还(Huan)有(You)一(Yi)些(Xie)就(Jiu)是(Shi)各(Ge)种(Zhong)配(Pei)置(Zhi)。(?)比(Bi)如(Ru)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)等(Deng)。(?)一(Yi)般(Ban)我(Wo)们(Men)都(Du)是(Shi)使(Shi)用(Yong)配(Pei)置(Zhi)文(Wen)件(Jian)的(De)方(Fang)式(Shi),(?)在(Zai)代(Dai)码(Ma)中(Zhong)引(Yin)入(Ru)这(Zhe)些(Xie)配(Pei)置(Zhi)文(Wen)件(Jian)。(?)当(Dang)我(Wo)们(Men)只(Zhi)有(You)一(Yi)种(Zhong)配(Pei)置(Zhi),(?)只(Zhi)有(You)一(Yi)台(Tai)服(Fu)务(Wu)器(Qi),(?)并(Bing)且(Qie)不(Bu)经(Jing)常(Chang)修(Xiu)改(Gai)的(De)时(Shi)候(Hou),(?)使(Shi)用(Yong)配(Pei)置(Zhi)文(Wen)件(Jian)是(Shi)一(Yi)个(Ge)很(Hen)好(Hao)的(De)做(Zuo)法(Fa),(?)但(Dan)是(Shi)如(Ru)果(Guo)我(Wo)们(Men)配(Pei)置(Zhi)非(Fei)常(Chang)多(Duo),(?)有(You)很(Hen)多(Duo)服(Fu)务(Wu)器(Qi)都(Du)需(Xu)要(Yao)这(Zhe)个(Ge)配(Pei)置(Zhi),(?)这(Zhe)时(Shi)使(Shi)用(Yong)配(Pei)置(Zhi)文(Wen)件(Jian)就(Jiu)不(Bu)是(Shi)个(Ge)好(Hao)主(Zhu)意(Yi)了(Liao)。(?)这(Zhe)个(Ge)时(Shi)候(Hou)往(Wang)往(Wang)需(Xu)要(Yao)寻(Xun)找(Zhao)一(Yi)种(Zhong)集(Ji)中(Zhong)管(Guan)理(Li)配(Pei)置(Zhi)的(De)方(Fang)法(Fa),(?)我(Wo)们(Men)在(Zai)这(Zhe)个(Ge)集(Ji)中(Zhong)的(De)地(Di)方(Fang)修(Xiu)改(Gai)了(Liao)配(Pei)置(Zhi),(?)所(Suo)有(You)对(Dui)这(Zhe)个(Ge)配(Pei)置(Zhi)感(Gan)兴(Xing)趣(Qu)的(De)都(Du)可(Ke)以(Yi)获(Huo)得(De)变(Bian)更(Geng)。(?)Zookeeper就(Jiu)是(Shi)这(Zhe)种(Zhong)服(Fu)务(Wu),(?)它(Ta)使(Shi)用(Yong)Zab这(Zhe)种(Zhong)一(Yi)致(Zhi)性(Xing)协(Xie)议(Yi)来(Lai)提(Ti)供(Gong)一(Yi)致(Zhi)性(Xing)。(?)现(Xian)在(Zai)有(You)很(Hen)多(Duo)开(Kai)源(Yuan)项(Xiang)目(Mu)使(Shi)用(Yong)Zookeeper来(Lai)维(Wei)护(Hu)配(Pei)置(Zhi),(?)比(Bi)如(Ru)在(Zai)HBase中(Zhong),(?)客(Ke)户(Hu)端(Duan)就(Jiu)是(Shi)连(Lian)接(Jie)一(Yi)个(Ge)Zookeeper,(?)获(Huo)得(De)必(Bi)要(Yao)的(De)HBase集(Ji)群(Qun)的(De)配(Pei)置(Zhi)信(Xin)息(Xi),(?)然(Ran)后(Hou)才(Cai)可(Ke)以(Yi)进(Jin)一(Yi)步(Bu)操(Cao)作(Zuo)。(?)还(Huan)有(You)在(Zai)开(Kai)源(Yuan)的(De)消(Xiao)息(Xi)队(Dui)列(Lie)Kafka中(Zhong),(?)也(Ye)使(Shi)用(Yong)Zookeeper来(Lai)维(Wei)护(Hu)broker的(De)信(Xin)息(Xi)。(?)在(Zai)Alibaba开(Kai)源(Yuan)的(De)SOA框(Kuang)架(Jia)Dubbo中(Zhong)也(Ye)广(Guang)泛(Fan)的(De)使(Shi)用(Yong)Zookeeper管(Guan)理(Li)一(Yi)些(Xie)配(Pei)置(Zhi)来(Lai)实(Shi)现(Xian)服(Fu)务(Wu)治(Zhi)理(Li)。(?)
名(Ming)字(Zi)服(Fu)务(Wu)
名(Ming)字(Zi)服(Fu)务(Wu)这(Zhe)个(Ge)就(Jiu)很(Hen)好(Hao)理(Li)解(Jie)了(Liao)。(?)比(Bi)如(Ru)为(Wei)了(Liao)通(Tong)过(Guo)网(Wang)络(Luo)访(Fang)问(Wen)一(Yi)个(Ge)系(Xi)统(Tong),(?)我(Wo)们(Men)得(De)知(Zhi)道(Dao)对(Dui)方(Fang)的(De)IP地(Di)址(Zhi),(?)但(Dan)是(Shi)IP地(Di)址(Zhi)对(Dui)人(Ren)非(Fei)常(Chang)不(Bu)友(You)好(Hao),(?)这(Zhe)个(Ge)时(Shi)候(Hou)我(Wo)们(Men)就(Jiu)需(Xu)要(Yao)使(Shi)用(Yong)域(Yu)名(Ming)来(Lai)访(Fang)问(Wen)。(?)但(Dan)是(Shi)计(Ji)算(Suan)机(Ji)是(Shi)不(Bu)能(Neng)是(Shi)域(Yu)名(Ming)的(De)。(?)怎(Zen)么(Me)办(Ban)呢(Ne)?(?)如(Ru)果(Guo)我(Wo)们(Men)每(Mei)台(Tai)机(Ji)器(Qi)里(Li)都(Du)备(Bei)有(You)一(Yi)份(Fen)域(Yu)名(Ming)到(Dao)IP地(Di)址(Zhi)的(De)映(Ying)射(She),(?)这(Zhe)个(Ge)倒(Dao)是(Shi)能(Neng)解(Jie)决(Jue)一(Yi)部(Bu)分(Fen)问(Wen)题(Ti),(?)但(Dan)是(Shi)如(Ru)果(Guo)域(Yu)名(Ming)对(Dui)应(Ying)的(De)IP发(Fa)生(Sheng)变(Bian)化(Hua)了(Liao)又(You)该(Gai)怎(Zen)么(Me)办(Ban)呢(Ne)?(?)于(Yu)是(Shi)我(Wo)们(Men)有(You)了(Liao)DNS这(Zhe)个(Ge)东(Dong)西(Xi)。(?)我(Wo)们(Men)只(Zhi)需(Xu)要(Yao)访(Fang)问(Wen)一(Yi)个(Ge)大(Da)家(Jia)熟(Shu)知(Zhi)的(De)(known)的(De)点(Dian),(?)它(Ta)就(Jiu)会(Hui)告(Gao)诉(Su)你(Ni)这(Zhe)个(Ge)域(Yu)名(Ming)对(Dui)应(Ying)的(De)IP是(Shi)什(Shi)么(Me)。(?)在(Zai)我(Wo)们(Men)的(De)应(Ying)用(Yong)中(Zhong)也(Ye)会(Hui)存(Cun)在(Zai)很(Hen)多(Duo)这(Zhe)类(Lei)问(Wen)题(Ti),(?)特(Te)别(Bie)是(Shi)在(Zai)我(Wo)们(Men)的(De)服(Fu)务(Wu)特(Te)别(Bie)多(Duo)的(De)时(Shi)候(Hou),(?)如(Ru)果(Guo)我(Wo)们(Men)在(Zai)本(Ben)地(Di)保(Bao)存(Cun)服(Fu)务(Wu)的(De)地(Di)址(Zhi)的(De)时(Shi)候(Hou)将(Jiang)非(Fei)常(Chang)不(Bu)方(Fang)便(Bian),(?)但(Dan)是(Shi)如(Ru)果(Guo)我(Wo)们(Men)只(Zhi)需(Xu)要(Yao)访(Fang)问(Wen)一(Yi)个(Ge)大(Da)家(Jia)都(Du)熟(Shu)知(Zhi)的(De)访(Fang)问(Wen)点(Dian),(?)这(Zhe)里(Li)提(Ti)供(Gong)统(Tong)一(Yi)的(De)入(Ru)口(Kou),(?)那(Na)么(Me)维(Wei)护(Hu)起(Qi)来(Lai)将(Jiang)方(Fang)便(Bian)得(De)多(Duo)了(Liao)。(?)
分(Fen)布(Bu)式(Shi)锁(Suo)
其(Qi)实(Shi)在(Zai)第(Di)一(Yi)篇(Pian)文(Wen)章(Zhang)中(Zhong)已(Yi)经(Jing)介(Jie)绍(Shao)了(Liao)Zookeeper是(Shi)一(Yi)个(Ge)分(Fen)布(Bu)式(Shi)协(Xie)调(Diao)服(Fu)务(Wu)。(?)这(Zhe)样(Yang)我(Wo)们(Men)就(Jiu)可(Ke)以(Yi)利(Li)用(Yong)Zookeeper来(Lai)协(Xie)调(Diao)多(Duo)个(Ge)分(Fen)布(Bu)式(Shi)进(Jin)程(Cheng)之(Zhi)间(Jian)的(De)活(Huo)动(Dong)。(?)比(Bi)如(Ru)在(Zai)一(Yi)个(Ge)分(Fen)布(Bu)式(Shi)环(Huan)境(Jing)中(Zhong),(?)为(Wei)了(Liao)提(Ti)高(Gao)可(Ke)靠(Kao)性(Xing),(?)我(Wo)们(Men)的(De)集(Ji)群(Qun)的(De)每(Mei)台(Tai)服(Fu)务(Wu)器(Qi)上(Shang)都(Du)部(Bu)署(Shu)着(Zhuo)同(Tong)样(Yang)的(De)服(Fu)务(Wu)。(?)但(Dan)是(Shi),(?)一(Yi)件(Jian)事(Shi)情(Qing)如(Ru)果(Guo)集(Ji)群(Qun)中(Zhong)的(De)每(Mei)个(Ge)服(Fu)务(Wu)器(Qi)都(Du)进(Jin)行(Xing)的(De)话(Hua),(?)那(Na)相(Xiang)互(Hu)之(Zhi)间(Jian)就(Jiu)要(Yao)协(Xie)调(Diao),(?)编(Bian)程(Cheng)起(Qi)来(Lai)将(Jiang)非(Fei)常(Chang)复(Fu)杂(Za)。(?)而(?)如(Ru)果(Guo)我(Wo)们(Men)只(Zhi)让(Rang)一(Yi)个(Ge)服(Fu)务(Wu)进(Jin)行(Xing)操(Cao)作(Zuo),(?)那(Na)又(You)存(Cun)在(Zai)单(Dan)点(Dian)。(?)通(Tong)常(Chang)还(Huan)有(You)一(Yi)种(Zhong)做(Zuo)法(Fa)就(Jiu)是(Shi)使(Shi)用(Yong)分(Fen)布(Bu)式(Shi)锁(Suo),(?)在(Zai)某(Mou)个(Ge)时(Shi)刻(Ke)只(Zhi)让(Rang)一(Yi)个(Ge)服(Fu)务(Wu)去(Qu)干(Gan)活(Huo),(?)当(Dang)这(Zhe)台(Tai)服(Fu)务(Wu)出(Chu)问(Wen)题(Ti)的(De)时(Shi)候(Hou)锁(Suo)释(Shi)放(Fang),(?)立(Li)即(Ji)fail over到(Dao)另(Ling)外(Wai)的(De)服(Fu)务(Wu)。(?)这(Zhe)在(Zai)很(Hen)多(Duo)分(Fen)布(Bu)式(Shi)系(Xi)统(Tong)中(Zhong)都(Du)是(Shi)这(Zhe)么(Me)做(Zuo),(?)这(Zhe)种(Zhong)设(She)计(Ji)有(You)一(Yi)个(Ge)更(Geng)好(Hao)听(Ting)的(De)名(Ming)字(Zi)叫(Jiao)Leader Election(leader选(Xuan)举(Ju))。(?)比(Bi)如(Ru)HBase的(De)Master就(Jiu)是(Shi)采(Cai)用(Yong)这(Zhe)种(Zhong)机(Ji)制(Zhi)。(?)但(Dan)要(Yao)注(Zhu)意(Yi)的(De)是(Shi)分(Fen)布(Bu)式(Shi)锁(Suo)跟(Gen)同(Tong)一(Yi)个(Ge)进(Jin)程(Cheng)的(De)锁(Suo)还(Huan)是(Shi)有(You)区(Qu)别(Bie)的(De),(?)所(Suo)以(Yi)使(Shi)用(Yong)的(De)时(Shi)候(Hou)要(Yao)比(Bi)同(Tong)一(Yi)个(Ge)进(Jin)程(Cheng)里(Li)的(De)锁(Suo)更(Geng)谨(Jin)慎(Shen)的(De)使(Shi)用(Yong)。(?)
集(Ji)群(Qun)管(Guan)理(Li)
在(Zai)分(Fen)布(Bu)式(Shi)的(De)集(Ji)群(Qun)中(Zhong),(?)经(Jing)常(Chang)会(Hui)由(You)于(Yu)各(Ge)种(Zhong)原(Yuan)因(Yin),(?)比(Bi)如(Ru)硬(Ying)件(Jian)故(Gu)障(Zhang),(?)软(Ruan)件(Jian)故(Gu)障(Zhang),(?)网(Wang)络(Luo)问(Wen)题(Ti),(?)有(You)些(Xie)节(Jie)点(Dian)会(Hui)进(Jin)进(Jin)出(Chu)出(Chu)。(?)有(You)新(Xin)的(De)节(Jie)点(Dian)加(Jia)入(Ru)进(Jin)来(Lai),(?)也(Ye)有(You)老(Lao)的(De)节(Jie)点(Dian)退(Tui)出(Chu)集(Ji)群(Qun)。(?)这(Zhe)个(Ge)时(Shi)候(Hou),(?)集(Ji)群(Qun)中(Zhong)其(Qi)他(Ta)机(Ji)器(Qi)需(Xu)要(Yao)感(Gan)知(Zhi)到(Dao)这(Zhe)种(Zhong)变(Bian)化(Hua),(?)然(Ran)后(Hou)根(Gen)据(Ju)这(Zhe)种(Zhong)变(Bian)化(Hua)做(Zuo)出(Chu)对(Dui)应(Ying)的(De)决(Jue)策(Ce)。(?)比(Bi)如(Ru)我(Wo)们(Men)是(Shi)一(Yi)个(Ge)分(Fen)布(Bu)式(Shi)存(Cun)储(Chu)系(Xi)统(Tong),(?)有(You)一(Yi)个(Ge)中(Zhong)央(Yang)控(Kong)制(Zhi)节(Jie)点(Dian)负(Fu)责(Ze)存(Cun)储(Chu)的(De)分(Fen)配(Pei),(?)当(Dang)有(You)新(Xin)的(De)存(Cun)储(Chu)进(Jin)来(Lai)的(De)时(Shi)候(Hou)我(Wo)们(Men)要(Yao)根(Gen)据(Ju)现(Xian)在(Zai)集(Ji)群(Qun)目(Mu)前(Qian)的(De)状(Zhuang)态(Tai)来(Lai)分(Fen)配(Pei)存(Cun)储(Chu)节(Jie)点(Dian)。(?)这(Zhe)个(Ge)时(Shi)候(Hou)我(Wo)们(Men)就(Jiu)需(Xu)要(Yao)动(Dong)态(Tai)感(Gan)知(Zhi)到(Dao)集(Ji)群(Qun)目(Mu)前(Qian)的(De)状(Zhuang)态(Tai)。(?)还(Huan)有(You),(?)比(Bi)如(Ru)一(Yi)个(Ge)分(Fen)布(Bu)式(Shi)的(De)SOA架(Jia)构(Gou)中(Zhong),(?)服(Fu)务(Wu)是(Shi)一(Yi)个(Ge)集(Ji)群(Qun)提(Ti)供(Gong)的(De),(?)当(Dang)消(Xiao)费(Fei)者(Zhe)访(Fang)问(Wen)某(Mou)个(Ge)服(Fu)务(Wu)时(Shi),(?)就(Jiu)需(Xu)要(Yao)采(Cai)用(Yong)某(Mou)种(Zhong)机(Ji)制(Zhi)发(Fa)现(Xian)现(Xian)在(Zai)有(You)哪(Na)些(Xie)节(Jie)点(Dian)可(Ke)以(Yi)提(Ti)供(Gong)该(Gai)服(Fu)务(Wu)(这(Zhe)也(Ye)称(Cheng)之(Zhi)为(Wei)服(Fu)务(Wu)发(Fa)现(Xian),(?)比(Bi)如(Ru)Alibaba开(Kai)源(Yuan)的(De)SOA框(Kuang)架(Jia)Dubbo就(Jiu)采(Cai)用(Yong)了(Liao)Zookeeper作(Zuo)为(Wei)服(Fu)务(Wu)发(Fa)现(Xian)的(De)底(Di)层(Ceng)机(Ji)制(Zhi))。(?)还(Huan)有(You)开(Kai)源(Yuan)的(De)Kafka队(Dui)列(Lie)就(Jiu)采(Cai)用(Yong)了(Liao)Zookeeper作(Zuo)为(Wei)Cosnumer的(De)上(Shang)下(Xia)线(Xian)管(Guan)理(Li)。(?)
在(Zai)Zookeeper中(Zhong),(?)znode是(Shi)一(Yi)个(Ge)跟(Gen)Unix文(Wen)件(Jian)系(Xi)统(Tong)路(Lu)径(Jing)相(Xiang)似(Si)的(De)节(Jie)点(Dian),(?)可(Ke)以(Yi)往(Wang)这(Zhe)个(Ge)节(Jie)点(Dian)存(Cun)储(Chu)或(Huo)获(Huo)取(Qu)数(Shu)据(Ju)。(?)
Zookeeper底(Di)层(Ceng)是(Shi)一(Yi)套(Tao)数(Shu)据(Ju)结(Jie)构(Gou)。(?)这(Zhe)个(Ge)存(Cun)储(Chu)结(Jie)构(Gou)是(Shi)一(Yi)个(Ge)树(Shu)形(Xing)结(Jie)构(Gou),(?)其(Qi)上(Shang)的(De)每(Mei)一(Yi)个(Ge)节(Jie)点(Dian),(?)我(Wo)们(Men)称(Cheng)之(Zhi)为(Wei)“(?)znode”(?)
zookeeper中(Zhong)的(De)数(Shu)据(Ju)是(Shi)按(An)照(Zhao)“(?)树(Shu)”(?)结(Jie)构(Gou)进(Jin)行(Xing)存(Cun)储(Chu)的(De)。(?)而(?)且(Qie)znode节(Jie)点(Dian)还(Huan)分(Fen)为(Wei)4中(Zhong)不(Bu)同(Tong)的(De)类(Lei)型(Xing)。(?)
每(Mei)一(Yi)个(Ge)znode默(Mo)认(Ren)能(Neng)够(Gou)存(Cun)储(Chu)1MB的(De)数(Shu)据(Ju)((?)对(Dui)于(Yu)记(Ji)录(Lu)状(Zhuang)态(Tai)性(Xing)质(Zhi)的(De)数(Shu)据(Ju)来(Lai)说(Shuo),(?)够(Gou)了(Liao))(?)
可(Ke)以(Yi)使(Shi)用(Yong)zkCli命(Ming)令(Ling),(?)登(Deng)录(Lu)到(Dao)zookeeper上(Shang),(?)并(Bing)通(Tong)过(Guo)ls、(?)create、(?)delete、(?)get、(?)set等(Deng)命(Ming)令(Ling)操(Cao)作(Zuo)这(Zhe)些(Xie)znode节(Jie)点(Dian)
答(Da):(?)(1)PERSISTENT 持(Chi)久(Jiu)化(Hua)节(Jie)点(Dian): 所(Suo)谓(Wei)持(Chi)久(Jiu)节(Jie)点(Dian),(?)是(Shi)指(Zhi)在(Zai)节(Jie)点(Dian)创(Chuang)建(Jian)后(Hou),(?)就(Jiu)一(Yi)直(Zhi)存(Cun)在(Zai),(?)直(Zhi)到(Dao)有(You)删(Shan)除(Chu)操(Cao)作(Zuo)来(Lai)主(Zhu)动(Dong)清(Qing)除(Chu)这(Zhe)个(Ge)节(Jie)点(Dian)。(?)否(Fou)则(Ze)不(Bu)会(Hui)因(Yin)为(Wei)创(Chuang)建(Jian)该(Gai)节(Jie)点(Dian)的(De)客(Ke)户(Hu)端(Duan)会(Hui)话(Hua)失(Shi)效(Xiao)而(?)消(Xiao)失(Shi)。(?)
(2)PERSISTENT_SEQUENTIAL 持(Chi)久(Jiu)顺(Shun)序(Xu)节(Jie)点(Dian):(?)这(Zhe)类(Lei)节(Jie)点(Dian)的(De)基(Ji)本(Ben)特(Te)性(Xing)和(He)上(Shang)面(Mian)的(De)节(Jie)点(Dian)类(Lei)型(Xing)是(Shi)一(Yi)致(Zhi)的(De)。(?)额(E)外(Wai)的(De)特(Te)性(Xing)是(Shi),(?)在(Zai)ZK中(Zhong),(?)每(Mei)个(Ge)父(Fu)节(Jie)点(Dian)会(Hui)为(Wei)他(Ta)的(De)第(Di)一(Yi)级(Ji)子(Zi)节(Jie)点(Dian)维(Wei)护(Hu)一(Yi)份(Fen)时(Shi)序(Xu),(?)会(Hui)记(Ji)录(Lu)每(Mei)个(Ge)子(Zi)节(Jie)点(Dian)创(Chuang)建(Jian)的(De)先(Xian)后(Hou)顺(Shun)序(Xu)。(?)基(Ji)于(Yu)这(Zhe)个(Ge)特(Te)性(Xing),(?)在(Zai)创(Chuang)建(Jian)子(Zi)节(Jie)点(Dian)的(De)时(Shi)候(Hou),(?)可(Ke)以(Yi)设(She)置(Zhi)这(Zhe)个(Ge)属(Shu)性(Xing),(?)那(Na)么(Me)在(Zai)创(Chuang)建(Jian)节(Jie)点(Dian)过(Guo)程(Cheng)中(Zhong),(?)ZK会(Hui)自(Zi)动(Dong)为(Wei)给(Gei)定(Ding)节(Jie)点(Dian)名(Ming)加(Jia)上(Shang)一(Yi)个(Ge)数(Shu)字(Zi)后(Hou)缀(Zhui),(?)作(Zuo)为(Wei)新(Xin)的(De)节(Jie)点(Dian)名(Ming)。(?)这(Zhe)个(Ge)数(Shu)字(Zi)后(Hou)缀(Zhui)的(De)范(Fan)围(Wei)是(Shi)整(Zheng)型(Xing)的(De)最(Zui)大(Da)值(Zhi)。(?)在(Zai)创(Chuang)建(Jian)节(Jie)点(Dian)的(De)时(Shi)候(Hou)只(Zhi)需(Xu)要(Yao)传(Chuan)入(Ru)节(Jie)点(Dian) “(?)/test_”(?),(?)这(Zhe)样(Yang)之(Zhi)后(Hou),(?)zookeeper自(Zi)动(Dong)会(Hui)给(Gei)”(?)test_”(?)后(Hou)面(Mian)补(Bu)充(Chong)数(Shu)字(Zi)。(?)
(3)EPHEMERAL 临(Lin)时(Shi)节(Jie)点(Dian):(?)和(He)持(Chi)久(Jiu)节(Jie)点(Dian)不(Bu)同(Tong)的(De)是(Shi),(?)临(Lin)时(Shi)节(Jie)点(Dian)的(De)生(Sheng)命(Ming)周(Zhou)期(Qi)和(He)客(Ke)户(Hu)端(Duan)会(Hui) 话(Hua)绑(Bang)定(Ding)。(?)也(Ye)就(Jiu)是(Shi)说(Shuo),(?)如(Ru)果(Guo)客(Ke)户(Hu)端(Duan)会(Hui)话(Hua)失(Shi)效(Xiao),(?)那(Na)么(Me)这(Zhe)个(Ge)节(Jie)点(Dian)就(Jiu)会(Hui)自(Zi)动(Dong)被(Bei)清(Qing)除(Chu)掉(Diao)。(?)注(Zhu)意(Yi),(?)这(Zhe)里(Li)提(Ti)到(Dao)的(De)是(Shi)会(Hui)话(Hua)失(Shi)效(Xiao),(?)而(?)非(Fei)连(Lian)接(Jie)断(Duan)开(Kai)。(?)另(Ling)外(Wai),(?)在(Zai)临(Lin)时(Shi)节(Jie)点(Dian)下(Xia)面(Mian)不(Bu)能(Neng)创(Chuang)建(Jian)子(Zi)节(Jie)点(Dian)。(?)
这(Zhe)里(Li)还(Huan)要(Yao)注(Zhu)意(Yi)一(Yi)件(Jian)事(Shi),(?)就(Jiu)是(Shi)当(Dang)你(Ni)客(Ke)户(Hu)端(Duan)会(Hui)话(Hua)失(Shi)效(Xiao)后(Hou),(?)所(Suo)产(Chan)生(Sheng)的(De)节(Jie)点(Dian)也(Ye)不(Bu)是(Shi)一(Yi)下(Xia)子(Zi)就(Jiu)消(Xiao)失(Shi)了(Liao),(?)也(Ye)要(Yao)过(Guo)一(Yi)段(Duan)时(Shi)间(Jian),(?)大(Da)概(Gai)是(Shi)10秒(Miao)以(Yi)内(Nei),(?)可(Ke)以(Yi)试(Shi)一(Yi)下(Xia),(?)本(Ben)机(Ji)操(Cao)作(Zuo)生(Sheng)成(Cheng)节(Jie)点(Dian),(?)在(Zai)服(Fu)务(Wu)器(Qi)端(Duan)用(Yong)命(Ming)令(Ling)来(Lai)查(Cha)看(Kan)当(Dang)前(Qian)的(De)节(Jie)点(Dian)数(Shu)目(Mu),(?)你(Ni)会(Hui)发(Fa)现(Xian)客(Ke)户(Hu)端(Duan)已(Yi)经(Jing)stop,(?)但(Dan)是(Shi)产(Chan)生(Sheng)的(De)节(Jie)点(Dian)还(Huan)在(Zai)。(?)
EPHEMERAL_SEQUENTIAL 临(Lin)时(Shi)自(Zi)动(Dong)编(Bian)号(Hao)节(Jie)点(Dian):(?)此(Ci)节(Jie)点(Dian)是(Shi)属(Shu)于(Yu)临(Lin)时(Shi)节(Jie)点(Dian),(?)不(Bu)过(Guo)带(Dai)有(You)顺(Shun)序(Xu),(?)客(Ke)户(Hu)端(Duan)会(Hui)话(Hua)结(Jie)束(Shu)节(Jie)点(Dian)就(Jiu)消(Xiao)失(Shi)。(?)
Dubbo是(Shi)阿(A)里(Li)巴(Ba)巴(Ba)公(Gong)司(Si)开(Kai)源(Yuan)的(De)一(Yi)个(Ge)高(Gao)性(Xing)能(Neng)优(You)秀(Xiu)的(De)服(Fu)务(Wu)框(Kuang)架(Jia),(?)使(Shi)得(De)应(Ying)用(Yong)可(Ke)通(Tong)过(Guo)高(Gao)性(Xing)能(Neng)的(De) RPC 实(Shi)现(Xian)服(Fu)务(Wu)的(De)输(Shu)出(Chu)和(He)输(Shu)入(Ru)功(Gong)能(Neng),(?)可(Ke)以(Yi)和(He)Spring框(Kuang)架(Jia)无(Wu)缝(Feng)集(Ji)成(Cheng)。(?)Dubbo框(Kuang)架(Jia),(?)是(Shi)基(Ji)于(Yu)容(Rong)器(Qi)运(Yun)行(Xing)的(De).。(?)容(Rong)器(Qi)是(Shi)Spring。(?)
其(Qi)核(He)心(Xin)部(Bu)分(Fen)包(Bao)含(Han):
1. 远(Yuan)程(Cheng)通(Tong)讯(Xun): 提(Ti)供(Gong)对(Dui)多(Duo)种(Zhong)基(Ji)于(Yu)长(Chang)连(Lian)接(Jie)的(De)NIO框(Kuang)架(Jia)抽(Chou)象(Xiang)封(Feng)装(Zhuang),(?)包(Bao)括(Kuo)多(Duo)种(Zhong)线(Xian)程(Cheng)模(Mo)型(Xing),(?)序(Xu)列(Lie)化(Hua),(?)以(Yi)及(Ji)“(?)请(Qing)求(Qiu)-响(Xiang)应(Ying)”(?)模(Mo)式(Shi)的(De)信(Xin)息(Xi)交(Jiao)换(Huan)方(Fang)式(Shi)。(?)
2. 集(Ji)群(Qun)容(Rong)错(Cuo): 提(Ti)供(Gong)基(Ji)于(Yu)接(Jie)口(Kou)方(Fang)法(Fa)的(De)透(Tou)明(Ming)远(Yuan)程(Cheng)过(Guo)程(Cheng)调(Diao)用(Yong),(?)包(Bao)括(Kuo)多(Duo)协(Xie)议(Yi)支(Zhi)持(Chi),(?)以(Yi)及(Ji)软(Ruan)负(Fu)载(Zai)均(Jun)衡(Heng),(?)失(Shi)败(Bai)容(Rong)错(Cuo),(?)地(Di)址(Zhi)路(Lu)由(You),(?)动(Dong)态(Tai)配(Pei)置(Zhi)等(Deng)集(Ji)群(Qun)支(Zhi)持(Chi)。(?)
3. 自(Zi)动(Dong)发(Fa)现(Xian): 基(Ji)于(Yu)注(Zhu)册(Ce)中(Zhong)心(Xin)目(Mu)录(Lu)服(Fu)务(Wu),(?)使(Shi)服(Fu)务(Wu)消(Xiao)费(Fei)方(Fang)能(Neng)动(Dong)态(Tai)的(De)查(Cha)找(Zhao)服(Fu)务(Wu)提(Ti)供(Gong)方(Fang),(?)使(Shi)地(Di)址(Zhi)透(Tou)明(Ming),(?)使(Shi)服(Fu)务(Wu)提(Ti)供(Gong)方(Fang)可(Ke)以(Yi)平(Ping)滑(Hua)增(Zeng)加(Jia)或(Huo)减(Jian)少(Shao)机(Ji)器(Qi)。(?)
Dubbo能(Neng)做(Zuo)什(Shi)么(Me)?(?)
1.透(Tou)明(Ming)化(Hua)的(De)远(Yuan)程(Cheng)方(Fang)法(Fa)调(Diao)用(Yong),(?)就(Jiu)像(Xiang)调(Diao)用(Yong)本(Ben)地(Di)方(Fang)法(Fa)一(Yi)样(Yang)调(Diao)用(Yong)远(Yuan)程(Cheng)方(Fang)法(Fa),(?)只(Zhi)需(Xu)简(Jian)单(Dan)配(Pei)置(Zhi),(?)没(Mei)有(You)任(Ren)何(He)API侵(Qin)入(Ru)。(?)
2.软(Ruan)负(Fu)载(Zai)均(Jun)衡(Heng)及(Ji)容(Rong)错(Cuo)机(Ji)制(Zhi),(?)可(Ke)在(Zai)内(Nei)网(Wang)替(Ti)代(Dai)F5等(Deng)硬(Ying)件(Jian)负(Fu)载(Zai)均(Jun)衡(Heng)器(Qi),(?)降(Jiang)低(Di)成(Cheng)本(Ben),(?)减(Jian)少(Shao)单(Dan)点(Dian)。(?)
3. 服(Fu)务(Wu)自(Zi)动(Dong)注(Zhu)册(Ce)与(Yu)发(Fa)现(Xian),(?)不(Bu)再(Zai)需(Xu)要(Yao)写(Xie)死(Si)服(Fu)务(Wu)提(Ti)供(Gong)方(Fang)地(Di)址(Zhi),(?)注(Zhu)册(Ce)中(Zhong)心(Xin)基(Ji)于(Yu)接(Jie)口(Kou)名(Ming)查(Cha)询(Xun)服(Fu)务(Wu)提(Ti)供(Gong)者(Zhe)的(De)IP地(Di)址(Zhi),(?)并(Bing)且(Qie)能(Neng)够(Gou)平(Ping)滑(Hua)添(Tian)加(Jia)或(Huo)删(Shan)除(Chu)服(Fu)务(Wu)提(Ti)供(Gong)者(Zhe)。(?)
Dubbo的(De)存(Cun)在(Zai)简(Jian)单(Dan)来(Lai)说(Shuo)就(Jiu)是(Shi)要(Yao)减(Jian)小(Xiao)service层(Ceng)的(De)压(Ya)力(Li)。(?)
远(Yuan)程(Cheng)过(Guo)程(Cheng)调(Diao)用(Yong)协(Xie)议(Yi),(?)它(Ta)是(Shi)一(Yi)种(Zhong)通(Tong)过(Guo)网(Wang)络(Luo)从(Cong)远(Yuan)程(Cheng)计(Ji)算(Suan)机(Ji)程(Cheng)序(Xu)上(Shang)请(Qing)求(Qiu)服(Fu)务(Wu),(?)而(?)不(Bu)需(Xu)要(Yao)了(Liao)解(Jie)底(Di)层(Ceng)网(Wang)络(Luo)技(Ji)术(Shu)的(De)协(Xie)议(Yi)。(?)RPC协(Xie)议(Yi)假(Jia)定(Ding)某(Mou)些(Xie)传(Chuan)输(Shu)协(Xie)议(Yi)的(De)存(Cun)在(Zai),(?)如(Ru)TCP或(Huo)UDP,(?)为(Wei)通(Tong)信(Xin)程(Cheng)序(Xu)之(Zhi)间(Jian)携(Xie)带(Dai)信(Xin)息(Xi)数(Shu)据(Ju)。(?)在(Zai)OSI网(Wang)络(Luo)通(Tong)信(Xin)模(Mo)型(Xing)中(Zhong),(?)RPC跨(Kua)越(Yue)了(Liao)传(Chuan)输(Shu)层(Ceng)和(He)应(Ying)用(Yong)层(Ceng)。(?)RPC使(Shi)得(De)开(Kai)发(Fa)包(Bao)括(Kuo)网(Wang)络(Luo)分(Fen)布(Bu)式(Shi)多(Duo)程(Cheng)序(Xu)在(Zai)内(Nei)的(De)应(Ying)用(Yong)程(Cheng)序(Xu)更(Geng)加(Jia)容(Rong)易(Yi)。(?)
registry
注(Zhu)册(Ce)中(Zhong)心(Xin). 是(Shi)用(Yong)于(Yu)发(Fa)布(Bu)和(He)订(Ding)阅(Yue)服(Fu)务(Wu)的(De)一(Yi)个(Ge)平(Ping)台(Tai).用(Yong)于(Yu)替(Ti)代(Dai)SOA结(Jie)构(Gou)体(Ti)系(Xi)框(Kuang)架(Jia)中(Zhong)的(De)ESB服(Fu)务(Wu)总(Zong)线(Xian)的(De)。(?)
发(Fa)布(Bu)
开(Kai)发(Fa)服(Fu)务(Wu)端(Duan)代(Dai)码(Ma)完(Wan)毕(Bi)后(Hou), 将(Jiang)服(Fu)务(Wu)信(Xin)息(Xi)发(Fa)布(Bu)出(Chu)去(Qu). 实(Shi)现(Xian)一(Yi)个(Ge)服(Fu)务(Wu)的(De)公(Gong)开(Kai).
订(Ding)阅(Yue)
客(Ke)户(Hu)端(Duan)程(Cheng)序(Xu),从(Cong)注(Zhu)册(Ce)中(Zhong)心(Xin)下(Xia)载(Zai)服(Fu)务(Wu)内(Nei)容(Rong) 这(Zhe)个(Ge)过(Guo)程(Cheng)是(Shi)订(Ding)阅(Yue).
订(Ding)阅(Yue)服(Fu)务(Wu)的(De)时(Shi)候(Hou), 会(Hui)将(Jiang)发(Fa)布(Bu)的(De)服(Fu)务(Wu)所(Suo)有(You)信(Xin)息(Xi),一(Yi)次(Ci)性(Xing)下(Xia)载(Zai)到(Dao)客(Ke)户(Hu)端(Duan).
客(Ke)户(Hu)端(Duan)也(Ye)可(Ke)以(Yi)自(Zi)定(Ding)义(Yi), 修(Xiu)改(Gai)部(Bu)分(Fen)服(Fu)务(Wu)配(Pei)置(Zhi)信(Xin)息(Xi). 如(Ru): 超(Chao)时(Shi)的(De)时(Shi)长(Chang), 调(Diao)用(Yong)的(De)重(Zhong)试(Shi)次(Ci)数(Shu)等(Deng).
Consumer
服(Fu)务(Wu)的(De)消(Xiao)费(Fei)者(Zhe), 就(Jiu)是(Shi)服(Fu)务(Wu)的(De)客(Ke)户(Hu)端(Duan).
消(Xiao)费(Fei)者(Zhe)必(Bi)须(Xu)使(Shi)用(Yong)Dubbo技(Ji)术(Shu)开(Kai)发(Fa)部(Bu)分(Fen)代(Dai)码(Ma). 基(Ji)本(Ben)上(Shang)都(Du)是(Shi)配(Pei)置(Zhi)文(Wen)件(Jian)定(Ding)义(Yi).
provider
服(Fu)务(Wu)的(De)提(Ti)供(Gong)者(Zhe), 就(Jiu)是(Shi)服(Fu)务(Wu)端(Duan).
服(Fu)务(Wu)端(Duan)必(Bi)须(Xu)使(Shi)用(Yong)Dubbo技(Ji)术(Shu)开(Kai)发(Fa)部(Bu)分(Fen)代(Dai)码(Ma). 以(Yi)配(Pei)置(Zhi)文(Wen)件(Jian)为(Wei)主(Zhu).
container
容(Rong)器(Qi). Dubbo技(Ji)术(Shu)的(De)服(Fu)务(Wu)端(Duan)(Provider), 在(Zai)启(Qi)动(Dong)执(Zhi)行(Xing)的(De)时(Shi)候(Hou), 必(Bi)须(Xu)依(Yi)赖(Lai)容(Rong)器(Qi)才(Cai)能(Neng)正(Zheng)常(Chang)启(Qi)动(Dong).
默(Mo)认(Ren)依(Yi)赖(Lai)的(De)就(Jiu)是(Shi)spring容(Rong)器(Qi). 且(Qie)Dubbo技(Ji)术(Shu)不(Bu)能(Neng)脱(Tuo)离(Li)spring框(Kuang)架(Jia).
在(Zai)2.5.3版(Ban)本(Ben)的(De)dubbo中(Zhong), 默(Mo)认(Ren)依(Yi)赖(Lai)的(De)是(Shi)spring2.5版(Ban)本(Ben)技(Ji)术(Shu). 可(Ke)以(Yi)选(Xuan)用(Yong)spring4.5以(Yi)下(Xia)版(Ban)本(Ben).
在(Zai)2.5.7版(Ban)本(Ben)的(De)dubbo中(Zhong), 默(Mo)认(Ren)依(Yi)赖(Lai)的(De)是(Shi)spring4.3.10版(Ban)本(Ben)技(Ji)术(Shu). 可(Ke)以(Yi)选(Xuan)择(Ze)任(Ren)意(Yi)的(De)spring版(Ban)本(Ben).
monitor
监(Jian)控(Kong)中(Zhong)心(Xin). 是(Shi)Dubbo提(Ti)供(Gong)的(De)一(Yi)个(Ge)jar工(Gong)程(Cheng).
主(Zhu)要(Yao)功(Gong)能(Neng)是(Shi)监(Jian)控(Kong)服(Fu)务(Wu)端(Duan)(Provider)和(He)消(Xiao)费(Fei)端(Duan)(Consumer)的(De)使(Shi)用(Yong)数(Shu)据(Ju)的(De). 如(Ru): 服(Fu)务(Wu)端(Duan)是(Shi)什(Shi)么(Me),有(You)多(Duo)少(Shao)接(Jie)口(Kou),多(Duo)少(Shao)方(Fang)法(Fa), 调(Diao)用(Yong)次(Ci)数(Shu), 压(Ya)力(Li)信(Xin)息(Xi)等(Deng). 客(Ke)户(Hu)端(Duan)有(You)多(Duo)少(Shao), 调(Diao)用(Yong)过(Guo)哪(Na)些(Xie)服(Fu)务(Wu)端(Duan), 调(Diao)用(Yong)了(Liao)多(Duo)少(Shao)次(Ci)等(Deng).

0 start: 启(Qi)动(Dong)Spring容(Rong)器(Qi)时(Shi),自(Zi)动(Dong)启(Qi)动(Dong)Dubbo的(De)Provider
1、(?)register: Dubbo的(De)Provider在(Zai)启(Qi)动(Dong)后(Hou)自(Zi)动(Dong)会(Hui)去(Qu)注(Zhu)册(Ce)中(Zhong)心(Xin)注(Zhu)册(Ce)内(Nei)容(Rong).注(Zhu)册(Ce)的(De)内(Nei)容(Rong)包(Bao)括(Kuo):
1.1 Provider的(De) IP
1.2 Provider 的(De)端(Duan)口(Kou).
1.3 Provider 对(Dui)外(Wai)提(Ti)供(Gong)的(De)接(Jie)口(Kou)列(Lie)表(Biao).哪(Na)些(Xie)方(Fang)法(Fa).哪(Na)些(Xie)接(Jie)口(Kou)类(Lei)
1.4 Dubbo 的(De)版(Ban)本(Ben).
1.5 访(Fang)问(Wen)Provider的(De)协(Xie)议(Yi).
2、(?)subscribe: 订(Ding)阅(Yue).当(Dang)Consumer启(Qi)动(Dong)时(Shi),自(Zi)动(Dong)去(Qu)Registry获(Huo)取(Qu)到(Dao)所(Suo)已(Yi)注(Zhu)册(Ce)的(De)服(Fu)务(Wu)的(De)信(Xin)息(Xi).
3、(?)notify: 通(Tong)知(Zhi).当(Dang)Provider的(De)信(Xin)息(Xi)发(Fa)生(Sheng)变(Bian)化(Hua)时(Shi), 自(Zi)动(Dong)由(You)Registry向(Xiang)Consumer推(Tui)送(Song)通(Tong)知(Zhi).
4、(?)invoke: 调(Diao)用(Yong). Consumer 调(Diao)用(Yong)Provider中(Zhong)方(Fang)法(Fa)
4.1 同(Tong)步(Bu)请(Qing)求(Qiu).消(Xiao)耗(Hao)一(Yi)定(Ding)性(Xing)能(Neng).但(Dan)是(Shi)必(Bi)须(Xu)是(Shi)同(Tong)步(Bu)请(Qing)求(Qiu),因(Yin)为(Wei)需(Xu)要(Yao)接(Jie)收(Shou)调(Diao)用(Yong)方(Fang)法(Fa)后(Hou)的(De)结(Jie)果(Guo).
5、(?)count:次(Ci)数(Shu). 每(Mei)隔(Ge)2分(Fen)钟(Zhong),provoider和(He)consumer自(Zi)动(Dong)向(Xiang)Monitor发(Fa)送(Song)访(Fang)问(Wen)次(Ci)数(Shu).Monitor进(Jin)行(Xing)统(Tong)计(Ji).
1、(?)Dubbo协(Xie)议(Yi)(官(Guan)方(Fang)推(Tui)荐(Jian)协(Xie)议(Yi))
优(You)点(Dian):(?)
采(Cai)用(Yong)NIO复(Fu)用(Yong)单(Dan)一(Yi)长(Chang)连(Lian)接(Jie),(?)并(Bing)使(Shi)用(Yong)线(Xian)程(Cheng)池(Chi)并(Bing)发(Fa)处(Chu)理(Li)请(Qing)求(Qiu),(?)减(Jian)少(Shao)握(Wo)手(Shou)和(He)加(Jia)大(Da)并(Bing)发(Fa)效(Xiao)率(Lu),(?)性(Xing)能(Neng)较(Jiao)好(Hao)((?)推(Tui)荐(Jian)使(Shi)用(Yong))(?)
缺(Que)点(Dian):(?)
大(Da)文(Wen)件(Jian)上(Shang)传(Chuan)时(Shi),可(Ke)能(Neng)出(Chu)现(Xian)问(Wen)题(Ti)(不(Bu)使(Shi)用(Yong)Dubbo文(Wen)件(Jian)上(Shang)传(Chuan))
2、(?)RMI(Remote Method Invocation)协(Xie)议(Yi)
优(You)点(Dian):
JDK自(Zi)带(Dai)的(De)能(Neng)力(Li)。(?)可(Ke)与(Yu)原(Yuan)生(Sheng)RMI互(Hu)操(Cao)作(Zuo),(?)基(Ji)于(Yu)TCP协(Xie)议(Yi)
缺(Que)点(Dian):
偶(Ou)尔(?)连(Lian)接(Jie)失(Shi)败(Bai).
3、(?)Hessian协(Xie)议(Yi)
优(You)点(Dian):
可(Ke)与(Yu)原(Yuan)生(Sheng)Hessian互(Hu)操(Cao)作(Zuo),(?)基(Ji)于(Yu)HTTP协(Xie)议(Yi)
缺(Que)点(Dian):
需(Xu)hessian.jar支(Zhi)持(Chi),(?)http短(Duan)连(Lian)接(Jie)的(De)开(Kai)销(Xiao)大(Da)
1、(?)Zookeeper(官(Guan)方(Fang)推(Tui)荐(Jian))
优(You)点(Dian):支(Zhi)持(Chi)分(Fen)布(Bu)式(Shi).很(Hen)多(Duo)周(Zhou)边(Bian)产(Chan)品(Pin).
缺(Que)点(Dian): 受(Shou)限(Xian)于(Yu)Zookeeper软(Ruan)件(Jian)的(De)稳(Wen)定(Ding)性(Xing).Zookeeper专(Zhuan)门(Men)分(Fen)布(Bu)式(Shi)辅(Fu)助(Zhu)软(Ruan)件(Jian),稳(Wen)定(Ding)较(Jiao)优(You)
2、(?)Multicast
优(You)点(Dian):去(Qu)中(Zhong)心(Xin)化(Hua),不(Bu)需(Xu)要(Yao)单(Dan)独(Du)安(An)装(Zhuang)软(Ruan)件(Jian).
缺(Que)点(Dian):Provider和(He)Consumer和(He)Registry不(Bu)能(Neng)跨(Kua)机(Ji)房(Fang)(路(Lu)由(You))
3、(?)Redis
优(You)点(Dian):支(Zhi)持(Chi)集(Ji)群(Qun),性(Xing)能(Neng)高(Gao)
缺(Que)点(Dian):要(Yao)求(Qiu)服(Fu)务(Wu)器(Qi)时(Shi)间(Jian)同(Tong)步(Bu).否(Fou)则(Ze)可(Ke)能(Neng)出(Chu)现(Xian)集(Ji)群(Qun)失(Shi)败(Bai)问(Wen)题(Ti).
4、(?)Simple
优(You)点(Dian): 标(Biao)准(Zhun)RPC服(Fu)务(Wu).没(Mei)有(You)兼(Jian)容(Rong)问(Wen)题(Ti)
缺(Que)点(Dian): 不(Bu)支(Zhi)持(Chi)集(Ji)群(Qun).
答(Da):(?)SessionFactory对(Dui)应(Ying)Hibernate的(De)一(Yi)个(Ge)数(Shu)据(Ju)存(Cun)储(Chu)的(De)概(Gai)念(Nian),(?)它(Ta)是(Shi)线(Xian)程(Cheng)安(An)全(Quan)的(De),(?)可(Ke)以(Yi)被(Bei)多(Duo)个(Ge)线(Xian)程(Cheng)并(Bing)发(Fa)访(Fang)问(Wen)。(?)SessionFactory一(Yi)般(Ban)只(Zhi)会(Hui)在(Zai)启(Qi)动(Dong)的(De)时(Shi)候(Hou)构(Gou)建(Jian)。(?)对(Dui)于(Yu)应(Ying)用(Yong)程(Cheng)序(Xu),(?)最(Zui)好(Hao)将(Jiang)SessionFactory通(Tong)过(Guo)单(Dan)例(Li)的(De)模(Mo)式(Shi)进(Jin)行(Xing)封(Feng)装(Zhuang)以(Yi)便(Bian)于(Yu)访(Fang)问(Wen)。(?)Session是(Shi)一(Yi)个(Ge)轻(Qing)量(Liang)级(Ji)非(Fei)线(Xian)程(Cheng)安(An)全(Quan)的(De)对(Dui)象(Xiang)((?)线(Xian)程(Cheng)间(Jian)不(Bu)能(Neng)共(Gong)享(Xiang)session)(?),(?)它(Ta)表(Biao)示(Shi)与(Yu)数(Shu)据(Ju)库(Ku)进(Jin)行(Xing)交(Jiao)互(Hu)的(De)一(Yi)个(Ge)工(Gong)作(Zuo)单(Dan)元(Yuan)。(?)Session是(Shi)由(You)SessionFactory创(Chuang)建(Jian)的(De),(?)在(Zai)任(Ren)务(Wu)完(Wan)成(Cheng)之(Zhi)后(Hou)它(Ta)会(Hui)被(Bei)关(Guan)闭(Bi)。(?)Session是(Shi)持(Chi)久(Jiu)层(Ceng)服(Fu)务(Wu)对(Dui)外(Wai)提(Ti)供(Gong)的(De)主(Zhu)要(Yao)接(Jie)口(Kou)。(?)Session会(Hui)延(Yan)迟(Chi)获(Huo)取(Qu)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)((?)也(Ye)就(Jiu)是(Shi)在(Zai)需(Xu)要(Yao)的(De)时(Shi)候(Hou)才(Cai)会(Hui)获(Huo)取(Qu))(?)。(?)为(Wei)了(Liao)避(Bi)免(Mian)创(Chuang)建(Jian)太(Tai)多(Duo)的(De)session,(?)可(Ke)以(Yi)使(Shi)用(Yong)ThreadLocal来(Lai)取(Qu)得(De)当(Dang)前(Qian)的(De)session,(?)无(Wu)论(Lun)你(Ni)调(Diao)用(Yong)多(Duo)少(Shao)次(Ci)getCurrentSession()方(Fang)法(Fa),(?)返(Fan)回(Hui)的(De)都(Du)是(Shi)同(Tong)一(Yi)个(Ge)session。(?)
答(Da):(?)主(Zhu)要(Yao)有(You)以(Yi)下(Xia)三(San)项(Xiang)区(Qu)别(Bie):(?)
1)(?)如(Ru)果(Guo)没(Mei)有(You)找(Zhao)到(Dao)符(Fu)合(He)条(Tiao)件(Jian)的(De)记(Ji)录(Lu), get方(Fang)法(Fa)返(Fan)回(Hui)null,load方(Fang)法(Fa)抛(Pao)出(Chu)异(Yi)常(Chang)
2)(?)get方(Fang)法(Fa)直(Zhi)接(Jie)返(Fan)回(Hui)实(Shi)体(Ti)类(Lei)对(Dui)象(Xiang), load方(Fang)法(Fa)返(Fan)回(Hui)实(Shi)体(Ti)类(Lei)对(Dui)象(Xiang)的(De)代(Dai)理(Li)
3)(?)在(Zai)Hibernate 3之(Zhi)前(Qian),(?)get方(Fang)法(Fa)只(Zhi)在(Zai)一(Yi)级(Ji)缓(Huan)存(Cun)(内(Nei)部(Bu)缓(Huan)存(Cun))中(Zhong)进(Jin)行(Xing)数(Shu)据(Ju)查(Cha)找(Zhao), 如(Ru)果(Guo)没(Mei)有(You)找(Zhao)到(Dao)对(Dui)应(Ying)的(De)数(Shu)据(Ju)则(Ze)越(Yue)过(Guo)二(?)级(Ji)缓(Huan)存(Cun), 直(Zhi)接(Jie)发(Fa)出(Chu)SQL语(Yu)句(Ju)完(Wan)成(Cheng)数(Shu)据(Ju)读(Du)取(Qu); load方(Fang)法(Fa)则(Ze)可(Ke)以(Yi)充(Chong)分(Fen)利(Li)用(Yong)二(?)级(Ji)缓(Huan)存(Cun)中(Zhong)的(De)现(Xian)有(You)数(Shu)据(Ju);(?)当(Dang)然(Ran)从(Cong)Hibernate 3开(Kai)始(Shi),(?)get方(Fang)法(Fa)不(Bu)再(Zai)是(Shi)对(Dui)二(?)级(Ji)缓(Huan)存(Cun)只(Zhi)写(Xie)不(Bu)读(Du),(?)它(Ta)也(Ye)是(Shi)可(Ke)以(Yi)访(Fang)问(Wen)二(?)级(Ji)缓(Huan)存(Cun)的(De)
简(Jian)单(Dan)的(De)说(Shuo),(?)对(Dui)于(Yu)load()方(Fang)法(Fa)Hibernate认(Ren)为(Wei)该(Gai)数(Shu)据(Ju)在(Zai)数(Shu)据(Ju)库(Ku)中(Zhong)一(Yi)定(Ding)存(Cun)在(Zai)可(Ke)以(Yi)放(Fang)心(Xin)的(De)使(Shi)用(Yong)代(Dai)理(Li)来(Lai)实(Shi)现(Xian)延(Yan)迟(Chi)加(Jia)载(Zai),(?)如(Ru)果(Guo)没(Mei)有(You)数(Shu)据(Ju)就(Jiu)抛(Pao)出(Chu)异(Yi)常(Chang),(?)而(?)通(Tong)过(Guo)get()方(Fang)法(Fa)去(Qu)取(Qu)的(De)数(Shu)据(Ju)可(Ke)以(Yi)不(Bu)存(Cun)在(Zai)。(?)
答(Da):(?)Hibernate的(De)对(Dui)象(Xiang)有(You)三(San)种(Zhong)状(Zhuang)态(Tai):(?)瞬(Shun)态(Tai)、(?)持(Chi)久(Jiu)态(Tai)和(He)游(You)离(Li)态(Tai)。(?)游(You)离(Li)状(Zhuang)态(Tai)的(De)实(Shi)例(Li)可(Ke)以(Yi)通(Tong)过(Guo)调(Diao)用(Yong)save()、(?)persist()或(Huo)者(Zhe)saveOrUpdate()方(Fang)法(Fa)进(Jin)行(Xing)持(Chi)久(Jiu)化(Hua);(?)脱(Tuo)管(Guan)状(Zhuang)态(Tai)的(De)实(Shi)例(Li)可(Ke)以(Yi)通(Tong)过(Guo)调(Diao)用(Yong) update()、(?)0saveOrUpdate()、(?)lock()或(Huo)者(Zhe)replicate()进(Jin)行(Xing)持(Chi)久(Jiu)化(Hua)。(?)save()和(He)persist()将(Jiang)会(Hui)引(Yin)发(Fa)SQL的(De)INSERT语(Yu)句(Ju),(?)而(?)update()或(Huo)merge()会(Hui)引(Yin)发(Fa)UPDATE语(Yu)句(Ju)。(?)save()和(He)update()的(De)区(Qu)别(Bie)在(Zai)于(Yu)一(Yi)个(Ge)是(Shi)将(Jiang)瞬(Shun)态(Tai)对(Dui)象(Xiang)变(Bian)成(Cheng)持(Chi)久(Jiu)态(Tai),(?)一(Yi)个(Ge)是(Shi)将(Jiang)游(You)离(Li)态(Tai)对(Dui)象(Xiang)变(Bian)为(Wei)持(Chi)久(Jiu)态(Tai)。(?)merge方(Fang)法(Fa)可(Ke)以(Yi)完(Wan)成(Cheng)save()和(He)update()方(Fang)法(Fa)的(De)功(Gong)能(Neng),(?)它(Ta)的(De)意(Yi)图(Tu)是(Shi)将(Jiang)新(Xin)的(De)状(Zhuang)态(Tai)合(He)并(Bing)到(Dao)已(Yi)有(You)的(De)持(Chi)久(Jiu)化(Hua)对(Dui)象(Xiang)上(Shang)或(Huo)创(Chuang)建(Jian)新(Xin)的(De)持(Chi)久(Jiu)化(Hua)对(Dui)象(Xiang)。(?)按(An)照(Zhao)官(Guan)方(Fang)文(Wen)档(Dang)的(De)说(Shuo)明(Ming):(?)(1)persist()方(Fang)法(Fa)把(Ba)一(Yi)个(Ge)瞬(Shun)态(Tai)的(De)实(Shi)例(Li)持(Chi)久(Jiu)化(Hua),(?)但(Dan)是(Shi)并(Bing)"不(Bu)保(Bao)证(Zheng)"标(Biao)识(Shi)符(Fu)被(Bei)立(Li)刻(Ke)填(Tian)入(Ru)到(Dao)持(Chi)久(Jiu)化(Hua)实(Shi)例(Li)中(Zhong),(?)标(Biao)识(Shi)符(Fu)的(De)填(Tian)入(Ru)可(Ke)能(Neng)被(Bei)推(Tui)迟(Chi)到(Dao)flush的(De)时(Shi)间(Jian);(?)(2) persist"保(Bao)证(Zheng)",(?)当(Dang)它(Ta)在(Zai)一(Yi)个(Ge)事(Shi)务(Wu)外(Wai)部(Bu)被(Bei)调(Diao)用(Yong)的(De)时(Shi)候(Hou)并(Bing)不(Bu)触(Chu)发(Fa)一(Yi)个(Ge)Insert语(Yu)句(Ju),(?)当(Dang)需(Xu)要(Yao)封(Feng)装(Zhuang)一(Yi)个(Ge)长(Chang)会(Hui)话(Hua)流(Liu)程(Cheng)的(De)时(Shi)候(Hou),(?)一(Yi)个(Ge)persist这(Zhe)样(Yang)的(De)函(Han)数(Shu)是(Shi)需(Xu)要(Yao)的(De)。(?)(3)save"不(Bu)保(Bao)证(Zheng)"第(Di)2条(Tiao),它(Ta)要(Yao)返(Fan)回(Hui)标(Biao)识(Shi)符(Fu),(?)所(Suo)以(Yi)它(Ta)会(Hui)立(Li)即(Ji)执(Zhi)行(Xing)Insert语(Yu)句(Ju),(?)不(Bu)管(Guan)是(Shi)不(Bu)是(Shi)在(Zai)事(Shi)务(Wu)内(Nei)部(Bu)还(Huan)是(Shi)外(Wai)部(Bu)。(?)update()方(Fang)法(Fa)是(Shi)把(Ba)一(Yi)个(Ge)已(Yi)经(Jing)更(Geng)改(Gai)过(Guo)的(De)脱(Tuo)管(Guan)状(Zhuang)态(Tai)的(De)对(Dui)象(Xiang)变(Bian)成(Cheng)持(Chi)久(Jiu)状(Zhuang)态(Tai);(?)lock()方(Fang)法(Fa)是(Shi)把(Ba)一(Yi)个(Ge)没(Mei)有(You)更(Geng)改(Gai)过(Guo)的(De)脱(Tuo)管(Guan)状(Zhuang)态(Tai)的(De)对(Dui)象(Xiang)变(Bian)成(Cheng)持(Chi)久(Jiu)状(Zhuang)态(Tai)。(?)
vsftpd 是(Shi)“(?)very secure FTP daemon”(?)的(De)缩(Suo)写(Xie),(?)安(An)全(Quan)性(Xing)是(Shi)它(Ta)的(De)一(Yi)个(Ge)最(Zui)大(Da)的(De)特(Te)点(Dian)。(?)vsftpd 是(Shi)一(Yi)个(Ge) UNIX 类(Lei)操(Cao)作(Zuo)系(Xi)统(Tong)上(Shang)运(Yun)行(Xing)的(De)服(Fu)务(Wu)器(Qi)的(De)名(Ming)字(Zi),(?)它(Ta)可(Ke)以(Yi)运(Yun)行(Xing)在(Zai)诸(Zhu)如(Ru) Linux、(?)BSD、(?)Solaris、(?) HP-UNIX等(Deng)系(Xi)统(Tong)上(Shang)面(Mian),(?)是(Shi)一(Yi)个(Ge)完(Wan)全(Quan)免(Mian)费(Fei)的(De)、(?)开(Kai)放(Fang)源(Yuan)代(Dai)码(Ma)的(De)ftp服(Fu)务(Wu)器(Qi)软(Ruan)件(Jian),(?)支(Zhi)持(Chi)很(Hen)多(Duo)其(Qi)他(Ta)的(De) FTP 服(Fu)务(Wu)器(Qi)所(Suo)不(Bu)支(Zhi)持(Chi)的(De)特(Te)征(Zheng)。(?)
Nginx(engine x) 是(Shi)一(Yi)个(Ge)高(Gao)性(Xing)能(Neng)的(De)HTTP和(He)反(Fan)向(Xiang)代(Dai)理(Li)服(Fu)务(Wu)。(?)Nginx是(Shi)由(You)伊(Yi)戈(Ge)尔(?)·(?)赛(Sai)索(Suo)耶(Ye)夫(Fu)为(Wei)俄(E)罗(Luo)斯(Si)访(Fang)问(Wen)量(Liang)第(Di)二(?)的(De)Rambler.ru站(Zhan)点(Dian)((?)俄(E)文(Wen):(?)Р(?)а(?)м(?)б(?)л(?)е(?)р(?))(?)开(Kai)发(Fa)的(De),(?)第(Di)一(Yi)个(Ge)公(Gong)开(Kai)版(Ban)本(Ben)0.1.0发(Fa)布(Bu)于(Yu)2004年(Nian)10月(Yue)4日(Ri)。(?)
Nginx 是(Shi)一(Yi)个(Ge)很(Hen)强(Qiang)大(Da)的(De)高(Gao)性(Xing)能(Neng)Web和(He)反(Fan)向(Xiang)代(Dai)理(Li)服(Fu)务(Wu),(?)它(Ta)具(Ju)有(You)很(Hen)多(Duo)非(Fei)常(Chang)优(You)越(Yue)的(De)特(Te)性(Xing):(?)在(Zai)连(Lian)接(Jie)高(Gao)并(Bing)发(Fa)的(De)情(Qing)况(Kuang)下(Xia),(?)Nginx是(Shi)Apache服(Fu)务(Wu)不(Bu)错(Cuo)的(De)替(Ti)代(Dai)品(Pin):(?)Nginx在(Zai)美(Mei)国(Guo)是(Shi)做(Zuo)虚(Xu)拟(Ni)主(Zhu)机(Ji)生(Sheng)意(Yi)的(De)老(Lao)板(Ban)们(Men)经(Jing)常(Chang)选(Xuan)择(Ze)的(De)软(Ruan)件(Jian)平(Ping)台(Tai)之(Zhi)一(Yi)。(?)
答(Da):(?)http协(Xie)议(Yi)代(Dai)理(Li)
搭(Da)建(Jian)虚(Xu)拟(Ni)主(Zhu)机(Ji)
服(Fu)务(Wu)的(De)反(Fan)向(Xiang)代(Dai)理(Li)
在(Zai)反(Fan)向(Xiang)代(Dai)理(Li)中(Zhong)配(Pei)置(Zhi)集(Ji)群(Qun)的(De)负(Fu)载(Zai)均(Jun)衡(Heng)
正(Zheng)向(Xiang)代(Dai)理(Li),(?)意(Yi)思(Si)是(Shi)一(Yi)个(Ge)位(Wei)于(Yu)客(Ke)户(Hu)端(Duan)和(He)原(Yuan)始(Shi)服(Fu)务(Wu)器(Qi)(origin server)之(Zhi)间(Jian)的(De)服(Fu)务(Wu)器(Qi),(?)为(Wei)了(Liao)从(Cong)原(Yuan)始(Shi)服(Fu)务(Wu)器(Qi)取(Qu)得(De)内(Nei)容(Rong),(?)客(Ke)户(Hu)端(Duan)向(Xiang)代(Dai)理(Li)发(Fa)送(Song)一(Yi)个(Ge)请(Qing)求(Qiu)并(Bing)指(Zhi)定(Ding)目(Mu)标(Biao)(原(Yuan)始(Shi)服(Fu)务(Wu)器(Qi)),(?)然(Ran)后(Hou)代(Dai)理(Li)向(Xiang)原(Yuan)始(Shi)服(Fu)务(Wu)器(Qi)转(Zhuan)交(Jiao)请(Qing)求(Qiu)并(Bing)将(Jiang)获(Huo)得(De)的(De)内(Nei)容(Rong)返(Fan)回(Hui)给(Gei)客(Ke)户(Hu)端(Duan)。(?)客(Ke)户(Hu)端(Duan)才(Cai)能(Neng)使(Shi)用(Yong)正(Zheng)向(Xiang)代(Dai)理(Li)。(?)
反(Fan)向(Xiang)代(Dai)理(Li)((?)Reverse Proxy)(?)方(Fang)式(Shi)是(Shi)指(Zhi)以(Yi)代(Dai)理(Li)服(Fu)务(Wu)器(Qi)来(Lai)接(Jie)受(Shou)internet上(Shang)的(De)连(Lian)接(Jie)请(Qing)求(Qiu),(?)然(Ran)后(Hou)将(Jiang)请(Qing)求(Qiu)转(Zhuan)发(Fa)给(Gei)内(Nei)部(Bu)网(Wang)络(Luo)上(Shang)的(De)服(Fu)务(Wu)器(Qi),(?)并(Bing)将(Jiang)从(Cong)服(Fu)务(Wu)器(Qi)上(Shang)得(De)到(Dao)的(De)结(Jie)果(Guo)返(Fan)回(Hui)给(Gei)internet上(Shang)请(Qing)求(Qiu)连(Lian)接(Jie)的(De)客(Ke)户(Hu)端(Duan),(?)此(Ci)时(Shi)代(Dai)理(Li)服(Fu)务(Wu)器(Qi)对(Dui)外(Wai)就(Jiu)表(Biao)现(Xian)为(Wei)一(Yi)个(Ge)反(Fan)向(Xiang)代(Dai)理(Li)服(Fu)务(Wu)器(Qi)。(?)
答(Da):(?)Remote Dictionary Server(Redis)是(Shi)一(Yi)个(Ge)开(Kai)源(Yuan)的(De)使(Shi)用(Yong)ANSIC语(Yu)言(Yan)编(Bian)写(Xie)、(?)支(Zhi)持(Chi)网(Wang)络(Luo)、(?)可(Ke)基(Ji)于(Yu)内(Nei)存(Cun)亦(Yi)可(Ke)持(Chi)久(Jiu)化(Hua)的(De)日(Ri)志(Zhi)型(Xing)、(?)Key-Value数(Shu)据(Ju)库(Ku),(?)并(Bing)提(Ti)供(Gong)多(Duo)种(Zhong)语(Yu)言(Yan)的(De)API。(?)
它(Ta)通(Tong)常(Chang)被(Bei)称(Cheng)为(Wei)数(Shu)据(Ju)结(Jie)构(Gou)服(Fu)务(Wu)器(Qi),(?)因(Yin)为(Wei)值(Zhi)((?)value)(?)可(Ke)以(Yi)是(Shi) 字(Zi)符(Fu)串(Chuan)(String), 哈(Ha)希(Xi)(Map), 列(Lie)表(Biao)(list), 集(Ji)合(He)(sets) 和(He) 有(You)序(Xu)集(Ji)合(He)(sorted sets)等(Deng)类(Lei)型(Xing)。(?)
1. 支(Zhi)持(Chi)多(Duo)种(Zhong)数(Shu)据(Ju)结(Jie)构(Gou),(?)如(Ru) string(字(Zi)符(Fu)串(Chuan))、(?) list(双(Shuang)向(Xiang)链(Lian)表(Biao))、(?)dict(hash表(Biao))、(?)set(集(Ji)合(He))、(?)zset(排(Pai)序(Xu)set)、(?)hyperloglog(基(Ji)数(Shu)估(Gu)算(Suan))
2. 支(Zhi)持(Chi)持(Chi)久(Jiu)化(Hua)操(Cao)作(Zuo),(?)可(Ke)以(Yi)进(Jin)行(Xing)aof及(Ji)rdb数(Shu)据(Ju)持(Chi)久(Jiu)化(Hua)到(Dao)磁(Ci)盘(Pan),(?)从(Cong)而(?)进(Jin)行(Xing)数(Shu)据(Ju)备(Bei)份(Fen)或(Huo)数(Shu)据(Ju)恢(Hui)复(Fu)等(Deng)操(Cao)作(Zuo),(?)较(Jiao)好(Hao)的(De)防(Fang)止(Zhi)数(Shu)据(Ju)丢(Diu)失(Shi)的(De)手(Shou)段(Duan)。(?)
3. 支(Zhi)持(Chi)通(Tong)过(Guo)Replication进(Jin)行(Xing)数(Shu)据(Ju)复(Fu)制(Zhi),(?)通(Tong)过(Guo)master-slave机(Ji)制(Zhi),(?)可(Ke)以(Yi)实(Shi)时(Shi)进(Jin)行(Xing)数(Shu)据(Ju)的(De)同(Tong)步(Bu)复(Fu)制(Zhi),(?)支(Zhi)持(Chi)多(Duo)级(Ji)复(Fu)制(Zhi)和(He)增(Zeng)量(Liang)复(Fu)制(Zhi),(?)master-slave机(Ji)制(Zhi)是(Shi)Redis进(Jin)行(Xing)HA的(De)重(Zhong)要(Yao)手(Shou)段(Duan)。(?)
单(Dan)进(Jin)程(Cheng)请(Qing)求(Qiu),(?)所(Suo)有(You)命(Ming)令(Ling)串(Chuan)行(Xing)执(Zhi)行(Xing),(?)并(Bing)发(Fa)情(Qing)况(Kuang)下(Xia)不(Bu)需(Xu)要(Yao)考(Kao)虑(Lu)数(Shu)据(Ju)一(Yi)致(Zhi)性(Xing)问(Wen)题(Ti)。(?)
答(Da):(?)String(字(Zi)符(Fu)串(Chuan))
Hash(hash表(Biao))
List(链(Lian)表(Biao))
Set(集(Ji)合(He))
SortedSet(有(You)序(Xu)集(Ji)合(He)zset)
incr 让(Rang)当(Dang)前(Qian)键(Jian)值(Zhi)以(Yi)1的(De)数(Shu)量(Liang)递(Di)增(Zeng),(?)并(Bing)返(Fan)回(Hui)递(Di)增(Zeng)后(Hou)的(De)值(Zhi)
incrby 可(Ke)以(Yi)指(Zhi)定(Ding)参(Can)数(Shu)一(Yi)次(Ci)增(Zeng)加(Jia)的(De)数(Shu)值(Zhi),(?)并(Bing)返(Fan)回(Hui)递(Di)增(Zeng)后(Hou)的(De)值(Zhi)
incrby 可(Ke)以(Yi)指(Zhi)定(Ding)参(Can)数(Shu)一(Yi)次(Ci)增(Zeng)加(Jia)的(De)数(Shu)值(Zhi),(?)并(Bing)返(Fan)回(Hui)递(Di)增(Zeng)后(Hou)的(De)值(Zhi)
decrby 可(Ke)以(Yi)指(Zhi)定(Ding)参(Can)数(Shu)一(Yi)次(Ci)递(Di)减(Jian)的(De)数(Shu)值(Zhi),(?)并(Bing)返(Fan)回(Hui)递(Di)减(Jian)后(Hou)的(De)值(Zhi)
incrbyfloat 可(Ke)以(Yi)递(Di)增(Zeng)一(Yi)个(Ge)双(Shuang)精(Jing)度(Du)浮(Fu)点(Dian)数(Shu)
append 作(Zuo)用(Yong)是(Shi)向(Xiang)键(Jian)值(Zhi)的(De)末(Mo)尾(Wei)追(Zhui)加(Jia)value。(?)如(Ru)果(Guo)键(Jian)不(Bu)存(Cun)在(Zai)则(Ze)将(Jiang)该(Gai)键(Jian)的(De)值(Zhi)设(She)置(Zhi)为(Wei)value。(?)返(Fan)回(Hui)值(Zhi)是(Shi)追(Zhui)加(Jia)后(Hou)字(Zi)符(Fu)串(Chuan)的(De)总(Zong)长(Chang)度(Du)。(?)
mget/mset 作(Zuo)用(Yong)与(Yu)get/set相(Xiang)似(Si),(?)不(Bu)过(Guo)mget/mset可(Ke)以(Yi)同(Tong)时(Shi)获(Huo)得(De)/设(She)置(Zhi)多(Duo)个(Ge)键(Jian)的(De)键(Jian)值(Zhi)
del 根(Gen)据(Ju)key来(Lai)删(Shan)除(Chu)value
flushdb 清(Qing)除(Chu)当(Dang)前(Qian)库(Ku)的(De)所(Suo)有(You)数(Shu)据(Ju)
hset 存(Cun)储(Chu)一(Yi)个(Ge)哈(Ha)希(Xi)键(Jian)值(Zhi)对(Dui)的(De)集(Ji)合(He)
hget获(Huo)取(Qu)一(Yi)个(Ge)哈(Ha)希(Xi)键(Jian)的(De)值(Zhi)
hmset 存(Cun)储(Chu)一(Yi)个(Ge)或(Huo)多(Duo)个(Ge)哈(Ha)希(Xi)是(Shi)键(Jian)值(Zhi)对(Dui)的(De)集(Ji)合(He)
hmget 获(Huo)取(Qu)多(Duo)个(Ge)指(Zhi)定(Ding)的(De)键(Jian)的(De)值(Zhi)
hexists 判(Pan)断(Duan)哈(Ha)希(Xi)表(Biao)中(Zhong)的(De)字(Zi)段(Duan)名(Ming)是(Shi)否(Fou)存(Cun)在(Zai) 如(Ru)果(Guo)存(Cun)在(Zai)返(Fan)回(Hui)1 否(Fou)则(Ze)返(Fan)回(Hui)0
hdel 删(Shan)除(Chu)一(Yi)个(Ge)或(Huo)多(Duo)个(Ge)字(Zi)段(Duan)
hgetall 获(Huo)取(Qu)一(Yi)个(Ge)哈(Ha)希(Xi)是(Shi)键(Jian)值(Zhi)对(Dui)的(De)集(Ji)合(He)
hvals 只(Zhi)返(Fan)回(Hui)字(Zi)段(Duan)值(Zhi)
hkeys 只(Zhi)返(Fan)回(Hui)字(Zi)段(Duan)名(Ming)
hlen 返(Fan)回(Hui)key的(De)hash的(De)元(Yuan)素(Su)个(Ge)数(Shu)
lpush key value向(Xiang)链(Lian)表(Biao)左(Zuo)侧(Ce)添(Tian)加(Jia)
rpush key value向(Xiang)链(Lian)表(Biao)右(You)侧(Ce)添(Tian)加(Jia)
lpop key 从(Cong)左(Zuo)边(Bian)移(Yi)出(Chu)一(Yi)个(Ge)元(Yuan)素(Su)
rpop key 从(Cong)右(You)边(Bian)移(Yi)出(Chu)一(Yi)个(Ge)元(Yuan)素(Su)
llen key 返(Fan)回(Hui)链(Lian)表(Biao)中(Zhong)元(Yuan)素(Su)的(De)个(Ge)数(Shu) 相(Xiang)当(Dang)于(Yu)关(Guan)系(Xi)型(Xing)数(Shu)据(Ju)库(Ku)中(Zhong) select count(*)
lrange key start end lrange命(Ming)令(Ling)将(Jiang)返(Fan)回(Hui)索(Suo)引(Yin)从(Cong)start到(Dao)stop之(Zhi)间(Jian)的(De)所(Suo)有(You)元(Yuan)素(Su)。(?)Redis的(De)列(Lie)表(Biao)起(Qi)始(Shi)索(Suo)引(Yin)为(Wei)0。(?)
lrange也(Ye)支(Zhi)持(Chi)负(Fu)索(Suo)引(Yin) lrange nn -2 -1 如(Ru) -1表(Biao)示(Shi)最(Zui)右(You)边(Bian)第(Di)一(Yi)个(Ge)元(Yuan)素(Su) -2表(Biao)示(Shi)最(Zui)右(You)边(Bian)第(Di)二(?)个(Ge)元(Yuan)素(Su),(?)依(Yi)次(Ci)类(Lei)推(Tui)。(?)
lindex key indexnumber 如(Ru)果(Guo)要(Yao)将(Jiang)列(Lie)表(Biao)类(Lei)型(Xing)当(Dang)做(Zuo)数(Shu)组(Zu)来(Lai)用(Yong),(?)lindex命(Ming)令(Ling)是(Shi)必(Bi)不(Bu)可(Ke)少(Shao)的(De)。(?)lindex命(Ming)令(Ling)用(Yong)来(Lai)返(Fan)回(Hui)指(Zhi)定(Ding)索(Suo)引(Yin)的(De)元(Yuan)素(Su),(?)索(Suo)引(Yin)从(Cong)0开(Kai)始(Shi)
如(Ru)果(Guo)是(Shi)负(Fu)数(Shu)表(Biao)示(Shi)从(Cong)右(You)边(Bian)开(Kai)始(Shi)计(Ji)算(Suan)的(De)索(Suo)引(Yin),(?)最(Zui)右(You)边(Bian)元(Yuan)素(Su)的(De)索(Suo)引(Yin)是(Shi)-1。(?)
Lset key indexnumber value 是(Shi)另(Ling)一(Yi)个(Ge)通(Tong)过(Guo)索(Suo)引(Yin)操(Cao)作(Zuo)列(Lie)表(Biao)的(De)命(Ming)令(Ling),(?)它(Ta)会(Hui)将(Jiang)索(Suo)引(Yin)为(Wei)index的(De)元(Yuan)素(Su)赋(Fu)值(Zhi)为(Wei)value。(?)
saddkey value添(Tian)加(Jia)一(Yi)个(Ge)string元(Yuan)素(Su)到(Dao),key对(Dui)应(Ying)的(De)set集(Ji)合(He)中(Zhong),(?)成(Cheng)功(Gong)返(Fan)回(Hui)1,如(Ru)果(Guo)元(Yuan)素(Su)已(Yi)经(Jing)在(Zai)集(Ji)合(He)中(Zhong)返(Fan)回(Hui)0
scardkey返(Fan)回(Hui)set的(De)元(Yuan)素(Su)个(Ge)数(Shu),(?)如(Ru)果(Guo)set是(Shi)空(Kong)或(Huo)者(Zhe)key不(Bu)存(Cun)在(Zai)返(Fan)回(Hui)0
smemberskey返(Fan)回(Hui)key对(Dui)应(Ying)set的(De)所(Suo)有(You)元(Yuan)素(Su),(?)结(Jie)果(Guo)是(Shi)无(Wu)序(Xu)的(De)
sismemberkey value判(Pan)断(Duan)value 是(Shi)否(Fou)在(Zai)set中(Zhong),(?)存(Cun)在(Zai)返(Fan)回(Hui)1,(?)0表(Biao)示(Shi)不(Bu)存(Cun)在(Zai)或(Huo)者(Zhe)key不(Bu)存(Cun)在(Zai)
srem key value 从(Cong)key对(Dui)应(Ying)set中(Zhong)移(Yi)除(Chu)给(Gei)定(Ding)元(Yuan)素(Su),(?)成(Cheng)功(Gong)返(Fan)回(Hui)1,(?)如(Ru)果(Guo)value 在(Zai)集(Ji)合(He)中(Zhong)不(Bu)存(Cun)在(Zai)或(Huo)者(Zhe)key不(Bu)存(Cun)在(Zai)返(Fan)回(Hui)0
zadd key score value 将(Jiang)一(Yi)个(Ge)或(Huo)多(Duo)个(Ge)value及(Ji)其(Qi)socre加(Jia)入(Ru)到(Dao)set中(Zhong)
zrange key start end 0和(He)-1表(Biao)示(Shi)从(Cong)索(Suo)引(Yin)为(Wei)0的(De)元(Yuan)素(Su)到(Dao)最(Zui)后(Hou)一(Yi)个(Ge)元(Yuan)素(Su)((?)同(Tong)LRANGE命(Ming)令(Ling)相(Xiang)似(Si))(?)
zrange key 0 -1 withscores 也(Ye)可(Ke)以(Yi)连(Lian)同(Tong)score一(Yi)块(Kuai)输(Shu)出(Chu),(?)使(Shi)用(Yong)WITHSCORES参(Can)数(Shu)
zremrangebyscore key start end 可(Ke)用(Yong)于(Yu)范(Fan)围(Wei)删(Shan)除(Chu)操(Cao)作(Zuo)
ping 测(Ce)试(Shi)redis是(Shi)否(Fou)链(Lian)接(Jie) 如(Ru)果(Guo)已(Yi)链(Lian)接(Jie)返(Fan)回(Hui) PONG
echo value测(Ce)试(Shi)redis是(Shi)否(Fou)链(Lian)接(Jie) 如(Ru)果(Guo)已(Yi)链(Lian)接(Jie)返(Fan)回(Hui) echo命(Ming)令(Ling)后(Hou)给(Gei)定(Ding)的(De)值(Zhi)
keys * 返(Fan)回(Hui)所(Suo)有(You)的(De)key 可(Ke)以(Yi)加(Jia)*通(Tong)配(Pei)
exists key判(Pan)断(Duan)string类(Lei)型(Xing)一(Yi)个(Ge)key是(Shi)否(Fou)存(Cun)在(Zai) 如(Ru)果(Guo)存(Cun)在(Zai)返(Fan)回(Hui)1 否(Fou)则(Ze)返(Fan)回(Hui)0
expire key time(s) 设(She)置(Zhi)一(Yi)个(Ge)key的(De)过(Guo)期(Qi)时(Shi)间(Jian) 单(Dan)位(Wei)秒(Miao)。(?)时(Shi)间(Jian)到(Dao)达(Da)后(Hou)会(Hui)删(Shan)除(Chu)key及(Ji)value
ttl key 查(Cha)询(Xun)已(Yi)设(She)置(Zhi)过(Guo)期(Qi)时(Shi)间(Jian)的(De)key的(De)剩(Sheng)余(Yu)时(Shi)间(Jian) 如(Ru)果(Guo)返(Fan)回(Hui)-2表(Biao)示(Shi)该(Gai)键(Jian)值(Zhi)对(Dui)已(Yi)经(Jing)被(Bei)删(Shan)除(Chu)
persist 移(Yi)除(Chu)给(Gei)定(Ding)key的(De)过(Guo)期(Qi)时(Shi)间(Jian)
select dbindex 选(Xuan)择(Ze)数(Shu)据(Ju)库(Ku)(0-15)
move key dbIndex 将(Jiang)当(Dang)前(Qian)数(Shu)据(Ju)库(Ku)中(Zhong)的(De)key转(Zhuan)移(Yi)到(Dao)其(Qi)他(Ta)数(Shu)据(Ju)库(Ku)中(Zhong)
dbsize 返(Fan)回(Hui)当(Dang)前(Qian)数(Shu)据(Ju)库(Ku)中(Zhong)的(De)key的(De)数(Shu)目(Mu)
info 获(Huo)取(Qu)服(Fu)务(Wu)器(Qi)的(De)信(Xin)息(Xi)和(He)统(Tong)计(Ji)
flushdb 删(Shan)除(Chu)当(Dang)前(Qian)选(Xuan)择(Ze)的(De)数(Shu)据(Ju)库(Ku)中(Zhong)的(De)key
flushall 删(Shan)除(Chu)所(Suo)有(You)数(Shu)据(Ju)库(Ku)中(Zhong)的(De)所(Suo)有(You)key
quit 退(Tui)出(Chu)连(Lian)接(Jie)
答(Da):(?)以(Yi)下(Xia)两(Liang)种(Zhong)
RDB方(Fang)式(Shi)
AOF方(Fang)式(Shi)
答(Da):(?)是(Shi)RDB是(Shi)对(Dui)内(Nei)存(Cun)中(Zhong)数(Shu)据(Ju)库(Ku)状(Zhuang)态(Tai)进(Jin)行(Xing)快(Kuai)照(Zhao)
RDB方(Fang)式(Shi):(?)将(Jiang)Redis在(Zai)内(Nei)存(Cun)中(Zhong)的(De)数(Shu)据(Ju)库(Ku)状(Zhuang)态(Tai)保(Bao)存(Cun)到(Dao)磁(Ci)盘(Pan)里(Li)面(Mian),(?)RDB文(Wen)件(Jian)是(Shi)一(Yi)个(Ge)经(Jing)过(Guo)压(Ya)缩(Suo)的(De)二(?)进(Jin)制(Zhi)文(Wen)件(Jian),(?)通(Tong)过(Guo)该(Gai)文(Wen)件(Jian)可(Ke)以(Yi)还(Huan)原(Yuan)生(Sheng)成(Cheng)RDB文(Wen)件(Jian)时(Shi)的(De)数(Shu)据(Ju)库(Ku)状(Zhuang)态(Tai)((?)默(Mo)认(Ren)下(Xia),(?)持(Chi)久(Jiu)化(Hua)到(Dao)dump.rdb文(Wen)件(Jian),(?)并(Bing)且(Qie)在(Zai)redis重(Zhong)启(Qi)后(Hou),(?)自(Zi)动(Dong)读(Du)取(Qu)其(Qi)中(Zhong)文(Wen)件(Jian),(?)据(Ju)悉(Xi),(?)通(Tong)常(Chang)情(Qing)况(Kuang)下(Xia)一(Yi)千(Qian)万(Wan)的(De)字(Zi)符(Fu)串(Chuan)类(Lei)型(Xing)键(Jian),(?)1GB的(De)快(Kuai)照(Zhao)文(Wen)件(Jian),(?)同(Tong)步(Bu)到(Dao)内(Nei)存(Cun)中(Zhong)的(De) 时(Shi)间(Jian)是(Shi)20-30秒(Miao))(?)
RDB的(De)生(Sheng)成(Cheng)方(Fang)式(Shi):(?)
(?)1、(?)执(Zhi)行(Xing)命(Ming)令(Ling)手(Shou)动(Dong)生(Sheng)成(Cheng)
有(You)两(Liang)个(Ge)Redis命(Ming)令(Ling)可(Ke)以(Yi)用(Yong)于(Yu)生(Sheng)成(Cheng)RDB文(Wen)件(Jian),(?)一(Yi)个(Ge)是(Shi)SAVE,(?)另(Ling)一(Yi)个(Ge)是(Shi)BGSAVE SAVE命(Ming)令(Ling)会(Hui)阻(Zu)塞(Sai)Redis服(Fu)务(Wu)器(Qi)进(Jin)程(Cheng),(?)直(Zhi)到(Dao)RDB文(Wen)件(Jian)创(Chuang)建(Jian)完(Wan)毕(Bi)为(Wei)止(Zhi),(?)在(Zai)服(Fu)务(Wu)器(Qi)进(Jin)程(Cheng)阻(Zu)塞(Sai)期(Qi)间(Jian),(?)服(Fu)务(Wu)器(Qi)不(Bu)能(Neng)处(Chu)理(Li)任(Ren)何(He)命(Ming)令(Ling)请(Qing)求(Qiu),(?)BGSAVE命(Ming)令(Ling)会(Hui)派(Pai)生(Sheng)出(Chu)一(Yi)个(Ge)子(Zi)进(Jin)程(Cheng),(?)然(Ran)后(Hou)由(You)子(Zi)进(Jin)程(Cheng)负(Fu)责(Ze)创(Chuang)建(Jian)RDB文(Wen)件(Jian),(?)服(Fu)务(Wu)器(Qi)进(Jin)程(Cheng)((?)父(Fu)进(Jin)程(Cheng))(?)继(Ji)续(Xu)处(Chu)理(Li)命(Ming)令(Ling)请(Qing)求(Qiu),(?)创(Chuang)建(Jian)RDB文(Wen)件(Jian)结(Jie)束(Shu)之(Zhi)前(Qian),(?)客(Ke)户(Hu)端(Duan)发(Fa)送(Song)的(De)BGSAVE和(He)SAVE命(Ming)令(Ling)会(Hui)被(Bei)服(Fu)务(Wu)器(Qi)拒(Ju)绝(Jue)
2、(?)通(Tong)过(Guo)配(Pei)置(Zhi)自(Zi)动(Dong)生(Sheng)成(Cheng)
可(Ke)以(Yi)设(She)置(Zhi)服(Fu)务(Wu)器(Qi)配(Pei)置(Zhi)的(De)save选(Xuan)项(Xiang),(?)让(Rang)服(Fu)务(Wu)器(Qi)每(Mei)隔(Ge)一(Yi)段(Duan)时(Shi)间(Jian)自(Zi)动(Dong)执(Zhi)行(Xing)一(Yi)次(Ci)BGSAVE命(Ming)令(Ling),(?)可(Ke)以(Yi)通(Tong)过(Guo)save选(Xuan)项(Xiang)设(She)置(Zhi)多(Duo)个(Ge)保(Bao)存(Cun)条(Tiao)件(Jian),(?)但(Dan)只(Zhi)要(Yao)其(Qi)中(Zhong)任(Ren)意(Yi)一(Yi)个(Ge)条(Tiao)件(Jian)被(Bei)满(Man)足(Zu),(?)服(Fu)务(Wu)器(Qi)就(Jiu)会(Hui)执(Zhi)行(Xing)BGSAVE命(Ming)令(Ling)
例(Li)如(Ru):(?)
save 900 1
save 300 10
save 60 10000
那(Na)么(Me)只(Zhi)要(Yao)满(Man)足(Zu)以(Yi)下(Xia)三(San)个(Ge)条(Tiao)件(Jian)中(Zhong)的(De)任(Ren)意(Yi)一(Yi)个(Ge),(?)BGSAVE命(Ming)令(Ling)就(Jiu)会(Hui)被(Bei)执(Zhi)行(Xing)
服(Fu)务(Wu)器(Qi)在(Zai)900秒(Miao)之(Zhi)内(Nei),(?)对(Dui)数(Shu)据(Ju)库(Ku)进(Jin)行(Xing)了(Liao)至(Zhi)少(Shao)1次(Ci)修(Xiu)改(Gai)
服(Fu)务(Wu)器(Qi)在(Zai)300秒(Miao)之(Zhi)内(Nei),(?)对(Dui)数(Shu)据(Ju)库(Ku)进(Jin)行(Xing)了(Liao)至(Zhi)少(Shao)10次(Ci)修(Xiu)改(Gai)
服(Fu)务(Wu)器(Qi)在(Zai)60秒(Miao)之(Zhi)内(Nei),(?)对(Dui)数(Shu)据(Ju)库(Ku)进(Jin)行(Xing)了(Liao)至(Zhi)少(Shao)10000次(Ci)修(Xiu)改(Gai)
AOF持(Chi)久(Jiu)化(Hua)方(Fang)式(Shi)在(Zai)redis中(Zhong)默(Mo)认(Ren)是(Shi)关(Guan)闭(Bi)的(De),(?)需(Xu)要(Yao)修(Xiu)改(Gai)配(Pei)置(Zhi)文(Wen)件(Jian)开(Kai)启(Qi)该(Gai)方(Fang)式(Shi)。(?)
AOF:(?)把(Ba)每(Mei)条(Tiao)命(Ming)令(Ling)都(Du)写(Xie)入(Ru)文(Wen)件(Jian),(?)类(Lei)似(Si)mysql的(De)binlog日(Ri)志(Zhi)
AOF方(Fang)式(Shi):(?)是(Shi)通(Tong)过(Guo)保(Bao)存(Cun)Redis服(Fu)务(Wu)器(Qi)所(Suo)执(Zhi)行(Xing)的(De)写(Xie)命(Ming)令(Ling)来(Lai)记(Ji)录(Lu)数(Shu)据(Ju)库(Ku)状(Zhuang)态(Tai)的(De)文(Wen)件(Jian)。(?)
AOF文(Wen)件(Jian)刷(Shua)新(Xin)的(De)方(Fang)式(Shi),(?)有(You)三(San)种(Zhong):(?)
appendfsync always - 每(Mei)提(Ti)交(Jiao)一(Yi)个(Ge)修(Xiu)改(Gai)命(Ming)令(Ling)都(Du)调(Diao)用(Yong)fsync刷(Shua)新(Xin)到(Dao)AOF文(Wen)件(Jian),(?)非(Fei)常(Chang)非(Fei)常(Chang)慢(Man),(?)但(Dan)也(Ye)非(Fei)常(Chang)安(An)全(Quan)
appendfsync everysec - 每(Mei)秒(Miao)钟(Zhong)都(Du)调(Diao)用(Yong)fsync刷(Shua)新(Xin)到(Dao)AOF文(Wen)件(Jian),(?)很(Hen)快(Kuai),(?)但(Dan)可(Ke)能(Neng)会(Hui)丢(Diu)失(Shi)一(Yi)秒(Miao)以(Yi)内(Nei)的(De)数(Shu)据(Ju)
appendfsync no - 依(Yi)靠(Kao)OS进(Jin)行(Xing)刷(Shua)新(Xin),(?)redis不(Bu)主(Zhu)动(Dong)刷(Shua)新(Xin)AOF,(?)这(Zhe)样(Yang)最(Zui)快(Kuai),(?)但(Dan)安(An)全(Quan)性(Xing)就(Jiu)差(Cha)
默(Mo)认(Ren)并(Bing)推(Tui)荐(Jian)每(Mei)秒(Miao)刷(Shua)新(Xin),(?)这(Zhe)样(Yang)在(Zai)速(Su)度(Du)和(He)安(An)全(Quan)上(Shang)都(Du)做(Zuo)到(Dao)了(Liao)兼(Jian)顾(Gu)
AOF数(Shu)据(Ju)恢(Hui)复(Fu)方(Fang)式(Shi)
服(Fu)务(Wu)器(Qi)在(Zai)启(Qi)动(Dong)时(Shi),(?)通(Tong)过(Guo)载(Zai)入(Ru)和(He)执(Zhi)行(Xing)AOF文(Wen)件(Jian)中(Zhong)保(Bao)存(Cun)的(De)命(Ming)令(Ling)来(Lai)还(Huan)原(Yuan)服(Fu)务(Wu)器(Qi)关(Guan)闭(Bi)之(Zhi)前(Qian)的(De)数(Shu)据(Ju)库(Ku)状(Zhuang)态(Tai),(?)具(Ju)体(Ti)过(Guo)程(Cheng):(?)
载(Zai)入(Ru)AOF文(Wen)件(Jian)
创(Chuang)建(Jian)模(Mo)拟(Ni)客(Ke)户(Hu)端(Duan)
从(Cong)AOF文(Wen)件(Jian)中(Zhong)读(Du)取(Qu)一(Yi)条(Tiao)命(Ming)令(Ling)
使(Shi)用(Yong)模(Mo)拟(Ni)客(Ke)户(Hu)端(Duan)执(Zhi)行(Xing)命(Ming)令(Ling)
循(Xun)环(Huan)读(Du)取(Qu)并(Bing)执(Zhi)行(Xing)命(Ming)令(Ling),(?)直(Zhi)到(Dao)全(Quan)部(Bu)完(Wan)成(Cheng)
如(Ru)果(Guo)同(Tong)时(Shi)启(Qi)用(Yong)了(Liao)RDB和(He)AOF方(Fang)式(Shi),(?)AOF优(You)先(Xian),(?)启(Qi)动(Dong)时(Shi)只(Zhi)加(Jia)载(Zai)AOF文(Wen)件(Jian)恢(Hui)复(Fu)数(Shu)据(Ju)
答(Da):(?)什(Shi)么(Me)叫(Jiao)做(Zuo)全(Quan)文(Wen)检(Jian)索(Suo)呢(Ne)?(?)这(Zhe)要(Yao)从(Cong)我(Wo)们(Men)生(Sheng)活(Huo)中(Zhong)的(De)数(Shu)据(Ju)说(Shuo)起(Qi)。(?)
我(Wo)们(Men)生(Sheng)活(Huo)中(Zhong)的(De)数(Shu)据(Ju)总(Zong)体(Ti)分(Fen)为(Wei)两(Liang)种(Zhong):(?)结(Jie)构(Gou)化(Hua)数(Shu)据(Ju)和(He)非(Fei)结(Jie)构(Gou)化(Hua)数(Shu)据(Ju)。(?)
1)(?)结(Jie)构(Gou)化(Hua)数(Shu)据(Ju):(?)指(Zhi)具(Ju)有(You)固(Gu)定(Ding)格(Ge)式(Shi)或(Huo)有(You)限(Xian)长(Chang)度(Du)的(De)数(Shu)据(Ju),(?)如(Ru)数(Shu)据(Ju)库(Ku),(?)元(Yuan)数(Shu)据(Ju)等(Deng)。(?)
2)(?)非(Fei)结(Jie)构(Gou)化(Hua)数(Shu)据(Ju):(?)指(Zhi)不(Bu)定(Ding)长(Chang)或(Huo)无(Wu)固(Gu)定(Ding)格(Ge)式(Shi)的(De)数(Shu)据(Ju),(?)如(Ru)邮(You)件(Jian),(?)word文(Wen)档(Dang)等(Deng)。(?)
非(Fei)结(Jie)构(Gou)化(Hua)数(Shu)据(Ju)又(You)一(Yi)种(Zhong)叫(Jiao)法(Fa)叫(Jiao)全(Quan)文(Wen)数(Shu)据(Ju)。(?)
按(An)照(Zhao)数(Shu)据(Ju)的(De)分(Fen)类(Lei),(?)搜(Sou)索(Suo)也(Ye)分(Fen)为(Wei)两(Liang)种(Zhong):(?)
1)(?)对(Dui)结(Jie)构(Gou)化(Hua)数(Shu)据(Ju)的(De)搜(Sou)索(Suo):(?)如(Ru)对(Dui)数(Shu)据(Ju)库(Ku)的(De)搜(Sou)索(Suo),(?)用(Yong)SQL语(Yu)句(Ju)。(?)
2)(?)对(Dui)非(Fei)结(Jie)构(Gou)化(Hua)数(Shu)据(Ju)的(De)搜(Sou)索(Suo):(?)如(Ru)利(Li)用(Yong)windows的(De)搜(Sou)索(Suo)也(Ye)可(Ke)以(Yi)搜(Sou)索(Suo)文(Wen)件(Jian)内(Nei)容(Rong),(?)
全(Quan)文(Wen)检(Jian)索(Suo):(?) 就(Jiu)是(Shi)一(Yi)种(Zhong)将(Jiang)文(Wen)件(Jian)中(Zhong)所(Suo)有(You)文(Wen)本(Ben)与(Yu)检(Jian)索(Suo)项(Xiang)匹(Pi)配(Pei)的(De)文(Wen)字(Zi)资(Zi)料(Liao)检(Jian)索(Suo)方(Fang)法(Fa)。(?)全(Quan)文(Wen)检(Jian)索(Suo)首(Shou)先(Xian)将(Jiang)要(Yao)查(Cha)询(Xun)的(De)目(Mu)标(Biao)文(Wen)档(Dang)中(Zhong)的(De)词(Ci)提(Ti)取(Qu)出(Chu)来(Lai),(?)组(Zu)成(Cheng)索(Suo)引(Yin),(?)通(Tong)过(Guo)查(Cha)询(Xun)索(Suo)引(Yin)达(Da)到(Dao)搜(Sou)索(Suo)目(Mu)标(Biao)文(Wen)档(Dang)的(De)目(Mu)的(De)。(?)这(Zhe)种(Zhong)先(Xian)建(Jian)立(Li)索(Suo)引(Yin),(?)再(Zai)对(Dui)索(Suo)引(Yin)进(Jin)行(Xing)搜(Sou)索(Suo)的(De)过(Guo)程(Cheng)就(Jiu)叫(Jiao)全(Quan)文(Wen)检(Jian)索(Suo)((?)Full-text Search)(?)。(?)
Lucene是(Shi)一(Yi)个(Ge)高(Gao)效(Xiao)的(De),(?)基(Ji)于(Yu)Java的(De)全(Quan)文(Wen)检(Jian)索(Suo)库(Ku)。(?)
Lucene是(Shi)apache软(Ruan)件(Jian)基(Ji)金(Jin)会(Hui)4 jakarta项(Xiang)目(Mu)组(Zu)的(De)一(Yi)个(Ge)子(Zi)项(Xiang)目(Mu),(?)是(Shi)一(Yi)个(Ge)开(Kai)放(Fang)源(Yuan)代(Dai)码(Ma)的(De)全(Quan)文(Wen)检(Jian)索(Suo)引(Yin)擎(Qing)工(Gong)具(Ju)包(Bao),(?)但(Dan)它(Ta)不(Bu)是(Shi)一(Yi)个(Ge)完(Wan)整(Zheng)的(De)全(Quan)文(Wen)检(Jian)索(Suo)引(Yin)擎(Qing),(?)而(?)是(Shi)一(Yi)个(Ge)全(Quan)文(Wen)检(Jian)索(Suo)引(Yin)擎(Qing)的(De)架(Jia)构(Gou),(?)Lucene的(De)目(Mu)的(De)是(Shi)为(Wei)软(Ruan)件(Jian)开(Kai)发(Fa)人(Ren)员(Yuan)提(Ti)供(Gong)一(Yi)个(Ge)简(Jian)单(Dan)易(Yi)用(Yong)的(De)工(Gong)具(Ju)包(Bao),(?)以(Yi)方(Fang)便(Bian)的(De)在(Zai)目(Mu)标(Biao)系(Xi)统(Tong)中(Zhong)实(Shi)现(Xian)全(Quan)文(Wen)检(Jian)索(Suo)的(De)功(Gong)能(Neng),(?)或(Huo)者(Zhe)是(Shi)以(Yi)此(Ci)为(Wei)基(Ji)础(Chu)建(Jian)立(Li)起(Qi)完(Wan)整(Zheng)的(De)全(Quan)文(Wen)检(Jian)索(Suo)引(Yin)擎(Qing)。(?)Lucene是(Shi)一(Yi)套(Tao)用(Yong)于(Yu)全(Quan)文(Wen)检(Jian)索(Suo)和(He)搜(Sou)寻(Xun)的(De)开(Kai)源(Yuan)程(Cheng)序(Xu)库(Ku),(?)由(You)Apache软(Ruan)件(Jian)基(Ji)金(Jin)会(Hui)支(Zhi)持(Chi)和(He)提(Ti)供(Gong)。(?)Lucene提(Ti)供(Gong)了(Liao)一(Yi)个(Ge)简(Jian)单(Dan)却(Que)强(Qiang)大(Da)的(De)应(Ying)用(Yong)程(Cheng)序(Xu)接(Jie)口(Kou),(?)能(Neng)够(Gou)做(Zuo)全(Quan)文(Wen)索(Suo)引(Yin)和(He)搜(Sou)寻(Xun)。(?)在(Zai)Java开(Kai)发(Fa)环(Huan)境(Jing)里(Li)Lucene是(Shi)一(Yi)个(Ge)成(Cheng)熟(Shu)的(De)免(Mian)费(Fei)开(Kai)源(Yuan)工(Gong)具(Ju)。(?)就(Jiu)其(Qi)本(Ben)身(Shen)而(?)言(Yan),(?)Lucene是(Shi)当(Dang)前(Qian)以(Yi)及(Ji)最(Zui)近(Jin)几(Ji)年(Nian)最(Zui)受(Shou)欢(Huan)迎(Ying)的(De)免(Mian)费(Fei)Java信(Xin)息(Xi)检(Jian)索(Suo)程(Cheng)序(Xu)库(Ku)。(?)
答(Da):(?)Solr是(Shi)一(Yi)个(Ge)独(Du)立(Li)的(De)企(Qi)业(Ye)级(Ji)搜(Sou)索(Suo)应(Ying)用(Yong)服(Fu)务(Wu)器(Qi),(?)它(Ta)对(Dui)外(Wai)提(Ti)供(Gong)类(Lei)似(Si)于(Yu)Web-service的(De)API接(Jie)口(Kou)。(?)
Solr是(Shi)一(Yi)个(Ge)高(Gao)性(Xing)能(Neng),(?)采(Cai)用(Yong)Java开(Kai)发(Fa),(?)基(Ji)于(Yu)Lucene的(De)全(Quan)文(Wen)搜(Sou)索(Suo)服(Fu)务(Wu)器(Qi)。(?)同(Tong)时(Shi)对(Dui)其(Qi)进(Jin)行(Xing)了(Liao)扩(Kuo)展(Zhan),(?)提(Ti)供(Gong)了(Liao)比(Bi)Lucene更(Geng)为(Wei)丰(Feng)富(Fu)的(De)查(Cha)询(Xun)语(Yu)言(Yan),(?)同(Tong)时(Shi)实(Shi)现(Xian)了(Liao)可(Ke)配(Pei)置(Zhi)、(?)可(Ke)扩(Kuo)展(Zhan)并(Bing)对(Dui)查(Cha)询(Xun)性(Xing)能(Neng)进(Jin)行(Xing)了(Liao)优(You)化(Hua),(?)并(Bing)且(Qie)提(Ti)供(Gong)了(Liao)一(Yi)个(Ge)完(Wan)善(Shan)的(De)功(Gong)能(Neng)管(Guan)理(Li)界(Jie)面(Mian),(?)是(Shi)一(Yi)款(Kuan)非(Fei)常(Chang)优(You)秀(Xiu)的(De)全(Quan)文(Wen)检(Jian)索(Suo)引(Yin)擎(Qing)。(?)
文(Wen)档(Dang)通(Tong)过(Guo)Http利(Li)用(Yong)XML 加(Jia)到(Dao)一(Yi)个(Ge)搜(Sou)索(Suo)集(Ji)合(He)中(Zhong)。(?)查(Cha)询(Xun)该(Gai)集(Ji)合(He)也(Ye)是(Shi)通(Tong)过(Guo)http收(Shou)到(Dao)一(Yi)个(Ge)XML/JSON响(Xiang)应(Ying)来(Lai)实(Shi)现(Xian)。(?)它(Ta)的(De)主(Zhu)要(Yao)特(Te)性(Xing)包(Bao)括(Kuo):(?)高(Gao)效(Xiao)、(?)灵(Ling)活(Huo)的(De)缓(Huan)存(Cun)功(Gong)能(Neng),(?)垂(Chui)直(Zhi)搜(Sou)索(Suo)功(Gong)能(Neng),(?)高(Gao)亮(Liang)显(Xian)示(Shi)搜(Sou)索(Suo)结(Jie)果(Guo),(?)通(Tong)过(Guo)索(Suo)引(Yin)复(Fu)制(Zhi)来(Lai)提(Ti)高(Gao)可(Ke)用(Yong)性(Xing),(?)提(Ti)供(Gong)一(Yi)套(Tao)强(Qiang)大(Da)Data Schema来(Lai)定(Ding)义(Yi)字(Zi)段(Duan),(?)类(Lei)型(Xing)和(He)设(She)置(Zhi)文(Wen)本(Ben)分(Fen)析(Xi),(?)提(Ti)供(Gong)基(Ji)于(Yu)Web的(De)管(Guan)理(Li)界(Jie)面(Mian)等(Deng)。(?)
答(Da):(?)如(Ru)下(Xia)两(Liang)个(Ge)部(Bu)分(Fen)
Solr的(De)web服(Fu)务(Wu)
Solr的(De)索(Suo)引(Yin)库(Ku)
正(Zheng)排(Pai)索(Suo)引(Yin)是(Shi)以(Yi)文(Wen)档(Dang)的(De)ID为(Wei)关(Guan)键(Jian)字(Zi),(?)索(Suo)引(Yin)文(Wen)档(Dang)中(Zhong)每(Mei)个(Ge)字(Zi)的(De)位(Wei)置(Zhi)信(Xin)息(Xi),(?)查(Cha)找(Zhao)时(Shi)扫(Sao)描(Miao)索(Suo)引(Yin)中(Zhong)每(Mei)个(Ge)文(Wen)档(Dang)中(Zhong)字(Zi)的(De)信(Xin)息(Xi)直(Zhi)到(Dao)找(Zhao)出(Chu)所(Suo)有(You)包(Bao)含(Han)查(Cha)询(Xun)关(Guan)键(Jian)字(Zi)的(De)文(Wen)档(Dang)。(?)
但(Dan)是(Shi)在(Zai)查(Cha)询(Xun)的(De)时(Shi)候(Hou)需(Xu)对(Dui)所(Suo)有(You)的(De)文(Wen)档(Dang)进(Jin)行(Xing)扫(Sao)描(Miao)以(Yi)确(Que)保(Bao)没(Mei)有(You)遗(Yi)漏(Lou),(?)这(Zhe)样(Yang)就(Jiu)使(Shi)得(De)检(Jian)索(Suo)时(Shi)间(Jian)大(Da)大(Da)延(Yan)长(Chang),(?)检(Jian)索(Suo)效(Xiao)率(Lu)低(Di)下(Xia)。(?)
尽(Jin)管(Guan)正(Zheng)排(Pai)索(Suo)引(Yin)的(De)工(Gong)作(Zuo)原(Yuan)理(Li)非(Fei)常(Chang)的(De)简(Jian)单(Dan),(?)但(Dan)是(Shi)由(You)于(Yu)其(Qi)检(Jian)索(Suo)效(Xiao)率(Lu)太(Tai)低(Di),(?)除(Chu)非(Fei)在(Zai)特(Te)定(Ding)情(Qing)况(Kuang)下(Xia),(?)否(Fou)则(Ze)实(Shi)用(Yong)性(Xing)价(Jia)值(Zhi)不(Bu)大(Da)。(?)
对(Dui)数(Shu)据(Ju)进(Jin)行(Xing)分(Fen)析(Xi),(?)抽(Chou)取(Qu)出(Chu)数(Shu)据(Ju)中(Zhong)的(De)词(Ci)条(Tiao),(?)以(Yi)词(Ci)条(Tiao)作(Zuo)为(Wei)key,(?)对(Dui)应(Ying)数(Shu)据(Ju)的(De)存(Cun)储(Chu)位(Wei)置(Zhi)作(Zuo)为(Wei)value,(?)实(Shi)现(Xian)索(Suo)引(Yin)的(De)存(Cun)储(Chu)。(?)这(Zhe)种(Zhong)索(Suo)引(Yin)称(Cheng)为(Wei)倒(Dao)排(Pai)索(Suo)引(Yin)。(?)
当(Dang)solr存(Cun)储(Chu)文(Wen)档(Dang)时(Shi),(?)solr会(Hui)首(Shou)先(Xian)对(Dui)文(Wen)档(Dang)数(Shu)据(Ju)进(Jin)行(Xing)分(Fen)词(Ci),(?)创(Chuang)建(Jian)索(Suo)引(Yin)库(Ku)和(He)文(Wen)档(Dang)数(Shu)据(Ju)库(Ku)。(?)所(Suo)谓(Wei)的(De)分(Fen)词(Ci)是(Shi)指(Zhi):(?)将(Jiang)一(Yi)段(Duan)字(Zi)符(Fu)文(Wen)本(Ben)按(An)照(Zhao)一(Yi)定(Ding)的(De)规(Gui)则(Ze)分(Fen)成(Cheng)若(Ruo)干(Gan)个(Ge)单(Dan)词(Ci)。(?)
ActiveMQ是(Shi)一(Yi)种(Zhong)开(Kai)源(Yuan)的(De),(?)实(Shi)现(Xian)了(Liao)JMS1.1规(Gui)范(Fan)的(De),(?)面(Mian)向(Xiang)消(Xiao)息(Xi)(MOM)的(De)中(Zhong)间(Jian)件(Jian),(?)为(Wei)应(Ying)用(Yong)程(Cheng)序(Xu)提(Ti)供(Gong)高(Gao)效(Xiao)的(De)、(?)可(Ke)扩(Kuo)展(Zhan)的(De)、(?)稳(Wen)定(Ding)的(De)和(He)安(An)全(Quan)的(De)企(Qi)业(Ye)级(Ji)消(Xiao)息(Xi)通(Tong)信(Xin)。(?)ActiveMQ使(Shi)用(Yong)Apache提(Ti)供(Gong)的(De)授(Shou)权(Quan),(?)任(Ren)何(He)人(Ren)都(Du)可(Ke)以(Yi)对(Dui)其(Qi)实(Shi)现(Xian)代(Dai)码(Ma)进(Jin)行(Xing)修(Xiu)改(Gai)。(?)
ActiveMQ的(De)设(She)计(Ji)目(Mu)标(Biao)是(Shi)提(Ti)供(Gong)标(Biao)准(Zhun)的(De),(?)面(Mian)向(Xiang)消(Xiao)息(Xi)的(De),(?)能(Neng)够(Gou)跨(Kua)越(Yue)多(Duo)语(Yu)言(Yan)和(He)多(Duo)系(Xi)统(Tong)的(De)应(Ying)用(Yong)集(Ji)成(Cheng)消(Xiao)息(Xi)通(Tong)信(Xin)中(Zhong)间(Jian)件(Jian)。(?)
ActiveMQ实(Shi)现(Xian)了(Liao)JMS标(Biao)准(Zhun)并(Bing)提(Ti)供(Gong)了(Liao)很(Hen)多(Duo)附(Fu)加(Jia)的(De)特(Te)性(Xing)。(?)这(Zhe)些(Xie)附(Fu)加(Jia)的(De)特(Te)性(Xing)包(Bao)括(Kuo),(?)JMX管(Guan)理(Li)((?)java Management Extensions,(?)即(Ji)java管(Guan)理(Li)扩(Kuo)展(Zhan))(?),(?)主(Zhu)从(Cong)管(Guan)理(Li)((?)master/salve,(?)这(Zhe)是(Shi)集(Ji)群(Qun)模(Mo)式(Shi)的(De)一(Yi)种(Zhong),(?)主(Zhu)要(Yao)体(Ti)现(Xian)在(Zai)可(Ke)靠(Kao)性(Xing)方(Fang)面(Mian),(?)当(Dang)主(Zhu)中(Zhong)介(Jie)((?)代(Dai)理(Li))(?)出(Chu)现(Xian)故(Gu)障(Zhang),(?)那(Na)么(Me)从(Cong)代(Dai)理(Li)会(Hui)替(Ti)代(Dai)主(Zhu)代(Dai)理(Li)的(De)位(Wei)置(Zhi),(?)不(Bu)至(Zhi)于(Yu)使(Shi)消(Xiao)息(Xi)系(Xi)统(Tong)瘫(Tan)痪(Huan))(?)、(?)消(Xiao)息(Xi)组(Zu)通(Tong)信(Xin)((?)同(Tong)一(Yi)组(Zu)的(De)消(Xiao)息(Xi),(?)仅(Jin)会(Hui)提(Ti)交(Jiao)给(Gei)一(Yi)个(Ge)客(Ke)户(Hu)进(Jin)行(Xing)处(Chu)理(Li))(?)、(?)有(You)序(Xu)消(Xiao)息(Xi)管(Guan)理(Li)((?)确(Que)保(Bao)消(Xiao)息(Xi)能(Neng)够(Gou)按(An)照(Zhao)发(Fa)送(Song)的(De)次(Ci)序(Xu)被(Bei)接(Jie)受(Shou)者(Zhe)接(Jie)收(Shou))(?)。(?)消(Xiao)息(Xi)优(You)先(Xian)级(Ji)((?)优(You)先(Xian)级(Ji)高(Gao)的(De)消(Xiao)息(Xi)先(Xian)被(Bei)投(Tou)递(Di)和(He)处(Chu)理(Li))(?)、(?)订(Ding)阅(Yue)消(Xiao)息(Xi)的(De)延(Yan)迟(Chi)接(Jie)收(Shou)((?)订(Ding)阅(Yue)消(Xiao)息(Xi)在(Zai)发(Fa)布(Bu)时(Shi),(?)如(Ru)果(Guo)订(Ding)阅(Yue)者(Zhe)没(Mei)有(You)开(Kai)启(Qi)连(Lian)接(Jie),(?)那(Na)么(Me)当(Dang)订(Ding)阅(Yue)者(Zhe)开(Kai)启(Qi)连(Lian)接(Jie)时(Shi),(?)消(Xiao)息(Xi)中(Zhong)介(Jie)将(Jiang)会(Hui)向(Xiang)其(Qi)提(Ti)交(Jiao)之(Zhi)前(Qian)的(De),(?)其(Qi)未(Wei)处(Chu)理(Li)的(De)消(Xiao)息(Xi))(?)、(?)接(Jie)收(Shou)者(Zhe)处(Chu)理(Li)过(Guo)慢(Man)((?)可(Ke)以(Yi)使(Shi)用(Yong)动(Dong)态(Tai)负(Fu)载(Zai)平(Ping)衡(Heng),(?)将(Jiang)多(Duo)数(Shu)消(Xiao)息(Xi)提(Ti)交(Jiao)到(Dao)处(Chu)理(Li)快(Kuai)的(De)接(Jie)收(Shou)者(Zhe),(?)这(Zhe)主(Zhu)要(Yao)是(Shi)对(Dui)PTP消(Xiao)息(Xi)所(Suo)说(Shuo))(?)、(?)虚(Xu)拟(Ni)接(Jie)收(Shou)者(Zhe)((?)降(Jiang)低(Di)与(Yu)中(Zhong)介(Jie)的(De)连(Lian)接(Jie)数(Shu)目(Mu))(?)、(?)成(Cheng)熟(Shu)的(De)消(Xiao)息(Xi)持(Chi)久(Jiu)化(Hua)技(Ji)术(Shu)((?)部(Bu)分(Fen)消(Xiao)息(Xi)需(Xu)要(Yao)持(Chi)久(Jiu)化(Hua)到(Dao)数(Shu)据(Ju)库(Ku)或(Huo)文(Wen)件(Jian)系(Xi)统(Tong)中(Zhong),(?)当(Dang)中(Zhong)介(Jie)崩(Beng)溃(Kui)时(Shi),(?)信(Xin)息(Xi)不(Bu)会(Hui)丢(Diu)失(Shi))(?)、(?)支(Zhi)持(Chi)游(You)标(Biao)操(Cao)作(Zuo)((?)可(Ke)以(Yi)处(Chu)理(Li)大(Da)消(Xiao)息(Xi))(?)、(?)支(Zhi)持(Chi)消(Xiao)息(Xi)的(De)转(Zhuan)换(Huan)、(?)通(Tong)过(Guo)使(Shi)用(Yong)Apache的(De)Camel可(Ke)以(Yi)支(Zhi)持(Chi)EIP、(?)使(Shi)用(Yong)镜(Jing)像(Xiang)队(Dui)列(Lie)的(De)形(Xing)式(Shi)轻(Qing)松(Song)的(De)对(Dui)消(Xiao)息(Xi)队(Dui)列(Lie)进(Jin)行(Xing)监(Jian)控(Kong)等(Deng)。(?)
答(Da):(?)如(Ru)下(Xia)3个(Ge)场(Chang)景(Jing)都(Du)可(Ke)以(Yi)使(Shi)用(Yong)消(Xiao)息(Xi)服(Fu)务(Wu)
1、(?)异(Yi)步(Bu)处(Chu)理(Li)
2、(?)应(Ying)用(Yong)的(De)解(Jie)耦(Ou)
3、(?)流(Liu)量(Liang)的(De)削(Xiao)峰(Feng)
JMS((?)Java Messaging Service)(?)是(Shi)Java平(Ping)台(Tai)上(Shang)有(You)关(Guan)面(Mian)向(Xiang)消(Xiao)息(Xi)中(Zhong)间(Jian)件(Jian)的(De)技(Ji)术(Shu)规(Gui)范(Fan),(?)它(Ta)便(Bian)于(Yu)消(Xiao)息(Xi)系(Xi)统(Tong)中(Zhong)的(De)Java应(Ying)用(Yong)程(Cheng)序(Xu)进(Jin)行(Xing)消(Xiao)息(Xi)交(Jiao)换(Huan),并(Bing)且(Qie)通(Tong)过(Guo)提(Ti)供(Gong)标(Biao)准(Zhun)的(De)产(Chan)生(Sheng)、(?)发(Fa)送(Song)、(?)接(Jie)收(Shou)消(Xiao)息(Xi)的(De)接(Jie)口(Kou),(?)简(Jian)化(Hua)企(Qi)业(Ye)应(Ying)用(Yong)的(De)开(Kai)发(Fa)。(?)
答(Da):(?)JMS消(Xiao)息(Xi)机(Ji)制(Zhi)主(Zhu)要(Yao)分(Fen)为(Wei)两(Liang)种(Zhong)模(Mo)型(Xing):(?)PTP模(Mo)型(Xing)和(He)Pub/Sub模(Mo)型(Xing)。(?)
1、(?)PTP模(Mo)型(Xing):(?)((?)Point to Point 对(Dui)点(Dian)模(Mo)型(Xing)) 每(Mei)一(Yi)个(Ge)消(Xiao)息(Xi)传(Chuan)递(Di)给(Gei)一(Yi)个(Ge)消(Xiao)息(Xi)消(Xiao)费(Fei)者(Zhe),(?)保(Bao)证(Zheng)消(Xiao)息(Xi)传(Chuan)递(Di)给(Gei)消(Xiao)息(Xi)消(Xiao)费(Fei)者(Zhe),(?)且(Qie)消(Xiao)息(Xi)不(Bu)会(Hui)同(Tong)时(Shi)被(Bei)多(Duo)个(Ge)消(Xiao)费(Fei)者(Zhe)接(Jie)收(Shou)。(?)如(Ru)果(Guo)消(Xiao)息(Xi)消(Xiao)费(Fei)者(Zhe)暂(Zan)时(Shi)不(Bu)在(Zai)连(Lian)接(Jie)范(Fan)围(Wei)内(Nei),(?)JMS会(Hui)自(Zi)动(Dong)保(Bao)证(Zheng)消(Xiao)息(Xi)不(Bu)会(Hui)丢(Diu)失(Shi),(?)直(Zhi)到(Dao)消(Xiao)息(Xi)消(Xiao)费(Fei)者(Zhe)进(Jin)入(Ru)连(Lian)接(Jie),(?)消(Xiao)息(Xi)将(Jiang)自(Zi)动(Dong)送(Song)达(Da)。(?)因(Yin)此(Ci),(?)JMS需(Xu)要(Yao)将(Jiang)消(Xiao)息(Xi)保(Bao)存(Cun)到(Dao)永(Yong)久(Jiu)性(Xing)介(Jie)质(Zhi)上(Shang),(?)例(Li)如(Ru)数(Shu)据(Ju)库(Ku)或(Huo)者(Zhe)文(Wen)件(Jian)。(?)
2、(?)Pub-Sub模(Mo)型(Xing):(?)(publish-subscription 发(Fa)布(Bu)者(Zhe)订(Ding)阅(Yue)者(Zhe)模(Mo)型(Xing))每(Mei)个(Ge)主(Zhu)题(Ti)可(Ke)以(Yi)拥(Yong)有(You)多(Duo)个(Ge)订(Ding)阅(Yue)者(Zhe)。(?)JMS系(Xi)统(Tong)负(Fu)责(Ze)将(Jiang)消(Xiao)息(Xi)的(De)副(Fu)本(Ben)传(Chuan)给(Gei)该(Gai)主(Zhu)题(Ti)的(De)每(Mei)个(Ge)订(Ding)阅(Yue)者(Zhe)。(?)
如(Ru)果(Guo)希(Xi)望(Wang)每(Mei)一(Yi)条(Tiao)消(Xiao)息(Xi)都(Du)能(Neng)够(Gou)被(Bei)处(Chu)理(Li),(?)那(Na)么(Me)应(Ying)该(Gai)使(Shi)用(Yong)PTP消(Xiao)息(Xi)模(Mo)型(Xing)。(?)如(Ru)果(Guo)并(Bing)不(Bu)要(Yao)求(Qiu)消(Xiao)息(Xi)都(Du)必(Bi)须(Xu)被(Bei)消(Xiao)息(Xi)消(Xiao)费(Fei)者(Zhe)接(Jie)收(Shou)到(Dao)的(De)情(Qing)况(Kuang)下(Xia),(?)可(Ke)使(Shi)用(Yong)pub-sub消(Xiao)息(Xi)模(Mo)型(Xing)。(?)Pub-Sub模(Mo)型(Xing)可(Ke)以(Yi)在(Zai)一(Yi)对(Dui)多(Duo)的(De)消(Xiao)息(Xi)广(Guang)播(Bo)时(Shi)使(Shi)用(Yong)。(?)
Jsonp(JSON with Padding) 是(Shi) json 的(De)一(Yi)种(Zhong)"使(Shi)用(Yong)模(Mo)式(Shi)",(?)可(Ke)以(Yi)让(Rang)网(Wang)页(Ye)从(Cong)别(Bie)的(De)域(Yu)名(Ming)((?)网(Wang)站(Zhan))(?)那(Na)获(Huo)取(Qu)资(Zi)料(Liao),(?)即(Ji)跨(Kua)域(Yu)读(Du)取(Qu)数(Shu)据(Ju)。(?)
跨(Kua)域(Yu)是(Shi)指(Zhi)一(Yi)个(Ge)域(Yu)((?)网(Wang)站(Zhan))(?)下(Xia)的(De)文(Wen)档(Dang)或(Huo)脚(Jiao)本(Ben)试(Shi)图(Tu)去(Qu)请(Qing)求(Qiu)另(Ling)一(Yi)个(Ge)域(Yu)((?)网(Wang)站(Zhan))(?)下(Xia)的(De)资(Zi)源(Yuan)。(?)
同(Tong)源(Yuan)策(Ce)略(Lue)/SOP((?)Same origin policy)(?)是(Shi)一(Yi)种(Zhong)约(Yue)定(Ding),(?)由(You)Netscape公(Gong)司(Si)1995年(Nian)引(Yin)入(Ru)浏(Liu)览(Lan)器(Qi),(?)它(Ta)是(Shi)浏(Liu)览(Lan)器(Qi)最(Zui)核(He)心(Xin)也(Ye)最(Zui)基(Ji)本(Ben)的(De)安(An)全(Quan)功(Gong)能(Neng),(?)现(Xian)在(Zai)所(Suo)有(You)支(Zhi)持(Chi)JavaScript 的(De)浏(Liu)览(Lan)器(Qi)都(Du)会(Hui)使(Shi)用(Yong)这(Zhe)个(Ge)策(Ce)略(Lue)。(?)如(Ru)果(Guo)缺(Que)少(Shao)了(Liao)同(Tong)源(Yuan)策(Ce)略(Lue),(?)浏(Liu)览(Lan)器(Qi)很(Hen)容(Rong)易(Yi)受(Shou)到(Dao)XSS、(?)CSFR等(Deng)攻(Gong)击(Ji)。(?)所(Suo)谓(Wei)同(Tong)源(Yuan)是(Shi)指(Zhi)"协(Xie)议(Yi)+域(Yu)名(Ming)+端(Duan)口(Kou)"三(San)者(Zhe)相(Xiang)同(Tong),(?)即(Ji)便(Bian)两(Liang)个(Ge)不(Bu)同(Tong)的(De)域(Yu)名(Ming)指(Zhi)向(Xiang)同(Tong)一(Yi)个(Ge)ip地(Di)址(Zhi),(?)也(Ye)非(Fei)同(Tong)源(Yuan)
MyCat是(Shi)目(Mu)前(Qian)最(Zui)流(Liu)行(Xing)的(De)基(Ji)于(Yu)java语(Yu)言(Yan)编(Bian)写(Xie)的(De)数(Shu)据(Ju)库(Ku)中(Zhong)间(Jian)件(Jian),(?)是(Shi)一(Yi)个(Ge)实(Shi)现(Xian)了(Liao)MySQL协(Xie)议(Yi)的(De)服(Fu)务(Wu)器(Qi),(?)前(Qian)端(Duan)用(Yong)户(Hu)可(Ke)以(Yi)把(Ba)它(Ta)看(Kan)作(Zuo)是(Shi)一(Yi)个(Ge)数(Shu)据(Ju)库(Ku)代(Dai)理(Li),(?)用(Yong)MySQL客(Ke)户(Hu)端(Duan)工(Gong)具(Ju)和(He)命(Ming)令(Ling)行(Xing)访(Fang)问(Wen),(?)而(?)其(Qi)后(Hou)端(Duan)可(Ke)以(Yi)用(Yong)MySQL原(Yuan)生(Sheng)协(Xie)议(Yi)与(Yu)多(Duo)个(Ge)MySQL服(Fu)务(Wu)器(Qi)通(Tong)信(Xin),(?)也(Ye)可(Ke)以(Yi)用(Yong)JDBC协(Xie)议(Yi)与(Yu)大(Da)多(Duo)数(Shu)主(Zhu)流(Liu)数(Shu)据(Ju)库(Ku)服(Fu)务(Wu)器(Qi)通(Tong)信(Xin),(?)其(Qi)核(He)心(Xin)功(Gong)能(Neng)是(Shi)分(Fen)库(Ku)分(Fen)表(Biao)。(?)配(Pei)合(He)数(Shu)据(Ju)库(Ku)的(De)主(Zhu)从(Cong)模(Mo)式(Shi)还(Huan)可(Ke)实(Shi)现(Xian)读(Du)写(Xie)分(Fen)离(Li)。(?)
MyCat是(Shi)基(Ji)于(Yu)阿(A)里(Li)开(Kai)源(Yuan)的(De)Cobar产(Chan)品(Pin)而(?)研(Yan)发(Fa),(?)Cobar的(De)稳(Wen)定(Ding)性(Xing)、(?)可(Ke)靠(Kao)性(Xing)、(?)优(You)秀(Xiu)的(De)架(Jia)构(Gou)和(He)性(Xing)能(Neng)以(Yi)及(Ji)众(Zhong)多(Duo)成(Cheng)熟(Shu)的(De)使(Shi)用(Yong)案(An)例(Li)使(Shi)得(De)MyCat变(Bian)得(De)非(Fei)常(Chang)的(De)强(Qiang)大(Da)。(?)
MyCat发(Fa)展(Zhan)到(Dao)目(Mu)前(Qian)的(De)版(Ban)本(Ben),(?)已(Yi)经(Jing)不(Bu)是(Shi)一(Yi)个(Ge)单(Dan)纯(Chun)的(De)MySQL代(Dai)理(Li)了(Liao),(?)它(Ta)的(De)后(Hou)端(Duan)可(Ke)以(Yi)支(Zhi)持(Chi)MySQL、(?)SQL Server、(?)Oracle、(?)DB2、(?)PostgreSQL等(Deng)主(Zhu)流(Liu)数(Shu)据(Ju)库(Ku),(?)也(Ye)支(Zhi)持(Chi)MongoDB这(Zhe)种(Zhong)新(Xin)型(Xing)NoSQL方(Fang)式(Shi)的(De)存(Cun)储(Chu),(?)未(Wei)来(Lai)还(Huan)会(Hui)支(Zhi)持(Chi)更(Geng)多(Duo)类(Lei)型(Xing)的(De)存(Cun)储(Chu)。(?)而(?)在(Zai)最(Zui)终(Zhong)用(Yong)户(Hu)看(Kan)来(Lai),(?)无(Wu)论(Lun)是(Shi)那(Na)种(Zhong)存(Cun)储(Chu)方(Fang)式(Shi),(?)在(Zai)MyCat里(Li),(?)都(Du)是(Shi)一(Yi)个(Ge)传(Chuan)统(Tong)的(De)数(Shu)据(Ju)库(Ku)表(Biao),(?)支(Zhi)持(Chi)标(Biao)准(Zhun)的(De)SQL语(Yu)句(Ju)进(Jin)行(Xing)数(Shu)据(Ju)的(De)操(Cao)作(Zuo),(?)这(Zhe)样(Yang)一(Yi)来(Lai),(?)对(Dui)前(Qian)端(Duan)业(Ye)务(Wu)系(Xi)统(Tong)来(Lai)说(Shuo),(?)可(Ke)以(Yi)大(Da)幅(Fu)降(Jiang)低(Di)开(Kai)发(Fa)难(Nan)度(Du),(?)提(Ti)升(Sheng)开(Kai)发(Fa)速(Su)度(Du)。(?)
就(Jiu)是(Shi)把(Ba)原(Yuan)本(Ben)存(Cun)储(Chu)于(Yu)一(Yi)个(Ge)库(Ku)的(De)数(Shu)据(Ju)存(Cun)储(Chu)到(Dao)多(Duo)个(Ge)库(Ku)上(Shang)。(?)
由(You)于(Yu)对(Dui)数(Shu)据(Ju)库(Ku)的(De)读(Du)写(Xie)都(Du)是(Shi)对(Dui)同(Tong)一(Yi)个(Ge)库(Ku)进(Jin)行(Xing)操(Cao)作(Zuo),(?)所(Suo)以(Yi)单(Dan)库(Ku)并(Bing)不(Bu)能(Neng)解(Jie)决(Jue)大(Da)规(Gui)模(Mo)并(Bing)发(Fa)写(Xie)入(Ru)的(De)问(Wen)题(Ti)。(?)
例(Li)如(Ru),(?)我(Wo)们(Men)会(Hui)建(Jian)立(Li)定(Ding)义(Yi)数(Shu)据(Ju)库(Ku)workDB、(?)商(Shang)品(Pin)数(Shu)据(Ju)库(Ku)payDB、(?)用(Yong)户(Hu)数(Shu)据(Ju)库(Ku)userDB、(?)日(Ri)志(Zhi)数(Shu)据(Ju)库(Ku)logDB等(Deng),(?)分(Fen)别(Bie)用(Yong)于(Yu)存(Cun)储(Chu)项(Xiang)目(Mu)数(Shu)据(Ju)定(Ding)义(Yi)表(Biao)、(?)商(Shang)品(Pin)定(Ding)义(Yi)表(Biao)、(?)用(Yong)户(Hu)数(Shu)据(Ju)表(Biao)、(?)日(Ri)志(Zhi)数(Shu)据(Ju)表(Biao)等(Deng)。(?)
优(You)点(Dian)
1)(?)减(Jian)少(Shao)增(Zeng)量(Liang)数(Shu)据(Ju)写(Xie)入(Ru)时(Shi)的(De)锁(Suo)对(Dui)查(Cha)询(Xun)的(De)影(Ying)响(Xiang)。(?)
2)(?)由(You)于(Yu)单(Dan)表(Biao)数(Shu)量(Liang)下(Xia)降(Jiang),(?)常(Chang)见(Jian)的(De)查(Cha)询(Xun)操(Cao)作(Zuo)由(You)于(Yu)减(Jian)少(Shao)了(Liao)需(Xu)要(Yao)扫(Sao)描(Miao)的(De)记(Ji)录(Lu),(?)使(Shi)得(De)单(Dan)表(Biao)单(Dan)次(Ci)查(Cha)询(Xun)所(Suo)需(Xu)的(De)检(Jian)索(Suo)行(Xing)数(Shu)变(Bian)少(Shao),(?)减(Jian)少(Shao)了(Liao)磁(Ci)盘(Pan)IO,(?)时(Shi)延(Yan)变(Bian)短(Duan)。(?)
缺(Que)点(Dian):(?)
无(Wu)法(Fa)解(Jie)决(Jue)单(Dan)表(Biao)数(Shu)据(Ju)量(Liang)太(Tai)大(Da)的(De)问(Wen)题(Ti)。(?)
横(Heng)向(Xiang)切(Qie)分(Fen)/水(Shui)平(Ping)切(Qie)分(Fen)
把(Ba)原(Yuan)本(Ben)存(Cun)储(Chu)于(Yu)一(Yi)个(Ge)表(Biao)的(De)数(Shu)据(Ju)分(Fen)块(Kuai)存(Cun)储(Chu)到(Dao)多(Duo)个(Ge)表(Biao)上(Shang)。(?)当(Dang)一(Yi)个(Ge)表(Biao)中(Zhong)的(De)数(Shu)据(Ju)量(Liang)过(Guo)大(Da)时(Shi),(?)我(Wo)们(Men)可(Ke)以(Yi)把(Ba)该(Gai)表(Biao)的(De)数(Shu)据(Ju)按(An)照(Zhao)某(Mou)种(Zhong)规(Gui)则(Ze),(?)进(Jin)行(Xing)划(Hua)分(Fen),(?)然(Ran)后(Hou)存(Cun)储(Chu)到(Dao)多(Duo)个(Ge)结(Jie)构(Gou)相(Xiang)同(Tong)的(De)表(Biao),(?)和(He)不(Bu)同(Tong)的(De)库(Ku)上(Shang)。(?)
例(Li)如(Ru),(?)我(Wo)们(Men)userDB中(Zhong)的(De)userTable中(Zhong)数(Shu)据(Ju)量(Liang)很(Hen)大(Da),(?)那(Na)么(Me)可(Ke)以(Yi)把(Ba)userDB切(Qie)分(Fen)为(Wei)结(Jie)构(Gou)相(Xiang)同(Tong)的(De)多(Duo)个(Ge)userDB:(?)part0DB、(?)part1DB等(Deng),(?)再(Zai)将(Jiang)userDB上(Shang)的(De)userTable,(?)切(Qie)分(Fen)为(Wei)很(Hen)多(Duo)userTable:(?)userTable0、(?)userTable1等(Deng),(?)然(Ran)后(Hou)将(Jiang)这(Zhe)些(Xie)表(Biao)按(An)照(Zhao)一(Yi)定(Ding)的(De)规(Gui)则(Ze)存(Cun)储(Chu)到(Dao)多(Duo)个(Ge)userDB上(Shang)。(?)
优(You)点(Dian):(?)
1)(?)单(Dan)表(Biao)的(De)并(Bing)发(Fa)能(Neng)力(Li)提(Ti)高(Gao)了(Liao),(?)磁(Ci)盘(Pan)I/O性(Xing)能(Neng)也(Ye)提(Ti)高(Gao)了(Liao)。(?)
2)(?)如(Ru)果(Guo)出(Chu)现(Xian)高(Gao)并(Bing)发(Fa)的(De)话(Hua),(?)总(Zong)表(Biao)可(Ke)以(Yi)根(Gen)据(Ju)不(Bu)同(Tong)的(De)查(Cha)询(Xun),(?)将(Jiang)并(Bing)发(Fa)压(Ya)力(Li)分(Fen)到(Dao)不(Bu)同(Tong)的(De)小(Xiao)表(Biao)里(Li)面(Mian)。(?)
缺(Que)点(Dian):(?)无(Wu)法(Fa)实(Shi)现(Xian)表(Biao)连(Lian)接(Jie)查(Cha)询(Xun)。(?)
答(Da):(?)Apache:(?)全(Quan)球(Qiu)应(Ying)用(Yong)最(Zui)广(Guang)泛(Fan)的(De)http服(Fu)务(Wu)器(Qi),(?)免(Mian)费(Fei),(?)出(Chu)自(Zi)apache基(Ji)金(Jin)组(Zu)织(Zhi)
Tomcat:(?)应(Ying)用(Yong)也(Ye)算(Suan)非(Fei)常(Chang)广(Guang)泛(Fan)的(De)web 服(Fu)务(Wu)器(Qi),(?)支(Zhi)持(Chi)部(Bu)分(Fen)j2ee,(?)免(Mian)费(Fei),(?)出(Chu)自(Zi) apache基(Ji)金(Jin)组(Zu)织(Zhi)
JBoss:(?)开(Kai)源(Yuan)的(De)应(Ying)用(Yong)服(Fu)务(Wu)器(Qi),(?)比(Bi)较(Jiao)受(Shou)人(Ren)喜(Xi)爱(Ai),(?)免(Mian)费(Fei)((?)文(Wen)档(Dang)要(Yao)收(Shou)费(Fei))(?)
weblogic:(?)应(Ying)该(Gai)说(Shuo)算(Suan)是(Shi)业(Ye)界(Jie)第(Di)一(Yi)的(De)app server,(?)全(Quan)部(Bu)支(Zhi)持(Chi)j2ee1.4((?)收(Shou)费(Fei))(?)
JBoss也(Ye)支(Zhi)持(Chi)j2ee
JBoss和(He)WebLogic都(Du)含(Han)有(You)Jsp和(He)Servlet容(Rong)器(Qi),也(Ye)就(Jiu)可(Ke)以(Yi)做(Zuo)web容(Rong)器(Qi),
JBoss和(He)WebLogic也(Ye)包(Bao)含(Han)EJB容(Rong)器(Qi),是(Shi)完(Wan)整(Zheng)的(De)J2EE应(Ying)用(Yong)服(Fu)务(Wu)器(Qi)
tomcat 只(Zhi)能(Neng)做(Zuo)jsp和(He)servlet的(De)container
A. | nagios |
B. | Jenkins |
C. | nginx |
D. | docker |
分(Fen)析(Xi):(?)答(Da)案(An): C Nginx是(Shi)一(Yi)款(Kuan)轻(Qing)量(Liang)级(Ji)的(De)Web服(Fu)务(Wu)器(Qi)/反(Fan)向(Xiang)代(Dai)理(Li)服(Fu)务(Wu)器(Qi)及(Ji)电(Dian)子(Zi)邮(You)件(Jian)((?)IMAP/POP3)(?)代(Dai)理(Li)服(Fu)务(Wu)器(Qi),(?)并(Bing)在(Zai)一(Yi)个(Ge)BSD-like 协(Xie)议(Yi)下(Xia)发(Fa)行(Xing)。(?)其(Qi)特(Te)点(Dian)是(Shi)占(Zhan)有(You)内(Nei)存(Cun)少(Shao),(?)并(Bing)发(Fa)能(Neng)力(Li)强(Qiang),(?)事(Shi)实(Shi)上(Shang)nginx的(De)并(Bing)发(Fa)能(Neng)力(Li)确(Que)实(Shi)在(Zai)同(Tong)类(Lei)型(Xing)的(De)网(Wang)页(Ye)服(Fu)务(Wu)器(Qi)中(Zhong)表(Biao)现(Xian)较(Jiao)好(Hao),(?)中(Zhong)国(Guo)大(Da)陆(Lu)使(Shi)用(Yong)nginx网(Wang)站(Zhan)用(Yong)户(Hu)有(You):(?)百(Bai)度(Du)、(?)京(Jing)东(Dong)、(?)新(Xin)浪(Lang)、(?)网(Wang)易(Yi)、(?)腾(Teng)讯(Xun)、(?)淘(Tao)宝(Bao)等(Deng)
|
作(Zuo)用(Yong):(?)
Tomcat:(?)目(Mu)前(Qian)应(Ying)用(Yong)非(Fei)常(Chang)广(Guang)泛(Fan)的(De)免(Mian)费(Fei)web服(Fu)务(Wu)器(Qi),(?)支(Zhi)持(Chi)部(Bu)分(Fen)j2ee。(?)
WebSphere:(?)是(Shi)IBM集(Ji)成(Cheng)软(Ruan)件(Jian)平(Ping)台(Tai)。(?)可(Ke)做(Zuo)web服(Fu)务(Wu)器(Qi),(?)WebSphere提(Ti)供(Gong)了(Liao)可(Ke)靠(Kao)、(?)灵(Ling)活(Huo)和(He)健(Jian)壮(Zhuang)的(De)集(Ji)成(Cheng)软(Ruan)件(Jian)。(?)
Weblogic:(?)是(Shi)美(Mei)国(Guo)bea公(Gong)司(Si)出(Chu)品(Pin)的(De)一(Yi)个(Ge)基(Ji)于(Yu)j2ee架(Jia)构(Gou)的(De)中(Zhong)间(Jian)件(Jian)。(?)BEA WebLogic是(Shi)用(Yong)于(Yu)开(Kai)发(Fa)、(?)集(Ji)成(Cheng)、(?)部(Bu)署(Shu)和(He)管(Guan)理(Li)大(Da)型(Xing)分(Fen)布(Bu)式(Shi)Web应(Ying)用(Yong)、(?)网(Wang)络(Luo)应(Ying)用(Yong)和(He)数(Shu)据(Ju)库(Ku)应(Ying)用(Yong)的(De)Java应(Ying)用(Yong)服(Fu)务(Wu)器(Qi)。(?)
特(Te)点(Dian)((?)区(Qu)别(Bie))(?):(?)
1)(?)价(Jia)位(Wei)不(Bu)同(Tong):(?)Tomcat的(De)是(Shi)免(Mian)费(Fei)的(De);(?)WebLogic与(Yu)WebSphere是(Shi)收(Shou)费(Fei)的(De),(?)而(?)且(Qie)价(Jia)格(Ge)不(Bu)菲(Fei)。(?)
2)(?) 开(Kai)源(Yuan)性(Xing)不(Bu)同(Tong):(?)Tomcat的(De)是(Shi)完(Wan)全(Quan)开(Kai)源(Yuan)的(De),(?)而(?)其(Qi)他(Ta)两(Liang)个(Ge)不(Bu)是(Shi)。(?)WebLogic与(Yu)WebSphere都(Du)是(Shi)对(Dui)业(Ye)内(Nei)多(Duo)种(Zhong)标(Biao)准(Zhun)的(De)全(Quan)面(Mian)支(Zhi)持(Chi),(?)包(Bao)括(Kuo)JSB、(?)JMS、(?)JDBC、(?)XML和(He)WML,(?)使(Shi)Web应(Ying)用(Yong)系(Xi)统(Tong)实(Shi)施(Shi)更(Geng)简(Jian)单(Dan),(?)且(Qie)保(Bao)护(Hu)投(Tou)资(Zi),(?)同(Tong)时(Shi)也(Ye)使(Shi)基(Ji)于(Yu)标(Biao)准(Zhun)的(De)解(Jie)决(Jue)方(Fang)案(An)的(De)开(Kai)发(Fa)更(Geng)加(Jia)简(Jian)便(Bian)。(?)
3)(?) 扩(Kuo)展(Zhan)性(Xing)的(De)不(Bu)同(Tong):(?)WebLogic和(He)WebSphere都(Du)是(Shi)以(Yi)其(Qi)高(Gao)扩(Kuo)展(Zhan)的(De)架(Jia)构(Gou)体(Ti)系(Xi)闻(Wen)名(Ming)于(Yu)业(Ye)内(Nei),(?)包(Bao)括(Kuo)客(Ke)户(Hu)机(Ji)连(Lian)接(Jie)的(De)共(Gong)享(Xiang)、(?)资(Zi)源(Yuan) pooling以(Yi)及(Ji)动(Dong)态(Tai)网(Wang)页(Ye)。(?)
4)(?)应(Ying)用(Yong)范(Fan)围(Wei)的(De)区(Qu)别(Bie):(?)Tomcat 是(Shi)一(Yi)个(Ge)小(Xiao)型(Xing)的(De)轻(Qing)量(Liang)级(Ji)应(Ying)用(Yong)服(Fu)务(Wu)器(Qi),(?)在(Zai)中(Zhong)小(Xiao)型(Xing)系(Xi)统(Tong)和(He)并(Bing)发(Fa)访(Fang)问(Wen)用(Yong)户(Hu)不(Bu)是(Shi)很(Hen)多(Duo)的(De)场(Chang)合(He)下(Xia)被(Bei)普(Pu)遍(Bian)使(Shi)用(Yong),(?)是(Shi)开(Kai)发(Fa)和(He)调(Diao)试(Shi)JSP 程(Cheng)序(Xu)的(De)首(Shou)选(Xuan)。(?)WebLogic和(He)WebSphere是(Shi)商(Shang)业(Ye)软(Ruan)件(Jian),功(Gong)能(Neng)齐(Qi)全(Quan)强(Qiang)大(Da),主(Zhu)要(Yao)应(Ying)用(Yong)于(Yu)大(Da)型(Xing)企(Qi)业(Ye)的(De)大(Da)型(Xing)项(Xiang)目(Mu)。(?)
5)(?)安(An)全(Quan)性(Xing)问(Wen)题(Ti)区(Qu)别(Bie):(?)因(Yin)为(Wei)Tomcat是(Shi)开(Kai)源(Yuan)的(De),(?)所(Suo)以(Yi)它(Ta)们(Men)的(De)安(An)全(Quan)性(Xing)相(Xiang)对(Dui)来(Lai)说(Shuo)比(Bi)较(Jiao)低(Di),(?)万(Wan)一(Yi)应(Ying)用(Yong)服(Fu)务(Wu)器(Qi)本(Ben)身(Shen)有(You)什(Shi)么(Me)漏(Lou)洞(Dong),(?)你(Ni)是(Shi)没(Mei)办(Ban)法(Fa)向(Xiang)Apache索(Suo)赔(Pei)的(De)。(?)而(?)WebLogic和(He)WebSphere其(Qi)容(Rong)错(Cuo)、(?)系(Xi)统(Tong)管(Guan)理(Li)和(He)安(An)全(Quan)性(Xing)能(Neng)已(Yi)经(Jing)在(Zai)全(Quan)球(Qiu)数(Shu)以(Yi)千(Qian)记(Ji)的(De)关(Guan)键(Jian)任(Ren)务(Wu)环(Huan)境(Jing)中(Zhong)得(De)以(Yi)验(Yan)证(Zheng)。(?)
C/S结(Jie)构(Gou),(?)即(Ji)Client/Server(客(Ke)户(Hu)机(Ji)/服(Fu)务(Wu)器(Qi))结(Jie)构(Gou),(?)通(Tong)过(Guo)将(Jiang)任(Ren)务(Wu)合(He)理(Li)分(Fen)配(Pei)到(Dao)Client端(Duan)和(He)Server端(Duan),(?)降(Jiang)低(Di)了(Liao)系(Xi)统(Tong)的(De)通(Tong)讯(Xun)开(Kai)销(Xiao),(?)可(Ke)充(Chong)分(Fen)利(Li)用(Yong)两(Liang)端(Duan)硬(Ying)件(Jian)环(Huan)境(Jing)优(You)势(Shi)。(?)早(Zao)期(Qi)软(Ruan)件(Jian)系(Xi)统(Tong)多(Duo)以(Yi)此(Ci)作(Zuo)为(Wei)首(Shou)选(Xuan)设(She)计(Ji)标(Biao)准(Zhun)。(?)
B/S结(Jie)构(Gou),(?)即(Ji)Browser/Server(浏(Liu)览(Lan)器(Qi)/服(Fu)务(Wu)器(Qi))结(Jie)构(Gou),(?)是(Shi)随(Sui)着(Zhuo)Internet技(Ji)术(Shu)的(De)兴(Xing)起(Qi),(?)对(Dui)C/S结(Jie)构(Gou)的(De)一(Yi)种(Zhong)变(Bian)化(Hua)或(Huo)者(Zhe)改(Gai)进(Jin)的(De)结(Jie)构(Gou)。(?)在(Zai)这(Zhe)种(Zhong)结(Jie)构(Gou)下(Xia),(?)用(Yong)户(Hu)界(Jie)面(Mian)完(Wan)全(Quan)通(Tong)过(Guo)WWW浏(Liu)览(Lan)器(Qi)实(Shi)现(Xian),(?)一(Yi)部(Bu)分(Fen)事(Shi)务(Wu)逻(Luo)辑(Ji)在(Zai)前(Qian)端(Duan)实(Shi)现(Xian),(?)但(Dan)是(Shi)主(Zhu)要(Yao)事(Shi)务(Wu)逻(Luo)辑(Ji)在(Zai)服(Fu)务(Wu)器(Qi)端(Duan)实(Shi)现(Xian),(?)节(Jie)约(Yue)了(Liao)开(Kai)发(Fa)成(Cheng)本(Ben),(?)便(Bian)于(Yu)软(Ruan)件(Jian)维(Wei)护(Hu)。(?)
区(Qu)别(Bie)
1、(?)C/S是(Shi)建(Jian)立(Li)在(Zai)局(Ju)域(Yu)网(Wang)的(De)基(Ji)础(Chu)上(Shang)的(De)。(?)B/S是(Shi)建(Jian)立(Li)在(Zai)广(Guang)域(Yu)网(Wang)的(De)基(Ji)础(Chu)上(Shang)的(De),(?)但(Dan)并(Bing)不(Bu)是(Shi)说(Shuo)B/S结(Jie)构(Gou)不(Bu)能(Neng)在(Zai)局(Ju)域(Yu)网(Wang)上(Shang)使(Shi)用(Yong)。(?)
2、(?)B/S业(Ye)务(Wu)扩(Kuo)展(Zhan)简(Jian)单(Dan)方(Fang)便(Bian),(?)通(Tong)过(Guo)增(Zeng)加(Jia)页(Ye)面(Mian)即(Ji)可(Ke)增(Zeng)加(Jia)服(Fu)务(Wu)器(Qi)功(Gong)能(Neng)。(?)C/S的(De)客(Ke)户(Hu)端(Duan)还(Huan)需(Xu)要(Yao)安(An)装(Zhuang)专(Zhuan)用(Yong)的(De)客(Ke)户(Hu)端(Duan)软(Ruan)件(Jian),(?)不(Bu)利(Li)于(Yu)扩(Kuo)展(Zhan)。(?)
3、(?)B/S维(Wei)护(Hu)简(Jian)单(Dan)方(Fang)便(Bian)。(?)开(Kai)发(Fa)、(?)维(Wei)护(Hu)等(Deng)几(Ji)乎(Hu)所(Suo)有(You)工(Gong)作(Zuo)也(Ye)都(Du)集(Ji)中(Zhong)在(Zai)服(Fu)务(Wu)器(Qi)端(Duan),(?)当(Dang)企(Qi)业(Ye)对(Dui)网(Wang)络(Luo)应(Ying)用(Yong)进(Jin)行(Xing)升(Sheng)级(Ji)时(Shi),(?)只(Zhi)需(Xu)更(Geng)新(Xin)服(Fu)务(Wu)器(Qi)端(Duan)的(De)软(Ruan)件(Jian)就(Jiu)可(Ke)以(Yi),(?)这(Zhe)减(Jian)轻(Qing)了(Liao)异(Yi)地(Di)用(Yong)户(Hu)系(Xi)统(Tong)维(Wei)护(Hu)与(Yu)升(Sheng)级(Ji)的(De)成(Cheng)本(Ben)
4、(?)B/S响(Xiang)应(Ying)速(Su)度(Du)不(Bu)及(Ji)C/S;(?)
5、(?)B/S用(Yong)户(Hu)体(Ti)验(Yan)效(Xiao)果(Guo)不(Bu)是(Shi)很(Hen)理(Li)想(Xiang)
容(Rong)器(Qi)也(Ye)是(Shi) java 程(Cheng)序(Xu),(?)它(Ta)的(De)主(Zhu)要(Yao)作(Zuo)用(Yong)是(Shi)为(Wei)应(Ying)用(Yong)程(Cheng)序(Xu)提(Ti)供(Gong)运(Yun)行(Xing)环(Huan)境(Jing)。(?)容(Rong)器(Qi)用(Yong)来(Lai)接(Jie)管(Guan)安(An)全(Quan)性(Xing)、(?)并(Bing)发(Fa)性(Xing)、(?)事(Shi)务(Wu)处(Chu)理(Li)、(?)交(Jiao)换(Huan)到(Dao)辅(Fu)助(Zhu)存(Cun)储(Chu)器(Qi)和(He)其(Qi)它(Ta)服(Fu)务(Wu)的(De)责(Ze)任(Ren)
以(Yi)tomcat为(Wei)例(Li):(?)Tomcat是(Shi)一(Yi)个(Ge)后(Hou)台(Tai)服(Fu)务(Wu)进(Jin)程(Cheng),(?)其(Qi)它(Ta)的(De)servlet((?)相(Xiang)当(Dang)于(Yu)DLL)(?)是(Shi)在(Zai)Tomcat容(Rong)器(Qi)内(Nei)运(Yun)行(Xing),Broswer只(Zhi)与(Yu)Tomcat通(Tong)迅(Xun); Tomcat接(Jie)受(Shou)browser的(De)请(Qing)求(Qiu),(?)经(Jing)过(Guo)一(Yi)系(Xi)列(Lie)动(Dong)作(Zuo)((?)如(Ru)果(Guo)是(Shi)静(Jing)态(Tai)网(Wang)页(Ye),(?)那(Na)么(Me)装(Zhuang)载(Zai),(?)按(An)http协(Xie)议(Yi)形(Xing)成(Cheng)响(Xiang)应(Ying)流(Liu);如(Ru)果(Guo)是(Shi)动(Dong)态(Tai)的(De)如(Ru)JSP,(?)那(Na)就(Jiu)要(Yao)调(Diao)用(Yong)JDK 中(Zhong)的(De)servlet.jsp接(Jie)口(Kou),(?)解(Jie)释(Shi)形(Xing)成(Cheng)静(Jing)态(Tai)网(Wang)页(Ye),(?)按(An)http协(Xie)议(Yi)生(Sheng)成(Cheng)响(Xiang)应(Ying)流(Liu)发(Fa)送(Song)回(Hui)browser)(?)后(Hou),(?)形(Xing)成(Cheng)静(Jing)态(Tai)网(Wang)页(Ye),(?)返(Fan)回(Hui)响(Xiang)应(Ying)。(?)
传(Chuan)统(Tong)的(De)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)方(Fang)式(Shi)
一(Yi)个(Ge)连(Lian)接(Jie)对(Dui)象(Xiang)对(Dui)应(Ying)一(Yi)个(Ge)物(Wu)理(Li)连(Lian)接(Jie)
每(Mei)次(Ci)操(Cao)作(Zuo)都(Du)打(Da)开(Kai)一(Yi)个(Ge)物(Wu)理(Li)连(Lian)接(Jie),(?)
使(Shi)用(Yong)完(Wan)都(Du)关(Guan)闭(Bi)连(Lian)接(Jie),(?)造(Zao)成(Cheng)系(Xi)统(Tong)性(Xing)能(Neng)低(Di)下(Xia)。(?)
连(Lian)接(Jie)池(Chi)技(Ji)术(Shu)
客(Ke)户(Hu)程(Cheng)序(Xu)得(De)到(Dao)的(De)连(Lian)接(Jie)对(Dui)象(Xiang)是(Shi)连(Lian)接(Jie)池(Chi)中(Zhong)物(Wu)理(Li)连(Lian)接(Jie)的(De)一(Yi)个(Ge)句(Ju)柄(Bing),(?)调(Diao)用(Yong)连(Lian)接(Jie)对(Dui)象(Xiang)的(De)close()方(Fang)法(Fa),物(Wu)理(Li)连(Lian)接(Jie)并(Bing)没(Mei)有(You)关(Guan)闭(Bi),数(Shu)据(Ju)源(Yuan)的(De)实(Shi)现(Xian)只(Zhi)是(Shi)删(Shan)除(Chu)了(Liao)客(Ke)户(Hu)程(Cheng)序(Xu)中(Zhong)的(De)连(Lian)接(Jie)对(Dui)象(Xiang)和(He)池(Chi)中(Zhong)的(De)连(Lian)接(Jie)对(Dui)象(Xiang)之(Zhi)间(Jian)的(De)联(Lian)系(Xi).
数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)的(De)建(Jian)立(Li)及(Ji)关(Guan)闭(Bi)是(Shi)耗(Hao)费(Fei)系(Xi)统(Tong)资(Zi)源(Yuan)的(De)操(Cao)作(Zuo),(?)在(Zai)大(Da)型(Xing)应(Ying)用(Yong)中(Zhong)对(Dui)系(Xi)统(Tong)的(De)性(Xing)能(Neng)影(Ying)响(Xiang)尤(You)为(Wei)明(Ming)显(Xian)。(?)为(Wei)了(Liao)能(Neng)重(Zhong)复(Fu)利(Li)用(Yong)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)对(Dui)象(Xiang),缩(Suo)短(Duan)请(Qing)求(Qiu)的(De)响(Xiang)应(Ying)时(Shi)间(Jian)和(He)提(Ti)高(Gao)服(Fu)务(Wu)器(Qi)的(De)性(Xing)能(Neng),支(Zhi)持(Chi)更(Geng)多(Duo)的(De)客(Ke)户(Hu),(?)应(Ying)采(Cai)用(Yong)连(Lian)接(Jie)池(Chi)技(Ji)术(Shu).

数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)池(Chi)的(De)原(Yuan)理(Li)
传(Chuan)统(Tong)连(Lian)接(Jie)方(Fang)式(Shi):
首(Shou)先(Xian)调(Diao)用(Yong)Class.forName()方(Fang)法(Fa)加(Jia)载(Zai)数(Shu)据(Ju)库(Ku)驱(Qu)动(Dong),(?)
然(Ran)后(Hou)调(Diao)用(Yong)DriverManager.getConnection()方(Fang)法(Fa)建(Jian)立(Li)连(Lian)接(Jie).
连(Lian)接(Jie)池(Chi)技(Ji)术(Shu):
连(Lian)接(Jie)池(Chi)解(Jie)决(Jue)方(Fang)案(An)是(Shi)在(Zai)应(Ying)用(Yong)程(Cheng)序(Xu)启(Qi)动(Dong)时(Shi)就(Jiu)预(Yu)先(Xian)建(Jian)立(Li)多(Duo)个(Ge)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)对(Dui)象(Xiang),然(Ran)后(Hou)将(Jiang)连(Lian)接(Jie)对(Dui)象(Xiang)保(Bao)存(Cun)到(Dao)连(Lian)接(Jie)池(Chi)中(Zhong)。(?)
当(Dang)客(Ke)户(Hu)请(Qing)求(Qiu)到(Dao)来(Lai)时(Shi),从(Cong)池(Chi)中(Zhong)取(Qu)出(Chu)一(Yi)个(Ge)连(Lian)接(Jie)对(Dui)象(Xiang)为(Wei)客(Ke)户(Hu)服(Fu)务(Wu)。(?)
当(Dang)请(Qing)求(Qiu)完(Wan)成(Cheng)时(Shi),客(Ke)户(Hu)程(Cheng)序(Xu)调(Diao)用(Yong)close()方(Fang)法(Fa),将(Jiang)连(Lian)接(Jie)对(Dui)象(Xiang)放(Fang)回(Hui)池(Chi)中(Zhong).
对(Dui)于(Yu)多(Duo)于(Yu)连(Lian)接(Jie)池(Chi)中(Zhong)连(Lian)接(Jie)数(Shu)的(De)请(Qing)求(Qiu),(?)排(Pai)队(Dui)等(Deng)待(Dai)。(?)
应(Ying)用(Yong)程(Cheng)序(Xu)还(Huan)可(Ke)根(Gen)据(Ju)连(Lian)接(Jie)池(Chi)中(Zhong)连(Lian)接(Jie)的(De)使(Shi)用(Yong)率(Lu),(?)动(Dong)态(Tai)增(Zeng)加(Jia)或(Huo)减(Jian)少(Shao)池(Chi)中(Zhong)的(De)连(Lian)接(Jie)数(Shu)。(?)


一(Yi)、(?)MVC原(Yuan)理(Li)
MVC是(Shi)一(Yi)种(Zhong)程(Cheng)序(Xu)开(Kai)发(Fa)设(She)计(Ji)模(Mo)式(Shi),它(Ta)实(Shi)现(Xian)了(Liao)显(Xian)示(Shi)模(Mo)块(Kuai)与(Yu)功(Gong)能(Neng)模(Mo)块(Kuai)的(De)分(Fen)离(Li)。(?)提(Ti)高(Gao)了(Liao)程(Cheng)序(Xu)的(De)可(Ke)维(Wei)护(Hu)性(Xing)、(?)可(Ke)移(Yi)植(Zhi)性(Xing)、(?)可(Ke)扩(Kuo)展(Zhan)性(Xing)与(Yu)可(Ke)重(Zhong)用(Yong)性(Xing),(?)降(Jiang)低(Di)了(Liao)程(Cheng)序(Xu)的(De)开(Kai)发(Fa)难(Nan)度(Du)。(?)它(Ta)主(Zhu)要(Yao)分(Fen)模(Mo)型(Xing)、(?)视(Shi)图(Tu)、(?)控(Kong)制(Zhi)器(Qi)三(San)层(Ceng)。(?)
1、(?)模(Mo)型(Xing)(model)它(Ta)是(Shi)应(Ying)用(Yong)程(Cheng)序(Xu)的(De)主(Zhu)体(Ti)部(Bu)分(Fen),(?)主(Zhu)要(Yao)包(Bao)括(Kuo)业(Ye)务(Wu)逻(Luo)辑(Ji)模(Mo)块(Kuai)和(He)数(Shu)据(Ju)模(Mo)块(Kuai)。(?)模(Mo)型(Xing)与(Yu)数(Shu)据(Ju)格(Ge)式(Shi)无(Wu)关(Guan),(?)这(Zhe)样(Yang)一(Yi)个(Ge)模(Mo)型(Xing)能(Neng)为(Wei)多(Duo)个(Ge)视(Shi)图(Tu)提(Ti)供(Gong)数(Shu)据(Ju)。(?)由(You)于(Yu)应(Ying)用(Yong)于(Yu)模(Mo)型(Xing)的(De)代(Dai)码(Ma)只(Zhi)需(Xu)写(Xie)一(Yi)次(Ci)就(Jiu)可(Ke)以(Yi)被(Bei)多(Duo)个(Ge)视(Shi)图(Tu)重(Zhong)用(Yong),(?)所(Suo)以(Yi)减(Jian)少(Shao)了(Liao)代(Dai)码(Ma)的(De)重(Zhong)复(Fu)性(Xing)
2、(?)视(Shi)图(Tu)(view) 用(Yong)户(Hu)与(Yu)之(Zhi)交(Jiao)互(Hu)的(De)界(Jie)面(Mian)、(?)在(Zai)web中(Zhong)视(Shi)图(Tu)一(Yi)般(Ban)由(You)jsp,html组(Zu)成(Cheng)
3、(?)控(Kong)制(Zhi)器(Qi)(controller)接(Jie)收(Shou)来(Lai)自(Zi)界(Jie)面(Mian)的(De)请(Qing)求(Qiu) 并(Bing)交(Jiao)给(Gei)模(Mo)型(Xing)进(Jin)行(Xing)处(Chu)理(Li) 在(Zai)这(Zhe)个(Ge)过(Guo)程(Cheng)中(Zhong)控(Kong)制(Zhi)器(Qi)不(Bu)做(Zuo)任(Ren)何(He)处(Chu)理(Li)只(Zhi)是(Shi)起(Qi)到(Dao)了(Liao)一(Yi)个(Ge)连(Lian)接(Jie)的(De)作(Zuo)用(Yong)
二(?)、(?)MVC的(De)优(You)点(Dian)
1、(?)降(Jiang)低(Di)代(Dai)码(Ma)耦(Ou)合(He)性(Xing)。(?)在(Zai)MVC模(Mo)式(Shi)中(Zhong),(?)三(San)个(Ge)层(Ceng)各(Ge)施(Shi)其(Qi)职(Zhi),(?)所(Suo)以(Yi)如(Ru)果(Guo)一(Yi)旦(Dan)哪(Na)一(Yi)层(Ceng)的(De)需(Xu)求(Qiu)发(Fa)生(Sheng)了(Liao)变(Bian)化(Hua),(?)就(Jiu)只(Zhi)需(Xu)要(Yao)更(Geng)改(Gai)相(Xiang)应(Ying)的(De)层(Ceng)中(Zhong)的(De)代(Dai)码(Ma)而(?)不(Bu)会(Hui)影(Ying)响(Xiang)到(Dao)其(Qi)他(Ta)层(Ceng)中(Zhong)的(De)代(Dai)码(Ma)。(?)
2、(?)有(You)利(Li)于(Yu)分(Fen)工(Gong)合(He)作(Zuo)。(?)在(Zai)MVC模(Mo)式(Shi)中(Zhong),(?)由(You)于(Yu)按(An)层(Ceng)把(Ba)系(Xi)统(Tong)分(Fen)开(Kai),(?)那(Na)么(Me)就(Jiu)能(Neng)更(Geng)好(Hao)的(De)实(Shi)现(Xian)开(Kai)发(Fa)中(Zhong)的(De)分(Fen)工(Gong)。(?)网(Wang)页(Ye)设(She)计(Ji)人(Ren)员(Yuan)可(Ke)进(Jin)行(Xing)开(Kai)发(Fa)视(Shi)图(Tu)层(Ceng)中(Zhong)的(De)JSP,(?)而(?)对(Dui)业(Ye)务(Wu)熟(Shu)悉(Xi)的(De)人(Ren)员(Yuan)可(Ke)开(Kai)发(Fa)业(Ye)务(Wu)层(Ceng),(?)而(?)其(Qi)他(Ta)开(Kai)发(Fa)人(Ren)员(Yuan)可(Ke)开(Kai)发(Fa)控(Kong)制(Zhi)层(Ceng)。(?)
3、(?)有(You)利(Li)于(Yu)组(Zu)件(Jian)的(De)重(Zhong)用(Yong)。(?)如(Ru)控(Kong)制(Zhi)层(Ceng)可(Ke)独(Du)立(Li)成(Cheng)一(Yi)个(Ge)能(Neng)用(Yong)的(De)组(Zu)件(Jian),(?)表(Biao)示(Shi)层(Ceng)也(Ye)可(Ke)做(Zuo)成(Cheng)通(Tong)用(Yong)的(De)操(Cao)作(Zuo)界(Jie)面(Mian)。(?)可(Ke)以(Yi)为(Wei)一(Yi)个(Ge)模(Mo)型(Xing)在(Zai)运(Yun)行(Xing)时(Shi)同(Tong)时(Shi)建(Jian)立(Li)和(He)使(Shi)用(Yong)多(Duo)个(Ge)视(Shi)图(Tu)。(?)
三(San)、(?)MVC的(De)不(Bu)足(Zu)之(Zhi)处(Chu)
1、(?)增(Zeng)加(Jia)了(Liao)系(Xi)统(Tong)结(Jie)构(Gou)和(He)实(Shi)现(Xian)的(De)复(Fu)杂(Za)性(Xing)。(?)对(Dui)于(Yu)简(Jian)单(Dan)的(De)界(Jie)面(Mian),(?)严(Yan)格(Ge)遵(Zun)循(Xun)MVC,(?)使(Shi)模(Mo)型(Xing)、(?)视(Shi)图(Tu)与(Yu)控(Kong)制(Zhi)器(Qi)分(Fen)离(Li),(?)会(Hui)增(Zeng)加(Jia)结(Jie)构(Gou)的(De)复(Fu)杂(Za)性(Xing),(?)并(Bing)可(Ke)能(Neng)产(Chan)生(Sheng)过(Guo)多(Duo)的(De)更(Geng)新(Xin)操(Cao)作(Zuo),(?)降(Jiang)低(Di)运(Yun)行(Xing)效(Xiao)率(Lu)。(?)
2、(?)视(Shi)图(Tu)与(Yu)控(Kong)制(Zhi)器(Qi)间(Jian)的(De)过(Guo)于(Yu)紧(Jin)密(Mi)的(De)连(Lian)接(Jie)。(?)视(Shi)图(Tu)与(Yu)控(Kong)制(Zhi)器(Qi)是(Shi)相(Xiang)互(Hu)分(Fen)离(Li),(?)但(Dan)确(Que)实(Shi)联(Lian)系(Xi)紧(Jin)密(Mi)的(De)部(Bu)件(Jian),(?)视(Shi)图(Tu)没(Mei)有(You)控(Kong)制(Zhi)器(Qi)的(De)存(Cun)在(Zai),(?)其(Qi)应(Ying)用(Yong)是(Shi)很(Hen)有(You)限(Xian)的(De),(?)反(Fan)之(Zhi)亦(Yi)然(Ran),(?)这(Zhe)样(Yang)就(Jiu)妨(Fang)碍(Ai)了(Liao)他(Ta)们(Men)的(De)独(Du)立(Li)重(Zhong)用(Yong)。(?)
3、(?)视(Shi)图(Tu)对(Dui)模(Mo)型(Xing)数(Shu)据(Ju)的(De)低(Di)效(Xiao)率(Lu)访(Fang)问(Wen)。(?)依(Yi)据(Ju)模(Mo)型(Xing)操(Cao)作(Zuo)接(Jie)口(Kou)的(De)不(Bu)同(Tong),(?)视(Shi)图(Tu)可(Ke)能(Neng)需(Xu)要(Yao)多(Duo)次(Ci)调(Diao)用(Yong)才(Cai)能(Neng)获(Huo)得(De)足(Zu)够(Gou)的(De)显(Xian)示(Shi)数(Shu)据(Ju)。(?)对(Dui)未(Wei)变(Bian)化(Hua)数(Shu)据(Ju)的(De)不(Bu)必(Bi)要(Yao)的(De)频(Pin)繁(Fan)访(Fang)问(Wen),(?)也(Ye)将(Jiang)损(Sun)害(Hai)操(Cao)作(Zuo)性(Xing)能(Neng)。(?)
4、(?)目(Mu)前(Qian),(?)一(Yi)般(Ban)高(Gao)级(Ji)的(De)界(Jie)面(Mian)工(Gong)具(Ju)或(Huo)构(Gou)造(Zao)器(Qi)不(Bu)支(Zhi)持(Chi)模(Mo)式(Shi)。(?)改(Gai)造(Zao)这(Zhe)些(Xie)工(Gong)具(Ju)以(Yi)适(Shi)应(Ying)MVC需(Xu)要(Yao)和(He)建(Jian)立(Li)分(Fen)离(Li)的(De)部(Bu)件(Jian)的(De)代(Dai)价(Jia)是(Shi)很(Hen)高(Gao)的(De),(?)从(Cong)而(?)造(Zao)成(Cheng)MVC使(Shi)用(Yong)的(De)困(Kun)难(Nan)。(?)
1)(?)页(Ye)面(Mian)提(Ti)交(Jiao)页(Ye)码(Ma)(第(Di)几(Ji)页(Ye))到(Dao)Servlet中(Zhong)
2)(?)Servlet接(Jie)收(Shou)到(Dao)页(Ye)码(Ma)后(Hou),(?)将(Jiang)页(Ye)码(Ma)传(Chuan)递(Di)给(Gei)分(Fen)页(Ye)工(Gong)具(Ju)类(Lei)(PageBean)
3)(?)Servlet中(Zhong)调(Diao)用(Yong)Service层(Ceng)传(Chuan)入(Ru)PageBean对(Dui)象(Xiang)
4)(?)Service层(Ceng)调(Diao)用(Yong)DAO层(Ceng)传(Chuan)入(Ru)PageBean对(Dui)象(Xiang)
5)(?)Servlet中(Zhong)得(De)到(Dao)查(Cha)询(Xun)出(Chu)来(Lai)的(De)数(Shu)据(Ju),(?)并(Bing)setAttrivute保(Bao)存(Cun)
6)(?)在(Zai)页(Ye)面(Mian)中(Zhong)得(De)到(Dao)(getAttribute)数(Shu)据(Ju),(?)遍(Bian)历(Li)输(Shu)出(Chu)
答(Da):(?) Unix和(He)Linux平(Ping)台(Tai)下(Xia)使(Shi)用(Yong)最(Zui)广(Guang)泛(Fan)的(De)免(Mian)费(Fei)HTTP服(Fu)务(Wu)器(Qi)是(Shi)Apache服(Fu)务(Wu)器(Qi),(?)而(?)Windows平(Ping)台(Tai)的(De)服(Fu)务(Wu)器(Qi)通(Tong)常(Chang)使(Shi)用(Yong)IIS作(Zuo)为(Wei)Web服(Fu)务(Wu)器(Qi)。(?)选(Xuan)择(Ze)Web服(Fu)务(Wu)器(Qi)应(Ying)考(Kao)虑(Lu)的(De)因(Yin)素(Su)有(You):(?)性(Xing)能(Neng)、(?)安(An)全(Quan)性(Xing)、(?)日(Ri)志(Zhi)和(He)统(Tong)计(Ji)、(?)虚(Xu)拟(Ni)主(Zhu)机(Ji)、(?)代(Dai)理(Li)服(Fu)务(Wu)器(Qi)、(?)缓(Huan)冲(Chong)服(Fu)务(Wu)和(He)集(Ji)成(Cheng)应(Ying)用(Yong)程(Cheng)序(Xu)等(Deng)。(?)下(Xia)面(Mian)是(Shi)对(Dui)常(Chang)用(Yong)服(Fu)务(Wu)器(Qi)的(De)简(Jian)介(Jie):(?)
IIS:(?)Microsoft的(De)Web服(Fu)务(Wu)器(Qi)产(Chan)品(Pin)为(Wei)Internet Information Services。(?)IIS 是(Shi)允(Yun)许(Xu)在(Zai)公(Gong)共(Gong)Intranet或(Huo)Internet上(Shang)发(Fa)布(Bu)信(Xin)息(Xi)的(De)Web服(Fu)务(Wu)器(Qi)。(?)IIS是(Shi)目(Mu)前(Qian)最(Zui)流(Liu)行(Xing)的(De)Web服(Fu)务(Wu)器(Qi)产(Chan)品(Pin)之(Zhi)一(Yi),(?)很(Hen)多(Duo)著(Zhu)名(Ming)的(De)网(Wang)站(Zhan)都(Du)是(Shi)建(Jian)立(Li)在(Zai)IIS的(De)平(Ping)台(Tai)上(Shang)。(?)IIS提(Ti)供(Gong)了(Liao)一(Yi)个(Ge)图(Tu)形(Xing)界(Jie)面(Mian)的(De)管(Guan)理(Li)工(Gong)具(Ju),(?)称(Cheng)为(Wei)Internet服(Fu)务(Wu)管(Guan)理(Li)器(Qi),(?)可(Ke)用(Yong)于(Yu)监(Jian)视(Shi)配(Pei)置(Zhi)和(He)控(Kong)制(Zhi)Internet服(Fu)务(Wu)。(?)IIS是(Shi)一(Yi)种(Zhong)Web服(Fu)务(Wu)组(Zu)件(Jian),(?)其(Qi)中(Zhong)包(Bao)括(Kuo)Web服(Fu)务(Wu)器(Qi)、(?)FTP服(Fu)务(Wu)器(Qi)、(?)NNTP服(Fu)务(Wu)器(Qi)和(He)SMTP服(Fu)务(Wu)器(Qi),(?)分(Fen)别(Bie)用(Yong)于(Yu)网(Wang)页(Ye)浏(Liu)览(Lan)、(?)文(Wen)件(Jian)传(Chuan)输(Shu)、(?)新(Xin)闻(Wen)服(Fu)务(Wu)和(He)邮(You)件(Jian)发(Fa)送(Song)等(Deng)方(Fang)面(Mian),(?)它(Ta)使(Shi)得(De)在(Zai)网(Wang)络(Luo)((?)包(Bao)括(Kuo)互(Hu)联(Lian)网(Wang)和(He)局(Ju)域(Yu)网(Wang))(?)上(Shang)发(Fa)布(Bu)信(Xin)息(Xi)成(Cheng)了(Liao)一(Yi)件(Jian)很(Hen)容(Rong)易(Yi)的(De)事(Shi)。(?)它(Ta)提(Ti)供(Gong)ISAPI(Intranet Server API)(?)作(Zuo)为(Wei)扩(Kuo)展(Zhan)Web服(Fu)务(Wu)器(Qi)功(Gong)能(Neng)的(De)编(Bian)程(Cheng)接(Jie)口(Kou);(?)同(Tong)时(Shi),(?)它(Ta)还(Huan)提(Ti)供(Gong)一(Yi)个(Ge)Internet数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)器(Qi),(?)可(Ke)以(Yi)实(Shi)现(Xian)对(Dui)数(Shu)据(Ju)库(Ku)的(De)查(Cha)询(Xun)和(He)更(Geng)新(Xin)。(?)
Kangle:(?)Kangle Web服(Fu)务(Wu)器(Qi)是(Shi)一(Yi)款(Kuan)跨(Kua)平(Ping)台(Tai)、(?)功(Gong)能(Neng)强(Qiang)大(Da)、(?)安(An)全(Quan)稳(Wen)定(Ding)、(?)易(Yi)操(Cao)作(Zuo)的(De)高(Gao)性(Xing)能(Neng)Web服(Fu)务(Wu)器(Qi)和(He)反(Fan)向(Xiang)代(Dai)理(Li)服(Fu)务(Wu)器(Qi)软(Ruan)件(Jian)。(?)此(Ci)外(Wai),(?)Kangle也(Ye)是(Shi)一(Yi)款(Kuan)专(Zhuan)为(Wei)做(Zuo)虚(Xu)拟(Ni)主(Zhu)机(Ji)研(Yan)发(Fa)的(De)Web服(Fu)务(Wu)器(Qi)。(?)实(Shi)现(Xian)虚(Xu)拟(Ni)主(Zhu)机(Ji)独(Du)立(Li)进(Jin)程(Cheng)、(?)独(Du)立(Li)身(Shen)份(Fen)运(Yun)行(Xing)。(?)用(Yong)户(Hu)之(Zhi)间(Jian)安(An)全(Quan)隔(Ge)离(Li),(?)一(Yi)个(Ge)用(Yong)户(Hu)出(Chu)问(Wen)题(Ti)不(Bu)影(Ying)响(Xiang)其(Qi)他(Ta)用(Yong)户(Hu)。(?)支(Zhi)持(Chi)PHP、(?)ASP、(?)ASP.NET、(?)Java、(?)Ruby等(Deng)多(Duo)种(Zhong)动(Dong)态(Tai)开(Kai)发(Fa)语(Yu)言(Yan)。(?)
WebSphere:(?)WebSphere Application Server是(Shi)功(Gong)能(Neng)完(Wan)善(Shan)、(?)开(Kai)放(Fang)的(De)Web应(Ying)用(Yong)程(Cheng)序(Xu)服(Fu)务(Wu)器(Qi),(?)是(Shi)IBM电(Dian)子(Zi)商(Shang)务(Wu)计(Ji)划(Hua)的(De)核(He)心(Xin)部(Bu)分(Fen),(?)它(Ta)是(Shi)基(Ji)于(Yu)Java的(De)应(Ying)用(Yong)环(Huan)境(Jing),(?)用(Yong)于(Yu)建(Jian)立(Li)、(?)部(Bu)署(Shu)和(He)管(Guan)理(Li)Internet和(He)Intranet Web应(Ying)用(Yong)程(Cheng)序(Xu),(?)适(Shi)应(Ying)各(Ge)种(Zhong)Web应(Ying)用(Yong)程(Cheng)序(Xu)服(Fu)务(Wu)器(Qi)的(De)需(Xu)要(Yao),(?)范(Fan)围(Wei)从(Cong)简(Jian)单(Dan)到(Dao)高(Gao)级(Ji)直(Zhi)到(Dao)企(Qi)业(Ye)级(Ji)。(?)
WebLogic:(?)BEA WebLogic Server是(Shi)一(Yi)种(Zhong)多(Duo)功(Gong)能(Neng)、(?)基(Ji)于(Yu)标(Biao)准(Zhun)的(De)Web应(Ying)用(Yong)服(Fu)务(Wu)器(Qi),(?)为(Wei)企(Qi)业(Ye)构(Gou)建(Jian)自(Zi)己(Ji)的(De)应(Ying)用(Yong)提(Ti)供(Gong)了(Liao)坚(Jian)实(Shi)的(De)基(Ji)础(Chu)。(?)各(Ge)种(Zhong)应(Ying)用(Yong)开(Kai)发(Fa)、(?)部(Bu)署(Shu)所(Suo)有(You)关(Guan)键(Jian)性(Xing)的(De)任(Ren)务(Wu),(?)无(Wu)论(Lun)是(Shi)集(Ji)成(Cheng)各(Ge)种(Zhong)系(Xi)统(Tong)和(He)数(Shu)据(Ju)库(Ku),(?)还(Huan)是(Shi)提(Ti)交(Jiao)服(Fu)务(Wu)、(?)跨(Kua)Internet协(Xie)作(Zuo),(?)Weblogic都(Du)提(Ti)供(Gong)了(Liao)相(Xiang)应(Ying)的(De)支(Zhi)持(Chi)。(?)由(You)于(Yu)它(Ta)具(Ju)有(You)全(Quan)面(Mian)的(De)功(Gong)能(Neng)、(?)对(Dui)开(Kai)放(Fang)标(Biao)准(Zhun)的(De)遵(Zun)从(Cong)性(Xing)、(?)多(Duo)层(Ceng)架(Jia)构(Gou)、(?)支(Zhi)持(Chi)基(Ji)于(Yu)组(Zu)件(Jian)的(De)开(Kai)发(Fa),(?)基(Ji)于(Yu)Internet的(De)企(Qi)业(Ye)都(Du)选(Xuan)择(Ze)它(Ta)来(Lai)开(Kai)发(Fa)、(?)部(Bu)署(Shu)最(Zui)佳(Jia)的(De)应(Ying)用(Yong)。(?)BEA WebLogic Server在(Zai)使(Shi)应(Ying)用(Yong)服(Fu)务(Wu)器(Qi)成(Cheng)为(Wei)企(Qi)业(Ye)应(Ying)用(Yong)架(Jia)构(Gou)的(De)基(Ji)础(Chu)方(Fang)面(Mian)一(Yi)直(Zhi)处(Chu)于(Yu)领(Ling)先(Xian)地(Di)位(Wei),(?)为(Wei)构(Gou)建(Jian)集(Ji)成(Cheng)化(Hua)的(De)企(Qi)业(Ye)级(Ji)应(Ying)用(Yong)提(Ti)供(Gong)了(Liao)稳(Wen)固(Gu)的(De)基(Ji)础(Chu),(?)它(Ta)们(Men)以(Yi) Internet的(De)容(Rong)量(Liang)和(He)速(Su)度(Du),(?)在(Zai)连(Lian)网(Wang)的(De)企(Qi)业(Ye)之(Zhi)间(Jian)共(Gong)享(Xiang)信(Xin)息(Xi)、(?)提(Ti)交(Jiao)服(Fu)务(Wu),(?)实(Shi)现(Xian)协(Xie)作(Zuo)自(Zi)动(Dong)化(Hua)。(?)
Apache:(?)目(Mu)前(Qian)Apache仍(Reng)然(Ran)是(Shi)世(Shi)界(Jie)上(Shang)用(Yong)得(De)最(Zui)多(Duo)的(De)Web服(Fu)务(Wu)器(Qi),(?)市(Shi)场(Chang)占(Zhan)有(You)率(Lu)约(Yue)为(Wei)60%左(Zuo)右(You)。(?)世(Shi)界(Jie)上(Shang)很(Hen)多(Duo)著(Zhu)名(Ming)的(De)网(Wang)站(Zhan)都(Du)是(Shi)Apache的(De)产(Chan)物(Wu),(?)它(Ta)的(De)成(Cheng)功(Gong)之(Zhi)处(Chu)主(Zhu)要(Yao)在(Zai)于(Yu)它(Ta)的(De)源(Yuan)代(Dai)码(Ma)开(Kai)放(Fang)、(?)有(You)一(Yi)支(Zhi)强(Qiang)大(Da)的(De)开(Kai)发(Fa)团(Tuan)队(Dui)、(?)支(Zhi)持(Chi)跨(Kua)平(Ping)台(Tai)的(De)应(Ying)用(Yong)((?)可(Ke)以(Yi)运(Yun)行(Xing)在(Zai)几(Ji)乎(Hu)所(Suo)有(You)的(De)Unix、(?)Windows、(?)Linux系(Xi)统(Tong)平(Ping)台(Tai)上(Shang))(?)以(Yi)及(Ji)它(Ta)的(De)可(Ke)移(Yi)植(Zhi)性(Xing)等(Deng)方(Fang)面(Mian)。(?)
Tomcat:(?)Tomcat是(Shi)一(Yi)个(Ge)开(Kai)放(Fang)源(Yuan)代(Dai)码(Ma)、(?)运(Yun)行(Xing)Servlet和(He)JSP的(De)容(Rong)器(Qi)。(?)TomcatServer实(Shi)现(Xian)了(Liao)Servlet和(He)JSP规(Gui)范(Fan)。(?)此(Ci)外(Wai),(?)Tomcat还(Huan)实(Shi)现(Xian)了(Liao)Apache-Jakarta规(Gui)范(Fan)而(?)且(Qie)比(Bi)绝(Jue)大(Da)多(Duo)数(Shu)商(Shang)业(Ye)应(Ying)用(Yong)软(Ruan)件(Jian)服(Fu)务(Wu)器(Qi)要(Yao)好(Hao),(?)因(Yin)此(Ci)目(Mu)前(Qian)也(Ye)有(You)不(Bu)少(Shao)的(De)Web服(Fu)务(Wu)器(Qi)都(Du)选(Xuan)择(Ze)了(Liao)Tomcat。(?)
Nginx:(?)读(Du)作(Zuo)"engine x",(?)是(Shi)一(Yi)个(Ge)高(Gao)性(Xing)能(Neng)的(De)HTTP和(He)反(Fan)向(Xiang)代(Dai)理(Li)服(Fu)务(Wu)器(Qi),(?)也(Ye)是(Shi)一(Yi)个(Ge)IMAP/POP3/SMTP代(Dai)理(Li)服(Fu)务(Wu)器(Qi)。(?) Nginx是(Shi)由(You)Igor Sysoev为(Wei)俄(E)罗(Luo)斯(Si)访(Fang)问(Wen)量(Liang)第(Di)二(?)的(De) Rambler.ru站(Zhan)点(Dian)开(Kai)发(Fa)的(De),(?)第(Di)一(Yi)个(Ge)公(Gong)开(Kai)版(Ban)本(Ben)0.1.0发(Fa)布(Bu)于(Yu)2004年(Nian)10月(Yue)4日(Ri)。(?)其(Qi)将(Jiang)源(Yuan)代(Dai)码(Ma)以(Yi)类(Lei)BSD许(Xu)可(Ke)证(Zheng)的(De)形(Xing)式(Shi)发(Fa)布(Bu),(?)因(Yin)它(Ta)的(De)稳(Wen)定(Ding)性(Xing)、(?)丰(Feng)富(Fu)的(De)功(Gong)能(Neng)集(Ji)、(?)示(Shi)例(Li)配(Pei)置(Zhi)文(Wen)件(Jian)和(He)低(Di)系(Xi)统(Tong)资(Zi)源(Yuan)的(De)消(Xiao)耗(Hao)而(?)闻(Wen)名(Ming)。(?)
答(Da):(?)Model 1是(Shi)以(Yi)页(Ye)面(Mian)为(Wei)中(Zhong)心(Xin)的(De)Java Web开(Kai)发(Fa),(?)只(Zhi)适(Shi)合(He)非(Fei)常(Chang)小(Xiao)型(Xing)的(De)应(Ying)用(Yong)程(Cheng)序(Xu),(?)Model 2是(Shi)基(Ji)于(Yu)MVC架(Jia)构(Gou)模(Mo)式(Shi)的(De)应(Ying)用(Yong),(?)这(Zhe)一(Yi)点(Dian)在(Zai)前(Qian)文(Wen)的(De)面(Mian)试(Shi)题(Ti)中(Zhong)已(Yi)经(Jing)详(Xiang)细(Xi)讲(Jiang)解(Jie)过(Guo)了(Liao)。(?)

框(Kuang)架(Jia)(framework)是(Shi)一(Yi)个(Ge)框(Kuang)子(Zi)--》(?)指(Zhi)约(Yue)束(Shu)性(Xing),(?)也(Ye)是(Shi)一(Yi)个(Ge)架(Jia)子(Zi)--》(?)指(Zhi)支(Zhi)撑(Cheng)性(Xing)IT语(Yu)境(Jing)中(Zhong)的(De)框(Kuang)架(Jia),(?)特(Te)指(Zhi)为(Wei)解(Jie)决(Jue)一(Yi)个(Ge)开(Kai)放(Fang)性(Xing)问(Wen)题(Ti)而(?)设(She)计(Ji)的(De)具(Ju)有(You)一(Yi)定(Ding)约(Yue)束(Shu)性(Xing)的(De)支(Zhi)撑(Cheng)结(Jie)构(Gou),(?)在(Zai)此(Ci)结(Jie)构(Gou)上(Shang)可(Ke)以(Yi)根(Gen)据(Ju)具(Ju)体(Ti)问(Wen)题(Ti)扩(Kuo)展(Zhan)、(?)按(An)插(Cha)更(Geng)多(Duo)的(De)组(Zu)成(Cheng)部(Bu)分(Fen),(?)从(Cong)而(?)更(Geng)迅(Xun)速(Su)和(He)方(Fang)便(Bian)地(Di)架(Jia)构(Gou)完(Wan)整(Zheng)的(De)解(Jie)决(Jue)问(Wen)题(Ti)的(De)方(Fang)案(An)。(?)
1)(?)框(Kuang)架(Jia)本(Ben)身(Shen)一(Yi)般(Ban)不(Bu)完(Wan)整(Zheng)到(Dao)可(Ke)以(Yi)解(Jie)决(Jue)特(Te)定(Ding)问(Wen)题(Ti),(?)但(Dan)是(Shi)可(Ke)以(Yi)帮(Bang)助(Zhu)您(Nin)快(Kuai)速(Su)解(Jie)决(Jue)特(Te)定(Ding)问(Wen)题(Ti):(?)
没(Mei)有(You)框(Kuang)架(Jia)所(Suo)有(You)的(De)工(Gong)作(Zuo)都(Du)从(Cong)零(Ling)开(Kai)始(Shi)做(Zuo),(?)有(You)了(Liao)框(Kuang)架(Jia),(?)为(Wei)我(Wo)们(Men)提(Ti)供(Gong)了(Liao)一(Yi)定(Ding)的(De)功(Gong)能(Neng)。(?)我(Wo)们(Men)就(Jiu)可(Ke)以(Yi)在(Zai)框(Kuang)架(Jia)的(De)基(Ji)础(Chu)上(Shang)开(Kai)发(Fa),(?)极(Ji)大(Da)的(De)解(Jie)决(Jue)了(Liao)生(Sheng)产(Chan)力(Li)。(?)
不(Bu)同(Tong)的(De)框(Kuang)架(Jia),(?)是(Shi)为(Wei)了(Liao)解(Jie)决(Jue)不(Bu)同(Tong)领(Ling)域(Yu)的(De)问(Wen)题(Ti),(?)一(Yi)定(Ding)要(Yao)为(Wei)了(Liao)解(Jie)决(Jue)问(Wen)题(Ti)才(Cai)去(Qu)学(Xue)习(Xi)框(Kuang)架(Jia)。(?)
2)(?)框(Kuang)架(Jia)天(Tian)生(Sheng)就(Jiu)是(Shi)为(Wei)了(Liao)扩(Kuo)展(Zhan)而(?)设(She)计(Ji)的(De)
3)(?)框(Kuang)架(Jia)里(Li)面(Mian)可(Ke)以(Yi)为(Wei)后(Hou)续(Xu)的(De)组(Zu)件(Jian)提(Ti)供(Gong)很(Hen)多(Duo)辅(Fu)助(Zhu)性(Xing)、(?)支(Zhi)撑(Cheng)性(Xing)的(De)方(Fang)便(Bian)易(Yi)用(Yong)的(De)实(Shi)用(Yong)工(Gong)具(Ju)(utilities),(?)也(Ye)就(Jiu)是(Shi)框(Kuang)架(Jia)时(Shi)常(Chang)配(Pei)套(Tao)一(Yi)些(Xie)帮(Bang)组(Zu)解(Jie)决(Jue)某(Mou)类(Lei)问(Wen)题(Ti)的(De)库(Ku)(libraries)(?)或(Huo)工(Gong)具(Ju)((?)tools)(?).
在(Zai)java中(Zhong)就(Jiu)是(Shi)一(Yi)系(Xi)列(Lie)的(De)jar包(Bao),(?)其(Qi)本(Ben)质(Zhi)就(Jiu)是(Shi)对(Dui)jdk功(Gong)能(Neng)的(De)扩(Kuo)展(Zhan)。(?)
是(Shi)为(Wei)了(Liao)解(Jie)决(Jue)传(Chuan)统(Tong)MVC模(Mo)式(Shi)(jsp+servlet+javabean)一(Yi)些(Xie)问(Wen)题(Ti)而(?)出(Chu)现(Xian)的(De)框(Kuang)架(Jia)
传(Chuan)统(Tong)MVC模(Mo)式(Shi)模(Mo)式(Shi)问(Wen)题(Ti):(?)
1)(?) 所(Suo)有(You)的(De)Servlet和(He)Servlet映(Ying)射(She)都(Du)要(Yao)配(Pei)置(Zhi)在(Zai)web.xml中(Zhong),(?)如(Ru)果(Guo)项(Xiang)目(Mu)太(Tai)大(Da),(?)web.xml就(Jiu)太(Tai)庞(Pang)大(Da)并(Bing)且(Qie)不(Bu)能(Neng)实(Shi)现(Xian)模(Mo)块(Kuai)化(Hua)管(Guan)理(Li)。(?)
2)(?)Servlet的(De)主(Zhu)要(Yao)功(Gong)能(Neng)就(Jiu)是(Shi)接(Jie)受(Shou)参(Can)数(Shu)、(?)调(Diao)用(Yong)逻(Luo)辑(Ji)、(?)跳(Tiao)转(Zhuan)页(Ye)面(Mian),(?)比(Bi)如(Ru)像(Xiang)其(Qi)他(Ta)字(Zi)符(Fu)编(Bian)码(Ma)、(?)文(Wen)件(Jian)上(Shang)传(Chuan)等(Deng)功(Gong)能(Neng)也(Ye)要(Yao)写(Xie)在(Zai)Servlet中(Zhong),(?)不(Bu)能(Neng)让(Rang)Servlet主(Zhu)要(Yao)功(Gong)能(Neng)而(?)需(Xu)要(Yao)做(Zuo)处(Chu)理(Li)一(Yi)些(Xie)特(Te)例(Li)。(?)
3)(?)接(Jie)受(Shou)参(Can)数(Shu)比(Bi)较(Jiao)麻(Ma)烦(Fan)
(String name = request.getParameter(“(?)name”(?))),(?)不(Bu)能(Neng)通(Tong)过(Guo)model接(Jie)受(Shou),(?)只(Zhi)能(Neng)单(Dan)个(Ge)接(Jie)收(Shou),(?)接(Jie)收(Shou)完(Wan)成(Cheng)后(Hou)转(Zhuan)换(Huan)封(Feng)装(Zhuang)model。(?)
4)(?)跳(Tiao)转(Zhuan)页(Ye)面(Mian)方(Fang)式(Shi)比(Bi)较(Jiao)单(Dan)一(Yi)(forward,redirect),(?)并(Bing)且(Qie)当(Dang)我(Wo)们(Men)的(De)页(Ye)面(Mian)名(Ming)称(Cheng)发(Fa)生(Sheng)改(Gai)变(Bian)时(Shi)需(Xu)要(Yao)改(Gai)变(Bian)Servlet源(Yuan)代(Dai)码(Ma)。(?)
现(Xian)在(Zai)比(Bi)较(Jiao)常(Chang)用(Yong)的(De)MVC框(Kuang)架(Jia):(?)
webwork
Struts
Struts2
SpringMVC
一(Yi)个(Ge)请(Qing)求(Qiu)在(Zai)struts2框(Kuang)架(Jia)中(Zhong)处(Chu)理(Li)大(Da)概(Gai)分(Fen)为(Wei)一(Yi)下(Xia)几(Ji)个(Ge)步(Bu)骤(Zhou):(?)
1)(?)客(Ke)户(Hu)浏(Liu)览(Lan)器(Qi)发(Fa)送(Song)一(Yi)个(Ge)指(Zhi)向(Xiang)Servlet容(Rong)器(Qi)((?)例(Li)如(Ru)Tomcat)(?)的(De)请(Qing)求(Qiu)
2)(?)这(Zhe)个(Ge)请(Qing)求(Qiu)经(Jing)过(Guo)一(Yi)系(Xi)列(Lie)的(De)过(Guo)滤(Lu)器(Qi)((?)Filter)(?)((?)这(Zhe)些(Xie)过(Guo)滤(Lu)器(Qi)中(Zhong)有(You)一(Yi)个(Ge)叫(Jiao)做(Zuo)ActionContextCleanUp的(De)可(Ke)选(Xuan)过(Guo)滤(Lu)器(Qi),(?)这(Zhe)个(Ge)过(Guo)滤(Lu)器(Qi)对(Dui)于(Yu)Struts2和(He)其(Qi)他(Ta)框(Kuang)架(Jia)的(De)集(Ji)成(Cheng)很(Hen)有(You)帮(Bang)助(Zhu),(?)例(Li)如(Ru):(?)SiteMesh Plugin)(?)
3)(?)接(Jie)着(Zhuo)FilterDispatcher(StrutsPrepareAndExecuteFilter)被(Bei)调(Diao)用(Yong),(?)FilterDispatcher询(Xun)问(Wen)ActionMapper来(Lai)决(Jue)定(Ding)这(Zhe)个(Ge)请(Qing)是(Shi)否(Fou)需(Xu)要(Yao)调(Diao)用(Yong)某(Mou)个(Ge)Action
4)(?)如(Ru)果(Guo)ActionMapper决(Jue)定(Ding)需(Xu)要(Yao)调(Diao)用(Yong)某(Mou)个(Ge)Action,(?)FilterDispatcher把(Ba)请(Qing)求(Qiu)的(De)处(Chu)理(Li)交(Jiao)给(Gei)ActionProxy
5)(?)ActionProxy通(Tong)过(Guo)Configuration Manager询(Xun)问(Wen)框(Kuang)架(Jia)的(De)配(Pei)置(Zhi)文(Wen)件(Jian),(?)找(Zhao)到(Dao)需(Xu)要(Yao)调(Diao)用(Yong)的(De)Action类(Lei)
6)(?)ActionProxy创(Chuang)建(Jian)一(Yi)个(Ge)ActionInvocation的(De)实(Shi)例(Li)。(?)
7)(?)ActionInvocation实(Shi)例(Li)使(Shi)用(Yong)命(Ming)名(Ming)模(Mo)式(Shi)来(Lai)调(Diao)用(Yong),(?)在(Zai)调(Diao)用(Yong)Action的(De)过(Guo)程(Cheng)前(Qian)后(Hou),(?)涉(She)及(Ji)到(Dao)相(Xiang)关(Guan)拦(Lan)截(Jie)器(Qi)((?)Intercepter)(?)的(De)调(Diao)用(Yong)。(?)
8)(?)一(Yi)旦(Dan)Action执(Zhi)行(Xing)完(Wan)毕(Bi),(?)ActionInvocation负(Fu)责(Ze)根(Gen)据(Ju)struts.xml中(Zhong)的(De)配(Pei)置(Zhi)找(Zhao)到(Dao)对(Dui)应(Ying)的(De)返(Fan)回(Hui)结(Jie)果(Guo)。(?)返(Fan)回(Hui)结(Jie)果(Guo)通(Tong)常(Chang)是(Shi)((?)但(Dan)不(Bu)总(Zong)是(Shi),(?)也(Ye) 可(Ke) 能(Neng)是(Shi)另(Ling)外(Wai)的(De)一(Yi)个(Ge)Action链(Lian))(?)一(Yi)个(Ge)需(Xu)要(Yao)被(Bei)表(Biao)示(Shi)的(De)JSP或(Huo)者(Zhe)FreeMarker的(De)模(Mo)版(Ban)。(?)在(Zai)表(Biao)示(Shi)的(De)过(Guo)程(Cheng)中(Zhong)可(Ke)以(Yi)使(Shi)用(Yong)Struts2 框(Kuang)架(Jia)中(Zhong)继(Ji)承(Cheng)的(De)标(Biao)签(Qian)。(?)在(Zai)这(Zhe)个(Ge)过(Guo)程(Cheng)中(Zhong)需(Xu)要(Yao)涉(She)及(Ji)到(Dao)ActionMapper
java里(Li)的(De)拦(Lan)截(Jie)器(Qi)是(Shi)动(Dong)态(Tai)拦(Lan)截(Jie)Action调(Diao)用(Yong)的(De)对(Dui)象(Xiang),(?)它(Ta)提(Ti)供(Gong)了(Liao)一(Yi)种(Zhong)机(Ji)制(Zhi)可(Ke)以(Yi)使(Shi)开(Kai)发(Fa)者(Zhe)定(Ding)义(Yi)一(Yi)个(Ge)action执(Zhi)行(Xing)的(De)前(Qian)后(Hou)执(Zhi)行(Xing)的(De)代(Dai)码(Ma),(?)也(Ye)可(Ke)以(Yi)在(Zai)一(Yi)个(Ge)action执(Zhi)行(Xing)前(Qian)阻(Zu)止(Zhi)其(Qi)执(Zhi)行(Xing),(?)同(Tong)时(Shi)也(Ye)提(Ti)供(Gong)了(Liao)一(Yi)种(Zhong)可(Ke)以(Yi)提(Ti)取(Qu)action中(Zhong)可(Ke)重(Zhong)用(Yong)部(Bu)分(Fen)的(De)方(Fang)式(Shi)。(?)
在(Zai)AOP(Aspect Oriented Programming)中(Zhong)拦(Lan)截(Jie)器(Qi)用(Yong)于(Yu)在(Zai)某(Mou)个(Ge)方(Fang)法(Fa)或(Huo)字(Zi)段(Duan)被(Bei)访(Fang)问(Wen)之(Zhi)前(Qian),(?)进(Jin)行(Xing)拦(Lan)截(Jie)后(Hou)在(Zai)之(Zhi)前(Qian)或(Huo)之(Zhi)后(Hou)加(Jia)入(Ru)某(Mou)些(Xie)操(Cao)作(Zuo)
1)(?)struts2中(Zhong)的(De)功(Gong)能(Neng)(参(Can)数(Shu)处(Chu)理(Li)、(?)文(Wen)件(Jian)上(Shang)传(Chuan)、(?)字(Zi)符(Fu)编(Bian)码(Ma)等(Deng))都(Du)是(Shi)通(Tong)过(Guo)系(Xi)统(Tong)拦(Lan)截(Jie)器(Qi)实(Shi)现(Xian)的(De)
2)(?)当(Dang)然(Ran)我(Wo)们(Men)也(Ye)可(Ke)以(Yi)自(Zi)定(Ding)义(Yi)拦(Lan)截(Jie)器(Qi),(?)进(Jin)行(Xing)可(Ke)插(Cha)拔(Ba)配(Pei)置(Zhi),(?)可(Ke)以(Yi)执(Zhi)行(Xing)Action的(De)方(Fang)法(Fa)前(Qian)后(Hou),(?)加(Jia)入(Ru)相(Xiang)关(Guan)逻(Luo)辑(Ji)完(Wan)成(Cheng)业(Ye)务(Wu)。(?)
使(Shi)用(Yong)场(Chang)景(Jing):(?)
1)(?)用(Yong)户(Hu)登(Deng)录(Lu)判(Pan)断(Duan),(?)在(Zai)执(Zhi)行(Xing)action的(De)前(Qian)面(Mian)判(Pan)断(Duan)是(Shi)否(Fou)已(Yi)经(Jing)登(Deng)录(Lu),(?)如(Ru)果(Guo)没(Mei)有(You)登(Deng)录(Lu)的(De)就(Jiu)跳(Tiao)转(Zhuan)登(Deng)录(Lu)页(Ye)面(Mian)。(?)
2)(?)用(Yong)户(Hu)权(Quan)限(Xian)判(Pan)断(Duan),(?)在(Zai)执(Zhi)行(Xing)action的(De)前(Qian)面(Mian)判(Pan)断(Duan)是(Shi)否(Fou)具(Ju)有(You),(?)如(Ru)果(Guo)没(Mei)有(You)权(Quan)限(Xian)就(Jiu)给(Gei)出(Chu)提(Ti)示(Shi)信(Xin)息(Xi)。(?)
3)(?)操(Cao)作(Zuo)日(Ri)志(Zhi)...
1)(?)用(Yong)户(Hu)向(Xiang)服(Fu)务(Wu)器(Qi)发(Fa)送(Song)请(Qing)求(Qiu),(?)请(Qing)求(Qiu)被(Bei)Spring 前(Qian)端(Duan)控(Kong)制(Zhi)Servelt DispatcherServlet捕(Bu)获(Huo);(?)
2)(?)DispatcherServlet 对(Dui)请(Qing)求(Qiu)URL进(Jin)行(Xing)解(Jie)析(Xi),(?)得(De)到(Dao)请(Qing)求(Qiu)资(Zi)源(Yuan)标(Biao)识(Shi)符(Fu)((?)URI)(?)。(?)然(Ran)后(Hou)根(Gen)据(Ju)该(Gai)URI,(?)调(Diao)用(Yong)HandlerMapping获(Huo)得(De)该(Gai)Handler配(Pei)置(Zhi)的(De)所(Suo)有(You)相(Xiang)关(Guan)的(De)对(Dui)象(Xiang) ((?)包(Bao)括(Kuo)Handler对(Dui)象(Xiang)以(Yi)及(Ji)Handler对(Dui)象(Xiang)对(Dui)应(Ying)的(De)拦(Lan)截(Jie)器(Qi))(?),(?)最(Zui)后(Hou)以(Yi)HandlerExecutionChain对(Dui)象(Xiang)的(De)形(Xing)式(Shi)返(Fan)回(Hui);(?)
3)(?)DispatcherServlet 根(Gen)据(Ju)获(Huo)得(De)的(De)Handler,(?)选(Xuan)择(Ze)一(Yi)个(Ge)合(He)适(Shi)的(De)HandlerAdapter。(?)((?)附(Fu)注(Zhu):(?)如(Ru)果(Guo)成(Cheng)功(Gong)获(Huo)得(De)HandlerAdapter后(Hou),(?)此(Ci)时(Shi)将(Jiang)开(Kai)始(Shi)执(Zhi)行(Xing)拦(Lan)截(Jie)器(Qi)的(De)preHandler(...)方(Fang)法(Fa))(?)
4)(?) 提(Ti)取(Qu)Request中(Zhong)的(De)模(Mo)型(Xing)数(Shu)据(Ju),(?)填(Tian)充(Chong)Handler入(Ru)参(Can),(?)开(Kai)始(Shi)执(Zhi)行(Xing)Handler((?)Controller)。(?) 在(Zai)填(Tian)充(Chong)Handler的(De)入(Ru)参(Can)过(Guo)程(Cheng)中(Zhong),(?)根(Gen)据(Ju)你(Ni)的(De)配(Pei)置(Zhi),(?)Spring将(Jiang)帮(Bang)你(Ni)做(Zuo)一(Yi)些(Xie)额(E)外(Wai)的(De)工(Gong)作(Zuo):(?)
HttpMessageConveter:(?) 将(Jiang)请(Qing)求(Qiu)消(Xiao)息(Xi)((?)如(Ru)Json、(?)xml等(Deng)数(Shu)据(Ju))(?)转(Zhuan)换(Huan)成(Cheng)一(Yi)个(Ge)对(Dui)象(Xiang),(?)将(Jiang)对(Dui)象(Xiang)转(Zhuan)换(Huan)为(Wei)指(Zhi)定(Ding)的(De)响(Xiang)应(Ying)信(Xin)息(Xi)
数(Shu)据(Ju)转(Zhuan)换(Huan):(?)对(Dui)请(Qing)求(Qiu)消(Xiao)息(Xi)进(Jin)行(Xing)数(Shu)据(Ju)转(Zhuan)换(Huan)。(?)如(Ru)String转(Zhuan)换(Huan)成(Cheng)Integer、(?)Double等(Deng)
数(Shu)据(Ju)根(Gen)式(Shi)化(Hua):(?)对(Dui)请(Qing)求(Qiu)消(Xiao)息(Xi)进(Jin)行(Xing)数(Shu)据(Ju)格(Ge)式(Shi)化(Hua)。(?) 如(Ru)将(Jiang)字(Zi)符(Fu)串(Chuan)转(Zhuan)换(Huan)成(Cheng)格(Ge)式(Shi)化(Hua)数(Shu)字(Zi)或(Huo)格(Ge)式(Shi)化(Hua)日(Ri)期(Qi)等(Deng)
数(Shu)据(Ju)验(Yan)证(Zheng):(?) 验(Yan)证(Zheng)数(Shu)据(Ju)的(De)有(You)效(Xiao)性(Xing)((?)长(Chang)度(Du)、(?)格(Ge)式(Shi)等(Deng))(?),(?)验(Yan)证(Zheng)结(Jie)果(Guo)存(Cun)储(Chu)到(Dao)BindingResult或(Huo)Error中(Zhong)
5)(?)Handler执(Zhi)行(Xing)完(Wan)成(Cheng)后(Hou),(?)向(Xiang)DispatcherServlet返(Fan)回(Hui)一(Yi)个(Ge)ModelAndView对(Dui)象(Xiang);(?)
6)(?)根(Gen)据(Ju)返(Fan)回(Hui)的(De)ModelAndView,(?)选(Xuan)择(Ze)一(Yi)个(Ge)适(Shi)合(He)的(De)ViewResolver((?)必(Bi)须(Xu)是(Shi)已(Yi)经(Jing)注(Zhu)册(Ce)到(Dao)Spring容(Rong)器(Qi)中(Zhong)的(De)ViewResolver)返(Fan)回(Hui)给(Gei)DispatcherServlet;(?)
7)(?)ViewResolver 结(Jie)合(He)Model和(He)View,(?)来(Lai)渲(Xuan)染(Ran)视(Shi)图(Tu)
8)(?)将(Jiang)渲(Xuan)染(Ran)结(Jie)果(Guo)返(Fan)回(Hui)给(Gei)客(Ke)户(Hu)端(Duan)。(?)
快(Kuai)速(Su)记(Ji)忆(Yi):(?)
核(He)心(Xin)控(Kong)制(Zhi)器(Qi)捕(Bu)获(Huo)请(Qing)求(Qiu),(?)查(Cha)找(Zhao)Hander,(?)执(Zhi)行(Xing)Handler,(?)选(Xuan)择(Ze)ViewResolver,(?)通(Tong)过(Guo)ViewResoler渲(Xuan)染(Ran)视(Shi)图(Tu)并(Bing)返(Fan)回(Hui)
目(Mu)前(Qian)企(Qi)业(Ye)中(Zhong)使(Shi)用(Yong)SpringMvc的(De)比(Bi)例(Li)已(Yi)经(Jing)远(Yuan)远(Yuan)超(Chao)过(Guo)Struts2,那(Na)么(Me)两(Liang)者(Zhe)到(Dao)底(Di)有(You)什(Shi)么(Me)区(Qu)别(Bie),(?)是(Shi)很(Hen)多(Duo)初(Chu)学(Xue)者(Zhe)比(Bi)较(Jiao)关(Guan)注(Zhu)的(De)问(Wen)题(Ti),(?)下(Xia)面(Mian)我(Wo)们(Men)就(Jiu)来(Lai)对(Dui)SpringMvc和(He)Struts2进(Jin)行(Xing)各(Ge)方(Fang)面(Mian)的(De)比(Bi)较(Jiao):
1)(?)核(He)心(Xin)控(Kong)制(Zhi)器(Qi)((?)前(Qian)端(Duan)控(Kong)制(Zhi)器(Qi)、(?)预(Yu)处(Chu)理(Li)控(Kong)制(Zhi)器(Qi))(?):(?)对(Dui)于(Yu)使(Shi)用(Yong)过(Guo)mvc框(Kuang)架(Jia)的(De)人(Ren)来(Lai)说(Shuo)这(Zhe)个(Ge)词(Ci)应(Ying)该(Gai)不(Bu)会(Hui)陌(Mo)生(Sheng),(?)核(He)心(Xin)控(Kong)制(Zhi)器(Qi)的(De)主(Zhu)要(Yao)用(Yong)途(Tu)是(Shi)处(Chu)理(Li)所(Suo)有(You)的(De)请(Qing)求(Qiu),(?)然(Ran)后(Hou)对(Dui)那(Na)些(Xie)特(Te)殊(Shu)的(De)请(Qing)求(Qiu) ((?)控(Kong)制(Zhi)器(Qi))(?)统(Tong)一(Yi)的(De)进(Jin)行(Xing)处(Chu)理(Li)(字(Zi)符(Fu)编(Bian)码(Ma)、(?)文(Wen)件(Jian)上(Shang)传(Chuan)、(?)参(Can)数(Shu)接(Jie)受(Shou)、(?)异(Yi)常(Chang)处(Chu)理(Li)等(Deng)等(Deng)),spring mvc核(He)心(Xin)控(Kong)制(Zhi)器(Qi)是(Shi)Servlet,(?)而(?)Struts2是(Shi)Filter。(?)
2)(?)控(Kong)制(Zhi)器(Qi)实(Shi)例(Li):(?)Spring Mvc会(Hui)比(Bi)Struts快(Kuai)一(Yi)些(Xie)((?)理(Li)论(Lun)上(Shang))(?)。(?)Spring Mvc是(Shi)基(Ji)于(Yu)方(Fang)法(Fa)设(She)计(Ji),(?)而(?)Sturts是(Shi)基(Ji)于(Yu)对(Dui)象(Xiang),(?)每(Mei)次(Ci)发(Fa)一(Yi)次(Ci)请(Qing)求(Qiu)都(Du)会(Hui)实(Shi)例(Li)一(Yi)个(Ge)action,(?)每(Mei)个(Ge)action都(Du)会(Hui)被(Bei)注(Zhu)入(Ru)属(Shu)性(Xing),(?)而(?)Spring更(Geng)像(Xiang)Servlet一(Yi)样(Yang),(?)只(Zhi)有(You)一(Yi)个(Ge)实(Shi)例(Li),(?)每(Mei)次(Ci)请(Qing)求(Qiu)执(Zhi)行(Xing)对(Dui)应(Ying)的(De)方(Fang)法(Fa)即(Ji)可(Ke)(注(Zhu)意(Yi):(?)由(You)于(Yu)是(Shi)单(Dan)例(Li)实(Shi)例(Li),(?)所(Suo)以(Yi)应(Ying)当(Dang)避(Bi)免(Mian)全(Quan)局(Ju)变(Bian)量(Liang)的(De)修(Xiu)改(Gai),(?)这(Zhe)样(Yang)会(Hui)产(Chan)生(Sheng)线(Xian)程(Cheng)安(An)全(Quan)问(Wen)题(Ti) )
3)(?)管(Guan)理(Li)方(Fang)式(Shi):(?)大(Da)部(Bu)分(Fen)的(De)公(Gong)司(Si)的(De)核(He)心(Xin)架(Jia)构(Gou)中(Zhong),(?)就(Jiu)会(Hui)使(Shi)用(Yong)到(Dao)spring,而(?)spring mvc又(You)是(Shi)spring中(Zhong)的(De)一(Yi)个(Ge)模(Mo)块(Kuai),(?)所(Suo)以(Yi)spring对(Dui)于(Yu)spring mvc的(De)控(Kong)制(Zhi)器(Qi)管(Guan)理(Li)更(Geng)加(Jia)简(Jian)单(Dan)方(Fang)便(Bian),(?)而(?)且(Qie)提(Ti)供(Gong)了(Liao)全(Quan) 注(Zhu)解(Jie)方(Fang)式(Shi)进(Jin)行(Xing)管(Guan)理(Li),(?)各(Ge)种(Zhong)功(Gong)能(Neng)的(De)注(Zhu)解(Jie)都(Du)比(Bi)较(Jiao)全(Quan)面(Mian),(?)使(Shi)用(Yong)简(Jian)单(Dan),(?)而(?)struts2需(Xu)要(Yao)采(Cai)用(Yong)XML很(Hen)多(Duo)的(De)配(Pei)置(Zhi)参(Can)数(Shu)来(Lai)管(Guan)理(Li)((?)虽(Sui)然(Ran)也(Ye)可(Ke)以(Yi)采(Cai)用(Yong)注(Zhu)解(Jie),(?)但(Dan)是(Shi)几(Ji)乎(Hu)没(Mei)有(You)公(Gong)司(Si)那(Na) 样(Yang)使(Shi)用(Yong))(?)
4)(?)参(Can)数(Shu)传(Chuan)递(Di):(?)Struts2中(Zhong)自(Zi)身(Shen)提(Ti)供(Gong)多(Duo)种(Zhong)参(Can)数(Shu)接(Jie)受(Shou),(?)其(Qi)实(Shi)都(Du)是(Shi)通(Tong)过(Guo)((?)ValueStack)(?)进(Jin)行(Xing)传(Chuan)递(Di)和(He)赋(Fu)值(Zhi),(?)而(?)SpringMvc是(Shi)通(Tong)过(Guo)方(Fang)法(Fa)的(De)参(Can)数(Shu)进(Jin)行(Xing)接(Jie)收(Shou)。(?)
5)(?)学(Xue)习(Xi)难(Nan)度(Du):(?)Struts更(Geng)加(Jia)很(Hen)多(Duo)新(Xin)的(De)技(Ji)术(Shu)点(Dian),(?)比(Bi)如(Ru)拦(Lan)截(Jie)器(Qi)、(?)值(Zhi)栈(Zhan)及(Ji)OGNL表(Biao)达(Da)式(Shi),(?)学(Xue)习(Xi)成(Cheng)本(Ben)较(Jiao)高(Gao),(?)springmvc 比(Bi)较(Jiao)简(Jian)单(Dan),(?)很(Hen)较(Jiao)少(Shao)的(De)时(Shi)间(Jian)都(Du)能(Neng)上(Shang)手(Shou)。(?)
6)(?)intercepter 的(De)实(Shi)现(Xian)机(Ji)制(Zhi):(?)struts有(You)以(Yi)自(Zi)己(Ji)的(De)interceptor机(Ji)制(Zhi),(?)spring mvc用(Yong)的(De)是(Shi)独(Du)立(Li)的(De)AOP方(Fang)式(Shi)。(?)这(Zhe)样(Yang)导(Dao)致(Zhi)struts的(De)配(Pei)置(Zhi)文(Wen)件(Jian)量(Liang)还(Huan)是(Shi)比(Bi)spring mvc大(Da),(?)虽(Sui)然(Ran)struts的(De)配(Pei)置(Zhi)能(Neng)继(Ji)承(Cheng),(?)所(Suo)以(Yi)我(Wo)觉(Jue)得(De)论(Lun)使(Shi)用(Yong)上(Shang)来(Lai)讲(Jiang),(?)spring mvc使(Shi)用(Yong)更(Geng)加(Jia)简(Jian)洁(Jie),(?)开(Kai)发(Fa)效(Xiao)率(Lu)Spring MVC确(Que)实(Shi)比(Bi)struts2高(Gao)。(?)spring mvc是(Shi)方(Fang)法(Fa)级(Ji)别(Bie)的(De)拦(Lan)截(Jie),(?)一(Yi)个(Ge)方(Fang)法(Fa)对(Dui)应(Ying)一(Yi)个(Ge)request上(Shang)下(Xia)文(Wen),(?)而(?)方(Fang)法(Fa)同(Tong)时(Shi)又(You)跟(Gen)一(Yi)个(Ge)url对(Dui)应(Ying),(?)所(Suo)以(Yi)说(Shuo)从(Cong)架(Jia)构(Gou)本(Ben)身(Shen)上(Shang)spring3 mvc就(Jiu)容(Rong)易(Yi)实(Shi)现(Xian)restful url。(?)struts2是(Shi)类(Lei)级(Ji)别(Bie)的(De)拦(Lan)截(Jie),(?)一(Yi)个(Ge)类(Lei)对(Dui)应(Ying)一(Yi)个(Ge)request上(Shang)下(Xia)文(Wen);(?)实(Shi)现(Xian)restful url要(Yao)费(Fei)劲(Jin),(?)因(Yin)为(Wei)struts2 action的(De)一(Yi)个(Ge)方(Fang)法(Fa)可(Ke)以(Yi)对(Dui)应(Ying)一(Yi)个(Ge)url;(?)而(?)其(Qi)类(Lei)属(Shu)性(Xing)却(Que)被(Bei)所(Suo)有(You)方(Fang)法(Fa)共(Gong)享(Xiang),(?)这(Zhe)也(Ye)就(Jiu)无(Wu)法(Fa)用(Yong)注(Zhu)解(Jie)或(Huo)其(Qi)他(Ta)方(Fang)式(Shi)标(Biao)识(Shi)其(Qi)所(Suo)属(Shu)方(Fang)法(Fa)了(Liao)。(?)spring3 mvc的(De)方(Fang)法(Fa)之(Zhi)间(Jian)基(Ji)本(Ben)上(Shang)独(Du)立(Li)的(De),(?)独(Du)享(Xiang)request response数(Shu)据(Ju),(?)请(Qing)求(Qiu)数(Shu)据(Ju)通(Tong)过(Guo)参(Can)数(Shu)获(Huo)取(Qu),(?)处(Chu)理(Li)结(Jie)果(Guo)通(Tong)过(Guo)ModelMap交(Jiao)回(Hui)给(Gei)框(Kuang)架(Jia)方(Fang)法(Fa)之(Zhi)间(Jian)不(Bu)共(Gong)享(Xiang)变(Bian)量(Liang),(?)而(?)struts2搞(Gao)的(De)就(Jiu)比(Bi)较(Jiao)乱(Luan),(?)虽(Sui)然(Ran)方(Fang)法(Fa)之(Zhi)间(Jian) 也(Ye)是(Shi)独(Du)立(Li)的(De),(?)但(Dan)其(Qi)所(Suo)有(You)Action变(Bian)量(Liang)是(Shi)共(Gong)享(Xiang)的(De),(?)这(Zhe)不(Bu)会(Hui)影(Ying)响(Xiang)程(Cheng)序(Xu)运(Yun)行(Xing),(?)却(Que)给(Gei)我(Wo)们(Men)编(Bian)码(Ma),(?)读(Du)程(Cheng)序(Xu)时(Shi)带(Dai)来(Lai)麻(Ma)烦(Fan)。(?)
7)(?)spring mvc处(Chu)理(Li)ajax请(Qing)求(Qiu),直(Zhi)接(Jie)通(Tong)过(Guo)返(Fan)回(Hui)数(Shu)据(Ju),(?)方(Fang)法(Fa)中(Zhong)使(Shi)用(Yong)注(Zhu)解(Jie)@ResponseBody,(?)spring mvc自(Zi)动(Dong)帮(Bang)我(Wo)们(Men)对(Dui)象(Xiang)转(Zhuan)换(Huan)为(Wei)JSON数(Shu)据(Ju)。(?)而(?)struts2是(Shi)通(Tong)过(Guo)插(Cha)件(Jian)的(De)方(Fang)式(Shi)来(Lai)处(Chu)理(Li)。(?)
在(Zai)springMVC流(Liu)行(Xing)起(Qi)来(Lai)之(Zhi)前(Qian),(?)struts2在(Zai)MVC框(Kuang)架(Jia)中(Zhong)占(Zhan)核(He)心(Xin)地(Di)位(Wei),(?)随(Sui)着(Zhuo)SpringMVC的(De)出(Chu)现(Xian),(?)SpringMVC慢(Man)慢(Man)的(De)取(Qu)代(Dai)了(Liao)struts2,(?)但(Dan)是(Shi)很(Hen)多(Duo)的(De)企(Qi)业(Ye)原(Yuan)来(Lai)搭(Da)建(Jian)的(De)框(Kuang)架(Jia)都(Du)是(Shi)使(Shi)用(Yong)struts2。(?)
Spring是(Shi)什(Shi)么(Me)?(?)
Spring是(Shi)J2EE应(Ying)用(Yong)程(Cheng)序(Xu)框(Kuang)架(Jia),(?)是(Shi)轻(Qing)量(Liang)级(Ji)的(De)IOC和(He)AOP的(De)容(Rong)器(Qi)框(Kuang)架(Jia),(?)主(Zhu)要(Yao)针(Zhen)对(Dui)JavaBean的(De)生(Sheng)命(Ming)周(Zhou)期(Qi)进(Jin)行(Xing)管(Guan)理(Li)的(De)轻(Qing)量(Liang)级(Ji)容(Rong)器(Qi),(?)可(Ke)以(Yi)单(Dan)独(Du)使(Shi)用(Yong),(?)也(Ye)可(Ke)以(Yi)和(He)struts框(Kuang)架(Jia),(?)ibatis框(Kuang)架(Jia)等(Deng)组(Zu)合(He)使(Shi)用(Yong)。(?)
1)(?)IOC(Inversion of Control)
ioc控(Kong)制(Zhi)反(Fan)转(Zhuan),(?)又(You)称(Cheng)为(Wei)“(?)依(Yi)赖(Lai)注(Zhu)入(Ru)”(?);(?)
IOC的(De)基(Ji)本(Ben)概(Gai)念(Nian)是(Shi):(?)不(Bu)创(Chuang)建(Jian)对(Dui)象(Xiang),(?)但(Dan)是(Shi)描(Miao)述(Shu)创(Chuang)建(Jian)它(Ta)们(Men)的(De)方(Fang)式(Shi)。(?)在(Zai)代(Dai)码(Ma)中(Zhong)不(Bu)直(Zhi)接(Jie)与(Yu)对(Dui)象(Xiang)和(He)服(Fu)务(Wu)连(Lian)接(Jie),(?)但(Dan)在(Zai)配(Pei)置(Zhi)文(Wen)件(Jian)中(Zhong)描(Miao)述(Shu)哪(Na)一(Yi)个(Ge)组(Zu)件(Jian)需(Xu)要(Yao)哪(Na)一(Yi)项(Xiang)服(Fu)务(Wu)。(?)容(Rong)器(Qi)负(Fu)责(Ze)将(Jiang)这(Zhe)些(Xie)联(Lian)系(Xi)在(Zai)一(Yi)起(Qi)。(?) (?) (?)
其(Qi)原(Yuan)理(Li)是(Shi)基(Ji)于(Yu)OO设(She)计(Ji)原(Yuan)则(Ze)的(De)The Hollywood Principle:(?)Don't call us, we'll call you((?)别(Bie)找(Zhao)我(Wo),(?)我(Wo)会(Hui)来(Lai)找(Zhao)你(Ni)的(De))(?)。(?)也(Ye)就(Jiu)是(Shi)说(Shuo),(?)所(Suo)有(You)的(De)组(Zu)件(Jian)都(Du)是(Shi)被(Bei)动(Dong)的(De)((?)Passive)(?),(?)所(Suo)有(You)的(De)组(Zu)件(Jian)初(Chu)始(Shi)化(Hua)和(He)调(Diao)用(Yong)都(Du)由(You)容(Rong)器(Qi)负(Fu)责(Ze)。(?)组(Zu)件(Jian)处(Chu)在(Zai)一(Yi)个(Ge)容(Rong)器(Qi)当(Dang)中(Zhong),(?)由(You)容(Rong) 器(Qi)负(Fu)责(Ze)管(Guan)理(Li)。(?) (?) (?)
简(Jian)单(Dan)的(De)来(Lai)讲(Jiang),(?)就(Jiu)是(Shi)由(You)容(Rong)器(Qi)控(Kong)制(Zhi)程(Cheng)序(Xu)之(Zhi)间(Jian)的(De)关(Guan)系(Xi),(?)而(?)非(Fei)传(Chuan)统(Tong)实(Shi)现(Xian)中(Zhong),(?)由(You)程(Cheng)序(Xu)代(Dai)码(Ma)直(Zhi)接(Jie)操(Cao)控(Kong)。(?)这(Zhe)也(Ye)就(Jiu)是(Shi)所(Suo)谓(Wei)“(?)控(Kong)制(Zhi)反(Fan)转(Zhuan)”(?)的(De)概(Gai)念(Nian)所(Suo)在(Zai):(?)控(Kong)制(Zhi)权(Quan)由(You)应(Ying)用(Yong)代(Dai)码(Ma)中(Zhong)转(Zhuan)到(Dao)了(Liao)外(Wai)部(Bu)容(Rong)器(Qi),(?)控(Kong)制(Zhi)权(Quan)的(De)转(Zhuan)移(Yi),(?)是(Shi)所(Suo)谓(Wei)反(Fan)转(Zhuan)。(?)
2)(?)AOP 面(Mian)向(Xiang)切(Qie)面(Mian)编(Bian)程(Cheng)
核(He)心(Xin)原(Yuan)理(Li):(?)使(Shi)用(Yong)动(Dong)态(Tai)代(Dai)理(Li)的(De)设(She)计(Ji)模(Mo)式(Shi)在(Zai)执(Zhi)行(Xing)方(Fang)法(Fa)前(Qian)后(Hou)或(Huo)出(Chu)现(Xian)异(Yi)常(Chang)常(Chang)做(Zuo)加(Jia)入(Ru)相(Xiang)关(Guan)逻(Luo)辑(Ji)
我(Wo)们(Men)使(Shi)用(Yong)AOP来(Lai)做(Zuo):(?)
1)(?)事(Shi)务(Wu)处(Chu)理(Li):(?)执(Zhi)行(Xing)方(Fang)法(Fa)前(Qian)开(Kai)启(Qi)事(Shi)务(Wu),(?)执(Zhi)行(Xing)完(Wan)成(Cheng)后(Hou)关(Guan)闭(Bi)事(Shi)务(Wu),(?)出(Chu)现(Xian)异(Yi)常(Chang)后(Hou)回(Hui)滚(Gun)事(Shi)务(Wu)
2)(?)权(Quan)限(Xian)判(Pan)断(Duan):(?)在(Zai)执(Zhi)行(Xing)方(Fang)法(Fa)前(Qian),(?)判(Pan)断(Duan)是(Shi)否(Fou)具(Ju)有(You)权(Quan)限(Xian)
3)(?)日(Ri)志(Zhi):(?)在(Zai)执(Zhi)行(Xing)前(Qian)进(Jin)行(Xing)日(Ri)志(Zhi)处(Chu)理(Li)
多(Duo)个(Ge)事(Shi)物(Wu)存(Cun)在(Zai)是(Shi)怎(Zen)么(Me)处(Chu)理(Li)的(De)策(Ce)略(Lue)
1)(?)PROPAGATION_REQUIRED:(?)如(Ru)果(Guo)存(Cun)在(Zai)一(Yi)个(Ge)事(Shi)务(Wu),(?)则(Ze)支(Zhi)持(Chi)当(Dang)前(Qian)事(Shi)务(Wu),(?)如(Ru)果(Guo)当(Dang)前(Qian)没(Mei)有(You)事(Shi)务(Wu),(?)就(Jiu)新(Xin)建(Jian)一(Yi)个(Ge)事(Shi)务(Wu)。(?)这(Zhe)是(Shi)最(Zui)常(Chang)见(Jian)的(De)选(Xuan)择(Ze)。(?)
2)(?)PROPAGATION_SUPPORTS:(?)如(Ru)果(Guo)存(Cun)在(Zai)一(Yi)个(Ge)事(Shi)务(Wu),(?)支(Zhi)持(Chi)当(Dang)前(Qian)事(Shi)务(Wu),(?)如(Ru)果(Guo)当(Dang)前(Qian)没(Mei)有(You)事(Shi)务(Wu),(?)就(Jiu)以(Yi)非(Fei)事(Shi)务(Wu)方(Fang)式(Shi)执(Zhi)行(Xing)。(?)
3)(?)PROPAGATION_MANDATORY:(?)如(Ru)果(Guo)存(Cun)在(Zai)一(Yi)个(Ge)事(Shi)务(Wu),(?)支(Zhi)持(Chi)当(Dang)前(Qian)事(Shi)务(Wu),(?)如(Ru)果(Guo)当(Dang)前(Qian)没(Mei)有(You)事(Shi)务(Wu),(?)就(Jiu)抛(Pao)出(Chu)异(Yi)常(Chang)。(?)
4)(?)PROPAGATION_REQUIRES_NEW:(?)新(Xin)建(Jian)事(Shi)务(Wu),(?)如(Ru)果(Guo)当(Dang)前(Qian)存(Cun)在(Zai)事(Shi)务(Wu),(?)把(Ba)当(Dang)前(Qian)事(Shi)务(Wu)挂(Gua)起(Qi)。(?)
5)(?)PROPAGATION_NOT_SUPPORTED:(?)以(Yi)非(Fei)事(Shi)务(Wu)方(Fang)式(Shi)执(Zhi)行(Xing)操(Cao)作(Zuo),(?)如(Ru)果(Guo)当(Dang)前(Qian)存(Cun)在(Zai)事(Shi)务(Wu),(?)就(Jiu)把(Ba)当(Dang)前(Qian)事(Shi)务(Wu)挂(Gua)起(Qi)。(?)
6)(?)PROPAGATION_NEVER:(?)以(Yi)非(Fei)事(Shi)务(Wu)方(Fang)式(Shi)执(Zhi)行(Xing),(?)如(Ru)果(Guo)当(Dang)前(Qian)存(Cun)在(Zai)事(Shi)务(Wu),(?)则(Ze)抛(Pao)出(Chu)异(Yi)常(Chang)。(?)
7)(?)PROPAGATION_NESTED:(?)支(Zhi)持(Chi)当(Dang)前(Qian)事(Shi)务(Wu),(?)新(Xin)增(Zeng)Savepoint点(Dian),(?)与(Yu)当(Dang)前(Qian)事(Shi)务(Wu)同(Tong)步(Bu)提(Ti)交(Jiao)或(Huo)回(Hui)滚(Gun)。(?)
对(Dui)象(Xiang)关(Guan)系(Xi)映(Ying)射(She)(Object Relation Mapping,(?)简(Jian)称(Cheng)ORM)模(Mo)式(Shi)是(Shi)一(Yi)种(Zhong)为(Wei)了(Liao)解(Jie)决(Jue)面(Mian)向(Xiang)对(Dui)象(Xiang)与(Yu)关(Guan)系(Xi)数(Shu)据(Ju)库(Ku)存(Cun)在(Zai)的(De)互(Hu)不(Bu)匹(Pi)配(Pei)的(De)现(Xian)象(Xiang)的(De)技(Ji)术(Shu),(?)简(Jian)单(Dan)的(De)说(Shuo),(?)ORM是(Shi)通(Tong)过(Guo)使(Shi)用(Yong)描(Miao)述(Shu)对(Dui)象(Xiang)和(He)数(Shu)据(Ju)库(Ku)之(Zhi)间(Jian)映(Ying)射(She)的(De)元(Yuan)数(Shu)据(Ju),(?)将(Jiang)程(Cheng)序(Xu)中(Zhong)的(De)对(Dui)象(Xiang)自(Zi)动(Dong)持(Chi)久(Jiu)化(Hua)到(Dao)关(Guan)系(Xi)数(Shu)据(Ju)库(Ku)中(Zhong),(?)那(Na)么(Me)到(Dao)底(Di)如(Ru)何(He)实(Shi)现(Xian)持(Chi)久(Jiu)化(Hua)呢(Ne)?(?)一(Yi)种(Zhong)简(Jian)单(Dan)的(De)方(Fang)案(An)时(Shi)采(Cai)用(Yong)硬(Ying)编(Bian)码(Ma)方(Fang)式(Shi)(jdbc操(Cao)作(Zuo)sql方(Fang)式(Shi)),(?)为(Wei)每(Mei)一(Yi)种(Zhong)可(Ke)能(Neng)的(De)数(Shu)据(Ju)库(Ku)访(Fang)问(Wen)操(Cao)作(Zuo)提(Ti)供(Gong)单(Dan)独(Du)的(De)方(Fang)法(Fa)。(?)
这(Zhe)种(Zhong)方(Fang)案(An)存(Cun)在(Zai)以(Yi)下(Xia)不(Bu)足(Zu):(?)
1. 持(Chi)久(Jiu)化(Hua)层(Ceng)缺(Que)乏(Fa)弹(Dan)性(Xing),(?)一(Yi)旦(Dan)出(Chu)现(Xian)业(Ye)务(Wu)需(Xu)求(Qiu)变(Bian)更(Geng),(?)就(Jiu)必(Bi)须(Xu)修(Xiu)改(Gai)持(Chi)久(Jiu)化(Hua)层(Ceng)的(De)接(Jie)口(Kou)
2. 持(Chi)久(Jiu)化(Hua)层(Ceng)同(Tong)时(Shi)与(Yu)域(Yu)模(Mo)型(Xing)与(Yu)关(Guan)系(Xi)数(Shu)据(Ju)库(Ku)模(Mo)型(Xing)绑(Bang)定(Ding),(?)不(Bu)管(Guan)域(Yu)模(Mo)型(Xing)还(Huan)是(Shi)关(Guan)系(Xi)数(Shu)据(Ju)库(Ku)模(Mo)型(Xing)发(Fa)生(Sheng)变(Bian)化(Hua),(?)都(Du)要(Yao)修(Xiu)改(Gai)持(Chi)久(Jiu)化(Hua)层(Ceng)的(De)相(Xiang)关(Guan)程(Cheng)序(Xu)代(Dai)码(Ma),(?)增(Zeng)加(Jia)软(Ruan)件(Jian)的(De)维(Wei)护(Hu)难(Nan)度(Du)。(?)
ORM提(Ti)供(Gong)了(Liao)实(Shi)现(Xian)持(Chi)久(Jiu)化(Hua)层(Ceng)的(De)另(Ling)一(Yi)种(Zhong)模(Mo)式(Shi),(?)它(Ta)采(Cai)用(Yong)映(Ying)射(She)元(Yuan)数(Shu)据(Ju)来(Lai)描(Miao)述(Shu)对(Dui)象(Xiang)关(Guan)系(Xi)的(De)映(Ying)射(She),(?)使(Shi)得(De)ORM中(Zhong)间(Jian)件(Jian)能(Neng)在(Zai)任(Ren)何(He)一(Yi)个(Ge)应(Ying)用(Yong)的(De)业(Ye)务(Wu)逻(Luo)辑(Ji)层(Ceng)和(He)数(Shu)据(Ju)库(Ku)层(Ceng)之(Zhi)间(Jian)充(Chong)当(Dang)桥(Qiao)梁(Liang),(?)Java典(Dian)型(Xing)的(De)ORM框(Kuang)架(Jia)有(You):(?)Hibernate,(?)ibatis(mybtis),(?)speedframework。(?)
ORM框(Kuang)架(Jia)的(De)方(Fang)法(Fa)论(Lun)基(Ji)于(Yu)三(San)个(Ge)核(He)心(Xin)原(Yuan)则(Ze):(?)
简(Jian)单(Dan):(?)以(Yi)最(Zui)基(Ji)本(Ben)的(De)形(Xing)式(Shi)建(Jian)模(Mo)数(Shu)据(Ju)
传(Chuan)达(Da)性(Xing):(?)数(Shu)据(Ju)库(Ku)结(Jie)构(Gou)被(Bei)任(Ren)何(He)人(Ren)都(Du)能(Neng)理(Li)解(Jie)的(De)语(Yu)言(Yan)文(Wen)档(Dang)化(Hua)
精(Jing)确(Que)性(Xing):(?)基(Ji)于(Yu)数(Shu)据(Ju)模(Mo)型(Xing)创(Chuang)建(Jian)正(Zheng)确(Que)标(Biao)准(Zhun)化(Hua)了(Liao)结(Jie)构(Gou)
对(Dui)象(Xiang)关(Guan)系(Xi)映(Ying)射(She)(Object Relation Mapping,(?)简(Jian)称(Cheng)ORM)模(Mo)式(Shi)是(Shi)一(Yi)种(Zhong)为(Wei)了(Liao)解(Jie)决(Jue)面(Mian)向(Xiang)对(Dui)象(Xiang)与(Yu)关(Guan)系(Xi)数(Shu)据(Ju)库(Ku)存(Cun)在(Zai)的(De)互(Hu)不(Bu)匹(Pi)配(Pei)的(De)现(Xian)象(Xiang)的(De)技(Ji)术(Shu),(?)可(Ke)以(Yi)简(Jian)单(Dan)的(De)方(Fang)案(An)采(Cai)用(Yong)硬(Ying)编(Bian)码(Ma)方(Fang)式(Shi)(jdbc操(Cao)作(Zuo)sql方(Fang)式(Shi)),(?)为(Wei)每(Mei)一(Yi)种(Zhong)可(Ke)能(Neng)的(De)数(Shu)据(Ju)库(Ku)访(Fang)问(Wen)操(Cao)作(Zuo)提(Ti)供(Gong)单(Dan)独(Du)的(De)方(Fang)法(Fa),(?)这(Zhe)种(Zhong)方(Fang)法(Fa)存(Cun)在(Zai)很(Hen)多(Duo)缺(Que)陷(Xian),(?)使(Shi)用(Yong)ORM框(Kuang)架(Jia)(为(Wei)了(Liao)解(Jie)决(Jue)面(Mian)向(Xiang)对(Dui)象(Xiang)与(Yu)关(Guan)系(Xi)数(Shu)据(Ju)库(Ku)存(Cun)在(Zai)互(Hu)不(Bu)匹(Pi)配(Pei)的(De)现(Xian)象(Xiang)的(De)框(Kuang)架(Jia))来(Lai)解(Jie)决(Jue)。(?)
临(Lin)时(Shi)状(Zhuang)态(Tai)/瞬(Shun)时(Shi)状(Zhuang)态(Tai)(transient):(?)刚(Gang)刚(Gang)用(Yong)new语(Yu)句(Ju)创(Chuang)建(Jian),(?)没(Mei)有(You)被(Bei)持(Chi)久(Jiu)化(Hua),(?)无(Wu)id
不(Bu)处(Chu)于(Yu)session中(Zhong)(没(Mei)有(You)使(Shi)用(Yong)session的(De)方(Fang)法(Fa)去(Qu)操(Cao)作(Zuo)临(Lin)时(Shi)对(Dui)象(Xiang)),(?)该(Gai)对(Dui)象(Xiang)成(Cheng)为(Wei)临(Lin)时(Shi)对(Dui)象(Xiang)
持(Chi)久(Jiu)化(Hua)状(Zhuang)态(Tai),(?)托(Tuo)管(Guan)状(Zhuang)态(Tai)(persistent):(?)已(Yi)经(Jing)被(Bei)持(Chi)久(Jiu)化(Hua),(?)加(Jia)入(Ru)session的(De)缓(Huan)存(Cun)中(Zhong),(?)session是(Shi)没(Mei)有(You)关(Guan)闭(Bi)
该(Gai)状(Zhuang)态(Tai)的(De)对(Dui)象(Xiang)为(Wei)持(Chi)久(Jiu)化(Hua)对(Dui)象(Xiang)。(?)
游(You)离(Li)状(Zhuang)态(Tai),(?)脱(Tuo)管(Guan)状(Zhuang)态(Tai)(detached):(?)已(Yi)经(Jing)被(Bei)持(Chi)久(Jiu)化(Hua),(?)但(Dan)不(Bu)处(Chu)于(Yu)session中(Zhong),(?)该(Gai)状(Zhuang)态(Tai)的(De)对(Dui)象(Xiang)为(Wei)游(You)离(Li)对(Dui)象(Xiang)。(?)
删(Shan)除(Chu)状(Zhuang)态(Tai)(removed):(?)对(Dui)象(Xiang)有(You)关(Guan)联(Lian)的(De)id,(?)并(Bing)且(Qie)在(Zai)session管(Guan)理(Li)下(Xia),(?)但(Dan)是(Shi)已(Yi)经(Jing)被(Bei)计(Ji)划(Hua)(事(Shi)务(Wu)提(Ti)交(Jiao)的(De)时(Shi)候(Hou),(?)commit)删(Shan)除(Chu),(?)如(Ru)果(Guo)没(Mei)有(You)事(Shi)务(Wu)就(Jiu)不(Bu)能(Neng)删(Shan)除(Chu)
相(Xiang)互(Hu)转(Zhuan)换(Huan)
答(Da):(?)一(Yi)、(?)why(为(Wei)什(Shi)么(Me)要(Yao)用(Yong)Hibernate缓(Huan)存(Cun)?(?))
Hibernate是(Shi)一(Yi)种(Zhong)持(Chi)久(Jiu)化(Hua)层(Ceng)框(Kuang)架(Jia),(?)经(Jing)常(Chang)访(Fang)问(Wen)物(Wu)理(Li)数(Shu)据(Ju)库(Ku)。(?)
为(Wei)了(Liao)降(Jiang)低(Di)应(Ying)用(Yong)程(Cheng)序(Xu)对(Dui)物(Wu)理(Li)数(Shu)据(Ju)源(Yuan)访(Fang)问(Wen)的(De)频(Pin)次(Ci),(?)从(Cong)而(?)提(Ti)高(Gao)应(Ying)用(Yong)程(Cheng)序(Xu)的(De)运(Yun)行(Xing)性(Xing)能(Neng)
缓(Huan)存(Cun)内(Nei)的(De)数(Shu)据(Ju)是(Shi)对(Dui)物(Wu)理(Li)数(Shu)据(Ju)源(Yuan)中(Zhong)的(De)数(Shu)据(Ju)的(De)复(Fu)制(Zhi),(?)应(Ying)用(Yong)程(Cheng)序(Xu)在(Zai)运(Yun)行(Xing)时(Shi)从(Cong)缓(Huan)存(Cun)读(Du)写(Xie)数(Shu)据(Ju),(?)在(Zai)特(Te)定(Ding)的(De)时(Shi)刻(Ke)或(Huo)事(Shi)件(Jian)会(Hui)同(Tong)步(Bu)缓(Huan)存(Cun)和(He)物(Wu)理(Li)数(Shu)据(Ju)源(Yuan)的(De)数(Shu)据(Ju)。(?)
为(Wei)了(Liao)提(Ti)高(Gao)访(Fang)问(Wen)速(Su)度(Du),(?)把(Ba)磁(Ci)盘(Pan)或(Huo)者(Zhe)数(Shu)据(Ju)库(Ku)访(Fang)问(Wen)变(Bian)成(Cheng)内(Nei)存(Cun)访(Fang)问(Wen)
二(?)、(?)what(Hibernate缓(Huan)存(Cun)原(Yuan)理(Li)是(Shi)怎(Zen)样(Yang)的(De)?(?))Hibernate缓(Huan)存(Cun)包(Bao)括(Kuo)两(Liang)大(Da)类(Lei):(?)Hibernate 一(Yi)级(Ji)缓(Huan)存(Cun)和(He)Hibernate二(?)级(Ji)缓(Huan)存(Cun)
1. Hibernate一(Yi)级(Ji)缓(Huan)存(Cun)又(You)称(Cheng)为(Wei)”(?)session的(De)缓(Huan)存(Cun)”(?)。(?)
session缓(Huan)存(Cun)内(Nei)置(Zhi)不(Bu)能(Neng)被(Bei)卸(Xie)载(Zai),(?)session的(De)缓(Huan)存(Cun)是(Shi)事(Shi)务(Wu)范(Fan)围(Wei)的(De)缓(Huan)存(Cun)(session对(Dui)象(Xiang)的(De)生(Sheng)命(Ming)周(Zhou)期(Qi)通(Tong)常(Chang)对(Dui)应(Ying)一(Yi)个(Ge)数(Shu)据(Ju)库(Ku)事(Shi)务(Wu)或(Huo)者(Zhe)一(Yi)个(Ge)应(Ying)用(Yong)事(Shi)务(Wu))。(?)
一(Yi)级(Ji)缓(Huan)存(Cun)中(Zhong),(?)持(Chi)久(Jiu)化(Hua)类(Lei)的(De)每(Mei)个(Ge)实(Shi)例(Li)都(Du)具(Ju)有(You)唯(Wei)一(Yi)的(De)OID
2. Hibernate的(De)二(?)级(Ji)缓(Huan)存(Cun)又(You)称(Cheng)为(Wei)”(?)sessionFactory的(De)缓(Huan)存(Cun)”(?)。(?)
由(You)于(Yu)sessionFactory对(Dui)象(Xiang)的(De)生(Sheng)命(Ming)周(Zhou)期(Qi)和(He)应(Ying)用(Yong)程(Cheng)序(Xu)的(De)整(Zheng)个(Ge)过(Guo)程(Cheng)对(Dui)应(Ying),(?)因(Yin)此(Ci)Hibernate二(?)级(Ji)缓(Huan)存(Cun)是(Shi)进(Jin)程(Cheng)范(Fan)围(Wei)或(Huo)者(Zhe)集(Ji)群(Qun)范(Fan)围(Wei)的(De)缓(Huan)存(Cun),(?)有(You)可(Ke)能(Neng)出(Chu)现(Xian)并(Bing)发(Fa)问(Wen)题(Ti),(?)因(Yin)此(Ci)需(Xu)要(Yao)采(Cai)用(Yong)适(Shi)当(Dang)的(De)并(Bing)发(Fa)访(Fang)问(Wen)策(Ce)略(Lue),(?)该(Gai)策(Ce)略(Lue)为(Wei)被(Bei)缓(Huan)存(Cun)的(De)数(Shu)据(Ju)提(Ti)供(Gong)了(Liao)事(Shi)务(Wu)隔(Ge)离(Li)级(Ji)别(Bie)。(?)
第(Di)二(?)级(Ji)缓(Huan)存(Cun)是(Shi)可(Ke)选(Xuan)的(De),(?)是(Shi)一(Yi)个(Ge)可(Ke)配(Pei)置(Zhi)的(De)插(Cha)件(Jian),(?)默(Mo)认(Ren)下(Xia)sessionFactory不(Bu)会(Hui)启(Qi)用(Yong)这(Zhe)个(Ge)插(Cha)件(Jian)。(?)
什(Shi)么(Me)样(Yang)的(De)数(Shu)据(Ju)适(Shi)合(He)存(Cun)放(Fang)到(Dao)二(?)级(Ji)缓(Huan)存(Cun)中(Zhong)?(?)
1) 很(Hen)少(Shao)被(Bei)修(Xiu)改(Gai)的(De)数(Shu)据(Ju) (帖(Tie)子(Zi)的(De)最(Zui)后(Hou)回(Hui)复(Fu)时(Shi)间(Jian))
2) 经(Jing)常(Chang)被(Bei)查(Cha)询(Xun)的(De)数(Shu)据(Ju) (电(Dian)商(Shang)的(De)地(Di)点(Dian))
3) 不(Bu)是(Shi)很(Hen)重(Zhong)要(Yao)的(De)数(Shu)据(Ju),(?)允(Yun)许(Xu)出(Chu)现(Xian)偶(Ou)尔(?)并(Bing)发(Fa)的(De)数(Shu)据(Ju)
4) 不(Bu)会(Hui)被(Bei)并(Bing)发(Fa)访(Fang)问(Wen)的(De)数(Shu)据(Ju)
5) 常(Chang)量(Liang)数(Shu)据(Ju)
扩(Kuo)展(Zhan):(?)Hibernate的(De)二(?)级(Ji)缓(Huan)存(Cun)默(Mo)认(Ren)是(Shi)不(Bu)支(Zhi)持(Chi)分(Fen)布(Bu)式(Shi)缓(Huan)存(Cun)的(De),(?)使(Shi)用(Yong)memcache,(?)redis等(Deng)中(Zhong)央(Yang)缓(Huan)存(Cun)来(Lai)代(Dai)替(Ti)二(?)级(Ji)缓(Huan)存(Cun)。(?)
webservice是(Shi)一(Yi)个(Ge)SOA(面(Mian)向(Xiang)服(Fu)务(Wu)的(De)编(Bian)程(Cheng))的(De)架(Jia)构(Gou),(?)它(Ta)是(Shi)不(Bu)依(Yi)赖(Lai)于(Yu)语(Yu)言(Yan),(?)不(Bu)依(Yi)赖(Lai)于(Yu)平(Ping)台(Tai),(?)可(Ke)以(Yi)实(Shi)现(Xian)不(Bu)同(Tong)的(De)语(Yu)言(Yan)间(Jian)的(De)相(Xiang)互(Hu)调(Diao)用(Yong),(?)通(Tong)过(Guo)Internet进(Jin)行(Xing)基(Ji)于(Yu)http协(Xie)议(Yi)的(De)网(Wang)络(Luo)应(Ying)用(Yong)间(Jian)的(De)交(Jiao)互(Hu)。(?)
1、(?)异(Yi)构(Gou)系(Xi)统(Tong)(不(Bu)同(Tong)的(De)开(Kai)发(Fa)语(Yu)言(Yan))的(De)整(Zheng)合(He)
2、(?)不(Bu)同(Tong)客(Ke)户(Hu)端(Duan)的(De)整(Zheng)合(He) (浏(Liu)览(Lan)器(Qi)、(?)手(Shou)机(Ji)端(Duan)(android\ios)、(?)微(Wei)信(Xin))
3、(?)实(Shi)实(Shi)在(Zai)在(Zai)的(De)例(Li)子(Zi):(?)
天(Tian)气(Qi)预(Yu)报(Bao):(?)可(Ke)以(Yi)通(Tong)过(Guo)实(Shi)现(Xian)webservice客(Ke)户(Hu)端(Duan)调(Diao)用(Yong)远(Yuan)程(Cheng)天(Tian)气(Qi)服(Fu)务(Wu)实(Shi)现(Xian)的(De)
4、(?)单(Dan)点(Dian)登(Deng)录(Lu):(?)一(Yi)个(Ge)服(Fu)务(Wu)实(Shi)现(Xian)所(Suo)有(You)系(Xi)统(Tong)的(De)登(Deng)录(Lu)
Activity是(Shi)一(Yi)个(Ge)业(Ye)务(Wu)流(Liu)程(Cheng)管(Guan)理(Li)(BPM)和(He)工(Gong)作(Zuo)流(Liu)系(Xi)统(Tong),(?)适(Shi)用(Yong)于(Yu)开(Kai)发(Fa)人(Ren)员(Yuan)和(He)系(Xi)统(Tong)管(Guan)理(Li)员(Yuan),(?)其(Qi)核(He)心(Xin)是(Shi)超(Chao)快(Kuai)速(Su),(?)稳(Wen)定(Ding)的(De)BPMN2的(De)流(Liu)程(Cheng)引(Yin)擎(Qing),(?)它(Ta)易(Yi)于(Yu)与(Yu)Spring集(Ji)成(Cheng)使(Shi)用(Yong)。(?)
主(Zhu)要(Yao)用(Yong)在(Zai)OA中(Zhong),(?)把(Ba)线(Xian)下(Xia)流(Liu)程(Cheng)放(Fang)在(Zai)线(Xian)上(Shang),(?)把(Ba)现(Xian)实(Shi)生(Sheng)活(Huo)中(Zhong)一(Yi)些(Xie)流(Liu)程(Cheng)固(Gu)话(Hua)定(Ding)义(Yi)到(Dao)系(Xi)统(Tong)中(Zhong),(?)然(Ran)后(Hou)通(Tong)过(Guo)输(Shu)入(Ru)表(Biao)单(Dan)数(Shu)据(Ju)完(Wan)成(Cheng)业(Ye)务(Wu)。(?)
他(Ta)可(Ke)以(Yi)用(Yong)在(Zai)OA系(Xi)统(Tong)的(De)流(Liu)程(Cheng)管(Guan)理(Li)中(Zhong)
请(Qing)假(Jia)流(Liu)程(Cheng)(小(Xiao)于(Yu)三(San)天(Tian),(?)一(Yi)级(Ji)主(Zhu)管(Guan)审(Shen)批(Pi),(?)大(Da)于(Yu)三(San)天(Tian)二(?)级(Ji)主(Zhu)管(Guan)审(Shen)批(Pi))
报(Bao)销(Xiao)流(Liu)程(Cheng)(价(Jia)格(Ge)区(Qu)间(Jian))
答(Da):(?)MyBatis是(Shi)一(Yi)个(Ge)可(Ke)以(Yi)自(Zi)定(Ding)义(Yi)SQL、(?)存(Cun)储(Chu)过(Guo)程(Cheng)和(He)高(Gao)级(Ji)映(Ying)射(She)的(De)持(Chi)久(Jiu)层(Ceng)框(Kuang)架(Jia)。(?)
答(Da):(?)1)(?)Mybatis使(Shi)用(Yong)RowBounds对(Dui)象(Xiang)进(Jin)行(Xing)分(Fen)页(Ye),(?)也(Ye)可(Ke)以(Yi)直(Zhi)接(Jie)编(Bian)写(Xie)sql实(Shi)现(Xian)分(Fen)页(Ye),(?)也(Ye)可(Ke)以(Yi)使(Shi)用(Yong)Mybatis的(De)分(Fen)页(Ye)插(Cha)件(Jian)。(?)
2)(?)分(Fen)页(Ye)插(Cha)件(Jian)的(De)原(Yuan)理(Li):(?)实(Shi)现(Xian)Mybatis提(Ti)供(Gong)的(De)接(Jie)口(Kou),(?)实(Shi)现(Xian)自(Zi)定(Ding)义(Yi)插(Cha)件(Jian),(?)在(Zai)插(Cha)件(Jian)的(De)拦(Lan)截(Jie)方(Fang)法(Fa)内(Nei)拦(Lan)截(Jie)待(Dai)执(Zhi)行(Xing)的(De)sql,(?)然(Ran)后(Hou)重(Zhong)写(Xie)sql。(?)
举(Ju)例(Li):(?)select * from student,(?)拦(Lan)截(Jie)sql后(Hou)重(Zhong)写(Xie)为(Wei):(?)select t.* from ((?)select * from student)(?)t limit 0,(?)10
答(Da):(?)1)(?)Mybatis和(He)hibernate不(Bu)同(Tong),(?)它(Ta)不(Bu)完(Wan)全(Quan)是(Shi)一(Yi)个(Ge)ORM框(Kuang)架(Jia),(?)因(Yin)为(Wei)MyBatis需(Xu)要(Yao)程(Cheng)序(Xu)员(Yuan)自(Zi)己(Ji)编(Bian)写(Xie)Sql语(Yu)句(Ju),(?)不(Bu)过(Guo)mybatis可(Ke)以(Yi)通(Tong)过(Guo)XML或(Huo)注(Zhu)解(Jie)方(Fang)式(Shi)灵(Ling)活(Huo)配(Pei)置(Zhi)要(Yao)运(Yun)行(Xing)的(De)sql语(Yu)句(Ju),(?)并(Bing)将(Jiang)java对(Dui)象(Xiang)和(He)sql语(Yu)句(Ju)映(Ying)射(She)生(Sheng)成(Cheng)最(Zui)终(Zhong)执(Zhi)行(Xing)的(De)sql,(?)最(Zui)后(Hou)将(Jiang)sql执(Zhi)行(Xing)的(De)结(Jie)果(Guo)再(Zai)映(Ying)射(She)生(Sheng)成(Cheng)java对(Dui)象(Xiang)。(?)
2)(?)Mybatis学(Xue)习(Xi)门(Men)槛(Jian)低(Di),(?)简(Jian)单(Dan)易(Yi)学(Xue),(?)程(Cheng)序(Xu)员(Yuan)直(Zhi)接(Jie)编(Bian)写(Xie)原(Yuan)生(Sheng)态(Tai)sql,(?)可(Ke)严(Yan)格(Ge)控(Kong)制(Zhi)sql执(Zhi)行(Xing)性(Xing)能(Neng),(?)灵(Ling)活(Huo)度(Du)高(Gao),(?)非(Fei)常(Chang)适(Shi)合(He)对(Dui)关(Guan)系(Xi)数(Shu)据(Ju)模(Mo)型(Xing)要(Yao)求(Qiu)不(Bu)高(Gao)的(De)软(Ruan)件(Jian)开(Kai)发(Fa),(?)例(Li)如(Ru)互(Hu)联(Lian)网(Wang)软(Ruan)件(Jian)、(?)企(Qi)业(Ye)运(Yun)营(Ying)类(Lei)软(Ruan)件(Jian)等(Deng),(?)因(Yin)为(Wei)这(Zhe)类(Lei)软(Ruan)件(Jian)需(Xu)求(Qiu)变(Bian)化(Hua)频(Pin)繁(Fan),(?)一(Yi)但(Dan)需(Xu)求(Qiu)变(Bian)化(Hua)要(Yao)求(Qiu)成(Cheng)果(Guo)输(Shu)出(Chu)迅(Xun)速(Su)。(?)但(Dan)是(Shi)灵(Ling)活(Huo)的(De)前(Qian)提(Ti)是(Shi)mybatis无(Wu)法(Fa)做(Zuo)到(Dao)数(Shu)据(Ju)库(Ku)无(Wu)关(Guan)性(Xing),(?)如(Ru)果(Guo)需(Xu)要(Yao)实(Shi)现(Xian)支(Zhi)持(Chi)多(Duo)种(Zhong)数(Shu)据(Ju)库(Ku)的(De)软(Ruan)件(Jian)则(Ze)需(Xu)要(Yao)自(Zi)定(Ding)义(Yi)多(Duo)套(Tao)sql映(Ying)射(She)文(Wen)件(Jian),(?)工(Gong)作(Zuo)量(Liang)大(Da)。(?)
3)(?)Hibernate对(Dui)象(Xiang)/关(Guan)系(Xi)映(Ying)射(She)能(Neng)力(Li)强(Qiang),(?)数(Shu)据(Ju)库(Ku)无(Wu)关(Guan)性(Xing)好(Hao),(?)对(Dui)于(Yu)关(Guan)系(Xi)模(Mo)型(Xing)要(Yao)求(Qiu)高(Gao)的(De)软(Ruan)件(Jian)((?)例(Li)如(Ru)需(Xu)求(Qiu)固(Gu)定(Ding)的(De)定(Ding)制(Zhi)化(Hua)软(Ruan)件(Jian))(?)如(Ru)果(Guo)用(Yong)hibernate开(Kai)发(Fa)可(Ke)以(Yi)节(Jie)省(Sheng)很(Hen)多(Duo)代(Dai)码(Ma),(?)提(Ti)高(Gao)效(Xiao)率(Lu)。(?)但(Dan)是(Shi)Hibernate的(De)缺(Que)点(Dian)是(Shi)学(Xue)习(Xi)门(Men)槛(Jian)高(Gao),(?)要(Yao)精(Jing)通(Tong)门(Men)槛(Jian)更(Geng)高(Gao),(?)而(?)且(Qie)怎(Zen)么(Me)设(She)计(Ji)O/R映(Ying)射(She),(?)在(Zai)性(Xing)能(Neng)和(He)对(Dui)象(Xiang)模(Mo)型(Xing)之(Zhi)间(Jian)如(Ru)何(He)权(Quan)衡(Heng),(?)以(Yi)及(Ji)怎(Zen)样(Yang)用(Yong)好(Hao)Hibernate需(Xu)要(Yao)具(Ju)有(You)很(Hen)强(Qiang)的(De)经(Jing)验(Yan)和(He)能(Neng)力(Li)才(Cai)行(Xing)。(?)
总(Zong)之(Zhi),(?)按(An)照(Zhao)用(Yong)户(Hu)的(De)需(Xu)求(Qiu)在(Zai)有(You)限(Xian)的(De)资(Zi)源(Yuan)环(Huan)境(Jing)下(Xia)只(Zhi)要(Yao)能(Neng)做(Zuo)出(Chu)维(Wei)护(Hu)性(Xing)、(?)扩(Kuo)展(Zhan)性(Xing)良(Liang)好(Hao)的(De)软(Ruan)件(Jian)架(Jia)构(Gou)都(Du)是(Shi)好(Hao)架(Jia)构(Gou),(?)所(Suo)以(Yi)框(Kuang)架(Jia)只(Zhi)有(You)适(Shi)合(He)才(Cai)是(Shi)最(Zui)好(Hao)。(?)
答(Da):(?) Mybatis将(Jiang)所(Suo)有(You)Xml配(Pei)置(Zhi)信(Xin)息(Xi)都(Du)封(Feng)装(Zhuang)到(Dao)All-In-One重(Zhong)量(Liang)级(Ji)对(Dui)象(Xiang)Configuration内(Nei)部(Bu)。(?)在(Zai)Xml映(Ying)射(She)文(Wen)件(Jian)中(Zhong),(?)< parameterMap>标(Biao)签(Qian)会(Hui)被(Bei)解(Jie)析(Xi)为(Wei)ParameterMap对(Dui)象(Xiang),(?)其(Qi)每(Mei)个(Ge)子(Zi)元(Yuan)素(Su)会(Hui)被(Bei)解(Jie)析(Xi)为(Wei)ParameterMapping对(Dui)象(Xiang)。(?)< resultMap>标(Biao)签(Qian)会(Hui)被(Bei)解(Jie)析(Xi)为(Wei)ResultMap对(Dui)象(Xiang),(?)其(Qi)每(Mei)个(Ge)子(Zi)元(Yuan)素(Su)会(Hui)被(Bei)解(Jie)析(Xi)为(Wei)ResultMapping对(Dui)象(Xiang)。(?)每(Mei)一(Yi)个(Ge)< select>、(?)< insert>、(?)< update>、(?)< delete>标(Biao)签(Qian)均(Jun)会(Hui)被(Bei)解(Jie)析(Xi)为(Wei)MappedStatement对(Dui)象(Xiang),(?)标(Biao)签(Qian)内(Nei)的(De)sql会(Hui)被(Bei)解(Jie)析(Xi)为(Wei)BoundSql对(Dui)象(Xiang)。(?)
答(Da):(?)接(Jie)口(Kou)映(Ying)射(She)就(Jiu)是(Shi)在(Zai)MyBatis中(Zhong)任(Ren)意(Yi)定(Ding)义(Yi)接(Jie)口(Kou),然(Ran)后(Hou)把(Ba)接(Jie)口(Kou)里(Li)面(Mian)的(De)方(Fang)法(Fa)和(He)SQL语(Yu)句(Ju)绑(Bang)定(Ding),我(Wo)们(Men)直(Zhi)接(Jie)调(Diao)用(Yong)接(Jie)口(Kou)方(Fang)法(Fa)就(Jiu)可(Ke)以(Yi),这(Zhe)样(Yang)比(Bi)起(Qi)原(Yuan)来(Lai)了(Liao)SqlSession提(Ti)供(Gong)的(De)方(Fang)法(Fa)我(Wo)们(Men)可(Ke)以(Yi)有(You)更(Geng)加(Jia)灵(Ling)活(Huo)的(De)选(Xuan)择(Ze)和(He)设(She)置(Zhi).
答(Da):(?)能(Neng),(?)Mybatis不(Bu)仅(Jin)可(Ke)以(Yi)执(Zhi)行(Xing)一(Yi)对(Dui)一(Yi)、(?)一(Yi)对(Dui)多(Duo)的(De)关(Guan)联(Lian)查(Cha)询(Xun),(?)还(Huan)可(Ke)以(Yi)执(Zhi)行(Xing)多(Duo)对(Dui)一(Yi),(?)多(Duo)对(Dui)多(Duo)的(De)关(Guan)联(Lian)查(Cha)询(Xun),(?)多(Duo)对(Dui)一(Yi)查(Cha)询(Xun),(?)其(Qi)实(Shi)就(Jiu)是(Shi)一(Yi)对(Dui)一(Yi)查(Cha)询(Xun),(?)只(Zhi)需(Xu)要(Yao)把(Ba)selectOne()修(Xiu)改(Gai)为(Wei)selectList()即(Ji)可(Ke);(?)多(Duo)对(Dui)多(Duo)查(Cha)询(Xun),(?)其(Qi)实(Shi)就(Jiu)是(Shi)一(Yi)对(Dui)多(Duo)查(Cha)询(Xun),(?)只(Zhi)需(Xu)要(Yao)把(Ba)selectOne()修(Xiu)改(Gai)为(Wei)selectList()即(Ji)可(Ke)。(?)
关(Guan)联(Lian)对(Dui)象(Xiang)查(Cha)询(Xun),(?)有(You)两(Liang)种(Zhong)实(Shi)现(Xian)方(Fang)式(Shi),(?)一(Yi)种(Zhong)是(Shi)单(Dan)独(Du)发(Fa)送(Song)一(Yi)个(Ge)sql去(Qu)查(Cha)询(Xun)关(Guan)联(Lian)对(Dui)象(Xiang),(?)赋(Fu)给(Gei)主(Zhu)对(Dui)象(Xiang),(?)然(Ran)后(Hou)返(Fan)回(Hui)主(Zhu)对(Dui)象(Xiang)。(?)另(Ling)一(Yi)种(Zhong)是(Shi)使(Shi)用(Yong)嵌(Qian)套(Tao)查(Cha)询(Xun),(?)嵌(Qian)套(Tao)查(Cha)询(Xun)的(De)含(Han)义(Yi)为(Wei)使(Shi)用(Yong)join查(Cha)询(Xun),(?)一(Yi)部(Bu)分(Fen)列(Lie)是(Shi)A对(Dui)象(Xiang)的(De)属(Shu)性(Xing)值(Zhi),(?)另(Ling)外(Wai)一(Yi)部(Bu)分(Fen)列(Lie)是(Shi)关(Guan)联(Lian)对(Dui)象(Xiang)B的(De)属(Shu)性(Xing)值(Zhi),(?)好(Hao)处(Chu)是(Shi)只(Zhi)发(Fa)一(Yi)个(Ge)sql查(Cha)询(Xun),(?)就(Jiu)可(Ke)以(Yi)把(Ba)主(Zhu)对(Dui)象(Xiang)和(He)其(Qi)关(Guan)联(Lian)对(Dui)象(Xiang)查(Cha)出(Chu)来(Lai)。(?)
答(Da):(?)MyBatis里(Li)面(Mian)的(De)动(Dong)态(Tai)Sql一(Yi)般(Ban)是(Shi)通(Tong)过(Guo)if节(Jie)点(Dian)来(Lai)实(Shi)现(Xian),通(Tong)过(Guo)OGNL语(Yu)法(Fa)来(Lai)实(Shi)现(Xian),但(Dan)是(Shi)如(Ru)果(Guo)要(Yao)写(Xie)的(De)完(Wan)整(Zheng),必(Bi)须(Xu)配(Pei)合(He)where,trim节(Jie)点(Dian),where节(Jie)点(Dian)是(Shi)判(Pan)断(Duan)包(Bao)含(Han)节(Jie)点(Dian)有(You)内(Nei)容(Rong)就(Jiu)插(Cha)入(Ru)where,否(Fou)则(Ze)不(Bu)插(Cha)入(Ru),trim节(Jie)点(Dian)是(Shi)用(Yong)来(Lai)判(Pan)断(Duan)如(Ru)果(Guo)动(Dong)态(Tai)语(Yu)句(Ju)是(Shi)以(Yi)and 或(Huo)or开(Kai)始(Shi),那(Na)么(Me)会(Hui)自(Zi)动(Dong)把(Ba)这(Zhe)个(Ge)and或(Huo)者(Zhe)or取(Qu)掉(Diao)。(?)
答(Da):(?)1)(?)Mapper接(Jie)口(Kou)方(Fang)法(Fa)名(Ming)和(He)mapper.xml中(Zhong)定(Ding)义(Yi)的(De)每(Mei)个(Ge)sql的(De)id相(Xiang)同(Tong)
2)(?)Mapper接(Jie)口(Kou)方(Fang)法(Fa)的(De)输(Shu)入(Ru)参(Can)数(Shu)类(Lei)型(Xing)和(He)mapper.xml中(Zhong)定(Ding)义(Yi)的(De)每(Mei)个(Ge)sql 的(De)parameterType的(De)类(Lei)型(Xing)相(Xiang)同(Tong)
3)(?)Mapper接(Jie)口(Kou)方(Fang)法(Fa)的(De)输(Shu)出(Chu)参(Can)数(Shu)类(Lei)型(Xing)和(He)mapper.xml中(Zhong)定(Ding)义(Yi)的(De)每(Mei)个(Ge)sql的(De)resultType的(De)类(Lei)型(Xing)相(Xiang)同(Tong)
4)(?)Mapper.xml文(Wen)件(Jian)中(Zhong)的(De)namespace即(Ji)是(Shi)mapper接(Jie)口(Kou)的(De)类(Lei)路(Lu)径(Jing)。(?)
答(Da):(?)第(Di)一(Yi)种(Zhong)是(Shi)使(Shi)用(Yong)< resultMap>标(Biao)签(Qian),(?)逐(Zhu)一(Yi)定(Ding)义(Yi)列(Lie)名(Ming)和(He)对(Dui)象(Xiang)属(Shu)性(Xing)名(Ming)之(Zhi)间(Jian)的(De)映(Ying)射(She)关(Guan)系(Xi)。(?)
第(Di)二(?)种(Zhong)是(Shi)使(Shi)用(Yong)sql列(Lie)的(De)别(Bie)名(Ming)功(Gong)能(Neng),(?)将(Jiang)列(Lie)别(Bie)名(Ming)书(Shu)写(Xie)为(Wei)对(Dui)象(Xiang)属(Shu)性(Xing)名(Ming),(?)比(Bi)如(Ru)T_NAME AS NAME,(?)对(Dui)象(Xiang)属(Shu)性(Xing)名(Ming)一(Yi)般(Ban)是(Shi)name,(?)小(Xiao)写(Xie),(?)但(Dan)是(Shi)列(Lie)名(Ming)不(Bu)区(Qu)分(Fen)大(Da)小(Xiao)写(Xie),(?)Mybatis会(Hui)忽(Hu)略(Lue)列(Lie)名(Ming)大(Da)小(Xiao)写(Xie),(?)智(Zhi)能(Neng)找(Zhao)到(Dao)与(Yu)之(Zhi)对(Dui)应(Ying)对(Dui)象(Xiang)属(Shu)性(Xing)名(Ming),(?)你(Ni)甚(Shen)至(Zhi)可(Ke)以(Yi)写(Xie)成(Cheng)T_NAME AS NaMe,(?)Mybatis一(Yi)样(Yang)可(Ke)以(Yi)正(Zheng)常(Chang)工(Gong)作(Zuo)。(?)
有(You)了(Liao)列(Lie)名(Ming)与(Yu)属(Shu)性(Xing)名(Ming)的(De)映(Ying)射(She)关(Guan)系(Xi)后(Hou),(?)Mybatis通(Tong)过(Guo)反(Fan)射(She)创(Chuang)建(Jian)对(Dui)象(Xiang),(?)同(Tong)时(Shi)使(Shi)用(Yong)反(Fan)射(She)给(Gei)对(Dui)象(Xiang)的(De)属(Shu)性(Xing)逐(Zhu)一(Yi)赋(Fu)值(Zhi)并(Bing)返(Fan)回(Hui),(?)那(Na)些(Xie)找(Zhao)不(Bu)到(Dao)映(Ying)射(She)关(Guan)系(Xi)的(De)属(Shu)性(Xing),(?)是(Shi)无(Wu)法(Fa)完(Wan)成(Cheng)赋(Fu)值(Zhi)的(De)。(?)
答(Da):(?)接(Jie)口(Kou)绑(Bang)定(Ding)有(You)两(Liang)种(Zhong)实(Shi)现(Xian)方(Fang)式(Shi),一(Yi)种(Zhong)是(Shi)通(Tong)过(Guo)注(Zhu)解(Jie)绑(Bang)定(Ding),就(Jiu)是(Shi)在(Zai)接(Jie)口(Kou)的(De)方(Fang)法(Fa)上(Shang)面(Mian)加(Jia)上(Shang)@Select@Update等(Deng)注(Zhu)解(Jie)里(Li)面(Mian)包(Bao)含(Han)Sql语(Yu)句(Ju)来(Lai)绑(Bang)定(Ding),另(Ling)外(Wai)一(Yi)种(Zhong)就(Jiu)是(Shi)通(Tong)过(Guo)xml里(Li)面(Mian)写(Xie)SQL来(Lai)绑(Bang)定(Ding),在(Zai)这(Zhe)种(Zhong)情(Qing)况(Kuang)下(Xia),要(Yao)指(Zhi)定(Ding)xml映(Ying)射(She)文(Wen)件(Jian)里(Li)面(Mian)的(De)namespace必(Bi)须(Xu)为(Wei)接(Jie)口(Kou)的(De)全(Quan)路(Lu)径(Jing)名(Ming).
答(Da):(?)有(You)联(Lian)合(He)查(Cha)询(Xun)和(He)嵌(Qian)套(Tao)查(Cha)询(Xun),联(Lian)合(He)查(Cha)询(Xun)是(Shi)几(Ji)个(Ge)表(Biao)联(Lian)合(He)查(Cha)询(Xun),只(Zhi)查(Cha)询(Xun)一(Yi)次(Ci),通(Tong)过(Guo)在(Zai)resultMap里(Li)面(Mian)配(Pei)置(Zhi)association节(Jie)点(Dian)配(Pei)置(Zhi)一(Yi)对(Dui)一(Yi)的(De)类(Lei)就(Jiu)可(Ke)以(Yi)完(Wan)成(Cheng);嵌(Qian)套(Tao)查(Cha)询(Xun)是(Shi)先(Xian)查(Cha)一(Yi)个(Ge)表(Biao),根(Gen)据(Ju)这(Zhe)个(Ge)表(Biao)里(Li)面(Mian)的(De)结(Jie)果(Guo)的(De)外(Wai)键(Jian)id,去(Qu)再(Zai)另(Ling)外(Wai)一(Yi)个(Ge)表(Biao)里(Li)面(Mian)查(Cha)询(Xun)数(Shu)据(Ju),也(Ye)是(Shi)通(Tong)过(Guo)association配(Pei)置(Zhi),但(Dan)另(Ling)外(Wai)一(Yi)个(Ge)表(Biao)的(De)查(Cha)询(Xun)通(Tong)过(Guo)select属(Shu)性(Xing)配(Pei)置(Zhi)。(?)
答(Da):(?)当(Dang)Sql语(Yu)句(Ju)比(Bi)较(Jiao)简(Jian)单(Dan)时(Shi)候(Hou),用(Yong)注(Zhu)解(Jie)绑(Bang)定(Ding);(?)当(Dang)SQL语(Yu)句(Ju)比(Bi)较(Jiao)复(Fu)杂(Za)时(Shi)候(Hou),用(Yong)xml绑(Bang)定(Ding),一(Yi)般(Ban)用(Yong)xml绑(Bang)定(Ding)的(De)比(Bi)较(Jiao)多(Duo)
答(Da):(?)1)(?) MyBatis把(Ba)sql语(Yu)句(Ju)从(Cong)Java源(Yuan)程(Cheng)序(Xu)中(Zhong)独(Du)立(Li)出(Chu)来(Lai),(?) 放(Fang)在(Zai)单(Dan)独(Du)的(De)XML文(Wen)件(Jian)中(Zhong)编(Bian)写(Xie),(?)给(Gei)程(Cheng)序(Xu)的(De)维(Wei)护(Hu)带(Dai)来(Lai)了(Liao)很(Hen)大(Da)便(Bian)利(Li)。(?)
2)(?) MyBatis封(Feng)装(Zhuang)了(Liao)底(Di)层(Ceng)JDBC API的(De)调(Diao)用(Yong)细(Xi)节(Jie),(?)并(Bing)能(Neng)自(Zi)动(Dong)将(Jiang)结(Jie)果(Guo)集(Ji)转(Zhuan)换(Huan)成(Cheng)Java Bean对(Dui)象(Xiang),(?)大(Da)大(Da)简(Jian)化(Hua)了(Liao)Java数(Shu)据(Ju)库(Ku)编(Bian)程(Cheng)的(De)重(Zhong)复(Fu)工(Gong)作(Zuo)。(?)
3)(?) 因(Yin)为(Wei)MyBatis需(Xu)要(Yao)程(Cheng)序(Xu)员(Yuan)自(Zi)己(Ji)去(Qu)编(Bian)写(Xie)sql语(Yu)句(Ju),(?)程(Cheng)序(Xu)员(Yuan)可(Ke)以(Yi)结(Jie)合(He)数(Shu)据(Ju)库(Ku)自(Zi)身(Shen)的(De)特(Te)点(Dian)灵(Ling)活(Huo)控(Kong)制(Zhi)sql语(Yu)句(Ju),(?) 因(Yin)此(Ci)能(Neng)够(Gou)实(Shi)现(Xian)比(Bi)Hibernate等(Deng)全(Quan)自(Zi)动(Dong)orm框(Kuang)架(Jia)更(Geng)高(Gao)的(De)查(Cha)询(Xun)效(Xiao)率(Lu),(?)能(Neng)够(Gou)完(Wan)成(Cheng)复(Fu)杂(Za)查(Cha)询(Xun)。(?)
微(Wei)服(Fu)务(Wu)框(Kuang)架(Jia)
答(Da):(?)Spring Boot的(De)优(You)点(Dian)有(You):(?)
减(Jian)少(Shao)开(Kai)发(Fa),(?)测(Ce)试(Shi)时(Shi)间(Jian)和(He)努(Nu)力(Li)。(?)
使(Shi)用(Yong)JavaConfig有(You)助(Zhu)于(Yu)避(Bi)免(Mian)使(Shi)用(Yong)XML。(?)
避(Bi)免(Mian)大(Da)量(Liang)的(De)Maven导(Dao)入(Ru)和(He)各(Ge)种(Zhong)版(Ban)本(Ben)冲(Chong)突(Tu)。(?)
提(Ti)供(Gong)意(Yi)见(Jian)发(Fa)展(Zhan)方(Fang)法(Fa)。(?)
通(Tong)过(Guo)提(Ti)供(Gong)默(Mo)认(Ren)值(Zhi)快(Kuai)速(Su)开(Kai)始(Shi)开(Kai)发(Fa)。(?)
没(Mei)有(You)单(Dan)独(Du)的(De)Web服(Fu)务(Wu)器(Qi)需(Xu)要(Yao)。(?)这(Zhe)意(Yi)味(Wei)着(Zhuo)你(Ni)不(Bu)再(Zai)需(Xu)要(Yao)启(Qi)动(Dong)Tomcat,(?)Glassfish或(Huo)其(Qi)他(Ta)任(Ren)何(He)东(Dong)西(Xi)。(?)
需(Xu)要(Yao)更(Geng)少(Shao)的(De)配(Pei)置(Zhi) 因(Yin)为(Wei)没(Mei)有(You)web.xml文(Wen)件(Jian)。(?)只(Zhi)需(Xu)添(Tian)加(Jia)用(Yong)@ Configuration注(Zhu)释(Shi)的(De)类(Lei),(?)然(Ran)后(Hou)添(Tian)加(Jia)用(Yong)@Bean注(Zhu)释(Shi)的(De)方(Fang)法(Fa),(?)Spring将(Jiang)自(Zi)动(Dong)加(Jia)载(Zai)对(Dui)象(Xiang)并(Bing)像(Xiang)以(Yi)前(Qian)一(Yi)样(Yang)对(Dui)其(Qi)进(Jin)行(Xing)管(Guan)理(Li)。(?)您(Nin)甚(Shen)至(Zhi)可(Ke)以(Yi)将(Jiang)@Autowired添(Tian)加(Jia)到(Dao)bean方(Fang)法(Fa)中(Zhong),(?)以(Yi)使(Shi)Spring自(Zi)动(Dong)装(Zhuang)入(Ru)需(Xu)要(Yao)的(De)依(Yi)赖(Lai)关(Guan)系(Xi)中(Zhong)。(?)
基(Ji)于(Yu)环(Huan)境(Jing)的(De)配(Pei)置(Zhi) 使(Shi)用(Yong)这(Zhe)些(Xie)属(Shu)性(Xing),(?)您(Nin)可(Ke)以(Yi)将(Jiang)您(Nin)正(Zheng)在(Zai)使(Shi)用(Yong)的(De)环(Huan)境(Jing)传(Chuan)递(Di)到(Dao)应(Ying)用(Yong)程(Cheng)序(Xu):(?)-Dspring.profiles.active = {enviornment}。(?)在(Zai)加(Jia)载(Zai)主(Zhu)应(Ying)用(Yong)程(Cheng)序(Xu)属(Shu)性(Xing)文(Wen)件(Jian)后(Hou),(?)Spring将(Jiang)在(Zai)((?)application{environment} .properties)(?)中(Zhong)加(Jia)载(Zai)后(Hou)续(Xu)的(De)应(Ying)用(Yong)程(Cheng)序(Xu)属(Shu)性(Xing)文(Wen)件(Jian)。(?)
答(Da):(?)这(Zhe)可(Ke)以(Yi)使(Shi)用(Yong)DEV工(Gong)具(Ju)来(Lai)实(Shi)现(Xian)。(?)通(Tong)过(Guo)这(Zhe)种(Zhong)依(Yi)赖(Lai)关(Guan)系(Xi),(?)您(Nin)可(Ke)以(Yi)节(Jie)省(Sheng)任(Ren)何(He)更(Geng)改(Gai),(?)嵌(Qian)入(Ru)式(Shi)tomcat将(Jiang)重(Zhong)新(Xin)启(Qi)动(Dong)。(?)Spring Boot有(You)一(Yi)个(Ge)开(Kai)发(Fa)工(Gong)具(Ju)((?)DevTools)(?)模(Mo)块(Kuai),(?)它(Ta)有(You)助(Zhu)于(Yu)提(Ti)高(Gao)开(Kai)发(Fa)人(Ren)员(Yuan)的(De)生(Sheng)产(Chan)力(Li)。(?)Java开(Kai)发(Fa)人(Ren)员(Yuan)面(Mian)临(Lin)的(De)一(Yi)个(Ge)主(Zhu)要(Yao)挑(Tiao)战(Zhan)是(Shi)将(Jiang)文(Wen)件(Jian)更(Geng)改(Gai)自(Zi)动(Dong)部(Bu)署(Shu)到(Dao)服(Fu)务(Wu)器(Qi)并(Bing)自(Zi)动(Dong)重(Zhong)启(Qi)服(Fu)务(Wu)器(Qi)。(?)开(Kai)发(Fa)人(Ren)员(Yuan)可(Ke)以(Yi)重(Zhong)新(Xin)加(Jia)载(Zai)Spring Boot上(Shang)的(De)更(Geng)改(Gai),(?)而(?)无(Wu)需(Xu)重(Zhong)新(Xin)启(Qi)动(Dong)服(Fu)务(Wu)器(Qi)。(?)这(Zhe)将(Jiang)消(Xiao)除(Chu)每(Mei)次(Ci)手(Shou)动(Dong)部(Bu)署(Shu)更(Geng)改(Gai)的(De)需(Xu)要(Yao)。(?)Spring Boot在(Zai)发(Fa)布(Bu)它(Ta)的(De)第(Di)一(Yi)个(Ge)版(Ban)本(Ben)时(Shi)没(Mei)有(You)这(Zhe)个(Ge)功(Gong)能(Neng)。(?)这(Zhe)是(Shi)开(Kai)发(Fa)人(Ren)员(Yuan)最(Zui)需(Xu)要(Yao)的(De)功(Gong)能(Neng)。(?)DevTools模(Mo)块(Kuai)完(Wan)全(Quan)满(Man)足(Zu)开(Kai)发(Fa)人(Ren)员(Yuan)的(De)需(Xu)求(Qiu)。(?)该(Gai)模(Mo)块(Kuai)将(Jiang)在(Zai)生(Sheng)产(Chan)环(Huan)境(Jing)中(Zhong)被(Bei)禁(Jin)用(Yong)。(?)它(Ta)还(Huan)提(Ti)供(Gong)H2数(Shu)据(Ju)库(Ku)控(Kong)制(Zhi)台(Tai)以(Yi)更(Geng)好(Hao)地(Di)测(Ce)试(Shi)应(Ying)用(Yong)程(Cheng)序(Xu)。(?)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
1、(?)单(Dan)体(Ti)架(Jia)构(Gou)
单(Dan)体(Ti)架(Jia)构(Gou)也(Ye)称(Cheng)之(Zhi)为(Wei)单(Dan)体(Ti)系(Xi)统(Tong)或(Huo)者(Zhe)是(Shi)单(Dan)体(Ti)应(Ying)用(Yong)。(?)就(Jiu)是(Shi)一(Yi)种(Zhong)把(Ba)系(Xi)统(Tong)中(Zhong)所(Suo)有(You)的(De)功(Gong)能(Neng)、(?)模(Mo)块(Kuai)耦(Ou)合(He)在(Zai)一(Yi)个(Ge)应(Ying)用(Yong)中(Zhong)的(De)架(Jia)构(Gou)方(Fang)式(Shi)。(?)
单(Dan)体(Ti)架(Jia)构(Gou)特(Te)点(Dian):(?)打(Da)包(Bao)成(Cheng)一(Yi)个(Ge)独(Du)立(Li)的(De)单(Dan)元(Yuan)(导(Dao)成(Cheng)一(Yi)个(Ge)唯(Wei)一(Yi)的(De)jar包(Bao)或(Huo)者(Zhe)是(Shi)war包(Bao)),(?)会(Hui)一(Yi)个(Ge)进(Jin)程(Cheng)的(De)方(Fang)式(Shi)来(Lai)运(Yun)行(Xing)。(?)
单(Dan)体(Ti)架(Jia)构(Gou)的(De)优(You)点(Dian)、(?)缺(Que)点(Dian)
优(You)点(Dian):(?)
项(Xiang)目(Mu)易(Yi)于(Yu)管(Guan)理(Li)
部(Bu)署(Shu)简(Jian)单(Dan)
缺(Que)点(Dian):(?)
测(Ce)试(Shi)成(Cheng)本(Ben)高(Gao)
可(Ke)伸(Shen)缩(Suo)性(Xing)差(Cha)
可(Ke)靠(Kao)性(Xing)差(Cha)
迭(Die)代(Dai)困(Kun)难(Nan)
跨(Kua)语(Yu)言(Yan)程(Cheng)度(Du)差(Cha)
团(Tuan)队(Dui)协(Xie)作(Zuo)难(Nan)
2、(?)MVC架(Jia)构(Gou)
MVC架(Jia)构(Gou)特(Te)点(Dian):(?)
MVC是(Shi)模(Mo)型(Xing)(Model)、(?)视(Shi)图(Tu)(View)、(?)控(Kong)制(Zhi)器(Qi)(Controller)3个(Ge)单(Dan)词(Ci)的(De)缩(Suo)写(Xie)。(?) 下(Xia)面(Mian)我(Wo)们(Men)从(Cong)这(Zhe)3个(Ge)方(Fang)面(Mian)来(Lai)讲(Jiang)解(Jie)MVC中(Zhong)的(De)三(San)个(Ge)要(Yao)素(Su)。(?)
Model是(Shi)指(Zhi)数(Shu)据(Ju)模(Mo)型(Xing),(?)是(Shi)对(Dui)客(Ke)观(Guan)事(Shi)物(Wu)的(De)抽(Chou)象(Xiang)。(?) 如(Ru)一(Yi)篇(Pian)博(Bo)客(Ke)文(Wen)章(Zhang),(?)我(Wo)们(Men)可(Ke)能(Neng)会(Hui)以(Yi)一(Yi)个(Ge)Post类(Lei)来(Lai)表(Biao)示(Shi),(?)那(Na)么(Me),(?)这(Zhe)个(Ge)Post类(Lei)就(Jiu)是(Shi)数(Shu)据(Ju)对(Dui)象(Xiang)。(?) 同(Tong)时(Shi),(?)博(Bo)客(Ke)文(Wen)章(Zhang)还(Huan)有(You)一(Yi)些(Xie)业(Ye)务(Wu)逻(Luo)辑(Ji),(?)如(Ru)发(Fa)布(Bu)、(?)回(Hui)收(Shou)、(?)评(Ping)论(Lun)等(Deng),(?)这(Zhe)一(Yi)般(Ban)表(Biao)现(Xian)为(Wei)类(Lei)的(De)方(Fang)法(Fa),(?)这(Zhe)也(Ye)是(Shi)model的(De)内(Nei)容(Rong)和(He)范(Fan)畴(Chou)。(?) 对(Dui)于(Yu)Model,(?)主(Zhu)要(Yao)是(Shi)数(Shu)据(Ju)、(?)业(Ye)务(Wu)逻(Luo)辑(Ji)和(He)业(Ye)务(Wu)规(Gui)则(Ze)。(?)相(Xiang)对(Dui)而(?)言(Yan),(?)这(Zhe)是(Shi)MVC中(Zhong)比(Bi)较(Jiao)稳(Wen)定(Ding)的(De)部(Bu)分(Fen),(?)一(Yi)般(Ban)成(Cheng)品(Pin)后(Hou)不(Bu)会(Hui)改(Gai)变(Bian)。(?) 开(Kai)发(Fa)初(Chu)期(Qi)的(De)最(Zui)重(Zhong)要(Yao)任(Ren)务(Wu),(?)主(Zhu)要(Yao)也(Ye)是(Shi)实(Shi)现(Xian)Model的(De)部(Bu)分(Fen)。(?)这(Zhe)一(Yi)部(Bu)分(Fen)写(Xie)得(De)好(Hao),(?)后(Hou)面(Mian)就(Jiu)可(Ke)以(Yi)改(Gai)得(De)少(Shao),(?)开(Kai)发(Fa)起(Qi)来(Lai)就(Jiu)快(Kuai)。(?)
View是(Shi)指(Zhi)视(Shi)图(Tu),(?)也(Ye)就(Jiu)是(Shi)呈(Cheng)现(Xian)给(Gei)用(Yong)户(Hu)的(De)一(Yi)个(Ge)界(Jie)面(Mian),(?)是(Shi)model的(De)具(Ju)体(Ti)表(Biao)现(Xian)形(Xing)式(Shi),(?)也(Ye)是(Shi)收(Shou)集(Ji)用(Yong)户(Hu)输(Shu)入(Ru)的(De)地(Di)方(Fang)。(?) 如(Ru)你(Ni)在(Zai)某(Mou)个(Ge)博(Bo)客(Ke)上(Shang)看(Kan)到(Dao)的(De)某(Mou)一(Yi)篇(Pian)文(Wen)章(Zhang),(?)就(Jiu)是(Shi)某(Mou)个(Ge)Post类(Lei)的(De)表(Biao)现(Xian)形(Xing)式(Shi)。(?) View的(De)目(Mu)的(De)在(Zai)于(Yu)提(Ti)供(Gong)与(Yu)用(Yong)户(Hu)交(Jiao)互(Hu)的(De)界(Jie)面(Mian)。(?)换(Huan)句(Ju)话(Hua)说(Shuo),(?)对(Dui)于(Yu)用(Yong)户(Hu)而(?)言(Yan),(?)只(Zhi)有(You)View是(Shi)可(Ke)见(Jian)的(De)、(?)可(Ke)操(Cao)作(Zuo)的(De)。(?) 事(Shi)实(Shi)上(Shang)也(Ye)是(Shi)如(Ru)此(Ci),(?)你(Ni)不(Bu)会(Hui)让(Rang)用(Yong)户(Hu)看(Kan)到(Dao)Model,(?)更(Geng)不(Bu)会(Hui)让(Rang)他(Ta)直(Zhi)接(Jie)操(Cao)作(Zuo)Model。(?) 你(Ni)只(Zhi)会(Hui)让(Rang)用(Yong)户(Hu)看(Kan)到(Dao)你(Ni)想(Xiang)让(Rang)他(Ta)看(Kan)的(De)内(Nei)容(Rong)。(?) 这(Zhe)就(Jiu)是(Shi)View要(Yao)做(Zuo)的(De)事(Shi),(?)他(Ta)往(Wang)往(Wang)是(Shi)MVC中(Zhong)变(Bian)化(Hua)频(Pin)繁(Fan)的(De)部(Bu)分(Fen),(?)也(Ye)是(Shi)客(Ke)户(Hu)经(Jing)常(Chang)要(Yao)求(Qiu)改(Gai)来(Lai)改(Gai)去(Qu)的(De)地(Di)方(Fang)。(?) 今(Jin)天(Tian)你(Ni)可(Ke)能(Neng)会(Hui)以(Yi)一(Yi)种(Zhong)形(Xing)式(Shi)来(Lai)展(Zhan)示(Shi)你(Ni)的(De)博(Bo)文(Wen),(?)明(Ming)天(Tian)可(Ke)能(Neng)就(Jiu)变(Bian)成(Cheng)别(Bie)的(De)表(Biao)现(Xian)形(Xing)式(Shi)了(Liao)。(?)
Contorller指(Zhi)的(De)是(Shi)控(Kong)制(Zhi)器(Qi),(?)主(Zhu)要(Yao)负(Fu)责(Ze)与(Yu)model和(He)view打(Da)交(Jiao)道(Dao)。(?) 换(Huan)句(Ju)话(Hua)说(Shuo),(?)model和(He)view之(Zhi)间(Jian)一(Yi)般(Ban)不(Bu)直(Zhi)接(Jie)打(Da)交(Jiao)道(Dao),(?)他(Ta)们(Men)老(Lao)死(Si)不(Bu)相(Xiang)往(Wang)来(Lai)。(?)view中(Zhong)不(Bu)会(Hui)对(Dui)model作(Zuo)任(Ren)何(He)操(Cao)作(Zuo),(?) model不(Bu)会(Hui)输(Shu)出(Chu)任(Ren)何(He)用(Yong)于(Yu)表(Biao)现(Xian)的(De)东(Dong)西(Xi),(?)如(Ru)HTML代(Dai)码(Ma)等(Deng)。(?)这(Zhe)俩(Lia)甩(Shuai)手(Shou)不(Bu)干(Gan)了(Liao),(?)那(Na)总(Zong)得(De)有(You)人(Ren)来(Lai)干(Gan)吧(Ba),(?)只(Zhi)能(Neng)Controller上(Shang)了(Liao)。(?) Contorller用(Yong)于(Yu)决(Jue)定(Ding)使(Shi)用(Yong)哪(Na)些(Xie)Model,(?)对(Dui)Model执(Zhi)行(Xing)什(Shi)么(Me)操(Cao)作(Zuo),(?)为(Wei)视(Shi)图(Tu)准(Zhun)备(Bei)哪(Na)些(Xie)数(Shu)据(Ju),(?)是(Shi)MVC中(Zhong)沟(Gou)通(Tong)的(De)桥(Qiao)梁(Liang)。(?)
MVC架(Jia)构(Gou)优(You)缺(Que)点(Dian)
优(You)点(Dian):(?)
各(Ge)施(Shi)其(Qi)职(Zhi),(?)互(Hu)不(Bu)干(Gan)涉(She)。(?)
在(Zai)MVC模(Mo)式(Shi)中(Zhong),(?)三(San)个(Ge)层(Ceng)各(Ge)施(Shi)其(Qi)职(Zhi),(?)所(Suo)以(Yi)如(Ru)果(Guo)一(Yi)旦(Dan)哪(Na)一(Yi)层(Ceng)的(De)需(Xu)求(Qiu)发(Fa)生(Sheng)了(Liao)变(Bian)化(Hua),(?)就(Jiu)只(Zhi)需(Xu)要(Yao)更(Geng)改(Gai)相(Xiang)应(Ying)的(De)层(Ceng)中(Zhong)的(De)代(Dai)码(Ma)而(?)不(Bu)会(Hui)影(Ying)响(Xiang)到(Dao)其(Qi)它(Ta)层(Ceng)中(Zhong)的(De)代(Dai)码(Ma)。(?)
有(You)利(Li)于(Yu)开(Kai)发(Fa)中(Zhong)的(De)分(Fen)工(Gong)。(?)
在(Zai)MVC模(Mo)式(Shi)中(Zhong),(?)由(You)于(Yu)按(An)层(Ceng)把(Ba)系(Xi)统(Tong)分(Fen)开(Kai),(?)那(Na)么(Me)就(Jiu)能(Neng)更(Geng)好(Hao)的(De)实(Shi)现(Xian)开(Kai)发(Fa)中(Zhong)的(De)分(Fen)工(Gong)。(?)网(Wang)页(Ye)设(She)计(Ji)人(Ren)员(Yuan)可(Ke)以(Yi)进(Jin)行(Xing)开(Kai)发(Fa)视(Shi)图(Tu)层(Ceng)中(Zhong)的(De)JSP,(?)对(Dui)业(Ye)务(Wu)熟(Shu)悉(Xi)的(De)开(Kai)发(Fa)人(Ren)员(Yuan)可(Ke)开(Kai)发(Fa)业(Ye)务(Wu)层(Ceng),(?)而(?)其(Qi)它(Ta)开(Kai)发(Fa)人(Ren)员(Yuan)可(Ke)开(Kai)发(Fa)控(Kong)制(Zhi)层(Ceng)。(?)
有(You)利(Li)于(Yu)组(Zu)件(Jian)的(De)重(Zhong)用(Yong)。(?)
分(Fen)层(Ceng)后(Hou)更(Geng)有(You)利(Li)于(Yu)组(Zu)件(Jian)的(De)重(Zhong)用(Yong)。(?)如(Ru)控(Kong)制(Zhi)层(Ceng)可(Ke)独(Du)立(Li)成(Cheng)一(Yi)个(Ge)能(Neng)用(Yong)的(De)组(Zu)件(Jian),(?)视(Shi)图(Tu)层(Ceng)也(Ye)可(Ke)做(Zuo)成(Cheng)通(Tong)用(Yong)的(De)操(Cao)作(Zuo)界(Jie)面(Mian)。(?)
缺(Que)点(Dian):(?)
增(Zeng)加(Jia)了(Liao)系(Xi)统(Tong)结(Jie)构(Gou)和(He)实(Shi)现(Xian)的(De)复(Fu)杂(Za)性(Xing)。(?)
视(Shi)图(Tu)与(Yu)控(Kong)制(Zhi)器(Qi)间(Jian)的(De)过(Guo)于(Yu)紧(Jin)密(Mi)的(De)连(Lian)接(Jie)。(?)
视(Shi)图(Tu)对(Dui)模(Mo)型(Xing)数(Shu)据(Ju)的(De)低(Di)效(Xiao)率(Lu)访(Fang)问(Wen)。(?)
3、(?)面(Mian)向(Xiang)服(Fu)务(Wu)架(Jia)构(Gou)(SOA)
面(Mian)向(Xiang)服(Fu)务(Wu)的(De)架(Jia)构(Gou)((?)SOA)(?)是(Shi)一(Yi)个(Ge)组(Zu)件(Jian)模(Mo)型(Xing),(?)它(Ta)将(Jiang)应(Ying)用(Yong)程(Cheng)序(Xu)拆(Chai)分(Fen)成(Cheng)不(Bu)同(Tong)功(Gong)能(Neng)单(Dan)元(Yuan)((?)称(Cheng)为(Wei)服(Fu)务(Wu))(?)通(Tong)过(Guo)这(Zhe)些(Xie)服(Fu)务(Wu)之(Zhi)间(Jian)定(Ding)义(Yi)良(Liang)好(Hao)的(De)接(Jie)口(Kou)和(He)契(Qi)约(Yue)联(Lian)系(Xi)起(Qi)来(Lai)。(?)接(Jie)口(Kou)是(Shi)采(Cai)用(Yong)中(Zhong)立(Li)的(De)方(Fang)式(Shi)进(Jin)行(Xing)定(Ding)义(Yi)的(De),(?)它(Ta)应(Ying)该(Gai)独(Du)立(Li)于(Yu)实(Shi)现(Xian)服(Fu)务(Wu)的(De)硬(Ying)件(Jian)平(Ping)台(Tai)、(?)操(Cao)作(Zuo)系(Xi)统(Tong)和(He)编(Bian)程(Cheng)语(Yu)言(Yan)。(?)这(Zhe)使(Shi)得(De)构(Gou)建(Jian)在(Zai)各(Ge)种(Zhong)各(Ge)样(Yang)的(De)系(Xi)统(Tong)中(Zhong)的(De)服(Fu)务(Wu)可(Ke)以(Yi)以(Yi)一(Yi)种(Zhong)统(Tong)一(Yi)和(He)通(Tong)用(Yong)的(De)方(Fang)式(Shi)进(Jin)行(Xing)交(Jiao)互(Hu)。(?)
面(Mian)向(Xiang)服(Fu)务(Wu)架(Jia)构(Gou)特(Te)点(Dian):(?)
系(Xi)统(Tong)是(Shi)由(You)多(Duo)个(Ge)服(Fu)务(Wu)构(Gou)成(Cheng)
每(Mei)个(Ge)服(Fu)务(Wu)可(Ke)以(Yi)单(Dan)独(Du)独(Du)立(Li)部(Bu)署(Shu)
每(Mei)个(Ge)服(Fu)务(Wu)之(Zhi)间(Jian)是(Shi)松(Song)耦(Ou)合(He)的(De)。(?)服(Fu)务(Wu)内(Nei)部(Bu)是(Shi)高(Gao)内(Nei)聚(Ju)的(De),(?)外(Wai)部(Bu)是(Shi)低(Di)耦(Ou)合(He)的(De)。(?)高(Gao)内(Nei)聚(Ju)就(Jiu)是(Shi)每(Mei)个(Ge)服(Fu)务(Wu)只(Zhi)关(Guan)注(Zhu)完(Wan)成(Cheng)一(Yi)个(Ge)功(Gong)能(Neng)。(?)
服(Fu)务(Wu)的(De)优(You)点(Dian)、(?)缺(Que)点(Dian)
优(You)点(Dian):(?)
测(Ce)试(Shi)容(Rong)易(Yi)
可(Ke)伸(Shen)缩(Suo)性(Xing)强(Qiang)
可(Ke)靠(Kao)性(Xing)强(Qiang)
跨(Kua)语(Yu)言(Yan)程(Cheng)度(Du)会(Hui)更(Geng)加(Jia)灵(Ling)活(Huo)
团(Tuan)队(Dui)协(Xie)作(Zuo)容(Rong)易(Yi)
系(Xi)统(Tong)迭(Die)代(Dai)容(Rong)易(Yi)
缺(Que)点(Dian):(?)
运(Yun)维(Wei)成(Cheng)本(Ben)过(Guo)高(Gao),(?)部(Bu)署(Shu)数(Shu)量(Liang)较(Jiao)多(Duo)
接(Jie)口(Kou)兼(Jian)容(Rong)多(Duo)版(Ban)本(Ben)
分(Fen)布(Bu)式(Shi)系(Xi)统(Tong)的(De)复(Fu)杂(Za)性(Xing)
分(Fen)布(Bu)式(Shi)事(Shi)务(Wu)
业(Ye)界(Jie)对(Dui)于(Yu)可(Ke)扩(Kuo)展(Zhan)的(De)系(Xi)统(Tong)架(Jia)构(Gou)设(She)计(Ji)有(You)一(Yi)个(Ge)朴(Pu)素(Su)的(De)理(Li)念(Nian),就(Jiu)是(Shi):(?)通(Tong)过(Guo)加(Jia)机(Ji)器(Qi)就(Jiu)可(Ke)以(Yi)解(Jie)决(Jue)容(Rong)量(Liang)和(He)可(Ke)用(Yong)性(Xing)问(Wen)题(Ti)。(?)(如(Ru)果(Guo)一(Yi)台(Tai)不(Bu)行(Xing)那(Na)就(Jiu)两(Liang)台(Tai))。(?)
我(Wo)是(Shi)个(Ge)段(Duan)子(Zi):(?)((?)世(Shi)界(Jie)上(Shang)没(Mei)有(You)什(Shi)么(Me)事(Shi)是(Shi)一(Yi)顿(Dun)烧(Shao)烤(Kao)不(Bu)能(Neng)解(Jie)决(Jue)的(De)。(?)如(Ru)果(Guo)有(You),(?)那(Na)就(Jiu)两(Liang)顿(Dun)。(?))(?)
这(Zhe)一(Yi)理(Li)念(Nian)在(Zai)“(?)云(Yun)计(Ji)算(Suan)”(?)概(Gai)念(Nian)疯(Feng)狂(Kuang)流(Liu)行(Xing)的(De)今(Jin)天(Tian),(?)得(De)到(Dao)了(Liao)广(Guang)泛(Fan)的(De)认(Ren)可(Ke)!(?)对(Dui)于(Yu)一(Yi)个(Ge)规(Gui)模(Mo)迅(Xun)速(Su)增(Zeng)长(Chang)的(De)系(Xi)统(Tong)而(?)言(Yan),(?)容(Rong)量(Liang)和(He)性(Xing)能(Neng)问(Wen)题(Ti)当(Dang)然(Ran)是(Shi)首(Shou)当(Dang)其(Qi)冲(Chong)的(De)。(?)但(Dan)是(Shi)随(Sui)着(Zhuo)时(Shi)间(Jian)的(De)向(Xiang)前(Qian),(?)系(Xi)统(Tong)规(Gui)模(Mo)的(De)增(Zeng)长(Chang),(?)除(Chu)了(Liao)面(Mian)对(Dui)性(Xing)能(Neng)与(Yu)容(Rong)量(Liang)的(De)问(Wen)题(Ti)外(Wai),(?)还(Huan)需(Xu)要(Yao)面(Mian)对(Dui)功(Gong)能(Neng)与(Yu)模(Mo)块(Kuai)数(Shu)量(Liang)上(Shang)的(De)增(Zeng)长(Chang)带(Dai)来(Lai)的(De)系(Xi)统(Tong)复(Fu)杂(Za)性(Xing)问(Wen)题(Ti)以(Yi)及(Ji)业(Ye)务(Wu)的(De)变(Bian)化(Hua)带(Dai)来(Lai)的(De)提(Ti)供(Gong)差(Cha)异(Yi)化(Hua)服(Fu)务(Wu)问(Wen)题(Ti)。(?)而(?)许(Xu)多(Duo)系(Xi)统(Tong),(?)在(Zai)架(Jia)构(Gou)设(She)计(Ji)时(Shi)并(Bing)未(Wei)充(Chong)分(Fen)考(Kao)虑(Lu)到(Dao)这(Zhe)些(Xie)问(Wen)题(Ti),(?)导(Dao)致(Zhi)系(Xi)统(Tong)的(De)重(Zhong)构(Gou)成(Cheng)为(Wei)常(Chang)态(Tai),(?)从(Cong)而(?)影(Ying)响(Xiang)业(Ye)务(Wu)交(Jiao)付(Fu)能(Neng)力(Li),(?)还(Huan)浪(Lang)费(Fei)人(Ren)力(Li)财(Cai)力(Li)!(?)对(Dui)此(Ci),(?)《(?)可(Ke)扩(Kuo)展(Zhan)的(De)艺(Yi)术(Shu)》(?)一(Yi)书(Shu)提(Ti)出(Chu)了(Liao)一(Yi)个(Ge)更(Geng)加(Jia)系(Xi)统(Tong)的(De)可(Ke)扩(Kuo)展(Zhan)模(Mo)型(Xing)—(?)—(?)AKF可(Ke)扩(Kuo)展(Zhan)立(Li)方(Fang)((?)Scalability Cube)(?) 。(?)这(Zhe)个(Ge)立(Li)方(Fang)体(Ti)中(Zhong)沿(Yan)着(Zhuo)三(San)个(Ge)坐(Zuo)标(Biao)轴(Zhou)设(She)置(Zhi)分(Fen)别(Bie)为(Wei):(?)X、(?)Y、(?)Z。(?)
Y轴(Zhou)扩(Kuo)展(Zhan)会(Hui)将(Jiang)庞(Pang)大(Da)的(De)整(Zheng)体(Ti)应(Ying)用(Yong)拆(Chai)分(Fen)为(Wei)多(Duo)个(Ge)服(Fu)务(Wu)。(?)每(Mei)个(Ge)服(Fu)务(Wu)实(Shi)现(Xian)一(Yi)组(Zu)相(Xiang)关(Guan)的(De)功(Gong)能(Neng),(?)如(Ru)订(Ding)单(Dan)管(Guan)理(Li)、(?)客(Ke)户(Hu)管(Guan)理(Li)等(Deng)。(?)在(Zai)工(Gong)程(Cheng)上(Shang)常(Chang)见(Jian)的(De)方(Fang)案(An)是(Shi)服(Fu)务(Wu)化(Hua)架(Jia)构(Gou)(SOA)。(?)比(Bi)如(Ru)对(Dui)于(Yu)一(Yi)个(Ge)电(Dian)子(Zi)商(Shang)务(Wu)平(Ping)台(Tai),(?)我(Wo)们(Men)可(Ke)以(Yi)拆(Chai)分(Fen)成(Cheng)不(Bu)同(Tong)的(De)服(Fu)务(Wu)
X轴(Zhou)扩(Kuo)展(Zhan)与(Yu)我(Wo)们(Men)前(Qian)面(Mian)朴(Pu)素(Su)理(Li)念(Nian)是(Shi)一(Yi)致(Zhi)的(De),(?)通(Tong)过(Guo)绝(Jue)对(Dui)平(Ping)等(Deng)地(Di)复(Fu)制(Zhi)服(Fu)务(Wu)与(Yu)数(Shu)据(Ju),(?)以(Yi)解(Jie)决(Jue)容(Rong)量(Liang)和(He)可(Ke)用(Yong)性(Xing)的(De)问(Wen)题(Ti)。(?)其(Qi)实(Shi)就(Jiu)是(Shi)将(Jiang)微(Wei)服(Fu)务(Wu)运(Yun)行(Xing)多(Duo)个(Ge)实(Shi)例(Li),(?)做(Zuo)集(Ji)群(Qun)加(Jia)负(Fu)载(Zai)均(Jun)衡(Heng)的(De)模(Mo)式(Shi)。(?)
Z轴(Zhou)扩(Kuo)展(Zhan)通(Tong)常(Chang)是(Shi)指(Zhi)基(Ji)于(Yu)请(Qing)求(Qiu)者(Zhe)或(Huo)用(Yong)户(Hu)独(Du)特(Te)的(De)需(Xu)求(Qiu),(?)进(Jin)行(Xing)系(Xi)统(Tong)划(Hua)分(Fen),(?)并(Bing)使(Shi)得(De)划(Hua)分(Fen)出(Chu)来(Lai)的(De)子(Zi)系(Xi)统(Tong)是(Shi)相(Xiang)互(Hu)隔(Ge)离(Li)但(Dan)又(You)是(Shi)完(Wan)整(Zheng)的(De)。(?)以(Yi)生(Sheng)产(Chan)汽(Qi)车(Che)的(De)工(Gong)厂(Chang)来(Lai)举(Ju)例(Li):(?)福(Fu)特(Te)公(Gong)司(Si)为(Wei)了(Liao)发(Fa)展(Zhan)在(Zai)中(Zhong)国(Guo)的(De)业(Ye)务(Wu),(?)或(Huo)者(Zhe)利(Li)用(Yong)中(Zhong)国(Guo)的(De)廉(Lian)价(Jia)劳(Lao)动(Dong)力(Li),(?)在(Zai)中(Zhong)国(Guo)建(Jian)立(Li)一(Yi)个(Ge)完(Wan)整(Zheng)的(De)子(Zi)工(Gong)厂(Chang),(?)与(Yu)美(Mei)国(Guo)工(Gong)厂(Chang)一(Yi)样(Yang),(?)负(Fu)责(Ze)完(Wan)整(Zheng)的(De)汽(Qi)车(Che)生(Sheng)产(Chan)。(?)这(Zhe)就(Jiu)是(Shi)一(Yi)种(Zhong)Z轴(Zhou)扩(Kuo)展(Zhan)。(?)
Spring Cloud是(Shi)一(Yi)个(Ge)微(Wei)服(Fu)务(Wu)框(Kuang)架(Jia),(?)相(Xiang)比(Bi)Dubbo等(Deng)RPC框(Kuang)架(Jia),Spring Cloud提(Ti)供(Gong)的(De)全(Quan)套(Tao)的(De)分(Fen)布(Bu)式(Shi)系(Xi)统(Tong)解(Jie)决(Jue)方(Fang)案(An)。(?)
Spring Cloud对(Dui)微(Wei)服(Fu)务(Wu)基(Ji)础(Chu)框(Kuang)架(Jia)Netflix的(De)多(Duo)个(Ge)开(Kai)源(Yuan)组(Zu)件(Jian)进(Jin)行(Xing)了(Liao)封(Feng)装(Zhuang),(?)同(Tong)时(Shi)又(You)实(Shi)现(Xian)了(Liao)和(He)云(Yun)端(Duan)平(Ping)台(Tai)以(Yi)及(Ji)和(He)Spring Boot开(Kai)发(Fa)框(Kuang)架(Jia)的(De)集(Ji)成(Cheng)。(?)
Spring Cloud为(Wei)微(Wei)服(Fu)务(Wu)架(Jia)构(Gou)开(Kai)发(Fa)涉(She)及(Ji)的(De)配(Pei)置(Zhi)管(Guan)理(Li),(?)服(Fu)务(Wu)治(Zhi)理(Li),(?)熔(Rong)断(Duan)机(Ji)制(Zhi),(?)智(Zhi)能(Neng)路(Lu)由(You),(?)微(Wei)代(Dai)理(Li),(?)控(Kong)制(Zhi)总(Zong)线(Xian),(?)一(Yi)次(Ci)性(Xing)token,(?)全(Quan)局(Ju)一(Yi)致(Zhi)性(Xing)锁(Suo),(?)leader选(Xuan)举(Ju),(?)分(Fen)布(Bu)式(Shi)session,(?)集(Ji)群(Qun)状(Zhuang)态(Tai)管(Guan)理(Li)等(Deng)操(Cao)作(Zuo)提(Ti)供(Gong)了(Liao)一(Yi)种(Zhong)简(Jian)单(Dan)的(De)开(Kai)发(Fa)方(Fang)式(Shi)。(?)
Spring Cloud 为(Wei)开(Kai)发(Fa)者(Zhe)提(Ti)供(Gong)了(Liao)快(Kuai)速(Su)构(Gou)建(Jian)分(Fen)布(Bu)式(Shi)系(Xi)统(Tong)的(De)工(Gong)具(Ju),(?)开(Kai)发(Fa)者(Zhe)可(Ke)以(Yi)快(Kuai)速(Su)的(De)启(Qi)动(Dong)服(Fu)务(Wu)或(Huo)构(Gou)建(Jian)应(Ying)用(Yong)、(?)同(Tong)时(Shi)能(Neng)够(Gou)快(Kuai)速(Su)和(He)云(Yun)平(Ping)台(Tai)资(Zi)源(Yuan)进(Jin)行(Xing)对(Dui)接(Jie)

Eureka是(Shi)Netflix开(Kai)发(Fa)的(De)服(Fu)务(Wu)发(Fa)现(Xian)组(Zu)件(Jian),(?)本(Ben)身(Shen)是(Shi)一(Yi)个(Ge)基(Ji)于(Yu)REST的(De)服(Fu)务(Wu)。(?)Spring Cloud将(Jiang)它(Ta)集(Ji)成(Cheng)在(Zai)其(Qi)子(Zi)项(Xiang)目(Mu)spring-cloud-netflix中(Zhong),(?)以(Yi)实(Shi)现(Xian)Spring Cloud的(De)服(Fu)务(Wu)注(Zhu)册(Ce)于(Yu)发(Fa)现(Xian),(?)同(Tong)时(Shi)还(Huan)提(Ti)供(Gong)了(Liao)负(Fu)载(Zai)均(Jun)衡(Heng)、(?)故(Gu)障(Zhang)转(Zhuan)移(Yi)等(Deng)能(Neng)力(Li)。(?)
1、(?)Eureka Server
通(Tong)过(Guo)Register、(?)Get、(?)Renew等(Deng)接(Jie)口(Kou)提(Ti)供(Gong)服(Fu)务(Wu)的(De)注(Zhu)册(Ce)和(He)发(Fa)现(Xian)。(?)
2、(?)Application Service (Service Provider)
服(Fu)务(Wu)提(Ti)供(Gong)方(Fang)
把(Ba)自(Zi)身(Shen)的(De)服(Fu)务(Wu)实(Shi)例(Li)注(Zhu)册(Ce)到(Dao)Eureka Server中(Zhong)
3、(?)Application Client (Service Consumer)
服(Fu)务(Wu)调(Diao)用(Yong)方(Fang)
通(Tong)过(Guo)Eureka Server 获(Huo)取(Qu)服(Fu)务(Wu)列(Lie)表(Biao),(?)消(Xiao)费(Fei)服(Fu)务(Wu)。(?)
1.Ribbon 是(Shi)一(Yi)个(Ge)基(Ji)于(Yu)Http和(He)TCP的(De)客(Ke)服(Fu)端(Duan)负(Fu)载(Zai)均(Jun)衡(Heng)工(Gong)具(Ju),(?)它(Ta)是(Shi)基(Ji)于(Yu)Netflix Ribbon实(Shi)现(Xian)的(De)。(?)
2.它(Ta)不(Bu)像(Xiang)spring cloud服(Fu)务(Wu)注(Zhu)册(Ce)中(Zhong)心(Xin)、(?)配(Pei)置(Zhi)中(Zhong)心(Xin)、(?)API网(Wang)关(Guan)那(Na)样(Yang)独(Du)立(Li)部(Bu)署(Shu),(?)但(Dan)是(Shi)它(Ta)几(Ji)乎(Hu)存(Cun)在(Zai)于(Yu)每(Mei)个(Ge)spring cloud 微(Wei)服(Fu)务(Wu)中(Zhong)。(?)包(Bao)括(Kuo)feign提(Ti)供(Gong)的(De)声(Sheng)明(Ming)式(Shi)服(Fu)务(Wu)调(Diao)用(Yong)也(Ye)是(Shi)基(Ji)于(Yu)该(Gai)Ribbon实(Shi)现(Xian)的(De)。(?)
3.ribbon默(Mo)认(Ren)提(Ti)供(Gong)很(Hen)多(Duo)种(Zhong)负(Fu)载(Zai)均(Jun)衡(Heng)算(Suan)法(Fa),(?)例(Li)如(Ru) 轮(Lun)询(Xun)、(?)随(Sui)机(Ji) 等(Deng)等(Deng)。(?)甚(Shen)至(Zhi)包(Bao)含(Han)自(Zi)定(Ding)义(Yi)的(De)负(Fu)载(Zai)均(Jun)衡(Heng)算(Suan)法(Fa)。(?)
目(Mu)前(Qian)业(Ye)界(Jie)主(Zhu)流(Liu)的(De)负(Fu)载(Zai)均(Jun)衡(Heng)方(Fang)案(An)可(Ke)分(Fen)成(Cheng)两(Liang)类(Lei):(?)
第(Di)一(Yi)类(Lei):(?)集(Ji)中(Zhong)式(Shi)负(Fu)载(Zai)均(Jun)衡(Heng), 即(Ji)在(Zai)consumer和(He)provider之(Zhi)间(Jian)使(Shi)用(Yong)独(Du)立(Li)的(De)负(Fu)载(Zai)均(Jun)衡(Heng)设(She)施(Shi)(可(Ke)以(Yi)是(Shi)硬(Ying)件(Jian),(?)如(Ru)F5, 也(Ye)可(Ke)以(Yi)是(Shi)软(Ruan)件(Jian),(?)如(Ru)nginx), 由(You)该(Gai)设(She)施(Shi)负(Fu)责(Ze)把(Ba) 访(Fang)问(Wen)请(Qing)求(Qiu) 通(Tong)过(Guo)某(Mou)种(Zhong)策(Ce)略(Lue)转(Zhuan)发(Fa)至(Zhi)provider;(?)
第(Di)二(?)类(Lei):(?)进(Jin)程(Cheng)内(Nei)负(Fu)载(Zai)均(Jun)衡(Heng),(?)将(Jiang)负(Fu)载(Zai)均(Jun)衡(Heng)逻(Luo)辑(Ji)集(Ji)成(Cheng)到(Dao)consumer,(?)consumer从(Cong)服(Fu)务(Wu)注(Zhu)册(Ce)中(Zhong)心(Xin)获(Huo)知(Zhi)有(You)哪(Na)些(Xie)地(Di)址(Zhi)可(Ke)用(Yong),(?)然(Ran)后(Hou)自(Zi)己(Ji)再(Zai)从(Cong)这(Zhe)些(Xie)地(Di)址(Zhi)中(Zhong)选(Xuan)择(Ze)出(Chu)一(Yi)个(Ge)合(He)适(Shi)的(De)provider。(?)
Ribbon就(Jiu)属(Shu)于(Yu)后(Hou)者(Zhe),(?)它(Ta)只(Zhi)是(Shi)一(Yi)个(Ge)类(Lei)库(Ku),(?)集(Ji)成(Cheng)于(Yu)consumer进(Jin)程(Cheng),(?)consumer通(Tong)过(Guo)它(Ta)来(Lai)获(Huo)取(Qu)到(Dao)provider的(De)地(Di)址(Zhi)。(?)
id | 策(Ce)略(Lue)名(Ming)称(Cheng) | 策(Ce)略(Lue)对(Dui)应(Ying)的(De)类(Lei)名(Ming) | 实(Shi)现(Xian)原(Yuan)理(Li) |
1 | 轮(Lun)询(Xun)策(Ce)略(Lue)((?)默(Mo)认(Ren))(?) | RoundRobinRule | 轮(Lun)询(Xun)策(Ce)略(Lue)表(Biao)示(Shi)每(Mei)次(Ci)都(Du)顺(Shun)序(Xu)取(Qu)下(Xia)一(Yi)个(Ge)provider,(?)比(Bi)如(Ru)一(Yi)共(Gong)有(You)5个(Ge)provider,(?)第(Di)1次(Ci)取(Qu)第(Di)1个(Ge),(?)第(Di)2次(Ci)取(Qu)第(Di)2个(Ge),(?)第(Di)3次(Ci)取(Qu)第(Di)3个(Ge),(?)以(Yi)此(Ci)类(Lei)推(Tui) |
2 | 权(Quan)重(Zhong)轮(Lun)询(Xun)策(Ce)略(Lue) | WeightedResponseTimeRule | 1.根(Gen)据(Ju)每(Mei)个(Ge)provider的(De)响(Xiang)应(Ying)时(Shi)间(Jian)分(Fen)配(Pei)一(Yi)个(Ge)权(Quan)重(Zhong),(?)响(Xiang)应(Ying)时(Shi)间(Jian)越(Yue)长(Chang),(?)权(Quan)重(Zhong)越(Yue)小(Xiao),(?)被(Bei)选(Xuan)中(Zhong)的(De)可(Ke)能(Neng)性(Xing)越(Yue)低(Di)。(?) 2.原(Yuan)理(Li):(?)一(Yi)开(Kai)始(Shi)为(Wei)轮(Lun)询(Xun)策(Ce)略(Lue),(?)并(Bing)开(Kai)启(Qi)一(Yi)个(Ge)计(Ji)时(Shi)器(Qi),(?)每(Mei)30秒(Miao)收(Shou)集(Ji)一(Yi)次(Ci)每(Mei)个(Ge)provider的(De)平(Ping)均(Jun)响(Xiang)应(Ying)时(Shi)间(Jian),(?)当(Dang)信(Xin)息(Xi)足(Zu)够(Gou)时(Shi),(?)给(Gei)每(Mei)个(Ge)provider附(Fu)上(Shang)一(Yi)个(Ge)权(Quan)重(Zhong),(?)并(Bing)按(An)权(Quan)重(Zhong)随(Sui)机(Ji)选(Xuan)择(Ze)provider,(?)高(Gao)权(Quan)越(Yue)重(Zhong)的(De)provider会(Hui)被(Bei)高(Gao)概(Gai)率(Lu)选(Xuan)中(Zhong)。(?) |
3 | 随(Sui)机(Ji)策(Ce)略(Lue) | RandomRule | 从(Cong)provider列(Lie)表(Biao)中(Zhong)随(Sui)机(Ji)选(Xuan)择(Ze)一(Yi)个(Ge)provider |
4 | 最(Zui)少(Shao)并(Bing)发(Fa)数(Shu)策(Ce)略(Lue) | BestAvailableRule | 选(Xuan)择(Ze)正(Zheng)在(Zai)请(Qing)求(Qiu)中(Zhong)的(De)并(Bing)发(Fa)数(Shu)最(Zui)小(Xiao)的(De)provider,(?)除(Chu)非(Fei)这(Zhe)个(Ge)provider在(Zai)熔(Rong)断(Duan)中(Zhong)。(?) |
5 | 在(Zai)“(?)选(Xuan)定(Ding)的(De)负(Fu)载(Zai)均(Jun)衡(Heng)策(Ce)略(Lue)”(?)基(Ji)础(Chu)上(Shang)进(Jin)行(Xing)重(Zhong)试(Shi)机(Ji)制(Zhi) | RetryRule | 1.“(?)选(Xuan)定(Ding)的(De)负(Fu)载(Zai)均(Jun)衡(Heng)策(Ce)略(Lue)”(?)这(Zhe)个(Ge)策(Ce)略(Lue)是(Shi)轮(Lun)询(Xun)策(Ce)略(Lue)RoundRobinRule 2.该(Gai)重(Zhong)试(Shi)策(Ce)略(Lue)先(Xian)设(She)定(Ding)一(Yi)个(Ge)阈(Yu)值(Zhi)时(Shi)间(Jian)段(Duan),(?)如(Ru)果(Guo)在(Zai)这(Zhe)个(Ge)阈(Yu)值(Zhi)时(Shi)间(Jian)段(Duan)内(Nei)当(Dang)选(Xuan)择(Ze)provider不(Bu)成(Cheng)功(Gong),(?)则(Ze)一(Yi)直(Zhi)尝(Chang)试(Shi)采(Cai)用(Yong)“(?)选(Xuan)定(Ding)的(De)负(Fu)载(Zai)均(Jun)衡(Heng)策(Ce)略(Lue):(?)轮(Lun)询(Xun)策(Ce)略(Lue)”(?)最(Zui)后(Hou)选(Xuan)择(Ze)一(Yi)个(Ge)可(Ke)用(Yong)的(De)provider |
6 | 可(Ke)用(Yong)性(Xing)敏(Min)感(Gan)策(Ce)略(Lue) | AvailabilityFilteringRule | 过(Guo)滤(Lu)性(Xing)能(Neng)差(Cha)的(De)provider,有(You)2种(Zhong):(?) 第(Di)一(Yi)种(Zhong):(?)过(Guo)滤(Lu)掉(Diao)在(Zai)eureka中(Zhong)处(Chu)于(Yu)一(Yi)直(Zhi)连(Lian)接(Jie)失(Shi)败(Bai)provider 第(Di)二(?)种(Zhong):(?)过(Guo)滤(Lu)掉(Diao)高(Gao)并(Bing)发(Fa)的(De)provider |
7 | 区(Qu)域(Yu)敏(Min)感(Gan)性(Xing)策(Ce)略(Lue) | ZoneAvoidanceRule | 1.以(Yi)一(Yi)个(Ge)区(Qu)域(Yu)为(Wei)单(Dan)位(Wei)考(Kao)察(Cha)可(Ke)用(Yong)性(Xing),(?)对(Dui)于(Yu)不(Bu)可(Ke)用(Yong)的(De)区(Qu)域(Yu)整(Zheng)个(Ge)丢(Diu)弃(Qi),(?)从(Cong)剩(Sheng)下(Xia)区(Qu)域(Yu)中(Zhong)选(Xuan)可(Ke)用(Yong)的(De)provider 2.如(Ru)果(Guo)这(Zhe)个(Ge)ip区(Qu)域(Yu)内(Nei)有(You)一(Yi)个(Ge)或(Huo)多(Duo)个(Ge)实(Shi)例(Li)不(Bu)可(Ke)达(Da)或(Huo)响(Xiang)应(Ying)变(Bian)慢(Man),(?)都(Du)会(Hui)降(Jiang)低(Di)该(Gai)ip区(Qu)域(Yu)内(Nei)其(Qi)他(Ta)ip被(Bei)选(Xuan)中(Zhong)的(De)权(Quan)重(Zhong)。(?) |
Feign是(Shi)一(Yi)种(Zhong)声(Sheng)明(Ming)式(Shi)、(?)模(Mo)板(Ban)化(Hua)的(De)HTTP客(Ke)户(Hu)端(Duan)技(Ji)术(Shu)(仅(Jin)在(Zai)consumer中(Zhong)使(Shi)用(Yong))。(?)
声(Sheng)明(Ming)式(Shi)调(Diao)用(Yong)就(Jiu)像(Xiang)调(Diao)用(Yong)本(Ben)地(Di)方(Fang)法(Fa)一(Yi)样(Yang)调(Diao)用(Yong)远(Yuan)程(Cheng)方(Fang)法(Fa);无(Wu)感(Gan)知(Zhi)远(Yuan)程(Cheng)http请(Qing)求(Qiu)。(?)
1、(?)Spring Cloud的(De)声(Sheng)明(Ming)式(Shi)调(Diao)用(Yong), 可(Ke)以(Yi)做(Zuo)到(Dao)使(Shi)用(Yong) HTTP请(Qing)求(Qiu)远(Yuan)程(Cheng)服(Fu)务(Wu)时(Shi)能(Neng)就(Jiu)像(Xiang)调(Diao)用(Yong)本(Ben)地(Di)方(Fang)法(Fa)一(Yi)样(Yang)的(De)体(Ti)验(Yan),(?)开(Kai)发(Fa)者(Zhe)完(Wan)全(Quan)感(Gan)知(Zhi)不(Bu)到(Dao)这(Zhe)是(Shi)远(Yuan)程(Cheng)方(Fang)法(Fa),(?)更(Geng)感(Gan)知(Zhi)不(Bu)到(Dao)这(Zhe)是(Shi)个(Ge)HTTP请(Qing)求(Qiu)。(?)
2、(?)它(Ta)像(Xiang)Dubbo一(Yi)样(Yang),(?)consumer直(Zhi)接(Jie)调(Diao)用(Yong)接(Jie)口(Kou)方(Fang)法(Fa)调(Diao)用(Yong)provider,(?)而(?)不(Bu)需(Xu)要(Yao)通(Tong)过(Guo)常(Chang)规(Gui)的(De)Http Client构(Gou)造(Zao)请(Qing)求(Qiu)再(Zai)解(Jie)析(Xi)返(Fan)回(Hui)数(Shu)据(Ju)。(?)
3、(?)它(Ta)解(Jie)决(Jue)了(Liao)让(Rang)开(Kai)发(Fa)者(Zhe)调(Diao)用(Yong)远(Yuan)程(Cheng)接(Jie)口(Kou)就(Jiu)跟(Gen)调(Diao)用(Yong)本(Ben)地(Di)方(Fang)法(Fa)一(Yi)样(Yang),(?)无(Wu)需(Xu)关(Guan)注(Zhu)与(Yu)远(Yuan)程(Cheng)的(De)交(Jiao)互(Hu)细(Xi)节(Jie),(?)更(Geng)无(Wu)需(Xu)关(Guan)注(Zhu)分(Fen)布(Bu)式(Shi)环(Huan)境(Jing)开(Kai)发(Fa)。(?)
在(Zai)微(Wei)服(Fu)务(Wu)架(Jia)构(Gou)中(Zhong),(?)一(Yi)个(Ge)请(Qing)求(Qiu)需(Xu)要(Yao)调(Diao)用(Yong)多(Duo)个(Ge)服(Fu)务(Wu)是(Shi)非(Fei)常(Chang)常(Chang)见(Jian)的(De)。(?)如(Ru)客(Ke)户(Hu)端(Duan)访(Fang)问(Wen)A服(Fu)务(Wu),(?)而(?)A服(Fu)务(Wu)需(Xu)要(Yao)调(Diao)用(Yong)B服(Fu)务(Wu),(?)B服(Fu)务(Wu)需(Xu)要(Yao)调(Diao)用(Yong)C服(Fu)务(Wu),(?)由(You)于(Yu)网(Wang)络(Luo)原(Yuan)因(Yin)或(Huo)者(Zhe)自(Zi)身(Shen)的(De)原(Yuan)因(Yin),(?)如(Ru)果(Guo)B服(Fu)务(Wu)或(Huo)者(Zhe)C服(Fu)务(Wu)不(Bu)能(Neng)及(Ji)时(Shi)响(Xiang)应(Ying),(?)A服(Fu)务(Wu)将(Jiang)处(Chu)于(Yu)阻(Zu)塞(Sai)状(Zhuang)态(Tai),(?)直(Zhi)到(Dao)B服(Fu)务(Wu)C服(Fu)务(Wu)响(Xiang)应(Ying)。(?)此(Ci)时(Shi)若(Ruo)有(You)大(Da)量(Liang)的(De)请(Qing)求(Qiu)涌(Yong)入(Ru),(?)容(Rong)器(Qi)的(De)线(Xian)程(Cheng)资(Zi)源(Yuan)会(Hui)被(Bei)消(Xiao)耗(Hao)完(Wan)毕(Bi),(?)导(Dao)致(Zhi)服(Fu)务(Wu)瘫(Tan)痪(Huan)。(?)服(Fu)务(Wu)与(Yu)服(Fu)务(Wu)之(Zhi)间(Jian)的(De)依(Yi)赖(Lai)性(Xing),(?)故(Gu)障(Zhang)会(Hui)传(Chuan)播(Bo),(?)造(Zao)成(Cheng)连(Lian)锁(Suo)反(Fan)应(Ying),(?)会(Hui)对(Dui)整(Zheng)个(Ge)微(Wei)服(Fu)务(Wu)系(Xi)统(Tong)造(Zao)成(Cheng)灾(Zai)难(Nan)性(Xing)的(De)严(Yan)重(Zhong)后(Hou)果(Guo),(?)这(Zhe)就(Jiu)是(Shi)服(Fu)务(Wu)故(Gu)障(Zhang)的(De)“(?)雪(Xue)崩(Beng)”(?)效(Xiao)应(Ying)
降(Jiang)级(Ji)
超(Chao)时(Shi)降(Jiang)级(Ji)、(?)资(Zi)源(Yuan)不(Bu)足(Zu)时(Shi)(线(Xian)程(Cheng)或(Huo)信(Xin)号(Hao)量(Liang))降(Jiang)级(Ji),(?)降(Jiang)级(Ji)后(Hou)可(Ke)以(Yi)配(Pei)合(He)降(Jiang)级(Ji)接(Jie)口(Kou)返(Fan)回(Hui)托(Tuo)底(Di)数(Shu)据(Ju)。(?)实(Shi)现(Xian)一(Yi)个(Ge)fallback方(Fang)法(Fa), 当(Dang)请(Qing)求(Qiu)后(Hou)端(Duan)服(Fu)务(Wu)出(Chu)现(Xian)异(Yi)常(Chang)的(De)时(Shi)候(Hou), 可(Ke)以(Yi)使(Shi)用(Yong)fallback方(Fang)法(Fa)返(Fan)回(Hui)的(De)值(Zhi).
隔(Ge)离(Li)((?)线(Xian)程(Cheng)池(Chi)隔(Ge)离(Li)和(He)信(Xin)号(Hao)量(Liang)隔(Ge)离(Li))(?)
限(Xian)制(Zhi)调(Diao)用(Yong)分(Fen)布(Bu)式(Shi)服(Fu)务(Wu)的(De)资(Zi)源(Yuan)使(Shi)用(Yong),(?)某(Mou)一(Yi)个(Ge)调(Diao)用(Yong)的(De)服(Fu)务(Wu)出(Chu)现(Xian)问(Wen)题(Ti)不(Bu)会(Hui)影(Ying)响(Xiang)其(Qi)他(Ta)服(Fu)务(Wu)调(Diao)用(Yong)。(?)
熔(Rong)断(Duan)
当(Dang)失(Shi)败(Bai)率(Lu)(如(Ru)因(Yin)网(Wang)络(Luo)故(Gu)障(Zhang)/超(Chao)时(Shi)造(Zao)成(Cheng)的(De)失(Shi)败(Bai)率(Lu)高(Gao))达(Da)到(Dao)阀(Fa)值(Zhi)自(Zi)动(Dong)触(Chu)发(Fa)降(Jiang)级(Ji),(?)熔(Rong)断(Duan)器(Qi)触(Chu)发(Fa)的(De)快(Kuai)速(Su)失(Shi)败(Bai)会(Hui)进(Jin)行(Xing)快(Kuai)速(Su)恢(Hui)复(Fu)。(?)
缓(Huan)存(Cun)
提(Ti)供(Gong)了(Liao)请(Qing)求(Qiu)缓(Huan)存(Cun)。(?)
请(Qing)求(Qiu)合(He)并(Bing)
提(Ti)供(Gong)请(Qing)求(Qiu)合(He)并(Bing)。(?)

答(Da):(?)如(Ru)下(Xia)这(Zhe)六(Liu)种(Zhong)
代(Dai)理(Li)设(She)计(Ji)模(Mo)式(Shi)
聚(Ju)合(He)设(She)计(Ji)模(Mo)式(Shi)
链(Lian)条(Tiao)设(She)计(Ji)模(Mo)式(Shi)
聚(Ju)合(He)链(Lian)条(Tiao)设(She)计(Ji)模(Mo)式(Shi)
数(Shu)据(Ju)共(Gong)享(Xiang)设(She)计(Ji)模(Mo)式(Shi)
异(Yi)步(Bu)消(Xiao)息(Xi)设(She)计(Ji)模(Mo)式(Shi)
答(Da):(?)网(Wang)关(Guan)服(Fu)务(Wu),(?)通(Tong)常(Chang)是(Shi)外(Wai)部(Bu)访(Fang)问(Wen)服(Fu)务(Wu)的(De)唯(Wei)一(Yi)接(Jie)口(Kou),(?)访(Fang)问(Wen)内(Nei)部(Bu)的(De)所(Suo)有(You)服(Fu)务(Wu)都(Du)必(Bi)须(Xu)先(Xian)经(Jing)过(Guo)网(Wang)关(Guan)服(Fu)务(Wu)。(?)网(Wang)关(Guan)服(Fu)务(Wu)的(De)主(Zhu)要(Yao)功(Gong)能(Neng)是(Shi)消(Xiao)息(Xi)解(Jie)析(Xi)过(Guo)滤(Lu),(?)路(Lu)由(You),(?)转(Zhuan)发(Fa)等(Deng)。(?)
答(Da):(?)采(Cai)用(Yong)URL指(Zhi)定(Ding)路(Lu)由(You)方(Fang)式(Shi)
采(Cai)用(Yong)服(Fu)务(Wu)名(Ming)称(Cheng)指(Zhi)定(Ding)路(Lu)由(You)方(Fang)式(Shi)
路(Lu)由(You)的(De)排(Pai)除(Chu)方(Fang)法(Fa)
路(Lu)由(You)的(De)添(Tian)加(Jia)前(Qian)缀(Zhui)方(Fang)法(Fa)





ELK是(Shi)三(San)个(Ge)工(Gong)具(Ju)的(De)集(Ji)合(He),(?)Elasticsearch + Logstash + Kibana,(?)这(Zhe)三(San)个(Ge)工(Gong)具(Ju)组(Zu)合(He)形(Xing)成(Cheng)了(Liao)一(Yi)套(Tao)实(Shi)用(Yong)、(?)易(Yi)用(Yong)的(De)监(Jian)控(Kong)架(Jia)构(Gou),(?)很(Hen)多(Duo)公(Gong)司(Si)利(Li)用(Yong)它(Ta)来(Lai)搭(Da)建(Jian)可(Ke)视(Shi)化(Hua)的(De)海(Hai)量(Liang)日(Ri)志(Zhi)分(Fen)析(Xi)平(Ping)台(Tai)。(?)
1. ElasticSearch
ElasticSearch是(Shi)一(Yi)个(Ge)基(Ji)于(Yu)Lucene的(De)搜(Sou)索(Suo)服(Fu)务(Wu)器(Qi)。(?)它(Ta)提(Ti)供(Gong)了(Liao)一(Yi)个(Ge)分(Fen)布(Bu)式(Shi)多(Duo)用(Yong)户(Hu)能(Neng)力(Li)的(De)全(Quan)文(Wen)搜(Sou)索(Suo)引(Yin)擎(Qing),(?)基(Ji)于(Yu)RESTful web接(Jie)口(Kou)。(?)Elasticsearch是(Shi)用(Yong)Java开(Kai)发(Fa)的(De),(?)并(Bing)作(Zuo)为(Wei)Apache许(Xu)可(Ke)条(Tiao)款(Kuan)下(Xia)的(De)开(Kai)放(Fang)源(Yuan)码(Ma)发(Fa)布(Bu),(?)是(Shi)当(Dang)前(Qian)流(Liu)行(Xing)的(De)企(Qi)业(Ye)级(Ji)搜(Sou)索(Suo)引(Yin)擎(Qing)。(?)设(She)计(Ji)用(Yong)于(Yu)云(Yun)计(Ji)算(Suan)中(Zhong),(?)能(Neng)够(Gou)达(Da)到(Dao)实(Shi)时(Shi)搜(Sou)索(Suo),(?)稳(Wen)定(Ding),(?)可(Ke)靠(Kao),(?)快(Kuai)速(Su),(?)安(An)装(Zhuang)使(Shi)用(Yong)方(Fang)便(Bian)。(?)
2. Logstash
Logstash是(Shi)一(Yi)个(Ge)用(Yong)于(Yu)管(Guan)理(Li)日(Ri)志(Zhi)和(He)事(Shi)件(Jian)的(De)工(Gong)具(Ju),(?)你(Ni)可(Ke)以(Yi)用(Yong)它(Ta)去(Qu)收(Shou)集(Ji)日(Ri)志(Zhi)、(?)转(Zhuan)换(Huan)日(Ri)志(Zhi)、(?)解(Jie)析(Xi)日(Ri)志(Zhi)并(Bing)将(Jiang)他(Ta)们(Men)作(Zuo)为(Wei)数(Shu)据(Ju)提(Ti)供(Gong)给(Gei)其(Qi)它(Ta)模(Mo)块(Kuai)调(Diao)用(Yong),(?)例(Li)如(Ru)搜(Sou)索(Suo)、(?)存(Cun)储(Chu)等(Deng)。(?)
3. Kibana
Kibana是(Shi)一(Yi)个(Ge)优(You)秀(Xiu)的(De)前(Qian)端(Duan)日(Ri)志(Zhi)展(Zhan)示(Shi)框(Kuang)架(Jia),(?)它(Ta)可(Ke)以(Yi)非(Fei)常(Chang)详(Xiang)细(Xi)的(De)将(Jiang)日(Ri)志(Zhi)转(Zhuan)化(Hua)为(Wei)各(Ge)种(Zhong)图(Tu)表(Biao),(?)为(Wei)用(Yong)户(Hu)提(Ti)供(Gong)强(Qiang)大(Da)的(De)数(Shu)据(Ju)可(Ke)视(Shi)化(Hua)支(Zhi)持(Chi)。(?)


数(Shu)据(Ju)库(Ku)
A. | Oracle |
B. | MySql |
C. | IMS |
D. | MongoDB |
答(Da)案(An):(?)AB分(Fen)析(Xi):(?) IMS 是(Shi)IP Mulitimedia Subsystem的(De)缩(Suo)写(Xie),(?)是(Shi)IP多(Duo)媒(Mei)体(Ti)系(Xi)统(Tong)
MongoDB分(Fen)布(Bu)式(Shi)文(Wen)档(Dang)存(Cun)储(Chu)数(Shu)据(Ju)库(Ku)
|
答(Da):(?)在(Zai)Java中(Zhong)开(Kai)源(Yuan)的(De)常(Chang)用(Yong)的(De)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)池(Chi)有(You)以(Yi)下(Xia)几(Ji)种(Zhong) :(?)
((?)1)(?)DBCP
DBCP是(Shi)一(Yi)个(Ge)依(Yi)赖(Lai)Jakarta commons-pool对(Dui)象(Xiang)池(Chi)机(Ji)制(Zhi)的(De)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)池(Chi).DBCP可(Ke)以(Yi)直(Zhi)接(Jie)的(De)在(Zai)应(Ying)用(Yong)程(Cheng)序(Xu)中(Zhong)使(Shi)用(Yong),(?)Tomcat的(De)数(Shu)据(Ju)源(Yuan)使(Shi)用(Yong)的(De)就(Jiu)是(Shi)DBCP。(?)
((?)2)(?)c3p0
c3p0是(Shi)一(Yi)个(Ge)开(Kai)放(Fang)源(Yuan)代(Dai)码(Ma)的(De)JDBC连(Lian)接(Jie)池(Chi),(?)它(Ta)在(Zai)lib目(Mu)录(Lu)中(Zhong)与(Yu)Hibernate一(Yi)起(Qi)发(Fa)布(Bu),包(Bao)括(Kuo)了(Liao)实(Shi)现(Xian)jdbc3和(He)jdbc2扩(Kuo)展(Zhan)规(Gui)范(Fan)说(Shuo)明(Ming)的(De)Connection 和(He)Statement 池(Chi)的(De)DataSources 对(Dui)象(Xiang)。(?)
((?)3)(?)Druid
阿(A)里(Li)出(Chu)品(Pin),(?)淘(Tao)宝(Bao)和(He)支(Zhi)付(Fu)宝(Bao)专(Zhuan)用(Yong)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)池(Chi),(?)但(Dan)它(Ta)不(Bu)仅(Jin)仅(Jin)是(Shi)一(Yi)个(Ge)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)池(Chi),(?)它(Ta)还(Huan)包(Bao)含(Han)一(Yi)个(Ge)ProxyDriver,(?)一(Yi)系(Xi)列(Lie)内(Nei)置(Zhi)的(De)JDBC组(Zu)件(Jian)库(Ku),(?)一(Yi)个(Ge)SQL Parser。(?)支(Zhi)持(Chi)所(Suo)有(You)JDBC兼(Jian)容(Rong)的(De)数(Shu)据(Ju)库(Ku),(?)包(Bao)括(Kuo)Oracle、(?)MySql、(?)Derby、(?)Postgresql、(?)SQL Server、(?)H2等(Deng)等(Deng)。(?)
A. | 一(Yi)对(Dui)一(Yi)的(De)联(Lian)系(Xi) |
B. | 多(Duo)对(Dui)一(Yi)的(De)联(Lian)系(Xi) |
C. | 一(Yi)对(Dui)多(Duo)的(De)联(Lian)系(Xi) |
D. | 多(Duo)对(Dui)多(Duo)的(De)联(Lian)系(Xi) |
答(Da)案(An):(?)D
|
A. | 基(Ji)本(Ben)表(Biao)或(Huo)视(Shi)图(Tu) |
B. | 视(Shi)图(Tu) |
C. | 数(Shu)据(Ju)字(Zi)典(Dian) |
D. | 基(Ji)本(Ben)表(Biao) |
答(Da)案(An):(?)A
|
A. | 第(Di)一(Yi)范(Fan)式(Shi)的(De) |
B. | 第(Di)二(?)范(Fan)式(Shi)的(De) |
C. | 第(Di)三(San)范(Fan)式(Shi)的(De) |
D. | BCNF范(Fan)式(Shi)的(De) |
答(Da)案(An):(?)A
分(Fen)析(Xi):(?)
根(Gen)据(Ju)数(Shu)据(Ju)库(Ku)三(San)大(Da)范(Fan)式(Shi)的(De)依(Yi)赖(Lai)性(Xing)要(Yao)求(Qiu),(?)从(Cong)B,BC函(Han)数(Shu)确(Que)定(Ding)A和(He)D这(Zhe)一(Yi)点(Dian)上(Shang),明(Ming)显(Xian)看(Kan)出(Chu)B,BC都(Du)有(You)可(Ke)能(Neng)是(Shi)主(Zhu)码(Ma).
若(Ruo)B是(Shi)主(Zhu)码(Ma)的(De)话(Hua),仔(Zi)细(Xi)看(Kan)会(Hui)发(Fa)现(Xian),F中(Zhong)竟(Jing)然(Ran)没(Mei)有(You)谁(Shui)去(Qu)函(Han)数(Shu)确(Que)定(Ding)C,这(Zhe)显(Xian)然(Ran)是(Shi)说(Shuo)不(Bu)通(Tong)的(De),(因(Yin)为(Wei)C至(Zhi)少(Shao)会(Hui)被(Bei)B这(Zhe)个(Ge)主(Zhu)码(Ma)函(Han)数(Shu)确(Que)定(Ding));
若(Ruo)BC是(Shi)主(Zhu)码(Ma),那(Na)么(Me)F中(Zhong)存(Cun)在(Zai)非(Fei)主(Zhu)属(Shu)性(Xing)对(Dui)候(Hou)选(Xuan)码(Ma)的(De)部(Bu)分(Fen)依(Yi)赖(Lai),不(Bu)满(Man)足(Zu)第(Di)二(?)范(Fan)式(Shi)的(De)要(Yao)求(Qiu),故(Gu)为(Wei)第(Di)一(Yi)范(Fan)式(Shi).
|
答(Da):(?)DAO((?)DataAccess Object)(?)顾(Gu)名(Ming)思(Si)义(Yi)是(Shi)一(Yi)个(Ge)为(Wei)数(Shu)据(Ju)库(Ku)或(Huo)其(Qi)他(Ta)持(Chi)久(Jiu)化(Hua)机(Ji)制(Zhi)提(Ti)供(Gong)了(Liao)抽(Chou)象(Xiang)接(Jie)口(Kou)的(De)对(Dui)象(Xiang),(?)在(Zai)不(Bu)暴(Bao)露(Lu)数(Shu)据(Ju)库(Ku)实(Shi)现(Xian)细(Xi)节(Jie)的(De)前(Qian)提(Ti)下(Xia)提(Ti)供(Gong)了(Liao)各(Ge)种(Zhong)数(Shu)据(Ju)操(Cao)作(Zuo)。(?)为(Wei)了(Liao)建(Jian)立(Li)一(Yi)个(Ge)健(Jian)壮(Zhuang)的(De)Java EE应(Ying)用(Yong),(?)应(Ying)该(Gai)将(Jiang)所(Suo)有(You)对(Dui)数(Shu)据(Ju)源(Yuan)的(De)访(Fang)问(Wen)操(Cao)作(Zuo)进(Jin)行(Xing)抽(Chou)象(Xiang)化(Hua)后(Hou)封(Feng)装(Zhuang)在(Zai)一(Yi)个(Ge)公(Gong)共(Gong)API中(Zhong)。(?)用(Yong)程(Cheng)序(Xu)设(She)计(Ji)语(Yu)言(Yan)来(Lai)说(Shuo),(?)就(Jiu)是(Shi)建(Jian)立(Li)一(Yi)个(Ge)接(Jie)口(Kou),(?)接(Jie)口(Kou)中(Zhong)定(Ding)义(Yi)了(Liao)此(Ci)应(Ying)用(Yong)程(Cheng)序(Xu)中(Zhong)将(Jiang)会(Hui)用(Yong)到(Dao)的(De)所(Suo)有(You)事(Shi)务(Wu)方(Fang)法(Fa)。(?)在(Zai)这(Zhe)个(Ge)应(Ying)用(Yong)程(Cheng)序(Xu)中(Zhong),(?)当(Dang)需(Xu)要(Yao)和(He)数(Shu)据(Ju)源(Yuan)进(Jin)行(Xing)交(Jiao)互(Hu)的(De)时(Shi)候(Hou)则(Ze)使(Shi)用(Yong)这(Zhe)个(Ge)接(Jie)口(Kou),(?)并(Bing)且(Qie)编(Bian)写(Xie)一(Yi)个(Ge)单(Dan)独(Du)的(De)类(Lei)来(Lai)实(Shi)现(Xian)这(Zhe)个(Ge)接(Jie)口(Kou),(?)在(Zai)逻(Luo)辑(Ji)上(Shang)该(Gai)类(Lei)对(Dui)应(Ying)一(Yi)个(Ge)特(Te)定(Ding)的(De)数(Shu)据(Ju)存(Cun)储(Chu)。(?)DAO模(Mo)式(Shi)实(Shi)际(Ji)上(Shang)包(Bao)含(Han)了(Liao)两(Liang)个(Ge)模(Mo)式(Shi),(?)一(Yi)是(Shi)Data Accessor((?)数(Shu)据(Ju)访(Fang)问(Wen)器(Qi))(?),(?)二(?)是(Shi)Data Object((?)数(Shu)据(Ju)对(Dui)象(Xiang))(?),(?)前(Qian)者(Zhe)要(Yao)解(Jie)决(Jue)如(Ru)何(He)访(Fang)问(Wen)数(Shu)据(Ju)的(De)问(Wen)题(Ti),(?)而(?)后(Hou)者(Zhe)要(Yao)解(Jie)决(Jue)的(De)是(Shi)如(Ru)何(He)用(Yong)对(Dui)象(Xiang)封(Feng)装(Zhuang)数(Shu)据(Ju)。(?)
Mysql:使(Shi)用(Yong)limit关(Guan)键(Jian)字(Zi)
Select * from 表(Biao)名(Ming) where 条(Tiao)件(Jian) limit 开(Kai)始(Shi)位(Wei)置(Zhi),(?)结(Jie)束(Shu)位(Wei)置(Zhi)。(?)通(Tong)过(Guo)动(Dong)态(Tai)的(De)改(Gai)变(Bian)开(Kai)始(Shi)和(He)结(Jie)束(Shu)位(Wei)置(Zhi)的(De)值(Zhi)来(Lai)实(Shi)现(Xian)分(Fen)页(Ye)。(?)
Oracle:(?)通(Tong)过(Guo)rownum来(Lai)实(Shi)现(Xian)
select * from ( select rownum rn,t.* from addressbook where rownum<= 20 ) where rownum > 10
Sqlserver:
select top 20 * from addressbook where id not in (select top 10 id from addressbook)
如(Ru):(?)select * from (select t.*,rownum r from (select * from A) t where rownum < 10) where r >5
select * from A:要(Yao)查(Cha)询(Xun)的(De)数(Shu)据(Ju)
select t.*,rownum r from (select * from A) t where rownum < 10:(?)取(Qu)前(Qian)10行(Xing)
select * from (select t.*,rownum r from (select * from A) t where rownum < 10) where r >5:(?)取(Qu)5-10行(Xing)
答(Da):(?) 1. SQL优(You)化(Hua)的(De)原(Yuan)则(Ze)是(Shi):(?)将(Jiang)一(Yi)次(Ci)操(Cao)作(Zuo)需(Xu)要(Yao)读(Du)取(Qu)的(De)BLOCK数(Shu)减(Jian)到(Dao)最(Zui)低(Di),即(Ji)在(Zai)最(Zui)短(Duan)的(De)时(Shi)间(Jian)达(Da)到(Dao)最(Zui)大(Da)的(De)数(Shu)据(Ju)吞(Tun)吐(Tu)量(Liang)。(?)
调(Diao)整(Zheng)不(Bu)良(Liang)SQL通(Tong)常(Chang)可(Ke)以(Yi)从(Cong)以(Yi)下(Xia)几(Ji)点(Dian)切(Qie)入(Ru):(?)
1) 检(Jian)查(Cha)不(Bu)良(Liang)的(De)SQL,(?)考(Kao)虑(Lu)其(Qi)写(Xie)法(Fa)是(Shi)否(Fou)还(Huan)有(You)可(Ke)优(You)化(Hua)内(Nei)容(Rong)
2) 检(Jian)查(Cha)子(Zi)查(Cha)询(Xun) 考(Kao)虑(Lu)SQL子(Zi)查(Cha)询(Xun)是(Shi)否(Fou)可(Ke)以(Yi)用(Yong)简(Jian)单(Dan)连(Lian)接(Jie)的(De)方(Fang)式(Shi)进(Jin)行(Xing)重(Zhong)新(Xin)书(Shu)写(Xie)
3) 检(Jian)查(Cha)优(You)化(Hua)索(Suo)引(Yin)的(De)使(Shi)用(Yong)
4) 考(Kao)虑(Lu)数(Shu)据(Ju)库(Ku)的(De)优(You)化(Hua)器(Qi)
2. 避(Bi)免(Mian)出(Chu)现(Xian)SELECT * FROM table 语(Yu)句(Ju),(?)要(Yao)明(Ming)确(Que)查(Cha)出(Chu)的(De)字(Zi)段(Duan)。(?)
3. 在(Zai)一(Yi)个(Ge)SQL语(Yu)句(Ju)中(Zhong),(?)如(Ru)果(Guo)一(Yi)个(Ge)where条(Tiao)件(Jian)过(Guo)滤(Lu)的(De)数(Shu)据(Ju)库(Ku)记(Ji)录(Lu)越(Yue)多(Duo),(?)定(Ding)位(Wei)越(Yue)准(Zhun)确(Que),(?)则(Ze)该(Gai)where条(Tiao)件(Jian)越(Yue)应(Ying)该(Gai)前(Qian)移(Yi)。(?)
4. 查(Cha)询(Xun)时(Shi)尽(Jin)可(Ke)能(Neng)使(Shi)用(Yong)索(Suo)引(Yin)覆(Fu)盖(Gai)。(?)即(Ji)对(Dui)SELECT的(De)字(Zi)段(Duan)建(Jian)立(Li)复(Fu)合(He)索(Suo)引(Yin),(?)这(Zhe)样(Yang)查(Cha)询(Xun)时(Shi)只(Zhi)进(Jin)行(Xing)索(Suo)引(Yin)扫(Sao)描(Miao),(?)不(Bu)读(Du)取(Qu)数(Shu)据(Ju)块(Kuai)。(?)
5. 在(Zai)判(Pan)断(Duan)有(You)无(Wu)符(Fu)合(He)条(Tiao)件(Jian)的(De)记(Ji)录(Lu)时(Shi)建(Jian)议(Yi)不(Bu)要(Yao)用(Yong)SELECT COUNT ((?)*)(?)和(He)select top 1 语(Yu)句(Ju)。(?)
6. 使(Shi)用(Yong)内(Nei)层(Ceng)限(Xian)定(Ding)原(Yuan)则(Ze),(?)在(Zai)拼(Pin)写(Xie)SQL语(Yu)句(Ju)时(Shi),(?)将(Jiang)查(Cha)询(Xun)条(Tiao)件(Jian)分(Fen)解(Jie)、(?)分(Fen)类(Lei),(?)并(Bing)尽(Jin)量(Liang)在(Zai)SQL语(Yu)句(Ju)的(De)最(Zui)里(Li)层(Ceng)进(Jin)行(Xing)限(Xian)定(Ding),(?)以(Yi)减(Jian)少(Shao)数(Shu)据(Ju)的(De)处(Chu)理(Li)量(Liang)。(?)
7. 应(Ying)绝(Jue)对(Dui)避(Bi)免(Mian)在(Zai)order by子(Zi)句(Ju)中(Zhong)使(Shi)用(Yong)表(Biao)达(Da)式(Shi)。(?)
9. 小(Xiao)心(Xin)使(Shi)用(Yong) IN 和(He) OR,(?)需(Xu)要(Yao)注(Zhu)意(Yi)In集(Ji)合(He)中(Zhong)的(De)数(Shu)据(Ju)量(Liang)。(?)建(Jian)议(Yi)集(Ji)合(He)中(Zhong)的(De)数(Shu)据(Ju)不(Bu)超(Chao)过(Guo)200个(Ge)。(?)
10. <> 用(Yong) < 、(?) > 代(Dai)替(Ti),(?)>用(Yong)>=代(Dai)替(Ti),(?) < 用(Yong)< =代(Dai)替(Ti),(?)这(Zhe)样(Yang)可(Ke)以(Yi)有(You)效(Xiao)的(De)利(Li)用(Yong)索(Suo)引(Yin)。(?)
11. 在(Zai)查(Cha)询(Xun)时(Shi)尽(Jin)量(Liang)减(Jian)少(Shao)对(Dui)多(Duo)余(Yu)数(Shu)据(Ju)的(De)读(Du)取(Qu)包(Bao)括(Kuo)多(Duo)余(Yu)的(De)列(Lie)与(Yu)多(Duo)余(Yu)的(De)行(Xing)。(?)
12. 对(Dui)于(Yu)复(Fu)合(He)索(Suo)引(Yin)要(Yao)注(Zhu)意(Yi),(?)例(Li)如(Ru)在(Zai)建(Jian)立(Li)复(Fu)合(He)索(Suo)引(Yin)时(Shi)列(Lie)的(De)顺(Shun)序(Xu)是(Shi)F1,(?)F2,(?)F3,(?)则(Ze)在(Zai)where或(Huo)order by子(Zi)句(Ju)中(Zhong)这(Zhe)些(Xie)字(Zi)段(Duan)出(Chu)现(Xian)的(De)顺(Shun)序(Xu)要(Yao)与(Yu)建(Jian)立(Li)索(Suo)引(Yin)时(Shi)的(De)字(Zi)段(Duan)顺(Shun)序(Xu)一(Yi)致(Zhi),(?)且(Qie)必(Bi)须(Xu)包(Bao)含(Han)第(Di)一(Yi)列(Lie)。(?)只(Zhi)能(Neng)是(Shi)F1或(Huo)F1,(?)F2或(Huo)F1,(?)F2,(?)F3。(?)否(Fou)则(Ze)不(Bu)会(Hui)用(Yong)到(Dao)该(Gai)索(Suo)引(Yin)。(?)
一(Yi)、(?)表(Biao)中(Zhong)字(Zi)符(Fu)串(Chuan)带(Dai)空(Kong)格(Ge)的(De)原(Yuan)因(Yin)
1、(?)空(Kong)格(Ge)就(Jiu)是(Shi)空(Kong)格(Ge)。(?)
2、(?)控(Kong)制(Zhi)符(Fu) 显(Xian)示(Shi)为(Wei) 空(Kong)格(Ge)。(?)
二(?)、(?)解(Jie)决(Jue)方(Fang)法(Fa)
第(Di)一(Yi)种(Zhong)情(Qing)况(Kuang),(?)去(Qu)空(Kong)格(Ge)的(De)处(Chu)理(Li)的(De)比(Bi)较(Jiao)简(Jian)单(Dan),(?)Replace(column,' ','') 就(Jiu)可(Ke)以(Yi)解(Jie)决(Jue)。(?)
第(Di)二(?)种(Zhong)情(Qing)况(Kuang),(?)解(Jie)决(Jue)方(Fang)法(Fa)就(Jiu)比(Bi)较(Jiao)麻(Ma)烦(Fan)点(Dian):(?)需(Xu)要(Yao)先(Xian)查(Cha)出(Chu)相(Xiang)应(Ying)的(De)ASCII码(Ma),(?)再(Zai)用(Yong)Replace(column,char(ascii码(Ma)),'')解(Jie)决(Jue),(?)以(Yi)下(Xia)举(Ju)个(Ge)栗(Li)子(Zi):(?)
CREATE TABLE #temp
(NAME NVARCHAR(50))
INSERT INTO #temp SELECT '明(Ming)天(Tian)就(Jiu)是(Shi)国(Guo)庆(Qing)了(Liao)'+CHAR(10) --换(Huan)行(Xing)符(Fu)
SELECT * FROM #temp --末(Mo)尾(Wei)显(Xian)示(Shi)为(Wei)空(Kong)格(Ge)
SELECT REPLACE(NAME,' ','') FROM #temp --去(Qu)不(Bu)掉(Diao)这(Zhe)个(Ge)空(Kong)格(Ge)
SELECT REPLACE(NAME,CHAR(10),'') FROM #temp --去(Qu)掉(Diao)空(Kong)格(Ge)
SELECT REPLACE(NAME,CHAR(ASCII(RIGHT(NAME,1))),'') FROM #temp --在(Zai)不(Bu)知(Zhi)道(Dao)是(Shi)最(Zui)后(Hou)一(Yi)位(Wei)是(Shi)什(Shi)么(Me)字(Zi)符(Fu)导(Dao)致(Zhi)空(Kong)格(Ge)的(De)情(Qing)况(Kuang)下(Xia),(?)先(Xian)转(Zhuan)ASCII码(Ma),(?)在(Zai)替(Ti)换(Huan)
DROP TABLE #temp
----下(Xia)面(Mian)是(Shi)查(Cha)询(Xun)结(Jie)果(Guo):
--'明(Ming)天(Tian)就(Jiu)是(Shi)国(Guo)庆(Qing)了(Liao) '
--'明(Ming)天(Tian)就(Jiu)是(Shi)国(Guo)庆(Qing)了(Liao) '
--'明(Ming)天(Tian)就(Jiu)是(Shi)国(Guo)庆(Qing)了(Liao)'
--'明(Ming)天(Tian)就(Jiu)是(Shi)国(Guo)庆(Qing)了(Liao)'
答(Da):(?)
1.数(Shu)据(Ju)库(Ku)的(De)设(She)计(Ji)
尽(Jin)量(Liang)把(Ba)数(Shu)据(Ju)库(Ku)设(She)计(Ji)的(De)更(Geng)小(Xiao)的(De)占(Zhan)磁(Ci)盘(Pan)空(Kong)间(Jian).
1).尽(Jin)可(Ke)能(Neng)使(Shi)用(Yong)更(Geng)小(Xiao)的(De)整(Zheng)数(Shu)类(Lei)型(Xing).(mediumint就(Jiu)比(Bi)int更(Geng)合(He)适(Shi)).
2).尽(Jin)可(Ke)能(Neng)的(De)定(Ding)义(Yi)字(Zi)段(Duan)为(Wei)not null,除(Chu)非(Fei)这(Zhe)个(Ge)字(Zi)段(Duan)需(Xu)要(Yao)null.
3).如(Ru)果(Guo)没(Mei)有(You)用(Yong)到(Dao)变(Bian)长(Chang)字(Zi)段(Duan)的(De)话(Hua)比(Bi)如(Ru)varchar,那(Na)就(Jiu)采(Cai)用(Yong)固(Gu)定(Ding)大(Da)小(Xiao)的(De)纪(Ji)录(Lu)格(Ge)式(Shi)比(Bi)如(Ru)char.
4).表(Biao)的(De)主(Zhu)索(Suo)引(Yin)应(Ying)该(Gai)尽(Jin)可(Ke)能(Neng)的(De)短(Duan).这(Zhe)样(Yang)的(De)话(Hua)每(Mei)条(Tiao)纪(Ji)录(Lu)都(Du)有(You)名(Ming)字(Zi)标(Biao)志(Zhi)且(Qie)更(Geng)高(Gao)效(Xiao).
5).只(Zhi)创(Chuang)建(Jian)确(Que)实(Shi)需(Xu)要(Yao)的(De)索(Suo)引(Yin)。(?)索(Suo)引(Yin)有(You)利(Li)于(Yu)检(Jian)索(Suo)记(Ji)录(Lu),(?)但(Dan)是(Shi)不(Bu)利(Li)于(Yu)快(Kuai)速(Su)保(Bao)存(Cun)记(Ji)录(Lu)。(?)如(Ru)果(Guo)总(Zong)是(Shi)要(Yao)在(Zai)表(Biao)的(De)组(Zu)合(He)字(Zi)段(Duan)上(Shang)做(Zuo)搜(Sou)索(Suo),(?)那(Na)么(Me)就(Jiu)在(Zai)这(Zhe)些(Xie)字(Zi)段(Duan)上(Shang)创(Chuang)建(Jian)索(Suo)引(Yin)。(?)索(Suo)引(Yin)的(De)第(Di)一(Yi)部(Bu)分(Fen)必(Bi)须(Xu)是(Shi)最(Zui)常(Chang)使(Shi)用(Yong)的(De)字(Zi)段(Duan).如(Ru)果(Guo)总(Zong)是(Shi)需(Xu)要(Yao)用(Yong)到(Dao)很(Hen)多(Duo)字(Zi)段(Duan),(?)首(Shou)先(Xian)就(Jiu)应(Ying)该(Gai)多(Duo)复(Fu)制(Zhi)这(Zhe)些(Xie)字(Zi)段(Duan),(?)使(Shi)索(Suo)引(Yin)更(Geng)好(Hao)的(De)压(Ya)缩(Suo)。(?)
6).所(Suo)有(You)数(Shu)据(Ju)都(Du)得(De)在(Zai)保(Bao)存(Cun)到(Dao)数(Shu)据(Ju)库(Ku)前(Qian)进(Jin)行(Xing)处(Chu)理(Li)。(?)
7).所(Suo)有(You)字(Zi)段(Duan)都(Du)得(De)有(You)默(Mo)认(Ren)值(Zhi)。(?)
8).在(Zai)某(Mou)些(Xie)情(Qing)况(Kuang)下(Xia),把(Ba)一(Yi)个(Ge)频(Pin)繁(Fan)扫(Sao)描(Miao)的(De)表(Biao)分(Fen)成(Cheng)两(Liang)个(Ge)速(Su)度(Du)会(Hui)快(Kuai)好(Hao)多(Duo)。(?)在(Zai)对(Dui)动(Dong)态(Tai)格(Ge)式(Shi)表(Biao)扫(Sao)描(Miao)以(Yi)取(Qu)得(De)相(Xiang)关(Guan)记(Ji)录(Lu)时(Shi),(?)它(Ta)可(Ke)能(Neng)使(Shi)用(Yong)更(Geng)小(Xiao)的(De)静(Jing)态(Tai)格(Ge)式(Shi)表(Biao)的(De)情(Qing)况(Kuang)下(Xia)更(Geng)是(Shi)如(Ru)此(Ci)。(?)
2.系(Xi)统(Tong)的(De)用(Yong)途(Tu)
1).尽(Jin)量(Liang)使(Shi)用(Yong)长(Chang)连(Lian)接(Jie).
2).explain 复(Fu)杂(Za)的(De)SQL语(Yu)句(Ju)。(?)
3).如(Ru)果(Guo)两(Liang)个(Ge)关(Guan)联(Lian)表(Biao)要(Yao)做(Zuo)比(Bi)较(Jiao)话(Hua),(?)做(Zuo)比(Bi)较(Jiao)的(De)字(Zi)段(Duan)必(Bi)须(Xu)类(Lei)型(Xing)和(He)长(Chang)度(Du)都(Du)一(Yi)致(Zhi).
4).LIMIT语(Yu)句(Ju)尽(Jin)量(Liang)要(Yao)跟(Gen)order by或(Huo)者(Zhe) distinct.这(Zhe)样(Yang)可(Ke)以(Yi)避(Bi)免(Mian)做(Zuo)一(Yi)次(Ci)full table scan.
5).如(Ru)果(Guo)想(Xiang)要(Yao)清(Qing)空(Kong)表(Biao)的(De)所(Suo)有(You)记(Ji)录(Lu),建(Jian)议(Yi)用(Yong)truncate table tablename而(?)不(Bu)是(Shi)delete from tablename.
6).能(Neng)使(Shi)用(Yong)STORE PROCEDURE 或(Huo)者(Zhe) USER FUNCTION的(De)时(Shi)候(Hou).
7).在(Zai)一(Yi)条(Tiao)insert语(Yu)句(Ju)中(Zhong)采(Cai)用(Yong)多(Duo)重(Zhong)纪(Ji)录(Lu)插(Cha)入(Ru)格(Ge)式(Shi).而(?)且(Qie)使(Shi)用(Yong)load data infile来(Lai)导(Dao)入(Ru)大(Da)量(Liang)数(Shu)据(Ju),(?)这(Zhe)比(Bi)单(Dan)纯(Chun)的(De)indert快(Kuai)好(Hao)多(Duo).
8).经(Jing)常(Chang)OPTIMIZE TABLE 来(Lai)整(Zheng)理(Li)碎(Sui)片(Pian).
9).还(Huan)有(You)就(Jiu)是(Shi)date 类(Lei)型(Xing)的(De)数(Shu)据(Ju)如(Ru)果(Guo)频(Pin)繁(Fan)要(Yao)做(Zuo)比(Bi)较(Jiao)的(De)话(Hua)尽(Jin)量(Liang)保(Bao)存(Cun)在(Zai)unsigned int 类(Lei)型(Xing)比(Bi)较(Jiao)快(Kuai)。(?)
3.系(Xi)统(Tong)的(De)瓶(Ping)颈(Jing)
1).磁(Ci)盘(Pan)搜(Sou)索(Suo).
并(Bing)行(Xing)搜(Sou)索(Suo),把(Ba)数(Shu)据(Ju)分(Fen)开(Kai)存(Cun)放(Fang)到(Dao)多(Duo)个(Ge)磁(Ci)盘(Pan)中(Zhong),(?)这(Zhe)样(Yang)能(Neng)加(Jia)快(Kuai)搜(Sou)索(Suo)时(Shi)间(Jian).
2).磁(Ci)盘(Pan)读(Du)写(Xie)(IO)
可(Ke)以(Yi)从(Cong)多(Duo)个(Ge)媒(Mei)介(Jie)中(Zhong)并(Bing)行(Xing)的(De)读(Du)取(Qu)数(Shu)据(Ju)。(?)
3).CPU周(Zhou)期(Qi)
数(Shu)据(Ju)存(Cun)放(Fang)在(Zai)主(Zhu)内(Nei)存(Cun)中(Zhong).这(Zhe)样(Yang)就(Jiu)得(De)增(Zeng)加(Jia)CPU的(De)个(Ge)数(Shu)来(Lai)处(Chu)理(Li)这(Zhe)些(Xie)数(Shu)据(Ju)。(?)
4).内(Nei)存(Cun)带(Dai)宽(Kuan)
当(Dang)CPU要(Yao)将(Jiang)更(Geng)多(Duo)的(De)数(Shu)据(Ju)存(Cun)放(Fang)到(Dao)CPU的(De)缓(Huan)存(Cun)中(Zhong)来(Lai)的(De)话(Hua),内(Nei)存(Cun)的(De)带(Dai)宽(Kuan)就(Jiu)成(Cheng)了(Liao)瓶(Ping)颈(Jing).
命(Ming)令(Ling)行(Xing)工(Gong)具(Ju)
crsctl管(Guan)理(Li)集(Ji)群(Qun)相(Xiang)关(Guan)的(De)操(Cao)作(Zuo):(?)
-启(Qi)动(Dong)和(He)关(Guan)闭(Bi)Oracle集(Ji)群(Qun)
-启(Qi)用(Yong)和(He)禁(Jin)用(Yong)Oracle集(Ji)群(Qun)后(Hou)台(Tai)进(Jin)程(Cheng)
-注(Zhu)册(Ce)集(Ji)群(Qun)资(Zi)源(Yuan)
-srvctl 管(Guan)理(Li)Oracle 资(Zi)源(Yuan)相(Xiang)关(Guan)操(Cao)作(Zuo)
-启(Qi)动(Dong)和(He)关(Guan)闭(Bi)数(Shu)据(Ju)库(Ku)实(Shi)例(Li)和(He)服(Fu)务(Wu)
在(Zai)Oracle Grid安(An)装(Zhuang)的(De)home路(Lu)径(Jing)下(Xia)的(De)命(Ming)令(Ling)行(Xing)工(Gong)具(Ju)crsctl和(He)srvctl用(Yong)来(Lai)管(Guan)理(Li)Oracle集(Ji)群(Qun)。(?)使(Shi)用(Yong)crsctl可(Ke)以(Yi)监(Jian)控(Kong)和(He)管(Guan)理(Li)任(Ren)何(He)集(Ji)群(Qun)节(Jie)点(Dian)的(De)集(Ji)群(Qun)组(Zu)件(Jian)和(He)资(Zi)源(Yuan)。(?)srvctl工(Gong)具(Ju)提(Ti)供(Gong)了(Liao)类(Lei)似(Si)的(De)功(Gong)能(Neng),(?)来(Lai)监(Jian)控(Kong)和(He)管(Guan)理(Li)Oracle相(Xiang)关(Guan)的(De)资(Zi)源(Yuan),(?)例(Li)如(Ru)数(Shu)据(Ju)库(Ku)实(Shi)例(Li)和(He)数(Shu)据(Ju)库(Ku)服(Fu)务(Wu)。(?)crsctl命(Ming)令(Ling)只(Zhi)能(Neng)是(Shi)集(Ji)群(Qun)管(Guan)理(Li)者(Zhe)来(Lai)运(Yun)行(Xing),(?)srvctl命(Ming)令(Ling)可(Ke)以(Yi)是(Shi)其(Qi)他(Ta)用(Yong)户(Hu),(?)例(Li)如(Ru)数(Shu)据(Ju)库(Ku)管(Guan)理(Li)员(Yuan)来(Lai)使(Shi)用(Yong)。(?)
一(Yi)、(?)存(Cun)储(Chu)过(Guo)程(Cheng)与(Yu)函(Han)数(Shu)的(De)区(Qu)别(Bie):(?)
1.一(Yi)般(Ban)来(Lai)说(Shuo),(?)存(Cun)储(Chu)过(Guo)程(Cheng)实(Shi)现(Xian)的(De)功(Gong)能(Neng)要(Yao)复(Fu)杂(Za)一(Yi)点(Dian),(?)而(?)函(Han)数(Shu)的(De)实(Shi)现(Xian)的(De)功(Gong)能(Neng)针(Zhen)对(Dui)性(Xing)比(Bi)较(Jiao)强(Qiang)。(?)
2.对(Dui)于(Yu)存(Cun)储(Chu)过(Guo)程(Cheng)来(Lai)说(Shuo)可(Ke)以(Yi)返(Fan)回(Hui)参(Can)数(Shu)(output),(?)而(?)函(Han)数(Shu)只(Zhi)能(Neng)返(Fan)回(Hui)值(Zhi)或(Huo)者(Zhe)表(Biao)对(Dui)象(Xiang)。(?)
3.存(Cun)储(Chu)过(Guo)程(Cheng)一(Yi)般(Ban)是(Shi)作(Zuo)为(Wei)一(Yi)个(Ge)独(Du)立(Li)的(De)部(Bu)分(Fen)来(Lai)执(Zhi)行(Xing),(?)而(?)函(Han)数(Shu)可(Ke)以(Yi)作(Zuo)为(Wei)查(Cha)询(Xun)语(Yu)句(Ju)的(De)一(Yi)个(Ge)部(Bu)分(Fen)来(Lai)调(Diao)用(Yong),(?)由(You)于(Yu)函(Han)数(Shu)可(Ke)以(Yi)返(Fan)回(Hui)一(Yi)个(Ge)表(Biao)对(Dui)象(Xiang),(?)因(Yin)此(Ci)它(Ta)可(Ke)以(Yi)在(Zai)查(Cha)询(Xun)语(Yu)句(Ju)中(Zhong)位(Wei)于(Yu)FROM关(Guan)键(Jian)字(Zi)的(De)后(Hou)面(Mian)。(?)
二(?)、(?)存(Cun)储(Chu)过(Guo)程(Cheng)的(De)优(You)点(Dian):(?)
1.执(Zhi)行(Xing)速(Su)度(Du)更(Geng)快(Kuai) 在(Zai)数(Shu)据(Ju)库(Ku)中(Zhong)保(Bao)存(Cun)的(De)存(Cun)储(Chu)过(Guo)程(Cheng)语(Yu)句(Ju)都(Du)是(Shi)编(Bian)译(Yi)过(Guo)的(De)
2.允(Yun)许(Xu)模(Mo)块(Kuai)化(Hua)程(Cheng)序(Xu)设(She)计(Ji) 类(Lei)似(Si)方(Fang)法(Fa)的(De)复(Fu)用(Yong)
3.提(Ti)高(Gao)系(Xi)统(Tong)安(An)全(Quan)性(Xing) 防(Fang)止(Zhi)SQL注(Zhu)入(Ru)
4.减(Jian)少(Shao)网(Wang)络(Luo)流(Liu)通(Tong)量(Liang) 只(Zhi)要(Yao)传(Chuan)输(Shu)存(Cun)储(Chu)过(Guo)程(Cheng)的(De)名(Ming)称(Cheng)
系(Xi)统(Tong)存(Cun)储(Chu)过(Guo)程(Cheng)一(Yi)般(Ban)以(Yi)sp开(Kai)头(Tou),(?)用(Yong)户(Hu)自(Zi)定(Ding)义(Yi)的(De)存(Cun)储(Chu)过(Guo)程(Cheng)一(Yi)般(Ban)以(Yi)usp开(Kai)头(Tou)
缺(Que)点(Dian):(?)
第(Di)一(Yi),(?)创(Chuang)建(Jian)索(Suo)引(Yin)和(He)维(Wei)护(Hu)索(Suo)引(Yin)要(Yao)耗(Hao)费(Fei)时(Shi)间(Jian),(?)这(Zhe)种(Zhong)时(Shi)间(Jian)随(Sui)着(Zhuo)数(Shu)据(Ju)量(Liang)的(De)增(Zeng)加(Jia)而(?)增(Zeng)加(Jia)。(?)
第(Di)二(?),(?)索(Suo)引(Yin)需(Xu)要(Yao)占(Zhan)物(Wu)理(Li)空(Kong)间(Jian),(?)除(Chu)了(Liao)数(Shu)据(Ju)表(Biao)占(Zhan)数(Shu)据(Ju)空(Kong)间(Jian)之(Zhi)外(Wai),(?)每(Mei)一(Yi)个(Ge)索(Suo)引(Yin)还(Huan)要(Yao)占(Zhan)一(Yi)定(Ding)的(De)物(Wu)理(Li)空(Kong)间(Jian),(?)如(Ru)果(Guo)要(Yao)建(Jian)立(Li)聚(Ju)簇(Cu)索(Suo)引(Yin),(?)那(Na)么(Me)需(Xu)要(Yao)的(De)空(Kong)间(Jian)就(Jiu)会(Hui)更(Geng)大(Da)。(?)
第(Di)三(San),(?)当(Dang)对(Dui)表(Biao)中(Zhong)的(De)数(Shu)据(Ju)进(Jin)行(Xing)增(Zeng)加(Jia)、(?)删(Shan)除(Chu)和(He)修(Xiu)改(Gai)的(De)时(Shi)候(Hou),(?)索(Suo)引(Yin)也(Ye)要(Yao)动(Dong)态(Tai)的(De)维(Wei)护(Hu),(?)这(Zhe)样(Yang)就(Jiu)降(Jiang)低(Di)了(Liao)数(Shu)据(Ju)的(De)维(Wei)护(Hu)速(Su)度(Du)。(?)
客(Ke)户(Hu)信(Xin)息(Xi)表(Biao)(c CUSTOM)有(You)以(Yi)下(Xia)字(Zi)段(Duan):(?)
id、(?)name、(?)mobile
客(Ke)户(Hu)订(Ding)单(Dan)表(Biao)(C_ORDER)有(You)以(Yi)下(Xia)字(Zi)段(Duan):(?)
id、(?)custom_id、(?)commodity、(?)count、(?)order _date
Mysql:
Select * from c_order order by order_date desc limit 0,5;
Oracle:
Select o.*,rownum n
from c_order order by order_date desc where n<6;
A. | HQL与(Yu)SQL没(Mei)什(Shi)么(Me)差(Cha)别(Bie) |
B. | HQL面(Mian)向(Xiang)对(Dui)象(Xiang),(?)而(?)SQL操(Cao)纵(Zong)关(Guan)系(Xi)数(Shu)据(Ju)库(Ku) |
C. | 在(Zai) HQL 与(Yu) SQL 中(Zhong),(?)都(Du)包(Bao)含(Han) select,insert,update,delete 语(Yu)句(Ju) |
D. | HQL仅(Jin)用(Yong)于(Yu)询(Xun)数(Shu)据(Ju),(?)不(Bu)支(Zhi)持(Chi)insert,update和(He)delete语(Yu)句(Ju) |
答(Da)案(An):(?)BC
|
字(Zi)段(Duan)名(Ming)称(Cheng) | 字(Zi)段(Duan)解(Jie)释(Shi) | 字(Zi)段(Duan)类(Lei)型(Xing) | 字(Zi)段(Duan)长(Chang)度(Du) | 约(Yue)束(Shu) |
s_id | 学(Xue)号(Hao) | 字(Zi)符(Fu) | 10 | PK |
s_name | 学(Xue)生(Sheng)姓(Xing)名(Ming) | 字(Zi)符(Fu) | 50 | Not null |
s_age | 学(Xue)生(Sheng)年(Nian)龄(Ling) | 数(Shu)值(Zhi) | 3 | Not null |
s-sex | 学(Xue)生(Sheng)性(Xing)别(Bie) | 字(Zi)符(Fu)((?)男(Nan):(?)1女(Nu):(?)0)(?) | 1 | Not null |
下(Xia)面(Mian)是(Shi)教(Jiao)师(Shi)表(Biao)((?)Teacher )(?)的(De)结(Jie)构(Gou)说(Shuo)明(Ming)
字(Zi)段(Duan)名(Ming)称(Cheng) | 字(Zi)段(Duan)解(Jie)释(Shi) | 字(Zi)段(Duan)类(Lei)型(Xing) | 字(Zi)段(Duan)长(Chang)度(Du) | 约(Yue)束(Shu) |
t_id | 教(Jiao)师(Shi)编(Bian)号(Hao) | 字(Zi)符(Fu) | 10 | PK |
t_name | 教(Jiao)师(Shi)名(Ming)字(Zi) | 字(Zi)符(Fu) | 50 | Not null |
下(Xia)面(Mian)是(Shi)课(Ke)程(Cheng)表(Biao)((?)Course)(?)的(De)结(Jie)构(Gou)说(Shuo)明(Ming)
字(Zi)段(Duan)名(Ming)称(Cheng) | 字(Zi)段(Duan)解(Jie)释(Shi) | 字(Zi)段(Duan)类(Lei)型(Xing) | 字(Zi)段(Duan)长(Chang)度(Du) | 约(Yue)束(Shu) |
c_id | 课(Ke)程(Cheng)编(Bian)号(Hao) | 字(Zi)符(Fu) | 10 | PK |
c_name | 课(Ke)程(Cheng)名(Ming)字(Zi) | 字(Zi)符(Fu) | 50 | Not null |
t_id | 教(Jiao)师(Shi)编(Bian)号(Hao) | 字(Zi)符(Fu) | 10 | Not null |
下(Xia)面(Mian)是(Shi)成(Cheng)绩(Ji)表(Biao)((?)SC)(?)的(De)结(Jie)构(Gou)说(Shuo)明(Ming)
字(Zi)段(Duan)名(Ming)称(Cheng) | 字(Zi)段(Duan)解(Jie)释(Shi) | 字(Zi)段(Duan)类(Lei)型(Xing) | 字(Zi)段(Duan)长(Chang)度(Du) | 约(Yue)束(Shu) |
s_id | 学(Xue)号(Hao) | 字(Zi)符(Fu) | 10 | PK |
c_id | 课(Ke)程(Cheng)编(Bian)号(Hao) | 字(Zi)符(Fu) | 10 | Not null |
score | 成(Cheng)绩(Ji) | 数(Shu)值(Zhi) | 3 | Not null |
1、(?)查(Cha)询(Xun)“(?)001”(?)课(Ke)程(Cheng)比(Bi)“(?)002”(?)课(Ke)程(Cheng)成(Cheng)绩(Ji)高(Gao)的(De)所(Suo)有(You)学(Xue)生(Sheng)的(De)学(Xue)号(Hao);(?)
select a.s_id from (select s_id,score from SC where C_ID='001') a,(select s_id,score
from SC where C_ID='002') b
where a.score>b.score and a.s_id=b.s_id;
2、(?)查(Cha)询(Xun)平(Ping)均(Jun)成(Cheng)绩(Ji)大(Da)于(Yu)60分(Fen)的(De)同(Tong)学(Xue)的(De)学(Xue)号(Hao)和(He)平(Ping)均(Jun)成(Cheng)绩(Ji);(?)
select S_ID,avg(score)
from sc
group by S_ID having avg(score) >60;
3、(?)查(Cha)询(Xun)所(Suo)有(You)同(Tong)学(Xue)的(De)学(Xue)号(Hao)、(?)姓(Xing)名(Ming)、(?)选(Xuan)课(Ke)数(Shu)、(?)总(Zong)成(Cheng)绩(Ji);(?)
select Student.S_ID,Student.Sname,count(SC.C_ID),sum(score)
from Student left Outer join SC on Student.S_ID=SC.S_ID
group by Student.S_ID,Sname
4、(?)查(Cha)询(Xun)姓(Xing)“(?)李(Li)”(?)的(De)老(Lao)师(Shi)的(De)个(Ge)数(Shu);(?)
select count(distinct(Tname))
from Teacher
where Tname like '李(Li)%';
5、(?)查(Cha)询(Xun)没(Mei)学(Xue)过(Guo)“(?)叶(Ye)平(Ping)”(?)老(Lao)师(Shi)课(Ke)的(De)同(Tong)学(Xue)的(De)学(Xue)号(Hao)、(?)姓(Xing)名(Ming);(?)
select Student.S_ID,Student.Sname
from Student
where S_ID not in (select distinct( SC.S_ID) from SC,Course,Teacher where SC.C_ID=Course.C_ID and Teacher.T#=Course.T# and Teacher.Tname='叶(Ye)平(Ping)');
6、(?)查(Cha)询(Xun)学(Xue)过(Guo)“(?)001”(?)并(Bing)且(Qie)也(Ye)学(Xue)过(Guo)编(Bian)号(Hao)“(?)002”(?)课(Ke)程(Cheng)的(De)同(Tong)学(Xue)的(De)学(Xue)号(Hao)、(?)姓(Xing)名(Ming);(?)
elect Student.S_ID,Student.Sname from Student,SC where Student.S_ID=SC.S_ID and SC.C_ID='001'and exists( Select * from SC as SC_2 where SC_2.S_ID=SC.S_ID and SC_2.C_ID='002');
7、(?)查(Cha)询(Xun)学(Xue)过(Guo)“(?)叶(Ye)平(Ping)”(?)老(Lao)师(Shi)所(Suo)教(Jiao)的(De)所(Suo)有(You)课(Ke)的(De)同(Tong)学(Xue)的(De)学(Xue)号(Hao)、(?)姓(Xing)名(Ming);(?)
select S_ID,Sname
from Student
where S_ID in (select S_ID from SC ,Course ,Teacher where SC.C_ID=Course.C_ID and Teacher.T#=Course.T# and Teacher.Tname='叶(Ye)平(Ping)' group by S_ID having count(SC.C_ID)=(select count(C_ID) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶(Ye)平(Ping)'));
8、(?)查(Cha)询(Xun)课(Ke)程(Cheng)编(Bian)号(Hao)“(?)002”(?)的(De)成(Cheng)绩(Ji)比(Bi)课(Ke)程(Cheng)编(Bian)号(Hao)“(?)001”(?)课(Ke)程(Cheng)低(Di)的(De)所(Suo)有(You)同(Tong)学(Xue)的(De)学(Xue)号(Hao)、(?)姓(Xing)名(Ming);(?)
Select S_ID,Sname from (select Student.S_ID,Student.Sname,score ,(select score from SC SC_2 where SC_2.S_ID=Student.S_ID and SC_2.C_ID='002') score2
from Student,SC where Student.S_ID=SC.S_ID and C_ID='001') S_2 where score2 < score;
9、(?)查(Cha)询(Xun)所(Suo)有(You)课(Ke)程(Cheng)成(Cheng)绩(Ji)小(Xiao)于(Yu)60分(Fen)的(De)同(Tong)学(Xue)的(De)学(Xue)号(Hao)、(?)姓(Xing)名(Ming);(?)
select S_ID,Sname
from Student
where S_ID not in (select S.S_ID from Student AS S,SC where S.S_ID=SC.S_ID and score>60);
10、(?)查(Cha)询(Xun)没(Mei)有(You)学(Xue)全(Quan)所(Suo)有(You)课(Ke)的(De)同(Tong)学(Xue)的(De)学(Xue)号(Hao)、(?)姓(Xing)名(Ming);(?)
select Student.S_ID,Student.Sname
from Student,SC
where Student.S_ID=SC.S_ID group by Student.S_ID,Student.Sname having count(C_ID) <(select count(C_ID) from Course);
11、(?)查(Cha)询(Xun)至(Zhi)少(Shao)有(You)一(Yi)门(Men)课(Ke)与(Yu)学(Xue)号(Hao)为(Wei)“(?)1001”(?)的(De)同(Tong)学(Xue)所(Suo)学(Xue)相(Xiang)同(Tong)的(De)同(Tong)学(Xue)的(De)学(Xue)号(Hao)和(He)姓(Xing)名(Ming);(?)
select distinct S_ID,Sname from Student,SC whereStudent.S_ID=SC.S_ID and SC.C_ID in (select C_ID from SC where S_ID='1001');
12、(?)查(Cha)询(Xun)至(Zhi)少(Shao)学(Xue)过(Guo)学(Xue)号(Hao)为(Wei)“(?)001”(?)同(Tong)学(Xue)所(Suo)有(You)一(Yi)门(Men)课(Ke)的(De)其(Qi)他(Ta)同(Tong)学(Xue)学(Xue)号(Hao)和(He)姓(Xing)名(Ming);(?)
select distinct SC.S_ID,Sname
from Student,SC
where Student.S_ID=SC.S_ID and C_ID in (select C_ID from SC where S_ID='001');
S((?)S#,SN,SD,SA),(?)其(Qi)中(Zhong)S#,(?)SN,SD,SA分(Fen)别(Bie)代(Dai)表(Biao)学(Xue)号(Hao)、(?)学(Xue)员(Yuan)姓(Xing)名(Ming)、(?)所(Suo)属(Shu)单(Dan)位(Wei)、(?)学(Xue)员(Yuan)年(Nian)龄(Ling)。(?)
C (C#,CN ),(?)其(Qi)中(Zhong)C#,CN分(Fen)别(Bie)代(Dai)表(Biao)课(Ke)程(Cheng)编(Bian)号(Hao)、(?)课(Ke)程(Cheng)名(Ming)称(Cheng)
SC(S#,C#,(?)G),(?)其(Qi)中(Zhong)S#,C#,(?)G分(Fen)别(Bie)代(Dai)表(Biao)学(Xue)号(Hao)、(?)所(Suo)选(Xuan)修(Xiu)的(De)课(Ke)程(Cheng)编(Bian)号(Hao)、(?)学(Xue)习(Xi)成(Cheng)绩(Ji)
请(Qing)使(Shi)用(Yong)2种(Zhong)标(Biao)准(Zhun)SQL语(Yu)句(Ju)洵(Xun)选(Xuan)修(Xiu)课(Ke)程(Cheng)名(Ming)称(Cheng)为(Wei)“(?)税(Shui)收(Shou)基(Ji)础(Chu)”(?)的(De)学(Xue)员(Yuan)学(Xue)号(Hao)和(He)姓(Xing)名(Ming),(?)并(Bing)说(Shuo)明(Ming)其(Qi)优(You)缺(Que)点(Dian) 。(?)
SQL92标(Biao)准(Zhun):(?)
SELECT SN,SD FROM S
WHERE [S#] IN(
SELECT [S#] FROM C,SC
WHERE C.[C#]=SC.[C#]
AND CN=N'税(Shui)收(Shou)基(Ji)础(Chu)')
SQL99标(Biao)准(Zhun):(?)
elect s.s#,s.sn from s
join sc on s.s#=sc.s#
join c on sc.c#=c.c#
where c.cn='税(Shui)收(Shou)基(Ji)础(Chu)'
优(You)点(Dian):(?)
SQL99将(Jiang)连(Lian)接(Jie)条(Tiao)件(Jian)和(He)过(Guo)滤(Lu)条(Tiao)件(Jian)分(Fen)开(Kai),(?)显(Xian)得(De)代(Dai)码(Ma)清(Qing)晰(Xi)。(?)
SQL92书(Shu)写(Xie)简(Jian)单(Dan)易(Yi)于(Yu)理(Li)解(Jie)。(?)
缺(Que)点(Dian):(?)
SQL92连(Lian)接(Jie)条(Tiao)件(Jian)和(He)过(Guo)滤(Lu)条(Tiao)件(Jian)都(Du)写(Xie)在(Zai)一(Yi)起(Qi),(?)不(Bu)利(Li)于(Yu)查(Cha)看(Kan)。(?)
SQL99书(Shu)写(Xie)相(Xiang)对(Dui)麻(Ma)烦(Fan)不(Bu)易(Yi)于(Yu)理(Li)解(Jie)。(?)
1.这(Zhe)么(Me)大(Da)数(Shu)据(Ju)量(Liang)首(Shou)先(Xian)建(Jian)议(Yi) 使(Shi)用(Yong)大(Da)数(Shu)据(Ju)的(De)DB,(?)可(Ke)以(Yi)用(Yong)spring batch 来(Lai)做(Zuo)类(Lei)似(Si)这(Zhe)样(Yang)的(De)处(Chu)理(Li)。(?)定(Ding)量(Liang)向(Xiang)DB存(Cun)储(Chu)数(Shu)据(Ju)。(?)如(Ru)果(Guo)需(Xu)要(Yao)定(Ding)时(Shi),(?)可(Ke)以(Yi)考(Kao)虑(Lu) quartz。(?)
Mysql数(Shu)据(Ju)库(Ku)设(She)计(Ji):
1.读(Du)写(Xie)分(Fen)离(Li);(?)
2.纵(Zong)向(Xiang)横(Heng)向(Xiang)拆(Chai)分(Fen)库(Ku)、(?)表(Biao)。(?)
MySQL的(De)基(Ji)本(Ben)功(Gong)能(Neng)中(Zhong)包(Bao)括(Kuo)replication((?)复(Fu)制(Zhi))(?)功(Gong)能(Neng)。(?)所(Suo)谓(Wei)replication,(?)就(Jiu)是(Shi)确(Que)定(Ding)master以(Yi)及(Ji)与(Yu)之(Zhi)同(Tong)步(Bu)的(De)slave服(Fu)务(Wu)器(Qi),(?)再(Zai)加(Jia)上(Shang)slave将(Jiang)master中(Zhong)写(Xie)入(Ru)的(De)内(Nei)容(Rong)polling过(Guo)来(Lai)更(Geng)新(Xin)自(Zi)身(Shen)内(Nei)容(Rong)的(De)功(Gong)能(Neng)。(?)这(Zhe)样(Yang)slave就(Jiu)是(Shi)master的(De)replica((?)复(Fu)制(Zhi)品(Pin))(?)。(?)这(Zhe)样(Yang)就(Jiu)可(Ke)以(Yi)准(Zhun)备(Bei)多(Duo)台(Tai)内(Nei)容(Rong)相(Xiang)同(Tong)的(De)服(Fu)务(Wu)器(Qi)。(?)
通(Tong)过(Guo)master和(He)salve的(De)replication,(?)准(Zhun)备(Bei)好(Hao)多(Duo)台(Tai)服(Fu)务(Wu)器(Qi)之(Zhi)后(Hou),(?)让(Rang)应(Ying)用(Yong)程(Cheng)序(Xu)服(Fu)务(Wu)器(Qi)通(Tong)过(Guo)负(Fu)载(Zai)均(Jun)衡(Heng)器(Qi)去(Qu)处(Chu)理(Li)查(Cha)询(Xun)slave。(?)这(Zhe)样(Yang)就(Jiu)能(Neng)将(Jiang)查(Cha)询(Xun)分(Fen)散(San)到(Dao)多(Duo)台(Tai)服(Fu)务(Wu)器(Qi)上(Shang)。(?)
应(Ying)用(Yong)程(Cheng)序(Xu)实(Shi)现(Xian)上(Shang)应(Ying)该(Gai)只(Zhi)把(Ba)select等(Deng)读(Du)取(Qu)之(Zhi)类(Lei)的(De)查(Cha)询(Xun)发(Fa)送(Song)给(Gei)负(Fu)载(Zai)均(Jun)衡(Heng)器(Qi),(?)而(?)更(Geng)新(Xin)应(Ying)当(Dang)直(Zhi)接(Jie)发(Fa)送(Song)给(Gei)master。(?)要(Yao)是(Shi)在(Zai)slave上(Shang)执(Zhi)行(Xing)更(Geng)新(Xin)操(Cao)作(Zuo),(?)slave和(He)master的(De)内(Nei)容(Rong)就(Jiu)无(Wu)法(Fa)同(Tong)步(Bu)。(?)MySQL会(Hui)检(Jian)测(Ce)到(Dao)master和(He)slave之(Zhi)间(Jian)内(Nei)容(Rong)差(Cha)异(Yi),(?)并(Bing)停(Ting)止(Zhi)replication,(?)这(Zhe)回(Hui)导(Dao)致(Zhi)系(Xi)统(Tong)故(Gu)障(Zhang)。(?)Slave可(Ke)以(Yi)采(Cai)用(Yong)LVS((?)linux系(Xi)统(Tong)自(Zi)带(Dai)的(De)负(Fu)载(Zai)均(Jun)衡(Heng)器(Qi))(?)实(Shi)现(Xian)查(Cha)询(Xun)的(De)负(Fu)载(Zai)均(Jun)衡(Heng)。(?)
使(Shi)用(Yong)MySQL的(De)replication是(Shi)利(Li)用(Yong)的(De)冗(Rong)余(Yu)化(Hua),(?)实(Shi)现(Xian)冗(Rong)余(Yu)化(Hua)需(Xu)要(Yao)实(Shi)现(Xian)的(De)最(Zui)小(Xiao)服(Fu)务(Wu)器(Qi)数(Shu)量(Liang)是(Shi)4台(Tai),(?)三(San)台(Tai)slave和(He)一(Yi)台(Tai)master,(?)slave为(Wei)什(Shi)么(Me)是(Shi)需(Xu)要(Yao)三(San)台(Tai)呢(Ne),(?)比(Bi)如(Ru)一(Yi)台(Tai)slave死(Si)机(Ji)了(Liao),(?)现(Xian)在(Zai)需(Xu)要(Yao)修(Xiu)复(Fu)再(Zai)次(Ci)上(Shang)线(Xian),(?)那(Na)么(Me)意(Yi)味(Wei)着(Zhuo)你(Ni)必(Bi)须(Xu)停(Ting)止(Zhi)一(Yi)台(Tai)slave来(Lai)复(Fu)制(Zhi)MySQL的(De)数(Shu)据(Ju),(?)如(Ru)果(Guo)只(Zhi)有(You)两(Liang)台(Tai)slave,(?)一(Yi)台(Tai)坏(Huai)了(Liao),(?)你(Ni)就(Jiu)必(Bi)须(Xu)停(Ting)止(Zhi)服(Fu)务(Wu),(?)如(Ru)果(Guo)有(You)三(San)台(Tai),(?)坏(Huai)了(Liao)一(Yi)台(Tai),(?)你(Ni)复(Fu)制(Zhi)数(Shu)据(Ju)时(Shi)停(Ting)止(Zhi)一(Yi)台(Tai),(?)还(Huan)有(You)一(Yi)台(Tai)可(Ke)以(Yi)运(Yun)维(Wei)。(?)
对(Dui)于(Yu)数(Shu)据(Ju)的(De)处(Chu)理(Li)是(Shi)能(Neng)放(Fang)入(Ru)到(Dao)内(Nei)存(Cun)中(Zhong)就(Jiu)尽(Jin)量(Liang)放(Fang)入(Ru)到(Dao)内(Nei)存(Cun)中(Zhong)如(Ru)果(Guo)不(Bu)能(Neng)放(Fang)入(Ru)到(Dao)内(Nei)存(Cun)中(Zhong),(?)可(Ke)以(Yi)利(Li)用(Yong)MySQL的(De)Partitioning。(?)
Partitioning就(Jiu)是(Shi)表(Biao)分(Fen)割(Ge)也(Ye)就(Jiu)是(Shi)讲(Jiang)A表(Biao)和(He)B表(Biao)放(Fang)在(Zai)不(Bu)同(Tong)的(De)服(Fu)务(Wu)器(Qi)上(Shang)。(?)简(Jian)单(Dan)来(Lai)说(Shuo),(?)Partitioning就(Jiu)是(Shi)充(Chong)分(Fen)利(Li)用(Yong)局(Ju)部(Bu)性(Xing)进(Jin)行(Xing)分(Fen)割(Ge),(?)提(Ti)高(Gao)缓(Huan)存(Cun)利(Li)用(Yong)效(Xiao)率(Lu),(?)从(Cong)而(?)实(Shi)现(Xian)Partitioning的(De)效(Xiao)果(Guo)。(?)其(Qi)中(Zhong)最(Zui)重(Zhong)要(Yao)的(De)一(Yi)点(Dian)就(Jiu)是(Shi)以(Yi)Partitioning为(Wei)前(Qian)提(Ti)设(She)计(Ji)的(De)系(Xi)统(Tong)将(Jiang)表(Biao)分(Fen)割(Ge)开(Kai),(?)用(Yong)RDBMS的(De)方(Fang)式(Shi)的(De)话(Hua),(?)对(Dui)于(Yu)一(Yi)对(Dui)多(Duo)的(De)关(Guan)系(Xi)经(Jing)常(Chang)使(Shi)用(Yong)JOIN查(Cha)询(Xun)将(Jiang)两(Liang)张(Zhang)表(Biao)连(Lian)接(Jie)起(Qi)来(Lai)。(?)但(Dan)是(Shi)如(Ru)果(Guo)将(Jiang)表(Biao)分(Fen)割(Ge)开(Kai)了(Liao)之(Zhi)后(Hou),(?)也(Ye)就(Jiu)是(Shi)两(Liang)张(Zhang)表(Biao)不(Bu)在(Zai)同(Tong)一(Yi)个(Ge)数(Shu)据(Ju)库(Ku),(?)不(Bu)在(Zai)同(Tong)一(Yi)个(Ge)服(Fu)务(Wu)器(Qi)上(Shang)怎(Zen)样(Yang)使(Shi)用(Yong)JOIN操(Cao)作(Zuo),(?)这(Zhe)里(Li)需(Xu)要(Yao)注(Zhu)意(Yi)的(De)是(Shi)如(Ru)果(Guo)是(Shi)用(Yong)where in操(Cao)作(Zuo)不(Bu)是(Shi)省(Sheng)了(Liao)一(Yi)些(Xie)麻(Ma)烦(Fan)了(Liao)嘛(Ma)。(?)
MySQL有(You)多(Duo)种(Zhong)存(Cun)储(Chu)引(Yin)擎(Qing),(?)每(Mei)种(Zhong)存(Cun)储(Chu)引(Yin)擎(Qing)有(You)各(Ge)自(Zi)的(De)优(You)缺(Que)点(Dian),(?)可(Ke)以(Yi)择(Ze)优(You)选(Xuan)择(Ze)使(Shi)用(Yong):(?)
MyISAM、(?)InnoDB、(?)MERGE、(?)MEMORY(HEAP)、(?)BDB(BerkeleyDB)、(?)EXAMPLE、(?)FEDERATED、(?)ARCHIVE、(?)CSV、(?)BLACKHOLE。(?)
MySQL支(Zhi)持(Chi)数(Shu)个(Ge)存(Cun)储(Chu)引(Yin)擎(Qing)作(Zuo)为(Wei)对(Dui)不(Bu)同(Tong)表(Biao)的(De)类(Lei)型(Xing)的(De)处(Chu)理(Li)器(Qi)。(?)MySQL存(Cun)储(Chu)引(Yin)擎(Qing)包(Bao)括(Kuo)处(Chu)理(Li)事(Shi)务(Wu)安(An)全(Quan)表(Biao)的(De)引(Yin)擎(Qing)和(He)处(Chu)理(Li)非(Fei)事(Shi)务(Wu)安(An)全(Quan)表(Biao)的(De)引(Yin)擎(Qing)。(?)
·(?) MyISAM管(Guan)理(Li)非(Fei)事(Shi)务(Wu)表(Biao)。(?)它(Ta)提(Ti)供(Gong)高(Gao)速(Su)存(Cun)储(Chu)和(He)检(Jian)索(Suo),(?)以(Yi)及(Ji)全(Quan)文(Wen)搜(Sou)索(Suo)能(Neng)力(Li)。(?)MyISAM在(Zai)所(Suo)有(You)MySQL配(Pei)置(Zhi)里(Li)被(Bei)支(Zhi)持(Chi),(?)它(Ta)是(Shi)默(Mo)认(Ren)的(De)存(Cun)储(Chu)引(Yin)擎(Qing),(?)除(Chu)非(Fei)你(Ni)配(Pei)置(Zhi)MySQL默(Mo)认(Ren)使(Shi)用(Yong)另(Ling)外(Wai)一(Yi)个(Ge)引(Yin)擎(Qing)。(?)
·(?) MEMORY存(Cun)储(Chu)引(Yin)擎(Qing)提(Ti)供(Gong)“(?)内(Nei)存(Cun)中(Zhong)”(?)表(Biao)。(?)MERGE存(Cun)储(Chu)引(Yin)擎(Qing)允(Yun)许(Xu)集(Ji)合(He)将(Jiang)被(Bei)处(Chu)理(Li)同(Tong)样(Yang)的(De)MyISAM表(Biao)作(Zuo)为(Wei)一(Yi)个(Ge)单(Dan)独(Du)的(De)表(Biao)。(?)就(Jiu)像(Xiang)MyISAM一(Yi)样(Yang),(?)MEMORY和(He)MERGE存(Cun)储(Chu)引(Yin)擎(Qing)处(Chu)理(Li)非(Fei)事(Shi)务(Wu)表(Biao),(?)这(Zhe)两(Liang)个(Ge)引(Yin)擎(Qing)也(Ye)都(Du)被(Bei)默(Mo)认(Ren)包(Bao)含(Han)在(Zai)MySQL中(Zhong)。(?)
注(Zhu)释(Shi):(?)MEMORY存(Cun)储(Chu)引(Yin)擎(Qing)正(Zheng)式(Shi)地(Di)被(Bei)确(Que)定(Ding)为(Wei)HEAP引(Yin)擎(Qing)。(?)
·(?) InnoDB和(He)BDB存(Cun)储(Chu)引(Yin)擎(Qing)提(Ti)供(Gong)事(Shi)务(Wu)安(An)全(Quan)表(Biao)。(?)BDB被(Bei)包(Bao)含(Han)在(Zai)为(Wei)支(Zhi)持(Chi)它(Ta)的(De)操(Cao)作(Zuo)系(Xi)统(Tong)发(Fa)布(Bu)的(De)MySQL-Max二(?)进(Jin)制(Zhi)分(Fen)发(Fa)版(Ban)里(Li)。(?)InnoDB也(Ye)默(Mo)认(Ren)被(Bei)包(Bao)括(Kuo)在(Zai)所(Suo) 有(You)MySQL 5.1二(?)进(Jin)制(Zhi)分(Fen)发(Fa)版(Ban)里(Li),(?)你(Ni)可(Ke)以(Yi)按(An)照(Zhao)喜(Xi)好(Hao)通(Tong)过(Guo)配(Pei)置(Zhi)MySQL来(Lai)允(Yun)许(Xu)或(Huo)禁(Jin)止(Zhi)任(Ren)一(Yi)引(Yin)擎(Qing)。(?)
·(?) EXAMPLE存(Cun)储(Chu)引(Yin)擎(Qing)是(Shi)一(Yi)个(Ge)“(?)存(Cun)根(Gen)”(?)引(Yin)擎(Qing),(?)它(Ta)不(Bu)做(Zuo)什(Shi)么(Me)。(?)你(Ni)可(Ke)以(Yi)用(Yong)这(Zhe)个(Ge)引(Yin)擎(Qing)创(Chuang)建(Jian)表(Biao),(?)但(Dan)没(Mei)有(You)数(Shu)据(Ju)被(Bei)存(Cun)储(Chu)于(Yu)其(Qi)中(Zhong)或(Huo)从(Cong)其(Qi)中(Zhong)检(Jian)索(Suo)。(?)这(Zhe)个(Ge)引(Yin)擎(Qing)的(De)目(Mu)的(De)是(Shi)服(Fu)务(Wu),(?)在(Zai) MySQL源(Yuan)代(Dai)码(Ma)中(Zhong)的(De)一(Yi)个(Ge)例(Li)子(Zi),(?)它(Ta)演(Yan)示(Shi)说(Shuo)明(Ming)如(Ru)何(He)开(Kai)始(Shi)编(Bian)写(Xie)新(Xin)存(Cun)储(Chu)引(Yin)擎(Qing)。(?)同(Tong)样(Yang),(?)它(Ta)的(De)主(Zhu)要(Yao)兴(Xing)趣(Qu)是(Shi)对(Dui)开(Kai)发(Fa)者(Zhe)。(?)
·(?) NDB Cluster是(Shi)被(Bei)MySQL Cluster用(Yong)来(Lai)实(Shi)现(Xian)分(Fen)割(Ge)到(Dao)多(Duo)台(Tai)计(Ji)算(Suan)机(Ji)上(Shang)的(De)表(Biao)的(De)存(Cun)储(Chu)引(Yin)擎(Qing)。(?)它(Ta)在(Zai)MySQL-Max 5.1二(?)进(Jin)制(Zhi)分(Fen)发(Fa)版(Ban)里(Li)提(Ti)供(Gong)。(?)这(Zhe)个(Ge)存(Cun)储(Chu)引(Yin)擎(Qing)当(Dang)前(Qian)只(Zhi)被(Bei)Linux, Solaris, 和(He)Mac OS X 支(Zhi)持(Chi)。(?)在(Zai)未(Wei)来(Lai)的(De)MySQL分(Fen)发(Fa)版(Ban)中(Zhong),(?)我(Wo)们(Men)想(Xiang)要(Yao)添(Tian)加(Jia)其(Qi)它(Ta)平(Ping)台(Tai)对(Dui)这(Zhe)个(Ge)引(Yin)擎(Qing)的(De)支(Zhi)持(Chi),(?)包(Bao)括(Kuo)Windows。(?)
·(?) ARCHIVE存(Cun)储(Chu)引(Yin)擎(Qing)被(Bei)用(Yong)来(Lai)无(Wu)索(Suo)引(Yin)地(Di),(?)非(Fei)常(Chang)小(Xiao)地(Di)覆(Fu)盖(Gai)存(Cun)储(Chu)的(De)大(Da)量(Liang)数(Shu)据(Ju)。(?)
·(?) CSV存(Cun)储(Chu)引(Yin)擎(Qing)把(Ba)数(Shu)据(Ju)以(Yi)逗(Dou)号(Hao)分(Fen)隔(Ge)的(De)格(Ge)式(Shi)存(Cun)储(Chu)在(Zai)文(Wen)本(Ben)文(Wen)件(Jian)中(Zhong)。(?)
·(?) BLACKHOLE存(Cun)储(Chu)引(Yin)擎(Qing)接(Jie)受(Shou)但(Dan)不(Bu)存(Cun)储(Chu)数(Shu)据(Ju),(?)并(Bing)且(Qie)检(Jian)索(Suo)总(Zong)是(Shi)返(Fan)回(Hui)一(Yi)个(Ge)空(Kong)集(Ji)。(?)
·(?) FEDERATED存(Cun)储(Chu)引(Yin)擎(Qing)把(Ba)数(Shu)据(Ju)存(Cun)在(Zai)远(Yuan)程(Cheng)数(Shu)据(Ju)库(Ku)中(Zhong)。(?)在(Zai)MySQL 5.1中(Zhong),(?)它(Ta)只(Zhi)和(He)MySQL一(Yi)起(Qi)工(Gong)作(Zuo),(?)使(Shi)用(Yong)MySQL C Client API。(?)在(Zai)未(Wei)来(Lai)的(De)分(Fen)发(Fa)版(Ban)中(Zhong),(?)我(Wo)们(Men)想(Xiang)要(Yao)让(Rang)它(Ta)使(Shi)用(Yong)其(Qi)它(Ta)驱(Qu)动(Dong)器(Qi)或(Huo)客(Ke)户(Hu)端(Duan)连(Lian)接(Jie)方(Fang)法(Fa)连(Lian)接(Jie)到(Dao)另(Ling)外(Wai)的(De)数(Shu)据(Ju)源(Yuan)。(?)
fname | kecheng | fenshu |
张(Zhang)三(San) | 语(Yu)文(Wen) | 81 |
张(Zhang)三(San) | 数(Shu)学(Xue) | 65 |
李(Li)四(Si) | 语(Yu)文(Wen) | 76 |
李(Li)四(Si) | 数(Shu)学(Xue) | 90 |
王(Wang)五(Wu) | 语(Yu)文(Wen) | 61 |
王(Wang)五(Wu) | 数(Shu)学(Xue) | 100 |
王(Wang)五(Wu) | 英(Ying)语(Yu) | 90 |
1.请(Qing)用(Yong)一(Yi)条(Tiao)sql语(Yu)句(Ju)从(Cong)t_result表(Biao)中(Zhong)查(Cha)询(Xun)出(Chu)每(Mei)门(Men)课(Ke)都(Du)大(Da)于(Yu)75分(Fen)的(De)学(Xue)生(Sheng)姓(Xing)名(Ming);(?)
select b.fname from
(select fname,count(kecheng) c from t_result group by fname)a,
(Select fname,kecheng,count(fname) c from t_result where fenshu >75 group by fname)b
where a.fname = b.fname and a.c = b.c
2.请(Qing)用(Yong)一(Yi)条(Tiao)sql写(Xie)出(Chu)总(Zong)分(Fen)排(Pai)名(Ming)前(Qian)三(San)的(De)学(Xue)生(Sheng)姓(Xing)名(Ming),(?)总(Zong)分(Fen),(?)平(Ping)均(Jun)分(Fen)
select fname,sum(fenshu),avg(fenshu) from t_result GROUP By fname order by SUM(fenshu) desc;
org_employee;表(Biao)中(Zhong)字(Zi)段(Duan):(?)雇(Gu)员(Yuan)编(Bian)号(Hao)((?)emp_id)(?),雇(Gu)员(Yuan)姓(Xing)名(Ming)((?)em_name)(?),雇(Gu)员(Yuan)年(Nian)龄(Ling)((?)emp_age)(?),雇(Gu)员(Yuan)部(Bu)门(Men)((?)depart_name)(?);请(Qing)写(Xie)出(Chu)执(Zhi)行(Xing)以(Yi)下(Xia)操(Cao)作(Zuo)的(De)sql语(Yu)句(Ju):(?)
1)(?)向(Xiang)表(Biao)中(Zhong)增(Zeng)加(Jia)一(Yi)条(Tiao)数(Shu)据(Ju):(?)雇(Gu)员(Yuan)编(Bian)号(Hao)((?)1001)(?),(?)雇(Gu)员(Yuan)姓(Xing)名(Ming)((?)张(Zhang)三(San))(?),(?)雇(Gu)员(Yuan)年(Nian)龄(Ling)((?)24)(?),(?)雇(Gu)员(Yuan)部(Bu)门(Men)((?)研(Yan)发(Fa)部(Bu))(?);(?)
INSERT INTO org_employee
VALUES(‘(?)1001’(?),’(?)张(Zhang)三(San)’(?),’(?)24’(?),’(?)研(Yan)发(Fa)部(Bu)’(?));
2)(?)查(Cha)询(Xun)雇(Gu)员(Yuan)年(Nian)龄(Ling)在(Zai)55((?)包(Bao)含(Han))(?)至(Zhi)60((?)不(Bu)包(Bao)含(Han))(?)岁(Sui)之(Zhi)间(Jian)的(De)雇(Gu)员(Yuan)数(Shu)据(Ju)
SELECT * FROM org_employee
WHERE emp_age>=55 and emp_age <60;
3)(?)分(Fen)部(Bu)门(Men)查(Cha)询(Xun)各(Ge)个(Ge)部(Bu)门(Men)的(De)雇(Gu)员(Yuan)数(Shu)量(Liang)
SELECT COUNT(*),depart_name group by depart_name;
4)(?)删(Shan)除(Chu)姓(Xing)名(Ming)为(Wei)张(Zhang)三(San)的(De)雇(Gu)员(Yuan)数(Shu)据(Ju)
Delete from org_employee where em_name =’(?)张(Zhang)三(San)’(?);
5)(?)在(Zai)表(Biao)中(Zhong)增(Zeng)加(Jia)一(Yi)个(Ge)日(Ri)期(Qi)类(Lei)型(Xing)的(De)字(Zi)段(Duan)雇(Gu)员(Yuan)出(Chu)生(Sheng)日(Ri)期(Qi),(?)字(Zi)段(Duan)为(Wei)emp_brithday
Alter table org_employee add(emp_brithday date);
6)(?)将(Jiang)表(Biao)org_employee删(Shan)除(Chu)
drop org_employee;
请(Qing)用(Yong)sql语(Yu)句(Ju)实(Shi)现(Xian)表(Biao)2的(De)查(Cha)询(Xun)结(Jie)果(Guo)
表(Biao)1
ID | matchdate | result |
1 | 2015-02-04 | 胜(Sheng) |
2 | 2015-02-04 | 负(Fu) |
3 | 2015-02-04 | 胜(Sheng) |
4 | 2015-04-07 | 胜(Sheng) |
5 | 2015-04-07 | 胜(Sheng) |
6 | 2015-04-07 | 胜(Sheng) |
表(Biao)2
比(Bi)赛(Sai)日(Ri)期(Qi) | 胜(Sheng) | 负(Fu) |
2015-02-04 | 2 | 1 |
2015-04-07 | 1 | 2 |
SQL语(Yu)句(Ju):(?)
create table t_second( matchdate date, win varchar(3), lose varchar(3) ); insert into t_second (matchdate,win) select matchdate,count(result) from t_test where result ='胜(Sheng)' GROUP BY matchdate; update t_second,(select matchdate,count(result) as lose from t_test where result ='负(Fu)' GROUP BY matchdate)s set t_second.lose = s.lose where t_second.matchdate = s.matchdate;
SELECT…(?) FROM EMP WHERE DEPT_NO NOT IN (SELECT DEPT_NO FROM DEPT WHERE DEPT_CAT=’(?)A’(?));
SELECT…(?) FROM EMP WHERE DEPT_NO NOT EXISTS(SELECT DEPT_NO FROM DEPT WHERE DEPT_CAT=’(?)A’(?));
优(You)化(Hua)的(De)理(Li)由(You):(?)not in 和(He)not exists
如(Ru)果(Guo)查(Cha)询(Xun)语(Yu)句(Ju)使(Shi)用(Yong)了(Liao)not in 那(Na)么(Me)内(Nei)外(Wai)表(Biao)都(Du)进(Jin)行(Xing)全(Quan)表(Biao)扫(Sao)描(Miao),(?)没(Mei)有(You)用(Yong)到(Dao)索(Suo)引(Yin);(?)
而(?)not extsts 的(De)子(Zi)查(Cha)询(Xun)依(Yi)然(Ran)能(Neng)用(Yong)到(Dao)表(Biao)上(Shang)的(De)索(Suo)引(Yin)。(?)所(Suo)以(Yi)无(Wu)论(Lun)那(Na)个(Ge)表(Biao)大(Da),(?)用(Yong)not exists 都(Du)比(Bi)not in 要(Yao)快(Kuai)。(?)
使(Shi)用(Yong)ETL工(Gong)具(Ju),(?)如(Ru)infomatic,datastage,kettle等(Deng),(?)可(Ke)以(Yi)完(Wan)成(Cheng)异(Yi)构(Gou)数(Shu)据(Ju)库(Ku)的(De)迁(Qian)移(Yi)
以(Yi)kettle为(Wei)例(Li)
表(Biao)输(Shu)入(Ru)选(Xuan)择(Ze) oracle库(Ku)
表(Biao)输(Shu)出(Chu)选(Xuan)择(Ze)DB库(Ku)
循(Xun)环(Huan)执(Zhi)行(Xing)可(Ke)以(Yi)进(Jin)行(Xing)全(Quan)库(Ku)迁(Qian)移(Yi)
姓(Xing)名(Ming):(?)name | 课(Ke)程(Cheng):(?)subject | 分(Fen)数(Shu):(?)score | 学(Xue)号(Hao):(?)stuid |
张(Zhang)三(San) | 数(Shu)学(Xue) | 89 | 1 |
张(Zhang)三(San) | 语(Yu)文(Wen) | 80 | 1 |
张(Zhang)三(San) | 英(Ying)语(Yu) | 70 | 1 |
李(Li)四(Si) | 数(Shu)学(Xue) | 90 | 2 |
李(Li)四(Si) | 语(Yu)文(Wen) | 70 | 2 |
李(Li)四(Si) | 英(Ying)语(Yu) | 80 | 2 |
1.计(Ji)算(Suan)每(Mei)个(Ge)人(Ren)的(De)总(Zong)成(Cheng)绩(Ji)并(Bing)排(Pai)名(Ming)((?)要(Yao)求(Qiu)显(Xian)示(Shi)字(Zi)段(Duan):(?)姓(Xing)名(Ming),(?)总(Zong)成(Cheng)绩(Ji))(?)
select name,sum(score) s from t_stu GROUP BY name;
2.列(Lie)出(Chu)各(Ge)门(Men)课(Ke)程(Cheng)成(Cheng)绩(Ji)最(Zui)好(Hao)的(De)学(Xue)生(Sheng)((?)要(Yao)求(Qiu)显(Xian)示(Shi)字(Zi)段(Duan):(?)学(Xue)号(Hao),(?)姓(Xing)名(Ming),(?)科(Ke)目(Mu),(?)成(Cheng)绩(Ji))(?)
select t1.stuid,t1.name,t1.subject,t1.score from t_stu t1,
(select subject,MAX(score) as maxscore from t_stu group by subject)t2
where t1.subject = t2.subject and t1.score = t2.maxscore;
3.列(Lie)出(Chu)各(Ge)个(Ge)课(Ke)程(Cheng)的(De)平(Ping)均(Jun)成(Cheng)绩(Ji)((?)要(Yao)求(Qiu)显(Xian)示(Shi)字(Zi)段(Duan);(?)课(Ke)程(Cheng),(?)平(Ping)均(Jun)成(Cheng)绩(Ji))(?)
select subject,AVG(score)平(Ping)均(Jun)成(Cheng)绩(Ji) from t_stu
group by subject;
Stu表(Biao)
sid((?)学(Xue)生(Sheng)ID)(?) | sname(姓(Xing)名(Ming)) | sage((?)年(Nian)龄(Ling))(?) |
1 | 张(Zhang)三(San) | 23 |
2 | 李(Li)四(Si) | 25 |
3 | 王(Wang)五(Wu) | 24 |
Grade表(Biao)
gid((?)分(Fen)数(Shu)主(Zhu)键(Jian))(?) | cid((?)课(Ke)程(Cheng)ID)(?) | sid(学(Xue)生(Sheng)主(Zhu)键(Jian)) | grade((?)分(Fen)数(Shu))(?) |
1 | 2 | 3 | 86 |
2 | 2 | 2 | 79 |
3 | 1 | 2 | 80 |
4 | 1 | 1 | 81 |
5 | 1 | 3 | 70 |
6 | 2 | 1 | 78 |
请(Qing)写(Xie)sql统(Tong)计(Ji)出(Chu)有(You)两(Liang)门(Men)以(Yi)上(Shang)的(De)课(Ke)的(De)分(Fen)数(Shu)在(Zai)80分(Fen)以(Yi)上(Shang)的(De)学(Xue)生(Sheng)的(De)姓(Xing)名(Ming)和(He)年(Nian)龄(Ling)?(?)
Select sname,sage from Stu where Stu.sid in (
Select sid from Grade where grade >80
)
字(Zi)段(Duan)名(Ming)称(Cheng) | 字(Zi)段(Duan)解(Jie)释(Shi) | 字(Zi)段(Duan)类(Lei)型(Xing) | 字(Zi)段(Duan)长(Chang)度(Du) | 约(Yue)束(Shu) |
s_id | 学(Xue)号(Hao) | 字(Zi)符(Fu) | 10 | PK |
s_name | 学(Xue)生(Sheng)姓(Xing)名(Ming) | 字(Zi)符(Fu) | 50 | Not null |
s_age | 学(Xue)生(Sheng)年(Nian)龄(Ling) | 数(Shu)值(Zhi) | 3 | Not null |
s-sex | 学(Xue)生(Sheng)性(Xing)别(Bie) | 字(Zi)符(Fu)((?)男(Nan):(?)1女(Nu):(?)0)(?) | 1 | Not null |
下(Xia)面(Mian)是(Shi)教(Jiao)师(Shi)表(Biao)((?)Teacher )(?)的(De)结(Jie)构(Gou)说(Shuo)明(Ming)
字(Zi)段(Duan)名(Ming)称(Cheng) | 字(Zi)段(Duan)解(Jie)释(Shi) | 字(Zi)段(Duan)类(Lei)型(Xing) | 字(Zi)段(Duan)长(Chang)度(Du) | 约(Yue)束(Shu) |
t_id | 教(Jiao)师(Shi)编(Bian)号(Hao) | 字(Zi)符(Fu) | 10 | PK |
t_name | 教(Jiao)师(Shi)名(Ming)字(Zi) | 字(Zi)符(Fu) | 50 | Not null |
下(Xia)面(Mian)是(Shi)课(Ke)程(Cheng)表(Biao)((?)Course)(?)的(De)结(Jie)构(Gou)说(Shuo)明(Ming)
字(Zi)段(Duan)名(Ming)称(Cheng) | 字(Zi)段(Duan)解(Jie)释(Shi) | 字(Zi)段(Duan)类(Lei)型(Xing) | 字(Zi)段(Duan)长(Chang)度(Du) | 约(Yue)束(Shu) |
c_id | 课(Ke)程(Cheng)编(Bian)号(Hao) | 字(Zi)符(Fu) | 10 | PK |
c_name | 课(Ke)程(Cheng)名(Ming)字(Zi) | 字(Zi)符(Fu) | 50 | Not null |
t_id | 教(Jiao)师(Shi)编(Bian)号(Hao) | 字(Zi)符(Fu) | 10 | Not null |
下(Xia)面(Mian)是(Shi)成(Cheng)绩(Ji)表(Biao)((?)SC)(?)的(De)结(Jie)构(Gou)说(Shuo)明(Ming)
字(Zi)段(Duan)名(Ming)称(Cheng) | 字(Zi)段(Duan)解(Jie)释(Shi) | 字(Zi)段(Duan)类(Lei)型(Xing) | 字(Zi)段(Duan)长(Chang)度(Du) | 约(Yue)束(Shu) |
s_id | 学(Xue)号(Hao) | 字(Zi)符(Fu) | 10 | PK |
c_id | 课(Ke)程(Cheng)编(Bian)号(Hao) | 字(Zi)符(Fu) | 10 | Not null |
score | 成(Cheng)绩(Ji) | 数(Shu)值(Zhi) | 3 | Not null |
查(Cha)询(Xun)同(Tong)名(Ming)同(Tong)姓(Xing)学(Xue)生(Sheng)名(Ming)单(Dan),(?)并(Bing)统(Tong)计(Ji)同(Tong)名(Ming)人(Ren)数(Shu)
select 姓(Xing)名(Ming),(?)count(学(Xue)号(Hao)) as num
from 学(Xue)生(Sheng)表(Biao)
group by 姓(Xing)名(Ming)
having count(学(Xue)号(Hao))>1 --保(Bao)证(Zheng)查(Cha)找(Zhao)到(Dao)的(De)都(Du)是(Shi)存(Cun)在(Zai)2个(Ge)以(Yi)上(Shang)((?)包(Bao)括(Kuo)2)(?)的(De)同(Tong)名(Ming)同(Tong)姓(Xing)的(De)姓(Xing)名(Ming)及(Ji)人(Ren)数(Shu)。(?)
查(Cha)询(Xun)平(Ping)均(Jun)成(Cheng)绩(Ji)大(Da)于(Yu)60分(Fen)的(De)学(Xue)生(Sheng)的(De)学(Xue)号(Hao)和(He)平(Ping)均(Jun)成(Cheng)绩(Ji);(?)
Select s_id,avg(score) from sc groupby s_id having avg(score)>60
查(Cha)询(Xun)姓(Xing)“(?)李(Li)”(?)的(De)老(Lao)师(Shi)的(De)个(Ge)数(Shu);(?)
Select count(*),teacher.t_name from teacher where teacher.t_name like '李(Li)%'
Sql server方(Fang)案(An):(?)
select top 10 * from t where id not in
(select top 30 id from t order by id ) orde by id
Mysql方(Fang)案(An):(?)select * from t order by id limit 30,10
Oracle方(Fang)案(An):(?)
select rownum num,tid from (select rownum num,tid from t_test) where num>=30 and num<=41;
A表(Biao)
ID | NAME |
B表(Biao)
ID | NAME | OTHER |
1 | Aaa | Ddd |
2 | Bbb | Eee |
insert into a select id,name from b;
它(Ta)是(Shi)从(Cong)一(Yi)个(Ge)或(Huo)几(Ji)个(Ge)基(Ji)本(Ben)表(Biao)中(Zhong)导(Dao)出(Chu)的(De) 表(Biao),(?)是(Shi)从(Cong)现(Xian)有(You)基(Ji)本(Ben)表(Biao)中(Zhong)抽(Chou)取(Qu)若(Ruo)干(Gan)子(Zi)集(Ji)组(Zu)成(Cheng)用(Yong)户(Hu)的(De)“(?)专(Zhuan)用(Yong)表(Biao)”(?)。(?)
基(Ji)本(Ben)表(Biao):(?)基(Ji)本(Ben)表(Biao)的(De)定(Ding)义(Yi)指(Zhi)建(Jian)立(Li)基(Ji)本(Ben)关(Guan)系(Xi)模(Mo)式(Shi),
而(?)变(Bian)更(Geng)则(Ze)是(Shi)指(Zhi)对(Dui)数(Shu)据(Ju)库(Ku)中(Zhong)已(Yi)存(Cun)在(Zai)的(De)基(Ji)本(Ben)表(Biao)进(Jin)行(Xing)删(Shan)除(Chu)与(Yu)修(Xiu)改(Gai)。(?)
区(Qu)别(Bie):(?)
1、(?)视(Shi)图(Tu)是(Shi)已(Yi)经(Jing)编(Bian)译(Yi)好(Hao)的(De)sql语(Yu)句(Ju)。(?)而(?)表(Biao)不(Bu)是(Shi)
2、(?)视(Shi)图(Tu)没(Mei)有(You)实(Shi)际(Ji)的(De)物(Wu)理(Li)记(Ji)录(Lu)。(?)而(?)表(Biao)有(You)。(?)
3、(?)表(Biao)是(Shi)内(Nei)容(Rong),(?)视(Shi)图(Tu)是(Shi)窗(Chuang)口(Kou)
4、(?)表(Biao)只(Zhi)用(Yong)物(Wu)理(Li)空(Kong)间(Jian)而(?)视(Shi)图(Tu)不(Bu)占(Zhan)用(Yong)物(Wu)理(Li)空(Kong)间(Jian),(?)
视(Shi)图(Tu)只(Zhi)是(Shi)逻(Luo)辑(Ji)概(Gai)念(Nian)的(De)存(Cun)在(Zai),(?)表(Biao)可(Ke)以(Yi)及(Ji)时(Shi)对(Dui)它(Ta)进(Jin)行(Xing)修(Xiu)改(Gai),(?)
但(Dan)视(Shi)图(Tu)只(Zhi)能(Neng)有(You)创(Chuang)建(Jian)的(De)语(Yu)句(Ju)来(Lai)修(Xiu)改(Gai)
5、(?)表(Biao)是(Shi)内(Nei)模(Mo)式(Shi),(?)试(Shi)图(Tu)是(Shi)外(Wai)模(Mo)式(Shi)
6、(?)视(Shi)图(Tu)是(Shi)查(Cha)看(Kan)数(Shu)据(Ju)表(Biao)的(De)一(Yi)种(Zhong)方(Fang)法(Fa),(?)
可(Ke)以(Yi)查(Cha)询(Xun)数(Shu)据(Ju)表(Biao)中(Zhong)某(Mou)些(Xie)字(Zi)段(Duan)构(Gou)成(Cheng)的(De)数(Shu)据(Ju),(?)
只(Zhi)是(Shi)一(Yi)些(Xie)SQL语(Yu)句(Ju)的(De)集(Ji)合(He)。(?)从(Cong)安(An)全(Quan)的(De)角(Jiao)度(Du)说(Shuo),(?)
视(Shi)图(Tu)可(Ke)以(Yi)不(Bu)给(Gei)用(Yong)户(Hu)接(Jie)触(Chu)数(Shu)据(Ju)表(Biao),(?)从(Cong)而(?)不(Bu)知(Zhi)道(Dao)表(Biao)结(Jie)构(Gou)。(?)
7、(?)表(Biao)属(Shu)于(Yu)全(Quan)局(Ju)模(Mo)式(Shi)中(Zhong)的(De)表(Biao),(?)是(Shi)实(Shi)表(Biao);(?)视(Shi)图(Tu)属(Shu)于(Yu)局(Ju)部(Bu)模(Mo)式(Shi)的(De)表(Biao),(?)
是(Shi)虚(Xu)表(Biao)。(?)
8、(?)视(Shi)图(Tu)的(De)建(Jian)立(Li)和(He)删(Shan)除(Chu)只(Zhi)影(Ying)响(Xiang)视(Shi)图(Tu)本(Ben)身(Shen),(?)不(Bu)影(Ying)响(Xiang)对(Dui)应(Ying)的(De)基(Ji)本(Ben)表(Biao)。(?)
联(Lian)系(Xi):(?)视(Shi)图(Tu)((?)view)(?)是(Shi)在(Zai)基(Ji)本(Ben)表(Biao)之(Zhi)上(Shang)建(Jian)立(Li)的(De)表(Biao),(?)它(Ta)的(De)结(Jie)构(Gou)((?)
即(Ji)所(Suo)定(Ding)义(Yi)的(De)列(Lie))(?)和(He)内(Nei)容(Rong)((?)即(Ji)所(Suo)有(You)数(Shu)据(Ju)行(Xing))(?)都(Du)来(Lai)自(Zi)基(Ji)本(Ben)表(Biao),(?)
它(Ta)依(Yi)据(Ju)基(Ji)本(Ben)表(Biao)存(Cun)在(Zai)而(?)存(Cun)在(Zai)。(?)一(Yi)个(Ge)视(Shi)图(Tu)可(Ke)以(Yi)对(Dui)应(Ying)一(Yi)个(Ge)基(Ji)本(Ben)表(Biao),(?)
也(Ye)可(Ke)以(Yi)对(Dui)应(Ying)多(Duo)个(Ge)基(Ji)本(Ben)表(Biao)。(?)
视(Shi)图(Tu)是(Shi)基(Ji)本(Ben)表(Biao)的(De)抽(Chou)象(Xiang)和(He)在(Zai)逻(Luo)辑(Ji)意(Yi)义(Yi)上(Shang)建(Jian)立(Li)的(De)新(Xin)关(Guan)系(Xi)
事(Shi)务(Wu)与(Yu)锁(Suo)是(Shi)不(Bu)同(Tong)的(De)。(?)事(Shi)务(Wu)具(Ju)有(You)ACID((?)原(Yuan)子(Zi)性(Xing)、(?)一(Yi)致(Zhi)性(Xing)、(?)隔(Ge)离(Li)性(Xing)和(He)持(Chi)久(Jiu)性(Xing))(?),(?)锁(Suo)是(Shi)用(Yong)于(Yu)解(Jie)决(Jue)隔(Ge)离(Li)性(Xing)的(De)一(Yi)种(Zhong)机(Ji)制(Zhi)。(?)事(Shi)务(Wu)的(De)隔(Ge)离(Li)级(Ji)别(Bie)通(Tong)过(Guo)锁(Suo)的(De)机(Ji)制(Zhi)来(Lai)实(Shi)现(Xian)。(?)另(Ling)外(Wai)锁(Suo)有(You)不(Bu)同(Tong)的(De)粒(Li)度(Du),(?)同(Tong)时(Shi)事(Shi)务(Wu)也(Ye)是(Shi)有(You)不(Bu)同(Tong)的(De)隔(Ge)离(Li)级(Ji)别(Bie)的(De)((?)一(Yi)般(Ban)有(You)四(Si)种(Zhong):(?)读(Du)未(Wei)提(Ti)交(Jiao)Read uncommitted,(?)
读(Du)已(Yi)提(Ti)交(Jiao)Read committed,(?)
可(Ke)重(Zhong)复(Fu)读(Du)Repeatable read,(?)
可(Ke)串(Chuan)行(Xing)化(Hua)Serializable)(?)。(?)
在(Zai)具(Ju)体(Ti)的(De)程(Cheng)序(Xu)设(She)计(Ji)中(Zhong),(?)开(Kai)启(Qi)事(Shi)务(Wu)其(Qi)实(Shi)是(Shi)要(Yao)数(Shu)据(Ju)库(Ku)支(Zhi)持(Chi)才(Cai)行(Xing)的(De),(?)如(Ru)果(Guo)数(Shu)据(Ju)库(Ku)本(Ben)身(Shen)不(Bu)支(Zhi)持(Chi)事(Shi)务(Wu),(?)那(Na)么(Me)仍(Reng)然(Ran)无(Wu)法(Fa)确(Que)保(Bao)你(Ni)在(Zai)程(Cheng)序(Xu)中(Zhong)使(Shi)用(Yong)的(De)事(Shi)务(Wu)是(Shi)有(You)效(Xiao)的(De)。(?)
锁(Suo)可(Ke)以(Yi)分(Fen)为(Wei)乐(Le)观(Guan)锁(Suo)和(He)悲(Bei)观(Guan)锁(Suo):(?)
悲(Bei)观(Guan)锁(Suo):(?)认(Ren)为(Wei)在(Zai)修(Xiu)改(Gai)数(Shu)据(Ju)库(Ku)数(Shu)据(Ju)的(De)这(Zhe)段(Duan)时(Shi)间(Jian)里(Li)存(Cun)在(Zai)着(Zhuo)也(Ye)想(Xiang)修(Xiu)改(Gai)此(Ci)数(Shu)据(Ju)的(De)事(Shi)务(Wu);(?)
乐(Le)观(Guan)锁(Suo):(?)认(Ren)为(Wei)在(Zai)短(Duan)暂(Zan)的(De)时(Shi)间(Jian)里(Li)不(Bu)会(Hui)有(You)事(Shi)务(Wu)来(Lai)修(Xiu)改(Gai)此(Ci)数(Shu)据(Ju)库(Ku)的(De)数(Shu)据(Ju);(?)
我(Wo)们(Men)一(Yi)般(Ban)意(Yi)义(Yi)上(Shang)讲(Jiang)的(De)锁(Suo)其(Qi)实(Shi)是(Shi)指(Zhi)悲(Bei)观(Guan)锁(Suo),(?)在(Zai)数(Shu)据(Ju)处(Chu)理(Li)过(Guo)程(Cheng)中(Zhong),(?)将(Jiang)数(Shu)据(Ju)置(Zhi)于(Yu)锁(Suo)定(Ding)状(Zhuang)态(Tai)((?)由(You)数(Shu)据(Ju)库(Ku)实(Shi)现(Xian))(?)
如(Ru)果(Guo)开(Kai)启(Qi)了(Liao)事(Shi)务(Wu),(?)在(Zai)事(Shi)务(Wu)没(Mei)提(Ti)交(Jiao)之(Zhi)前(Qian),(?)别(Bie)人(Ren)是(Shi)无(Wu)法(Fa)修(Xiu)改(Gai)该(Gai)数(Shu)据(Ju)的(De);(?)如(Ru)果(Guo)rollback,(?)你(Ni)在(Zai)本(Ben)次(Ci)事(Shi)务(Wu)中(Zhong)的(De)修(Xiu)改(Gai)将(Jiang)撤(Che)消(Xiao)((?)不(Bu)是(Shi)别(Bie)人(Ren)修(Xiu)改(Gai)的(De)会(Hui)没(Mei)有(You),(?)因(Yin)为(Wei)别(Bie)人(Ren)此(Ci)时(Shi)无(Wu)法(Fa)修(Xiu)改(Gai))(?)。(?)当(Dang)然(Ran),(?)前(Qian)提(Ti)是(Shi)你(Ni)使(Shi)用(Yong)的(De)数(Shu)据(Ju)库(Ku)支(Zhi)持(Chi)事(Shi)务(Wu)。(?)还(Huan)有(You)一(Yi)个(Ge)要(Yao)注(Zhu)意(Yi)的(De)是(Shi),(?)部(Bu)分(Fen)数(Shu)据(Ju)库(Ku)支(Zhi)持(Chi)自(Zi)定(Ding)义(Yi)SQL锁(Suo)覆(Fu)盖(Gai)事(Shi)务(Wu)隔(Ge)离(Li)级(Ji)别(Bie)默(Mo)认(Ren)的(De)锁(Suo)机(Ji)制(Zhi),(?)如(Ru)果(Guo)使(Shi)用(Yong)了(Liao)自(Zi)定(Ding)义(Yi)的(De)锁(Suo),(?)那(Na)就(Jiu)另(Ling)当(Dang)别(Bie)论(Lun)。(?)
重(Zhong)点(Dian):(?)一(Yi)般(Ban)事(Shi)务(Wu)使(Shi)用(Yong)的(De)是(Shi)悲(Bei)观(Guan)锁(Suo)((?)具(Ju)有(You)排(Pai)他(Ta)性(Xing))(?)
写(Xie)一(Yi)个(Ge)SQL语(Yu)句(Ju),(?)查(Cha)询(Xun)选(Xuan)修(Xiu)了(Liao)计(Ji)算(Suan)机(Ji)原(Yuan)理(Li)的(De)学(Xue)生(Sheng)学(Xue)号(Hao)和(He)姓(Xing)名(Ming)
select 学(Xue)号(Hao),(?)姓(Xing)名(Ming) from Student where 学(Xue)号(Hao) in
((?)select 学(Xue)号(Hao) from Sc where 课(Ke)程(Cheng)编(Bian)号(Hao) in
(Select 课(Ke)程(Cheng)编(Bian)号(Hao) from Course where 课(Ke)程(Cheng)名(Ming)称(Cheng) = ‘(?)计(Ji)算(Suan)机(Ji)原(Yuan)理(Li)’(?)))(?)
写(Xie)一(Yi)个(Ge)SQL语(Yu)句(Ju),(?)查(Cha)询(Xun)“(?)周(Zhou)星(Xing)驰(Chi)”(?)同(Tong)学(Xue)选(Xuan)修(Xiu)了(Liao)的(De)课(Ke)程(Cheng)名(Ming)字(Zi)
select 课(Ke)程(Cheng)名(Ming)称(Cheng) from Course where 编(Bian)号(Hao) in (
select Sc.课(Ke)程(Cheng)编(Bian)号(Hao) from Student,Sc where Student.姓(Xing)名(Ming)=’(?)周(Zhou)星(Xing)驰(Chi)’(?) and Student.学(Xue)号(Hao) = Sc.学(Xue)号(Hao))
写(Xie)一(Yi)个(Ge)SQL语(Yu)句(Ju),(?)查(Cha)询(Xun)选(Xuan)修(Xiu)了(Liao)5门(Men)课(Ke)程(Cheng)的(De)学(Xue)生(Sheng)学(Xue)号(Hao)和(He)姓(Xing)名(Ming)
Select 学(Xue)号(Hao),(?)姓(Xing)名(Ming) from Student where 学(Xue)号(Hao) in (
Select 学(Xue)号(Hao),(?)count(课(Ke)程(Cheng)编(Bian)号(Hao)) from Sc group by 学(Xue)号(Hao) having count(课(Ke)程(Cheng)编(Bian)号(Hao))>=5)
Student(S#,Sname,Sage,Ssex)学(Xue)生(Sheng)表(Biao)
S#:(?)学(Xue)号(Hao)
Sname:学(Xue)生(Sheng)姓(Xing)名(Ming)
Sage:(?)学(Xue)生(Sheng)年(Nian)龄(Ling)
Ssex: 学(Xue)生(Sheng)性(Xing)别(Bie)
Course(C#,Cname,T#)课(Ke)程(Cheng)表(Biao)
C#,课(Ke)程(Cheng)编(Bian)号(Hao);(?)
Cname:课(Ke)程(Cheng)名(Ming)字(Zi);(?)
T#:(?)教(Jiao)师(Shi)编(Bian)号(Hao);(?)
SC(S#,C#,score)成(Cheng)绩(Ji)表(Biao)
S#:学(Xue)号(Hao);(?)
C#,课(Ke)程(Cheng)编(Bian)号(Hao);(?)
Score:(?)成(Cheng)绩(Ji);(?)
Teacher(T#,Tname)教(Jiao)师(Shi)表(Biao)
T#:教(Jiao)师(Shi)编(Bian)号(Hao);(?)
Tname:教(Jiao)师(Shi)名(Ming)字(Zi)
查(Cha)询(Xun)“(?)001”(?)课(Ke)程(Cheng)比(Bi)“(?)002”(?)课(Ke)程(Cheng)成(Cheng)绩(Ji)高(Gao)的(De)所(Suo)有(You)学(Xue)生(Sheng)学(Xue)号(Hao)
select SC1.S#
from SC SC1 JOIN SC SC2 ON SC1.S#=SC2.S#
WHERE SC1.C#='001' AND SC2.C#='002' AND SC1.score>SC2.score
查(Cha)询(Xun)平(Ping)均(Jun)成(Cheng)绩(Ji)大(Da)于(Yu)60分(Fen)的(De)同(Tong)学(Xue)的(De)学(Xue)号(Hao)和(He)平(Ping)均(Jun)成(Cheng)绩(Ji)
select S#,AVG(score) 平(Ping)均(Jun)成(Cheng)绩(Ji)
from SC
group by S#
having AVG(score)>60
查(Cha)询(Xun)所(Suo)有(You)同(Tong)学(Xue)的(De)学(Xue)号(Hao)、(?)姓(Xing)名(Ming)、(?)选(Xuan)课(Ke)数(Shu)、(?)总(Zong)成(Cheng)绩(Ji)
select Student.S#,Sname,COUNT(*) 选(Xuan)课(Ke)数(Shu),SUM(score) 总(Zong)成(Cheng)绩(Ji)
from Student JOIN SC on Student.S#=SC.S#
group by Student.S#,Sname
查(Cha)询(Xun)姓(Xing)“(?)李(Li)”(?)的(De)老(Lao)师(Shi)的(De)个(Ge)数(Shu)
Select count(*) from Teacher where Tname like ‘(?)李(Li)%’(?);
查(Cha)询(Xun)没(Mei)学(Xue)过(Guo)“(?)叶(Ye)平(Ping)”(?)老(Lao)师(Shi)课(Ke)的(De)同(Tong)学(Xue)的(De)学(Xue)号(Hao)、(?)姓(Xing)名(Ming)
SELECT stu2.s#,stu2.stuname FROM Student stu2 WHERE stu2.s# NOT IN
(SELECT DISTINCT stu.s# FROM student stu, course c,teacher tea,score score
WHERE stu.s#= score.s# AND course.c#= score.c#
AND tea.t#= course.t#AND tea.tname= '叶(Ye)平(Ping)' )
JVM
内(Nei)存(Cun)管(Guan)理(Li)的(De)职(Zhi)责(Ze)为(Wei)分(Fen)配(Pei)内(Nei)存(Cun),(?)回(Hui)收(Shou)内(Nei)存(Cun)。(?) 没(Mei)有(You)自(Zi)动(Dong)内(Nei)存(Cun)管(Guan)理(Li)的(De)语(Yu)言(Yan)/平(Ping)台(Tai)容(Rong)易(Yi)发(Fa)生(Sheng)错(Cuo)误(Wu)。(?)
典(Dian)型(Xing)的(De)问(Wen)题(Ti)包(Bao)括(Kuo)悬(Xuan)挂(Gua)指(Zhi)针(Zhen)问(Wen)题(Ti),(?)一(Yi)个(Ge)指(Zhi)针(Zhen)引(Yin)用(Yong)了(Liao)一(Yi)个(Ge)已(Yi)经(Jing)被(Bei)回(Hui)收(Shou)的(De)内(Nei)存(Cun)地(Di)址(Zhi),(?)导(Dao)致(Zhi)程(Cheng)序(Xu)的(De)运(Yun)行(Xing)完(Wan)全(Quan)不(Bu)可(Ke)知(Zhi)。(?)
另(Ling)一(Yi)个(Ge)典(Dian)型(Xing)问(Wen)题(Ti)为(Wei)内(Nei)存(Cun)泄(Xie)露(Lu),(?)内(Nei)存(Cun)已(Yi)经(Jing)分(Fen)配(Pei),(?)但(Dan)是(Shi)已(Yi)经(Jing)没(Mei)有(You)了(Liao)指(Zhi)向(Xiang)该(Gai)内(Nei)存(Cun)的(De)指(Zhi)针(Zhen),(?)导(Dao)致(Zhi)内(Nei)存(Cun)泄(Xie)露(Lu)。(?) 程(Cheng)序(Xu)员(Yuan)要(Yao)花(Hua)费(Fei)大(Da)量(Liang)时(Shi)间(Jian)在(Zai)调(Diao)试(Shi)该(Gai)类(Lei)问(Wen)题(Ti)上(Shang)。(?)
JVM中(Zhong)类(Lei)的(De)装(Zhuang)载(Zai)是(Shi)由(You)类(Lei)加(Jia)载(Zai)器(Qi)((?)ClassLoader)(?)和(He)它(Ta)的(De)子(Zi)类(Lei)来(Lai)实(Shi)现(Xian)的(De),(?)Java中(Zhong)的(De)类(Lei)加(Jia)载(Zai)器(Qi)是(Shi)一(Yi)个(Ge)重(Zhong)要(Yao)的(De)Java运(Yun)行(Xing)时(Shi)系(Xi)统(Tong)组(Zu)件(Jian),(?)它(Ta)负(Fu)责(Ze)在(Zai)运(Yun)行(Xing)时(Shi)查(Cha)找(Zhao)和(He)装(Zhuang)入(Ru)类(Lei)文(Wen)件(Jian)中(Zhong)的(De)类(Lei)。(?)
由(You)于(Yu)Java的(De)跨(Kua)平(Ping)台(Tai)性(Xing),(?)经(Jing)过(Guo)编(Bian)译(Yi)的(De)Java源(Yuan)程(Cheng)序(Xu)并(Bing)不(Bu)是(Shi)一(Yi)个(Ge)可(Ke)执(Zhi)行(Xing)程(Cheng)序(Xu),(?)而(?)是(Shi)一(Yi)个(Ge)或(Huo)多(Duo)个(Ge)类(Lei)文(Wen)件(Jian)。(?)当(Dang)Java程(Cheng)序(Xu)需(Xu)要(Yao)使(Shi)用(Yong)某(Mou)个(Ge)类(Lei)时(Shi),(?)JVM会(Hui)确(Que)保(Bao)这(Zhe)个(Ge)类(Lei)已(Yi)经(Jing)被(Bei)加(Jia)载(Zai)、(?)连(Lian)接(Jie)((?)验(Yan)证(Zheng)、(?)准(Zhun)备(Bei)和(He)解(Jie)析(Xi))(?)和(He)初(Chu)始(Shi)化(Hua)。(?)类(Lei)的(De)加(Jia)载(Zai)是(Shi)指(Zhi)把(Ba)类(Lei)的(De).class文(Wen)件(Jian)中(Zhong)的(De)数(Shu)据(Ju)读(Du)入(Ru)到(Dao)内(Nei)存(Cun)中(Zhong),(?)通(Tong)常(Chang)是(Shi)创(Chuang)建(Jian)一(Yi)个(Ge)字(Zi)节(Jie)数(Shu)组(Zu)读(Du)入(Ru).class文(Wen)件(Jian),(?)然(Ran)后(Hou)产(Chan)生(Sheng)与(Yu)所(Suo)加(Jia)载(Zai)类(Lei)对(Dui)应(Ying)的(De)Class对(Dui)象(Xiang)。(?)加(Jia)载(Zai)完(Wan)成(Cheng)后(Hou),(?)Class对(Dui)象(Xiang)还(Huan)不(Bu)完(Wan)整(Zheng),(?)所(Suo)以(Yi)此(Ci)时(Shi)的(De)类(Lei)还(Huan)不(Bu)可(Ke)用(Yong)。(?)当(Dang)类(Lei)被(Bei)加(Jia)载(Zai)后(Hou)就(Jiu)进(Jin)入(Ru)连(Lian)接(Jie)阶(Jie)段(Duan),(?)这(Zhe)一(Yi)阶(Jie)段(Duan)包(Bao)括(Kuo)验(Yan)证(Zheng)、(?)准(Zhun)备(Bei)((?)为(Wei)静(Jing)态(Tai)变(Bian)量(Liang)分(Fen)配(Pei)内(Nei)存(Cun)并(Bing)设(She)置(Zhi)默(Mo)认(Ren)的(De)初(Chu)始(Shi)值(Zhi))(?)和(He)解(Jie)析(Xi)((?)将(Jiang)符(Fu)号(Hao)引(Yin)用(Yong)替(Ti)换(Huan)为(Wei)直(Zhi)接(Jie)引(Yin)用(Yong))(?)三(San)个(Ge)步(Bu)骤(Zhou)。(?)最(Zui)后(Hou)JVM对(Dui)类(Lei)进(Jin)行(Xing)初(Chu)始(Shi)化(Hua),(?)包(Bao)括(Kuo):(?)1)如(Ru)果(Guo)类(Lei)存(Cun)在(Zai)直(Zhi)接(Jie)的(De)父(Fu)类(Lei)并(Bing)且(Qie)这(Zhe)个(Ge)类(Lei)还(Huan)没(Mei)有(You)被(Bei)初(Chu)始(Shi)化(Hua),(?)那(Na)么(Me)就(Jiu)先(Xian)初(Chu)始(Shi)化(Hua)父(Fu)类(Lei);(?)2)如(Ru)果(Guo)类(Lei)中(Zhong)存(Cun)在(Zai)初(Chu)始(Shi)化(Hua)语(Yu)句(Ju),(?)就(Jiu)依(Yi)次(Ci)执(Zhi)行(Xing)这(Zhe)些(Xie)初(Chu)始(Shi)化(Hua)语(Yu)句(Ju)。(?)
(?)类(Lei)的(De)加(Jia)载(Zai)是(Shi)由(You)类(Lei)加(Jia)载(Zai)器(Qi)完(Wan)成(Cheng)的(De),(?)类(Lei)加(Jia)载(Zai)器(Qi)包(Bao)括(Kuo):(?)根(Gen)加(Jia)载(Zai)器(Qi)((?)BootStrap)(?)、(?)扩(Kuo)展(Zhan)加(Jia)载(Zai)器(Qi)((?)Extension)(?)、(?)系(Xi)统(Tong)加(Jia)载(Zai)器(Qi)((?)System)(?)和(He)用(Yong)户(Hu)自(Zi)定(Ding)义(Yi)类(Lei)加(Jia)载(Zai)器(Qi)((?)java.lang.ClassLoader的(De)子(Zi)类(Lei))(?)。(?)从(Cong)Java 2((?)JDK 1.2)(?)开(Kai)始(Shi),(?)类(Lei)加(Jia)载(Zai)过(Guo)程(Cheng)采(Cai)取(Qu)了(Liao)父(Fu)亲(Qin)委(Wei)托(Tuo)机(Ji)制(Zhi)((?)PDM)(?)。(?)PDM更(Geng)好(Hao)的(De)保(Bao)证(Zheng)了(Liao)Java平(Ping)台(Tai)的(De)安(An)全(Quan)性(Xing),(?)在(Zai)该(Gai)机(Ji)制(Zhi)中(Zhong),(?)JVM自(Zi)带(Dai)的(De)Bootstrap是(Shi)根(Gen)加(Jia)载(Zai)器(Qi),(?)其(Qi)他(Ta)的(De)加(Jia)载(Zai)器(Qi)都(Du)有(You)且(Qie)仅(Jin)有(You)一(Yi)个(Ge)父(Fu)类(Lei)加(Jia)载(Zai)器(Qi)。(?)类(Lei)的(De)加(Jia)载(Zai)首(Shou)先(Xian)请(Qing)求(Qiu)父(Fu)类(Lei)加(Jia)载(Zai)器(Qi)加(Jia)载(Zai),(?)父(Fu)类(Lei)加(Jia)载(Zai)器(Qi)无(Wu)能(Neng)为(Wei)力(Li)时(Shi)才(Cai)由(You)其(Qi)子(Zi)类(Lei)加(Jia)载(Zai)器(Qi)自(Zi)行(Xing)加(Jia)载(Zai)。(?)JVM不(Bu)会(Hui)向(Xiang)Java程(Cheng)序(Xu)提(Ti)供(Gong)对(Dui)Bootstrap的(De)引(Yin)用(Yong)。(?)下(Xia)面(Mian)是(Shi)关(Guan)于(Yu)几(Ji)个(Ge)类(Lei)加(Jia)载(Zai)器(Qi)的(De)说(Shuo)明(Ming):(?)
Bootstrap:(?)一(Yi)般(Ban)用(Yong)本(Ben)地(Di)代(Dai)码(Ma)实(Shi)现(Xian),(?)负(Fu)责(Ze)加(Jia)载(Zai)JVM基(Ji)础(Chu)核(He)心(Xin)类(Lei)库(Ku)((?)rt.jar)(?);(?)
Extension:(?)从(Cong)java.ext.dirs系(Xi)统(Tong)属(Shu)性(Xing)所(Suo)指(Zhi)定(Ding)的(De)目(Mu)录(Lu)中(Zhong)加(Jia)载(Zai)类(Lei)库(Ku),(?)它(Ta)的(De)父(Fu)加(Jia)载(Zai)器(Qi)是(Shi)Bootstrap;(?)
System:(?)又(You)叫(Jiao)应(Ying)用(Yong)类(Lei)加(Jia)载(Zai)器(Qi),(?)其(Qi)父(Fu)类(Lei)是(Shi)Extension。(?)它(Ta)是(Shi)应(Ying)用(Yong)最(Zui)广(Guang)泛(Fan)的(De)类(Lei)加(Jia)载(Zai)器(Qi)。(?)它(Ta)从(Cong)环(Huan)境(Jing)变(Bian)量(Liang)classpath或(Huo)者(Zhe)系(Xi)统(Tong)属(Shu)性(Xing)java.class.path所(Suo)指(Zhi)定(Ding)的(De)目(Mu)录(Lu)中(Zhong)记(Ji)载(Zai)类(Lei),(?)是(Shi)用(Yong)户(Hu)自(Zi)定(Ding)义(Yi)加(Jia)载(Zai)器(Qi)的(De)默(Mo)认(Ren)父(Fu)加(Jia)载(Zai)器(Qi)。(?)
答(Da):JVM原(Yuan)理(Li):(?)
JVM是(Shi)Java Virtual Machine((?)Java虚(Xu)拟(Ni)机(Ji))(?)的(De)缩(Suo)写(Xie),(?)它(Ta)是(Shi)整(Zheng)个(Ge)java实(Shi)现(Xian)跨(Kua)平(Ping)台(Tai)的(De)最(Zui)核(He)心(Xin)的(De)部(Bu)分(Fen),(?)所(Suo)有(You)的(De)Java程(Cheng)序(Xu)会(Hui)首(Shou)先(Xian)被(Bei)编(Bian)译(Yi)为(Wei).class的(De)类(Lei)文(Wen)件(Jian),(?)这(Zhe)种(Zhong)类(Lei)文(Wen)件(Jian)可(Ke)以(Yi)在(Zai)虚(Xu)拟(Ni)机(Ji)上(Shang)执(Zhi)行(Xing),(?)也(Ye)就(Jiu)是(Shi)说(Shuo)class并(Bing)不(Bu)直(Zhi)接(Jie)与(Yu)机(Ji)器(Qi)的(De)操(Cao)作(Zuo)系(Xi)统(Tong)相(Xiang)对(Dui)应(Ying),(?)而(?)是(Shi)经(Jing)过(Guo)虚(Xu)拟(Ni)机(Ji)间(Jian)接(Jie)与(Yu)操(Cao)作(Zuo)系(Xi)统(Tong)交(Jiao)互(Hu),(?)由(You)虚(Xu)拟(Ni)机(Ji)将(Jiang)程(Cheng)序(Xu)解(Jie)释(Shi)给(Gei)本(Ben)地(Di)系(Xi)统(Tong)执(Zhi)行(Xing)。(?)JVM是(Shi)Java平(Ping)台(Tai)的(De)基(Ji)础(Chu),(?)和(He)实(Shi)际(Ji)的(De)机(Ji)器(Qi)一(Yi)样(Yang),(?)它(Ta)也(Ye)有(You)自(Zi)己(Ji)的(De)指(Zhi)令(Ling)集(Ji),(?)并(Bing)且(Qie)在(Zai)运(Yun)行(Xing)时(Shi)操(Cao)作(Zuo)不(Bu)同(Tong)的(De)内(Nei)存(Cun)区(Qu)域(Yu)。(?)JVM通(Tong)过(Guo)抽(Chou)象(Xiang)操(Cao)作(Zuo)系(Xi)统(Tong)和(He)CPU结(Jie)构(Gou),(?)提(Ti)供(Gong)了(Liao)一(Yi)种(Zhong)与(Yu)平(Ping)台(Tai)无(Wu)关(Guan)的(De)代(Dai)码(Ma)执(Zhi)行(Xing)方(Fang)法(Fa),(?)即(Ji)与(Yu)特(Te)殊(Shu)的(De)实(Shi)现(Xian)方(Fang)法(Fa)、(?)主(Zhu)机(Ji)硬(Ying)件(Jian)、(?)主(Zhu)机(Ji)操(Cao)作(Zuo)系(Xi)统(Tong)无(Wu)关(Guan)。(?)JVM的(De)主(Zhu)要(Yao)工(Gong)作(Zuo)是(Shi)解(Jie)释(Shi)自(Zi)己(Ji)的(De)指(Zhi)令(Ling)集(Ji)((?)即(Ji)字(Zi)节(Jie)码(Ma))(?)到(Dao)CPU的(De)指(Zhi)令(Ling)集(Ji)或(Huo)对(Dui)应(Ying)的(De)系(Xi)统(Tong)调(Diao)用(Yong),(?)保(Bao)护(Hu)用(Yong)户(Hu)免(Mian)被(Bei)恶(E)意(Yi)程(Cheng)序(Xu)骚(Sao)扰(Rao)。(?)JVM对(Dui)上(Shang)层(Ceng)的(De)Java源(Yuan)文(Wen)件(Jian)是(Shi)不(Bu)关(Guan)心(Xin)的(De),(?)它(Ta)关(Guan)注(Zhu)的(De)只(Zhi)是(Shi)由(You)源(Yuan)文(Wen)件(Jian)生(Sheng)成(Cheng)的(De)类(Lei)文(Wen)件(Jian)((?).class文(Wen)件(Jian))(?)。(?)
内(Nei)存(Cun)泄(Xie)漏(Lou)与(Yu)溢(Yi)出(Chu)的(De)区(Qu)别(Bie):(?)
1) 内(Nei)存(Cun)泄(Xie)漏(Lou)是(Shi)指(Zhi)分(Fen)配(Pei)出(Chu)去(Qu)的(De)内(Nei)存(Cun)无(Wu)法(Fa)回(Hui)收(Shou)了(Liao)。(?)
2) 内(Nei)存(Cun)溢(Yi)出(Chu)是(Shi)指(Zhi)程(Cheng)序(Xu)要(Yao)求(Qiu)的(De)内(Nei)存(Cun),(?)超(Chao)出(Chu)了(Liao)系(Xi)统(Tong)所(Suo)能(Neng)分(Fen)配(Pei)的(De)范(Fan)围(Wei),(?)从(Cong)而(?)发(Fa)生(Sheng)溢(Yi)出(Chu)。(?)比(Bi)如(Ru)用(Yong)byte类(Lei)型(Xing)的(De)变(Bian)量(Liang)存(Cun)储(Chu)10000这(Zhe)个(Ge)数(Shu)据(Ju),(?)就(Jiu)属(Shu)于(Yu)内(Nei)存(Cun)溢(Yi)出(Chu)。(?)
3) 内(Nei)存(Cun)溢(Yi)出(Chu)是(Shi)提(Ti)供(Gong)的(De)内(Nei)存(Cun)不(Bu)够(Gou);(?)内(Nei)存(Cun)泄(Xie)漏(Lou)是(Shi)无(Wu)法(Fa)再(Zai)提(Ti)供(Gong)内(Nei)存(Cun)资(Zi)源(Yuan)。(?)
何(He)时(Shi)产(Chan)生(Sheng)内(Nei)存(Cun)泄(Xie)漏(Lou):(?)
1) 静(Jing)态(Tai)集(Ji)合(He)类(Lei):(?)在(Zai)使(Shi)用(Yong)Set、(?)Vector、(?)HashMap等(Deng)集(Ji)合(He)类(Lei)的(De)时(Shi)候(Hou)需(Xu)要(Yao)特(Te)别(Bie)注(Zhu)意(Yi),(?)有(You)可(Ke)能(Neng)会(Hui)发(Fa)生(Sheng)内(Nei)存(Cun)泄(Xie)漏(Lou)。(?)当(Dang)这(Zhe)些(Xie)集(Ji)合(He)被(Bei)定(Ding)义(Yi)成(Cheng)静(Jing)态(Tai)的(De)时(Shi)候(Hou),(?)由(You)于(Yu)它(Ta)们(Men)的(De)生(Sheng)命(Ming)周(Zhou)期(Qi)跟(Gen)应(Ying)用(Yong)程(Cheng)序(Xu)一(Yi)样(Yang)长(Chang),(?)这(Zhe)时(Shi)候(Hou),(?)就(Jiu)有(You)可(Ke)能(Neng)会(Hui)发(Fa)生(Sheng)内(Nei)存(Cun)泄(Xie)漏(Lou)。(?)
2) 监(Jian)听(Ting)器(Qi):(?)在(Zai)Java中(Zhong),(?)我(Wo)们(Men)经(Jing)常(Chang)会(Hui)使(Shi)用(Yong)到(Dao)监(Jian)听(Ting)器(Qi),(?)如(Ru)对(Dui)某(Mou)个(Ge)控(Kong)件(Jian)添(Tian)加(Jia)单(Dan)击(Ji)监(Jian)听(Ting)器(Qi)addOnClickListener(),(?)但(Dan)往(Wang)往(Wang)释(Shi)放(Fang)对(Dui)象(Xiang)的(De)时(Shi)候(Hou)会(Hui)忘(Wang)记(Ji)删(Shan)除(Chu)监(Jian)听(Ting)器(Qi),(?)这(Zhe)就(Jiu)有(You)可(Ke)能(Neng)造(Zao)成(Cheng)内(Nei)存(Cun)泄(Xie)漏(Lou)。(?)好(Hao)的(De)方(Fang)法(Fa)就(Jiu)是(Shi),(?)在(Zai)释(Shi)放(Fang)对(Dui)象(Xiang)的(De)时(Shi)候(Hou),(?)应(Ying)该(Gai)记(Ji)住(Zhu)释(Shi)放(Fang)所(Suo)有(You)监(Jian)听(Ting)器(Qi),(?)这(Zhe)就(Jiu)能(Neng)避(Bi)免(Mian)了(Liao)因(Yin)为(Wei)监(Jian)听(Ting)器(Qi)而(?)导(Dao)致(Zhi)的(De)内(Nei)存(Cun)泄(Xie)漏(Lou)。(?)
3) 各(Ge)种(Zhong)连(Lian)接(Jie):(?)Java中(Zhong)的(De)连(Lian)接(Jie)包(Bao)括(Kuo)数(Shu)据(Ju)库(Ku)连(Lian)接(Jie)、(?)网(Wang)络(Luo)连(Lian)接(Jie)和(He)io连(Lian)接(Jie),(?)如(Ru)果(Guo)没(Mei)有(You)显(Xian)式(Shi)调(Diao)用(Yong)其(Qi)close()方(Fang)法(Fa),(?)是(Shi)不(Bu)会(Hui)自(Zi)动(Dong)关(Guan)闭(Bi)的(De),(?)这(Zhe)些(Xie)连(Lian)接(Jie)就(Jiu)不(Bu)能(Neng)被(Bei)GC回(Hui)收(Shou)而(?)导(Dao)致(Zhi)内(Nei)存(Cun)泄(Xie)漏(Lou)。(?)一(Yi)般(Ban)情(Qing)况(Kuang)下(Xia),(?)在(Zai)try代(Dai)码(Ma)块(Kuai)里(Li)创(Chuang)建(Jian)连(Lian)接(Jie),(?)在(Zai)finally里(Li)释(Shi)放(Fang)连(Lian)接(Jie),(?)就(Jiu)能(Neng)够(Gou)避(Bi)免(Mian)此(Ci)类(Lei)内(Nei)存(Cun)泄(Xie)漏(Lou)。(?)
4) 外(Wai)部(Bu)模(Mo)块(Kuai)的(De)引(Yin)用(Yong):(?)调(Diao)用(Yong)外(Wai)部(Bu)模(Mo)块(Kuai)的(De)时(Shi)候(Hou),(?)也(Ye)应(Ying)该(Gai)注(Zhu)意(Yi)防(Fang)止(Zhi)内(Nei)存(Cun)泄(Xie)漏(Lou)。(?)如(Ru)模(Mo)块(Kuai)A调(Diao)用(Yong)了(Liao)外(Wai)部(Bu)模(Mo)块(Kuai)B的(De)一(Yi)个(Ge)方(Fang)法(Fa),(?)如(Ru):(?)public void register(Object o)。(?)这(Zhe)个(Ge)方(Fang)法(Fa)有(You)可(Ke)能(Neng)就(Jiu)使(Shi)得(De)A模(Mo)块(Kuai)持(Chi)有(You)传(Chuan)入(Ru)对(Dui)象(Xiang)的(De)引(Yin)用(Yong),(?)这(Zhe)时(Shi)候(Hou)需(Xu)要(Yao)查(Cha)看(Kan)B模(Mo)块(Kuai)是(Shi)否(Fou)提(Ti)供(Gong)了(Liao)去(Qu)除(Chu)引(Yin)用(Yong)的(De)方(Fang)法(Fa),(?)如(Ru)unregister()。(?)这(Zhe)种(Zhong)情(Qing)况(Kuang)容(Rong)易(Yi)忽(Hu)略(Lue),(?)而(?)且(Qie)发(Fa)生(Sheng)了(Liao)内(Nei)存(Cun)泄(Xie)漏(Lou)的(De)话(Hua),(?)比(Bi)较(Jiao)难(Nan)察(Cha)觉(Jue),(?)应(Ying)该(Gai)在(Zai)编(Bian)写(Xie)代(Dai)码(Ma)过(Guo)程(Cheng)中(Zhong)就(Jiu)应(Ying)该(Gai)注(Zhu)意(Yi)此(Ci)类(Lei)问(Wen)题(Ti)。(?)
5) 单(Dan)例(Li)模(Mo)式(Shi):(?)使(Shi)用(Yong)单(Dan)例(Li)模(Mo)式(Shi)的(De)时(Shi)候(Hou)也(Ye)有(You)可(Ke)能(Neng)导(Dao)致(Zhi)内(Nei)存(Cun)泄(Xie)漏(Lou)。(?)因(Yin)为(Wei)单(Dan)例(Li)对(Dui)象(Xiang)初(Chu)始(Shi)化(Hua)后(Hou)将(Jiang)在(Zai)JVM的(De)整(Zheng)个(Ge)生(Sheng)命(Ming)周(Zhou)期(Qi)内(Nei)存(Cun)在(Zai),(?)如(Ru)果(Guo)它(Ta)持(Chi)有(You)一(Yi)个(Ge)外(Wai)部(Bu)对(Dui)象(Xiang)((?)生(Sheng)命(Ming)周(Zhou)期(Qi)比(Bi)较(Jiao)短(Duan))(?)的(De)引(Yin)用(Yong),(?)那(Na)么(Me)这(Zhe)个(Ge)外(Wai)部(Bu)对(Dui)象(Xiang)就(Jiu)不(Bu)能(Neng)被(Bei)回(Hui)收(Shou),(?)而(?)导(Dao)致(Zhi)内(Nei)存(Cun)泄(Xie)漏(Lou)。(?)如(Ru)果(Guo)这(Zhe)个(Ge)外(Wai)部(Bu)对(Dui)象(Xiang)还(Huan)持(Chi)有(You)其(Qi)它(Ta)对(Dui)象(Xiang)的(De)引(Yin)用(Yong),(?)那(Na)么(Me)内(Nei)存(Cun)泄(Xie)漏(Lou)会(Hui)更(Geng)严(Yan)重(Zhong),(?)因(Yin)此(Ci)需(Xu)要(Yao)特(Te)别(Bie)注(Zhu)意(Yi)此(Ci)类(Lei)情(Qing)况(Kuang)。(?)这(Zhe)种(Zhong)情(Qing)况(Kuang)就(Jiu)需(Xu)要(Yao)考(Kao)虑(Lu)下(Xia)单(Dan)例(Li)模(Mo)式(Shi)的(De)设(She)计(Ji)会(Hui)不(Bu)会(Hui)有(You)问(Wen)题(Ti),(?)应(Ying)该(Gai)怎(Zen)样(Yang)保(Bao)证(Zheng)不(Bu)会(Hui)产(Chan)生(Sheng)内(Nei)存(Cun)泄(Xie)漏(Lou)问(Wen)题(Ti)。(?)
GC线(Xian)程(Cheng)是(Shi)守(Shou)护(Hu)线(Xian)程(Cheng)。(?)线(Xian)程(Cheng)分(Fen)为(Wei)守(Shou)护(Hu)线(Xian)程(Cheng)和(He)非(Fei)守(Shou)护(Hu)线(Xian)程(Cheng)((?)即(Ji)用(Yong)户(Hu)线(Xian)程(Cheng))(?)。(?)只(Zhi)要(Yao)当(Dang)前(Qian)JVM实(Shi)例(Li)中(Zhong)尚(Shang)存(Cun)在(Zai)任(Ren)何(He)一(Yi)个(Ge)非(Fei)守(Shou)护(Hu)线(Xian)程(Cheng)没(Mei)有(You)结(Jie)束(Shu),(?)守(Shou)护(Hu)线(Xian)程(Cheng)就(Jiu)全(Quan)部(Bu)工(Gong)作(Zuo);(?)只(Zhi)有(You)当(Dang)最(Zui)后(Hou)一(Yi)个(Ge)非(Fei)守(Shou)护(Hu)线(Xian)程(Cheng)结(Jie)束(Shu)时(Shi),(?)守(Shou)护(Hu)线(Xian)程(Cheng)随(Sui)着(Zhuo)JVM一(Yi)同(Tong)结(Jie)束(Shu)工(Gong)作(Zuo)。(?)
类(Lei)加(Jia)载(Zai)器(Qi)按(An)照(Zhao)层(Ceng)次(Ci),(?)从(Cong)顶(Ding)层(Ceng)到(Dao)底(Di)层(Ceng),(?)分(Fen)为(Wei)以(Yi)下(Xia)三(San)种(Zhong):(?)
((?)1)(?)启(Qi)动(Dong)类(Lei)加(Jia)载(Zai)器(Qi)((?)Bootstrap ClassLoader)(?)
这(Zhe)个(Ge)类(Lei)加(Jia)载(Zai)器(Qi)负(Fu)责(Ze)将(Jiang)存(Cun)放(Fang)在(Zai)JAVA_HOME/lib下(Xia)的(De),(?)或(Huo)者(Zhe)被(Bei)-Xbootclasspath参(Can)数(Shu)所(Suo)指(Zhi)定(Ding)的(De)路(Lu)径(Jing)中(Zhong)的(De),(?)并(Bing)且(Qie)是(Shi)虚(Xu)拟(Ni)机(Ji)识(Shi)别(Bie)的(De)类(Lei)库(Ku)加(Jia)载(Zai)到(Dao)虚(Xu)拟(Ni)机(Ji)内(Nei)存(Cun)中(Zhong)。(?)启(Qi)动(Dong)类(Lei)加(Jia)载(Zai)器(Qi)无(Wu)法(Fa)被(Bei)Java程(Cheng)序(Xu)直(Zhi)接(Jie)引(Yin)用(Yong)。(?)
((?)2)(?)扩(Kuo)展(Zhan)类(Lei)加(Jia)载(Zai)器(Qi)((?)Extension ClassLoader)(?)
这(Zhe)个(Ge)加(Jia)载(Zai)器(Qi)负(Fu)责(Ze)加(Jia)载(Zai)JAVA_HOME/lib/ext目(Mu)录(Lu)中(Zhong)的(De),(?)或(Huo)者(Zhe)被(Bei)java.ext.dirs系(Xi)统(Tong)变(Bian)量(Liang)所(Suo)指(Zhi)定(Ding)的(De)路(Lu)径(Jing)中(Zhong)的(De)所(Suo)有(You)类(Lei)库(Ku),(?)开(Kai)发(Fa)者(Zhe)可(Ke)以(Yi)直(Zhi)接(Jie)使(Shi)用(Yong)扩(Kuo)展(Zhan)类(Lei)加(Jia)载(Zai)器(Qi)
((?)3)(?)应(Ying)用(Yong)程(Cheng)序(Xu)类(Lei)加(Jia)载(Zai)器(Qi)((?)Application ClassLoader)(?)
这(Zhe)个(Ge)加(Jia)载(Zai)器(Qi)是(Shi)ClassLoader中(Zhong)getSystemClassLoader()方(Fang)法(Fa)的(De)返(Fan)回(Hui)值(Zhi),(?)所(Suo)以(Yi)一(Yi)般(Ban)也(Ye)称(Cheng)它(Ta)为(Wei)系(Xi)统(Tong)类(Lei)加(Jia)载(Zai)器(Qi)。(?)它(Ta)负(Fu)责(Ze)加(Jia)载(Zai)用(Yong)户(Hu)类(Lei)路(Lu)径(Jing)((?)Classpath)(?)上(Shang)所(Suo)指(Zhi)定(Ding)的(De)类(Lei)库(Ku),(?)可(Ke)直(Zhi)接(Jie)使(Shi)用(Yong)这(Zhe)个(Ge)加(Jia)载(Zai)器(Qi),(?)如(Ru)果(Guo)应(Ying)用(Yong)程(Cheng)序(Xu)没(Mei)有(You)自(Zi)定(Ding)义(Yi)自(Zi)己(Ji)的(De)类(Lei)加(Jia)载(Zai)器(Qi),(?)一(Yi)般(Ban)情(Qing)况(Kuang)下(Xia)这(Zhe)个(Ge)就(Jiu)是(Shi)程(Cheng)序(Xu)中(Zhong)默(Mo)认(Ren)的(De)类(Lei)加(Jia)载(Zai)器(Qi)
双(Shuang)亲(Qin)委(Wei)派(Pai)模(Mo)型(Xing):(?)
双(Shuang)亲(Qin)委(Wei)派(Pai)模(Mo)型(Xing)要(Yao)求(Qiu)除(Chu)了(Liao)顶(Ding)层(Ceng)的(De)启(Qi)动(Dong)类(Lei)加(Jia)载(Zai)器(Qi)外(Wai),(?)其(Qi)他(Ta)的(De)类(Lei)加(Jia)载(Zai)器(Qi)都(Du)应(Ying)当(Dang)有(You)自(Zi)己(Ji)的(De)父(Fu)类(Lei)加(Jia)载(Zai)器(Qi)。(?)这(Zhe)里(Li)类(Lei)加(Jia)载(Zai)器(Qi)之(Zhi)间(Jian)的(De)父(Fu)子(Zi)关(Guan)系(Xi)一(Yi)般(Ban)不(Bu)会(Hui)以(Yi)继(Ji)承(Cheng)关(Guan)系(Xi)来(Lai)实(Shi)现(Xian),(?)而(?)是(Shi)都(Du)使(Shi)用(Yong)组(Zu)合(He)关(Guan)系(Xi)来(Lai)复(Fu)用(Yong)父(Fu)加(Jia)载(Zai)器(Qi)的(De)代(Dai)码(Ma)
工(Gong)作(Zuo)过(Guo)程(Cheng):(?)
如(Ru)果(Guo)一(Yi)个(Ge)类(Lei)加(Jia)载(Zai)器(Qi)收(Shou)到(Dao)了(Liao)类(Lei)加(Jia)载(Zai)的(De)请(Qing)求(Qiu),(?)它(Ta)首(Shou)先(Xian)不(Bu)会(Hui)自(Zi)己(Ji)去(Qu)尝(Chang)试(Shi)加(Jia)载(Zai)这(Zhe)个(Ge)类(Lei),(?)而(?)是(Shi)把(Ba)这(Zhe)个(Ge)请(Qing)求(Qiu)委(Wei)派(Pai)给(Gei)父(Fu)类(Lei)加(Jia)载(Zai)器(Qi)去(Qu)完(Wan)成(Cheng),(?)每(Mei)一(Yi)个(Ge)层(Ceng)次(Ci)的(De)类(Lei)加(Jia)载(Zai)器(Qi)都(Du)是(Shi)如(Ru)此(Ci),(?)因(Yin)此(Ci)所(Suo)有(You)的(De)加(Jia)载(Zai)请(Qing)求(Qiu)最(Zui)终(Zhong)都(Du)应(Ying)该(Gai)传(Chuan)递(Di)到(Dao)顶(Ding)层(Ceng)的(De)启(Qi)动(Dong)类(Lei)加(Jia)载(Zai)器(Qi)中(Zhong),(?)只(Zhi)有(You)当(Dang)父(Fu)类(Lei)加(Jia)载(Zai)器(Qi)反(Fan)馈(Kui)自(Zi)己(Ji)无(Wu)法(Fa)完(Wan)成(Cheng)这(Zhe)个(Ge)请(Qing)求(Qiu)((?)它(Ta)的(De)搜(Sou)索(Suo)范(Fan)围(Wei)中(Zhong)没(Mei)有(You)找(Zhao)到(Dao)所(Suo)需(Xu)的(De)类(Lei))(?)时(Shi),(?)子(Zi)加(Jia)载(Zai)器(Qi)才(Cai)会(Hui)尝(Chang)试(Shi)自(Zi)己(Ji)去(Qu)加(Jia)载(Zai)。(?)
好(Hao)处(Chu):(?)
Java类(Lei)随(Sui)着(Zhuo)它(Ta)的(De)类(Lei)加(Jia)载(Zai)器(Qi)一(Yi)起(Qi)具(Ju)备(Bei)了(Liao)一(Yi)种(Zhong)带(Dai)有(You)优(You)先(Xian)级(Ji)的(De)层(Ceng)次(Ci)关(Guan)系(Xi)。(?)例(Li)如(Ru)类(Lei)Object,(?)它(Ta)放(Fang)在(Zai)rt.jar中(Zhong),(?)无(Wu)论(Lun)哪(Na)一(Yi)个(Ge)类(Lei)加(Jia)载(Zai)器(Qi)要(Yao)加(Jia)载(Zai)这(Zhe)个(Ge)类(Lei),(?)最(Zui)终(Zhong)都(Du)是(Shi)委(Wei)派(Pai)给(Gei)启(Qi)动(Dong)类(Lei)加(Jia)载(Zai)器(Qi)进(Jin)行(Xing)加(Jia)载(Zai),(?)因(Yin)此(Ci)Object类(Lei)在(Zai)程(Cheng)序(Xu)的(De)各(Ge)种(Zhong)类(Lei)加(Jia)载(Zai)器(Qi)环(Huan)境(Jing)中(Zhong)都(Du)是(Shi)同(Tong)一(Yi)个(Ge)类(Lei),(?)判(Pan)断(Duan)两(Liang)个(Ge)类(Lei)是(Shi)否(Fou)相(Xiang)同(Tong)是(Shi)通(Tong)过(Guo)classloader.class这(Zhe)种(Zhong)方(Fang)式(Shi)进(Jin)行(Xing)的(De),(?)所(Suo)以(Yi)哪(Na)怕(Pa)是(Shi)同(Tong)一(Yi)个(Ge)class文(Wen)件(Jian)如(Ru)果(Guo)被(Bei)两(Liang)个(Ge)classloader加(Jia)载(Zai),(?)那(Na)么(Me)他(Ta)们(Men)也(Ye)是(Shi)不(Bu)同(Tong)的(De)类(Lei)。(?)
1、(?)对(Dui)于(Yu)GC来(Lai)说(Shuo),(?)当(Dang)程(Cheng)序(Xu)员(Yuan)创(Chuang)建(Jian)对(Dui)象(Xiang)时(Shi),(?)GC就(Jiu)开(Kai)始(Shi)监(Jian)控(Kong)这(Zhe)个(Ge)对(Dui)象(Xiang)的(De)地(Di)址(Zhi)、(?)大(Da)小(Xiao)以(Yi)及(Ji)使(Shi)用(Yong)情(Qing)况(Kuang)。(?)通(Tong)常(Chang),(?)GC采(Cai)用(Yong)有(You)向(Xiang)图(Tu)的(De)方(Fang)式(Shi)记(Ji)录(Lu)和(He)管(Guan)理(Li)堆(Dui)(heap)中(Zhong)的(De)所(Suo)有(You)对(Dui)象(Xiang)。(?)通(Tong)过(Guo)这(Zhe)种(Zhong)方(Fang)式(Shi)确(Que)定(Ding)哪(Na)些(Xie)对(Dui)象(Xiang)是(Shi)"可(Ke)达(Da)的(De)",(?)哪(Na)些(Xie)对(Dui)象(Xiang)是(Shi)"不(Bu)可(Ke)达(Da)的(De)"。(?)当(Dang)GC确(Que)定(Ding)一(Yi)些(Xie)对(Dui)象(Xiang)为(Wei)"不(Bu)可(Ke)达(Da)”(?)时(Shi),(?)GC就(Jiu)有(You)责(Ze)任(Ren)回(Hui)收(Shou)这(Zhe)些(Xie)内(Nei)存(Cun)空(Kong)间(Jian)。(?)
2、(?)可(Ke)以(Yi)。(?)程(Cheng)序(Xu)员(Yuan)可(Ke)以(Yi)手(Shou)动(Dong)执(Zhi)行(Xing)System.gc(),(?)通(Tong)知(Zhi)GC运(Yun)行(Xing),(?)但(Dan)是(Shi)Java语(Yu)言(Yan)规(Gui)范(Fan)并(Bing)不(Bu)保(Bao)证(Zheng)GC一(Yi)定(Ding)会(Hui)执(Zhi)行(Xing)。(?)
3. System.gc();或(Huo)者(Zhe)Runtime.getRuntime().gc();
答(Da):(?)理(Li)论(Lun)上(Shang)Java因(Yin)为(Wei)有(You)垃(La)圾(Ji)回(Hui)收(Shou)机(Ji)制(Zhi)((?)GC)(?)不(Bu)会(Hui)存(Cun)在(Zai)内(Nei)存(Cun)泄(Xie)露(Lu)问(Wen)题(Ti)((?)这(Zhe)也(Ye)是(Shi)Java被(Bei)广(Guang)泛(Fan)使(Shi)用(Yong)于(Yu)服(Fu)务(Wu)器(Qi)端(Duan)编(Bian)程(Cheng)的(De)一(Yi)个(Ge)重(Zhong)要(Yao)原(Yuan)因(Yin))(?);(?)然(Ran)而(?)在(Zai)实(Shi)际(Ji)开(Kai)发(Fa)中(Zhong),(?)可(Ke)能(Neng)会(Hui)存(Cun)在(Zai)无(Wu)用(Yong)但(Dan)可(Ke)达(Da)的(De)对(Dui)象(Xiang),(?)这(Zhe)些(Xie)对(Dui)象(Xiang)不(Bu)能(Neng)被(Bei)GC回(Hui)收(Shou)也(Ye)会(Hui)发(Fa)生(Sheng)内(Nei)存(Cun)泄(Xie)露(Lu)。(?)一(Yi)个(Ge)例(Li)子(Zi)就(Jiu)是(Shi)hibernate的(De)Session((?)一(Yi)级(Ji)缓(Huan)存(Cun))(?)中(Zhong)的(De)对(Dui)象(Xiang)属(Shu)于(Yu)持(Chi)久(Jiu)态(Tai),(?)垃(La)圾(Ji)回(Hui)收(Shou)器(Qi)是(Shi)不(Bu)会(Hui)回(Hui)收(Shou)这(Zhe)些(Xie)对(Dui)象(Xiang)的(De),(?)然(Ran)而(?)这(Zhe)些(Xie)对(Dui)象(Xiang)中(Zhong)可(Ke)能(Neng)存(Cun)在(Zai)无(Wu)用(Yong)的(De)垃(La)圾(Ji)对(Dui)象(Xiang)。(?)下(Xia)面(Mian)的(De)例(Li)子(Zi)也(Ye)展(Zhan)示(Shi)了(Liao)Java中(Zhong)发(Fa)生(Sheng)内(Nei)存(Cun)泄(Xie)露(Lu)的(De)情(Qing)况(Kuang):(?)
package com.bjsxt; import java.util.Arrays; import java.util.EmptyStackException; public class MyStack<T> { private T[] elements; private int size = 0; private static final int INIT_CAPACITY = 16; public MyStack() { elements = (T[]) new Object[INIT_CAPACITY]; } public void push(T elem) { ensureCapacity(); elements[size++] = elem; } public T pop() { if(size == 0) throw new EmptyStackException(); return elements[--size]; } private void ensureCapacity() { if(elements.length == size) { elements = Arrays.copyOf(elements, 2 * size + 1); } } }
上(Shang)面(Mian)的(De)代(Dai)码(Ma)实(Shi)现(Xian)了(Liao)一(Yi)个(Ge)栈(Zhan)((?)先(Xian)进(Jin)后(Hou)出(Chu)((?)FILO)(?))(?)结(Jie)构(Gou),(?)乍(Zha)看(Kan)之(Zhi)下(Xia)似(Si)乎(Hu)没(Mei)有(You)什(Shi)么(Me)明(Ming)显(Xian)的(De)问(Wen)题(Ti),(?)它(Ta)甚(Shen)至(Zhi)可(Ke)以(Yi)通(Tong)过(Guo)你(Ni)编(Bian)写(Xie)的(De)各(Ge)种(Zhong)单(Dan)元(Yuan)测(Ce)试(Shi)。(?)然(Ran)而(?)其(Qi)中(Zhong)的(De)pop方(Fang)法(Fa)却(Que)存(Cun)在(Zai)内(Nei)存(Cun)泄(Xie)露(Lu)的(De)问(Wen)题(Ti),(?)当(Dang)我(Wo)们(Men)用(Yong)pop方(Fang)法(Fa)弹(Dan)出(Chu)栈(Zhan)中(Zhong)的(De)对(Dui)象(Xiang)时(Shi),(?)该(Gai)对(Dui)象(Xiang)不(Bu)会(Hui)被(Bei)当(Dang)作(Zuo)垃(La)圾(Ji)回(Hui)收(Shou),(?)即(Ji)使(Shi)使(Shi)用(Yong)栈(Zhan)的(De)程(Cheng)序(Xu)不(Bu)再(Zai)引(Yin)用(Yong)这(Zhe)些(Xie)对(Dui)象(Xiang),(?)因(Yin)为(Wei)栈(Zhan)内(Nei)部(Bu)维(Wei)护(Hu)着(Zhuo)对(Dui)这(Zhe)些(Xie)对(Dui)象(Xiang)的(De)过(Guo)期(Qi)引(Yin)用(Yong)((?)obsolete reference)(?)。(?)在(Zai)支(Zhi)持(Chi)垃(La)圾(Ji)回(Hui)收(Shou)的(De)语(Yu)言(Yan)中(Zhong),(?)内(Nei)存(Cun)泄(Xie)露(Lu)是(Shi)很(Hen)隐(Yin)蔽(Bi)的(De),(?)这(Zhe)种(Zhong)内(Nei)存(Cun)泄(Xie)露(Lu)其(Qi)实(Shi)就(Jiu)是(Shi)无(Wu)意(Yi)识(Shi)的(De)对(Dui)象(Xiang)保(Bao)持(Chi)。(?)如(Ru)果(Guo)一(Yi)个(Ge)对(Dui)象(Xiang)引(Yin)用(Yong)被(Bei)无(Wu)意(Yi)识(Shi)的(De)保(Bao)留(Liu)起(Qi)来(Lai)了(Liao),(?)那(Na)么(Me)垃(La)圾(Ji)回(Hui)收(Shou)器(Qi)不(Bu)会(Hui)处(Chu)理(Li)这(Zhe)个(Ge)对(Dui)象(Xiang),(?)也(Ye)不(Bu)会(Hui)处(Chu)理(Li)该(Gai)对(Dui)象(Xiang)引(Yin)用(Yong)的(De)其(Qi)他(Ta)对(Dui)象(Xiang),(?)即(Ji)使(Shi)这(Zhe)样(Yang)的(De)对(Dui)象(Xiang)只(Zhi)有(You)少(Shao)数(Shu)几(Ji)个(Ge),(?)也(Ye)可(Ke)能(Neng)会(Hui)导(Dao)致(Zhi)很(Hen)多(Duo)的(De)对(Dui)象(Xiang)被(Bei)排(Pai)除(Chu)在(Zai)垃(La)圾(Ji)回(Hui)收(Shou)之(Zhi)外(Wai),(?)从(Cong)而(?)对(Dui)性(Xing)能(Neng)造(Zao)成(Cheng)重(Zhong)大(Da)影(Ying)响(Xiang),(?)极(Ji)端(Duan)情(Qing)况(Kuang)下(Xia)会(Hui)引(Yin)发(Fa)Disk Paging((?)物(Wu)理(Li)内(Nei)存(Cun)与(Yu)硬(Ying)盘(Pan)的(De)虚(Xu)拟(Ni)内(Nei)存(Cun)交(Jiao)换(Huan)数(Shu)据(Ju))(?),(?)甚(Shen)至(Zhi)造(Zao)成(Cheng)OutOfMemoryError。(?)
答(Da):(?)GC是(Shi)垃(La)圾(Ji)收(Shou)集(Ji)的(De)意(Yi)思(Si),(?)内(Nei)存(Cun)处(Chu)理(Li)是(Shi)编(Bian)程(Cheng)人(Ren)员(Yuan)容(Rong)易(Yi)出(Chu)现(Xian)问(Wen)题(Ti)的(De)地(Di)方(Fang),(?)忘(Wang)记(Ji)或(Huo)者(Zhe)错(Cuo)误(Wu)的(De)内(Nei)存(Cun)回(Hui)收(Shou)会(Hui)导(Dao)致(Zhi)程(Cheng)序(Xu)或(Huo)系(Xi)统(Tong)的(De)不(Bu)稳(Wen)定(Ding)甚(Shen)至(Zhi)崩(Beng)溃(Kui),(?)Java提(Ti)供(Gong)的(De)GC功(Gong)能(Neng)可(Ke)以(Yi)自(Zi)动(Dong)监(Jian)测(Ce)对(Dui)象(Xiang)是(Shi)否(Fou)超(Chao)过(Guo)作(Zuo)用(Yong)域(Yu)从(Cong)而(?)达(Da)到(Dao)自(Zi)动(Dong)回(Hui)收(Shou)内(Nei)存(Cun)的(De)目(Mu)的(De),(?)Java语(Yu)言(Yan)没(Mei)有(You)提(Ti)供(Gong)释(Shi)放(Fang)已(Yi)分(Fen)配(Pei)内(Nei)存(Cun)的(De)显(Xian)示(Shi)操(Cao)作(Zuo)方(Fang)法(Fa)。(?)Java程(Cheng)序(Xu)员(Yuan)不(Bu)用(Yong)担(Dan)心(Xin)内(Nei)存(Cun)管(Guan)理(Li),(?)因(Yin)为(Wei)垃(La)圾(Ji)收(Shou)集(Ji)器(Qi)会(Hui)自(Zi)动(Dong)进(Jin)行(Xing)管(Guan)理(Li)。(?)要(Yao)请(Qing)求(Qiu)垃(La)圾(Ji)收(Shou)集(Ji),(?)可(Ke)以(Yi)调(Diao)用(Yong)下(Xia)面(Mian)的(De)方(Fang)法(Fa)之(Zhi)一(Yi):(?)System.gc() 或(Huo)Runtime.getRuntime().gc() ,(?)但(Dan)JVM可(Ke)以(Yi)屏(Ping)蔽(Bi)掉(Diao)显(Xian)示(Shi)的(De)垃(La)圾(Ji)回(Hui)收(Shou)调(Diao)用(Yong)。(?)
垃(La)圾(Ji)回(Hui)收(Shou)可(Ke)以(Yi)有(You)效(Xiao)的(De)防(Fang)止(Zhi)内(Nei)存(Cun)泄(Xie)露(Lu),(?)有(You)效(Xiao)的(De)使(Shi)用(Yong)可(Ke)以(Yi)使(Shi)用(Yong)的(De)内(Nei)存(Cun)。(?)垃(La)圾(Ji)回(Hui)收(Shou)器(Qi)通(Tong)常(Chang)是(Shi)作(Zuo)为(Wei)一(Yi)个(Ge)单(Dan)独(Du)的(De)低(Di)优(You)先(Xian)级(Ji)的(De)线(Xian)程(Cheng)运(Yun)行(Xing),(?)不(Bu)可(Ke)预(Yu)知(Zhi)的(De)情(Qing)况(Kuang)下(Xia)对(Dui)内(Nei)存(Cun)堆(Dui)中(Zhong)已(Yi)经(Jing)死(Si)亡(Wang)的(De)或(Huo)者(Zhe)长(Chang)时(Shi)间(Jian)没(Mei)有(You)使(Shi)用(Yong)的(De)对(Dui)象(Xiang)进(Jin)行(Xing)清(Qing)除(Chu)和(He)回(Hui)收(Shou),(?)程(Cheng)序(Xu)员(Yuan)不(Bu)能(Neng)实(Shi)时(Shi)的(De)调(Diao)用(Yong)垃(La)圾(Ji)回(Hui)收(Shou)器(Qi)对(Dui)某(Mou)个(Ge)对(Dui)象(Xiang)或(Huo)所(Suo)有(You)对(Dui)象(Xiang)进(Jin)行(Xing)垃(La)圾(Ji)回(Hui)收(Shou)。(?)在(Zai)Java诞(Dan)生(Sheng)初(Chu)期(Qi),(?)垃(La)圾(Ji)回(Hui)收(Shou)是(Shi)Java最(Zui)大(Da)的(De)亮(Liang)点(Dian)之(Zhi)一(Yi),(?)因(Yin)为(Wei)服(Fu)务(Wu)器(Qi)端(Duan)的(De)编(Bian)程(Cheng)需(Xu)要(Yao)有(You)效(Xiao)的(De)防(Fang)止(Zhi)内(Nei)存(Cun)泄(Xie)露(Lu)问(Wen)题(Ti),(?)然(Ran)而(?)时(Shi)过(Guo)境(Jing)迁(Qian),(?)如(Ru)今(Jin)Java的(De)垃(La)圾(Ji)回(Hui)收(Shou)机(Ji)制(Zhi)已(Yi)经(Jing)成(Cheng)为(Wei)被(Bei)诟(Gou)病(Bing)的(De)东(Dong)西(Xi)。(?)移(Yi)动(Dong)智(Zhi)能(Neng)终(Zhong)端(Duan)用(Yong)户(Hu)通(Tong)常(Chang)觉(Jue)得(De)iOS的(De)系(Xi)统(Tong)比(Bi)Android系(Xi)统(Tong)有(You)更(Geng)好(Hao)的(De)用(Yong)户(Hu)体(Ti)验(Yan),(?)其(Qi)中(Zhong)一(Yi)个(Ge)深(Shen)层(Ceng)次(Ci)的(De)原(Yuan)因(Yin)就(Jiu)在(Zai)于(Yu)Android系(Xi)统(Tong)中(Zhong)垃(La)圾(Ji)回(Hui)收(Shou)的(De)不(Bu)可(Ke)预(Yu)知(Zhi)性(Xing)。(?)
补(Bu)充(Chong):(?)垃(La)圾(Ji)回(Hui)收(Shou)机(Ji)制(Zhi)有(You)很(Hen)多(Duo)种(Zhong),(?)包(Bao)括(Kuo):(?)分(Fen)代(Dai)复(Fu)制(Zhi)垃(La)圾(Ji)回(Hui)收(Shou)、(?)标(Biao)记(Ji)垃(La)圾(Ji)回(Hui)收(Shou)、(?)增(Zeng)量(Liang)垃(La)圾(Ji)回(Hui)收(Shou)等(Deng)方(Fang)式(Shi)。(?)标(Biao)准(Zhun)的(De)Java进(Jin)程(Cheng)既(Ji)有(You)栈(Zhan)又(You)有(You)堆(Dui)。(?)栈(Zhan)保(Bao)存(Cun)了(Liao)原(Yuan)始(Shi)型(Xing)局(Ju)部(Bu)变(Bian)量(Liang),(?)堆(Dui)保(Bao)存(Cun)了(Liao)要(Yao)创(Chuang)建(Jian)的(De)对(Dui)象(Xiang)。(?)Java平(Ping)台(Tai)对(Dui)堆(Dui)内(Nei)存(Cun)回(Hui)收(Shou)和(He)再(Zai)利(Li)用(Yong)的(De)基(Ji)本(Ben)算(Suan)法(Fa)被(Bei)称(Cheng)为(Wei)标(Biao)记(Ji)和(He)清(Qing)除(Chu),(?)但(Dan)是(Shi)Java对(Dui)其(Qi)进(Jin)行(Xing)了(Liao)改(Gai)进(Jin),(?)采(Cai)用(Yong)“(?)分(Fen)代(Dai)式(Shi)垃(La)圾(Ji)收(Shou)集(Ji)”(?)。(?)这(Zhe)种(Zhong)方(Fang)法(Fa)会(Hui)跟(Gen)Java对(Dui)象(Xiang)的(De)生(Sheng)命(Ming)周(Zhou)期(Qi)将(Jiang)堆(Dui)内(Nei)存(Cun)划(Hua)分(Fen)为(Wei)不(Bu)同(Tong)的(De)区(Qu)域(Yu),(?)在(Zai)垃(La)圾(Ji)收(Shou)集(Ji)过(Guo)程(Cheng)中(Zhong),(?)可(Ke)能(Neng)会(Hui)将(Jiang)对(Dui)象(Xiang)移(Yi)动(Dong)到(Dao)不(Bu)同(Tong)区(Qu)域(Yu):(?)
伊(Yi)甸(Dian)园(Yuan)((?)Eden)(?):(?)这(Zhe)是(Shi)对(Dui)象(Xiang)最(Zui)初(Chu)诞(Dan)生(Sheng)的(De)区(Qu)域(Yu),(?)并(Bing)且(Qie)对(Dui)大(Da)多(Duo)数(Shu)对(Dui)象(Xiang)来(Lai)说(Shuo),(?)这(Zhe)里(Li)是(Shi)它(Ta)们(Men)唯(Wei)一(Yi)存(Cun)在(Zai)过(Guo)的(De)区(Qu)域(Yu)。(?)
幸(Xing)存(Cun)者(Zhe)乐(Le)园(Yuan)((?)Survivor)(?):(?)从(Cong)伊(Yi)甸(Dian)园(Yuan)幸(Xing)存(Cun)下(Xia)来(Lai)的(De)对(Dui)象(Xiang)会(Hui)被(Bei)挪(Nuo)到(Dao)这(Zhe)里(Li)。(?)
终(Zhong)身(Shen)颐(Yi)养(Yang)园(Yuan)((?)Tenured)(?):(?)这(Zhe)是(Shi)足(Zu)够(Gou)老(Lao)的(De)幸(Xing)存(Cun)对(Dui)象(Xiang)的(De)归(Gui)宿(Su)。(?)年(Nian)轻(Qing)代(Dai)收(Shou)集(Ji)((?)Minor-GC)(?)过(Guo)程(Cheng)是(Shi)不(Bu)会(Hui)触(Chu)及(Ji)这(Zhe)个(Ge)地(Di)方(Fang)的(De)。(?)当(Dang)年(Nian)轻(Qing)代(Dai)收(Shou)集(Ji)不(Bu)能(Neng)把(Ba)对(Dui)象(Xiang)放(Fang)进(Jin)终(Zhong)身(Shen)颐(Yi)养(Yang)园(Yuan)时(Shi),(?)就(Jiu)会(Hui)触(Chu)发(Fa)一(Yi)次(Ci)完(Wan)全(Quan)收(Shou)集(Ji)((?)Major-GC)(?),(?)这(Zhe)里(Li)可(Ke)能(Neng)还(Huan)会(Hui)牵(Qian)扯(Che)到(Dao)压(Ya)缩(Suo),(?)以(Yi)便(Bian)为(Wei)大(Da)对(Dui)象(Xiang)腾(Teng)出(Chu)足(Zu)够(Gou)的(De)空(Kong)间(Jian)。(?)
与(Yu)垃(La)圾(Ji)回(Hui)收(Shou)相(Xiang)关(Guan)的(De)JVM参(Can)数(Shu):(?)
-Xms / -Xmx --- 堆(Dui)的(De)初(Chu)始(Shi)大(Da)小(Xiao) / 堆(Dui)的(De)最(Zui)大(Da)大(Da)小(Xiao)
-Xmn --- 堆(Dui)中(Zhong)年(Nian)轻(Qing)代(Dai)的(De)大(Da)小(Xiao)
-XX:-DisableExplicitGC --- 让(Rang)System.gc()不(Bu)产(Chan)生(Sheng)任(Ren)何(He)作(Zuo)用(Yong)
-XX:+PrintGCDetail --- 打(Da)印(Yin)GC的(De)细(Xi)节(Jie)
-XX:+PrintGCDateStamps --- 打(Da)印(Yin)GC操(Cao)作(Zuo)的(De)时(Shi)间(Jian)戳(Chuo)
Linux操(Cao)作(Zuo)
答(Da):(?)linux指(Zhi)令(Ling)
arch 显(Xian)示(Shi)机(Ji)器(Qi)的(De)处(Chu)理(Li)器(Qi)架(Jia)构(Gou)(1)
uname -m 显(Xian)示(Shi)机(Ji)器(Qi)的(De)处(Chu)理(Li)器(Qi)架(Jia)构(Gou)(2)
shutdown -h now 关(Guan)闭(Bi)系(Xi)统(Tong)(1)
shutdown -r now 重(Zhong)启(Qi)(1)
cd /home 进(Jin)入(Ru) '/ home' 目(Mu)录(Lu)'
cd .. 返(Fan)回(Hui)上(Shang)一(Yi)级(Ji)目(Mu)录(Lu)
cd ../.. 返(Fan)回(Hui)上(Shang)两(Liang)级(Ji)目(Mu)录(Lu)
mkdir dir1 创(Chuang)建(Jian)一(Yi)个(Ge)叫(Jiao)做(Zuo) 'dir1' 的(De)目(Mu)录(Lu)'
mkdir dir1 dir2 同(Tong)时(Shi)创(Chuang)建(Jian)两(Liang)个(Ge)目(Mu)录(Lu)
find / -name file1 从(Cong) '/' 开(Kai)始(Shi)进(Jin)入(Ru)根(Gen)文(Wen)件(Jian)系(Xi)统(Tong)搜(Sou)索(Suo)文(Wen)件(Jian)和(He)目(Mu)录(Lu)
find / -user user1 搜(Sou)索(Suo)属(Shu)于(Yu)用(Yong)户(Hu) 'user1' 的(De)文(Wen)件(Jian)和(He)目(Mu)录(Lu)
linuxtomcat启(Qi)动(Dong)
进(Jin)入(Ru)tomcat下(Xia)的(De)bin目(Mu)录(Lu)执(Zhi)行(Xing) ./catalina.sh start直(Zhi)接(Jie)启(Qi)动(Dong)即(Ji)可(Ke),(?)然(Ran)后(Hou)使(Shi)用(Yong)tail -f /usr/local/tomcat6/logs/catalina.out查(Cha)看(Kan)tomcat启(Qi)动(Dong)日(Ri)志(Zhi)。(?)
A. | Mic |
B. | mid |
C. | mitegistry |
D. | policytool |
答(Da)案(An):(?)A
|
A. | kill |
B. | tar |
C. | rsyne |
D. | policytool |
答(Da)案(An):c
分(Fen)析(Xi):(?)
A:kill命(Ming)令(Ling),常(Chang)用(Yong)于(Yu)杀(Sha)死(Si)进(Jin)程(Cheng);
B:tar命(Ming)令(Ling),tar命(Ming)令(Ling)是(Shi)Unix/Linux系(Xi)统(Tong)中(Zhong)备(Bei)份(Fen)文(Wen)件(Jian)的(De)可(Ke)靠(Kao)方(Fang)法(Fa),(?)几(Ji)乎(Hu)可(Ke)以(Yi)工(Gong)作(Zuo)于(Yu)任(Ren)何(He)环(Huan)境(Jing)中(Zhong),(?)它(Ta)的(De)使(Shi)用(Yong)权(Quan)限(Xian)是(Shi)所(Suo)有(You)用(Yong)户(Hu)
C:类(Lei)unix系(Xi)统(Tong)下(Xia)的(De)数(Shu)据(Ju)镜(Jing)像(Xiang)备(Bei)份(Fen)工(Gong)具(Ju)
D:在(Zai)终(Zhong)端(Duan)下(Xia)输(Shu)入(Ru)lsof即(Ji)可(Ke)显(Xian)示(Shi)系(Xi)统(Tong)打(Da)开(Kai)的(De)文(Wen)件(Jian),(?)因(Yin)为(Wei) lsof 需(Xu)要(Yao)访(Fang)问(Wen)核(He)心(Xin)内(Nei)存(Cun)和(He)各(Ge)种(Zhong)文(Wen)件(Jian),(?)所(Suo)以(Yi)必(Bi)须(Xu)以(Yi) root 用(Yong)户(Hu)的(De)身(Shen)份(Fen)运(Yun)行(Xing)它(Ta)才(Cai)能(Neng)够(Gou)充(Chong)分(Fen)地(Di)发(Fa)挥(Hui)其(Qi)功(Gong)能(Neng)
|
A. | 传(Chuan)输(Shu)控(Kong)制(Zhi)协(Xie)议(Yi) |
B. | 用(Yong)户(Hu)数(Shu)据(Ju)报(Bao)协(Xie)议(Yi) |
C. | 网(Wang)际(Ji)协(Xie)议(Yi) |
D. | 网(Wang)际(Ji)控(Kong)制(Zhi)报(Bao)文(Wen)协(Xie)议(Yi) |
答(Da)案(An):(?)A
|
A. | defaults |
B. | sw |
C. | rw 和(He) ro |
D. | noauto |
答(Da)案(An):(?)D
|
A. | 文(Wen)件(Jian)类(Lei)型(Xing) |
B. | 文(Wen)件(Jian)所(Suo)有(You)者(Zhe)的(De)权(Quan)限(Xian) |
C. | 文(Wen)件(Jian)所(Suo)有(You)者(Zhe)所(Suo)在(Zai)组(Zu)的(De)权(Quan)限(Xian) |
D. | 其(Qi)他(Ta)用(Yong)户(Hu)的(De)权(Quan)限(Xian) |
答(Da)案(An):(?)C
|
A. | kill |
B. | < CTRL >;+C |
C. | shut down |
D. | halt |
答(Da)案(An):(?)B
|
A. | -m |
B. | -d |
C. | -d |
D. | -p |
答(Da)案(An):(?)D
|
A. | i 节(Jie)点(Dian)和(He)文(Wen)件(Jian)是(Shi)一(Yi)一(Yi)对(Dui)应(Ying)的(De)((?)每(Mei)个(Ge)文(Wen)件(Jian)都(Du)有(You)唯(Wei)一(Yi)一(Yi)个(Ge)索(Suo)引(Yin)结(Jie)点(Dian)号(Hao)与(Yu)之(Zhi)对(Dui)应(Ying),(?)而(?)对(Dui)于(Yu)一(Yi)个(Ge)索(Suo)引(Yin)结(Jie)点(Dian)号(Hao),(?)却(Que)可(Ke)以(Yi)有(You)多(Duo)个(Ge)文(Wen)件(Jian)名(Ming)与(Yu)之(Zhi)对(Dui)应(Ying))(?) |
B. | i 节(Jie)点(Dian)能(Neng)描(Miao)述(Shu)文(Wen)件(Jian)占(Zhan)用(Yong)的(De)块(Kuai)数(Shu) |
C. | i 节(Jie)点(Dian)描(Miao)述(Shu)了(Liao)文(Wen)件(Jian)大(Da)小(Xiao)和(He)指(Zhi)向(Xiang)数(Shu)据(Ju)块(Kuai)的(De)指(Zhi)针(Zhen) |
D. | 通(Tong)过(Guo)i 节(Jie)点(Dian)实(Shi)现(Xian)文(Wen)件(Jian)的(De)逻(Luo)辑(Ji)结(Jie)构(Gou)和(He)物(Wu)理(Li)结(Jie)构(Gou)的(De)转(Zhuan)换(Huan) |
答(Da)案(An):(?)A
|
A. | tar |
B. | gzip |
C. | compress |
D. | uncompress |
答(Da)案(An):(?)D
|
A. | csh |
B. | tcsh |
C. | awk |
D. | sed |
答(Da)案(An):(?)C
|
A. | 配(Pei)置(Zhi)域(Yu)名(Ming)服(Fu)务(Wu)器(Qi) |
B. | 定(Ding)义(Yi)一(Yi)条(Tiao)本(Ben)机(Ji)指(Zhi)向(Xiang)所(Suo)在(Zai)网(Wang)络(Luo)的(De)路(Lu)由(You) |
C. | 定(Ding)义(Yi)一(Yi)条(Tiao)本(Ben)机(Ji)指(Zhi)向(Xiang)所(Suo)在(Zai)网(Wang)络(Luo)网(Wang)关(Guan)的(De)路(Lu)由(You) |
D. | 定(Ding)义(Yi)一(Yi)条(Tiao)本(Ben)机(Ji)指(Zhi)向(Xiang)目(Mu)标(Biao)网(Wang)络(Luo)网(Wang)关(Guan)的(De)路(Lu)由(You) |
答(Da)案(An):(?)C
|
A. | /etc/hosts |
B. | /etc/HOSTNAME |
C. | /etc/resolv.conf |
D. | /etc/gateways |
答(Da)案(An):(?)D
|
A. | route add net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1 |
B. | route add net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1 |
C. | route add net 172.16.1.0 gw 172.16.1.1 netmask 255.255.255.0 metric 1 |
D. | route add default 192.168.1.0 netmask 172.168.1.1 metric 1 |
答(Da)案(An):(?)B
|
A. | 配(Pei)置(Zhi)本(Ben)地(Di)回(Hui)环(Huan)地(Di)址(Zhi) |
B. | 配(Pei)置(Zhi)网(Wang)卡(Ka)的(De)IP地(Di)址(Zhi) |
C. | 激(Ji)活(Huo)网(Wang)络(Luo)适(Shi)配(Pei)器(Qi) |
D. | 加(Jia)载(Zai)网(Wang)卡(Ka)到(Dao)内(Nei)核(He)中(Zhong) |
答(Da)案(An):(?)D
|
A. | 硬(Ying)链(Lian)接(Jie)就(Jiu)是(Shi)让(Rang)链(Lian)接(Jie)文(Wen)件(Jian)的(De)i 节(Jie)点(Dian)号(Hao)指(Zhi)向(Xiang)被(Bei)链(Lian)接(Jie)文(Wen)件(Jian)的(De)i 节(Jie)点(Dian) |
B. | 硬(Ying)链(Lian)接(Jie)和(He)符(Fu)号(Hao)连(Lian)接(Jie)都(Du)是(Shi)产(Chan)生(Sheng)一(Yi)个(Ge)新(Xin)的(De)i 节(Jie)点(Dian) |
C | 链(Lian)接(Jie)分(Fen)为(Wei)硬(Ying)链(Lian)接(Jie)和(He)符(Fu)号(Hao)链(Lian)接(Jie) |
D. | 硬(Ying)连(Lian)接(Jie)不(Bu)能(Neng)链(Lian)接(Jie)目(Mu)录(Lu)文(Wen)件(Jian) |
答(Da)案(An):(?)B
|
A. | 主(Zhu)机(Ji)IP设(She)置(Zhi)有(You)误(Wu) |
B. | 没(Mei)有(You)设(She)置(Zhi)连(Lian)接(Jie)局(Ju)域(Yu)网(Wang)的(De)网(Wang)关(Guan) |
C. | 局(Ju)域(Yu)网(Wang)的(De)网(Wang)关(Guan)或(Huo)主(Zhu)机(Ji)的(De)网(Wang)关(Guan)设(She)置(Zhi)有(You)误(Wu) |
D. | 局(Ju)域(Yu)网(Wang)DNS服(Fu)务(Wu)器(Qi)设(She)置(Zhi)有(You)误(Wu) |
答(Da)案(An):(?)C
|
A. | /etc/HOSTNAME |
B. | /etc/hosts |
C. | /etc/resolv.conf |
D. | /etc/networks |
答(Da)案(An):(?)B
|
A. | 删(Shan)除(Chu)系(Xi)统(Tong)不(Bu)用(Yong)的(De)设(She)备(Bei)驱(Qu)动(Dong)程(Cheng)序(Xu)时(Shi) |
B. | 升(Sheng)级(Ji)内(Nei)核(He)时(Shi) |
C. | 添(Tian)加(Jia)新(Xin)硬(Ying)件(Jian)时(Shi) |
D. | 将(Jiang)网(Wang)卡(Ka)激(Ji)活(Huo) |
答(Da)案(An):(?)D
|
A. | 直(Zhi)接(Jie)赋(Fu)值(Zhi) |
B. | 使(Shi)用(Yong)read命(Ming)令(Ling) |
C. | 使(Shi)用(Yong)命(Ming)令(Ling)行(Xing)参(Can)数(Shu) |
D. | 使(Shi)用(Yong)命(Ming)令(Ling)的(De)输(Shu)出(Chu) |
答(Da)案(An):(?)A
|
A. | cp |
B. | dd |
C. | fmt |
D. | cut |
答(Da)案(An):(?)D
|
A. | 交(Jiao)互(Hu)进(Jin)程(Cheng) |
B. | 批(Pi)处(Chu)理(Li)进(Jin)程(Cheng) |
C. | 守(Shou)护(Hu)进(Jin)程(Cheng) |
D. | 就(Jiu)绪(Xu)进(Jin)程(Cheng) |
答(Da)案(An):(?)D
|
A. | CPU 已(Yi)满(Man)负(Fu)荷(He)地(Di)运(Yun)转(Zhuan) |
B. | CPU 的(De)运(Yun)行(Xing)效(Xiao)率(Lu)为(Wei)30% |
C. | CPU 的(De)运(Yun)行(Xing)效(Xiao)率(Lu)为(Wei)50% |
D. | CPU 的(De)运(Yun)行(Xing)效(Xiao)率(Lu)为(Wei)80% |
答(Da)案(An):(?)A
|
A. | 64MB |
B. | 128MB |
C. | 256MB |
D. | 512MB |
答(Da)案(An):(?)C
|
A. | full |
B. | expert |
C. | newbie |
D. | menu |
答(Da)案(An):(?)D
|
A. | cat |
B. | more |
C. | less |
D. | menu |
答(Da)案(An):(?)C
|
A. | root 1 4.0 0.0 344 204? S 17:09 0:00 init |
B. | root 2 0.0 0.1 2916 1520? S 17:09 0:00 /sbin/getty |
C. | root 3 0.0 0.2 1364 632? S 17:09 0:00 /usr/sbin/syslogd |
D. | root 4 0.0 1344 1204? S 17:09 0:10 /usr/sbin/inetd |
答(Da)案(An):(?)D
|
A. | telnet |
B. | FTP |
C. | SNMP |
D. | NFS |
答(Da)案(An):(?)B
|
A. | ping |
B. | ifconfig |
C. | traceroute |
D. | netstat |
答(Da)案(An):(?)C
|
A. | -rwxr-xr-x |
B. | -rwxr--r-- |
C. | -r--r--r-- |
D. | -r-xr-x—(?)x |
答(Da)案(An):(?)C
|
A. | -rw-rw-rw- 2 hel-s users 56 Sep 09 11:05 hello |
B. | -rwxrwxrwx 2 hel-s users 56 Sep 09 11:05 goodbey |
C. | drwxr--r-- 1 hel users 1024 Sep 10 08:10 zhang |
D. | lrwxr--r-- 1 hel users 2024 Sep 12 08:12 cheng |
答(Da)案(An):(?)D
|
A. | IP地(Di)址(Zhi) |
B. | MAC地(Di)址(Zhi) |
C. | 网(Wang)络(Luo)地(Di)址(Zhi) |
D. | 主(Zhu)机(Ji)别(Bie)名(Ming) |
答(Da)案(An):(?)A
|
A. | 服(Fu)务(Wu)器(Qi)/工(Gong)作(Zuo)站(Zhan) |
B. | B/S |
C. | 集(Ji)中(Zhong)式(Shi) |
D. | 分(Fen)布(Bu)式(Shi) |
答(Da)案(An):(?)B
|
A. | less |
B. | mesg |
C. | write |
D. | echo to |
答(Da)案(An):(?)C
|
A. | 文(Wen)件(Jian) |
B. | 磁(Ci)盘(Pan) |
C. | 网(Wang)络(Luo)文(Wen)件(Jian) |
D. | 操(Cao)作(Zuo) |
答(Da)案(An):(?)C
|
A. | cp |
B. | tr |
C. | dir |
D. | cpio |
答(Da)案(An):(?)D
|
A. | /bin |
B. | /etc |
C. | /dev |
D. | /lib |
答(Da)案(An):(?)C
|
A. | # reboot |
B. | # halt |
C. | # reboot |
D. | # shutdown r now |
答(Da)案(An):(?)D
|
A. | 故(Gu)障(Zhang)管(Guan)理(Li) |
B. | 日(Ri)常(Chang)备(Bei)份(Fen)管(Guan)理(Li) |
C. | 升(Sheng)级(Ji)管(Guan)理(Li) |
D. | 发(Fa)送(Song) |
答(Da)案(An):(?)A
|
A. | Ctrl+Alt+Del |
B. | halt |
C. | shutdown -r now |
D. | reboot |
答(Da)案(An):(?)B
|
A. | ping |
B. | ifconfig |
C. | arp |
D. | traceroute |
答(Da)案(An):(?)C
|
A. | < a>; |
B. | < o>; |
C. | < I>; |
D. | A |
答(Da)案(An):(?)B
|
A. | < x>; |
B. | < d>;< w>; |
C. | < D>; |
D. | < d>;< d>; |
答(Da)案(An):(?)A
|
A. | 上(Shang)箭(Jian)头(Tou) |
B. | 下(Xia)箭(Jian)头(Tou) |
C. | < .>; |
D. | < *>; |
答(Da)案(An):(?)C
|
A. | mkdir |
B. | rmdir |
C. | mv |
D. | traceroute |
答(Da)案(An):(?)D
|
A. | < Esc>; |
B. | ^q |
C. | exit |
D. | quit__ |
答(Da)案(An):(?)C
|
算(Suan)法(Fa)分(Fen)析(Xi)及(Ji)手(Shou)写(Xie)代(Dai)码(Ma)
写(Xie)出(Chu)合(He)格(Ge)的(De)身(Shen)份(Fen)证(Zheng)的(De)正(Zheng)则(Ze)表(Biao)达(Da)式(Shi),(?)
^(\d{15}|\d{17}[\dx])$
写(Xie)程(Cheng)序(Xu)提(Ti)取(Qu)身(Shen)份(Fen)证(Zheng)中(Zhong)的(De)年(Nian)月(Yue)日(Ri)
public class IdCard { private String idCard;//私(Si)有(You)变(Bian)量(Liang) public IdCard(){}//构(Gou)造(Zao)方(Fang)法(Fa) //构(Gou)造(Zao)方(Fang)法(Fa) public IdCard(String idCard){ this.idCard=idCard; } public void setIdCard(String idCard) { this.idCard=idCard; } public String getIdCard() { return idCard; } //从(Cong)身(Shen)份(Fen)证(Zheng)号(Hao)码(Ma)中(Zhong)截(Jie)取(Qu)生(Sheng)日(Ri) public String getBirthday() { return this.getIdCard().substring(6, 14); } public static void main(String args[]) { ShenFenZheng sfz = new ShenFenZheng("420154199908157841"); //调(Diao)用(Yong)getBirthday()方(Fang)法(Fa)获(Huo)取(Qu)生(Sheng)日(Ri) System.out.println("生(Sheng)日(Ri):(?)" + sfz.getBirthday()); } }
package com.bjsxt; import java.util.ArrayList; import java.util.List; public class FirstRepeat { public static void main(String[] args) { System.out.println(findFirstRepeat("pmedmitjtckhxwhvpwemznhmhzhpueainchqrftkmbjlradhmjekcqzansyzkvqhwnrdgzdbzewdmxkzrscikdaugbvygntrifnolehdtrqjlasofuvzeijbmzehkxknmjekcxswqldknysfsxrqaqzp",152)); } //返(Fan)回(Hui):y public static char findFirstRepeat(String A, int n) { String[] str=A.split(""); for(int x=0;x<n;x++){ int index=0; int num=0; //对(Dui)于(Yu)每(Mei)一(Yi)个(Ge)值(Zhi),(?)都(Du)需(Xu)要(Yao)从(Cong)前(Qian)开(Kai)始(Shi)遍(Bian)历(Li) while(index<=x){ if(str[index].equals(str[x])){ num++; } index++; } //该(Gai)值(Zhi)出(Chu)现(Xian)了(Liao)两(Liang)次(Ci),(?)说(Shuo)明(Ming)重(Zhong)复(Fu)了(Liao) if(num>1){ char flag='x'; flag=str[x].toCharArray()[0]; return flag; } } //返(Fan)回(Hui)该(Gai)值(Zhi)说(Shuo)明(Ming)已(Yi)经(Jing)没(Mei)有(You)重(Zhong)复(Fu)的(De) return 'p'; } }
public class test { public static void main(String[] args) { int [] arr1 = {10,20,30,40,50}; int [] arr2 = CopyArray(arr1); System.out.println(Arrays.toString(arr2)); } private static int[] CopyArray(int[] arr) { int [] arr2 = new int[arr.length]; for (int i = 0; i < arr.length; i++) { arr2[i] = arr[i]; } return null; } }
package cn.bjsxt.demo; import java.util.Scanner; public class SortDemo { /** * 给(Gei)定(Ding)的(De)字(Zi)符(Fu)串(Chuan)使(Shi)用(Yong),(?)号(Hao)分(Fen)隔(Ge) * @param strNumber * @return */ public static String [] split(String strNumber){ String [] strSplit=strNumber.split(","); return strSplit; } /** * 将(Jiang)String类(Lei)型(Xing)的(De)数(Shu)组(Zu)转(Zhuan)换(Huan)成(Cheng)int类(Lei)型(Xing)的(De)数(Shu)组(Zu) * @param strSplit * @return */ public static int [] getInt(String [] strSplit){ int arr[]=new int[strSplit.length]; for (int i = 0; i < strSplit.length; i++) { arr[i]=Integer.parseInt(strSplit[i]); } return arr; } /** * 冒(Mao)泡(Pao)排(Pai)序(Xu) * @param arr */ public static void sort(int [] arr){ for (int i = 0; i < arr.length-1; i++) { for (int j = 0; j < arr.length-1-i; j++) { if (arr[j]>arr[j+1]) { change(arr,j,j+1); } } } } /** * 两(Liang)数(Shu)交(Jiao)换(Huan)的(De)方(Fang)法(Fa) * @param arr 数(Shu)组(Zu) * @param x 数(Shu)组(Zu)中(Zhong)元(Yuan)素(Su)的(De)下(Xia)标(Biao) * @param y 数(Shu)组(Zu)中(Zhong)元(Yuan)素(Su)的(De)下(Xia)标(Biao) */ public static void change(int [] arr,int x,int y){ int temp=arr[x]; arr[x]=arr[y]; arr[y]=temp; } /** * 测(Ce)试(Shi)类(Lei) * @param args */ public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("请(Qing)输(Shu)入(Ru)一(Yi)个(Ge)数(Shu)字(Zi)串(Chuan),(?)每(Mei)个(Ge)数(Shu)字(Zi)以(Yi)逗(Dou)号(Hao)分(Fen)隔(Ge)"); String str=input.next(); //调(Diao)用(Yong)方(Fang)法(Fa) String [] s=split(str);//使(Shi)用(Yong)逗(Dou)号(Hao)分(Fen)隔(Ge) int [] arr=getInt(s);//调(Diao)有(You)获(Huo)得(De)整(Zheng)型(Xing)数(Shu)组(Zu)的(De)方(Fang)法(Fa) sort(arr);//调(Diao)用(Yong)排(Pai)序(Xu)的(De)方(Fang)法(Fa) for (int i : arr) { System.out.print(i+"\t"); } } }
package cn.bjsxt.demo; import java.util.Scanner; public class StringDemo { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("请(Qing)输(Shu)入(Ru)一(Yi)个(Ge)字(Zi)符(Fu)串(Chuan),(?)第(Di)一(Yi)个(Ge)字(Zi)符(Fu)必(Bi)须(Xu)是(Shi)字(Zi)母(Mu):(?)"); String str=input.next(); if (str.length()<5||str.length()>20) { System.out.println("对(Dui)不(Bu)起(Qi),(?)字(Zi)符(Fu)串(Chuan)的(De)长(Chang)度(Du)必(Bi)须(Xu)在(Zai)5-20之(Zhi)间(Jian)!"); }else{ char []ch=str.toCharArray(); if (Character.isLetter(ch[0])) {//判(Pan)断(Duan)第(Di)一(Yi)个(Ge)字(Zi)符(Fu)是(Shi)否(Fou)是(Shi)字(Zi)母(Mu) for (int i = 1; i < ch.length; i++) { if (!Character.isLetterOrDigit(ch[i])&&ch[i]!='_') { System.out.println("字(Zi)符(Fu)串(Chuan)不(Bu)符(Fu)合(He)要(Yao)求(Qiu)"); break; } } } } } }
思(Si)路(Lu)说(Shuo)明(Ming):(?)循(Xun)环(Huan)递(Di)增(Zeng)数(Shu)组(Zu)有(You)这(Zhe)么(Me)一(Yi)个(Ge)性(Xing)质(Zhi):(?)以(Yi)数(Shu)组(Zu)中(Zhong)间(Jian)元(Yuan)素(Su)将(Jiang)循(Xun)环(Huan)递(Di)增(Zeng)数(Shu)组(Zu)划(Hua)分(Fen)为(Wei)两(Liang)部(Bu)分(Fen),(?)则(Ze)一(Yi)部(Bu)分(Fen)为(Wei)一(Yi)个(Ge)严(Yan)格(Ge)递(Di)增(Zeng)数(Shu)组(Zu),(?)而(?)另(Ling)一(Yi)部(Bu)分(Fen)为(Wei)一(Yi)个(Ge)更(Geng)小(Xiao)的(De)循(Xun)环(Huan)递(Di)增(Zeng)数(Shu)组(Zu)。(?)当(Dang)中(Zhong)间(Jian)元(Yuan)素(Su)大(Da)于(Yu)首(Shou)元(Yuan)素(Su)时(Shi),(?)前(Qian)半(Ban)部(Bu)分(Fen)为(Wei)严(Yan)格(Ge)递(Di)增(Zeng)数(Shu)组(Zu),(?)后(Hou)半(Ban)部(Bu)分(Fen)为(Wei)循(Xun)环(Huan)递(Di)增(Zeng)数(Shu)组(Zu);(?)当(Dang)中(Zhong)间(Jian)元(Yuan)素(Su)小(Xiao)于(Yu)首(Shou)元(Yuan)素(Su)时(Shi),(?)前(Qian)半(Ban)部(Bu)分(Fen)为(Wei)循(Xun)环(Huan)递(Di)增(Zeng)数(Shu)组(Zu);(?)后(Hou)半(Ban)部(Bu)分(Fen)为(Wei)严(Yan)格(Ge)递(Di)增(Zeng)数(Shu)组(Zu)。(?)
记(Ji)要(Yao)检(Jian)索(Suo)的(De)元(Yuan)素(Su)为(Wei)e,(?)数(Shu)组(Zu)的(De)首(Shou)元(Yuan)素(Su)为(Wei)a[low],(?)中(Zhong)间(Jian)元(Yuan)素(Su)为(Wei)a[mid],(?)末(Mo)尾(Wei)元(Yuan)素(Su)为(Wei)a[high]。(?)则(Ze)当(Dang)e等(Deng)于(Yu)a[mid] 时(Shi),(?)直(Zhi)接(Jie)返(Fan)回(Hui)mid的(De)值(Zhi)即(Ji)可(Ke);(?)当(Dang)e不(Bu)等(Deng)于(Yu)a[mid] 时(Shi):
1) a[mid] > a[low],(?)即(Ji)数(Shu)组(Zu)前(Qian)半(Ban)部(Bu)分(Fen)为(Wei)严(Yan)格(Ge)递(Di)增(Zeng)数(Shu)组(Zu),(?)后(Hou)半(Ban)部(Bu)分(Fen)为(Wei)循(Xun)环(Huan)递(Di)增(Zeng)数(Shu)组(Zu)时(Shi),(?)若(Ruo)key小(Xiao)于(Yu)a[mid]并(Bing)且(Qie)不(Bu)小(Xiao)于(Yu)a[low]时(Shi),(?)则(Ze)key落(Luo)在(Zai)数(Shu)组(Zu)前(Qian)半(Ban)部(Bu)分(Fen);(?)否(Fou)则(Ze),(?)key落(Luo)在(Zai)数(Shu)组(Zu)后(Hou)半(Ban)部(Bu)分(Fen)。(?)
2) a[mid] < a[high],(?)即(Ji)数(Shu)组(Zu)前(Qian)半(Ban)部(Bu)分(Fen)为(Wei)循(Xun)环(Huan)递(Di)增(Zeng)数(Shu)组(Zu),(?)后(Hou)半(Ban)部(Bu)分(Fen)为(Wei)严(Yan)格(Ge)递(Di)增(Zeng)数(Shu)组(Zu)时(Shi),(?)若(Ruo)key大(Da)于(Yu)a[mid]并(Bing)且(Qie)不(Bu)大(Da)于(Yu)a[high]时(Shi),(?)则(Ze)key落(Luo)在(Zai)数(Shu)组(Zu)后(Hou)半(Ban)部(Bu)分(Fen);(?)否(Fou)则(Ze),(?)key落(Luo)在(Zai)数(Shu)组(Zu)前(Qian)半(Ban)部(Bu)分(Fen)。(?)
这(Zhe)种(Zhong)方(Fang)式(Shi)的(De)时(Shi)间(Jian)复(Fu)杂(Za)度(Du)为(Wei):(?)O(log(n)),(?)空(Kong)间(Jian)复(Fu)杂(Za)度(Du)为(Wei)O(1)。(?)
public class TestBinarySearch { public static void main(String[] args) { // 定(Ding)义(Yi)数(Shu)组(Zu) int[] a = { 17, 19, 20, 21, 25, 1, 4, 7 }; // 调(Diao)用(Yong)改(Gai)进(Jin)后(Hou)的(De)二(?)分(Fen)查(Cha)找(Zhao)法(Fa)求(Qiu)索(Suo)引(Yin) int pos = search(a, 7); System.out.println("要(Yao)查(Cha)找(Zhao)的(De)元(Yuan)素(Su)的(De)索(Suo)引(Yin)为(Wei):(?)" + pos); } /** 改(Gai)进(Jin)后(Hou)的(De)二(?)分(Fen)查(Cha)找(Zhao)法(Fa):(?)e为(Wei)要(Yao)查(Cha)找(Zhao)的(De)元(Yuan)素(Su) */ public static int search(int[] a, int e) { int low = 0; int high = a.length - 1; int mid = 0; int pos = -1; // 返(Fan)回(Hui)-1,(?)表(Biao)示(Shi)查(Cha)找(Zhao)失(Shi)败(Bai) // 如(Ru)果(Guo)low < high,(?)说(Shuo)明(Ming)循(Xun)环(Huan)查(Cha)找(Zhao)结(Jie)束(Shu),(?)直(Zhi)接(Jie)返(Fan)回(Hui)-1;否(Fou)则(Ze)循(Xun)环(Huan)查(Cha)找(Zhao) while (low <= high) { // mid为(Wei)中(Zhong)间(Jian)值(Zhi)索(Suo)引(Yin) mid = (low + high) / 2; // 如(Ru)果(Guo)中(Zhong)间(Jian)值(Zhi)刚(Gang)好(Hao)是(Shi)e,(?)则(Ze)查(Cha)找(Zhao)成(Cheng)功(Gong),(?)终(Zhong)止(Zhi)查(Cha)找(Zhao),(?)e的(De)索(Suo)引(Yin)为(Wei)mid if (a[mid] == e) { pos = mid; break; } // 如(Ru)果(Guo)a[low] <= a[mid],(?)说(Shuo)明(Ming)原(Yuan)数(Shu)组(Zu)的(De)前(Qian)半(Ban)部(Bu)分(Fen)是(Shi)严(Yan)格(Ge)递(Di)增(Zeng)的(De),(?)后(Hou)半(Ban)部(Bu)分(Fen)是(Shi)一(Yi)个(Ge)更(Geng)小(Xiao)的(De)循(Xun)环(Huan)递(Di)增(Zeng)数(Shu)组(Zu) if (a[low] <= a[mid]) { // 如(Ru)果(Guo)要(Yao)查(Cha)找(Zhao)的(De)元(Yuan)素(Su)e小(Xiao)于(Yu)a[mid]并(Bing)且(Qie)不(Bu)小(Xiao)于(Yu)a[low]时(Shi),(?)则(Ze)说(Shuo)明(Ming)e落(Luo)在(Zai)数(Shu)组(Zu)前(Qian)半(Ban)部(Bu)分(Fen) if (a[low] <= e && e < a[mid]) { high = mid - 1; } else {// 否(Fou)则(Ze)的(De)话(Hua),(?)需(Xu)要(Yao)在(Zai)数(Shu)组(Zu)的(De)后(Hou)半(Ban)部(Bu)分(Fen)继(Ji)续(Xu)查(Cha)找(Zhao) low = mid + 1; } } else {// 否(Fou)则(Ze),(?)后(Hou)半(Ban)部(Bu)分(Fen)是(Shi)严(Yan)格(Ge)递(Di)增(Zeng)的(De),(?)前(Qian)半(Ban)部(Bu)分(Fen)是(Shi)一(Yi)个(Ge)更(Geng)小(Xiao)的(De)循(Xun)环(Huan)递(Di)增(Zeng)数(Shu)组(Zu) // 如(Ru)果(Guo)要(Yao)查(Cha)找(Zhao)的(De)元(Yuan)素(Su)e大(Da)于(Yu)a[mid]并(Bing)且(Qie)不(Bu)大(Da)于(Yu)a[high]时(Shi),(?)则(Ze)说(Shuo)明(Ming)e落(Luo)在(Zai)数(Shu)组(Zu)后(Hou)半(Ban)部(Bu)分(Fen) if (a[mid] < e && e <= a[high]) { low = mid + 1; } else {// 否(Fou)则(Ze)的(De)话(Hua),(?)需(Xu)要(Yao)在(Zai)数(Shu)组(Zu)的(De)前(Qian)半(Ban)部(Bu)分(Fen)继(Ji)续(Xu)查(Cha)找(Zhao) high = mid - 1; } } } return pos; } }
思(Si)路(Lu)说(Shuo)明(Ming):(?)因(Yin)为(Wei)n! = (n-1)! * n,(?)所(Suo)以(Yi)要(Yao)求(Qiu)n!首(Shou)先(Xian)要(Yao)求(Qiu)出(Chu)(n-1)!,(?)而(?)(n-1)! = (n-1-1)! * (n-1),(?)以(Yi)此(Ci)类(Lei)推(Tui),(?)直(Zhi)到(Dao)n = 1为(Wei)止(Zhi)。(?)
import java.util.Scanner; public class TestFactorial { public static void main(String[] args) { System.out.print("请(Qing)输(Shu)入(Ru)一(Yi)个(Ge)整(Zheng)数(Shu):(?)"); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println(n + "的(De)阶(Jie)乘(Cheng)是(Shi):(?)" + factorial(n)); } /**求(Qiu)阶(Jie)乘(Cheng)的(De)方(Fang)法(Fa)*/ public static int factorial(int n) { if(n == 1){ return 1; } return factorial(n - 1) * n; } }
思(Si)路(Lu)说(Shuo)明(Ming):(?)斐(Fei)波(Bo)那(Na)契(Qi)数(Shu)列(Lie)的(De)排(Pai)列(Lie)是(Shi):(?)0,(?)1,(?)1,(?)2,(?)3,(?)5,(?)8,(?)13,(?)21,(?)34,(?)55,(?)89,(?)144…(?)…(?),(?)特(Te)别(Bie)指(Zhi)出(Chu)的(De)是(Shi)0不(Bu)是(Shi)第(Di)一(Yi)项(Xiang)而(?)是(Shi)第(Di)0项(Xiang);(?)因(Yin)为(Wei)F(n)=F(n-1)+F(n-2),(?)所(Suo)以(Yi)要(Yao)求(Qiu)F(n)首(Shou)先(Xian)要(Yao)求(Qiu)出(Chu)F(n-1)和(He)F(n-2),(?)而(?)F(n-1)=F(n-1-1)+F(n-1-2),(?)以(Yi)此(Ci)类(Lei)推(Tui),(?)直(Zhi)到(Dao),F(2)=F(1)+F(0)为(Wei)止(Zhi),(?)已(Yi)知(Zhi)F(1) = 1,(?)F(0) = 0。(?)
import java.util.Scanner; public class TestFibo { public static void main(String[] args) { System.out.print("请(Qing)输(Shu)要(Yao)求(Qiu)斐(Fei)波(Bo)那(Na)契(Qi)数(Shu)列(Lie)的(De)第(Di)几(Ji)项(Xiang):(?)"); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println("斐(Fei)波(Bo)那(Na)契(Qi)数(Shu)列(Lie)的(De)第(Di)"+ n + "是(Shi):(?)" + fibo(n)); } public static int fibo(int n) { if(n == 0){ return 0; } else if(n == 1){ return 1; } return fibo(n -1) + fibo(n - 2); } }
冒(Mao)泡(Pao)思(Si)路(Lu)说(Shuo)明(Ming):(?)
(1) 最(Zui)开(Kai)始(Shi)将(Jiang)数(Shu)组(Zu)看(Kan)做(Zuo)一(Yi)个(Ge)无(Wu)序(Xu)数(Shu)列(Lie)(个(Ge)数(Shu)是(Shi)数(Shu)组(Zu)的(De)长(Chang)度(Du))与(Yu)一(Yi)个(Ge)有(You)序(Xu)数(Shu)列(Lie)(0个(Ge))的(De)组(Zu)合(He);(?)
(2) 每(Mei)一(Yi)趟(Tang)比(Bi)较(Jiao)完(Wan)后(Hou), 找(Zhao)到(Dao)了(Liao)无(Wu)序(Xu)数(Shu)列(Lie)的(De)最(Zui)大(Da)值(Zhi), 将(Jiang)其(Qi)放(Fang)到(Dao)有(You)序(Xu)数(Shu)列(Lie)中(Zhong)(有(You)序(Xu)数(Shu)列(Lie)个(Ge)数(Shu)+1);(?)
(3) N个(Ge)数(Shu), 比(Bi)较(Jiao)N-1趟(Tang);(?)
(4) 每(Mei)一(Yi)趟(Tang)挨(Ai)个(Ge)进(Jin)行(Xing)比(Bi)较(Jiao):(?)从(Cong)数(Shu)组(Zu)的(De)第(Di)一(Yi)个(Ge)元(Yuan)素(Su)开(Kai)始(Shi), 到(Dao)无(Wu)序(Xu)数(Shu)列(Lie)的(De)最(Zui)后(Hou)一(Yi)个(Ge)为(Wei)止(Zhi);(?)
(5) 如(Ru)果(Guo)前(Qian)边(Bian)一(Yi)个(Ge)大(Da)于(Yu)后(Hou)边(Bian)一(Yi)个(Ge), 那(Na)么(Me)交(Jiao)换(Huan)位(Wei)置(Zhi);(?)
(6) 每(Mei)趟(Tang)比(Bi)较(Jiao)的(De)次(Ci)数(Shu)与(Yu)趟(Tang)数(Shu)有(You)关(Guan);(?)
(7) 根(Gen)据(Ju)每(Mei)趟(Tang)比(Bi)较(Jiao)是(Shi)否(Fou)发(Fa)生(Sheng)了(Liao)交(Jiao)换(Huan)判(Pan)断(Duan)数(Shu)据(Ju)是(Shi)否(Fou)已(Yi)经(Jing)有(You)序(Xu),(?)从(Cong)而(?)进(Jin)行(Xing)优(You)化(Hua)。(?)
public class TestSort { public static void main(String[] args) { int[] arr = {11, 66, 22, 0, 55, 32}; // 调(Diao)用(Yong)排(Pai)序(Xu)方(Fang)法(Fa) sort(arr); // 输(Shu)出(Chu)排(Pai)除(Chu)后(Hou)的(De)数(Shu)组(Zu) for (int num : arr) { System.out.print(num + "\t"); } } public static void sort(int[] arr) { // 定(Ding)义(Yi)标(Biao)记(Ji) boolean flag = false; int temp; // 排(Pai)序(Xu) // 外(Wai)层(Ceng)循(Xun)环(Huan)控(Kong)制(Zhi)的(De)是(Shi)比(Bi)较(Jiao)的(De)趟(Tang)数(Shu) for (int i = 0; i < arr.length - 1; i++) { // 每(Mei)一(Yi)趟(Tang)比(Bi)较(Jiao)之(Zhi)前(Qian)初(Chu)始(Shi)化(Hua), 否(Fou)则(Ze)会(Hui)保(Bao)留(Liu)上(Shang)一(Yi)堂(Tang)比(Bi)较(Jiao)的(De)结(Jie)果(Guo) flag = false; // 内(Nei)层(Ceng)循(Xun)环(Huan)控(Kong)制(Zhi)的(De)是(Shi)每(Mei)趟(Tang)比(Bi)较(Jiao)的(De)次(Ci)数(Shu) for (int j = 0; j < arr.length - 1 - i; j++) { // 挨(Ai)个(Ge)进(Jin)行(Xing)比(Bi)较(Jiao): 从(Cong)数(Shu)组(Zu)的(De)第(Di)一(Yi)个(Ge)元(Yuan)素(Su)开(Kai)始(Shi), 到(Dao)无(Wu)序(Xu)数(Shu)列(Lie)的(De)最(Zui)后(Hou)一(Yi)个(Ge) if (arr[j] > arr[j + 1]) { // 交(Jiao)换(Huan) temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; //如(Ru)果(Guo)发(Fa)生(Sheng)交(Jiao)换(Huan),(?)改(Gai)变(Bian)flag的(De)值(Zhi) flag = true; } } if (!flag) { break; } } } }
// 这(Zhe)个(Ge)类(Lei)用(Yong)于(Yu)存(Cun)取(Qu)一(Yi)组(Zu)权(Quan)限(Xian),(?)每(Mei)个(Ge)权(Quan)限(Xian)用(Yong)非(Fei)负(Fu)整(Zheng)数(Shu)表(Biao)示(Shi)的(De).这(Zhe)组(Zu)枳(Zhi)限(Xian)存(Cun)储(Chu)在(Zai) // righiString属(Shu)性(Xing)中(Zhong)。(?)如(Ru)果(Guo)权(Quan)限(Xian)N权(Quan)限(Xian)存(Cun)在(Zai),(?)rightString第(Di)N个(Ge)字(Zi)符(Fu)为(Wei)“(?)1”(?),否(Fou)则(Ze),(?) 为(Wei)空(Kong)格(Ge)。(?) class RightStore { public String righString = ""; // 如(Ru)果(Guo)传(Chuan)入(Ru)的(De)权(Quan)限(Xian)right存(Cun)在(Zai),(?)该(Gai)方(Fang)法(Fa)返(Fan)回(Hui)true.否(Fou)期(Qi),(?)为(Wei)false., // right为(Wei)传(Chuan)入(Ru)的(De)权(Quan)限(Xian)的(De)整(Zheng)数(Shu)值(Zhi). public boolean getRight(int right) { return true; } // 该(Gai)方(Fang)法(Fa)存(Cun)储(Chu)或(Huo)消(Xiao)除(Chu)传(Chuan)入(Ru)的(De)权(Quan)限(Xian).如(Ru)果(Guo)value为(Wei)true,存(Cun)储(Chu)传(Chuan)入(Ru)的(De)权(Quan)限(Xian), // 否(Fou)则(Ze)除(Chu)该(Gai)权(Quan)限(Xian). // right为(Wei)传(Chuan)入(Ru)的(De)权(Quan)限(Xian)的(De)整(Zheng)数(Shu)值(Zhi). public void setRight(int right, boolean value) { } }
思(Si)路(Lu)说(Shuo)明(Ming):(?)我(Wo)们(Men)首(Shou)先(Xian)要(Yao)读(Du)懂(Dong)这(Zhe)道(Dao)题(Ti)的(De)意(Yi)思(Si):(?)righString这(Zhe)个(Ge)字(Zi)符(Fu)串(Chuan)是(Shi)用(Yong)来(Lai)存(Cun)储(Chu)一(Yi)系(Xi)列(Lie)权(Quan)限(Xian)的(De),(?)并(Bing)且(Qie)权(Quan)限(Xian)的(De)取(Qu)值(Zhi)只(Zhi)有(You)两(Liang)种(Zhong):(?)有(You)和(He)没(Mei)有(You);(?)在(Zai)righString中(Zhong)使(Shi)用(Yong)字(Zi)符(Fu)‘(?)1’(?)表(Biao)示(Shi)有(You)权(Quan)限(Xian),(?)字(Zi)符(Fu)空(Kong)格(Ge)‘(?) ’(?)表(Biao)示(Shi)没(Mei)有(You)权(Quan)限(Xian)。(?)举(Ju)个(Ge)例(Li)子(Zi):(?)如(Ru)果(Guo)righString的(De)长(Chang)度(Du)为(Wei)3,(?)第(Di)一(Yi)位(Wei)表(Biao)示(Shi)对(Dui)订(Ding)单(Dan)系(Xi)统(Tong)是(Shi)否(Fou)有(You)权(Quan)限(Xian),(?)第(Di)二(?)位(Wei)表(Biao)示(Shi)对(Dui)人(Ren)员(Yuan)管(Guan)理(Li)系(Xi)统(Tong)是(Shi)否(Fou)有(You)权(Quan)限(Xian),(?)第(Di)三(San)位(Wei)表(Biao)示(Shi)对(Dui)库(Ku)存(Cun)系(Xi)统(Tong)是(Shi)否(Fou)有(You)权(Quan)限(Xian)。(?)而(?)方(Fang)法(Fa)中(Zhong)的(De)int right参(Can)数(Shu)则(Ze)表(Biao)示(Shi)的(De)是(Shi)字(Zi)符(Fu)串(Chuan)的(De)第(Di)几(Ji)位(Wei)。(?)
上(Shang)边(Bian)这(Zhe)些(Xie)搞(Gao)明(Ming)白(Bai)之(Zhi)后(Hou),(?)方(Fang)法(Fa)的(De)编(Bian)写(Xie)就(Jiu)简(Jian)单(Dan)多(Duo)了(Liao)。(?)
public class RightStore { public String righString = ""; public boolean getRight(int right) { //先(Xian)求(Qiu)得(De)第(Di)right个(Ge)字(Zi)符(Fu) char ch = righString.charAt(right - 1); //如(Ru)果(Guo)ch为(Wei)'1',(?)返(Fan)回(Hui)true,(?)否(Fou)则(Ze)返(Fan)回(Hui)false return ch == '1'; } public void setRight(int right, boolean value) { //如(Ru)果(Guo)value为(Wei)true,存(Cun)储(Chu)传(Chuan)入(Ru)的(De)权(Quan)限(Xian),(?)否(Fou)则(Ze)消(Xiao)除(Chu)权(Quan)限(Xian)((?)改(Gai)为(Wei)空(Kong)格(Ge))(?) righString.replace(righString.charAt(right - 1), value ? '1' : ' '); } }
思(Si)路(Lu)说(Shuo)明(Ming):(?)假(Jia)设(She)在(Zai)一(Yi)个(Ge)已(Yi)经(Jing)排(Pai)好(Hao)序(Xu)的(De)有(You)序(Xu)序(Xu)列(Lie)(N个(Ge)元(Yuan)素(Su),(?)升(Sheng)序(Xu)排(Pai)列(Lie)),(?)首(Shou)先(Xian)让(Rang)序(Xu)列(Lie)中(Zhong)的(De)中(Zhong)间(Jian)的(De)元(Yuan)素(Su)与(Yu)需(Xu)要(Yao)查(Cha)找(Zhao)的(De)关(Guan)键(Jian)字(Zi)进(Jin)行(Xing)比(Bi)较(Jiao),(?)如(Ru)果(Guo)相(Xiang)等(Deng),(?)则(Ze)查(Cha)找(Zhao)成(Cheng)功(Gong),(?)否(Fou)则(Ze)利(Li)用(Yong)中(Zhong)间(Jian)位(Wei)置(Zhi)将(Jiang)序(Xu)列(Lie)分(Fen)成(Cheng)两(Liang)个(Ge)子(Zi)序(Xu)列(Lie),(?)如(Ru)果(Guo)待(Dai)查(Cha)找(Zhao)的(De)关(Guan)键(Jian)字(Zi)小(Xiao)于(Yu)中(Zhong)间(Jian)的(De)元(Yuan)素(Su),(?)则(Ze)在(Zai)前(Qian)一(Yi)个(Ge)子(Zi)序(Xu)列(Lie)中(Zhong)同(Tong)样(Yang)的(De)方(Fang)法(Fa)进(Jin)一(Yi)步(Bu)查(Cha)找(Zhao),(?)如(Ru)果(Guo)待(Dai)查(Cha)找(Zhao)的(De)关(Guan)键(Jian)字(Zi)大(Da)于(Yu)中(Zhong)间(Jian)的(De)元(Yuan)素(Su),(?)则(Ze)在(Zai)后(Hou)一(Yi)个(Ge)子(Zi)序(Xu)列(Lie)中(Zhong)同(Tong)样(Yang)的(De)方(Fang)法(Fa)进(Jin)一(Yi)步(Bu)查(Cha)找(Zhao),(?)重(Zhong)复(Fu)以(Yi)上(Shang)过(Guo)程(Cheng)一(Yi)直(Zhi)到(Dao)查(Cha)找(Zhao)结(Jie)束(Shu)!(?)
import java.util.Scanner; public class TestBinarySearchRecursion { public static void main(String[] args) { int[] a = { 1, 3, 5, 7, 9, 11, 13 }; System.out.print("请(Qing)输(Shu)入(Ru)要(Yao)查(Cha)找(Zhao)的(De)元(Yuan)素(Su):(?)"); int e = new Scanner(System.in).nextInt(); int index = binarySearch(a, 0, a.length - 1, e); System.out.println(index != -1 ? "元(Yuan)素(Su)索(Suo)引(Yin)为(Wei)" + index : "没(Mei)有(You)该(Gai)元(Yuan)素(Su)"); } private static int binarySearch(int[] a, int low, int high, int e) { int mid = 0; if (low <= high) { mid = (low + high) / 2; if (a[mid] == e) { return mid; } else if (a[mid] > e) { return binarySearch(a, low, mid - 1, e); } else { return binarySearch(a, mid + 1, high, e); } } return -1; } }
函(Han)数(Shu)形(Xing)如(Ru):(?)
public static String reverseWords(String input) { String str = ""; return str; }
思(Si)路(Lu)说(Shuo)明(Ming):(?)将(Jiang)字(Zi)符(Fu)串(Chuan)转(Zhuan)化(Hua)成(Cheng)字(Zi)符(Fu)数(Shu)组(Zu),(?)然(Ran)后(Hou)根(Gen)据(Ju)数(Shu)组(Zu)中(Zhong)空(Kong)格(Ge)的(De)位(Wei)置(Zhi)判(Pan)断(Duan)每(Mei)个(Ge)单(Dan)词(Ci)所(Suo)占(Zhan)的(De)索(Suo)引(Yin)范(Fan)围(Wei),(?)根(Gen)据(Ju)得(De)到(Dao)的(De)索(Suo)引(Yin)将(Jiang)数(Shu)组(Zu)中(Zhong)的(De)每(Mei)个(Ge)单(Dan)词(Ci)逆(Ni)序(Xu)后(Hou)拼(Pin)接(Jie)到(Dao)新(Xin)的(De)字(Zi)符(Fu)串(Chuan)中(Zhong)。(?)
public class TestStringReverse{ public static void main(String[] args) { String input = "There is a dog"; System.out.println("逆(Ni)转(Zhuan)后(Hou)的(De)字(Zi)符(Fu)串(Chuan)为(Wei):(?)" + reverseWords(input)); } public static String reverseWords(String input) { String str = ""; //将(Jiang)字(Zi)符(Fu)串(Chuan)转(Zhuan)化(Hua)成(Cheng)字(Zi)符(Fu)数(Shu)组(Zu) char[] arr = input.toCharArray(); //index用(Yong)来(Lai)记(Ji)录(Lu)每(Mei)个(Ge)单(Dan)词(Ci)的(De)起(Qi)始(Shi)索(Suo)引(Yin) int index = 0; //遍(Bian)历(Li)字(Zi)符(Fu)数(Shu)组(Zu),(?)将(Jiang)空(Kong)格(Ge)前(Qian)边(Bian)的(De)单(Dan)词(Ci)挨(Ai)个(Ge)拼(Pin)接(Jie)到(Dao)str中(Zhong) for (int i = 0; i < arr.length; i++) { if(arr[i] == ' '){ //根(Gen)据(Ju)空(Kong)格(Ge)的(De)位(Wei)置(Zhi)将(Jiang)空(Kong)格(Ge)前(Qian)边(Bian)一(Yi)个(Ge)单(Dan)词(Ci)密(Mi)续(Xu)追(Zhui)加(Jia)到(Dao)str中(Zhong) for(int j = i - 1; j >= index; j--){ str += arr[j]; } //单(Dan)词(Ci)拼(Pin)接(Jie)完(Wan)成(Cheng)后(Hou),(?)拼(Pin)接(Jie)一(Yi)个(Ge)空(Kong)格(Ge) str += ' '; //让(Rang)index指(Zhi)向(Xiang)下(Xia)一(Yi)个(Ge)单(Dan)词(Ci)的(De)起(Qi)始(Shi)位(Wei)置(Zhi) index = i + 1; } } //将(Jiang)最(Zui)后(Hou)一(Yi)个(Ge)单(Dan)词(Ci)拼(Pin)接(Jie)上(Shang) for(int i = arr.length - 1; i >= index; i--){ str += arr[i]; } return str; } }
9x9乘(Cheng)法(Fa)表(Biao):
class Demo { public static void main(String[] args) { for(int x = 0;x <= 9; x++) { for(int y = 1;y <= x; y++) { System.out.print(y+"*"+x+"="+x*y+"\t"); } System.out.println(); } } }
冒(Mao)泡(Pao)排(Pai)序(Xu):
public class BubbleSort{ public static void main(String[] args){ int score[] = {67, 69, 75, 87, 89, 90, 99, 100}; for (int i = 0; i < score.length -1; i++){//最(Zui)多(Duo)做(Zuo)n-1趟(Tang)排(Pai)序(Xu) for(int j = 0 ;j < score.length - i - 1; j++){//对(Dui)当(Dang)前(Qian)无(Wu)序(Xu)区(Qu)间(Jian)score[0......length-i-1]进(Jin)行(Xing)排(Pai)序(Xu)(j的(De)范(Fan)围(Wei)很(Hen)关(Guan)键(Jian),(?)这(Zhe)个(Ge)范(Fan)围(Wei)是(Shi)在(Zai)逐(Zhu)步(Bu)缩(Suo)小(Xiao)的(De)) if(score[j] < score[j + 1]){ //把(Ba)小(Xiao)的(De)值(Zhi)交(Jiao)换(Huan)到(Dao)后(Hou)面(Mian) int temp = score[j]; score[j] = score[j + 1]; score[j + 1] = temp; } } System.out.print("第(Di)" + (i + 1) + "次(Ci)排(Pai)序(Xu)结(Jie)果(Guo):(?)"); for(int a = 0; a < score.length; a++){ System.out.print(score[a] + "\t"); } System.out.println(""); } System.out.print("最(Zui)终(Zhong)排(Pai)序(Xu)结(Jie)果(Guo):(?)"); for(int a = 0; a < score.length; a++){ System.out.print(score[a] + "\t"); } } }
public class Solution { public boolean containsDuplicate(int[] nums) { Set<Integer> numSet = new HashSet<Integer>(); for(int i=0;i<nums.length;i++){·(?) if(numSet.contains(nums[i])) return true; else numSet.add(nums[i]); } return false; } }
public void moveZeroes(int[] nums) { int size = nums.length; int startIndex = 0; // 0元(Yuan)素(Su)开(Kai)始(Shi)的(De)位(Wei)置(Zhi) int endIndex = 0; // 0元(Yuan)素(Su)结(Jie)束(Shu)的(De)位(Wei)置(Zhi) int currentNum; int i= 0; // 第(Di)一(Yi)步(Bu):(?)找(Zhao)到(Dao)第(Di)一(Yi)个(Ge)0元(Yuan)素(Su)开(Kai)始(Shi)的(De)位(Wei)置(Zhi) // 并(Bing)将(Jiang)第(Di)一(Yi)个(Ge)0元(Yuan)素(Su)的(De)游(You)标(Biao)赋(Fu)值(Zhi)给(Gei)startIndex&endIndex while(i < size){ currentNum = nums[i]; if (currentNum == 0) { startIndex = i; endIndex = i; break; } ++i; } // 如(Ru)果(Guo)当(Dang)前(Qian)数(Shu)组(Zu)中(Zhong)没(Mei)有(You)找(Zhao)到(Dao)0元(Yuan)素(Su),(?)则(Ze)推(Tui)出(Chu) if (nums[endIndex] != 0) return; // 将(Jiang)当(Dang)前(Qian)i的(De)值(Zhi)加(Jia)1;(?)直(Zhi)接(Jie)从(Cong)刚(Gang)才(Cai)0元(Yuan)素(Su)位(Wei)置(Zhi)的(De)后(Hou)一(Yi)位(Wei)置(Zhi)开(Kai)始(Shi)循(Xun)环(Huan) ++i; while (i < size) { currentNum = nums[i]; if (currentNum == 0){//如(Ru)果(Guo)当(Dang)前(Qian)元(Yuan)素(Su)等(Deng)于(Yu)0,(?)则(Ze)将(Jiang)i值(Zhi)赋(Fu)值(Zhi)给(Gei)endIndex endIndex = i; } else { // 如(Ru)果(Guo)不(Bu)为(Wei)0 //则(Ze)将(Jiang)当(Dang)前(Qian)元(Yuan)素(Su)赋(Fu)值(Zhi)给(Gei)nums[startIndex] // 并(Bing)将(Jiang)当(Dang)前(Qian)位(Wei)置(Zhi)的(De)元(Yuan)素(Su)赋(Fu)值(Zhi)为(Wei)0 // startIndex和(He)endIndex都(Du)加(Jia)1;(?) nums[startIndex] = currentNum; nums[i] = 0; ++startIndex; ++endIndex; } ++i; } }
public class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> result = new ArrayList<Integer>(); if(root == null) return result; Stack<TreeNode> stack = new Stack<TreeNode>(); stack.push(root); while(!stack.isEmpty()) { TreeNode node = stack.pop(); result.add(node.val); if(node.right != null) stack.push(node.right); if(node.left != null) stack.push(node.left); } return result; } }
public class Solution { private static int lastVisit = Integer.MIN_VALUE; public boolean isValidBST(TreeNode root) { if(root == null) return true; boolean judgeLeft = isValidBST(root.left); // 先(Xian)判(Pan)断(Duan)左(Zuo)子(Zi)树(Shu) if(root.data >= lastVisit && judgeLeft) { // 当(Dang)前(Qian)节(Jie)点(Dian)比(Bi)上(Shang)次(Ci)访(Fang)问(Wen)的(De)数(Shu)值(Zhi)要(Yao)大(Da) lastVisit = root.data; } else { return false; } boolean judgeRight = isValidBST(root.right); // 后(Hou)判(Pan)断(Duan)右(You)子(Zi)树(Shu) return judgeRight; } }
题(Ti)目(Mu):(?) 写(Xie)一(Yi)个(Ge)函(Han)数(Shu)用(Yong)于(Yu)在(Zai)一(Yi)个(Ge)单(Dan)向(Xiang)链(Lian)表(Biao)中(Zhong)删(Shan)除(Chu)一(Yi)个(Ge)节(Jie)点(Dian)((?)非(Fei)尾(Wei)节(Jie)点(Dian))(?),(?)前(Qian)提(Ti)是(Shi)仅(Jin)仅(Jin)能(Neng)够(Gou)访(Fang)问(Wen)要(Yao)删(Shan)除(Chu)的(De)那(Na)个(Ge)节(Jie)点(Dian)。(?)
比(Bi)如(Ru)给(Gei)定(Ding)链(Lian)表(Biao)1 -> 3 -> 5 -> 7 -> 9 -> 16,(?)给(Gei)定(Ding)你(Ni)值(Zhi)为(Wei)3的(De)那(Na)个(Ge)节(Jie)点(Dian),(?) 调(Diao)用(Yong)你(Ni)的(De)函(Han)数(Shu)后(Hou),(?)链(Lian)表(Biao)变(Bian)为(Wei)
1 -> 5 -> 7 -> 9 -> 16。(?)
/** Definition for singly-linked list. public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } * } */ public class Solution { public void deleteNode(ListNode node) { if(node==null||node.next==null) { System.out.println("节(Jie)点(Dian)不(Bu)存(Cun)在(Zai)或(Huo)者(Zhe)是(Shi)尾(Wei)节(Jie)点(Dian)"); }else{ node.val=node.next.val; node.next=node.next.next; } } }
/** Definition for a binary tree node. public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } * } */ public class Solution2 { public int kthSmallest(TreeNode root, int k) { Stack<TreeNode> store = new Stack<TreeNode>(); if (root == null) { return -1; } store.push(root); while (root.left != null) { store.push(root.left); root = root.left; } while (!store.empty()) { TreeNode cur = store.pop(); k--; if (k == 0) { return cur.val; } if (cur.right != null) { root = cur.right;// let cur.right be the current node store.push(root); while (root.left != null) { store.push(root.left); root = root.left; } } } return -1; } }
比(Bi)如(Ru),(?)
S = [-1, 0, 1, 2, -1, -4],,
结(Jie)果(Guo)集(Ji)为(Wei): [
[-1, 0, 1],
[-1, -1, 2]
]
/** * 给(Gei)定(Ding)一(Yi)个(Ge)n个(Ge)元(Yuan)素(Su)的(De)数(Shu)组(Zu),(?)是(Shi)否(Fou)存(Cun)在(Zai)a,(?)b,(?)c三(San)个(Ge)元(Yuan)素(Su),(?)使(Shi)用(Yong)得(De)a+b+c=0,(?)找(Zhao)出(Chu)所(Suo)有(You)符(Fu)合(He)这(Zhe)个(Ge)条(Tiao)件(Jian)的(De)三(San)元(Yuan)组(Zu) * 注(Zhu)意(Yi):(?) - 三(San)元(Yuan)组(Zu)中(Zhong)的(De)元(Yuan)素(Su)必(Bi)须(Xu)是(Shi)非(Fei)递(Di)减(Jian)的(De) - 结(Jie)果(Guo)不(Bu)能(Neng)包(Bao)含(Han)重(Zhong)复(Fu)元(Yuan)素(Su) */ public class Solution { public static void main(String[] args) { int[] S = {-1, 0, 1, 2, -1, -4,-3,-4,4,3}; new Solution().get3Sum(S); } public Set<String> get3Sum(int[] S){ if(S.length<3 || S==null){ return null; } //接(Jie)收(Shou)拼(Pin)接(Jie)的(De)字(Zi)符(Fu)串(Chuan) StringBuffer sb = new StringBuffer(); for(int i=0; i<S.length; i++){ for(int j=0; j<S.length; j++){ for(int z=0; z<S.length; z++){ //筛(Shai)选(Xuan)出(Chu)不(Bu)是(Shi)递(Di)减(Jian)的(De)一(Yi)组(Zu)元(Yuan)素(Su) if(S[i]<=S[j] && S[j]<=S[z]){ int sum = S[i] + S[j] + S[z]; if(sum==0){ String str = "("+S[i]+","+S[j]+","+S[z]+")"; sb.append(str+";"); } } } } } String s = sb.toString(); s = s.substring(0, sb.length()-1); String[] arr = s.split(";"); Set<String> set = new HashSet<String>(); //将(Jiang)所(Suo)筛(Shai)选(Xuan)出(Chu)来(Lai)的(De)元(Yuan)素(Su)放(Fang)入(Ru)Set集(Ji)合(He)中(Zhong),(?)去(Qu)重(Zhong) for (int k = 0; k < arr.length; k++) { set.add(arr[k]); } System.out.println(set); return set; } public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> result = new LinkedList<>(); if (nums != null && nums.length > 2) { // 先(Xian)对(Dui)数(Shu)组(Zu)进(Jin)行(Xing)排(Pai)序(Xu) Arrays.sort(nums); // i表(Biao)示(Shi)假(Jia)设(She)取(Qu)第(Di)i个(Ge)数(Shu)作(Zuo)为(Wei)结(Jie)果(Guo) for (int i = 0; i < nums.length - 2; ) { // 第(Di)二(?)个(Ge)数(Shu)可(Ke)能(Neng)的(De)起(Qi)始(Shi)位(Wei)置(Zhi) int j = i + 1; // 第(Di)三(San)个(Ge)数(Shu)可(Ke)能(Neng)是(Shi)结(Jie)束(Shu)位(Wei)置(Zhi) int k = nums.length - 1; while (j < k) { // 如(Ru)果(Guo)找(Zhao)到(Dao)满(Man)足(Zu)条(Tiao)件(Jian)的(De)解(Jie) if (nums[j] + nums[k] == -nums[i]) { // 将(Jiang)结(Jie)果(Guo)添(Tian)加(Jia)到(Dao)结(Jie)果(Guo)含(Han)集(Ji)中(Zhong) List<Integer> list = new ArrayList<>(3); list.add(nums[i]); list.add(nums[j]); list.add(nums[k]); result.add(list); // 移(Yi)动(Dong)到(Dao)下(Xia)一(Yi)个(Ge)位(Wei)置(Zhi),(?)找(Zhao)下(Xia)一(Yi)组(Zu)解(Jie) k--; j++; // 从(Cong)左(Zuo)向(Xiang)右(You)找(Zhao)第(Di)一(Yi)个(Ge)与(Yu)之(Zhi)前(Qian)处(Chu)理(Li)的(De)数(Shu)不(Bu)同(Tong)的(De)数(Shu)的(De)下(Xia)标(Biao) while (j < k && nums[j] == nums[j - 1]) { j++; } // 从(Cong)右(You)向(Xiang)左(Zuo)找(Zhao)第(Di)一(Yi)个(Ge)与(Yu)之(Zhi)前(Qian)处(Chu)理(Li)的(De)数(Shu)不(Bu)同(Tong)的(De)数(Shu)的(De)下(Xia)标(Biao) while (j < k && nums[k] == nums[k + 1]) { k--; } } // 和(He)大(Da)于(Yu)0 else if (nums[j] + nums[k] > -nums[i]) { k--; // 从(Cong)右(You)向(Xiang)左(Zuo)找(Zhao)第(Di)一(Yi)个(Ge)与(Yu)之(Zhi)前(Qian)处(Chu)理(Li)的(De)数(Shu)不(Bu)同(Tong)的(De)数(Shu)的(De)下(Xia)标(Biao) while (j < k && nums[k] == nums[k + 1]) { k--; } } // 和(He)小(Xiao)于(Yu)0 else { j++; // 从(Cong)左(Zuo)向(Xiang)右(You)找(Zhao)第(Di)一(Yi)个(Ge)与(Yu)之(Zhi)前(Qian)处(Chu)理(Li)的(De)数(Shu)不(Bu)同(Tong)的(De)数(Shu)的(De)下(Xia)标(Biao) while (j < k && nums[j] == nums[j - 1]) { j++; } } } // 指(Zhi)向(Xiang)下(Xia)一(Yi)个(Ge)要(Yao)处(Chu)理(Li)的(De)数(Shu) i++; // 从(Cong)左(Zuo)向(Xiang)右(You)找(Zhao)第(Di)一(Yi)个(Ge)与(Yu)之(Zhi)前(Qian)处(Chu)理(Li)的(De)数(Shu)不(Bu)同(Tong)的(De)数(Shu)的(De)下(Xia)标(Biao) while (i < nums.length - 2 && nums[i] == nums[i - 1]) { i++; } } } return result; } }
题(Ti)目(Mu):(?) 给(Gei)定(Ding)一(Yi)个(Ge)不(Bu)包(Bao)含(Han)相(Xiang)同(Tong)元(Yuan)素(Su)的(De)整(Zheng)数(Shu)集(Ji)合(He),(?)nums,(?)返(Fan)回(Hui)所(Suo)有(You)可(Ke)能(Neng)的(De)子(Zi)集(Ji)集(Ji)合(He)。(?)解(Jie)答(Da)中(Zhong)集(Ji)合(He)不(Bu)能(Neng)包(Bao)含(Han)重(Zhong) 复(Fu)的(De)子(Zi)集(Ji)。(?)
比(Bi)如(Ru),(?)
nums = [1, 2, 3], 一(Yi)种(Zhong)解(Jie)答(Da)为(Wei):(?)
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2], []
]
/** * 不(Bu)重(Zhong)复(Fu)集(Ji)合(He)求(Qiu)子(Zi)集(Ji) 解(Jie)答(Da)采(Cai)用(Yong)的(De)是(Shi)深(Shen)度(Du)优(You)先(Xian)遍(Bian)历(Li),(?)先(Xian)取(Qu)原(Yuan)数(Shu)组(Zu)一(Yi)个(Ge)元(Yuan)素(Su),(?)再(Zai)构(Gou)造(Zao)包(Bao)括(Kuo)这(Zhe)个(Ge)元(Yuan)素(Su)的(De)两(Liang)个(Ge),(?)三(San)个(Ge)…(?)…(?)n个(Ge)元(Yuan)素(Su)的(De)集(Ji)合(He)。(?)dfs中(Zhong)的(De)start就(Jiu)指(Zhi)向(Xiang)这(Zhe)个(Ge)元(Yuan)素(Su)的(De),(?)它(Ta)在(Zai)不(Bu)断(Duan)地(Di)后(Hou)移(Yi)((?)i+1)。(?) * @param S: A set of numbers. * @return: A list of lists. All valid subsets. */ public class Solution1 { public static void main(String[] args) { int[] first = new int[]{1, 2, 3}; ArrayList<ArrayList<Integer>> res = subsets(first); for(int i = 0; i < res.size(); i ++){ System.out.println(res.get(i)); } } public static ArrayList<ArrayList<Integer>> subsets(int[] nums) { ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); ArrayList<Integer> item = new ArrayList<Integer>(); if(nums.length == 0 || nums == null) return res; Arrays.sort(nums); //排(Pai)序(Xu) dfs(nums, 0, item, res); //递(Di)归(Gui)调(Diao)用(Yong) res.add(new ArrayList<Integer>()); //最(Zui)后(Hou)加(Jia)上(Shang)一(Yi)个(Ge)空(Kong)集(Ji) return res; } public static void dfs(int[] nums, int start, ArrayList<Integer>item, ArrayList<ArrayList<Integer>>res){ for(int i = start; i < nums.length; i ++){ item.add(nums[i]); //item是(Shi)以(Yi)整(Zheng)数(Shu)为(Wei)元(Yuan)素(Su)的(De)动(Dong)态(Tai)数(Shu)组(Zu),(?)而(?)res是(Shi)以(Yi)数(Shu)组(Zu)为(Wei)元(Yuan)素(Su)的(De)数(Shu)组(Zu),(?)在(Zai)这(Zhe)一(Yi)步(Bu),(?)当(Dang)item增(Zeng)加(Jia)完(Wan)元(Yuan)素(Su)后(Hou),(?)item所(Suo)有(You)元(Yuan)素(Su)构(Gou)成(Cheng)一(Yi)个(Ge)完(Wan)整(Zheng)的(De)子(Zi)串(Chuan),(?)再(Zai)由(You)res纳(Na)入(Ru) res.add(new ArrayList<Integer>(item)); dfs(nums, i + 1, item, res); item.remove(item.size() - 1); } } }
比(Bi)如(Ru),(?) 给(Gei)定(Ding)二(?)叉(Cha)树(Shu){1,#,2,3}, 返(Fan)回(Hui) [1,2,3]
/** Definition for a binary tree node. public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } * } */ public class Solution { List<Integer> result = new ArrayList<Integer>(); /** * 迭(Die)代(Dai)实(Shi)现(Xian),(?)维(Wei)护(Hu)一(Yi)个(Ge)栈(Zhan),(?)因(Yin)为(Wei)入(Ru)栈(Zhan)顺(Shun)序(Xu)按(An)照(Zhao)根(Gen)右(You)左(Zuo)进(Jin)行(Xing)入(Ru)栈(Zhan),(?)因(Yin)此(Ci)首(Shou)先(Xian)将(Jiang)根(Gen)出(Chu)栈(Zhan),(?)然(Ran)后(Hou)出(Chu)栈(Zhan)左(Zuo)子(Zi)节(Jie)点(Dian),(?) * 最(Zui)后(Hou)出(Chu)栈(Zhan)右(You)子(Zi)节(Jie)点(Dian)。(?) * @param root * @return */ public List<Integer> preorderTraversal(TreeNode root) { if(root == null) return result; Stack<TreeNode> stack = new Stack<TreeNode>(); stack.push(root); while(!stack.isEmpty()) { TreeNode node = stack.pop(); result.add(node.val); if(node.right != null) stack.push(node.right); if(node.left != null) stack.push(node.left); } return result; } }
class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } public class BSTChecker { private static int lastVisit = Integer.MIN_VALUE; public static boolean isBST(TreeNode root) { if(root == null) return true; boolean judgeLeft = isBST(root.left); // 先(Xian)判(Pan)断(Duan)左(Zuo)子(Zi)树(Shu) if(root.val >= lastVisit && judgeLeft) { // 当(Dang)前(Qian)节(Jie)点(Dian)比(Bi)上(Shang)次(Ci)访(Fang)问(Wen)的(De)数(Shu)值(Zhi)要(Yao)大(Da) lastVisit = root.val; } else { return false; } boolean judgeRight = isBST(root.right); // 后(Hou)判(Pan)断(Duan)右(You)子(Zi)树(Shu) return judgeRight; } }
参(Can)考(Kao)地(Di)址(Zhi):(?)http://www.cnblogs.com/masterlibin/p/5785092.html
参(Can)考(Kao)地(Di)址(Zhi):(?)没(Mei)有(You)完(Wan)全(Quan)理(Li)解(Jie)的(De)
http://www.mamicode.com/info-detail-1087177.html
http://www.mamicode.com/info-detail-1087177.html
/** * 解(Jie)题(Ti)思(Si)路(Lu):(?) * 比(Bi)如(Ru)给(Gei)定(Ding)一(Yi)组(Zu)数(Shu)组(Zu),(?)[1,(?)2,(?)3,(?)6,(?)9,(?)3,(?)10] * 最(Zui)多(Duo)可(Ke)以(Yi)2次(Ci)去(Qu)获(Huo)取(Qu)最(Zui)大(Da)的(De)利(Li)益(Yi),(?)可(Ke)以(Yi)用(Yong)2分(Fen)的(De)思(Si)想(Xiang),(?)分(Fen)成(Cheng)2部(Bu)分(Fen),(?) * 从(Cong)0元(Yuan)素(Su)开(Kai)始(Shi)遍(Bian)历(Li)分(Fen)别(Bie)求(Qiu)出(Chu)左(Zuo)右(You)2边(Bian)的(De)最(Zui)大(Da)利(Li)益(Yi),(?)求(Qiu)出(Chu)的(De)左(Zuo)右(You)2边(Bian)最(Zui)大(Da)的(De)利(Li)益(Yi)即(Ji)为(Wei)解(Jie) */ class Solution { public static int maxProfit(int[] prices) { // write your code here if(null==prices||0==prices.length) return 0; int sumProfit = 0; for(int i=1;i<prices.length;i++){ int tmpsum = maxProfit(prices, 0, i) + maxProfit(prices, i+1, prices.length-1); sumProfit = Math.max(sumProfit, tmpsum); } return sumProfit; } public static int maxProfit(int[] prices,int s,int e){ if(e<=s) return 0; int min = prices[s]; int maxProfit = 0; for(int i=s+1;i<=e;i++){ maxProfit = Math.max(maxProfit, prices[i]-min); min = Math.min(min, prices[i]); } return maxProfit; } public static void main(String[] args) { int arr [] = {4,4,6,1,1,4,2,5}; System.out.println(maxProfit(arr)); } }
public class Test8 { public static void main(String[] args) { //输(Shu)入(Ru)n个(Ge)整(Zheng)数(Shu)和(He)一(Yi)个(Ge)整(Zheng)数(Shu) Scanner input = new Scanner(System.in); System.out.println("请(Qing)输(Shu)入(Ru)n个(Ge)整(Zheng)数(Shu),(?)数(Shu)量(Liang)任(Ren)意(Yi),以(Yi)逗(Dou)号(Hao)分(Fen)隔(Ge)"); String str = input.next(); System.out.println("请(Qing)输(Shu)入(Ru)一(Yi)个(Ge)整(Zheng)数(Shu):(?)"); int x = input.nextInt(); //将(Jiang)n个(Ge)整(Zheng)数(Shu)的(De)字(Zi)符(Fu)串(Chuan)转(Zhuan)换(Huan)为(Wei)数(Shu)组(Zu) String arr1[] = str.split(","); int [] arr2 = new int[arr1.length]; for(int i=0;i<arr1.length;i++){ arr2[i] = Integer.parseInt(arr1[i]); } System.out.println(Arrays.toString(arr2)); //判(Pan)断(Duan)并(Bing)输(Shu)出(Chu)n个(Ge)整(Zheng)数(Shu)中(Zhong)有(You)几(Ji)对(Dui)的(De)和(He)等(Deng)于(Yu)x int count = 0; for(int i=0;i<arr2.length-1;i++){ for(int j = i+1;j<arr2.length;j++){ if(arr2[i]+arr2[j]==x){ count++; } } } System.out.println(count); } }
快(Kuai)速(Su)排(Pai)序(Xu)由(You)C. A. R. Hoare在(Zai)1962年(Nian)提(Ti)出(Chu)。(?)它(Ta)的(De)基(Ji)本(Ben)思(Si)想(Xiang)是(Shi):(?)通(Tong)过(Guo)一(Yi)趟(Tang)排(Pai)序(Xu)将(Jiang)要(Yao)排(Pai)序(Xu)的(De)数(Shu)据(Ju)分(Fen)割(Ge)成(Cheng)独(Du)立(Li)的(De)两(Liang)部(Bu)分(Fen),(?)其(Qi)中(Zhong)一(Yi)部(Bu)分(Fen)的(De)所(Suo)有(You)数(Shu)据(Ju)都(Du)比(Bi)另(Ling)外(Wai)一(Yi)部(Bu)分(Fen)的(De)所(Suo)有(You)数(Shu)据(Ju)都(Du)要(Yao)小(Xiao),(?)然(Ran)后(Hou)再(Zai)按(An)此(Ci)方(Fang)法(Fa)对(Dui)这(Zhe)两(Liang)部(Bu)分(Fen)数(Shu)据(Ju)分(Fen)别(Bie)进(Jin)行(Xing)快(Kuai)速(Su)排(Pai)序(Xu),(?)整(Zheng)个(Ge)排(Pai)序(Xu)过(Guo)程(Cheng)可(Ke)以(Yi)递(Di)归(Gui)进(Jin)行(Xing),(?)以(Yi)此(Ci)达(Da)到(Dao)整(Zheng)个(Ge)数(Shu)据(Ju)变(Bian)成(Cheng)有(You)序(Xu)序(Xu)列(Lie)。(?)
设(She)要(Yao)排(Pai)序(Xu)的(De)数(Shu)组(Zu)是(Shi)A[0]…(?)…(?)A[N-1],(?)首(Shou)先(Xian)任(Ren)意(Yi)选(Xuan)取(Qu)一(Yi)个(Ge)数(Shu)据(Ju)((?)通(Tong)常(Chang)选(Xuan)用(Yong)数(Shu)组(Zu)的(De)第(Di)一(Yi)个(Ge)数(Shu))(?)作(Zuo)为(Wei)关(Guan)键(Jian)数(Shu)据(Ju),(?)然(Ran)后(Hou)将(Jiang)所(Suo)有(You)比(Bi)它(Ta)小(Xiao)的(De)数(Shu)都(Du)放(Fang)到(Dao)它(Ta)前(Qian)面(Mian),(?)所(Suo)有(You)比(Bi)它(Ta)大(Da)的(De)数(Shu)都(Du)放(Fang)到(Dao)它(Ta)后(Hou)面(Mian),(?)这(Zhe)个(Ge)过(Guo)程(Cheng)称(Cheng)为(Wei)一(Yi)趟(Tang)快(Kuai)速(Su)排(Pai)序(Xu)。(?)值(Zhi)得(De)注(Zhu)意(Yi)的(De)是(Shi),(?)快(Kuai)速(Su)排(Pai)序(Xu)不(Bu)是(Shi)一(Yi)种(Zhong)稳(Wen)定(Ding)的(De)排(Pai)序(Xu)算(Suan)法(Fa),(?)也(Ye)就(Jiu)是(Shi)说(Shuo),(?)多(Duo)个(Ge)相(Xiang)同(Tong)的(De)值(Zhi)的(De)相(Xiang)对(Dui)位(Wei)置(Zhi)也(Ye)许(Xu)会(Hui)在(Zai)算(Suan)法(Fa)结(Jie)束(Shu)时(Shi)产(Chan)生(Sheng)变(Bian)动(Dong)。(?)
一(Yi)趟(Tang)快(Kuai)速(Su)排(Pai)序(Xu)的(De)算(Suan)法(Fa)是(Shi):(?)
1、(?)设(She)置(Zhi)两(Liang)个(Ge)变(Bian)量(Liang)i、(?)j,(?)排(Pai)序(Xu)开(Kai)始(Shi)的(De)时(Shi)候(Hou):(?)i=0,(?)j=N-1;(?)
2、(?)以(Yi)第(Di)一(Yi)个(Ge)数(Shu)组(Zu)元(Yuan)素(Su)作(Zuo)为(Wei)关(Guan)键(Jian)数(Shu)据(Ju),(?)赋(Fu)值(Zhi)给(Gei)key,(?)即(Ji)key=A[0];(?)
3、(?)从(Cong)j开(Kai)始(Shi)向(Xiang)前(Qian)搜(Sou)索(Suo),(?)即(Ji)由(You)后(Hou)开(Kai)始(Shi)向(Xiang)前(Qian)搜(Sou)索(Suo)(j--),(?)找(Zhao)到(Dao)第(Di)一(Yi)个(Ge)小(Xiao)于(Yu)key的(De)值(Zhi)A[j],(?)将(Jiang)A[j]和(He)A[i]互(Hu)换(Huan);(?)
4、(?)从(Cong)i开(Kai)始(Shi)向(Xiang)后(Hou)搜(Sou)索(Suo),(?)即(Ji)由(You)前(Qian)开(Kai)始(Shi)向(Xiang)后(Hou)搜(Sou)索(Suo)(i++),(?)找(Zhao)到(Dao)第(Di)一(Yi)个(Ge)大(Da)于(Yu)key的(De)A[i],(?)将(Jiang)A[i]和(He)A[j]互(Hu)换(Huan);(?)
5、(?)重(Zhong)复(Fu)第(Di)3、(?)4步(Bu),(?)直(Zhi)到(Dao)i=j;(?) (3,4步(Bu)中(Zhong),(?)没(Mei)找(Zhao)到(Dao)符(Fu)合(He)条(Tiao)件(Jian)的(De)值(Zhi),(?)即(Ji)3中(Zhong)A[j]不(Bu)小(Xiao)于(Yu)key,4中(Zhong)A[i]不(Bu)大(Da)于(Yu)key的(De)时(Shi)候(Hou)改(Gai)变(Bian)j、(?)i的(De)值(Zhi),(?)使(Shi)得(De)j=j-1,(?)i=i+1,(?)直(Zhi)至(Zhi)找(Zhao)到(Dao)为(Wei)止(Zhi)。(?)找(Zhao)到(Dao)符(Fu)合(He)条(Tiao)件(Jian)的(De)值(Zhi),(?)进(Jin)行(Xing)交(Jiao)换(Huan)的(De)时(Shi)候(Hou)i,(?) j指(Zhi)针(Zhen)位(Wei)置(Zhi)不(Bu)变(Bian)。(?)另(Ling)外(Wai),(?)i==j这(Zhe)一(Yi)过(Guo)程(Cheng)一(Yi)定(Ding)正(Zheng)好(Hao)是(Shi)i+或(Huo)j-完(Wan)成(Cheng)的(De)时(Shi)候(Hou),(?)此(Ci)时(Shi)令(Ling)循(Xun)环(Huan)结(Jie)束(Shu))(?)。(?)
public class Quick { public static void main(String[] args) { int arr [] = {90,60,70,50,40,80,20,100,10}; sort(arr,0,arr.length-1); System.out.println(Arrays.toString(arr)); } public static void sort(int arr[], int low, int high) { //设(She)置(Zhi)两(Liang)个(Ge)变(Bian)量(Liang)l、(?)h,(?)排(Pai)序(Xu)开(Kai)始(Shi)的(De)时(Shi)候(Hou):(?)l=0,(?)h=N-1 int l = low; int h = high; //以(Yi)第(Di)一(Yi)个(Ge)数(Shu)组(Zu)元(Yuan)素(Su)作(Zuo)为(Wei)关(Guan)键(Jian)数(Shu)据(Ju),(?)赋(Fu)值(Zhi)给(Gei)key,(?)即(Ji)key=A[0] int key = arr[low]; //重(Zhong)复(Fu)操(Cao)作(Zuo),(?)直(Zhi)到(Dao)i=j while (l < h) { //从(Cong)h开(Kai)始(Shi)向(Xiang)前(Qian)搜(Sou)索(Suo),(?)即(Ji)由(You)后(Hou)开(Kai)始(Shi)向(Xiang)前(Qian)搜(Sou)索(Suo)(h--),(?)找(Zhao)到(Dao)第(Di)一(Yi)个(Ge)小(Xiao)于(Yu)key的(De)值(Zhi)arr[h],(?)将(Jiang)arr[h]和(He)arr[l]互(Hu)换(Huan) while (l < h && arr[h] >= key) h--; if (l < h) { int temp = arr[h]; arr[h] = arr[l]; arr[l] = temp; l++; } //从(Cong)l开(Kai)始(Shi)向(Xiang)后(Hou)搜(Sou)索(Suo),(?)即(Ji)由(You)前(Qian)开(Kai)始(Shi)向(Xiang)后(Hou)搜(Sou)索(Suo)(l++),(?)找(Zhao)到(Dao)第(Di)一(Yi)个(Ge)大(Da)于(Yu)key的(De)arr[l],(?)将(Jiang)arr[l]和(He)arr[h]互(Hu)换(Huan);(?) while (l < h && arr[l] <= key) l++; if (l < h) { int temp = arr[h]; arr[h] = arr[l]; arr[l] = temp; h--; } } //对(Dui)前(Qian)一(Yi)部(Bu)分(Fen)进(Jin)行(Xing)快(Kuai)速(Su)排(Pai)序(Xu) if (l > low) sort(arr, low, l - 1); //对(Dui)前(Qian)一(Yi)部(Bu)分(Fen)进(Jin)行(Xing)快(Kuai)速(Su)排(Pai)序(Xu) if (h < high) sort(arr, l + 1, high); } }
输(Shu)入(Ru)会(Hui)依(Yi)照(Zhao)以(Yi)下(Xia)规(Gui)则(Ze):(?)
1、(?)所(Suo)有(You)输(Shu)入(Ru)为(Wei)整(Zheng)数(Shu)、(?)
2、(?)“(?),”(?)为(Wei)分(Fen)隔(Ge)符(Fu)
3、(?)“(?)~”(?)表(Biao)示(Shi)一(Yi)个(Ge)区(Qu)间(Jian),(?)比(Bi)如(Ru)“(?)-1~3”(?)表(Biao)示(Shi)-1到(Dao)3总(Zong)共(Gong)5个(Ge)整(Zheng)数(Shu),(?)同(Tong)时(Shi)“(?)~”(?)前(Qian)的(De)数(Shu)小(Xiao)于(Yu)“(?)~”(?)后(Hou)的(De)数(Shu):(?)
4、(?)“(?)x”(?)表(Biao)示(Shi)步(Bu)长(Chang),(?)“(?)x3”(?)指(Zhi)每(Mei)3个(Ge)整(Zheng)数(Shu)一(Yi)个(Ge),(?)比(Bi)如(Ru)“(?)1~15×(?)3”(?)表(Biao)示(Shi)1,(?)4,7,10,13;(?)
根(Gen)据(Ju)以(Yi)上(Shang)得(De)到(Dao)的(De)结(Jie)果(Guo)进(Jin)行(Xing)打(Da)印(Yin),(?)打(Da)印(Yin)的(De)规(Gui)则(Ze)为(Wei):(?)
1、(?)所(Suo)有(You)得(De)到(Dao)的(De)整(Zheng)数(Shu)按(An)从(Cong)小(Xiao)到(Dao)大(Da)排(Pai)列(Lie),(?)以(Yi)“(?),(?)”(?)分(Fen)隔(Ge),(?)不(Bu)计(Ji)重(Zhong)复(Fu);(?)
2、(?)每(Mei)行(Xing)最(Zui)多(Duo)显(Xian)示(Shi)3个(Ge)整(Zheng)数(Shu);(?)
3、(?)如(Ru)果(Guo)两(Liang)个(Ge)整(Zheng)数(Shu)是(Shi)连(Lian)续(Xu)的(De),(?)可(Ke)以(Yi)放(Fang)在(Zai)同(Tong)一(Yi)行(Xing),(?)否(Fou)则(Ze)自(Zi)动(Dong)换(Huan)行(Xing)。(?)
例(Li)如(Ru)对(Dui)于(Yu)输(Shu)入(Ru)“(?)1,(?)-1~3,1~15×(?)3”(?)的(De)输(Shu)出(Chu)结(Jie)果(Guo)为(Wei):(?)
-1,0,1,(?)
2,3,4,(?)
7,
10,(?)
13
public class Test { public static void main(String[] args) { Map<Integer, Integer> map = new TreeMap<Integer, Integer>(); String str = "5~20x3,1,-1~3,1~15x3"; String[] s = str.split(","); for (int i = 0; i < s.length; i++) { if (s[i].contains("~")) { String ss[] = s[i].split("~"); int first = Integer.parseInt(ss[0]); if (s[i].contains("x")) { String sss[] = ss[1].split("x"); int end = Integer.parseInt(sss[0]); int l = Integer.parseInt(sss[1]); for (int j = first; j < end;) { map.put(j, j); j += l; } } else { int end = Integer.parseInt(ss[ss.length - 1]); for (int j = first; j <= end; j++) { map.put(j, j); } } } else { int j = Integer.parseInt(s[i]); map.put(j, j); } } List<Integer> list = new ArrayList<Integer>(); Set<Integer> set = map.keySet(); Iterator<Integer> ite = set.iterator(); while (ite.hasNext()) { int key = ite.next(); int value = map.get(key); list.add(value); System.out.println("v :" + value); } System.out.println("================="); for (int i = 0; i < list.size();) { int value = list.get(i); List<Integer> co = new ArrayList<Integer>(); co.add(value + 1); co.add(value + 2); if (list.containsAll(co)) { System.out.println(value + "," + (value + 1) + "," + (value + 2)); i += 3; } else { System.out.println(value); i++; } } } }
答(Da):(?)
字(Zi)符(Fu)串(Chuan)匹(Pi)配(Pei)操(Cao)作(Zuo)定(Ding)义(Yi):(?)
目(Mu)标(Biao)串(Chuan)S="S0S1S2...Sn-1" , 模(Mo)式(Shi)串(Chuan)T=“(?)T0T1T2...Tm-1”(?)
对(Dui)合(He)法(Fa)位(Wei)置(Zhi) 0<= i <= n-m ((?)i称(Cheng)为(Wei)位(Wei)移(Yi))(?)依(Yi)次(Ci)将(Jiang)目(Mu)标(Biao)串(Chuan)的(De)字(Zi)串(Chuan) S[i ... i+m-1] 和(He)模(Mo)式(Shi)串(Chuan)T[0 ... m-1] 进(Jin)行(Xing)比(Bi)较(Jiao),(?)若(Ruo):(?)
1、(?)S[i ... i+m-1] = T[0 ... m-1] ,(?) 则(Ze)从(Cong)位(Wei)置(Zhi)i开(Kai)始(Shi)匹(Pi)配(Pei)成(Cheng)功(Gong),(?)称(Cheng)模(Mo)式(Shi)串(Chuan) T 在(Zai)目(Mu)标(Biao)串(Chuan) S 中(Zhong)出(Chu)现(Xian)。(?)
2、(?)S[i ... i+m-1] != T[0 ... m-1] ,(?)则(Ze)从(Cong)位(Wei)置(Zhi)i开(Kai)始(Shi)匹(Pi)配(Pei)失(Shi)败(Bai)。(?)
字(Zi)符(Fu)串(Chuan)匹(Pi)配(Pei)算(Suan)法(Fa) —(?)—(?) Brute-Force 算(Suan)法(Fa)
字(Zi)符(Fu)串(Chuan)匹(Pi)配(Pei)过(Guo)程(Cheng)中(Zhong),(?)对(Dui)于(Yu)位(Wei)移(Yi)i ((?)i在(Zai)目(Mu)标(Biao)串(Chuan)中(Zhong)的(De)某(Mou)个(Ge)位(Wei)置(Zhi))(?),(?)当(Dang)第(Di)一(Yi)次(Ci) Sk != Tj 时(Shi),(?)i 向(Xiang)后(Hou)移(Yi)动(Dong)1位(Wei) ,(?) 及(Ji) i = i+1,(?)此(Ci)时(Shi)k退(Tui)回(Hui)到(Dao)i+1位(Wei)置(Zhi) ;模(Mo)式(Shi)串(Chuan)要(Yao)退(Tui)回(Hui)到(Dao)第(Di)一(Yi)个(Ge)字(Zi)符(Fu)。(?)该(Gai)算(Suan)法(Fa)时(Shi)间(Jian)复(Fu)杂(Za)度(Du)O((?)M*N)(?),(?)但(Dan)是(Shi)实(Shi)际(Ji)情(Qing)况(Kuang)中(Zhong)时(Shi)间(Jian)复(Fu)杂(Za)度(Du)接(Jie)近(Jin)于(Yu)O((?)M + N)(?),(?)以(Yi)下(Xia)为(Wei)Brute-Force算(Suan)法(Fa)的(De)Java实(Shi)现(Xian)版(Ban)本(Ben):(?)
public static int bruteForce(String target, String pattern, int pos) { if (target == null || pattern == null) { return -1; } int k = pos - 1, j = 0, tLen = target.length(), pLen = pattern.length(); while (k < tLen && j < pLen) { if (target.charAt(k) == pattern.charAt(j)) { j++; k++; } else { k = k - j + 1; j = 0; } } if (j == pLen) { return k - j + 1; } return -1; }
public class Test { public static void main(String[] args) { int num=(int)(Math.random()*101); System.out.println(num); } }
import java.util.Arrays; publicclass Demo1 { publicstaticvoid main(String[] args) { int[] a = { 1, 2, 3, 4, 5, 7, 8, 9, 10 }; int[] b = { 3, 5, 7, 9, 10 }; int[] target = newint[a.length + b.length]; for (inti = 0; i<a.length; i++) target[i] = a[i]; for (intj = 0; j<b.length; j++) target[a.length + j] = b[j]; Arrays.sort(target); for (inti = 0; i<target.length; i++) System.out.println(target[i]); } }
A. | 直(Zhi)接(Jie)插(Cha)入(Ru)排(Pai)序(Xu) |
B. | 直(Zhi)接(Jie)选(Xuan)择(Ze)排(Pai)序(Xu) |
C. | 冒(Mao)泡(Pao)排(Pai)序(Xu) |
D. | 归(Gui)并(Bing)排(Pai)序(Xu) |
分(Fen)析(Xi):(?)答(Da)案(An): D
排(Pai)序(Xu)方(Fang)法(Fa) 最(Zui)坏(Huai)时(Shi)间(Jian)复(Fu)杂(Za)度(Du) 最(Zui)好(Hao)时(Shi)间(Jian)复(Fu)杂(Za)度(Du) 平(Ping)均(Jun)时(Shi)间(Jian)复(Fu)杂(Za)度(Du)
直(Zhi)接(Jie)插(Cha)入(Ru) O(n2) O(n) O(n2)
简(Jian)单(Dan)选(Xuan)择(Ze) O(n2) O(n2) O(n2)
冒(Mao)泡(Pao)排(Pai)序(Xu) O(n2) O(n) O(n2)
快(Kuai)速(Su)排(Pai)序(Xu) O(n2) O(nlog2n) O(nlog2n)
堆(Dui)排(Pai)序(Xu) O(nlog2n) O(nlog2n) O(nlog2n)
归(Gui)并(Bing)排(Pai)序(Xu) O(nlog2n) O(nlog2n) O(nlog2n)
|
publicstaticboolean demo(int[] arr){ for (inti = 0; i<arr.length; i++) { for (intj = i + 1; j<arr.length; j++) { if (arr[i] == arr[j]) { returntrue; } } } returnfalse; }
A. | 45231 |
B. | 42351 |
C. | 12345 |
D. | 54321 |
![]() |
A. | 12 |
B. | 13 |
C. | 14 |
D. | 15 |
分(Fen)析(Xi):(?)选(Xuan)b 子(Zi)叶(Ye)节(Jie)点(Dian)是(Shi)度(Du)为(Wei)零(Ling)的(De)节(Jie)点(Dian),而(?)二(?)叉(Cha)树(Shu)的(De)性(Xing)质(Zhi)可(Ke)知(Zhi),度(Du)是(Shi)0的(De)节(Jie)点(Dian)比(Bi)度(Du)是(Shi)2的(De)节(Jie)点(Dian)数(Shu)多(Duo)1个(Ge),所(Suo)以(Yi)度(Du)是(Shi)2的(De)节(Jie)点(Dian)为(Wei)2个(Ge),所(Suo)以(Yi)共(Gong)有(You)3+8+2=13
|

答(Da):(?)先(Xian)序(Xu)序(Xu)列(Lie):(?)ABDEGHCF;(?)中(Zhong)序(Xu)序(Xu)列(Lie):(?)DBGEHACF;(?)后(Hou)序(Xu)序(Xu)列(Lie):(?)DGHEBFCA。(?)
补(Bu)充(Chong):(?)二(?)叉(Cha)树(Shu)也(Ye)称(Cheng)为(Wei)二(?)分(Fen)树(Shu),(?)它(Ta)是(Shi)树(Shu)形(Xing)结(Jie)构(Gou)的(De)一(Yi)种(Zhong),(?)其(Qi)特(Te)点(Dian)是(Shi)每(Mei)个(Ge)结(Jie)点(Dian)至(Zhi)多(Duo)有(You)二(?)棵(Ke)子(Zi)树(Shu),(?)并(Bing)且(Qie)二(?)叉(Cha)树(Shu)的(De)子(Zi)树(Shu)有(You)左(Zuo)右(You)之(Zhi)分(Fen),(?)其(Qi)次(Ci)序(Xu)不(Bu)能(Neng)任(Ren)意(Yi)颠(Dian)倒(Dao)。(?)二(?)叉(Cha)树(Shu)的(De)遍(Bian)历(Li)序(Xu)列(Lie)按(An)照(Zhao)访(Fang)问(Wen)根(Gen)节(Jie)点(Dian)的(De)顺(Shun)序(Xu)分(Fen)为(Wei)先(Xian)序(Xu)((?)先(Xian)访(Fang)问(Wen)根(Gen)节(Jie)点(Dian),(?)接(Jie)下(Xia)来(Lai)先(Xian)序(Xu)访(Fang)问(Wen)左(Zuo)子(Zi)树(Shu),(?)再(Zai)先(Xian)序(Xu)访(Fang)问(Wen)右(You)子(Zi)树(Shu))(?)、(?)中(Zhong)序(Xu)((?)先(Xian)中(Zhong)序(Xu)访(Fang)问(Wen)左(Zuo)子(Zi)树(Shu),(?)然(Ran)后(Hou)访(Fang)问(Wen)根(Gen)节(Jie)点(Dian),(?)最(Zui)后(Hou)中(Zhong)序(Xu)访(Fang)问(Wen)右(You)子(Zi)树(Shu))(?)和(He)后(Hou)序(Xu)((?)先(Xian)后(Hou)序(Xu)访(Fang)问(Wen)左(Zuo)子(Zi)树(Shu),(?)再(Zai)后(Hou)序(Xu)访(Fang)问(Wen)右(You)子(Zi)树(Shu),(?)最(Zui)后(Hou)访(Fang)问(Wen)根(Gen)节(Jie)点(Dian))(?)。(?)如(Ru)果(Guo)知(Zhi)道(Dao)一(Yi)棵(Ke)二(?)叉(Cha)树(Shu)的(De)先(Xian)序(Xu)和(He)中(Zhong)序(Xu)序(Xu)列(Lie)或(Huo)者(Zhe)中(Zhong)序(Xu)和(He)后(Hou)序(Xu)序(Xu)列(Lie),(?)那(Na)么(Me)也(Ye)可(Ke)以(Yi)还(Huan)原(Yuan)出(Chu)该(Gai)二(?)叉(Cha)树(Shu)。(?)
例(Li)如(Ru),(?)已(Yi)知(Zhi)二(?)叉(Cha)树(Shu)的(De)先(Xian)序(Xu)序(Xu)列(Lie)为(Wei):(?)xefdzmhqsk,(?)中(Zhong)序(Xu)序(Xu)列(Lie)为(Wei):(?)fezdmxqhks,(?)那(Na)么(Me)还(Huan)原(Yuan)出(Chu)该(Gai)二(?)叉(Cha)树(Shu)应(Ying)该(Gai)如(Ru)下(Xia)图(Tu)所(Suo)示(Shi):(?)

答(Da):(?)稳(Wen)定(Ding)的(De)排(Pai)序(Xu)算(Suan)法(Fa)有(You):(?)插(Cha)入(Ru)排(Pai)序(Xu)、(?)选(Xuan)择(Ze)排(Pai)序(Xu)、(?)冒(Mao)泡(Pao)排(Pai)序(Xu)、(?)鸡(Ji)尾(Wei)酒(Jiu)排(Pai)序(Xu)、(?)归(Gui)并(Bing)排(Pai)序(Xu)、(?)二(?)叉(Cha)树(Shu)排(Pai)序(Xu)、(?)基(Ji)数(Shu)排(Pai)序(Xu)等(Deng);(?)不(Bu)稳(Wen)定(Ding)排(Pai)序(Xu)算(Suan)法(Fa)包(Bao)括(Kuo):(?)希(Xi)尔(?)排(Pai)序(Xu)、(?)堆(Dui)排(Pai)序(Xu)、(?)快(Kuai)速(Su)排(Pai)序(Xu)等(Deng)。(?)
下(Xia)面(Mian)是(Shi)关(Guan)于(Yu)排(Pai)序(Xu)算(Suan)法(Fa)的(De)一(Yi)个(Ge)列(Lie)表(Biao):(?)

下(Xia)面(Mian)按(An)照(Zhao)策(Ce)略(Lue)模(Mo)式(Shi)给(Gei)出(Chu)一(Yi)个(Ge)排(Pai)序(Xu)系(Xi)统(Tong),(?)实(Shi)现(Xian)了(Liao)冒(Mao)泡(Pao)、(?)归(Gui)并(Bing)和(He)快(Kuai)速(Su)排(Pai)序(Xu)。(?)
package com.bjsxt; import java.util.Comparator; /** * 排(Pai)序(Xu)器(Qi)接(Jie)口(Kou)(策(Ce)略(Lue)模(Mo)式(Shi): 将(Jiang)算(Suan)法(Fa)封(Feng)装(Zhuang)到(Dao)具(Ju)有(You)共(Gong)同(Tong)接(Jie)口(Kou)的(De)独(Du)立(Li)的(De)类(Lei)中(Zhong)使(Shi)得(De)它(Ta)们(Men)可(Ke)以(Yi)相(Xiang)互(Hu)替(Ti)换(Huan)) * @author SXT李(Li)端(Duan)阳(Yang) * */ public interface Sorter { /** * 排(Pai)序(Xu) * @param list 待(Dai)排(Pai)序(Xu)的(De)数(Shu)组(Zu) */ public <T extends Comparable<T>> void sort(T[] list); /** * 排(Pai)序(Xu) * @param list 待(Dai)排(Pai)序(Xu)的(De)数(Shu)组(Zu) * @param comp 比(Bi)较(Jiao)两(Liang)个(Ge)对(Dui)象(Xiang)的(De)比(Bi)较(Jiao)器(Qi) */ public <T> void sort(T[] list, Comparator<T> comp); }
BubbleSorter.java
package com.bjsxt; import java.util.Comparator; /** * 冒(Mao)泡(Pao)排(Pai)序(Xu) * @author SXT李(Li)端(Duan)阳(Yang) * */ public class BubbleSorter implements Sorter { @Override public <T extends Comparable<T>> void sort(T[] list) { boolean swapped = true; for(int i = 1; i < list.length && swapped;i++) { swapped= false; for(int j = 0; j < list.length - i; j++) { if(list[j].compareTo(list[j+ 1]) > 0 ) { T temp = list[j]; list[j]= list[j + 1]; list[j+ 1] = temp; swapped= true; } } } } public <T> void sort(T[] list,Comparator<T> comp) { boolean swapped = true; for(int i = 1; i < list.length && swapped; i++) { swapped = false; for(int j = 0; j < list.length - i; j++) { if(comp.compare(list[j], list[j + 1]) > 0 ) { T temp = list[j]; list[j]= list[j + 1]; list[j+ 1] = temp; swapped= true; } } } } }
package com.bjsxt; import java.util.Comparator; /** * 归(Gui)并(Bing)排(Pai)序(Xu) * 归(Gui)并(Bing)排(Pai)序(Xu)是(Shi)建(Jian)立(Li)在(Zai)归(Gui)并(Bing)操(Cao)作(Zuo)上(Shang)的(De)一(Yi)种(Zhong)有(You)效(Xiao)的(De)排(Pai)序(Xu)算(Suan)法(Fa)。(?) * 该(Gai)算(Suan)法(Fa)是(Shi)采(Cai)用(Yong)分(Fen)治(Zhi)法(Fa)((?)divide-and-conquer)(?)的(De)一(Yi)个(Ge)非(Fei)常(Chang)典(Dian)型(Xing)的(De)应(Ying)用(Yong),(?) * 先(Xian)将(Jiang)待(Dai)排(Pai)序(Xu)的(De)序(Xu)列(Lie)划(Hua)分(Fen)成(Cheng)一(Yi)个(Ge)一(Yi)个(Ge)的(De)元(Yuan)素(Su),(?)再(Zai)进(Jin)行(Xing)两(Liang)两(Liang)归(Gui)并(Bing),(?) * 在(Zai)归(Gui)并(Bing)的(De)过(Guo)程(Cheng)中(Zhong)保(Bao)持(Chi)归(Gui)并(Bing)之(Zhi)后(Hou)的(De)序(Xu)列(Lie)仍(Reng)然(Ran)有(You)序(Xu)。(?) * @author SXT李(Li)端(Duan)阳(Yang) * */ public class MergeSorter implements Sorter { @Override public <T extends Comparable<T>> void sort(T[] list) { T[] temp = (T[]) new Comparable[list.length]; mSort(list,temp, 0, list.length- 1); } private <T extends Comparable<T>> void mSort(T[] list, T[] temp, int low, int high) { if(low == high) { return ; } else { int mid = low + ((high -low) >> 1); mSort(list,temp, low, mid); mSort(list,temp, mid + 1, high); merge(list,temp, low, mid + 1, high); } } private <T extends Comparable<T>> void merge(T[] list, T[] temp, int left, int right, int last) { int j = 0; int lowIndex = left; int mid = right - 1; int n = last - lowIndex + 1; while (left <= mid && right <= last){ if (list[left].compareTo(list[right]) < 0){ temp[j++] = list[left++]; } else { temp[j++] = list[right++]; } } while (left <= mid) { temp[j++] = list[left++]; } while (right <= last) { temp[j++] = list[right++]; } for (j = 0; j < n; j++) { list[lowIndex + j] = temp[j]; } } @Override public <T> void sort(T[] list, Comparator<T> comp) { T[]temp = (T[])new Comparable[list.length]; mSort(list,temp, 0, list.length- 1, comp); } private <T> void mSort(T[] list, T[] temp, int low, int high, Comparator<T> comp) { if(low == high) { return ; } else { int mid = low + ((high -low) >> 1); mSort(list,temp, low, mid, comp); mSort(list,temp, mid + 1, high, comp); merge(list,temp, low, mid + 1, high, comp); } } private <T> void merge(T[] list, T[]temp, int left, int right, int last, Comparator<T> comp) { int j = 0; int lowIndex = left; int mid = right - 1; int n = last - lowIndex + 1; while (left <= mid && right <= last){ if (comp.compare(list[left], list[right]) <0) { temp[j++] = list[left++]; } else { temp[j++] = list[right++]; } } while (left <= mid) { temp[j++] = list[left++]; } while (right <= last) { temp[j++] = list[right++]; } for (j = 0; j < n; j++) { list[lowIndex + j] = temp[j]; } } }
QuickSorter.java
package com.bjsxt; import java.util.Comparator; /** * 快(Kuai)速(Su)排(Pai)序(Xu) * 快(Kuai)速(Su)排(Pai)序(Xu)是(Shi)使(Shi)用(Yong)分(Fen)治(Zhi)法(Fa)((?)divide-and-conquer)(?)依(Yi)选(Xuan)定(Ding)的(De)枢(Shu)轴(Zhou) * 将(Jiang)待(Dai)排(Pai)序(Xu)序(Xu)列(Lie)划(Hua)分(Fen)成(Cheng)两(Liang)个(Ge)子(Zi)序(Xu)列(Lie),(?)其(Qi)中(Zhong)一(Yi)个(Ge)子(Zi)序(Xu)列(Lie)的(De)元(Yuan)素(Su)都(Du)小(Xiao)于(Yu)枢(Shu)轴(Zhou),(?) * 另(Ling)一(Yi)个(Ge)子(Zi)序(Xu)列(Lie)的(De)元(Yuan)素(Su)都(Du)大(Da)于(Yu)或(Huo)等(Deng)于(Yu)枢(Shu)轴(Zhou),(?)然(Ran)后(Hou)对(Dui)子(Zi)序(Xu)列(Lie)重(Zhong)复(Fu)上(Shang)面(Mian)的(De)方(Fang)法(Fa),(?) * 直(Zhi)到(Dao)子(Zi)序(Xu)列(Lie)中(Zhong)只(Zhi)有(You)一(Yi)个(Ge)元(Yuan)素(Su)为(Wei)止(Zhi) * @author Hao * */ public class QuickSorter implements Sorter { @Override public <T extends Comparable<T>> void sort(T[] list) { quickSort(list, 0, list.length- 1); } @Override public <T> void sort(T[] list, Comparator<T> comp) { quickSort(list, 0, list.length- 1, comp); } private <T extends Comparable<T>> void quickSort(T[] list, int first, int last) { if (last > first) { int pivotIndex = partition(list, first, last); quickSort(list, first, pivotIndex - 1); quickSort(list, pivotIndex, last); } } private <T> void quickSort(T[] list, int first, int last,Comparator<T> comp) { if (last > first) { int pivotIndex = partition(list, first, last, comp); quickSort(list, first, pivotIndex - 1, comp); quickSort(list, pivotIndex, last, comp); } } private <T extends Comparable<T>> int partition(T[] list, int first, int last) { T pivot = list[first]; int low = first + 1; int high = last; while (high > low) { while (low <= high && list[low].compareTo(pivot) <= 0) { low++; } while (low <= high && list[high].compareTo(pivot) >= 0) { high--; } if (high > low) { T temp = list[high]; list[high]= list[low]; list[low]= temp; } } while (high > first&& list[high].compareTo(pivot) >= 0) { high--; } if (pivot.compareTo(list[high])> 0) { list[first]= list[high]; list[high]= pivot; return high; } else { return low; } } private <T> int partition(T[] list, int first, int last, Comparator<T> comp) { T pivot = list[first]; int low = first + 1; int high = last; while (high > low) { while (low <= high&& comp.compare(list[low], pivot) <= 0) { low++; } while (low <= high&& comp.compare(list[high], pivot) >= 0) { high--; } if (high > low) { T temp = list[high]; list[high] = list[low]; list[low]= temp; } } while (high > first&& comp.compare(list[high], pivot) >= 0) { high--; } if (comp.compare(pivot,list[high]) > 0) { list[first]= list[high]; list[high]= pivot; return high; } else { return low; } } }
答(Da):(?)折(Zhe)半(Ban)搜(Sou)索(Suo),(?)也(Ye)称(Cheng)二(?)分(Fen)查(Cha)找(Zhao)算(Suan)法(Fa)、(?)二(?)分(Fen)搜(Sou)索(Suo),(?)是(Shi)一(Yi)种(Zhong)在(Zai)有(You)序(Xu)数(Shu)组(Zu)中(Zhong)查(Cha)找(Zhao)某(Mou)一(Yi)特(Te)定(Ding)元(Yuan)素(Su)的(De)搜(Sou)索(Suo)算(Suan)法(Fa)。(?)搜(Sou)素(Su)过(Guo)程(Cheng)从(Cong)数(Shu)组(Zu)的(De)中(Zhong)间(Jian)元(Yuan)素(Su)开(Kai)始(Shi),(?)如(Ru)果(Guo)中(Zhong)间(Jian)元(Yuan)素(Su)正(Zheng)好(Hao)是(Shi)要(Yao)查(Cha)找(Zhao)的(De)元(Yuan)素(Su),(?)则(Ze)搜(Sou)素(Su)过(Guo)程(Cheng)结(Jie)束(Shu);(?)如(Ru)果(Guo)某(Mou)一(Yi)特(Te)定(Ding)元(Yuan)素(Su)大(Da)于(Yu)或(Huo)者(Zhe)小(Xiao)于(Yu)中(Zhong)间(Jian)元(Yuan)素(Su),(?)则(Ze)在(Zai)数(Shu)组(Zu)大(Da)于(Yu)或(Huo)小(Xiao)于(Yu)中(Zhong)间(Jian)元(Yuan)素(Su)的(De)那(Na)一(Yi)半(Ban)中(Zhong)查(Cha)找(Zhao),(?)而(?)且(Qie)跟(Gen)开(Kai)始(Shi)一(Yi)样(Yang)从(Cong)中(Zhong)间(Jian)元(Yuan)素(Su)开(Kai)始(Shi)比(Bi)较(Jiao)。(?)如(Ru)果(Guo)在(Zai)某(Mou)一(Yi)步(Bu)骤(Zhou)数(Shu)组(Zu)为(Wei)空(Kong),(?)则(Ze)代(Dai)表(Biao)找(Zhao)不(Bu)到(Dao)。(?)这(Zhe)种(Zhong)搜(Sou)索(Suo)算(Suan)法(Fa)每(Mei)一(Yi)次(Ci)比(Bi)较(Jiao)都(Du)使(Shi)搜(Sou)索(Suo)范(Fan)围(Wei)缩(Suo)小(Xiao)一(Yi)半(Ban)。(?)
package com.bjsxt; import java.util.Comparator; public class MyUtil1 { public static <T extends Comparable<T>> int binarySearch(T[] x, T key) { return binarySearch(x, 0, x.length- 1, key); } public static <T> int binarySearch(T[] x, T key, Comparator<T> comp) { int low = 0; int high = x.length - 1; while (low <= high) { int mid = (low + high) >>> 1; int cmp = comp.compare(x[mid], key); if (cmp < 0) { low = mid + 1; } else if (cmp > 0) { high = mid - 1; } else { return mid; } } return -1; } private static <T extends Comparable<T>> int binarySearch(T[] x, int low, int high, T key) { if(low <= high) { int mid = low + ((high -low) >> 1); if(key.compareTo(x[mid]) == 0) { return mid; } else if(key.compareTo(x[mid])< 0) { return binarySearch(x,low, mid - 1, key); } else { return binarySearch(x, mid + 1, high, key); } } return -1; } }
说(Shuo)明(Ming):(?)两(Liang)个(Ge)版(Ban)本(Ben)一(Yi)个(Ge)用(Yong)递(Di)归(Gui)实(Shi)现(Xian),(?)一(Yi)个(Ge)用(Yong)循(Xun)环(Huan)实(Shi)现(Xian)。(?)需(Xu)要(Yao)注(Zhu)意(Yi)的(De)是(Shi)计(Ji)算(Suan)中(Zhong)间(Jian)位(Wei)置(Zhi)时(Shi)不(Bu)应(Ying)该(Gai)使(Shi)用(Yong)(high+ low) / 2的(De)方(Fang)式(Shi),(?)因(Yin)为(Wei)加(Jia)法(Fa)运(Yun)算(Suan)可(Ke)能(Neng)导(Dao)致(Zhi)整(Zheng)数(Shu)越(Yue)界(Jie),(?)这(Zhe)里(Li)应(Ying)该(Gai)使(Shi)用(Yong)一(Yi)下(Xia)三(San)种(Zhong)方(Fang)式(Shi)之(Zhi)一(Yi):(?)low+ (high low) / 2或(Huo)low + (high low) >> 1或(Huo)((?)low + high)(?) >>> 1((?)注(Zhu):(?)>>>是(Shi)逻(Luo)辑(Ji)右(You)移(Yi),(?)不(Bu)带(Dai)符(Fu)号(Hao)位(Wei)的(De)右(You)移(Yi))(?)
package com.bjsxt; import java.io.FileReader; public class WordCounting { public static void main(String[] args) { try(FileReader fr = new FileReader("a.txt")) { int counter = 0; boolean state = false; int currentChar; while((currentChar= fr.read()) != -1) { if(currentChar== ' ' || currentChar == '\n' || currentChar == '\t' || currentChar == '\r') { state = false; } else if(!state) { state = true; counter++; } } System.out.println(counter); } catch(Exception e) { e.printStackTrace(); } } }
补(Bu)充(Chong):(?)这(Zhe)个(Ge)程(Cheng)序(Xu)可(Ke)能(Neng)有(You)很(Hen)多(Duo)种(Zhong)写(Xie)法(Fa),(?)这(Zhe)里(Li)选(Xuan)择(Ze)的(De)是(Shi)Dennis M. Ritchie和(He)Brian W. Kernighan老(Lao)师(Shi)在(Zai)他(Ta)们(Men)不(Bu)朽(Xiu)的(De)著(Zhu)作(Zuo)《(?)The C Programming Language》(?)中(Zhong)给(Gei)出(Chu)的(De)代(Dai)码(Ma),(?)向(Xiang)两(Liang)位(Wei)老(Lao)师(Shi)致(Zhi)敬(Jing)。(?)下(Xia)面(Mian)的(De)代(Dai)码(Ma)也(Ye)是(Shi)如(Ru)此(Ci)。(?)
package com.bjsxt; import java.util.Scanner; public class DayCounting { public static void main(String[] args) { int[][] data = { {31,28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31,29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; Scanner sc = new Scanner(System.in); System.out.print("请(Qing)输(Shu)入(Ru)年(Nian)月(Yue)日(Ri)(1980 11 28): "); int year = sc.nextInt(); int month = sc.nextInt(); int date = sc.nextInt(); int[] daysOfMonth = data[(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)?1 : 0]; int sum = 0; for(int i = 0; i < month -1; i++) { sum += daysOfMonth[i]; } sum += date; System.out.println(sum); sc.close(); } }
package com.bjsxt; public class PalindromicPrimeNumber { public static void main(String[] args) { for(int i = 11; i <= 9999; i++) { if(isPrime(i) && isPalindromic(i)) { System.out.println(i); } } } public static boolean isPrime(int n) { for(int i = 2; i <= Math.sqrt(n); i++) { if(n % i == 0) { return false; } } return true; } public static boolean isPalindromic(int n) { int temp = n; int sum = 0; while(temp > 0) { sum= sum * 10 + temp % 10; temp/= 10; } return sum == n; } }
package com.bjsxt; public class FullPermutation { public static void perm(int[] list) { perm(list,0); } private static void perm(int[] list, int k) { if (k == list.length) { for (int i = 0; i < list.length; i++) { System.out.print(list[i]); } System.out.println(); }else{ for (int i = k; i < list.length; i++) { swap(list, k, i); perm(list, k + 1); swap(list, k, i); } } } private static void swap(int[] list, int pos1, int pos2) { int temp = list[pos1]; list[pos1] = list[pos2]; list[pos2] = temp; } public static void main(String[] args) { int[] x = {1, 2, 3, 4, 5}; perm(x); } }
答(Da):(?)下(Xia)面(Mian)给(Gei)出(Chu)几(Ji)个(Ge)例(Li)子(Zi)((?)最(Zui)大(Da)子(Zi)数(Shu)组(Zu)用(Yong)粗(Cu)体(Ti)表(Biao)示(Shi))(?):(?)
数(Shu)组(Zu):(?){ 1, -2,3,5, -3, 2 },(?)结(Jie)果(Guo)是(Shi):(?)8
2)数(Shu)组(Zu):(?){ 0, -2,3,5,-1,2},(?)结(Jie)果(Guo)是(Shi):(?)9
3)数(Shu)组(Zu):(?){ -9,-2,-3, -5, -3 },(?)结(Jie)果(Guo)是(Shi):(?)-2
可(Ke)以(Yi)使(Shi)用(Yong)动(Dong)态(Tai)规(Gui)划(Hua)的(De)思(Si)想(Xiang)求(Qiu)解(Jie):(?)
package com.bjsxt; public class MaxSum { private static int max(int x, int y) { return x > y? x: y; } public static int maxSum(int[] array) { int n = array.length; int[] start = new int[n]; int[] all = new int[n]; all[n - 1] = start[n - 1] = array[n - 1]; for(int i = n - 2; i >= 0;i--) { start[i] = max(array[i], array[i] + start[i + 1]); all[i] = max(start[i], all[i + 1]); } return all[0]; } public static void main(String[] args) { int[] x1 = { 1, -2, 3, 5,-3, 2 }; int[] x2 = { 0, -2, 3, 5,-1, 2 }; int[] x3 = { -9, -2, -3,-5, -3 }; System.out.println(maxSum(x1)); // 8 System.out.println(maxSum(x2)); // 9 System.out.println(maxSum(x3)); //-2 } }
package com.bjsxt; public class StringReverse { public static String reverse(String originStr) { if(originStr == null || originStr.length()== 1) { return originStr; } return reverse(originStr.substring(1))+ originStr.charAt(0); } public static void main(String[] args) { System.out.println(reverse("hello")); } }
package com.bjsxt; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class DecomposeInteger { private static List<Integer> list = new ArrayList<Integer>(); public static void main(String[] args) { System.out.print("请(Qing)输(Shu)入(Ru)一(Yi)个(Ge)数(Shu): "); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); decomposeNumber(n); System.out.print(n + " = "); for(int i = 0; i < list.size() - 1; i++) { System.out.print(list.get(i) + " * "); } System.out.println(list.get(list.size() - 1)); } public static void decomposeNumber(int n) { if(isPrime(n)) { list.add(n); list.add(1); } else { doIt(n, (int)Math.sqrt(n)); } } public static void doIt(int n, int div) { if(isPrime(div) && n % div == 0) { list.add(div); decomposeNumber(n / div); } else { doIt(n, div - 1); } } public static boolean isPrime(int n) { for(int i = 2; i <= Math.sqrt(n);i++) { if(n % i == 0) { return false; } } return true; } }
package com.bjsxt; public class GoSteps { public static int countWays(int n) { if(n < 0) { return 0; } else if(n == 0) { return 1; } else { return countWays(n - 1) + countWays(n - 2) + countWays(n -3); } } public static void main(String[] args) { System.out.println(countWays(5)); // 13 } }
package com.bjsxt; public class AllNotTheSame { public static boolean judge(String str) { String temp = str.toLowerCase(); int[] letterCounter = new int[26]; for(int i = 0; i <temp.length(); i++) { int index = temp.charAt(i)- 'a'; letterCounter[index]++; if(letterCounter[index] > 1) { return false; } } return true; } public static void main(String[] args) { System.out.println(judge("hello")); System.out.print(judge("smile")); } }
package com.bjsxt; import java.util.Arrays; public class RemoveDuplication { public static int[] removeDuplicates(int a[]) { if(a.length <= 1) { return a; } int index = 0; for(int i = 1; i < a.length; i++) { if(a[index] != a[i]) { a[++index] = a[i]; } } int[] b = new int[index + 1]; System.arraycopy(a, 0, b, 0, b.length); return b; } public static void main(String[] args) { int[] a = {1, 1, 2, 2, 3}; a = removeDuplicates(a); System.out.println(Arrays.toString(a)); } }
package com.bjsxt; public class FindMost { public static <T> T find(T[] x){ T temp = null; for(int i = 0, nTimes = 0; i< x.length;i++) { if(nTimes == 0) { temp= x[i]; nTimes= 1; } else { if(x[i].equals(temp)) { nTimes++; } else { nTimes--; } } } return temp; } public static void main(String[] args) { String[]strs = {"hello","kiss","hello","hello","maybe"}; System.out.println(find(strs)); } }
public int getWordCount(String s) { int length = 0; for(int i = 0; i < s.length(); i++) { int ascii = Character.codePointAt(s, i); if(ascii >= 0 && ascii <=255) length++; else length += 2; } return length; }
一(Yi):(?)招(Zhao)聘(Pin)程(Cheng)序(Xu)员(Yuan)的(De)内(Nei)幕(Mu)
1.(?)面(Mian)试(Shi)和(He)相(Xiang)亲(Qin)
面(Mian)试(Shi)其(Qi)实(Shi)本(Ben)质(Zhi)上(Shang)是(Shi)一(Yi)个(Ge)交(Jiao)流(Liu)的(De)过(Guo)程(Cheng),(?)它(Ta)跟(Gen)你(Ni)去(Qu)相(Xiang)亲(Qin)本(Ben)质(Zhi)完(Wan)全(Quan)一(Yi)样(Yang)。(?)那(Na)么(Me),(?)把(Ba)握(Wo)面(Mian)试(Shi)官(Guan)的(De)心(Xin)理(Li)状(Zhuang)态(Tai),(?)从(Cong)面(Mian)试(Shi)官(Guan)的(De)角(Jiao)度(Du)出(Chu)发(Fa)思(Si)考(Kao)问(Wen)题(Ti),(?)将(Jiang)是(Shi)你(Ni)可(Ke)以(Yi)顺(Shun)利(Li)收(Shou)到(Dao)offer的(De)关(Guan)键(Jian)。(?)
如(Ru)果(Guo)你(Ni)知(Zhi)道(Dao)面(Mian)试(Shi)官(Guan)的(De)动(Dong)机(Ji),(?)就(Jiu)可(Ke)以(Yi)建(Jian)立(Li)共(Gong)通(Tong)点(Dian),(?)很(Hen)容(Rong)易(Yi)就(Jiu)能(Neng)恰(Qia)当(Dang)地(Di)回(Hui)应(Ying)问(Wen)题(Ti)。(?)从(Cong)而(?)为(Wei)你(Ni)的(De)面(Mian)试(Shi)加(Jia)分(Fen)、(?)添(Tian)彩(Cai)。(?)

相(Xiang)亲(Qin)时(Shi),(?)你(Ni)期(Qi)望(Wang)碰(Peng)到(Dao)美(Mei)女(Nu)的(De)渴(Ke)望(Wang)和(He)美(Mei)女(Nu)期(Qi)望(Wang)碰(Peng)到(Dao)白(Bai)马(Ma)王(Wang)子(Zi)的(De)渴(Ke)望(Wang),(?)二(?)者(Zhe)的(De)“(?)渴(Ke)望(Wang)程(Cheng)度(Du)”(?)完(Wan)全(Quan)是(Shi)一(Yi)样(Yang)的(De)。(?) 那(Na)么(Me),(?)你(Ni)如(Ru)果(Guo)是(Shi)男(Nan)方(Fang),(?)你(Ni)需(Xu)要(Yao)做(Zuo)的(De)事(Shi)情(Qing)就(Jiu)是(Shi)“(?)包(Bao)装(Zhuang)”(?)自(Zi)己(Ji),(?)让(Rang)自(Zi)己(Ji)显(Xian)得(De)比(Bi)实(Shi)际(Ji)上(Shang)“(?)更(Geng)高(Gao),(?)更(Geng)富(Fu),(?)更(Geng)帅(Shuai)”(?),(?)接(Jie)近(Jin)女(Nu)方(Fang)的(De)心(Xin)中(Zhong)白(Bai)马(Ma)王(Wang)子(Zi)的(De)高(Gao)度(Du),(?)越(Yue)接(Jie)近(Jin)越(Yue)容(Rong)易(Yi)成(Cheng)功(Gong)。(?)这(Zhe)个(Ge)过(Guo)程(Cheng)也(Ye)存(Cun)在(Zai)“(?)心(Xin)理(Li)博(Bo)弈(Yi)”(?)的(De)过(Guo)程(Cheng),(?)双(Shuang)方(Fang)聊(Liao)过(Guo)去(Qu)、(?)聊(Liao)现(Xian)在(Zai)、(?)聊(Liao)未(Wei)来(Lai)。(?) 有(You)辉(Hui)煌(Huang)过(Guo)去(Qu)的(De)喜(Xi)欢(Huan)聊(Liao)过(Guo)去(Qu)来(Lai)证(Zheng)明(Ming)自(Zi)己(Ji)的(De)未(Wei)来(Lai);(?)现(Xian)在(Zai)就(Jiu)辉(Hui)煌(Huang)的(De)就(Jiu)喜(Xi)欢(Huan)聊(Liao)当(Dang)下(Xia);(?)过(Guo)去(Qu)不(Bu)行(Xing),(?)现(Xian)在(Zai)不(Bu)行(Xing)的(De)就(Jiu)喜(Xi)欢(Huan)聊(Liao)未(Wei)来(Lai),(?)展(Zhan)现(Xian)自(Zi)己(Ji)的(De)雄(Xiong)心(Xin)。(?)
同(Tong)上(Shang)面(Mian)相(Xiang)亲(Qin)的(De)案(An)例(Li),(?)面(Mian)试(Shi)中(Zhong),(?)面(Mian)试(Shi)官(Guan)需(Xu)要(Yao)人(Ren)才(Cai)的(De)热(Re)烈(Lie)程(Cheng)度(Du)等(Deng)于(Yu)你(Ni)求(Qiu)职(Zhi)的(De)热(Re)烈(Lie)程(Cheng)度(Du)。(?) 我(Wo)们(Men)首(Shou)先(Xian)要(Yao)明(Ming)白(Bai)面(Mian)试(Shi)官(Guan)需(Xu)要(Yao)什(Shi)么(Me)样(Yang)的(De)人(Ren)才(Cai),(?)然(Ran)后(Hou)展(Zhan)示(Shi)自(Zi)己(Ji),(?)告(Gao)诉(Su)他(Ta),(?)我(Wo)就(Jiu)是(Shi)这(Zhe)样(Yang)的(De)人(Ren)才(Cai)!(?)
明(Ming)白(Bai)上(Shang)面(Mian)的(De)道(Dao)理(Li),(?)我(Wo)们(Men)就(Jiu)需(Xu)要(Yao)针(Zhen)对(Dui)整(Zheng)个(Ge)招(Zhao)聘(Pin)的(De)过(Guo)程(Cheng)进(Jin)行(Xing)详(Xiang)细(Xi)的(De)分(Fen)析(Xi),(?)让(Rang)大(Da)家(Jia)心(Xin)里(Li)更(Geng)有(You)底(Di),(?)更(Geng)容(Rong)易(Yi)把(Ba)握(Wo)面(Mian)试(Shi)官(Guan)的(De)心(Xin)理(Li)状(Zhuang)态(Tai)。(?)
2.(?)为(Wei)什(Shi)么(Me)要(Yao)招(Zhao)聘(Pin)程(Cheng)序(Xu)员(Yuan)?(?)为(Wei)什(Shi)么(Me)绝(Jue)大(Da)部(Bu)分(Fen)总(Zong)能(Neng)找(Zhao)到(Dao)工(Gong)作(Zuo)?(?)
一(Yi)般(Ban)公(Gong)司(Si)招(Zhao)聘(Pin)员(Yuan)工(Gong)有(You)三(San)大(Da)类(Lei)原(Yuan)因(Yin):(?)
1.公(Gong)司(Si)计(Ji)划(Hua)性(Xing)扩(Kuo)张(Zhang)
2.特(Te)定(Ding)项(Xiang)目(Mu)
3.有(You)员(Yuan)工(Gong)离(Li)职(Zhi)
因(Yin)此(Ci),(?)招(Zhao)聘(Pin)者(Zhe)也(Ye)是(Shi)“(?)求(Qiu)贤(Xian)若(Ruo)渴(Ke)”(?),(?)他(Ta)也(Ye)面(Mian)临(Lin)公(Gong)司(Si)给(Gei)他(Ta)的(De)绩(Ji)效(Xiao)压(Ya)力(Li)。(?) 如(Ru)何(He)能(Neng)尽(Jin)快(Kuai)、(?)低(Di)成(Cheng)本(Ben)的(De)招(Zhao)聘(Pin)到(Dao)合(He)适(Shi)的(De)人(Ren)到(Dao)岗(Gang),(?)而(?)不(Bu)耽(Dan)误(Wu)业(Ye)务(Wu)的(De)进(Jin)展(Zhan),(?)这(Zhe)是(Shi)招(Zhao)聘(Pin)者(Zhe)最(Zui)大(Da)的(De)工(Gong)作(Zuo)。(?)
通(Tong)常(Chang)如(Ru)果(Guo)受(Shou)到(Dao)高(Gao)层(Ceng)压(Ya)力(Li),(?)感(Gan)觉(Jue)招(Zhao)聘(Pin)进(Jin)度(Du)已(Yi)经(Jing)限(Xian)制(Zhi)了(Liao)公(Gong)司(Si)业(Ye)务(Wu)的(De)发(Fa)展(Zhan)、(?)已(Yi)经(Jing)阻(Zu)碍(Ai)了(Liao)业(Ye)务(Wu)推(Tui)广(Guang)的(De)时(Shi)间(Jian),(?)招(Zhao)聘(Pin)者(Zhe)就(Jiu)会(Hui)变(Bian)“(?)急(Ji)”(?)。(?) 就(Jiu)跟(Gen)开(Kai)发(Fa)人(Ren)员(Yuan)迫(Po)于(Yu)项(Xiang)目(Mu)时(Shi)间(Jian)的(De)压(Ya)力(Li),(?)凑(?)合(He)完(Wan)成(Cheng)一(Yi)段(Duan)不(Bu)合(He)格(Ge)的(De)代(Dai)码(Ma)一(Yi)样(Yang)。(?)招(Zhao)聘(Pin)者(Zhe)也(Ye)会(Hui)由(You)于(Yu)这(Zhe)些(Xie)压(Ya)力(Li),(?)有(You)可(Ke)能(Neng)降(Jiang)低(Di)招(Zhao)聘(Pin)的(De)岗(Gang)位(Wei)标(Biao)准(Zhun)(这(Zhe)种(Zhong)降(Jiang)低(Di)不(Bu)是(Shi)明(Ming)面(Mian)上(Shang)通(Tong)知(Zhi)降(Jiang)低(Di)标(Biao)准(Zhun),(?)而(?)是(Shi)各(Ge)个(Ge)环(Huan)节(Jie)把(Ba)控(Kong)较(Jiao)松(Song))。(?) 这(Zhe)也(Ye)就(Jiu)是(Shi)为(Wei)什(Shi)么(Me)很(Hen)多(Duo)人(Ren)技(Ji)术(Shu)并(Bing)不(Bu)太(Tai)好(Hao),(?)也(Ye)能(Neng)找(Zhao)到(Dao)工(Gong)作(Zuo)的(De)原(Yuan)因(Yin)。(?) 公(Gong)司(Si)最(Zui)大(Da)的(De)成(Cheng)本(Ben)有(You)时(Shi)候(Hou)不(Bu)是(Shi)金(Jin)钱(Qian)、(?)而(?)是(Shi)时(Shi)间(Jian)。(?) 这(Zhe)也(Ye)就(Jiu)像(Xiang)很(Hen)多(Duo)优(You)秀(Xiu)的(De)男(Nan)生(Sheng)女(Nu)生(Sheng)30岁(Sui)之(Zhi)后(Hou),(?)迫(Po)于(Yu)时(Shi)间(Jian)压(Ya)力(Li),(?)降(Jiang)低(Di)标(Biao)准(Zhun)找(Zhao)对(Dui)象(Xiang)的(De)道(Dao)理(Li)一(Yi)样(Yang)。(?)
虽(Sui)然(Ran)学(Xue)习(Xi)编(Bian)程(Cheng)的(De)人(Ren)员(Yuan)很(Hen)多(Duo),(?)但(Dan)是(Shi)各(Ge)行(Xing)各(Ge)业(Ye)都(Du)需(Xu)要(Yao)信(Xin)息(Xi)化(Hua),(?)人(Ren)员(Yuan)需(Xu)求(Qiu)也(Ye)非(Fei)常(Chang)巨(Ju)大(Da),(?)缺(Que)口(Kou)仍(Reng)然(Ran)很(Hen)大(Da)。(?) 如(Ru)果(Guo)某(Mou)个(Ge)公(Gong)司(Si)招(Zhao)聘(Pin)并(Bing)不(Bu)顺(Shun)利(Li),(?)连(Lian)续(Xu)面(Mian)试(Shi)很(Hen)多(Duo)人(Ren)都(Du)不(Bu)合(He)格(Ge),(?)那(Na)么(Me)可(Ke)能(Neng)就(Jiu)在(Zai)面(Mian)试(Shi)你(Ni)的(De)时(Shi)候(Hou)降(Jiang)低(Di)“(?)标(Biao)准(Zhun)”(?)。(?) 这(Zhe)也(Ye)是(Shi)为(Wei)什(Shi)么(Me)很(Hen)多(Duo)技(Ji)术(Shu)很(Hen)水(Shui)的(De)人(Ren)也(Ye)能(Neng)找(Zhao)到(Dao)工(Gong)作(Zuo)的(De)原(Yuan)因(Yin)。(?) 对(Dui)于(Yu)招(Zhao)聘(Pin)者(Zhe)来(Lai)说(Shuo),(?)如(Ru)果(Guo)你(Ni)心(Xin)态(Tai)好(Hao),(?)很(Hen)踏(Ta)实(Shi),(?)即(Ji)使(Shi)现(Xian)在(Zai)技(Ji)术(Shu)不(Bu)行(Xing),(?)花(Hua)一(Yi)点(Dian)时(Shi)间(Jian)培(Pei)养(Yang)你(Ni),(?)也(Ye)没(Mei)什(Shi)么(Me)大(Da)不(Bu)了(Liao)。(?)
当(Dang)然(Ran),(?)这(Zhe)不(Bu)能(Neng)成(Cheng)为(Wei)你(Ni)不(Bu)好(Hao)好(Hao)学(Xue)习(Xi)技(Ji)术(Shu)的(De)理(Li)由(You)。(?)”(?)技(Ji)术(Shu)强(Qiang)、(?)心(Xin)态(Tai)好(Hao)、(?)踏(Ta)实(Shi)”(?)将(Jiang)会(Hui)让(Rang)你(Ni)面(Mian)临(Lin)更(Geng)多(Duo)的(De)人(Ren)生(Sheng)机(Ji)会(Hui)。(?)
3.(?)为(Wei)什(Shi)么(Me)有(You)人(Ren)会(Hui)找(Zhao)不(Bu)到(Dao)工(Gong)作(Zuo)?(?)
任(Ren)何(He)一(Yi)个(Ge)行(Xing)业(Ye)都(Du)有(You)失(Shi)败(Bai)者(Zhe),(?)这(Zhe)就(Jiu)是(Shi)规(Gui)律(Lu)。(?) 就(Jiu)像(Xiang)婚(Hun)姻(Yin)、(?)恋(Lian)爱(Ai)市(Shi)场(Chang),(?)总(Zong)会(Hui)有(You)打(Da)光(Guang)棍(Gun)的(De)问(Wen)题(Ti)(100%是(Shi)男(Nan)同(Tong)胞(Bao),(?)男(Nan)女(Nu)比(Bi)例(Li)严(Yan)重(Zhong)失(Shi)调(Diao)啊(A))。(?) 为(Wei)什(Shi)么(Me)会(Hui)有(You)人(Ren)找(Zhao)不(Bu)到(Dao)工(Gong)作(Zuo)?(?)为(Wei)什(Shi)么(Me)会(Hui)有(You)人(Ren)找(Zhao)不(Bu)到(Dao)老(Lao)婆(Po)?(?)这(Zhe)是(Shi)个(Ge)大(Da)课(Ke)题(Ti)。(?)想(Xiang)明(Ming)白(Bai)了(Liao),(?)你(Ni)将(Jiang)会(Hui)走(Zou)向(Xiang)人(Ren)生(Sheng)巅(Dian)峰(Feng)。(?)
我(Wo)们(Men)先(Xian)以(Yi)婚(Hun)姻(Yin)、(?)恋(Lian)爱(Ai)市(Shi)场(Chang)为(Wei)例(Li)。(?)研(Yan)究(Jiu)研(Yan)究(Jiu)为(Wei)什(Shi)么(Me)会(Hui)有(You)人(Ren)找(Zhao)不(Bu)到(Dao)老(Lao)婆(Po)?(?) 有(You)人(Ren)说(Shuo),(?)打(Da)光(Guang)棍(Gun)是(Shi)因(Yin)为(Wei)这(Zhe)个(Ge)人(Ren)没(Mei)钱(Qian)。(?) 但(Dan)你(Ni)总(Zong)会(Hui)发(Fa)现(Xian)比(Bi)他(Ta)还(Huan)没(Mei)钱(Qian)的(De)人(Ren)娶(Qu)了(Liao)老(Lao)婆(Po),(?)有(You)的(De)还(Huan)很(Hen)漂(Piao)亮(Liang)。(?)老(Lao)婆(Po)还(Huan)很(Hen)贤(Xian)惠(Hui),(?)出(Chu)去(Qu)打(Da)工(Gong)养(Yang)老(Lao)公(Gong)。(?) 有(You)人(Ren)说(Shuo),(?)打(Da)光(Guang)棍(Gun)是(Shi)因(Yin)为(Wei)这(Zhe)个(Ge)人(Ren)没(Mei)能(Neng)力(Li)。(?) 但(Dan)你(Ni)总(Zong)会(Hui)发(Fa)现(Xian)很(Hen)多(Duo)没(Mei)能(Neng)力(Li)的(De)人(Ren)也(Ye)娶(Qu)了(Liao)老(Lao)婆(Po),(?)有(You)的(De)也(Ye)很(Hen)漂(Piao)亮(Liang)。(?) 这(Zhe)时(Shi)候(Hou),(?)你(Ni)只(Zhi)能(Neng)仰(Yang)天(Tian)长(Chang)叹(Tan),(?)“(?)好(Hao)白(Bai)菜(Cai)都(Du)让(Rang)猪(Zhu)拱(Gong)了(Liao)”(?)。(?)有(You)人(Ren)说(Shuo),(?)打(Da)光(Guang)棍(Gun)是(Shi)因(Yin)为(Wei)这(Zhe)个(Ge)人(Ren)长(Chang)得(De)丑(Chou),(?)个(Ge)子(Zi)矮(Ai)、(?)家(Jia)里(Li)穷(Qiong)等(Deng)等(Deng)。(?)但(Dan)你(Ni)总(Zong)会(Hui)找(Zhao)到(Dao)层(Ceng)出(Chu)不(Bu)穷(Qiong)的(De)反(Fan)例(Li)。(?)这(Zhe)时(Shi)候(Hou),(?)你(Ni)可(Ke)能(Neng)就(Jiu)会(Hui)迷(Mi)茫(Mang)了(Liao)。(?) 到(Dao)底(Di)什(Shi)么(Me)才(Cai)是(Shi)关(Guan)键(Jian)、(?)才(Cai)是(Shi)问(Wen)题(Ti)的(De)核(He)心(Xin)?(?)
好(Hao)吧(Ba),(?)我(Wo)告(Gao)诉(Su)你(Ni),(?) 是(Shi)心(Xin)态(Tai)!(?)心(Xin)态(Tai)!(?)心(Xin)态(Tai)!(?)重(Zhong)要(Yao)的(De)问(Wen)题(Ti)说(Shuo)三(San)遍(Bian)!(?) 心(Xin)态(Tai)积(Ji)极(Ji),(?)勤(Qin)奋(Fen)努(Nu)力(Li)什(Shi)么(Me)事(Shi)情(Qing)都(Du)能(Neng)干(Gan)成(Cheng)。(?) 心(Xin)态(Tai)消(Xiao)极(Ji),(?)懒(Lan)惰(Duo)不(Bu)努(Nu)力(Li),(?)什(Shi)么(Me)条(Tiao)件(Jian)都(Du)没(Mei)戏(Xi)!(?) 很(Hen)多(Duo)“(?)懒(Lan)丝(Si)”(?)宁(Ning)愿(Yuan)天(Tian)天(Tian)宅(Zhai)在(Zai)家(Jia)里(Li)睡(Shui)懒(Lan)觉(Jue)、(?)玩(Wan)游(You)戏(Xi),(?)也(Ye)不(Bu)愿(Yuan)意(Yi)走(Zou)出(Chu)去(Qu)。(?)宁(Ning)愿(Yuan)窝(Wo)在(Zai)家(Jia)里(Li)练(Lian)习(Xi)右(You)手(Shou)臂(Bi)力(Li),(?)也(Ye)不(Bu)愿(Yuan)意(Yi)出(Chu)去(Qu)多(Duo)跟(Gen)异(Yi)性(Xing)接(Jie)触(Chu)。(?) 这(Zhe)些(Xie)人(Ren),(?)不(Bu)管(Guan)什(Shi)么(Me)条(Tiao)件(Jian)都(Du)将(Jiang)被(Bei)淘(Tao)汰(Tai)。(?)
大(Da)家(Jia)如(Ru)果(Guo)看(Kan)过(Guo)电(Dian)影(Ying)《(?)夏(Xia)洛(Luo)特(Te)烦(Fan)恼(Nao)》(?),(?)里(Li)面(Mian)的(De)“(?)大(Da)傻(Sha)”(?),(?)智(Zhi)商(Shang)低(Di),(?)但(Dan)是(Shi)人(Ren)实(Shi)在(Zai)。(?)就(Jiu)是(Shi)靠(Kao)死(Si)缠(Chan)烂(Lan)打(Da)硬(Ying)泡(Pao)的(De)方(Fang)式(Shi),(?)竟(Jing)然(Ran)也(Ye)追(Zhui)上(Shang)了(Liao)自(Zi)己(Ji)的(De)女(Nu)神(Shen)。(?) 追(Zhui)女(Nu)神(Shen)也(Ye)是(Shi)概(Gai)率(Lu)问(Wen)题(Ti),(?)努(Nu)力(Li)去(Qu)追(Zhui),(?)提(Ti)高(Gao)成(Cheng)功(Gong)率(Lu),(?)女(Nu)神(Shen)总(Zong)有(You)空(Kong)虚(Xu)、(?)心(Xin)理(Li)没(Mei)底(Di)的(De)时(Shi)候(Hou),(?)这(Zhe)时(Shi)候(Hou)可(Ke)能(Neng)就(Jiu)会(Hui)有(You)机(Ji)会(Hui)了(Liao)。(?) 某(Mou)天(Tian),(?)女(Nu)神(Shen)忽(Hu)然(Ran)微(Wei)信(Xin)呼(Hu)你(Ni):(?)“(?)忙(Mang)吗(Ma)?(?)”(?),(?)这(Zhe)时(Shi)候(Hou)机(Ji)会(Hui)就(Jiu)来(Lai)了(Liao)。(?) 但(Dan)是(Shi),(?)如(Ru)果(Guo)你(Ni)不(Bu)努(Nu)力(Li),(?)你(Ni)连(Lian)女(Nu)神(Shen)的(De)候(Hou)选(Xuan)名(Ming)单(Dan)都(Du)上(Shang)不(Bu)去(Qu),(?)怎(Zen)么(Me)可(Ke)能(Neng)有(You)机(Ji)会(Hui)?(?)
在(Zai)招(Zhao)聘(Pin)市(Shi)场(Chang),(?)应(Ying)聘(Pin)者(Zhe)面(Mian)临(Lin)的(De)是(Shi)同(Tong)样(Yang)的(De)问(Wen)题(Ti)。(?) 即(Ji)使(Shi)你(Ni)技(Ji)术(Shu)水(Shui)平(Ping)差(Cha),(?)只(Zhi)要(Yao)多(Duo)面(Mian)试(Shi)、(?)多(Duo)总(Zong)结(Jie)、(?)多(Duo)努(Nu)力(Li),(?)没(Mei)有(You)不(Bu)成(Cheng)功(Gong)的(De)。(?) 你(Ni)想(Xiang)想(Xiang),(?)面(Mian)试(Shi)是(Shi)个(Ge)概(Gai)率(Lu)事(Shi)件(Jian),(?)技(Ji)术(Shu)差(Cha)你(Ni)的(De)成(Cheng)功(Gong)率(Lu)即(Ji)使(Shi)只(Zhi)有(You)1%,(?)面(Mian)试(Shi)100家(Jia)也(Ye)上(Shang)去(Qu)了(Liao)。(?) 技(Ji)术(Shu)好(Hao)你(Ni)的(De)成(Cheng)功(Gong)率(Lu)是(Shi)10%,(?)不(Bu)去(Qu)面(Mian)试(Shi),(?)面(Mian)试(Shi)的(De)少(Shao),(?)你(Ni)可(Ke)能(Neng)也(Ye)没(Mei)戏(Xi)。(?) 因(Yin)此(Ci),(?)我(Wo)们(Men)要(Yao)千(Qian)方(Fang)百(Bai)计(Ji)提(Ti)高(Gao)自(Zi)己(Ji)“(?)面(Mian)试(Shi)的(De)机(Ji)会(Hui)”(?),(?)至(Zhi)少(Shao)可(Ke)以(Yi)让(Rang)自(Zi)己(Ji)进(Jin)入(Ru)企(Qi)业(Ye)“(?)眼(Yan)里(Li)”(?),(?)一(Yi)旦(Dan)有(You)机(Ji)会(Hui),(?)即(Ji)可(Ke)成(Cheng)功(Gong)。(?)
我(Wo)们(Men)曾(Zeng)经(Jing)碰(Peng)到(Dao)一(Yi)个(Ge)学(Xue)员(Yuan),(?)大(Da)学(Xue)学(Xue)的(De)是(Shi)文(Wen)科(Ke),(?)学(Xue)历(Li)是(Shi)专(Zhuan)科(Ke),(?) 毕(Bi)业(Ye)后(Hou)做(Zuo)了(Liao)一(Yi)名(Ming)“(?)光(Guang)荣(Rong)的(De)水(Shui)手(Shou)”(?),(?)环(Huan)球(Qiu)航(Hang)行(Xing)了(Liao)两(Liang)年(Nian),(?)决(Jue)定(Ding)回(Hui)归(Gui)陆(Lu)地(Di)。(?) 开(Kai)始(Shi)学(Xue)习(Xi)编(Bian)程(Cheng),(?)学(Xue)了(Liao)1个(Ge)多(Duo)月(Yue)后(Hou),(?)仍(Reng)然(Ran)在(Zai)纠(Jiu)结(Jie)什(Shi)么(Me)是(Shi)变(Bian)量(Liang)的(De)问(Wen)题(Ti)。(?) 但(Dan)是(Shi),(?)这(Zhe)个(Ge)同(Tong)学(Xue)心(Xin)态(Tai)好(Hao),(?)积(Ji)极(Ji)向(Xiang)上(Shang),(?)毕(Bi)业(Ye)后(Hou),(?)积(Ji)极(Ji)主(Zhu)动(Dong)的(De)去(Qu)面(Mian)试(Shi),(?)结(Jie)果(Guo)很(Hen)快(Kuai)搞(Gao)定(Ding)了(Liao)工(Gong)作(Zuo),(?)刚(Gang)开(Kai)始(Shi)工(Gong)资(Zi)并(Bing)不(Bu)高(Gao)。(?) 工(Gong)作(Zuo)两(Liang)年(Nian)后(Hou),(?)成(Cheng)了(Liao)项(Xiang)目(Mu)经(Jing)理(Li),(?)年(Nian)薪(Xin)30万(Wan)。(?)风(Feng)风(Feng)光(Guang)光(Guang)的(De)回(Hui)尚(Shang)学(Xue)堂(Tang)招(Zhao)聘(Pin)学(Xue)弟(Di)学(Xue)妹(Mei)了(Liao)。(?) 积(Ji)极(Ji)努(Nu)力(Li),(?)一(Yi)天(Tian)当(Dang)两(Liang)天(Tian)用(Yong),(?)起(Qi)点(Dian)再(Zai)低(Di)也(Ye)会(Hui)成(Cheng)功(Gong)。(?)
我(Wo)们(Men)也(Ye)碰(Peng)到(Dao)过(Guo)一(Yi)个(Ge)奇(Qi)葩(Pa)的(De)学(Xue)员(Yuan),(?)在(Zai)尚(Shang)学(Xue)堂(Tang)学(Xue)完(Wan)后(Hou),(?)就(Jiu)纠(Jiu)结(Jie)于(Yu)你(Ni)们(Men)不(Bu)是(Shi)“(?)推(Tui)荐(Jian)就(Jiu)业(Ye)”(?)吗(Ma)?(?)窝(Wo)在(Zai)宿(Su)舍(She)等(Deng)着(Zhuo)。(?) 企(Qi)业(Ye)来(Lai)了(Liao),(?)老(Lao)师(Shi)通(Tong)知(Zhi)也(Ye)不(Bu)来(Lai)参(Can)加(Jia)面(Mian)试(Shi),(?)偶(Ou)尔(?)来(Lai)了(Liao),(?)结(Jie)果(Guo)窝(Wo)在(Zai)宿(Su)舍(She)根(Gen)本(Ben)没(Mei)有(You)锻(Duan)炼(Lian)出(Chu)能(Neng)力(Li),(?)也(Ye)无(Wu)法(Fa)面(Mian)试(Shi)成(Cheng)功(Gong),(?)这(Zhe)是(Shi)极(Ji)其(Qi)个(Ge)别(Bie)的(De)案(An)例(Li)。(?)即(Ji)使(Shi)你(Ni)是(Shi)千(Qian)里(Li)马(Ma),(?)不(Bu)出(Chu)去(Qu)跑(Pao),(?)天(Tian)天(Tian)窝(Wo)在(Zai)家(Jia)里(Li),(?)消(Xiao)极(Ji)等(Deng)待(Dai),(?)最(Zui)终(Zhong)你(Ni)也(Ye)会(Hui)成(Cheng)为(Wei)一(Yi)匹(Pi)“(?)废(Fei)马(Ma)”(?)。(?)
所(Suo)以(Yi),(?)无(Wu)论(Lun)你(Ni)是(Shi)什(Shi)么(Me)条(Tiao)件(Jian),(?)高(Gao)富(Fu)帅(Shuai)还(Huan)是(Shi)矮(Ai)矬(Cuo)穷(Qiong),(?)心(Xin)态(Tai)不(Bu)对(Dui),(?)恋(Lian)爱(Ai)和(He)工(Gong)作(Zuo)都(Du)不(Bu)可(Ke)能(Neng)成(Cheng)功(Gong)。(?) 希(Xi)望(Wang)大(Da)家(Jia)积(Ji)极(Ji)起(Qi)来(Lai),(?)大(Da)着(Zhuo)胆(Dan)子(Zi)冲(Chong)向(Xiang)社(She)会(Hui),(?)千(Qian)方(Fang)百(Bai)计(Ji)进(Jin)入(Ru)企(Qi)业(Ye)招(Zhao)聘(Pin)环(Huan)节(Jie),(?)即(Ji)使(Shi)不(Bu)成(Cheng)功(Gong),(?)就(Jiu)当(Dang)做(Zuo)一(Yi)次(Ci)锻(Duan)炼(Lian)机(Ji)会(Hui),(?)锻(Duan)炼(Lian)多(Duo)了(Liao),(?)一(Yi)旦(Dan)机(Ji)会(Hui)来(Lai)了(Liao),(?)是(Shi)不(Bu)是(Shi)成(Cheng)功(Gong)率(Lu)就(Jiu)大(Da)大(Da)提(Ti)高(Gao)了(Liao)?(?) 做(Zuo)“(?)丝(Si)”(?)可(Ke)以(Yi),(?)自(Zi)嘲(Chao)一(Yi)下(Xia)也(Ye)不(Bu)错(Cuo),(?)但(Dan)千(Qian)万(Wan)不(Bu)要(Yao)做(Zuo)“(?)懒(Lan)丝(Si)”(?),(?)那(Na)样(Yang)你(Ni)就(Jiu)完(Wan)蛋(Dan)了(Liao)。(?)
4. 公(Gong)司(Si)最(Zui)喜(Xi)欢(Huan)什(Shi)么(Me)样(Yang)的(De)程(Cheng)序(Xu)员(Yuan)?(?)
公(Gong)司(Si)喜(Xi)欢(Huan)什(Shi)么(Me)样(Yang)的(De)程(Cheng)序(Xu)员(Yuan)?(?)特(Te)别(Bie)简(Jian)单(Dan),(?)三(San)个(Ge)特(Te)点(Dian):(?)
第(Di)一(Yi)、(?)态(Tai)度(Du)好(Hao)
态(Tai)度(Du)永(Yong)远(Yuan)是(Shi)第(Di)一(Yi)要(Yao)素(Su),(?)面(Mian)试(Shi)者(Zhe)通(Tong)常(Chang)都(Du)是(Shi)你(Ni)以(Yi)后(Hou)的(De)直(Zhi)接(Jie)上(Shang)级(Ji)。(?)如(Ru)果(Guo)跟(Gen)你(Ni)交(Jiao)流(Liu)顺(Shun)畅(Chang),(?)看(Kan)你(Ni)态(Tai)度(Du)也(Ye)不(Bu)错(Cuo),(?)这(Zhe)样(Yang)对(Dui)他(Ta)来(Lai)说(Shuo),(?)领(Ling)导(Dao)起(Qi)来(Lai)就(Jiu)容(Rong)易(Yi)一(Yi)些(Xie)。(?) 因(Yin)此(Ci),(?)态(Tai)度(Du)通(Tong)常(Chang)是(Shi)面(Mian)试(Shi)官(Guan)看(Kan)人(Ren)的(De)第(Di)一(Yi)要(Yao)素(Su)。(?) 态(Tai)度(Du)不(Bu)端(Duan)正(Zheng),(?)一(Yi)切(Qie)免(Mian)谈(Tan)。(?)能(Neng)力(Li)强(Qiang)我(Wo)也(Ye)驾(Jia)驭(Yu)不(Bu)了(Liao),(?)要(Yao)你(Ni)何(He)用(Yong)?(?) 能(Neng)力(Li)差(Cha)态(Tai)度(Du)好(Hao)也(Ye)勉(Mian)强(Qiang)能(Neng)接(Jie)受(Shou),(?)能(Neng)力(Li)差(Cha)态(Tai)度(Du)还(Huan)差(Cha)那(Na)就(Jiu)分(Fen)分(Fen)钟(Zhong)被(Bei)灭(Mie)掉(Diao)。(?)
如(Ru)果(Guo)你(Ni)知(Zhi)道(Dao)面(Mian)试(Shi)官(Guan)的(De)动(Dong)机(Ji),(?)就(Jiu)可(Ke)以(Yi)建(Jian)立(Li)共(Gong)通(Tong)点(Dian),(?)很(Hen)容(Rong)易(Yi)就(Jiu)能(Neng)恰(Qia)当(Dang)地(Di)回(Hui)应(Ying)问(Wen)题(Ti)。(?)从(Cong)而(?)为(Wei)你(Ni)的(De)面(Mian)试(Shi)加(Jia)分(Fen)、(?)添(Tian)彩(Cai)。(?)

第(Di)二(?)、(?)技(Ji)术(Shu)能(Neng)力(Li)较(Jiao)强(Qiang)
企(Qi)业(Ye)招(Zhao)聘(Pin)人(Ren)员(Yuan)毕(Bi)竟(Jing)是(Shi)来(Lai)做(Zuo)事(Shi)的(De),(?)技(Ji)术(Shu)能(Neng)力(Li)是(Shi)考(Kao)察(Cha)的(De)重(Zhong)点(Dian)。(?)技(Ji)术(Shu)能(Neng)力(Li)能(Neng)胜(Sheng)任(Ren)目(Mu)前(Qian)的(De)工(Gong)作(Zuo),(?)是(Shi)面(Mian)试(Shi)官(Guan)主(Zhu)要(Yao)看(Kan)重(Zhong)的(De)。(?)
第(Di)三(San)、(?)热(Re)爱(Ai)技(Ji)术(Shu)工(Gong)作(Zuo),(?)学(Xue)习(Xi)能(Neng)力(Li)强(Qiang)
通(Tong)过(Guo)跟(Gen)面(Mian)试(Shi)官(Guan)的(De)交(Jiao)流(Liu),(?)能(Neng)让(Rang)别(Bie)人(Ren)觉(Jue)得(De)你(Ni)热(Re)爱(Ai)技(Ji)术(Shu)工(Gong)作(Zuo),(?)会(Hui)让(Rang)你(Ni)具(Ju)备(Bei)极(Ji)大(Da)的(De)优(You)势(Shi)。(?)即(Ji)使(Shi)感(Gan)觉(Jue)你(Ni)现(Xian)在(Zai)水(Shui)平(Ping)较(Jiao)差(Cha),(?)也(Ye)没(Mei)有(You)关(Guan)系(Xi)。(?)兴(Xing)趣(Qu)是(Shi)最(Zui)好(Hao)的(De)老(Lao)师(Shi),(?)喜(Xi)欢(Huan)技(Ji)术(Shu),(?)把(Ba)加(Jia)班(Ban)当(Dang)成(Cheng)玩(Wan)游(You)戏(Xi)一(Yi)样(Yang)的(De)态(Tai)度(Du),(?)面(Mian)试(Shi)官(Guan)显(Xian)然(Ran)会(Hui)大(Da)大(Da)的(De)给(Gei)你(Ni)点(Dian)个(Ge)赞(Zan)。(?)
PS:(?)这(Zhe)里(Li)顺(Shun)便(Bian)给(Gei)个(Ge)技(Ji)巧(Qiao),(?)可(Ke)以(Yi)让(Rang)你(Ni)身(Shen)价(Jia)立(Li)刻(Ke)增(Zeng)加(Jia)30%以(Yi)上(Shang)(本(Ben)来(Lai)你(Ni)值(Zhi)8000,(?)可(Ke)以(Yi)拿(Na)到(Dao)1万(Wan),(?)一(Yi)下(Xia)子(Zi)让(Rang)你(Ni)一(Yi)年(Nian)多(Duo)挣(Zheng)3万(Wan)),(?)那(Na)就(Jiu)是(Shi)学(Xue)习(Xi)本(Ben)专(Zhuan)业(Ye)的(De)一(Yi)些(Xie)新(Xin)的(De)技(Ji)术(Shu)、(?)高(Gao)级(Ji)一(Yi)点(Dian)的(De)技(Ji)术(Shu)。(?)不(Bu)需(Xu)要(Yao)多(Duo)么(Me)精(Jing)通(Tong),(?)了(Liao)解(Jie)即(Ji)可(Ke)。(?)可(Ke)以(Yi)在(Zai)面(Mian)试(Shi)的(De)时(Shi)候(Hou)说(Shuo)出(Chu)来(Lai)。(?)这(Zhe)样(Yang)就(Jiu)会(Hui)令(Ling)面(Mian)试(Shi)官(Guan)对(Dui)你(Ni)刮(Gua)目(Mu)相(Xiang)看(Kan),(?)薪(Xin)水(Shui)标(Biao)准(Zhun)也(Ye)会(Hui)立(Li)刻(Ke)增(Zeng)加(Jia)。(?)因(Yin)为(Wei)你(Ni)说(Shuo)的(De)这(Zhe)些(Xie)技(Ji)术(Shu),(?)可(Ke)能(Neng)是(Shi)面(Mian)试(Shi)官(Guan)也(Ye)不(Bu)会(Hui)的(De),(?)这(Zhe)种(Zhong)对(Dui)你(Ni)的(De)好(Hao)感(Gan)度(Du)和(He)惊(Jing)诧(Cha)的(De)眼(Yan)神(Shen)立(Li)刻(Ke)就(Jiu)会(Hui)让(Rang)你(Ni)身(Shen)价(Jia)暴(Bao)增(Zeng)。(?) 很(Hen)多(Duo)java学(Xue)员(Yuan)学(Xue)完(Wan)后(Hou)再(Zai)学(Xue)大(Da)数(Shu)据(Ju)或(Huo)者(Zhe)架(Jia)构(Gou)师(Shi)班(Ban),(?)都(Du)有(You)这(Zhe)样(Yang)的(De)误(Wu)解(Jie),(?)觉(Jue)得(De)一(Yi)定(Ding)要(Yao)学(Xue)到(Dao)多(Duo)么(Me)多(Duo)么(Me)好(Hao)。(?)其(Qi)实(Shi),(?)没(Mei)必(Bi)要(Yao),(?)了(Liao)解(Jie)大(Da)数(Shu)据(Ju)或(Huo)者(Zhe)架(Jia)构(Gou)师(Shi)班(Ban)某(Mou)些(Xie)技(Ji)术(Shu)能(Neng)交(Jiao)流(Liu)即(Ji)可(Ke),(?)面(Mian)试(Shi)时(Shi)优(You)势(Shi)已(Yi)经(Jing)极(Ji)大(Da)了(Liao);(?) 而(?)且(Qie),(?)即(Ji)使(Shi)上(Shang)了(Liao)班(Ban),(?)用(Yong)到(Dao)这(Zhe)些(Xie)技(Ji)术(Shu),(?)查(Cha)查(Cha)资(Zi)料(Liao)加(Jia)加(Jia)班(Ban)能(Neng)弄(Nong)出(Chu)来(Lai)就(Jiu)OK了(Liao)。(?)
如(Ru)上(Shang)三(San)点(Dian)决(Jue)定(Ding)了(Liao)你(Ni)是(Shi)否(Fou)能(Neng)被(Bei)录(Lu)用(Yong)。(?)大(Da)家(Jia)掌(Zhang)握(Wo)这(Zhe)三(San)点(Dian),(?)也(Ye)可(Ke)以(Yi)互(Hu)相(Xiang)补(Bu)充(Chong)。(?)比(Bi)如(Ru),(?)你(Ni)技(Ji)术(Shu)差(Cha),(?)可(Ke)以(Yi)通(Tong)过(Guo)展(Zhan)现(Xian)态(Tai)度(Du)好(Hao),(?)爱(Ai)技(Ji)术(Shu),(?)爱(Ai)学(Xue)习(Xi)来(Lai)获(Huo)得(De)加(Jia)分(Fen)。(?) 当(Dang)然(Ran),(?)如(Ru)果(Guo)技(Ji)术(Shu)好(Hao),(?)也(Ye)要(Yao)通(Tong)过(Guo)展(Zhan)现(Xian)态(Tai)度(Du)好(Hao),(?)爱(Ai)技(Ji)术(Shu),(?)爱(Ai)学(Xue)习(Xi)获(Huo)得(De)更(Geng)多(Duo)的(De)分(Fen)。(?)
面(Mian)试(Shi)官(Guan)经(Jing)常(Chang)会(Hui)碰(Peng)到(Dao)技(Ji)术(Shu)非(Fei)常(Chang)合(He)适(Shi),(?)但(Dan)是(Shi)态(Tai)度(Du)较(Jiao)差(Cha),(?)计(Ji)较(Jiao)是(Shi)否(Fou)加(Jia)班(Ban)的(De)面(Mian)试(Shi)者(Zhe),(?)基(Ji)本(Ben)都(Du)被(Bei)pass。(?)毕(Bi)竟(Jing),(?)技(Ji)术(Shu)再(Zai)强(Qiang)也(Ye)不(Bu)是(Shi)地(Di)球(Qiu)上(Shang)只(Zhi)有(You)你(Ni)会(Hui),(?)对(Dui)不(Bu)对(Dui)?(?) 如(Ru)果(Guo)态(Tai)度(Du)差(Cha),(?)加(Jia)入(Ru)团(Tuan)队(Dui)变(Bian)成(Cheng)团(Tuan)队(Dui)的(De)负(Fu)能(Neng)量(Liang),(?)那(Na)就(Jiu)损(Sun)失(Shi)大(Da)了(Liao)。(?)
5.(?)我(Wo)到(Dao)底(Di)值(Zhi)多(Duo)少(Shao)钱(Qian)?(?)
第(Di)一(Yi)、(?)态(Tai)度(Du)好(Hao)
“(?)我(Wo)是(Shi)谁(Shui)?(?)”(?)这(Zhe)是(Shi)人(Ren)生(Sheng)最(Zui)大(Da)的(De)命(Ming)题(Ti),(?)找(Zhao)工(Gong)作(Zuo)最(Zui)大(Da)的(De)命(Ming)题(Ti)是(Shi)什(Shi)么(Me)呢(Ne)?(?)显(Xian)然(Ran),(?)就(Jiu)是(Shi)“(?)我(Wo)到(Dao)底(Di)值(Zhi)多(Duo)少(Shao)钱(Qian)?(?)”(?)。(?)给(Gei)自(Zi)己(Ji)确(Que)定(Ding)了(Liao)合(He)适(Shi)的(De)定(Ding)位(Wei),(?)才(Cai)能(Neng)找(Zhao)到(Dao)合(He)适(Shi)的(De)工(Gong)作(Zuo)。(?) 如(Ru)果(Guo)你(Ni)能(Neng)力(Li)只(Zhi)值(Zhi)5000,(?)一(Yi)定(Ding)要(Yao)找(Zhao)3万(Wan)的(De)工(Gong)作(Zuo),(?)那(Na)怎(Zen)么(Me)可(Ke)能(Neng)找(Zhao)得(De)到(Dao)?(?)
一(Yi)般(Ban)情(Qing)况(Kuang),(?)面(Mian)试(Shi)官(Guan)评(Ping)价(Jia)你(Ni)的(De)薪(Xin)资(Zi)标(Biao)准(Zhun)通(Tong)常(Chang)从(Cong)下(Xia)面(Mian)几(Ji)项(Xiang):(?)
1.个(Ge)人(Ren)素(Su)质(Zhi)和(He)口(Kou)才(Cai)(占(Zhan)比(Bi):(?)20%)
这(Zhe)其(Qi)实(Shi)是(Shi)个(Ge)印(Yin)象(Xiang)分(Fen),(?)所(Suo)以(Yi)要(Yao)被(Bei)别(Bie)人(Ren)认(Ren)可(Ke)的(De)其(Qi)实(Shi)就(Jiu)是(Shi)上(Shang)一(Yi)个(Ge)话(Hua)题(Ti)《(?)公(Gong)司(Si)最(Zui)喜(Xi)欢(Huan)什(Shi)么(Me)样(Yang)的(De)程(Cheng)序(Xu)员(Yuan)》(?)中(Zhong)表(Biao)示(Shi)的(De)第(Di)一(Yi)特(Te)点(Dian):(?)“(?)态(Tai)度(Du)好(Hao)”(?)。(?)

如(Ru)果(Guo)你(Ni)向(Xiang)面(Mian)试(Shi)官(Guan)充(Chong)分(Fen)表(Biao)达(Da)了(Liao)良(Liang)好(Hao)的(De)个(Ge)人(Ren)素(Su)质(Zhi)、(?)对(Dui)工(Gong)作(Zuo)积(Ji)极(Ji)的(De)态(Tai)度(Du),(?)整(Zheng)个(Ge)面(Mian)试(Shi)过(Guo)程(Cheng)中(Zhong)让(Rang)面(Mian)试(Shi)官(Guan)都(Du)觉(Jue)得(De)非(Fei)常(Chang)的(De)顺(Shun)畅(Chang)、(?)很(Hen)投(Tou)缘(Yuan),(?)即(Ji)使(Shi)你(Ni)技(Ji)术(Shu)较(Jiao)差(Cha),(?)也(Ye)可(Ke)以(Yi)让(Rang)你(Ni)顺(Shun)利(Li)拿(Na)到(Dao)offer。(?)
“(?)个(Ge)人(Ren)素(Su)质(Zhi)和(He)口(Kou)才(Cai)”(?)是(Shi)你(Ni)拿(Na)到(Dao)offer的(De)最(Zui)关(Guan)键(Jian)因(Yin)素(Su)。(?)
2.基(Ji)础(Chu)技(Ji)术(Shu)((?)占(Zhan)比(Bi):(?)40%)(?)
基(Ji)础(Chu)编(Bian)程(Cheng)能(Neng)力(Li)、(?)理(Li)论(Lun)知(Zhi)识(Shi)是(Shi)否(Fou)扎(Zha)实(Shi)、(?)知(Zhi)识(Shi)体(Ti)系(Xi)是(Shi)否(Fou)系(Xi)统(Tong)是(Shi)面(Mian)试(Shi)官(Guan)比(Bi)较(Jiao)看(Kan)重(Zhong)的(De)。(?)老(Lao)师(Shi)讲(Jiang)课(Ke)过(Guo)程(Cheng)中(Zhong)的(De)基(Ji)本(Ben)知(Zhi)识(Shi)点(Dian)要(Yao)尽(Jin)力(Li)吃(Chi)透(Tou),(?)良(Liang)好(Hao)的(De)知(Zhi)识(Shi)体(Ti)系(Xi)对(Dui)于(Yu)后(Hou)期(Qi)面(Mian)试(Shi)极(Ji)其(Qi)有(You)利(Li)。(?)
如(Ru)果(Guo)面(Mian)试(Shi)官(Guan)感(Gan)觉(Jue)你(Ni)项(Xiang)目(Mu)经(Jing)验(Yan)不(Bu)丰(Feng)富(Fu),(?)但(Dan)是(Shi)基(Ji)础(Chu)扎(Zha)实(Shi),(?)也(Ye)可(Ke)以(Yi)完(Wan)全(Quan)的(De)弥(Mi)补(Bu)项(Xiang)目(Mu)经(Jing)验(Yan)欠(Qian)缺(Que)的(De)问(Wen)题(Ti)。(?)这(Zhe)也(Ye)是(Shi)很(Hen)多(Duo)应(Ying)届(Jie)毕(Bi)业(Ye)生(Sheng)能(Neng)顺(Shun)利(Li)就(Jiu)业(Ye)的(De)法(Fa)宝(Bao)。(?) 当(Dang)然(Ran),(?)如(Ru)果(Guo)项(Xiang)目(Mu)经(Jing)验(Yan)欠(Qian)缺(Que)的(De)话(Hua),(?)高(Gao)薪(Xin)的(De)概(Gai)率(Lu)就(Jiu)降(Jiang)低(Di)了(Liao),(?) 需(Xu)要(Yao)降(Jiang)低(Di)薪(Xin)资(Zi)要(Yao)求(Qiu),(?)保(Bao)持(Chi)较(Jiao)普(Pu)通(Tong)的(De)薪(Xin)水(Shui)来(Lai)实(Shi)现(Xian)就(Jiu)业(Ye)。(?)
“(?)基(Ji)础(Chu)技(Ji)术(Shu)”(?)是(Shi)你(Ni)能(Neng)否(Fou)就(Jiu)业(Ye)的(De)基(Ji)础(Chu)因(Yin)素(Su)。(?)
3.项(Xiang)目(Mu)经(Jing)验(Yan)((?)占(Zhan)比(Bi):(?)40%)(?)
项(Xiang)目(Mu)经(Jing)验(Yan)显(Xian)然(Ran)是(Shi)面(Mian)试(Shi)官(Guan)极(Ji)其(Qi)看(Kan)重(Zhong)的(De)一(Yi)项(Xiang)。(?)从(Cong)项(Xiang)目(Mu)经(Jing)验(Yan)的(De)描(Miao)述(Shu)中(Zhong)可(Ke)以(Yi)体(Ti)现(Xian)你(Ni)的(De)个(Ge)人(Ren)素(Su)质(Zhi)、(?)基(Ji)础(Chu)技(Ji)术(Shu)等(Deng)等(Deng)。(?)尽(Jin)量(Liang)多(Duo)的(De)积(Ji)累(Lei)项(Xiang)目(Mu)案(An)例(Li),(?)尽(Jin)量(Liang)多(Duo)的(De)敲(Qiao)代(Dai)码(Ma),(?)可(Ke)以(Yi)完(Wan)成(Cheng)基(Ji)本(Ben)的(De)项(Xiang)目(Mu)模(Mo)块(Kuai),(?)会(Hui)成(Cheng)为(Wei)你(Ni)以(Yi)后(Hou)面(Mian)试(Shi)的(De)杀(Sha)手(Shou)锏(Jian)。(?)
在(Zai)培(Pei)训(Xun)期(Qi)间(Jian),(?)老(Lao)师(Shi)讲(Jiang)的(De)项(Xiang)目(Mu)案(An)例(Li)大(Da)家(Jia)要(Yao)学(Xue)会(Hui)举(Ju)一(Yi)反(Fan)三(San),(?)毕(Bi)竟(Jing)这(Zhe)些(Xie)案(An)例(Li)对(Dui)着(Zhuo)几(Ji)十(Shi)人(Ren)、(?)几(Ji)百(Bai)人(Ren)讲(Jiang)过(Guo),(?)你(Ni)在(Zai)面(Mian)试(Shi)时(Shi)直(Zhi)接(Jie)写(Xie)到(Dao)简(Jian)历(Li)上(Shang)并(Bing)不(Bu)是(Shi)特(Te)别(Bie)好(Hao)的(De)做(Zuo)法(Fa)。(?)最(Zui)好(Hao)的(De)做(Zuo)法(Fa)是(Shi),(?)做(Zuo)一(Yi)个(Ge)有(You)心(Xin)人(Ren),(?)多(Duo)留(Liu)意(Yi)和(He)查(Cha)找(Zhao)适(Shi)合(He)自(Zi)己(Ji)的(De)项(Xiang)目(Mu)案(An)例(Li)。(?)

项(Xiang)目(Mu)案(An)例(Li)是(Shi)你(Ni)的(De),(?)里(Li)面(Mian)的(De)项(Xiang)目(Mu)流(Liu)程(Cheng)和(He)开(Kai)发(Fa)中(Zhong)遇(Yu)到(Dao)的(De)问(Wen)题(Ti)是(Shi)老(Lao)师(Shi)课(Ke)上(Shang)讲(Jiang)过(Guo)的(De)。(?)说(Shuo)白(Bai)了(Liao),(?)就(Jiu)是(Shi)将(Jiang)你(Ni)的(De)项(Xiang)目(Mu)案(An)例(Li)换(Huan)了(Liao)个(Ge)衣(Yi)服(Fu),(?)“(?)换(Huan)汤(Tang)不(Bu)换(Huan)药(Yao)”(?),(?)这(Zhe)样(Yang)就(Jiu)可(Ke)以(Yi)在(Zai)面(Mian)试(Shi)中(Zhong)起(Qi)到(Dao)更(Geng)好(Hao)的(De)效(Xiao)果(Guo)。(?)
“(?)项(Xiang)目(Mu)经(Jing)验(Yan)”(?)是(Shi)你(Ni)能(Neng)否(Fou)实(Shi)现(Xian)高(Gao)薪(Xin)的(De)关(Guan)键(Jian)因(Yin)素(Su)。(?)
4.最(Zui)新(Xin)和(He)高(Gao)级(Ji)技(Ji)术(Shu)了(Liao)解(Jie)程(Cheng)度(Du)(额(E)外(Wai),(?)增(Zeng)值(Zhi)30%--50%)前(Qian)面(Mian)3项(Xiang)如(Ru)果(Guo)做(Zuo)好(Hao)了(Liao)就(Jiu)可(Ke)以(Yi)完(Wan)全(Quan)保(Bao)证(Zheng)就(Jiu)业(Ye)了(Liao)。(?)“(?)最(Zui)新(Xin)和(He)高(Gao)级(Ji)技(Ji)术(Shu)了(Liao)解(Jie)度(Du)”(?)是(Shi)能(Neng)否(Fou)争(Zheng)取(Qu)到(Dao)合(He)理(Li)范(Fan)围(Wei)内(Nei)更(Geng)高(Gao)薪(Xin)水(Shui)的(De)关(Guan)键(Jian),(?)也(Ye)就(Jiu)是(Shi)让(Rang)你(Ni)实(Shi)现(Xian)更(Geng)高(Gao)“(?)溢(Yi)价(Jia)”(?),(?)“(?)超(Chao)额(E)把(Ba)你(Ni)自(Zi)己(Ji)卖(Mai)出(Chu)去(Qu)“(?)。(?)
面(Mian)试(Shi)官(Guan)通(Tong)常(Chang)由(You)于(Yu)平(Ping)时(Shi)工(Gong)作(Zuo)忙(Mang),(?)无(Wu)暇(Xia)学(Xue)习(Xi)新(Xin)的(De)技(Ji)术(Shu)和(He)知(Zhi)识(Shi),(?)除(Chu)非(Fei)是(Shi)项(Xiang)目(Mu)用(Yong)到(Dao)的(De)技(Ji)术(Shu)。(?)但(Dan)是(Shi),(?)作(Zuo)为(Wei)一(Yi)个(Ge)“(?)技(Ji)术(Shu)控(Kong)“(?),(?)通(Tong)常(Chang)会(Hui)关(Guan)注(Zhu)最(Zui)新(Xin)技(Ji)术(Shu)的(De)信(Xin)息(Xi),(?)拥(Yong)有(You)学(Xue)习(Xi)这(Zhe)些(Xie)技(Ji)术(Shu)的(De)渴(Ke)望(Wang),(?)但(Dan)是(Shi)没(Mei)有(You)时(Shi)间(Jian)和(He)精(Jing)力(Li)。(?) 这(Zhe)个(Ge)时(Shi)候(Hou),(?)应(Ying)聘(Pin)者(Zhe)简(Jian)历(Li)上(Shang)写(Xie)的(De)新(Xin)技(Ji)术(Shu)、(?)面(Mian)试(Shi)时(Shi)聊(Liao)的(De)新(Xin)技(Ji)术(Shu),(?)都(Du)会(Hui)成(Cheng)为(Wei)让(Rang)”(?)面(Mian)试(Shi)官(Guan)欣(Xin)赏(Shang)你(Ni)的(De)理(Li)由(You)“(?)。(?)

但(Dan)是(Shi),(?)注(Zhu)意(Yi)千(Qian)万(Wan)不(Bu)要(Yao)有(You)心(Xin)理(Li)负(Fu)担(Dan),(?)这(Zhe)种(Zhong)”(?)欣(Xin)赏(Shang)的(De)眼(Yan)神(Shen)“(?)是(Shi)上(Shang)级(Ji)发(Fa)现(Xian)一(Yi)个(Ge)得(De)力(Li)下(Xia)属(Shu)的(De)”(?)喜(Xi)欢(Huan)的(De)眼(Yan)神(Shen)“(?),(?)而(?)不(Bu)是(Shi)好(Hao)基(Ji)友(You)。(?) 面(Mian)试(Shi)官(Guan)也(Ye)知(Zhi)道(Dao)你(Ni)基(Ji)础(Chu)一(Yi)般(Ban)、(?)项(Xiang)目(Mu)经(Jing)验(Yan)一(Yi)般(Ban),(?)但(Dan)是(Shi)这(Zhe)些(Xie)新(Xin)技(Ji)术(Shu)你(Ni)都(Du)在(Zai)学(Xue),(?)证(Zheng)明(Ming)你(Ni)是(Shi)个(Ge)”(?)技(Ji)术(Shu)好(Hao)胚(Pei)子(Zi)“(?),(?)很(Hen)像(Xiang)曾(Zeng)经(Jing)的(De)”(?)他(Ta)自(Zi)己(Ji)“(?)而(?)已(Yi)。(?)
如(Ru)果(Guo)前(Qian)三(San)项(Xiang)决(Jue)定(Ding)了(Liao)你(Ni)的(De)薪(Xin)水(Shui)是(Shi)8000,(?)那(Na)么(Me)有(You)了(Liao)第(Di)四(Si)项(Xiang),(?)你(Ni)的(De)薪(Xin)水(Shui)标(Biao)准(Zhun)通(Tong)常(Chang)会(Hui)提(Ti)高(Gao)至(Zhi)少(Shao)30%,(?)最(Zui)高(Gao)50%。(?)也(Ye)就(Jiu)是(Shi)实(Shi)现(Xian)了(Liao)”(?)你(Ni)的(De)溢(Yi)价(Jia)”(?), 每(Mei)个(Ge)月(Yue)可(Ke)以(Yi)多(Duo)赚(Zhuan):(?)4000元(Yuan)左(Zuo)右(You)。(?) 而(?)且(Qie),(?)你(Ni)会(Hui)发(Fa)现(Xian)拿(Na)8000和(He)溢(Yi)价(Jia)拿(Na)1万(Wan),1万(Wan)2,(?) 最(Zui)后(Hou)干(Gan)的(De)活(Huo)其(Qi)实(Shi)差(Cha)别(Bie)不(Bu)大(Da)。(?)
这(Zhe)里(Li)有(You)个(Ge)经(Jing)过(Guo)我(Wo)们(Men)统(Tong)计(Ji)的(De)”(?)1.5倍(Bei)定(Ding)律(Lu)”(?): 就(Jiu)是(Shi)经(Jing)过(Guo)”(?)最(Zui)新(Xin)和(He)高(Gao)级(Ji)技(Ji)术(Shu)”(?)的(De)助(Zhu)力(Li),(?)你(Ni)的(De)薪(Xin)水(Shui)会(Hui)在(Zai)原(Yuan)定(Ding)值(Zhi)上(Shang)增(Zeng)加(Jia)50%,(?)薪(Xin)水(Shui)是(Shi)原(Yuan)来(Lai)的(De)1.5倍(Bei)。(?)
6.找(Zhao)工(Gong)作(Zuo)最(Zui)重(Zhong)要(Yao)的(De)是(Shi)什(Shi)么(Me)?(?)薪(Xin)水(Shui)?机(Ji)会(Hui)?
什(Shi)么(Me)最(Zui)重(Zhong)要(Yao),(?)因(Yin)人(Ren)而(?)异(Yi)。(?)一(Yi)般(Ban)分(Fen)为(Wei)如(Ru)下(Xia)几(Ji)类(Lei):(?)
这(Zhe)种(Zhong)情(Qing)况(Kuang),(?)我(Wo)也(Ye)不(Bu)多(Duo)说(Shuo)。(?)缺(Que)钱(Qian)就(Jiu)看(Kan)薪(Xin)水(Shui),(?)不(Bu)缺(Que)就(Jiu)看(Kan)机(Ji)会(Hui)。(?)个(Ge)人(Ren)建(Jian)议(Yi),(?)看(Kan)机(Ji)会(Hui)。(?)
第(Di)二(?)种(Zhong)情(Qing)况(Kuang):(?)offer少(Shao),(?)没(Mei)得(De)挑(Tiao)
这(Zhe)种(Zhong)情(Qing)况(Kuang),(?)当(Dang)然(Ran),(?)就(Jiu)是(Shi)”(?)别(Bie)挑(Tiao)了(Liao)。(?)先(Xian)进(Jin)入(Ru)行(Xing)业(Ye),(?)再(Zai)寻(Xun)找(Zhao)机(Ji)会(Hui)”(?)。(?)时(Shi)间(Jian)浪(Lang)费(Fei)不(Bu)起(Qi),(?)如(Ru)果(Guo)因(Yin)为(Wei)薪(Xin)水(Shui)纠(Jiu)结(Jie),(?)两(Liang)个(Ge)月(Yue)不(Bu)上(Shang)班(Ban),(?)损(Sun)失(Shi)两(Liang)个(Ge)月(Yue)薪(Xin)水(Shui)不(Bu)说(Shuo),(?)还(Huan)浪(Lang)费(Fei)了(Liao)两(Liang)个(Ge)月(Yue)时(Shi)间(Jian)。(?)
第(Di)三(San)种(Zhong)情(Qing)况(Kuang):(?)没(Mei)offer
这(Zhe)种(Zhong)情(Qing)况(Kuang),(?)就(Jiu)是(Shi)降(Jiang)低(Di)标(Biao)准(Zhun),(?)千(Qian)方(Fang)百(Bai)计(Ji)就(Jiu)业(Ye),(?)不(Bu)管(Guan)什(Shi)么(Me)企(Qi)业(Ye),(?)先(Xian)进(Jin)去(Qu)再(Zai)说(Shuo)。(?)进(Jin)去(Qu)行(Xing)业(Ye)后(Hou),(?)再(Zai)学(Xue)习(Xi),(?)再(Zai)进(Jin)步(Bu),(?)再(Zai)找(Zhao)更(Geng)大(Da)的(De)机(Ji)会(Hui)。(?)
我(Wo)们(Men)始(Shi)终(Zhong)强(Qiang)调(Diao)”(?)机(Ji)会(Hui)成(Cheng)本(Ben)”(?),(?)差(Cha)不(Bu)多(Duo)的(De)前(Qian)提(Ti)下(Xia),(?)尽(Jin)快(Kuai)就(Jiu)业(Ye),(?)不(Bu)要(Yao)纠(Jiu)结(Jie)于(Yu)薪(Xin)水(Shui)多(Duo)500少(Shao)1000的(De)问(Wen)题(Ti),(?)进(Jin)入(Ru)行(Xing)业(Ye)后(Hou),(?)还(Huan)需(Xu)要(Yao)再(Zai)学(Xue)习(Xi)再(Zai)提(Ti)高(Gao)。(?) 现(Xian)在(Zai)就(Jiu)业(Ye)不(Bu)是(Shi)你(Ni)的(De)终(Zhong)点(Dian),(?)而(?)是(Shi)你(Ni)的(De)起(Qi)点(Dian)。(?)
7.学(Xue)习(Xi)很(Hen)多(Duo)技(Ji)术(Shu),(?)现(Xian)在(Zai)的(De)公(Gong)司(Si)不(Bu)用(Yong),(?)不(Bu)是(Shi)亏(Kui)了(Liao)吗(Ma)?(?)
很(Hen)多(Duo)朋(Peng)友(You)还(Huan)是(Shi)跟(Gen)小(Xiao)孩(Hai)一(Yi)样(Yang),(?) 感(Gan)觉(Jue)学(Xue)习(Xi)了(Liao)东(Dong)西(Xi)后(Hou)如(Ru)果(Guo)考(Kao)试(Shi)不(Bu)考(Kao),(?)公(Gong)司(Si)暂(Zan)时(Shi)不(Bu)用(Yong)就(Jiu)没(Mei)有(You)价(Jia)值(Zhi),(?)不(Bu)想(Xiang)学(Xue)习(Xi)。(?) 感(Gan)觉(Jue)学(Xue)习(Xi)好(Hao)累(Lei)啊(A),(?)是(Shi)给(Gei)老(Lao)师(Shi)学(Xue)的(De),(?)给(Gei)尚(Shang)学(Xue)堂(Tang)交(Jiao)了(Liao)学(Xue)费(Fei),(?)是(Shi)给(Gei)尚(Shang)学(Xue)堂(Tang)学(Xue)的(De)。(?)别(Bie)不(Bu)承(Cheng)认(Ren),(?)很(Hen)多(Duo)人(Ren)潜(Qian)意(Yi)识(Shi)里(Li)面(Mian)就(Jiu)是(Shi)这(Zhe)种(Zhong)”(?)应(Ying)试(Shi)教(Jiao)育(Yu)”(?)思(Si)维(Wei)。(?)
多(Duo)学(Xue)东(Dong)西(Xi)到(Dao)底(Di)是(Shi)为(Wei)什(Shi)么(Me)?(?)其(Qi)实(Shi),(?)很(Hen)简(Jian)单(Dan)。(?)掌(Zhang)握(Wo)更(Geng)多(Duo)的(De)技(Ji)术(Shu),(?)意(Yi)味(Wei)着(Zhuo)更(Geng)多(Duo)的(De)机(Ji)会(Hui),(?)有(You)更(Geng)多(Duo)选(Xuan)择(Ze)的(De)机(Ji)会(Hui)。(?) 人(Ren)和(He)人(Ren)之(Zhi)间(Jian)本(Ben)质(Zhi)的(De)差(Cha)距(Ju)就(Jiu)是(Shi)“(?)选(Xuan)择(Ze)权(Quan)“(?)的(De)差(Cha)距(Ju)。(?) 农(Nong)民(Min)自(Zi)家(Jia)种(Zhong)蔬(Shu)菜(Cai)、(?)养(Yang)猪(Zhu)吃(Chi),(?)很(Hen)干(Gan)净(Jing)很(Hen)有(You)机(Ji);(?)千(Qian)万(Wan)富(Fu)翁(Weng)可(Ke)能(Neng)还(Huan)要(Yao)吃(Chi)着(Zhuo)普(Pu)通(Tong)的(De)猪(Zhu)肉(Rou)和(He)蔬(Shu)菜(Cai);(?)他(Ta)们(Men)之(Zhi)间(Jian)的(De)差(Cha)距(Ju)在(Zai)于(Yu):(?)千(Qian)万(Wan)富(Fu)翁(Weng)可(Ke)以(Yi)随(Sui)便(Bian)选(Xuan)择(Ze),(?)可(Ke)以(Yi)随(Sui)时(Shi)过(Guo)农(Nong)民(Min)的(De)生(Sheng)活(Huo);(?)而(?)农(Nong)民(Min)却(Que)没(Mei)有(You)选(Xuan)择(Ze)过(Guo)千(Qian)万(Wan)富(Fu)翁(Weng)生(Sheng)活(Huo)的(De)权(Quan)利(Li)。(?) 多(Duo)学(Xue)技(Ji)术(Shu),(?)就(Jiu)意(Yi)味(Wei)着(Zhuo)有(You)更(Geng)多(Duo)选(Xuan)择(Ze)的(De)机(Ji)会(Hui),(?)发(Fa)展(Zhan)的(De)机(Ji)会(Hui),(?)就(Jiu)会(Hui)造(Zao)成(Cheng)工(Gong)作(Zuo)和(He)生(Sheng)活(Huo)的(De)差(Cha)距(Ju)。(?)
同(Tong)时(Shi),(?)在(Zai)IT行(Xing)业(Ye)多(Duo)学(Xue)东(Dong)西(Xi),(?)除(Chu)了(Liao)这(Zhe)些(Xie)“(?)机(Ji)会(Hui)和(He)选(Xuan)择(Ze)权(Quan)“(?)之(Zhi)外(Wai),(?)更(Geng)直(Zhi)接(Jie)的(De)就(Jiu)是(Shi)能(Neng)带(Dai)来(Lai)金(Jin)钱(Qian)的(De)收(Shou)益(Yi)。(?) 举(Ju)例(Li)来(Lai)说(Shuo),(?)同(Tong)样(Yang)招(Zhao)聘(Pin)一(Yi)个(Ge)java程(Cheng)序(Xu)员(Yuan)。(?)小(Xiao)A只(Zhi)会(Hui)java已(Yi)经(Jing)合(He)格(Ge)了(Liao)。(?) 小(Xiao)B除(Chu)了(Liao)会(Hui)java,(?)还(Huan)会(Hui)一(Yi)点(Dian)大(Da)数(Shu)据(Ju)和(He)架(Jia)构(Gou)知(Zhi)识(Shi),(?)要(Yao)价(Jia)比(Bi)小(Xiao)A高(Gao)20%。(?) 关(Guan)键(Jian)是(Shi),(?)我(Wo)们(Men)公(Gong)司(Si)现(Xian)在(Zai)也(Ye)不(Bu)需(Xu)要(Yao)大(Da)数(Shu)据(Ju)和(He)架(Jia)构(Gou)技(Ji)术(Shu),(?)小(Xiao)A和(He)小(Xiao)B来(Lai)了(Liao)以(Yi)后(Hou)还(Huan)是(Shi)写(Xie)java代(Dai)码(Ma)。(?) 你(Ni)猜(Cai),(?)面(Mian)试(Shi)官(Guan)会(Hui)选(Xuan)择(Ze)小(Xiao)A还(Huan)是(Shi)小(Xiao)B? 绝(Jue)大(Da)多(Duo)数(Shu)面(Mian)试(Shi)官(Guan)会(Hui)选(Xuan)择(Ze)小(Xiao)B。(?) 有(You)了(Liao)小(Xiao)B,(?)一(Yi)旦(Dan)后(Hou)期(Qi)有(You)大(Da)数(Shu)据(Ju)和(He)架(Jia)构(Gou)的(De)需(Xu)求(Qiu),(?)技(Ji)术(Shu)经(Jing)理(Li)就(Jiu)多(Duo)了(Liao)一(Yi)个(Ge)选(Xuan)择(Ze)。(?) 而(?)且(Qie),(?)小(Xiao)B显(Xian)然(Ran)更(Geng)好(Hao)学(Xue),(?)成(Cheng)长(Chang)性(Xing)更(Geng)好(Hao),(?)虽(Sui)然(Ran)薪(Xin)水(Shui)高(Gao)20%,(?)但(Dan)是(Shi)几(Ji)个(Ge)月(Yue)时(Shi)间(Jian)就(Jiu)能(Neng)把(Ba)这(Zhe)20%的(De)薪(Xin)水(Shui)赚(Zhuan)回(Hui)来(Lai)。(?)
掌(Zhang)握(Wo)或(Huo)了(Liao)解(Jie)更(Geng)多(Duo)的(De)技(Ji)术(Shu)知(Zhi)识(Shi),(?)抛(Pao)开(Kai)企(Qi)业(Ye)用(Yong)和(He)不(Bu)用(Yong)的(De)角(Jiao)度(Du),(?)单(Dan)纯(Chun)看(Kan)应(Ying)聘(Pin)者(Zhe)就(Jiu)是(Shi)一(Yi)个(Ge)态(Tai)度(Du)的(De)问(Wen)题(Ti)、(?)成(Cheng)长(Chang)潜(Qian)力(Li)的(De)问(Wen)题(Ti)。(?) 面(Mian)试(Shi)官(Guan)显(Xian)然(Ran)会(Hui)要(Yao)态(Tai)度(Du)更(Geng)好(Hao)、(?)成(Cheng)长(Chang)力(Li)更(Geng)大(Da)的(De)员(Yuan)工(Gong)。(?)
另(Ling)外(Wai),(?)你(Ni)的(De)企(Qi)业(Ye)现(Xian)在(Zai)不(Bu)用(Yong),(?)以(Yi)后(Hou)可(Ke)能(Neng)会(Hui)用(Yong)呀(Ya),(?)这(Zhe)个(Ge)时(Shi)候(Hou)你(Ni)可(Ke)能(Neng)就(Jiu)具(Ju)备(Bei)强(Qiang)大(Da)的(De)话(Hua)语(Yu)权(Quan)和(He)机(Ji)会(Hui)了(Liao)。(?) 我(Wo)们(Men)一(Yi)个(Ge)大(Da)数(Shu)据(Ju)的(De)学(Xue)员(Yuan)毕(Bi)业(Ye)后(Hou),(?)他(Ta)还(Huan)是(Shi)应(Ying)届(Jie)生(Sheng),(?)去(Qu)了(Liao)一(Yi)家(Jia)公(Gong)司(Si)做(Zuo)java开(Kai)发(Fa),(?)没(Mei)多(Duo)久(Jiu)老(Lao)板(Ban)成(Cheng)立(Li)大(Da)数(Shu)据(Ju)业(Ye)务(Wu)的(De)公(Gong)司(Si),(?)结(Jie)果(Guo)公(Gong)司(Si)就(Jiu)他(Ta)会(Hui),(?)直(Zhi)接(Jie)就(Jiu)被(Bei)任(Ren)命(Ming)为(Wei)大(Da)数(Shu)据(Ju)业(Ye)务(Wu)的(De)技(Ji)术(Shu)负(Fu)责(Ze)人(Ren)。(?) 你(Ni)可(Ke)以(Yi)说(Shuo),(?)这(Zhe)个(Ge)学(Xue)员(Yuan)还(Huan)年(Nian)轻(Qing),(?)技(Ji)术(Shu)不(Bu)行(Xing)什(Shi)么(Me)的(De),(?)但(Dan)是(Shi)他(Ta)有(You)这(Zhe)个(Ge)技(Ji)术(Shu)负(Fu)责(Ze)人(Ren)的(De)平(Ping)台(Tai),(?)还(Huan)要(Yao)学(Xue)习(Xi)和(He)提(Ti)高(Gao),(?)现(Xian)在(Zai)不(Bu)行(Xing),(?)一(Yi)年(Nian)后(Hou)呢(Ne)?(?)
多(Duo)学(Xue)习(Xi),(?)意(Yi)味(Wei)着(Zhuo)更(Geng)多(Duo)的(De)机(Ji)会(Hui)和(He)选(Xuan)择(Ze);(?)更(Geng)多(Duo)的(De)机(Ji)会(Hui),(?)意(Yi)味(Wei)着(Zhuo)完(Wan)全(Quan)不(Bu)同(Tong)的(De)人(Ren)生(Sheng)。(?)
二(?):(?)找(Zhao)工(Gong)作(Zuo)前(Qian)需(Xu)要(Yao)准(Zhun)备(Bei)的(De)杀(Sha)手(Shou)锏(Jian)
高(Gao)考(Kao)前(Qian),(?)我(Wo)们(Men)要(Yao)练(Lian)兵(Bing)考(Kao)试(Shi)和(He)集(Ji)训(Xun)。(?)”(?)临(Lin)阵(Zhen)磨(Mo)枪(Qiang)不(Bu)快(Kuai)也(Ye)光(Guang) ”(?),(?)找(Zhao)工(Gong)作(Zuo)前(Qian),(?)我(Wo)们(Men)也(Ye)必(Bi)须(Xu)要(Yao)花(Hua)很(Hen)多(Duo)精(Jing)力(Li)去(Qu)完(Wan)成(Cheng)一(Yi)些(Xie)必(Bi)要(Yao)的(De)准(Zhun)备(Bei)。(?) “(?)不(Bu)打(Da)无(Wu)准(Zhun)备(Bei)之(Zhi)仗(Zhang)”(?),(?) 精(Jing)心(Xin)准(Zhun)备(Bei)和(He)训(Xun)练(Lian)会(Hui)对(Dui)你(Ni)有(You)相(Xiang)当(Dang)正(Zheng)面(Mian)的(De)作(Zuo)用(Yong)。(?)
有(You)人(Ren)认(Ren)为(Wei)“(?)找(Zhao)工(Gong)作(Zuo)要(Yao)靠(Kao)能(Neng)力(Li)”(?)。(?)这(Zhe)话(Hua)没(Mei)错(Cuo),(?)我(Wo)要(Yao)说(Shuo)的(De)是(Shi),(?)“(?)临(Lin)阵(Zhen)磨(Mo)枪(Qiang)准(Zhun)备(Bei)的(De)内(Nei)容(Rong)也(Ye)是(Shi)能(Neng)力(Li)的(De)一(Yi)部(Bu)分(Fen)”(?)。(?) 找(Zhao)工(Gong)作(Zuo)其(Qi)实(Shi)是(Shi)结(Jie)果(Guo)导(Dao)向(Xiang)的(De)一(Yi)个(Ge)事(Shi)情(Qing),(?)而(?)不(Bu)是(Shi)过(Guo)程(Cheng)导(Dao)向(Xiang)。(?)

小(Xiao)A和(He)小(Xiao)B技(Ji)术(Shu)实(Shi)力(Li)差(Cha)不(Bu)多(Duo),(?) 小(Xiao)A经(Jing)过(Guo)精(Jing)心(Xin)的(De)准(Zhun)备(Bei)和(He)策(Ce)划(Hua),(?)获(Huo)得(De)的(De)机(Ji)会(Hui)显(Xian)然(Ran)要(Yao)远(Yuan)远(Yuan)多(Duo)于(Yu)小(Xiao)B。(?)也(Ye)许(Xu)一(Yi)个(Ge)机(Ji)会(Hui),(?)就(Jiu)能(Neng)完(Wan)全(Quan)将(Jiang)小(Xiao)A的(De)命(Ming)运(Yun)改(Gai)变(Bian)了(Liao)。(?)
1.职(Zhi)场(Chang)的(De)十(Shi)大(Da)基(Ji)本(Ben)素(Su)质(Zhi)
大(Da)家(Jia)进(Jin)入(Ru)职(Zhi)场(Chang)前(Qian),非(Fei)常(Chang)有(You)必(Bi)要(Yao)明(Ming)白(Bai)职(Zhi)场(Chang)的(De)一(Yi)些(Xie)基(Ji)本(Ben)要(Yao)领(Ling)。(?)其(Qi)实(Shi),道(Dao)理(Li)都(Du)非(Fei)常(Chang)简(Jian)单(Dan),(?)甚(Shen)至(Zhi)可(Ke)以(Yi)说(Shuo)是(Shi)常(Chang)识(Shi), 关(Guan)键(Jian)是(Shi)我(Wo)们(Men)能(Neng)否(Fou)执(Zhi)行(Xing)下(Xia)去(Qu)。(?)很(Hen)多(Duo)人(Ren)不(Bu)明(Ming)白(Bai)这(Zhe)些(Xie)基(Ji)本(Ben)的(De)道(Dao)理(Li),(?)几(Ji)年(Nian)下(Xia)来(Lai),(?)坏(Huai)的(De)行(Xing)为(Wei)固(Gu)化(Hua)成(Cheng)习(Xi)惯(Guan),(?)习(Xi)惯(Guan)进(Jin)一(Yi)步(Bu)融(Rong)入(Ru)到(Dao)命(Ming)运(Yun),(?)最(Zui)后(Hou)很(Hen)悲(Bei)惨(Can)的(De)成(Cheng)为(Wei)人(Ren)人(Ren)鄙(Bi)视(Shi)的(De)loser。(?)所(Suo)以(Yi),(?)我(Wo)希(Xi)望(Wang)大(Da)家(Jia)从(Cong)看(Kan)到(Dao)这(Zhe)篇(Pian)文(Wen)章(Zhang)起(Qi),(?)就(Jiu)遵(Zun)守(Shou)这(Zhe)样(Yang)的(De)行(Xing)为(Wei)准(Zhun)则(Ze),(?)你(Ni)将(Jiang)会(Hui)在(Zai)职(Zhi)场(Chang)中(Zhong)很(Hen)快(Kuai)迎(Ying)来(Lai)自(Zi)己(Ji)的(De)好(Hao)运(Yun)。(?)
①(?)着(Zhuo)装(Zhuang)整(Zheng)洁(Jie)、(?)个(Ge)人(Ren)卫(Wei)生(Sheng)合(He)格(Ge)
这(Zhe)个(Ge)都(Du)不(Bu)能(Neng)算(Suan)作(Zuo)职(Zhi)场(Chang)素(Su)质(Zhi),(?)应(Ying)该(Gai)是(Shi)做(Zuo)人(Ren)的(De)素(Su)质(Zhi)。(?)每(Mei)天(Tian)逢(Feng)头(Tou)垢(Gou)面(Mian)出(Chu)门(Men)、(?)指(Zhi)甲(Jia)里(Li)面(Mian)都(Du)是(Shi)污(Wu)垢(Gou)、(?)身(Shen)体(Ti)有(You)异(Yi)味(Wei),(?)如(Ru)何(He)让(Rang)别(Bie)人(Ren)觉(Jue)得(De)你(Ni)是(Shi)个(Ge)靠(Kao)谱(Pu)的(De)人(Ren)?(?)千(Qian)万(Wan)不(Bu)要(Yao)跟(Gen)我(Wo)说(Shuo),(?)你(Ni)不(Bu)拘(Ju)小(Xiao)节(Jie)。(?)不(Bu)拘(Ju)小(Xiao)节(Jie)是(Shi)谦(Qian)词(Ci),(?)别(Bie)人(Ren)可(Ke)以(Yi)给(Gei)你(Ni)面(Mian)子(Zi)这(Zhe)么(Me)说(Shuo)你(Ni),(?)但(Dan)你(Ni)不(Bu)能(Neng)这(Zhe)么(Me)说(Shuo)自(Zi)己(Ji)。(?)每(Mei)天(Tian)出(Chu)门(Men)前(Qian),(?)男(Nan)士(Shi)花(Hua)十(Shi)分(Fen)钟(Zhong)打(Da)理(Li)一(Yi)下(Xia)自(Zi)己(Ji),(?)穿(Chuan)一(Yi)身(Shen)干(Gan)净(Jing)的(De)衣(Yi)服(Fu)。(?)你(Ni)可(Ke)以(Yi)没(Mei)有(You)阿(A)玛(Ma)尼(Ni),(?)穿(Chuan)地(Di)摊(Tan)货(Huo)都(Du)可(Ke)以(Yi),(?)关(Guan)键(Jian)是(Shi)干(Gan)净(Jing)整(Zheng)洁(Jie)。(?)干(Gan)净(Jing)整(Zheng)洁(Jie)、(?)形(Xing)象(Xiang)良(Liang)好(Hao),(?)马(Ma)上(Shang)可(Ke)以(Yi)让(Rang)人(Ren)对(Dui)你(Ni)的(De)印(Yin)象(Xiang)提(Ti)高(Gao)N个(Ge)档(Dang)次(Ci)。(?)
记(Ji)得(De)几(Ji)年(Nian)前(Qian),(?)一(Yi)个(Ge)学(Xue)员(Yuan)过(Guo)来(Lai)找(Zhao)我(Wo),(?)说(Shuo):(?)“(?)老(Lao)师(Shi),(?)我(Wo)面(Mian)试(Shi)了(Liao)好(Hao)多(Duo)家(Jia)了(Liao)。(?)为(Wei)什(Shi)么(Me)都(Du)是(Shi)几(Ji)分(Fen)钟(Zhong)就(Jiu)被(Bei)人(Ren)打(Da)发(Fa)了(Liao)”(?)。(?)我(Wo)极(Ji)其(Qi)惊(Jing)讶(Ya)地(Di)看(Kan)着(Zhuo)他(Ta),(?)N天(Tian)没(Mei)有(You)洗(Xi)澡(Zao),(?)乱(Luan)糟(Zao)糟(Zao)的(De)头(Tou)发(Fa),(?)满(Man)脸(Lian)油(You)腻(Ni),(?)“(?)逢(Feng)头(Tou)垢(Gou)面(Mian)”(?)就(Jiu)是(Shi)形(Xing)容(Rong)他(Ta)的(De)。(?)那(Na)时(Shi)候(Hou)是(Shi)夏(Xia)天(Tian),(?)估(Gu)计(Ji)N天(Tian)没(Mei)洗(Xi)澡(Zao),(?)一(Yi)股(Gu)异(Yi)味(Wei)。(?)基(Ji)本(Ben)上(Shang)我(Wo)可(Ke)以(Yi)断(Duan)定(Ding),(?)这(Zhe)个(Ge)哥(Ge)们(Men)的(De)处(Chu)境(Jing)。(?)第(Di)一(Yi)、(?)没(Mei)朋(Peng)友(You),(?)无(Wu)论(Lun)男(Nan)女(Nu)。(?)没(Mei)有(You)人(Ren)会(Hui)愿(Yuan)意(Yi)跟(Gen)他(Ta)呆(Dai)的(De)距(Ju)离(Li)在(Zai)1米(Mi)以(Yi)内(Nei),(?)那(Na)真(Zhen)是(Shi)一(Yi)种(Zhong)折(Zhe)磨(Mo)。(?)第(Di)二(?)、(?)没(Mei)前(Qian)途(Tu)。(?)不(Bu)知(Zhi)道(Dao)哪(Na)个(Ge)瞎(Xia)眼(Yan)的(De)面(Mian)试(Shi)官(Guan)会(Hui)要(Yao)他(Ta)?(?)于(Yu)是(Shi),(?)我(Wo)很(Hen)残(Can)忍(Ren)的(De)告(Gao)诉(Su)他(Ta)现(Xian)在(Zai)的(De)处(Chu)境(Jing)。(?)
我(Wo)问(Wen)他(Ta):(?)“(?)你(Ni)个(Ge)人(Ren)卫(Wei)生(Sheng)是(Shi)不(Bu)是(Shi)太(Tai)差(Cha)了(Liao)。(?)这(Zhe)个(Ge)仪(Yi)表(Biao),(?)人(Ren)家(Jia)跟(Gen)你(Ni)说(Shuo)十(Shi)分(Fen)钟(Zhong)都(Du)是(Shi)给(Gei)你(Ni)天(Tian)大(Da)的(De)面(Mian)子(Zi)了(Liao)”(?)。(?)他(Ta)说(Shuo):(?)“(?)我(Wo)知(Zhi)道(Dao)卫(Wei)生(Sheng)有(You)点(Dian)差(Cha)。(?)但(Dan)我(Wo)觉(Jue)得(De)别(Bie)人(Ren)不(Bu)会(Hui)那(Na)么(Me)庸(Yong)俗(Su)的(De),(?)应(Ying)该(Gai)更(Geng)多(Duo)的(De)关(Guan)注(Zhu)我(Wo)的(De)技(Ji)术(Shu)和(He)我(Wo)的(De)人(Ren)品(Pin)”(?)。(?)
我(Wo)说(Shuo):(?)”(?)大(Da)家(Jia)时(Shi)间(Jian)都(Du)很(Hen)有(You)限(Xian),(?)都(Du)很(Hen)忙(Mang)。(?)第(Di)一(Yi)、(?)跟(Gen)你(Ni)技(Ji)术(Shu)水(Shui)平(Ping)相(Xiang)当(Dang)的(De)人(Ren)多(Duo)得(De)是(Shi),(?)没(Mei)必(Bi)要(Yao)花(Hua)时(Shi)间(Jian)透(Tou)过(Guo)你(Ni)这(Zhe)个(Ge)外(Wai)表(Biao)去(Qu)琢(Zhuo)磨(Mo)你(Ni)的(De)内(Nei)在(Zai)。(?)第(Di)二(?)、(?)你(Ni)太(Tai)自(Zi)我(Wo)为(Wei)中(Zhong)心(Xin)了(Liao)。(?)别(Bie)人(Ren)应(Ying)该(Gai)关(Guan)注(Zhu)你(Ni)的(De)内(Nei)在(Zai),(?)你(Ni)怎(Zen)么(Me)不(Bu)说(Shuo),(?)你(Ni)应(Ying)该(Gai)改(Gai)改(Gai)你(Ni)的(De)外(Wai)在(Zai)?(?)连(Lian)基(Ji)本(Ben)外(Wai)在(Zai)卫(Wei)生(Sheng)都(Du)没(Mei)有(You),(?)你(Ni)还(Huan)能(Neng)做(Zuo)什(Shi)么(Me)?(?)“(?)。(?)
他(Ta)仍(Reng)然(Ran)固(Gu)执(Zhi):(?)”(?)讲(Jiang)卫(Wei)生(Sheng)很(Hen)简(Jian)单(Dan),(?)我(Wo)每(Mei)天(Tian)花(Hua)点(Dian)时(Shi)间(Jian)整(Zheng)理(Li)一(Yi)下(Xia)就(Jiu)行(Xing)了(Liao)。(?)但(Dan)是(Shi)…(?)“(?)。(?)
我(Wo)打(Da)断(Duan)他(Ta)的(De)话(Hua):(?)”(?)先(Xian)回(Hui)去(Qu)洗(Xi)个(Ge)澡(Zao),(?)换(Huan)身(Shen)干(Gan)净(Jing)的(De)衣(Yi)服(Fu)。(?)你(Ni)这(Zhe)样(Yang)的(De)仪(Yi)表(Biao),(?)第(Di)一(Yi)、(?)不(Bu)尊(Zun)重(Zhong)你(Ni)自(Zi)己(Ji)。(?)第(Di)二(?)。(?)不(Bu)尊(Zun)重(Zhong)别(Bie)人(Ren)。(?)不(Bu)说(Shuo)工(Gong)作(Zuo)了(Liao),(?)你(Ni)这(Zhe)样(Yang)怎(Zen)么(Me)找(Zhao)女(Nu)朋(Peng)友(You)?(?)想(Xiang)改(Gai)变(Bian)你(Ni)的(De)处(Chu)境(Jing),(?)先(Xian)改(Gai)变(Bian)你(Ni)的(De)仪(Yi)表(Biao),(?)改(Gai)变(Bian)你(Ni)的(De)行(Xing)为(Wei)。(?)以(Yi)后(Hou),(?)每(Mei)天(Tian)早(Zao)上(Shang)花(Hua)十(Shi)分(Fen)钟(Zhong)整(Zheng)理(Li)一(Yi)下(Xia)自(Zi)己(Ji),(?)不(Bu)然(Ran),(?)你(Ni)完(Wan)蛋(Dan)了(Liao)“(?)
后(Hou)来(Lai),(?)就(Jiu)没(Mei)再(Zai)来(Lai)找(Zhao)我(Wo)。(?)一(Yi)年(Nian)后(Hou),(?)我(Wo)收(Shou)到(Dao)一(Yi)个(Ge)短(Duan)信(Xin):(?)“(?)高(Gao)老(Lao)师(Shi),(?)感(Gan)谢(Xie)你(Ni)的(De)醍(Ti)醐(Hu)灌(Guan)顶(Ding)。(?)以(Yi)前(Qian),(?)太(Tai)自(Zi)以(Yi)为(Wei)是(Shi),(?)以(Yi)为(Wei)世(Shi)界(Jie)都(Du)是(Shi)围(Wei)绕(Rao)我(Wo)的(De)。(?)那(Na)天(Tian)回(Hui)去(Qu)后(Hou),(?)我(Wo)就(Jiu)真(Zhen)的(De)“(?)洗(Xi)心(Xin)革(Ge)面(Mian)”(?)了(Liao),(?)每(Mei)天(Tian)早(Zao)上(Shang)整(Zheng)理(Li)一(Yi)下(Xia)外(Wai)表(Biao),(?)都(Du)不(Bu)用(Yong)十(Shi)分(Fen)钟(Zhong),(?)五(Wu)分(Fen)钟(Zhong)就(Jiu)够(Gou)了(Liao)。(?)后(Hou)来(Lai),(?)我(Wo)再(Zai)面(Mian)试(Shi)只(Zhi)花(Hua)了(Liao)一(Yi)周(Zhou)时(Shi)间(Jian)就(Jiu)上(Shang)班(Ban)了(Liao)。(?)这(Zhe)一(Yi)年(Nian)里(Li),(?)收(Shou)获(Huo)很(Hen)大(Da),(?)也(Ye)有(You)了(Liao)女(Nu)朋(Peng)友(You),(?)也(Ye)有(You)了(Liao)很(Hen)多(Duo)男(Nan)性(Xing)朋(Peng)友(You),(?)整(Zheng)个(Ge)人(Ren)生(Sheng)都(Du)感(Gan)觉(Jue)改(Gai)变(Bian)了(Liao)。(?)再(Zai)次(Ci)谢(Xie)谢(Xie)您(Nin)的(De)直(Zhi)言(Yan)不(Bu)讳(Hui)”(?)。(?)
②(?)有(You)正(Zheng)常(Chang)的(De)交(Jiao)流(Liu)习(Xi)惯(Guan)
一(Yi)个(Ge)正(Zheng)常(Chang)的(De)交(Jiao)流(Liu)习(Xi)惯(Guan)也(Ye)是(Shi)及(Ji)其(Qi)重(Zhong)要(Yao)的(De)。(?)正(Zheng)常(Chang)的(De)交(Jiao)流(Liu)习(Xi)惯(Guan)有(You)如(Ru)下(Xia)五(Wu)点(Dian):(?)
1.不(Bu)打(Da)断(Duan)对(Dui)方(Fang)说(Shuo)话(Hua)
这(Zhe)是(Shi)对(Dui)别(Bie)人(Ren)最(Zui)基(Ji)本(Ben)的(De)尊(Zun)重(Zhong),(?)把(Ba)话(Hua)让(Rang)别(Bie)人(Ren)讲(Jiang)完(Wan),(?)也(Ye)是(Shi)最(Zui)基(Ji)本(Ben)的(De)礼(Li)貌(Mao)。(?)
2. 说(Shuo)话(Hua)时(Shi),(?)盯(Ding)着(Zhuo)对(Dui)方(Fang)的(De)眼(Yan)睛(Jing)。(?)眼(Yan)神(Shen)坚(Jian)定(Ding),(?)不(Bu)飘(Piao)忽(Hu)
眼(Yan)睛(Jing)是(Shi)心(Xin)灵(Ling)的(De)窗(Chuang)户(Hu)。(?)跟(Gen)人(Ren)交(Jiao)流(Liu)时(Shi),(?)千(Qian)万(Wan)不(Bu)要(Yao)边(Bian)说(Shuo)话(Hua),(?)眼(Yan)睛(Jing)边(Bian)四(Si)处(Chu)看(Kan)。(?)要(Yao)紧(Jin)盯(Ding)着(Zhuo)对(Dui)方(Fang)的(De)眼(Yan)睛(Jing),(?)如(Ru)果(Guo)你(Ni)实(Shi)在(Zai)不(Bu)好(Hao)意(Yi)思(Si),(?)可(Ke)以(Yi)盯(Ding)着(Zhuo)鼻(Bi)梁(Liang)看(Kan)。(?)盯(Ding)着(Zhuo)鼻(Bi)梁(Liang),(?)在(Zai)对(Dui)方(Fang)看(Kan)来(Lai)也(Ye)是(Shi)盯(Ding)着(Zhuo)眼(Yan)睛(Jing)的(De),(?)效(Xiao)果(Guo)差(Cha)不(Bu)多(Duo)。(?)
3. 说(Shuo)话(Hua)时(Shi),(?)语(Yu)气(Qi)不(Bu)拖(Tuo)拉(La)。(?)
说(Shuo)话(Hua)语(Yu)气(Qi)肯(Ken)定(Ding),(?)有(You)自(Zi)信(Xin),(?)千(Qian)万(Wan)不(Bu)要(Yao)嗯(N)嗯(N)啊(A)啊(A)。(?)
4. 没(Mei)有(You)小(Xiao)动(Dong)作(Zuo),(?)但(Dan)可(Ke)以(Yi)适(Shi)当(Dang)增(Zeng)加(Jia)手(Shou)势(Shi)
抖(Dou)腿(Tui)、(?)搓(Cuo)手(Shou)、(?)动(Dong)手(Shou)碰(Peng)别(Bie)人(Ren)这(Zhe)都(Du)是(Shi)不(Bu)礼(Li)貌(Mao)的(De)习(Xi)惯(Guan)。(?)交(Jiao)流(Liu)时(Shi),(?)不(Bu)要(Yao)有(You)这(Zhe)些(Xie)不(Bu)良(Liang)动(Dong)作(Zuo),(?)但(Dan)是(Shi)可(Ke)以(Yi)适(Shi)当(Dang)增(Zeng)加(Jia)手(Shou)势(Shi),(?)让(Rang)你(Ni)的(De)交(Jiao)流(Liu)更(Geng)顺(Shun)畅(Chang)。(?)

5. 表(Biao)情(Qing)放(Fang)松(Song),(?)多(Duo)一(Yi)些(Xie)微(Wei)笑(Xiao)
不(Bu)要(Yao)将(Jiang)跟(Gen)别(Bie)人(Ren)的(De)交(Jiao)流(Liu)搞(Gao)得(De)太(Tai)过(Guo)正(Zheng)式(Shi),(?)放(Fang)松(Song)一(Yi)些(Xie),(?)多(Duo)一(Yi)些(Xie)微(Wei)笑(Xiao)。(?)
③(?)准(Zhun)时(Shi),(?)不(Bu)迟(Chi)到(Dao)
一(Yi)个(Ge)没(Mei)有(You)时(Shi)间(Jian)观(Guan)念(Nian)的(De)人(Ren),(?)怎(Zen)么(Me)可(Ke)能(Neng)做(Zuo)好(Hao)事(Shi)情(Qing)?(?)因(Yin)此(Ci),(?)面(Mian)试(Shi)不(Bu)迟(Chi)到(Dao)、(?)约(Yue)会(Hui)不(Bu)迟(Chi)到(Dao),(?)这(Zhe)都(Du)是(Shi)最(Zui)基(Ji)本(Ben)的(De)礼(Li)仪(Yi)。(?)而(?)且(Qie),(?)所(Suo)有(You)的(De)面(Mian)试(Shi)、(?)约(Yue)会(Hui)最(Zui)好(Hao)保(Bao)证(Zheng)提(Ti)前(Qian)十(Shi)分(Fen)钟(Zhong)到(Dao)达(Da)。(?)
但(Dan)是(Shi),(?)万(Wan)一(Yi)发(Fa)生(Sheng)了(Liao)迟(Chi)到(Dao)的(De)状(Zhuang)况(Kuang),(?)怎(Zen)么(Me)办(Ban)?(?)万(Wan)一(Yi)由(You)于(Yu)堵(Du)车(Che)等(Deng)原(Yuan)因(Yin)迟(Chi)到(Dao),(?)要(Yao)立(Li)刻(Ke)打(Da)电(Dian)话(Hua)联(Lian)系(Xi)对(Dui)方(Fang),(?)告(Gao)知(Zhi)对(Dui)方(Fang)原(Yuan)因(Yin),(?)并(Bing)表(Biao)示(Shi)抱(Bao)歉(Qian)。(?)
领(Ling)导(Dao)不(Bu)下(Xia)班(Ban),(?)你(Ni)也(Ye)不(Bu)走(Zou)
对(Dui)于(Yu)初(Chu)入(Ru)职(Zhi)场(Chang)的(De)你(Ni)来(Lai)说(Shuo),(?)非(Fei)常(Chang)有(You)必(Bi)要(Yao)让(Rang)领(Ling)导(Dao)看(Kan)到(Dao)你(Ni)的(De)工(Gong)作(Zuo)态(Tai)度(Du)。(?)你(Ni)可(Ke)以(Yi)工(Gong)作(Zuo)做(Zuo)的(De)慢(Man),(?)但(Dan)是(Shi)态(Tai)度(Du)必(Bi)须(Xu)端(Duan)正(Zheng),(?)至(Zhi)少(Shao)要(Yao)让(Rang)领(Ling)导(Dao)觉(Jue)得(De)你(Ni)是(Shi)可(Ke)造(Zao)之(Zhi)材(Cai)而(?)不(Bu)是(Shi)烂(Lan)泥(Ni)。(?)
如(Ru)果(Guo)你(Ni)的(De)直(Zhi)接(Jie)上(Shang)级(Ji)仍(Reng)然(Ran)在(Zai)加(Jia)班(Ban)工(Gong)作(Zuo),(?)你(Ni)非(Fei)常(Chang)有(You)必(Bi)要(Yao)保(Bao)持(Chi)同(Tong)步(Bu)。(?)如(Ru)果(Guo)能(Neng)帮(Bang)上(Shang)忙(Mang),(?)可(Ke)以(Yi)上(Shang)前(Qian)问(Wen)问(Wen)有(You)没(Mei)有(You)需(Xu)要(Yao)你(Ni)做(Zuo)的(De)事(Shi)情(Qing)。(?)如(Ru)果(Guo)暂(Zan)时(Shi)帮(Bang)不(Bu)上(Shang)忙(Mang),(?)可(Ke)以(Yi)坐(Zuo)在(Zai)电(Dian)脑(Nao)前(Qian)学(Xue)习(Xi)一(Yi)些(Xie)专(Zhuan)业(Ye)性(Xing)的(De)知(Zhi)识(Shi)。(?)能(Neng)做(Zuo)到(Dao)这(Zhe)一(Yi)点(Dian)的(De)人(Ren),(?)其(Qi)实(Shi)真(Zhen)的(De)不(Bu)多(Duo)。(?)做(Zuo)到(Dao)了(Liao),(?)也(Ye)基(Ji)本(Ben)就(Jiu)可(Ke)以(Yi)奠(Dian)定(Ding)你(Ni)工(Gong)作(Zuo)认(Ren)真(Zhen)、(?)愿(Yuan)意(Yi)付(Fu)出(Chu)的(De)形(Xing)象(Xiang),(?)为(Wei)以(Yi)后(Hou)创(Chuang)造(Zao)更(Geng)多(Duo)的(De)机(Ji)会(Hui)打(Da)下(Xia)基(Ji)础(Chu)。(?)
⑤(?)和(He)周(Zhou)围(Wei)的(De)同(Tong)事(Shi)打(Da)成(Cheng)一(Yi)片(Pian)
多(Duo)跟(Gen)同(Tong)事(Shi)交(Jiao)流(Liu)、(?)打(Da)成(Cheng)一(Yi)片(Pian),(?)是(Shi)职(Zhi)场(Chang)最(Zui)基(Ji)本(Ben)的(De)规(Gui)矩(Ju)。(?)这(Zhe)在(Zai)平(Ping)时(Shi)工(Gong)作(Zuo)和(He)休(Xiu)息(Xi)时(Shi),(?)一(Yi)定(Ding)要(Yao)多(Duo)注(Zhu)意(Yi)不(Bu)能(Neng)落(Luo)单(Dan)。(?)最(Zui)典(Dian)型(Xing)的(De):(?)中(Zhong)午(Wu)午(Wu)餐(Can)时(Shi)间(Jian),(?)一(Yi)定(Ding)跟(Gen)同(Tong)事(Shi)们(Men)一(Yi)起(Qi)吃(Chi)饭(Fan),(?)不(Bu)要(Yao)落(Luo)单(Dan)。(?)
⑥(?)有(You)困(Kun)难(Nan),(?)就(Jiu)马(Ma)上(Shang)寻(Xun)求(Qiu)帮(Bang)助(Zhu)
工(Gong)作(Zuo)中(Zhong)遇(Yu)到(Dao)问(Wen)题(Ti),(?)自(Zi)己(Ji)通(Tong)过(Guo)查(Cha)资(Zi)料(Liao)无(Wu)法(Fa)解(Jie)决(Jue)。(?)立(Li)刻(Ke)寻(Xun)求(Qiu)同(Tong)事(Shi)帮(Bang)忙(Mang),(?)千(Qian)万(Wan)不(Bu)要(Yao)因(Yin)为(Wei)不(Bu)好(Hao)意(Yi)思(Si)开(Kai)口(Kou)而(?)耽(Dan)误(Wu)工(Gong)作(Zuo)时(Shi)间(Jian),(?)影(Ying)响(Xiang)公(Gong)司(Si)整(Zheng)体(Ti)的(De)工(Gong)作(Zuo)进(Jin)度(Du)。(?)

⑦(?)有(You)责(Ze)任(Ren)心(Xin)、(?)事(Shi)情(Qing)到(Dao)我(Wo)这(Zhe)里(Li)结(Jie)束(Shu)
基(Ji)本(Ben)的(De)责(Ze)任(Ren)心(Xin)及(Ji)其(Qi)重(Zhong)要(Yao)!(?)千(Qian)万(Wan)不(Bu)要(Yao)以(Yi)分(Fen)工(Gong)清(Qing)楚(Chu)、(?)不(Bu)是(Shi)我(Wo)的(De)事(Shi)情(Qing)作(Zuo)为(Wei)推(Tui)脱(Tuo)的(De)借(Jie)口(Kou)。(?)在(Zai)大(Da)公(Gong)司(Si),(?)分(Fen)工(Gong)过(Guo)细(Xi)是(Shi)事(Shi)实(Shi),(?)但(Dan)是(Shi)你(Ni)也(Ye)经(Jing)常(Chang)需(Xu)要(Yao)参(Can)与(Yu)工(Gong)作(Zuo)之(Zhi)外(Wai)的(De)事(Shi)情(Qing)。(?)在(Zai)中(Zhong)小(Xiao)企(Qi)业(Ye)就(Jiu)更(Geng)不(Bu)用(Yong)说(Shuo)了(Liao)。(?)事(Shi)情(Qing)到(Dao)你(Ni)这(Zhe)里(Li),(?)你(Ni)能(Neng)把(Ba)他(Ta)解(Jie)决(Jue)掉(Diao),(?)本(Ben)身(Shen)就(Jiu)是(Shi)能(Neng)力(Li)的(De)锻(Duan)炼(Lian)和(He)提(Ti)升(Sheng),(?)是(Shi)让(Rang)自(Zi)己(Ji)升(Sheng)值(Zhi)的(De)机(Ji)会(Hui)。(?)如(Ru)果(Guo),(?)你(Ni)把(Ba)它(Ta)推(Tui)脱(Tuo)开(Kai),(?)不(Bu)仅(Jin)丧(Sang)失(Shi)了(Liao)锻(Duan)炼(Lian)的(De)机(Ji)会(Hui),(?)也(Ye)让(Rang)别(Bie)人(Ren)看(Kan)到(Dao)了(Liao)你(Ni)的(De)态(Tai)度(Du),(?)看(Kan)清(Qing)了(Liao)你(Ni)的(De)前(Qian)途(Tu)。(?)
以(Yi)前(Qian)遇(Yu)到(Dao)过(Guo)一(Yi)个(Ge)“(?)搬(Ban)椅(Yi)子(Zi)”(?)的(De)小(Xiao)事(Shi)情(Qing)。(?)一(Yi)次(Ci)开(Kai)会(Hui),(?)会(Hui)议(Yi)室(Shi)少(Shao)五(Wu)把(Ba)椅(Yi)子(Zi),(?)老(Lao)板(Ban)已(Yi)经(Jing)坐(Zuo)下(Xia),(?)说(Shuo):(?)“(?)多(Duo)了(Liao)5个(Ge)人(Ren),(?)少(Shao)5把(Ba)椅(Yi)子(Zi)”(?)。(?)负(Fu)责(Ze)安(An)排(Pai)会(Hui)议(Yi)的(De)人(Ren)竟(Jing)然(Ran)问(Wen):(?)“(?)让(Rang)我(Wo)去(Qu)搬(Ban)吗(Ma)?(?)”(?)他(Ta)也(Ye)许(Xu)是(Shi)想(Xiang)说(Shuo),(?)我(Wo)是(Shi)个(Ge)女(Nu)孩(Hai)哎(Ai),(?)搬(Ban)不(Bu)动(Dong)。(?)也(Ye)许(Xu)是(Shi)想(Xiang)说(Shuo),(?)我(Wo)是(Shi)个(Ge)经(Jing)理(Li)哎(Ai),(?)让(Rang)我(Wo)去(Qu)搬(Ban)椅(Yi)子(Zi),(?)多(Duo)没(Mei)面(Mian)子(Zi)。(?)总(Zong)之(Zhi),(?)他(Ta)说(Shuo)了(Liao)这(Zhe)5个(Ge)字(Zi)。(?)老(Lao)板(Ban)一(Yi)脸(Lian)错(Cuo)愕(E),(?)没(Mei)说(Shuo)什(Shi)么(Me)。(?)一(Yi)周(Zhou)后(Hou),(?)这(Zhe)个(Ge)女(Nu)孩(Hai)辞(Ci)职(Zhi)走(Zou)人(Ren)。(?)
工(Gong)作(Zuo)中(Zhong),(?)你(Ni)碰(Peng)到(Dao)了(Liao)就(Jiu)是(Shi)你(Ni)的(De)事(Shi)情(Qing)。(?)解(Jie)决(Jue)的(De)事(Shi)情(Qing)越(Yue)多(Duo),(?)你(Ni)得(De)到(Dao)的(De)锻(Duan)炼(Lian)机(Ji)会(Hui)越(Yue)多(Duo),(?)你(Ni)的(De)能(Neng)力(Li)就(Jiu)越(Yue)强(Qiang),(?)还(Huan)怕(Pa)没(Mei)有(You)升(Sheng)职(Zhi)和(He)发(Fa)展(Zhan)的(De)机(Ji)会(Hui)吗(Ma)?(?)
很(Hen)遗(Yi)憾(Han)的(De)是(Shi),(?)工(Gong)作(Zuo)中(Zhong)很(Hen)大(Da)一(Yi)部(Bu)分(Fen)都(Du)是(Shi)责(Ze)任(Ren)心(Xin)缺(Que)失(Shi)的(De)人(Ren)。(?)这(Zhe)也(Ye)很(Hen)幸(Xing)运(Yun),(?)这(Zhe)些(Xie)无(Wu)责(Ze)任(Ren)心(Xin)的(De)人(Ren)会(Hui)让(Rang)出(Chu)很(Hen)多(Duo)的(De)机(Ji)会(Hui)给(Gei)你(Ni)。(?)一(Yi)定(Ding)要(Yao)相(Xiang)信(Xin),(?)你(Ni)有(You)没(Mei)有(You)责(Ze)任(Ren)心(Xin),(?)你(Ni)的(De)上(Shang)级(Ji)、(?)你(Ni)的(De)女(Nu)朋(Peng)友(You)一(Yi)定(Ding)能(Neng)第(Di)一(Yi)时(Shi)间(Jian)知(Zhi)道(Dao)。(?)
⑧(?)学(Xue)习(Xi)的(De)心(Xin)态(Tai)对(Dui)待(Dai)同(Tong)事(Shi)和(He)上(Shang)级(Ji)、(?)包(Bao)容(Rong)的(De)心(Xin)态(Tai)对(Dui)待(Dai)同(Tong)事(Shi)和(He)下(Xia)级(Ji)
“(?)懂(Dong)得(De)配(Pei)合(He)才(Cai)能(Neng)有(You)领(Ling)导(Dao)力(Li)、(?)才(Cai)能(Neng)有(You)协(Xie)作(Zuo)力(Li)”(?),(?)对(Dui)待(Dai)你(Ni)的(De)上(Shang)级(Ji)一(Yi)定(Ding)要(Yao)抱(Bao)着(Zhuo)学(Xue)习(Xi)的(De)态(Tai)度(Du)。(?)他(Ta)能(Neng)做(Zuo)到(Dao)这(Zhe)个(Ge)位(Wei)置(Zhi),(?)肯(Ken)定(Ding)有(You)过(Guo)人(Ren)之(Zhi)处(Chu)、(?)肯(Ken)定(Ding)有(You)比(Bi)你(Ni)强(Qiang)的(De)地(Di)方(Fang)。(?)把(Ba)他(Ta)这(Zhe)些(Xie)优(You)点(Dian)学(Xue)习(Xi)到(Dao)位(Wei),(?)再(Zai)进(Jin)行(Xing)改(Gai)进(Jin),(?)青(Qing)出(Chu)于(Yu)蓝(Lan),(?)你(Ni)不(Bu)就(Jiu)有(You)机(Ji)会(Hui)了(Liao)吗(Ma)?(?)
工(Gong)作(Zuo)中(Zhong),(?)很(Hen)多(Duo)同(Tong)事(Shi)都(Du)会(Hui)私(Si)下(Xia)议(Yi)论(Lun)上(Shang)级(Ji),(?)觉(Jue)得(De)这(Zhe)个(Ge)决(Jue)定(Ding)好(Hao)傻(Sha)、(?)那(Na)个(Ge)决(Jue)定(Ding)好(Hao)呆(Dai)。(?)往(Wang)往(Wang)是(Shi)由(You)于(Yu)下(Xia)级(Ji)和(He)上(Shang)级(Ji)看(Kan)问(Wen)题(Ti)的(De)角(Jiao)度(Du)不(Bu)一(Yi)样(Yang)导(Dao)致(Zhi)的(De),(?)“(?)屁(Pi)股(Gu)决(Jue)定(Ding)脑(Nao)袋(Dai)”(?)。(?)那(Na)么(Me),(?)为(Wei)什(Shi)么(Me)不(Bu)尝(Chang)试(Shi)配(Pei)合(He)一(Yi)下(Xia)领(Ling)导(Dao)的(De)决(Jue)定(Ding)看(Kan)看(Kan)到(Dao)底(Di)行(Xing)不(Bu)行(Xing)呢(Ne)?(?)或(Huo)者(Zhe),(?)你(Ni)觉(Jue)得(De)确(Que)实(Shi)有(You)问(Wen)题(Ti),(?)完(Wan)全(Quan)可(Ke)以(Yi)私(Si)下(Xia)跟(Gen)领(Ling)导(Dao)说(Shuo)说(Shuo)你(Ni)的(De)感(Gan)想(Xiang)。(?)在(Zai)企(Qi)业(Ye)中(Zhong)的(De)人(Ren)事(Shi)关(Guan)系(Xi)要(Yao)比(Bi)政(Zheng)府(Fu)关(Guan)系(Xi)简(Jian)单(Dan)的(De)多(Duo),(?)你(Ni)私(Si)下(Xia)有(You)礼(Li)貌(Mao)的(De)提(Ti)出(Chu)来(Lai)你(Ni)的(De)意(Yi)见(Jian),(?)往(Wang)往(Wang)还(Huan)能(Neng)博(Bo)得(De)上(Shang)级(Ji)的(De)好(Hao)感(Gan)。(?)
⑨(?)忠(Zhong)诚(Cheng)
如(Ru)果(Guo)你(Ni)不(Bu)忠(Zhong)于(Yu)你(Ni)的(De)公(Gong)司(Si),(?)私(Si)下(Xia)贪(Tan)污(Wu)公(Gong)款(Kuan)、(?)私(Si)下(Xia)为(Wei)其(Qi)他(Ta)公(Gong)司(Si)牟(Mou)利(Li)。(?)一(Yi)旦(Dan)有(You)这(Zhe)些(Xie)行(Xing)为(Wei),(?)基(Ji)本(Ben)上(Shang)你(Ni)就(Jiu)为(Wei)人(Ren)所(Suo)不(Bu)齿(Chi)了(Liao)。(?)在(Zai)公(Gong)司(Si)你(Ni)肯(Ken)定(Ding)不(Bu)会(Hui)有(You)好(Hao)的(De)前(Qian)途(Tu),(?)其(Qi)他(Ta)公(Gong)司(Si)看(Kan)你(Ni)这(Zhe)样(Yang),(?)无(Wu)非(Fei)就(Jiu)是(Shi)利(Li)用(Yong)一(Yi)下(Xia)你(Ni),(?)但(Dan)绝(Jue)对(Dui)不(Bu)可(Ke)能(Neng)重(Zhong)用(Yong)你(Ni)。(?)
永(Yong)远(Yuan)不(Bu)要(Yao)以(Yi)自(Zi)己(Ji)的(De)小(Xiao)聪(Cong)明(Ming)耍(Shua)弄(Nong)你(Ni)的(De)上(Shang)级(Ji)和(He)你(Ni)的(De)同(Tong)事(Shi),(?)这(Zhe)个(Ge)世(Shi)界(Jie),(?)智(Zhi)商(Shang)都(Du)差(Cha)不(Bu)多(Duo),(?)谁(Shui)比(Bi)谁(Shui)笨(Ben)呀(Ya)?(?)你(Ni)可(Ke)以(Yi)蒙(Meng)他(Ta)一(Yi)次(Ci),(?)两(Liang)次(Ci),(?)不(Bu)可(Ke)能(Neng)蒙(Meng)他(Ta)三(San)次(Ci)、(?)四(Si)次(Ci)。(?)就(Jiu)像(Xiang)你(Ni)考(Kao)试(Shi)作(Zuo)弊(Bi)一(Yi)样(Yang),(?)自(Zi)以(Yi)为(Wei)很(Hen)聪(Cong)明(Ming),(?)但(Dan)如(Ru)果(Guo)你(Ni)坐(Zuo)在(Zai)讲(Jiang)台(Tai)上(Shang)监(Jian)考(Kao),(?)你(Ni)就(Jiu)明(Ming)白(Bai),(?)下(Xia)面(Mian)的(De)动(Dong)作(Zuo)一(Yi)览(Lan)无(Wu)余(Yu),(?)更(Geng)多(Duo)的(De)时(Shi)候(Hou),(?)只(Zhi)是(Shi)老(Lao)师(Shi)不(Bu)愿(Yuan)意(Yi)去(Qu)把(Ba)你(Ni)拎(Ling)出(Chu)来(Lai)而(?)已(Yi)。(?)
所(Suo)以(Yi),(?)职(Zhi)场(Chang)上(Shang),(?)忠(Zhong)诚(Cheng)是(Shi)人(Ren)的(De)最(Zui)基(Ji)本(Ben)的(De)素(Su)养(Yang)。(?)
⑩(?)办(Ban)法(Fa)总(Zong)比(Bi)问(Wen)题(Ti)多(Duo),(?)积(Ji)极(Ji)的(De)心(Xin)态(Tai)面(Mian)对(Dui)问(Wen)题(Ti)
工(Gong)作(Zuo)中(Zhong)遇(Yu)到(Dao)问(Wen)题(Ti),(?)不(Bu)要(Yao)害(Hai)怕(Pa)。(?)工(Gong)作(Zuo)就(Jiu)是(Shi)解(Jie)决(Jue)一(Yi)个(Ge)个(Ge)问(Wen)题(Ti)呀(Ya)!(?)既(Ji)然(Ran)是(Shi)问(Wen)题(Ti),(?)就(Jiu)有(You)应(Ying)对(Dui)的(De)办(Ban)法(Fa)。(?)想(Xiang)尽(Jin)办(Ban)法(Fa),(?)总(Zong)能(Neng)解(Jie)决(Jue)。(?)不(Bu)要(Yao)遇(Yu)到(Dao)问(Wen)题(Ti)就(Jiu)牢(Lao)骚(Sao)满(Man)腹(Fu):(?)“(?)完(Wan)蛋(Dan)了(Liao)。(?)这(Zhe)绝(Jue)对(Dui)不(Bu)能(Neng)解(Jie)决(Jue)”(?)。(?)发(Fa)牢(Lao)骚(Sao)的(De)人(Ren),(?)在(Zai)公(Gong)司(Si)里(Li)面(Mian)不(Bu)仅(Jin)毫(Hao)无(Wu)价(Jia)值(Zhi),(?)而(?)且(Qie)是(Shi)负(Fu)价(Jia)值(Zhi)。(?)
2.公(Gong)司(Si)调(Diao)研(Yan)
对(Dui)于(Yu)你(Ni)即(Ji)将(Jiang)要(Yao)面(Mian)试(Shi)的(De)公(Gong)司(Si),(?)一(Yi)定(Ding)要(Yao)做(Zuo)到(Dao)“(?)知(Zhi)己(Ji)知(Zhi)彼(Bi)”(?),(?)在(Zai)面(Mian)试(Shi)前(Qian)做(Zuo)充(Chong)分(Fen)的(De)调(Diao)研(Yan)。(?)这(Zhe)样(Yang)既(Ji)能(Neng)让(Rang)你(Ni)在(Zai)面(Mian)试(Shi)的(De)时(Shi)候(Hou)与(Yu)HR有(You)充(Chong)分(Fen)的(De)互(Hu)动(Dong)机(Ji)会(Hui),(?)也(Ye)可(Ke)以(Yi)避(Bi)免(Mian)很(Hen)多(Duo)无(Wu)良(Liang)公(Gong)司(Si)的(De)“(?)坑(Keng)”(?)。(?)
做(Zuo)公(Gong)司(Si)调(Diao)研(Yan)需(Xu)要(Yao)做(Zuo)到(Dao)如(Ru)下(Xia)几(Ji)个(Ge)关(Guan)键(Jian)点(Dian):(?)
1. 公(Gong)司(Si)发(Fa)展(Zhan)的(De)历(Li)程(Cheng)
2. 公(Gong)司(Si)的(De)产(Chan)品(Pin)或(Huo)者(Zhe)项(Xiang)目(Mu)以(Yi)及(Ji)周(Zhou)期(Qi)
3. 公(Gong)司(Si)下(Xia)一(Yi)步(Bu)的(De)发(Fa)展(Zhan)规(Gui)划(Hua)
4. 公(Gong)司(Si)开(Kai)发(Fa)使(Shi)用(Yong)的(De)技(Ji)术(Shu)架(Jia)构(Gou)
5. 公(Gong)司(Si)跟(Gen)开(Kai)发(Fa)有(You)关(Guan)的(De)组(Zu)织(Zhi)结(Jie)构(Gou)((?)开(Kai)发(Fa)部(Bu)、(?)测(Ce)试(Shi)部(Bu)、(?)运(Yun)维(Wei)部(Bu)、(?)产(Chan)品(Pin)部(Bu)等(Deng))(?)
3.项(Xiang)目(Mu)调(Diao)研(Yan)
对(Dui)于(Yu)企(Qi)业(Ye)来(Lai)说(Shuo),(?)会(Hui)关(Guan)注(Zhu)你(Ni)大(Da)学(Xue)期(Qi)间(Jian)成(Cheng)绩(Ji)单(Dan)呢(Ne),(?)还(Huan)是(Shi)关(Guan)注(Zhu)你(Ni)的(De)项(Xiang)目(Mu)经(Jing)验(Yan)?(?)答(Da)案(An)显(Xian)然(Ran)是(Shi):(?)项(Xiang)目(Mu)经(Jing)验(Yan)。(?)甚(Shen)至(Zhi)在(Zai)很(Hen)多(Duo)研(Yan)究(Jiu)生(Sheng)复(Fu)试(Shi)时(Shi)候(Hou),(?)导(Dao)师(Shi)看(Kan)到(Dao)你(Ni)的(De)简(Jian)历(Li)上(Shang)写(Xie)了(Liao)很(Hen)多(Duo)项(Xiang)目(Mu)经(Jing)验(Yan),(?)也(Ye)会(Hui)极(Ji)大(Da)的(De)增(Zeng)加(Jia)你(Ni)的(De)分(Fen)数(Shu)。(?)五(Wu)年(Nian)前(Qian),(?)我(Wo)的(De)一(Yi)个(Ge)学(Xue)生(Sheng)在(Zai)尚(Shang)学(Xue)堂(Tang)培(Pei)训(Xun)时(Shi)的(De)项(Xiang)目(Mu)写(Xie)在(Zai)研(Yan)究(Jiu)生(Sheng)复(Fu)试(Shi)简(Jian)历(Li)上(Shang),(?)被(Bei)导(Dao)师(Shi)问(Wen)了(Liao)又(You)问(Wen),(?)最(Zui)终(Zhong)被(Bei)中(Zhong)科(Ke)院(Yuan)计(Ji)算(Suan)所(Suo)录(Lu)取(Qu)。(?)这(Zhe)就(Jiu)是(Shi)项(Xiang)目(Mu)的(De)力(Li)量(Liang)。(?)
因(Yin)此(Ci),(?)前(Qian)期(Qi)的(De)项(Xiang)目(Mu)准(Zhun)备(Bei)会(Hui)让(Rang)你(Ni)的(De)简(Jian)历(Li)更(Geng)加(Jia)丰(Feng)富(Fu),(?)赢(Ying)得(De)更(Geng)多(Duo)的(De)机(Ji)会(Hui)。(?)一(Yi)个(Ge)小(Xiao)小(Xiao)的(De)机(Ji)会(Hui)也(Ye)许(Xu)就(Jiu)能(Neng)完(Wan)全(Quan)改(Gai)变(Bian)你(Ni)的(De)命(Ming)运(Yun)。(?)
对(Dui)于(Yu)项(Xiang)目(Mu)调(Diao)研(Yan),(?)大(Da)家(Jia)要(Yao)避(Bi)免(Mian)误(Wu)区(Qu)。(?)不(Bu)是(Shi)说(Shuo),(?)一(Yi)定(Ding)要(Yao)将(Jiang)项(Xiang)目(Mu)的(De)商(Shang)业(Ye)源(Yuan)码(Ma)搞(Gao)到(Dao)手(Shou),(?)通(Tong)读(Du)一(Yi)遍(Bian)才(Cai)算(Suan)是(Shi)完(Wan)成(Cheng)调(Diao)研(Yan);(?)也(Ye)不(Bu)是(Shi)说(Shuo),(?)一(Yi)定(Ding)要(Yao)把(Ba)这(Zhe)个(Ge)项(Xiang)目(Mu)代(Dai)码(Ma)写(Xie)一(Yi)遍(Bian);(?)其(Qi)实(Shi),(?)项(Xiang)目(Mu)调(Diao)研(Yan)的(De)本(Ben)质(Zhi)是(Shi)让(Rang)你(Ni)开(Kai)阔(Kuo)眼(Yan)界(Jie),(?)增(Zeng)加(Jia)和(He)“(?)面(Mian)试(Shi)官(Guan)”(?)的(De)谈(Tan)资(Zi)。(?)
项(Xiang)目(Mu)调(Diao)研(Yan)最(Zui)重(Zhong)要(Yao)目(Mu)的(De)是(Shi)要(Yao)让(Rang)你(Ni)明(Ming)白(Bai)某(Mou)个(Ge)项(Xiang)目(Mu)开(Kai)发(Fa)的(De)流(Liu)程(Cheng)、(?)某(Mou)个(Ge)项(Xiang)目(Mu)的(De)内(Nei)在(Zai)逻(Luo)辑(Ji),(?)此(Ci)类(Lei)项(Xiang)目(Mu)常(Chang)见(Jian)的(De)问(Wen)题(Ti),(?)开(Kai)阔(Kuo)眼(Yan)界(Jie),(?)最(Zui)终(Zhong)真(Zhen)正(Zheng)理(Li)解(Jie)项(Xiang)目(Mu)开(Kai)发(Fa)的(De)整(Zheng)体(Ti)流(Liu)程(Cheng)。(?)
项(Xiang)目(Mu)调(Diao)研(Yan)关(Guan)键(Jian)是(Shi)要(Yao)做(Zuo)到(Dao)有(You)心(Xin)!(?)现(Xian)代(Dai)互(Hu)联(Lian)网(Wang)这(Zhe)么(Me)发(Fa)达(Da),(?)任(Ren)何(He)资(Zi)料(Liao)都(Du)可(Ke)以(Yi)在(Zai)网(Wang)络(Luo)上(Shang)找(Zhao)到(Dao)。(?)我(Wo)可(Ke)以(Yi)给(Gei)大(Da)家(Jia)提(Ti)供(Gong)各(Ge)种(Zhong)项(Xiang)目(Mu)调(Diao)研(Yan)的(De)思(Si)路(Lu):(?)
A. 打(Da)开(Kai)各(Ge)种(Zhong)网(Wang)站(Zhan),(?)其(Qi)实(Shi)就(Jiu)是(Shi)一(Yi)个(Ge)个(Ge)项(Xiang)目(Mu)。(?)
B. 打(Da)开(Kai)相(Xiang)关(Guan)软(Ruan)件(Jian)公(Gong)司(Si),(?)下(Xia)载(Zai)他(Ta)们(Men)软(Ruan)件(Jian)的(De)试(Shi)用(Yong)版(Ban),(?)就(Jiu)可(Ke)以(Yi)去(Qu)研(Yan)究(Jiu)他(Ta)的(De)内(Nei)在(Zai)逻(Luo)辑(Ji)。(?)
C. 下(Xia)载(Zai)各(Ge)种(Zhong)app,(?)也(Ye)是(Shi)一(Yi)个(Ge)个(Ge)完(Wan)整(Zheng)的(De)项(Xiang)目(Mu)。(?)
D. 各(Ge)种(Zhong)开(Kai)源(Yuan)网(Wang)站(Zhan)下(Xia)载(Zai)的(De)项(Xiang)目(Mu),(?)也(Ye)可(Ke)以(Yi)作(Zuo)为(Wei)研(Yan)究(Jiu)的(De)对(Dui)象(Xiang)。(?)
E. 大(Da)胆(Dan)出(Chu)去(Qu),(?)参(Can)加(Jia)一(Yi)些(Xie)创(Chuang)业(Ye)、(?)创(Chuang)意(Yi)相(Xiang)关(Guan)的(De)活(Huo)动(Dong)。(?)比(Bi)如(Ru):(?)中(Zhong)关(Guan)村(Cun)创(Chuang)业(Ye)一(Yi)条(Tiao)街(Jie)的(De)各(Ge)种(Zhong)会(Hui)议(Yi)。(?)
4.基(Ji)础(Chu)技(Ji)术(Shu)准(Zhun)备(Bei)
就(Jiu)业(Ye)前(Qian),(?)大(Da)家(Jia)需(Xu)要(Yao)将(Jiang)自(Zi)己(Ji)平(Ping)时(Shi)培(Pei)训(Xun)期(Qi)间(Jian)学(Xue)习(Xi)的(De)技(Ji)术(Shu)捋(Luo)一(Yi)遍(Bian),(?)全(Quan)面(Mian)复(Fu)习(Xi)一(Yi)遍(Bian)。(?)临(Lin)阵(Zhen)磨(Mo)枪(Qiang)仍(Reng)然(Ran)是(Shi)最(Zui)重(Zhong)要(Yao)的(De)应(Ying)急(Ji)手(Shou)段(Duan),(?)面(Mian)试(Shi)前(Qian)的(De)准(Zhun)备(Bei)就(Jiu)像(Xiang)高(Gao)考(Kao)前(Qian)一(Yi)样(Yang),(?)越(Yue)充(Chong)分(Fen)越(Yue)好(Hao)。(?)
但(Dan)是(Shi),(?)需(Xu)要(Yao)记(Ji)住(Zhu)如(Ru)下(Xia)两(Liang)点(Dian):(?)
1. 对(Dui)于(Yu)一(Yi)些(Xie)常(Chang)见(Jian)的(De)面(Mian)试(Shi)和(He)笔(Bi)试(Shi)问(Wen)题(Ti),(?)一(Yi)定(Ding)要(Yao)反(Fan)复(Fu)练(Lian)习(Xi),(?)最(Zui)好(Hao)能(Neng)背(Bei)下(Xia)来(Lai)。(?)
2. 对(Dui)于(Yu)一(Yi)些(Xie)工(Gong)作(Zuo)和(He)面(Mian)试(Shi)不(Bu)常(Chang)见(Jian)的(De)问(Wen)题(Ti),(?)记(Ji)住(Zhu)结(Jie)论(Lun)即(Ji)可(Ke),(?)不(Bu)要(Yao)纠(Jiu)结(Jie)。(?)不(Bu)要(Yao)因(Yin)为(Wei)一(Yi)些(Xie)小(Xiao)概(Gai)率(Lu)的(De)问(Wen)题(Ti)而(?)浪(Lang)费(Fei)太(Tai)多(Duo)的(De)时(Shi)间(Jian)。(?)毕(Bi)竟(Jing),(?)任(Ren)何(He)人(Ren)都(Du)没(Mei)有(You)必(Bi)要(Yao)有(You)能(Neng)力(Li)可(Ke)以(Yi)应(Ying)对(Dui)所(Suo)有(You)的(De)问(Wen)题(Ti),(?)只(Zhi)要(Yao)能(Neng)应(Ying)对(Dui)常(Chang)见(Jian)的(De)问(Wen)题(Ti)足(Zu)以(Yi)实(Shi)现(Xian)就(Jiu)业(Ye)。(?)
5.热(Re)门(Men)技(Ji)术(Shu)准(Zhun)备(Bei)
软(Ruan)件(Jian)行(Xing)业(Ye)技(Ji)术(Shu)更(Geng)新(Xin)较(Jiao)快(Kuai),(?)经(Jing)常(Chang)会(Hui)出(Chu)现(Xian)新(Xin)的(De)技(Ji)术(Shu)。(?)但(Dan)是(Shi),(?)这(Zhe)些(Xie)技(Ji)术(Shu)通(Tong)常(Chang)不(Bu)会(Hui)马(Ma)上(Shang)应(Ying)用(Yong)于(Yu)企(Qi)业(Ye)中(Zhong),(?)企(Qi)业(Ye)一(Yi)般(Ban)都(Du)会(Hui)使(Shi)用(Yong)稳(Wen)定(Ding)和(He)大(Da)众(Zhong)化(Hua)的(De)技(Ji)术(Shu)。(?)所(Suo)以(Yi),(?)企(Qi)业(Ye)应(Ying)用(Yong)技(Ji)术(Shu)通(Tong)常(Chang)都(Du)有(You)2-3年(Nian)的(De)滞(Zhi)后(Hou)期(Qi)。(?)
身(Shen)处(Chu)软(Ruan)件(Jian)开(Kai)发(Fa)第(Di)一(Yi)线(Xian)的(De)人(Ren)往(Wang)往(Wang)对(Dui)新(Xin)技(Ji)术(Shu)学(Xue)习(Xi)也(Ye)会(Hui)滞(Zhi)后(Hou),(?)毕(Bi)竟(Jing)企(Qi)业(Ye)不(Bu)用(Yong),(?)大(Da)家(Jia)还(Huan)是(Shi)不(Bu)愿(Yuan)意(Yi)多(Duo)花(Hua)时(Shi)间(Jian)和(He)精(Jing)力(Li)去(Qu)学(Xue)习(Xi)。(?)但(Dan)是(Shi),(?)作(Zuo)为(Wei)程(Cheng)序(Xu)猿(Yuan)往(Wang)往(Wang)对(Dui)这(Zhe)些(Xie)技(Ji)术(Shu)保(Bao)留(Liu)了(Liao)极(Ji)大(Da)的(De)好(Hao)奇(Qi)心(Xin)。(?)绝(Jue)大(Da)部(Bu)分(Fen)程(Cheng)序(Xu)猿(Yuan)会(Hui)心(Xin)想(Xiang):(?)“(?)等(Deng)我(Wo)有(You)时(Shi)间(Jian),(?)我(Wo)一(Yi)定(Ding)要(Yao)学(Xue)习(Xi)一(Yi)下(Xia)”(?)。(?)
这(Zhe)种(Zhong)滞(Zhi)后(Hou)性(Xing),(?)就(Jiu)是(Shi)刚(Gang)进(Jin)入(Ru)软(Ruan)件(Jian)行(Xing)业(Ye)的(De)新(Xin)人(Ren)的(De)机(Ji)会(Hui)。(?)如(Ru)果(Guo)你(Ni)是(Shi)做(Zuo)IOS开(Kai)发(Fa)的(De),(?)简(Jian)历(Li)上(Shang)写(Xie)明(Ming)会(Hui)使(Shi)用(Yong)swift语(Yu)言(Yan)开(Kai)发(Fa),(?)就(Jiu)会(Hui)引(Yin)起(Qi)一(Yi)直(Zhi)使(Shi)用(Yong)Object-C开(Kai)发(Fa)项(Xiang)目(Mu)的(De)面(Mian)试(Shi)官(Guan)极(Ji)大(Da)的(De)兴(Xing)趣(Qu)。(?)如(Ru)果(Guo)你(Ni)是(Shi)做(Zuo)JAVA开(Kai)发(Fa)的(De),(?)会(Hui)使(Shi)用(Yong)微(Wei)服(Fu)务(Wu)架(Jia)构(Gou),(?)了(Liao)解(Jie)大(Da)数(Shu)据(Ju)相(Xiang)关(Guan)的(De)技(Ji)术(Shu),(?)也(Ye)会(Hui)引(Yin)起(Qi)面(Mian)试(Shi)官(Guan)较(Jiao)大(Da)的(De)兴(Xing)趣(Qu)。(?)而(?)且(Qie),(?)更(Geng)有(You)意(Yi)思(Si)的(De)是(Shi),(?)你(Ni)不(Bu)需(Xu)要(Yao)精(Jing)通(Tong)这(Zhe)些(Xie)新(Xin)技(Ji)术(Shu),(?)只(Zhi)要(Yao)了(Liao)解(Jie)即(Ji)可(Ke)。(?)就(Jiu)能(Neng)很(Hen)快(Kuai)的(De)引(Yin)起(Qi)面(Mian)试(Shi)官(Guan)的(De)兴(Xing)趣(Qu),(?)毕(Bi)竟(Jing)“(?)好(Hao)奇(Qi)心(Xin)”(?)是(Shi)程(Cheng)序(Xu)猿(Yuan)最(Zui)大(Da)的(De)特(Te)点(Dian)。(?)
对(Dui)于(Yu)热(Re)门(Men)新(Xin)技(Ji)术(Shu)的(De)了(Liao)解(Jie),(?)可(Ke)以(Yi)明(Ming)明(Ming)白(Bai)白(Bai)的(De)告(Gao)诉(Su)对(Dui)方(Fang),(?)你(Ni)就(Jiu)是(Shi)一(Yi)个(Ge)喜(Xi)欢(Huan)技(Ji)术(Shu)、(?)喜(Xi)欢(Huan)钻(Zuan)研(Yan)的(De)典(Dian)型(Xing)的(De)程(Cheng)序(Xu)猿(Yuan)。(?)这(Zhe)会(Hui)给(Gei)你(Ni)起(Qi)到(Dao)加(Jia)薪(Xin)加(Jia)分(Fen)的(De)效(Xiao)果(Guo)。(?)”(?) 1.5倍(Bei)薪(Xin)水(Shui)定(Ding)律(Lu)”(?)就(Jiu)会(Hui)起(Qi)到(Dao)作(Zuo)用(Yong)。(?)
6.更(Geng)高(Gao)端(Duan)技(Ji)术(Shu)准(Zhun)备(Bei)
技(Ji)术(Shu)行(Xing)业(Ye)是(Shi)一(Yi)个(Ge)非(Fei)常(Chang)干(Gan)净(Jing)的(De)行(Xing)业(Ye),(?)付(Fu)出(Chu)和(He)得(De)到(Dao)基(Ji)本(Ben)是(Shi)正(Zheng)比(Bi)关(Guan)系(Xi),(?)你(Ni)不(Bu)需(Xu)要(Yao)靠(Kao)关(Guan)系(Xi)靠(Kao)背(Bei)景(Jing)。(?)作(Zuo)为(Wei)程(Cheng)序(Xu)猿(Yuan),(?)学(Xue)习(Xi)就(Jiu)是(Shi)本(Ben)能(Neng),(?)学(Xue)习(Xi)跟(Gen)你(Ni)的(De)薪(Xin)水(Shui)是(Shi)成(Cheng)正(Zheng)比(Bi)的(De)!(?)学(Xue)习(Xi)越(Yue)多(Duo),(?)薪(Xin)水(Shui)越(Yue)高(Gao)。(?)作(Zuo)为(Wei)一(Yi)个(Ge)专(Zhuan)业(Ye)的(De)程(Cheng)序(Xu)猿(Yuan),(?)必(Bi)须(Xu)做(Zuo)好(Hao)进(Jin)一(Yi)步(Bu)提(Ti)升(Sheng)的(De)准(Zhun)备(Bei)。(?)千(Qian)万(Wan)不(Bu)能(Neng)有(You)已(Yi)经(Jing)到(Dao)头(Tou)的(De)想(Xiang)法(Fa)!(?)一(Yi)个(Ge)二(?)三(San)十(Shi)岁(Sui),(?)刚(Gang)入(Ru)行(Xing)的(De)年(Nian)轻(Qing)人(Ren),(?)如(Ru)果(Guo)产(Chan)生(Sheng)了(Liao)已(Yi)经(Jing)学(Xue)够(Gou)的(De)想(Xiang)法(Fa),(?)那(Na)说(Shuo)明(Ming)你(Ni)的(De)前(Qian)途(Tu)也(Ye)到(Dao)尽(Jin)头(Tou)了(Liao)!(?)”(?)观(Guan)念(Nian)决(Jue)定(Ding)行(Xing)动(Dong),(?)最(Zui)终(Zhong)决(Jue)定(Ding)命(Ming)运(Yun)”(?)。(?)
对(Dui)于(Yu)本(Ben)专(Zhuan)业(Ye)更(Geng)加(Jia)高(Gao)端(Duan)的(De)技(Ji)术(Shu),(?)一(Yi)定(Ding)要(Yao)保(Bao)持(Chi)学(Xue)习(Xi)的(De)心(Xin)态(Tai)。(?)即(Ji)使(Shi),(?)这(Zhe)些(Xie)技(Ji)术(Shu)暂(Zan)时(Shi)用(Yong)不(Bu)到(Dao)。(?)对(Dui)于(Yu)开(Kai)阔(Kuo)眼(Yan)界(Jie),(?)提(Ti)高(Gao)思(Si)维(Wei)境(Jing)界(Jie),(?)应(Ying)对(Dui)面(Mian)试(Shi)都(Du)是(Shi)极(Ji)好(Hao)的(De)。(?)掌(Zhang)握(Wo)或(Huo)了(Liao)解(Jie)本(Ben)专(Zhuan)业(Ye)更(Geng)高(Gao)端(Duan)的(De)技(Ji)术(Shu),(?)加(Jia)薪(Xin)加(Jia)分(Fen)效(Xiao)果(Guo)也(Ye)很(Hen)明(Ming)显(Xian)。(?)“(?)1.5倍(Bei)薪(Xin)水(Shui)定(Ding)律(Lu)”(?)效(Xiao)用(Yong)也(Ye)非(Fei)常(Chang)明(Ming)显(Xian)。(?)
7.本(Ben)专(Zhuan)业(Ye)之(Zhi)外(Wai)的(De)技(Ji)术(Shu)准(Zhun)备(Bei)
很(Hen)多(Duo)人(Ren)会(Hui)以(Yi):(?)“(?)专(Zhuan)业(Ye)贵(Gui)精(Jing)不(Bu)贵(Gui)多(Duo)”(?),(?)“(?)一(Yi)招(Zhao)鲜(Xian)吃(Chi)遍(Bian)天(Tian)”(?),(?)作(Zuo)为(Wei)不(Bu)学(Xue)习(Xi)其(Qi)他(Ta)技(Ji)术(Shu)的(De)借(Jie)口(Kou)。(?)这(Zhe)些(Xie)话(Hua)没(Mei)有(You)错(Cuo),(?)我(Wo)也(Ye)赞(Zan)成(Cheng)这(Zhe)些(Xie)话(Hua)。(?)但(Dan)是(Shi),(?)这(Zhe)些(Xie)话(Hua)不(Bu)能(Neng)作(Zuo)为(Wei)不(Bu)学(Xue)习(Xi)的(De)理(Li)由(You)。(?)
一(Yi)个(Ge)学(Xue)习(Xi)安(An)卓(Zhuo)、(?)IOS开(Kai)发(Fa)的(De)程(Cheng)序(Xu)猿(Yuan)当(Dang)然(Ran)最(Zui)重(Zhong)要(Yao)的(De)就(Jiu)是(Shi)掌(Zhang)握(Wo)本(Ben)专(Zhuan)业(Ye)的(De)开(Kai)发(Fa)技(Ji)能(Neng),(?)但(Dan)是(Shi)如(Ru)果(Guo)你(Ni)还(Huan)了(Liao)解(Jie)后(Hou)台(Tai)服(Fu)务(Wu)器(Qi)程(Cheng)序(Xu)的(De)开(Kai)发(Fa),(?)这(Zhe)就(Jiu)是(Shi)你(Ni)不(Bu)同(Tong)于(Yu)普(Pu)通(Tong)程(Cheng)序(Xu)猿(Yuan)的(De)优(You)势(Shi)。(?)
一(Yi)个(Ge)学(Xue)习(Xi)JAVAEE开(Kai)发(Fa)的(De)程(Cheng)序(Xu)猿(Yuan),(?)学(Xue)好(Hao)JAVAEE是(Shi)最(Zui)重(Zhong)要(Yao)的(De),(?)再(Zai)了(Liao)解(Jie)大(Da)数(Shu)据(Ju)开(Kai)发(Fa)的(De)知(Zhi)识(Shi)、(?)人(Ren)工(Gong)智(Zhi)能(Neng)开(Kai)发(Fa)的(De)知(Zhi)识(Shi),(?) 也(Ye)可(Ke)以(Yi)触(Chu)类(Lei)旁(Pang)通(Tong),(?) 让(Rang)自(Zi)己(Ji)获(Huo)得(De)更(Geng)多(Duo)技(Ji)巧(Qiao)。(?)同(Tong)时(Shi),(?)在(Zai)面(Mian)试(Shi)JAVAEE的(De)时(Shi)候(Hou),(?)你(Ni)竟(Jing)然(Ran)也(Ye)懂(Dong)大(Da)数(Shu)据(Ju)、(?)懂(Dong)人(Ren)工(Gong)智(Zhi)能(Neng)((?)也(Ye)许(Xu)只(Zhi)是(Shi)皮(Pi)毛(Mao))(?)?(?)但(Dan)也(Ye)一(Yi)定(Ding)可(Ke)以(Yi)给(Gei)你(Ni)的(De)面(Mian)试(Shi)加(Jia)分(Fen)。(?)
知(Zhi)识(Shi)面(Mian)宽(Kuan)往(Wang)往(Wang)意(Yi)味(Wei)着(Zhuo)好(Hao)学(Xue),(?)潜(Qian)力(Li)巨(Ju)大(Da)。(?)经(Jing)过(Guo)两(Liang)三(San)年(Nian)的(De)磨(Mo)练(Lian)后(Hou),(?)熟(Shu)悉(Xi)各(Ge)种(Zhong)技(Ji)术(Shu)的(De)你(Ni),(?)必(Bi)将(Jiang)迎(Ying)来(Lai)一(Yi)次(Ci)发(Fa)展(Zhan)的(De)机(Ji)遇(Yu)。(?)为(Wei)什(Shi)么(Me)机(Ji)遇(Yu)一(Yi)定(Ding)会(Hui)给(Gei)你(Ni)?(?)显(Xian)然(Ran),(?)一(Yi)般(Ban)人(Ren)是(Shi)做(Zuo)不(Bu)到(Dao)这(Zhe)一(Yi)点(Dian)的(De)。(?)
我(Wo)们(Men)有(You)一(Yi)个(Ge)学(Xue)员(Yuan)学(Xue)完(Wan)JAVAEE后(Hou),(?)又(You)学(Xue)习(Xi)了(Liao)大(Da)数(Shu)据(Ju)开(Kai)发(Fa),(?)很(Hen)多(Duo)人(Ren)说(Shuo)他(Ta):(?)“(?)好(Hao)傻(Sha),(?)你(Ni)去(Qu)公(Gong)司(Si)只(Zhi)是(Shi)做(Zuo)一(Yi)份(Fen)工(Gong)作(Zuo)。(?)学(Xue)那(Na)么(Me)多(Duo)干(Gan)什(Shi)么(Me)?“(?)。(?)但(Dan)是(Shi),(?)这(Zhe)些(Xie)嘲(Chao)笑(Xiao)他(Ta)的(De)人(Ren)错(Cuo)了(Liao)。(?)这(Zhe)位(Wei)学(Xue)员(Yuan)三(San)个(Ge)月(Yue)后(Hou),(?)就(Jiu)成(Cheng)了(Liao)公(Gong)司(Si)项(Xiang)目(Mu)的(De)负(Fu)责(Ze)人(Ren),(?)很(Hen)简(Jian)单(Dan),(?)就(Jiu)是(Shi)因(Yin)为(Wei)他(Ta)JAVAEE会(Hui),(?)大(Da)数(Shu)据(Ju)也(Ye)会(Hui),(?)公(Gong)司(Si)正(Zheng)好(Hao)需(Xu)要(Yao)两(Liang)方(Fang)面(Mian)都(Du)懂(Dong)的(De)人(Ren)。(?)
“(?)如(Ru)果(Guo)因(Yin)为(Wei)学(Xue)习(Xi),(?)别(Bie)人(Ren)说(Shuo)你(Ni)傻(Sha)”(?),(?)我(Wo)们(Men)只(Zhi)能(Neng)回(Hui)应(Ying):(?)“(?)别(Bie)人(Ren)笑(Xiao)我(Wo)太(Tai)疯(Feng)癫(Dian),(?)我(Wo)笑(Xiao)他(Ta)人(Ren)看(Kan)不(Bu)穿(Chuan)”(?)。(?)这(Zhe)个(Ge)社(She)会(Hui),(?)如(Ru)果(Guo)不(Bu)能(Neng)跟(Gen)别(Bie)人(Ren)拼(Pin)爹(Die),(?)那(Na)就(Jiu)只(Zhi)能(Neng)跟(Gen)别(Bie)人(Ren)拼(Pin)头(Tou)脑(Nao)拼(Pin)血(Xue)汗(Han)了(Liao)。(?)
8.共(Gong)同(Tong)话(Hua)题(Ti)准(Zhun)备(Bei)
面(Mian)试(Shi)你(Ni)的(De)人(Ren)基(Ji)本(Ben)都(Du)是(Shi)程(Cheng)序(Xu)员(Yuan),(?)或(Huo)者(Zhe)程(Cheng)序(Xu)员(Yuan)出(Chu)身(Shen),(?)因(Yin)此(Ci)你(Ni)们(Men)在(Zai)对(Dui)话(Hua)中(Zhong)都(Du)可(Ke)以(Yi)找(Zhao)到(Dao)很(Hen)多(Duo)共(Gong)同(Tong)话(Hua)题(Ti)。(?)那(Na)么(Me),(?)为(Wei)了(Liao)让(Rang)我(Wo)们(Men)的(De)面(Mian)试(Shi)充(Chong)满(Man)各(Ge)种(Zhong)“(?)亮(Liang)点(Dian)”(?),(?)对(Dui)于(Yu)共(Gong)同(Tong)话(Hua)题(Ti)的(De)准(Zhun)备(Bei)就(Jiu)相(Xiang)当(Dang)有(You)必(Bi)要(Yao)了(Liao)。(?)“(?)用(Yong)心(Xin)去(Qu)准(Zhun)备(Bei)的(De)面(Mian)试(Shi),(?)连(Lian)面(Mian)试(Shi)官(Guan)都(Du)会(Hui)被(Bei)你(Ni)认(Ren)真(Zhen)的(De)态(Tai)度(Du)打(Da)动(Dong);(?)反(Fan)过(Guo)来(Lai)说(Shuo),(?)如(Ru)果(Guo)连(Lian)面(Mian)试(Shi)都(Du)不(Bu)重(Zhong)视(Shi)的(De)人(Ren),(?)我(Wo)怎(Zen)么(Me)相(Xiang)信(Xin)你(Ni)会(Hui)对(Dui)工(Gong)作(Zuo)更(Geng)有(You)责(Ze)任(Ren)?(?)”(?)。(?)
我(Wo)们(Men)可(Ke)以(Yi)准(Zhun)备(Bei)以(Yi)下(Xia)这(Zhe)些(Xie)问(Wen)题(Ti):(?)
1. 是(Shi)否(Fou)曾(Zeng)经(Jing)耗(Hao)费(Fei)几(Ji)个(Ge)小(Xiao)时(Shi)甚(Shen)至(Zhi)几(Ji)天(Tian)的(De)时(Shi)间(Jian)来(Lai)追(Zhui)踪(Zong)一(Yi)个(Ge)顽(Wan)固(Gu)的(De)bug?(?)
2. 你(Ni)有(You)没(Mei)有(You)因(Yin)为(Wei)某(Mou)个(Ge)问(Wen)题(Ti)加(Jia)班(Ban)到(Dao)半(Ban)夜(Ye)的(De)经(Jing)历(Li)?(?)
3. 你(Ni)喜(Xi)欢(Huan)某(Mou)种(Zhong)编(Bian)程(Cheng)语(Yu)言(Yan)的(De)哪(Na)一(Yi)点(Dian)?(?)
4. 经(Jing)常(Chang)访(Fang)问(Wen)哪(Na)个(Ge)程(Cheng)序(Xu)员(Yuan)的(De)网(Wang)站(Zhan)?(?)
5. 你(Ni)最(Zui)喜(Xi)欢(Huan)看(Kan)的(De)编(Bian)程(Cheng)类(Lei)的(De)书(Shu)籍(Ji)是(Shi)什(Shi)么(Me)?(?)
6. 关(Guan)于(Yu)IDE,(?)什(Shi)么(Me)事(Shi)最(Zui)让(Rang)你(Ni)抓(Zhua)狂(Kuang)?(?)
7. 精(Jing)心(Xin)准(Zhun)备(Bei)几(Ji)个(Ge)能(Neng)说(Shuo)明(Ming)你(Ni)技(Ji)术(Shu)能(Neng)力(Li)的(De)专(Zhuan)业(Ye)问(Wen)题(Ti),(?)在(Zai)面(Mian)试(Shi)时(Shi)尽(Jin)量(Liang)发(Fa)挥(Hui)出(Chu)来(Lai)。(?)
9.自(Zi)我(Wo)模(Mo)拟(Ni)面(Mian)试(Shi)和(He)对(Dui)练(Lian)
开(Kai)始(Shi)投(Tou)递(Di)简(Jian)历(Li)前(Qian),(?)可(Ke)以(Yi)五(Wu)人(Ren)一(Yi)组(Zu)互(Hu)相(Xiang)对(Dui)练(Lian),(?)进(Jin)行(Xing)角(Jiao)色(Se)扮(Ban)演(Yan)。(?)分(Fen)组(Zu)练(Lian)习(Xi)的(De)好(Hao)处(Chu)非(Fei)常(Chang)明(Ming)显(Xian),(?)可(Ke)以(Yi)让(Rang)我(Wo)们(Men)在(Zai)非(Fei)常(Chang)短(Duan)的(De)时(Shi)间(Jian)里(Li)得(De)到(Dao)提(Ti)升(Sheng)。(?)分(Fen)组(Zu)练(Lian)习(Xi)的(De)角(Jiao)色(Se)有(You):(?)面(Mian)试(Shi)官(Guan)、(?)应(Ying)聘(Pin)者(Zhe)、(?)旁(Pang)观(Guan)者(Zhe)。(?)
分(Fen)组(Zu)练(Lian)习(Xi)的(De)好(Hao)处(Chu)有(You):(?)
1. 面(Mian)试(Shi)官(Guan)面(Mian)试(Shi)别(Bie)人(Ren)可(Ke)以(Yi)体(Ti)会(Hui)如(Ru)何(He)设(She)问(Wen),(?)对(Dui)方(Fang)回(Hui)答(Da)是(Shi)否(Fou)得(De)体(Ti)
2. 应(Ying)聘(Pin)者(Zhe)可(Ke)以(Yi)身(Shen)临(Lin)其(Qi)境(Jing)体(Ti)验(Yan)被(Bei)面(Mian)的(De)过(Guo)程(Cheng)。(?)
3. 旁(Pang)观(Guan)者(Zhe)可(Ke)以(Yi)清(Qing)晰(Xi)的(De)看(Kan)到(Dao)面(Mian)试(Shi)官(Guan)的(De)优(You)缺(Que)点(Dian)、(?)应(Ying)聘(Pin)者(Zhe)的(De)优(You)缺(Que)点(Dian)。(?)加(Jia)强(Qiang)学(Xue)习(Xi),(?)避(Bi)免(Mian)自(Zi)己(Ji)发(Fa)生(Sheng)这(Zhe)些(Xie)问(Wen)题(Ti)。(?)
但(Dan)是(Shi),(?)也(Ye)不(Bu)能(Neng)过(Guo)多(Duo)的(De)训(Xun)练(Lian)。(?)以(Yi)每(Mei)人(Ren)各(Ge)扮(Ban)演(Yan)两(Liang)次(Ci)角(Jiao)色(Se)(两(Liang)次(Ci)面(Mian)试(Shi)官(Guan)、(?)两(Liang)次(Ci)应(Ying)聘(Pin)者(Zhe))为(Wei)宜(Yi)。(?)然(Ran)后(Hou),(?)马(Ma)上(Shang)投(Tou)递(Di)简(Jian)历(Li),(?)开(Kai)始(Shi)实(Shi)战(Zhan)!(?)!(?)

三(San):(?)面(Mian)试(Shi)准(Zhun)备(Bei)
1. 简(Jian)历(Li)的(De)作(Zuo)用(Yong)
一(Yi)份(Fen)格(Ge)式(Shi)规(Gui)范(Fan)、(?)要(Yao)点(Dian)突(Tu)出(Chu)的(De)简(Jian)历(Li)是(Shi)你(Ni)找(Zhao)工(Gong)作(Zuo)的(De)“(?)敲(Qiao)门(Men)砖(Zhuan)”(?),(?)值(Zhi)得(De)你(Ni)花(Hua)上(Shang)一(Yi)周(Zhou)、(?)甚(Shen)至(Zhi)两(Liang)周(Zhou)时(Shi)间(Jian)精(Jing)心(Xin)打(Da)磨(Mo)。(?)这(Zhe)样(Yang)你(Ni)会(Hui)获(Huo)得(De)更(Geng)多(Duo)的(De)机(Ji)会(Hui)。(?)当(Dang)然(Ran),(?)简(Jian)历(Li)仅(Jin)仅(Jin)是(Shi)敲(Qiao)门(Men)砖(Zhuan),(?)任(Ren)何(He)一(Yi)个(Ge)面(Mian)试(Shi)官(Guan)都(Du)不(Bu)可(Ke)能(Neng)仅(Jin)凭(Ping)简(Jian)历(Li)就(Jiu)雇(Gu)佣(Yong)一(Yi)个(Ge)人(Ren)。(?)
2.简(Jian)历(Li)两(Liang)个(Ge)灵(Ling)魂(Hun)
第(Di)一(Yi)要(Yao)点(Dian):(?)必(Bi)须(Xu)自(Zi)己(Ji)亲(Qin)自(Zi)写(Xie)简(Jian)历(Li)。(?)
简(Jian)历(Li)必(Bi)须(Xu)每(Mei)个(Ge)字(Zi)都(Du)自(Zi)己(Ji)写(Xie),(?)绝(Jue)对(Dui)不(Bu)能(Neng)抄(Chao)!(?)自(Zi)己(Ji)亲(Qin)自(Zi)写(Xie)一(Yi)次(Ci)简(Jian)历(Li),(?)相(Xiang)当(Dang)于(Yu)把(Ba)技(Ji)术(Shu)复(Fu)习(Xi)一(Yi)遍(Bian),(?)把(Ba)项(Xiang)目(Mu)捋(Luo)一(Yi)遍(Bian),(?)对(Dui)于(Yu)其(Qi)中(Zhong)的(De)关(Guan)键(Jian)点(Dian)可(Ke)以(Yi)做(Zuo)到(Dao)心(Xin)中(Zhong)有(You)数(Shu)。(?) 面(Mian)试(Shi)中(Zhong)的(De)很(Hen)多(Duo)问(Wen)题(Ti)都(Du)是(Shi)根(Gen)据(Ju)简(Jian)历(Li)问(Wen)出(Chu)来(Lai)的(De),(?)只(Zhi)有(You)自(Zi)己(Ji)亲(Qin)自(Zi)写(Xie)一(Yi)遍(Bian)才(Cai)能(Neng)灵(Ling)活(Huo)应(Ying)对(Dui)。(?)
第(Di)二(?)要(Yao)点(Dian):(?)简(Jian)历(Li)要(Yao)突(Tu)出(Chu)自(Zi)己(Ji)的(De)核(He)心(Xin)竞(Jing)争(Zheng)力(Li)。(?)
一(Yi)个(Ge)职(Zhi)位(Wei)会(Hui)有(You)几(Ji)十(Shi)、(?)几(Ji)百(Bai)份(Fen)简(Jian)历(Li)的(De)投(Tou)递(Di)!(?)投(Tou)递(Di)简(Jian)历(Li)显(Xian)然(Ran)是(Shi)存(Cun)在(Zai)竞(Jing)争(Zheng)关(Guan)系(Xi)的(De),(?)一(Yi)定(Ding)要(Yao)对(Dui)简(Jian)历(Li)作(Zuo)出(Chu)适(Shi)当(Dang)的(De)包(Bao)装(Zhuang),(?)就(Jiu)像(Xiang)去(Qu)相(Xiang)亲(Qin)要(Yao)化(Hua)妆(Zhuang)一(Yi)样(Yang)。(?) 不(Bu)包(Bao)装(Zhuang)的(De)简(Jian)历(Li)如(Ru)同(Tong)没(Mei)有(You)穿(Chuan)衣(Yi)服(Fu)逛(Guang)街(Jie)一(Yi)样(Yang),(?)虽(Sui)然(Ran)显(Xian)得(De)本(Ben)真(Zhen),(?)但(Dan)是(Shi)也(Ye)很(Hen)神(Shen)经(Jing)病(Bing),(?)很(Hen)傻(Sha)。(?)在(Zai)面(Mian)试(Shi)官(Guan)看(Kan)来(Lai),(?)没(Mei)有(You)包(Bao)装(Zhuang)的(De)简(Jian)历(Li)会(Hui)显(Xian)得(De)你(Ni)这(Zhe)个(Ge)人(Ren)不(Bu)识(Shi)时(Shi)务(Wu),(?)不(Bu)灵(Ling)活(Huo),(?)而(?)不(Bu)会(Hui)觉(Jue)得(De)你(Ni)这(Zhe)个(Ge)人(Ren)本(Ben)真(Zhen)(其(Qi)实(Shi)就(Jiu)是(Shi)天(Tian)真(Zhen))。(?) 处(Chu)在(Zai)世(Shi)俗(Su)社(She)会(Hui)里(Li)面(Mian),(?)我(Wo)们(Men)要(Yao)随(Sui)“(?)社(She)会(Hui)大(Da)流(Liu)”(?),(?)别(Bie)人(Ren)化(Hua)妆(Zhuang)我(Wo)们(Men)也(Ye)要(Yao)跟(Gen)进(Jin),(?)不(Bu)求(Qiu)占(Zhan)别(Bie)人(Ren)便(Bian)宜(Yi),(?)但(Dan)是(Shi)也(Ye)不(Bu)能(Neng)吃(Chi)亏(Kui)。(?)但(Dan)是(Shi),(?)包(Bao)装(Zhuang)不(Bu)能(Neng)欺(Qi)骗(Pian)企(Qi)业(Ye),(?)掌(Zhang)握(Wo)好(Hao)“(?)度(Du)”(?)。(?)
3.一(Yi)份(Fen)完(Wan)美(Mei)的(De)简(Jian)历(Li)(6大(Da)要(Yao)素(Su))
1.囊(Nang)括(Kuo)相(Xiang)关(Guan)技(Ji)术(Shu)关(Guan)键(Jian)词(Ci),(?)注(Zhu)意(Yi)上(Shang)下(Xia)文(Wen)
公(Gong)司(Si)每(Mei)天(Tian)会(Hui)收(Shou)到(Dao)几(Ji)十(Shi)份(Fen)简(Jian)历(Li),(?)筛(Shai)选(Xuan)这(Zhe)些(Xie)简(Jian)历(Li)往(Wang)往(Wang)是(Shi)不(Bu)懂(Dong)技(Ji)术(Shu)的(De)招(Zhao)聘(Pin)人(Ren)员(Yuan),(?)因(Yin)此(Ci)尽(Jin)量(Liang)写(Xie)上(Shang)你(Ni)会(Hui)的(De)技(Ji)术(Shu)的(De)关(Guan)键(Jian)词(Ci)。(?)
2.文(Wen)笔(Bi)要(Yao)好(Hao),(?)要(Yao)点(Dian)突(Tu)出(Chu),(?)简(Jian)明(Ming)扼(E)要(Yao)
如(Ru)果(Guo)你(Ni)不(Bu)知(Zhi)道(Dao)如(Ru)何(He)组(Zu)织(Zhi)文(Wen)字(Zi),(?)可(Ke)以(Yi)先(Xian)尝(Chang)试(Shi)将(Jiang)想(Xiang)表(Biao)达(Da)的(De)内(Nei)容(Rong)讲(Jiang)给(Gei)朋(Peng)友(You)听(Ting),(?)这(Zhe)非(Fei)常(Chang)有(You)效(Xiao)。(?)第(Di)一(Yi)、(?)可(Ke)以(Yi)起(Qi)到(Dao)互(Hu)动(Dong)、(?)交(Jiao)流(Liu)的(De)作(Zuo)用(Yong),(?)让(Rang)你(Ni)的(De)朋(Peng)友(You)给(Gei)你(Ni)指(Zhi)正(Zheng)。(?)第(Di)二(?)、(?)可(Ke)以(Yi)捋(Luo)思(Si)路(Lu)。(?)第(Di)三(San)、(?)为(Wei)面(Mian)试(Shi)时(Shi)的(De)回(Hui)答(Da)打(Da)下(Xia)坚(Jian)实(Shi)基(Ji)础(Chu)。(?)
3.对(Dui)工(Gong)作(Zuo)经(Jing)验(Yan)、(?)项(Xiang)目(Mu)经(Jing)验(Yan)、(?)实(Shi)习(Xi)经(Jing)验(Yan)作(Zuo)出(Chu)解(Jie)释(Shi)
如(Ru)果(Guo)你(Ni)声(Sheng)称(Cheng)具(Ju)备(Bei)某(Mou)种(Zhong)工(Gong)作(Zuo)经(Jing)验(Yan)、(?)项(Xiang)目(Mu)经(Jing)验(Yan),(?)那(Na)么(Me)就(Jiu)必(Bi)须(Xu)说(Shuo)明(Ming)是(Shi)如(Ru)何(He)获(Huo)得(De)的(De)。(?)如(Ru)果(Guo)简(Jian)历(Li)上(Shang)写(Xie)了(Liao)“(?)3年(Nian)java开(Kai)发(Fa)经(Jing)验(Yan)”(?)、(?)“(?)3年(Nian)ios开(Kai)发(Fa)经(Jing)验(Yan)”(?),(?)不(Bu)进(Jin)行(Xing)进(Jin)一(Yi)步(Bu)的(De)说(Shuo)明(Ming),(?)就(Jiu)显(Xian)得(De)太(Tai)虚(Xu)假(Jia)了(Liao)。(?) 不(Bu)说(Shuo)明(Ming)倒(Dao)也(Ye)没(Mei)关(Guan)系(Xi),(?)但(Dan)是(Shi)面(Mian)试(Shi)官(Guan)收(Shou)到(Dao)的(De)简(Jian)历(Li)可(Ke)不(Bu)止(Zhi)你(Ni)这(Zhe)一(Yi)份(Fen),(?)毕(Bi)竟(Jing)还(Huan)是(Shi)有(You)很(Hen)多(Duo)人(Ren)进(Jin)行(Xing)了(Liao)详(Xiang)细(Xi)的(De)说(Shuo)明(Ming)。(?)你(Ni)不(Bu)说(Shuo)明(Ming)就(Jiu)意(Yi)味(Wei)着(Zhuo)白(Bai)白(Bai)丢(Diu)失(Shi)了(Liao)很(Hen)多(Duo)机(Ji)会(Hui)。(?) 就(Jiu)像(Xiang)去(Qu)相(Xiang)亲(Qin)见(Jian)面(Mian),(?)但(Dan)是(Shi)你(Ni)不(Bu)化(Hua)妆(Zhuang)、(?)不(Bu)打(Da)扮(Ban),(?)穿(Chuan)着(Zhuo)拖(Tuo)鞋(Xie)去(Qu)了(Liao),(?)那(Na)我(Wo)想(Xiang)你(Ni)太(Tai)吃(Chi)亏(Kui)了(Liao)。(?) 我(Wo)们(Men)不(Bu)想(Xiang)占(Zhan)别(Bie)人(Ren)便(Bian)宜(Yi),(?)但(Dan)绝(Jue)不(Bu)能(Neng)吃(Chi)亏(Kui)。(?)
4.工(Gong)作(Zuo)经(Jing)历(Li)不(Bu)要(Yao)留(Liu)有(You)情(Qing)况(Kuang)不(Bu)明(Ming)的(De)空(Kong)白(Bai)期(Qi)
简(Jian)历(Li)中(Zhong),(?)不(Bu)要(Yao)留(Liu)下(Xia)特(Te)别(Bie)长(Chang)的(De)空(Kong)白(Bai)期(Qi),(?)这(Zhe)会(Hui)让(Rang)人(Ren)觉(Jue)得(De)你(Ni)心(Xin)中(Zhong)有(You)鬼(Gui)。(?)
5.个(Ge)人(Ren)爱(Ai)好(Hao)和(He)特(Te)殊(Shu)证(Zheng)书(Shu)
很(Hen)多(Duo)人(Ren)会(Hui)写(Xie)上(Shang)自(Zi)己(Ji)的(De)个(Ge)人(Ren)爱(Ai)好(Hao):(?)“(?)卡(Ka)拉(La)ok,(?)听(Ting)音(Yin)乐(Le),(?)看(Kan)电(Dian)影(Ying)”(?)。(?)这(Zhe)些(Xie)不(Bu)能(Neng)体(Ti)现(Xian)个(Ge)人(Ren)素(Su)质(Zhi)的(De)内(Nei)容(Rong)不(Bu)如(Ru)不(Bu)写(Xie)。(?)但(Dan)是(Shi),(?)如(Ru)果(Guo)你(Ni)是(Shi)篮(Lan)球(Qiu)校(Xiao)队(Dui)、(?)乒(Ping)乒(Ping)球(Qiu)学(Xue)校(Xiao)冠(Guan)军(Jun)、(?)厨(Chu)艺(Yi)大(Da)赛(Sai)冠(Guan)军(Jun)这(Zhe)些(Xie)倒(Dao)是(Shi)可(Ke)以(Yi)写(Xie)在(Zai)自(Zi)己(Ji)的(De)简(Jian)历(Li)上(Shang)。(?)
6.简(Jian)历(Li)结(Jie)构(Gou)明(Ming)了(Liao),(?)条(Tiao)理(Li)清(Qing)晰(Xi)
简(Jian)历(Li)结(Jie)构(Gou)一(Yi)定(Ding)要(Yao)清(Qing)晰(Xi)明(Ming)了(Liao),(?)便(Bian)于(Yu)招(Zhao)聘(Pin)者(Zhe)快(Kuai)速(Su)阅(Yue)读(Du)。(?)不(Bu)过(Guo),(?)现(Xian)在(Zai)的(De)招(Zhao)聘(Pin)网(Wang)站(Zhan)都(Du)有(You)标(Biao)准(Zhun)的(De)模(Mo)板(Ban),(?)应(Ying)聘(Pin)者(Zhe)往(Wang)里(Li)填(Tian)数(Shu)据(Ju)即(Ji)可(Ke)。(?)
如(Ru)下(Xia)是(Shi)一(Yi)份(Fen)比(Bi)较(Jiao)规(Gui)范(Fan)的(De)简(Jian)历(Li),(?)该(Gai)学(Xue)员(Yuan)当(Dang)时(Shi)年(Nian)薪(Xin)为(Wei)30万(Wan)((?)税(Shui)前(Qian),(?)北(Bei)京(Jing))(?)。(?) 大(Da)家(Jia)可(Ke)以(Yi)作(Zuo)为(Wei)奋(Fen)斗(Dou)的(De)参(Can)考(Kao)。(?)当(Dang)然(Ran),(?)写(Xie)简(Jian)历(Li)简(Jian)单(Dan),(?)掌(Zhang)握(Wo)简(Jian)历(Li)上(Shang)的(De)内(Nei)容(Rong)难(Nan)。(?)可(Ke)以(Yi)说(Shuo),(?)简(Jian)历(Li)上(Shang)的(De)每(Mei)个(Ge)字(Zi)都(Du)代(Dai)表(Biao)“(?)一(Yi)段(Duan)血(Xue)泪(Lei)史(Shi)”(?)。(?)
4.简(Jian)历(Li)的(De)常(Chang)见(Jian)错(Cuo)误(Wu)
“(?)千(Qian)里(Li)之(Zhi)堤(Di),(?)溃(Kui)于(Yu)蚁(Yi)穴(Xue)”(?),(?) 简(Jian)历(Li)可(Ke)以(Yi)让(Rang)招(Zhao)聘(Pin)者(Zhe)对(Dui)你(Ni)形(Xing)成(Cheng)第(Di)一(Yi)印(Yin)象(Xiang)。(?)如(Ru)果(Guo)简(Jian)历(Li)中(Zhong)存(Cun)在(Zai)细(Xi)小(Xiao)的(De)错(Cuo)误(Wu),(?)也(Ye)会(Hui)被(Bei)视(Shi)为(Wei)不(Bu)认(Ren)真(Zhen)的(De)体(Ti)现(Xian),(?)可(Ke)能(Neng)会(Hui)让(Rang)你(Ni)失(Shi)去(Qu)很(Hen)多(Duo)机(Ji)会(Hui)。(?)
通(Tong)常(Chang)有(You)如(Ru)下(Xia)错(Cuo)误(Wu):(?)
1.手(Shou)机(Ji)号(Hao)、(?)qq号(Hao)错(Cuo)误(Wu)、(?)电(Dian)子(Zi)邮(You)箱(Xiang)格(Ge)式(Shi)不(Bu)正(Zheng)确(Que)
真(Zhen)的(De)有(You)傻(Sha)瓜(Gua)竟(Jing)然(Ran)会(Hui)把(Ba)自(Zi)己(Ji)手(Shou)机(Ji)号(Hao)码(Ma)写(Xie)错(Cuo),(?)或(Huo)者(Zhe)写(Xie)了(Liao)已(Yi)经(Jing)停(Ting)机(Ji)的(De)旧(Jiu)手(Shou)机(Ji)号(Hao)码(Ma)。(?)然(Ran)后(Hou),(?)坐(Zuo)等(Deng)招(Zhao)聘(Pin)电(Dian)话(Hua)。(?) 这(Zhe)些(Xie)基(Ji)本(Ben)联(Lian)系(Xi)方(Fang)式(Shi),(?)一(Yi)定(Ding)要(Yao)核(He)准(Zhun)无(Wu)误(Wu)。(?)
2.技(Ji)术(Shu)词(Ci)汇(Hui)拼(Pin)写(Xie)错(Cuo)误(Wu)
这(Zhe)也(Ye)是(Shi)常(Chang)见(Jian)的(De)错(Cuo)误(Wu),(?)技(Ji)术(Shu)词(Ci)汇(Hui)单(Dan)词(Ci)错(Cuo)误(Wu)、(?)大(Da)小(Xiao)写(Xie)不(Bu)对(Dui)等(Deng)等(Deng),(?)这(Zhe)会(Hui)直(Zhi)接(Jie)降(Jiang)低(Di)你(Ni)的(De)第(Di)一(Yi)印(Yin)象(Xiang)。(?)连(Lian)自(Zi)己(Ji)的(De)简(Jian)历(Li)都(Du)不(Bu)认(Ren)真(Zhen),(?)还(Huan)能(Neng)做(Zuo)什(Shi)么(Me)?(?) 就(Jiu)像(Xiang)出(Chu)门(Men)不(Bu)洗(Xi)脸(Lian)的(De)人(Ren),(?)还(Huan)能(Neng)期(Qi)望(Wang)他(Ta)做(Zuo)什(Shi)么(Me)?(?)
3.排(Pai)版(Ban)混(Hun)乱(Luan)
排(Pai)版(Ban)必(Bi)须(Xu)清(Qing)晰(Xi),(?)大(Da)方(Fang),(?)结(Jie)构(Gou)整(Zheng)齐(Qi)。(?)
4.抄(Chao)袭(Xi)别(Bie)人(Ren)的(De)简(Jian)历(Li)
这(Zhe)是(Shi)对(Dui)自(Zi)己(Ji)和(He)他(Ta)人(Ren)最(Zui)大(Da)的(De)不(Bu)负(Fu)责(Ze)任(Ren)。(?)想(Xiang)找(Zhao)工(Gong)作(Zuo)连(Lian)个(Ge)简(Jian)历(Li)都(Du)懒(Lan)得(De)写(Xie),(?)这(Zhe)种(Zhong)态(Tai)度(Du)如(Ru)何(He)处(Chu)人(Ren)处(Chu)事(Shi)?(?)面(Mian)试(Shi)中(Zhong),(?)针(Zhen)对(Dui)简(Jian)历(Li)提(Ti)出(Chu)的(De)问(Wen)题(Ti),(?)你(Ni)如(Ru)何(He)能(Neng)回(Hui)答(Da)?(?)
所(Suo)以(Yi),(?)抄(Chao)简(Jian)历(Li),(?)一(Yi)定(Ding)是(Shi)死(Si)路(Lu)一(Yi)条(Tiao)。(?)
5.注(Zhu)册(Ce)招(Zhao)聘(Pin)网(Wang)站(Zhan)和(He)简(Jian)历(Li)投(Tou)递(Di)
简(Jian)历(Li)准(Zhun)备(Bei)好(Hao)以(Yi)后(Hou),(?)必(Bi)须(Xu)尽(Jin)快(Kuai)的(De)进(Jin)入(Ru)投(Tou)递(Di)环(Huan)节(Jie)。(?)不(Bu)要(Yao)等(Deng)待(Dai),(?)不(Bu)要(Yao)老(Lao)琢(Zhuo)磨(Mo)“(?)我(Wo)要(Yao)把(Ba)各(Ge)个(Ge)环(Huan)节(Jie)搞(Gao)明(Ming)白(Bai)再(Zai)投(Tou)简(Jian)历(Li)和(He)面(Mian)试(Shi)”(?),(?)这(Zhe)是(Shi)错(Cuo)误(Wu)的(De)想(Xiang)法(Fa)。(?)我(Wo)们(Men)必(Bi)须(Xu)在(Zai)战(Zhan)场(Chang)中(Zhong)提(Ti)高(Gao)自(Zi)己(Ji),(?)实(Shi)战(Zhan)中(Zhong)提(Ti)高(Gao)自(Zi)己(Ji)是(Shi)最(Zui)快(Kuai)的(De)。(?)
首(Shou)先(Xian),(?)注(Zhu)册(Ce)著(Zhu)名(Ming)招(Zhao)聘(Pin)网(Wang)站(Zhan)或(Huo)者(Zhe)地(Di)方(Fang)类(Lei)招(Zhao)聘(Pin)网(Wang)站(Zhan),(?)并(Bing)在(Zai)这(Zhe)些(Xie)网(Wang)站(Zhan)上(Shang)完(Wan)善(Shan)简(Jian)历(Li)。(?)智(Zhi)联(Lian)招(Zhao)聘(Pin)、(?)51job、(?)中(Zhong)华(Hua)英(Ying)才(Cai)、(?)拉(La)勾(Gou)网(Wang)等(Deng)这(Zhe)些(Xie)网(Wang)站(Zhan)是(Shi)必(Bi)须(Xu)要(Yao)注(Zhu)册(Ce)的(De),(?)一(Yi)个(Ge)都(Du)不(Bu)能(Neng)少(Shao)。(?)如(Ru)果(Guo)在(Zai)地(Di)方(Fang)城(Cheng)市(Shi)找(Zhao)工(Gong)作(Zuo),(?)地(Di)方(Fang)类(Lei)招(Zhao)聘(Pin)网(Wang)站(Zhan)也(Ye)可(Ke)以(Yi)注(Zhu)册(Ce),(?)比(Bi)如(Ru):(?)长(Chang)沙(Sha)的(De)芙(Fu)蓉(Rong)人(Ren)才(Cai)网(Wang)、(?)太(Tai)原(Yuan)人(Ren)才(Cai)网(Wang)等(Deng)。(?)
简(Jian)历(Li)投(Tou)递(Di)一(Yi)般(Ban)采(Cai)用(Yong)海(Hai)投(Tou)的(De)方(Fang)式(Shi),(?)并(Bing)且(Qie)要(Yao)隔(Ge)两(Liang)三(San)天(Tian)海(Hai)投(Tou)一(Yi)次(Ci)。(?) 海(Hai)投(Tou)会(Hui)给(Gei)企(Qi)业(Ye)招(Zhao)聘(Pin)者(Zhe)带(Dai)来(Lai)一(Yi)定(Ding)的(De)麻(Ma)烦(Fan),(?)但(Dan)是(Shi)对(Dui)于(Yu)应(Ying)聘(Pin)者(Zhe)是(Shi)最(Zui)高(Gao)效(Xiao)的(De)方(Fang)式(Shi)。(?)对(Dui)于(Yu)应(Ying)聘(Pin)者(Zhe)来(Lai)说(Shuo),(?)时(Shi)间(Jian)很(Hen)宝(Bao)贵(Gui)。(?)千(Qian)万(Wan)不(Bu)要(Yao)把(Ba)时(Shi)间(Jian)花(Hua)在(Zai)一(Yi)个(Ge)个(Ge)筛(Shai)选(Xuan)企(Qi)业(Ye)上(Shang)面(Mian),(?)对(Dui)于(Yu)刚(Gang)入(Ru)行(Xing)的(De)新(Xin)人(Ren),(?)还(Huan)没(Mei)有(You)资(Zi)格(Ge)筛(Shai)选(Xuan)企(Qi)业(Ye)。(?)至(Zhi)于(Yu)有(You)善(Shan)良(Liang)的(De)应(Ying)聘(Pin)者(Zhe)害(Hai)怕(Pa)企(Qi)业(Ye)的(De)HR麻(Ma)烦(Fan),(?)我(Wo)只(Zhi)能(Neng)说(Shuo):(?) “(?)你(Ni)想(Xiang)多(Duo)了(Liao)”(?)。(?)
一(Yi)份(Fen)合(He)格(Ge)的(De)简(Jian)历(Li)海(Hai)投(Tou)完(Wan)后(Hou),(?)你(Ni)就(Jiu)会(Hui)接(Jie)到(Dao)一(Yi)些(Xie)面(Mian)试(Shi)电(Dian)话(Hua)。(?)下(Xia)面(Mian)就(Jiu)应(Ying)该(Gai)学(Xue)习(Xi)怎(Zen)么(Me)应(Ying)对(Dui)面(Mian)试(Shi)电(Dian)话(Hua)了(Liao)。(?)
6.接(Jie)面(Mian)试(Shi)电(Dian)话(Hua)如(Ru)何(He)应(Ying)对(Dui)
接(Jie)到(Dao)面(Mian)试(Shi)电(Dian)话(Hua)的(De)时(Shi)候(Hou),(?)一(Yi)些(Xie)基(Ji)本(Ben)的(De)电(Dian)话(Hua)礼(Li)仪(Yi)你(Ni)需(Xu)要(Yao)知(Zhi)道(Dao)。(?)通(Tong)过(Guo)如(Ru)下(Xia)的(De)场(Chang)景(Jing)模(Mo)拟(Ni),(?)让(Rang)你(Ni)对(Dui)接(Jie)电(Dian)话(Hua)后(Hou)的(De)流(Liu)程(Cheng)有(You)一(Yi)个(Ge)基(Ji)本(Ben)的(De)了(Liao)解(Jie)。(?)
流(Liu)程(Cheng)如(Ru)下(Xia):(?)
1. 接(Jie)听(Ting)电(Dian)话(Hua)第(Di)一(Yi)句(Ju)通(Tong)常(Chang)是(Shi):(?) “(?)喂(Wei)(二(?)声(Sheng)),(?)你(Ni)好(Hao)”(?)。(?)
2. 对(Dui)方(Fang)通(Tong)常(Chang)会(Hui)说(Shuo):(?)“(?)我(Wo)是(Shi)xxx公(Gong)司(Si),(?)我(Wo)们(Men)这(Zhe)里(Li)收(Shou)到(Dao)你(Ni)的(De)简(Jian)历(Li)。(?)你(Ni)明(Ming)天(Tian)上(Shang)午(Wu)10点(Dian)有(You)时(Shi)间(Jian)来(Lai)我(Wo)公(Gong)司(Si)面(Mian)试(Shi)吗(Ma)?(?)”(?)
3. 你(Ni)通(Tong)常(Chang)会(Hui)说(Shuo):(?)“(?)可(Ke)以(Yi),(?)没(Mei)有(You)问(Wen)题(Ti)。(?)贵(Gui)公(Gong)司(Si)的(De)地(Di)址(Zhi)在(Zai)哪(Na)里(Li)?(?)”(?)。(?)注(Zhu)意(Yi),(?)如(Ru)果(Guo)时(Shi)间(Jian)上(Shang)不(Bu)允(Yun)许(Xu),(?)比(Bi)如(Ru)跟(Gen)你(Ni)已(Yi)经(Jing)约(Yue)好(Hao)的(De)一(Yi)家(Jia)公(Gong)司(Si)冲(Chong)突(Tu)了(Liao)。(?)你(Ni)也(Ye)可(Ke)以(Yi)大(Da)方(Fang)的(De)告(Gao)诉(Su)别(Bie)人(Ren),(?)明(Ming)天(Tian)上(Shang)午(Wu)有(You)面(Mian)试(Shi)了(Liao),(?)能(Neng)不(Bu)能(Neng)换(Huan)一(Yi)个(Ge)时(Shi)间(Jian)。(?)

4. 对(Dui)方(Fang)会(Hui)说(Shuo):(?) “(?)我(Wo)们(Men)公(Gong)司(Si)在(Zai)海(Hai)淀(Dian)区(Qu)xx大(Da)厦(Xia)12层(Ceng)1201”(?)。(?)
5. 你(Ni)可(Ke)以(Yi)说(Shuo):(?) “(?)那(Na)我(Wo)到(Dao)了(Liao)以(Yi)后(Hou),(?)跟(Gen)您(Nin)联(Lian)系(Xi)吗(Ma)?(?)您(Nin)怎(Zen)么(Me)称(Cheng)呼(Hu)?(?)”(?)
6. 对(Dui)方(Fang)会(Hui)说(Shuo):(?) “(?)我(Wo)姓(Xing)高(Gao)。(?)到(Dao)了(Liao),(?)你(Ni)跟(Gen)前(Qian)台(Tai)说(Shuo)找(Zhao)高(Gao)七(Qi)七(Qi)就(Jiu)行(Xing)”(?)。(?)
7. 如(Ru)果(Guo)你(Ni)对(Dui)自(Zi)己(Ji)查(Cha)询(Xun)交(Jiao)通(Tong)路(Lu)线(Xian)不(Bu)太(Tai)放(Fang)心(Xin),(?)可(Ke)以(Yi)问(Wen)一(Yi)下(Xia)对(Dui)方(Fang),(?)如(Ru)何(He)到(Dao)他(Ta)们(Men)公(Gong)司(Si)。(?)如(Ru)果(Guo)有(You)信(Xin)心(Xin),(?)就(Jiu)不(Bu)用(Yong)问(Wen)了(Liao)。(?)
8. 最(Zui)后(Hou),(?)你(Ni)一(Yi)定(Ding)要(Yao)这(Zhe)样(Yang)说(Shuo),(?)“(?)好(Hao)的(De)。(?)谢(Xie)谢(Xie)你(Ni)。(?)我(Wo)跟(Gen)您(Nin)确(Que)认(Ren)一(Yi)下(Xia)。(?)您(Nin)的(De)公(Gong)司(Si)名(Ming)字(Zi)是(Shi):(?)xxx公(Gong)司(Si)。(?)明(Ming)天(Tian)上(Shang)午(Wu)10点(Dian),(?)在(Zai)海(Hai)淀(Dian)区(Qu)xx大(Da)厦(Xia)12层(Ceng)1201。(?)对(Dui)吗(Ma)?(?)”(?)
9. 对(Dui)方(Fang)回(Hui)答(Da):(?) “(?)是(Shi)的(De)。(?)没(Mei)有(You)问(Wen)题(Ti)。(?)还(Huan)有(You)其(Qi)他(Ta)问(Wen)题(Ti)吗(Ma)?(?)”(?)
10.你(Ni)回(Hui)答(Da):(?) “(?)没(Mei)有(You)了(Liao)。(?)谢(Xie)谢(Xie)。(?)我(Wo)明(Ming)天(Tian)准(Zhun)时(Shi)到(Dao)贵(Gui)公(Gong)司(Si)”(?)。(?)
11.对(Dui)方(Fang)回(Hui)答(Da):(?) “(?)好(Hao)的(De)。(?)再(Zai)见(Jian)”(?)。(?)
12.你(Ni)回(Hui)答(Da):(?)“(?)OK。(?)再(Zai)见(Jian)”(?)。(?)等(Deng)对(Dui)方(Fang)挂(Gua)掉(Diao)电(Dian)话(Hua)后(Hou),(?)你(Ni)再(Zai)挂(Gua)掉(Diao)电(Dian)话(Hua)。(?)即(Ji)可(Ke)结(Jie)束(Shu)本(Ben)次(Ci)电(Dian)话(Hua)邀(Yao)约(Yue)。(?)通(Tong)过(Guo)一(Yi)次(Ci)交(Jiao)流(Liu),(?)将(Jiang)公(Gong)司(Si)名(Ming)称(Cheng)、(?)地(Di)址(Zhi)、(?)面(Mian)试(Shi)时(Shi)间(Jian)、(?)联(Lian)系(Xi)人(Ren)问(Wen)清(Qing)楚(Chu)即(Ji)可(Ke)。(?)
然(Ran)后(Hou),(?)立(Li)刻(Ke)马(Ma)上(Shang),(?)使(Shi)用(Yong)手(Shou)机(Ji)或(Huo)者(Zhe)电(Dian)脑(Nao)查(Cha)询(Xun)这(Zhe)个(Ge)公(Gong)司(Si)相(Xiang)关(Guan)的(De)信(Xin)息(Xi),(?)越(Yue)详(Xiang)细(Xi)越(Yue)好(Hao)。(?)直(Zhi)到(Dao)能(Neng)够(Gou)回(Hui)答(Da)如(Ru)下(Xia)问(Wen)题(Ti)为(Wei)止(Zhi):(?)
1. 公(Gong)司(Si)发(Fa)展(Zhan)的(De)历(Li)程(Cheng)
2. 公(Gong)司(Si)的(De)产(Chan)品(Pin)或(Huo)者(Zhe)项(Xiang)目(Mu)(该(Gai)公(Gong)司(Si)同(Tong)类(Lei)型(Xing)公(Gong)司(Si)的(De)产(Chan)品(Pin)和(He)项(Xiang)目(Mu),(?)各(Ge)自(Zi)的(De)优(You)劣(Lie)势(Shi)分(Fen)析(Xi))
3. 公(Gong)司(Si)下(Xia)一(Yi)步(Bu)的(De)发(Fa)展(Zhan)规(Gui)划(Hua)
这(Zhe)些(Xie)问(Wen)题(Ti),(?)将(Jiang)会(Hui)让(Rang)你(Ni)在(Zai)后(Hou)续(Xu)的(De)面(Mian)试(Shi)中(Zhong)获(Huo)得(De)意(Yi)向(Xiang)不(Bu)到(Dao)的(De)收(Shou)获(Huo)。(?)
7.去(Qu)公(Gong)司(Si)之(Zhi)前(Qian)的(De)准(Zhun)备(Bei)
去(Qu)公(Gong)司(Si)面(Mian)试(Shi)前(Qian),(?)做(Zuo)到(Dao)如(Ru)下(Xia)五(Wu)点(Dian):(?)
1. 查(Cha)询(Xun)和(He)调(Diao)研(Yan)该(Gai)公(Gong)司(Si)的(De)基(Ji)本(Ben)情(Qing)况(Kuang)
2. 个(Ge)人(Ren)卫(Wei)生(Sheng)整(Zheng)洁(Jie),(?)着(Zhuo)装(Zhuang)干(Gan)净(Jing)
3. 提(Ti)前(Qian)10-15分(Fen)钟(Zhong)到(Dao)达(Da),(?)不(Bu)迟(Chi)到(Dao)((?)万(Wan)一(Yi)迟(Chi)到(Dao),(?)一(Yi)定(Ding)电(Dian)话(Hua)通(Tong)知(Zhi)对(Dui)方(Fang),(?)告(Gao)知(Zhi)实(Shi)情(Qing))(?)
4. 将(Jiang)以(Yi)前(Qian)面(Mian)试(Shi)遇(Yu)到(Dao)的(De)问(Wen)题(Ti)再(Zai)预(Yu)演(Yan)一(Yi)遍(Bian)
5. 将(Jiang)笔(Bi)试(Shi)题(Ti)再(Zai)复(Fu)习(Xi)一(Yi)遍(Bian)
8.笔(Bi)试(Shi)
去(Qu)企(Qi)业(Ye)笔(Bi)试(Shi),(?)通(Tong)常(Chang)都(Du)会(Hui)做(Zuo)一(Yi)份(Fen)该(Gai)企(Qi)业(Ye)的(De)笔(Bi)试(Shi)题(Ti)目(Mu),(?)作(Zuo)为(Wei)基(Ji)本(Ben)的(De)考(Kao)核(He)。(?)通(Tong)常(Chang),(?)企(Qi)业(Ye)笔(Bi)试(Shi)题(Ti)目(Mu)都(Du)大(Da)同(Tong)小(Xiao)异(Yi),(?)都(Du)是(Shi)一(Yi)些(Xie)常(Chang)见(Jian)工(Gong)作(Zuo)问(Wen)题(Ti),(?)不(Bu)会(Hui)出(Chu)现(Xian)偏(Pian)题(Ti)难(Nan)题(Ti)怪(Guai)题(Ti)。(?)如(Ru)果(Guo)你(Ni)之(Zhi)前(Qian),(?)已(Yi)经(Jing)做(Zuo)过(Guo)常(Chang)见(Jian)笔(Bi)试(Shi)题(Ti)目(Mu),(?)绝(Jue)大(Da)部(Bu)分(Fen)题(Ti)目(Mu)都(Du)可(Ke)以(Yi)囊(Nang)括(Kuo)。(?)所(Suo)以(Yi),(?)只(Zhi)要(Yao)好(Hao)好(Hao)准(Zhun)备(Bei),(?)笔(Bi)试(Shi)不(Bu)会(Hui)构(Gou)成(Cheng)特(Te)别(Bie)大(Da)的(De)问(Wen)题(Ti)。(?)笔(Bi)试(Shi)过(Guo)后(Hou),(?)通(Tong)常(Chang)都(Du)会(Hui)带(Dai)你(Ni)进(Jin)入(Ru)面(Mian)试(Shi)环(Huan)节(Jie)。(?)面(Mian)试(Shi)官(Guan)通(Tong)常(Chang)都(Du)是(Shi)你(Ni)以(Yi)后(Hou)的(De)直(Zhi)接(Jie)上(Shang)级(Ji),(?)这(Zhe)时(Shi)候(Hou)就(Jiu)需(Xu)要(Yao)你(Ni)好(Hao)好(Hao)表(Biao)现(Xian)了(Liao)。(?)
四(Si):(?) 面(Mian)试(Shi)
1.面(Mian)试(Shi)时(Shi),(?)为(Wei)什(Shi)么(Me)没(Mei)必(Bi)要(Yao)紧(Jin)张(Zhang)?(?)
第(Di)一(Yi)、(?)从(Cong)心(Xin)态(Tai)上(Shang)你(Ni)要(Yao)把(Ba)这(Zhe)次(Ci)面(Mian)试(Shi)看(Kan)做(Zuo)一(Yi)次(Ci)练(Lian)习(Xi),(?)成(Cheng)败(Bai)都(Du)可(Ke)。(?)毕(Bi)竟(Jing),(?)说(Shuo)实(Shi)话(Hua),(?)面(Mian)试(Shi)成(Cheng)功(Gong)是(Shi)小(Xiao)概(Gai)率(Lu)事(Shi)件(Jian),(?)按(An)照(Zhao)一(Yi)个(Ge)人(Ren)面(Mian)试(Shi)十(Shi)家(Jia)公(Gong)司(Si)成(Cheng)功(Gong)一(Yi)家(Jia)来(Lai)看(Kan),(?)每(Mei)家(Jia)成(Cheng)功(Gong)的(De)概(Gai)率(Lu)只(Zhi)有(You)10%。(?)所(Suo)以(Yi),(?)完(Wan)全(Quan)没(Mei)有(You)必(Bi)要(Yao)紧(Jin)张(Zhang)。(?)
第(Di)二(?)、(?)面(Mian)试(Shi)官(Guan)在(Zai)跟(Gen)你(Ni)交(Jiao)流(Liu)的(De)时(Shi)候(Hou),(?)并(Bing)不(Bu)会(Hui)将(Jiang)你(Ni)说(Shuo)的(De)每(Mei)个(Ge)字(Zi)都(Du)记(Ji)在(Zai)心(Xin)里(Li)。(?)毕(Bi)竟(Jing),(?)他(Ta)也(Ye)有(You)工(Gong)作(Zuo)压(Ya)力(Li),(?)他(Ta)可(Ke)能(Neng)在(Zai)想(Xiang):(?)“(?)下(Xia)午(Wu)开(Kai)会(Hui),(?)怎(Zen)么(Me)跟(Gen)老(Lao)板(Ban)交(Jiao)代(Dai)的(De)问(Wen)题(Ti)”(?)。(?)面(Mian)试(Shi)官(Guan)多(Duo)数(Shu)时(Shi)候(Hou),(?)是(Shi)处(Chu)于(Yu)一(Yi)个(Ge)完(Wan)全(Quan)放(Fang)松(Song)的(De)状(Zhuang)态(Tai),(?)听(Ting)你(Ni)回(Hui)答(Da)只(Zhi)是(Shi)听(Ting)个(Ge)流(Liu)程(Cheng)和(He)大(Da)概(Gai),(?)并(Bing)不(Bu)会(Hui)全(Quan)身(Shen)心(Xin)投(Tou)入(Ru)。(?)所(Suo)以(Yi),(?)你(Ni)尽(Jin)可(Ke)以(Yi)放(Fang)轻(Qing)松(Song)的(De)交(Jiao)流(Liu)。(?)你(Ni)的(De)若(Ruo)干(Gan)小(Xiao)问(Wen)题(Ti),(?)对(Dui)方(Fang)通(Tong)常(Chang)都(Du)不(Bu)会(Hui)注(Zhu)意(Yi)到(Dao)。(?)
第(Di)三(San)、(?)面(Mian)试(Shi)完(Wan)你(Ni)以(Yi)后(Hou),(?)面(Mian)试(Shi)官(Guan)还(Huan)要(Yao)再(Zai)面(Mian)试(Shi)N个(Ge)人(Ren)。(?)最(Zui)后(Hou)留(Liu)到(Dao)脑(Nao)子(Zi)里(Li)的(De)就(Jiu)是(Shi)你(Ni)当(Dang)时(Shi)表(Biao)现(Xian)的(De)打(Da)分(Fen)结(Jie)果(Guo),(?)不(Bu)会(Hui)对(Dui)你(Ni)们(Men)这(Zhe)些(Xie)应(Ying)聘(Pin)者(Zhe)每(Mei)个(Ge)都(Du)留(Liu)下(Xia)特(Te)别(Bie)多(Duo)的(De)回(Hui)忆(Yi)。(?)如(Ru)果(Guo)你(Ni)觉(Jue)得(De)你(Ni)说(Shuo)的(De)做(Zuo)的(De)每(Mei)个(Ge)细(Xi)节(Jie),(?)面(Mian)试(Shi)官(Guan)都(Du)看(Kan)到(Dao)了(Liao)。(?)通(Tong)常(Chang),(?)是(Shi)你(Ni)想(Xiang)多(Duo)了(Liao)。(?)
第(Di)四(Si)、(?)失(Shi)败(Bai)又(You)有(You)何(He)惧(Ju)?(?)此(Ci)地(Di)不(Bu)留(Liu)爷(Ye),(?)自(Zi)有(You)留(Liu)爷(Ye)处(Chu)!(?)天(Tian)下(Xia)公(Gong)司(Si)那(Na)么(Me)多(Duo),(?)只(Zhi)要(Yao)我(Wo)多(Duo)面(Mian)试(Shi),(?)多(Duo)总(Zong)结(Jie)问(Wen)题(Ti)。(?)即(Ji)使(Shi)只(Zhi)有(You)1%的(De)机(Ji)会(Hui),(?)面(Mian)试(Shi)100家(Jia)不(Bu)是(Shi)也(Ye)能(Neng)面(Mian)上(Shang)吗(Ma)?(?)
当(Dang)然(Ran),(?)上(Shang)面(Mian)是(Shi)给(Gei)大(Da)家(Jia)做(Zuo)“(?)失(Shi)败(Bai)并(Bing)不(Bu)可(Ke)怕(Pa)的(De)心(Xin)态(Tai)调(Diao)整(Zheng)”(?),(?)并(Bing)不(Bu)意(Yi)味(Wei)着(Zhuo)你(Ni)就(Jiu)可(Ke)以(Yi)浪(Lang)费(Fei)大(Da)把(Ba)面(Mian)试(Shi)机(Ji)会(Hui)而(?)不(Bu)珍(Zhen)惜(Xi)。(?)
2.面(Mian)试(Shi)中(Zhong)的(De)礼(Li)仪(Yi)
面(Mian)试(Shi)中(Zhong),(?)遵(Zun)循(Xun)正(Zheng)常(Chang)的(De)职(Zhi)场(Chang)礼(Li)仪(Yi)即(Ji)可(Ke)。(?)这(Zhe)是(Shi)“(?)最(Zui)基(Ji)本(Ben)要(Yao)求(Qiu)”(?),(?)如(Ru)果(Guo)你(Ni)有(You)任(Ren)何(He)一(Yi)点(Dian)问(Wen)题(Ti),(?)都(Du)可(Ke)以(Yi)让(Rang)你(Ni)的(De)成(Cheng)功(Gong)率(Lu)立(Li)马(Ma)降(Jiang)低(Di)50%以(Yi)上(Shang)。(?)
所(Suo)以(Yi),(?)一(Yi)定(Ding)要(Yao)遵(Zun)守(Shou)基(Ji)本(Ben)原(Yuan)则(Ze):(?)
1. 微(Wei)笑(Xiao)、(?)礼(Li)貌(Mao)、(?)大(Da)方(Fang)
2. 有(You)正(Zheng)常(Chang)的(De)交(Jiao)流(Liu)习(Xi)惯(Guan),(?)没(Mei)有(You)小(Xiao)动(Dong)作(Zuo)((?)抖(Dou)腿(Tui)、(?)搓(Cuo)手(Shou)等(Deng))(?)
3. 绝(Jue)对(Dui)不(Bu)能(Neng)争(Zheng)论(Lun)
4. 卫(Wei)生(Sheng)干(Gan)净(Jing),(?)衣(Yi)冠(Guan)整(Zheng)洁(Jie)即(Ji)可(Ke)((?)没(Mei)必(Bi)要(Yao)西(Xi)装(Zhuang)领(Ling)带(Dai))(?)

面(Mian)试(Shi)开(Kai)始(Shi)时(Shi):(?)
1.面(Mian)试(Shi)官(Guan)进(Jin)入(Ru)、(?)求(Qiu)职(Zhi)者(Zhe)从(Cong)座(Zuo)位(Wei)起(Qi)立(Li),(?)微(Wei)笑(Xiao)说(Shuo):(?)“(?)你(Ni)好(Hao)”(?)。(?)
2.如(Ru)果(Guo)对(Dui)方(Fang)是(Shi)男(Nan)士(Shi),(?)可(Ke)以(Yi)主(Zhu)动(Dong)伸(Shen)手(Shou)握(Wo)手(Shou)。(?)如(Ru)果(Guo)是(Shi)女(Nu)士(Shi),(?)不(Bu)要(Yao)主(Zhu)动(Dong),(?)看(Kan)对(Dui)方(Fang)示(Shi)意(Yi)即(Ji)可(Ke)。(?)
面(Mian)试(Shi)结(Jie)束(Shu)时(Shi):(?)
1.结(Jie)束(Shu)时(Shi),(?)一(Yi)定(Ding)要(Yao)对(Dui)面(Mian)试(Shi)官(Guan)表(Biao)示(Shi)感(Gan)谢(Xie)。(?)
2.将(Jiang)座(Zuo)位(Wei)放(Fang)回(Hui)原(Yuan)位(Wei),(?)帮(Bang)助(Zhu)收(Shou)拾(Shi)一(Yi)下(Xia)桌(Zhuo)面(Mian)卫(Wei)生(Sheng),(?)所(Suo)有(You)物(Wu)品(Pin)物(Wu)归(Gui)原(Yuan)位(Wei)。(?)
3.常(Chang)见(Jian)技(Ji)术(Shu)面(Mian)试(Shi)场(Chang)景(Jing)分(Fen)析(Xi)
无(Wu)论(Lun)面(Mian)试(Shi)官(Guan)是(Shi)否(Fou)是(Shi)技(Ji)术(Shu)人(Ren)员(Yuan)出(Chu)身(Shen),(?)我(Wo)们(Men)一(Yi)定(Ding)要(Yao)给(Gei)出(Chu)充(Chong)分(Fen)准(Zhun)备(Bei)的(De)回(Hui)答(Da),(?)发(Fa)音(Yin)准(Zhun)确(Que)的(De)技(Ji)术(Shu)名(Ming)称(Cheng),(?)不(Bu)要(Yao)有(You)所(Suo)保(Bao)留(Liu),(?)尽(Jin)可(Ke)能(Neng)仔(Zi)细(Xi)地(Di)回(Hui)答(Da)问(Wen)题(Ti)。(?)一(Yi)定(Ding)要(Yao)在(Zai)面(Mian)试(Shi)前(Qian),(?)准(Zhun)备(Bei)本(Ben)专(Zhuan)业(Ye)至(Zhi)少(Shao)20个(Ge)常(Chang)见(Jian)的(De)专(Zhuan)业(Ye)技(Ji)术(Shu)问(Wen)题(Ti),(?)能(Neng)对(Dui)答(Da)如(Ru)流(Liu),(?)可(Ke)以(Yi)变(Bian)成(Cheng)自(Zi)己(Ji)的(De)话(Hua)说(Shuo)出(Chu)来(Lai)。(?)当(Dang)然(Ran),(?)再(Zai)完(Wan)美(Mei)的(De)准(Zhun)备(Bei)也(Ye)会(Hui)碰(Peng)到(Dao)不(Bu)会(Hui)的(De)问(Wen)题(Ti),(?)那(Na)么(Me)如(Ru)何(He)应(Ying)对(Dui)呢(Ne)?(?)
1. 面(Mian)试(Shi)官(Guan)提(Ti)出(Chu)的(De)某(Mou)个(Ge)技(Ji)术(Shu),(?)你(Ni)不(Bu)会(Hui)。(?)
第(Di)一(Yi),(?)绝(Jue)对(Dui)不(Bu)能(Neng)就(Jiu)说(Shuo)“(?)不(Bu)会(Hui)”(?)两(Liang)个(Ge)字(Zi)。(?)太(Tai)傻(Sha),(?)太(Tai)二(?),(?)无(Wu)法(Fa)继(Ji)续(Xu)交(Jiao)流(Liu),(?)典(Dian)型(Xing)直(Zhi)男(Nan)癌(Ai)。(?)
第(Di)二(?),(?)态(Tai)度(Du)上(Shang)正(Zheng)视(Shi)差(Cha)距(Ju),(?)如(Ru)实(Shi)回(Hui)答(Da)。(?)“(?)这(Zhe)个(Ge)技(Ji)术(Shu)我(Wo)确(Que)实(Shi)不(Bu)会(Hui)。(?)之(Zhi)前(Qian)的(De)项(Xiang)目(Mu)没(Mei)用(Yong)到(Dao),(?)只(Zhi)是(Shi)用(Yong)了(Liao)xxx技(Ji)术(Shu)。(?)面(Mian)试(Shi)完(Wan)后(Hou),(?)我(Wo)也(Ye)想(Xiang)学(Xue)习(Xi)一(Yi)下(Xia)”(?)。(?)
这(Zhe)样(Yang),(?)既(Ji)说(Shuo)明(Ming)了(Liao)实(Shi)际(Ji)情(Qing)况(Kuang)和(He)自(Zi)己(Ji)的(De)学(Xue)习(Xi)态(Tai)度(Du),(?)也(Ye)引(Yin)向(Xiang)了(Liao)你(Ni)会(Hui)的(De)xxx技(Ji)术(Shu),(?)从(Cong)而(?)可(Ke)能(Neng)会(Hui)小(Xiao)小(Xiao)的(De)带(Dai)一(Yi)波(Bo)节(Jie)奏(Zou)。(?)
2. 你(Ni)对(Dui)这(Zhe)个(Ge)技(Ji)术(Shu)有(You)一(Yi)定(Ding)的(De)认(Ren)知(Zhi),(?)但(Dan)没(Mei)有(You)把(Ba)握(Wo)。(?)
对(Dui)策(Ce):(?)可(Ke)以(Yi)告(Gao)诉(Su)面(Mian)试(Shi)官(Guan)去(Qu)年(Nian)项(Xiang)目(Mu)不(Bu)太(Tai)忙(Mang)的(De)时(Shi)候(Hou),(?)我(Wo)学(Xue)习(Xi)过(Guo)几(Ji)天(Tian),(?)后(Hou)来(Lai)项(Xiang)目(Mu)忙(Mang)了(Liao)就(Jiu)没(Mei)继(Ji)续(Xu)看(Kan)。(?)然(Ran)后(Hou),(?)简(Jian)单(Dan)说(Shuo)说(Shuo)对(Dui)这(Zhe)个(Ge)技(Ji)术(Shu)的(De)理(Li)解(Jie)。(?)最(Zui)后(Hou),(?)问(Wen)一(Yi)下(Xia),(?)我(Wo)们(Men)公(Gong)司(Si)是(Shi)否(Fou)在(Zai)使(Shi)用(Yong)这(Zhe)个(Ge)技(Ji)术(Shu)?(?)我(Wo)也(Ye)正(Zheng)想(Xiang)捡(Jian)起(Qi)来(Lai)再(Zai)学(Xue)习(Xi)一(Yi)下(Xia)。(?)
3. 面(Mian)试(Shi)官(Guan)提(Ti)出(Chu)尖(Jian)锐(Rui)的(De)问(Wen)题(Ti),(?)质(Zhi)疑(Yi)你(Ni)的(De)简(Jian)历(Li)或(Huo)者(Zhe)技(Ji)术(Shu)能(Neng)力(Li)。(?)
面(Mian)试(Shi)官(Guan):(?)“(?)我(Wo)在(Zai)你(Ni)的(De)简(Jian)历(Li)中(Zhong)没(Mei)有(You)看(Kan)到(Dao)对(Dui)我(Wo)们(Men)有(You)用(Yong)的(De)项(Xiang)目(Mu)经(Jing)验(Yan),(?)你(Ni)的(De)技(Ji)术(Shu)能(Neng)力(Li)也(Ye)不(Bu)符(Fu)合(He)我(Wo)们(Men)的(De)要(Yao)求(Qiu)。(?)”(?)
面(Mian)试(Shi)者(Zhe):(?)“(?)可(Ke)能(Neng)是(Shi)我(Wo)的(De)经(Jing)历(Li)还(Huan)是(Shi)太(Tai)浅(Qian)。(?)对(Dui)咱(Zan)们(Men)公(Gong)司(Si)这(Zhe)块(Kuai)业(Ye)务(Wu)确(Que)实(Shi)没(Mei)涉(She)及(Ji)过(Guo)。(?)您(Nin)这(Zhe)块(Kuai)还(Huan)有(You)什(Shi)么(Me)技(Ji)术(Shu)要(Yao)求(Qiu),(?)我(Wo)可(Ke)以(Yi)推(Tui)荐(Jian)我(Wo)的(De)朋(Peng)友(You)过(Guo)来(Lai)试(Shi)试(Shi)”(?)。(?)
当(Dang)碰(Peng)到(Dao)直(Zhi)接(Jie)质(Zhi)疑(Yi)的(De)情(Qing)况(Kuang),(?)面(Mian)试(Shi)成(Cheng)功(Gong)的(De)概(Gai)率(Lu)就(Jiu)非(Fei)常(Chang)低(Di)了(Liao)。(?)但(Dan)也(Ye)不(Bu)能(Neng)紧(Jin)张(Zhang),(?)天(Tian)下(Xia)公(Gong)司(Si)这(Zhe)么(Me)多(Duo),(?)此(Ci)处(Chu)不(Bu)留(Liu)人(Ren),(?)自(Zi)有(You)留(Liu)我(Wo)处(Chu)。(?)但(Dan)要(Yao)尽(Jin)量(Liang)多(Duo)的(De)跟(Gen)面(Mian)试(Shi)官(Guan)交(Jiao)流(Liu),(?)获(Huo)得(De)更(Geng)多(Duo)的(De)行(Xing)业(Ye)知(Zhi)识(Shi),(?)为(Wei)下(Xia)一(Yi)次(Ci)面(Mian)试(Shi)做(Zuo)准(Zhun)备(Bei)。(?)
4. 问(Wen)到(Dao)自(Zi)己(Ji)特(Te)别(Bie)了(Liao)解(Jie)的(De)技(Ji)术(Shu)
好(Hao)吧(Ba),(?)发(Fa)挥(Hui)吧(Ba),(?)少(Shao)年(Nian)!(?)还(Huan)不(Bu)眉(Mei)飞(Fei)色(Se)舞(Wu)好(Hao)好(Hao)表(Biao)现(Xian)表(Biao)现(Xian)。(?)
4.十(Shi)大(Da)非(Fei)技(Ji)术(Shu)面(Mian)试(Shi)问(Wen)题(Ti)及(Ji)策(Ce)略(Lue)
社(She)会(Hui)竞(Jing)争(Zheng)很(Hen)残(Can)酷(Ku)、(?)面(Mian)试(Shi)其(Qi)实(Shi)就(Jiu)是(Shi)一(Yi)场(Chang)表(Biao)演(Yan),(?)企(Qi)业(Ye)永(Yong)远(Yuan)喜(Xi)欢(Huan)可(Ke)以(Yi)随(Sui)机(Ji)应(Ying)变(Bian)、(?)聪(Cong)明(Ming)的(De)求(Qiu)职(Zhi)者(Zhe)。(?)而(?)不(Bu)喜(Xi)欢(Huan)看(Kan)似(Si)老(Lao)实(Shi)、(?)实(Shi)则(Ze)笨(Ben)拙(Zhuo)不(Bu)懂(Dong)变(Bian)通(Tong)的(De)求(Qiu)职(Zhi)者(Zhe)。(?)所(Suo)以(Yi),(?)大(Da)家(Jia)也(Ye)要(Yao)按(An)套(Tao)路(Lu)出(Chu)牌(Pai),(?)出(Chu)面(Mian)试(Shi)官(Guan)喜(Xi)欢(Huan)的(De)牌(Pai)才(Cai)能(Neng)有(You)更(Geng)多(Duo)的(De)胜(Sheng)算(Suan)。(?)
面(Mian)试(Shi)官(Guan)也(Ye)知(Zhi)道(Dao)求(Qiu)职(Zhi)者(Zhe)肯(Ken)定(Ding)是(Shi)经(Jing)过(Guo)精(Jing)心(Xin)准(Zhun)备(Bei)的(De)表(Biao)演(Yan),(?)但(Dan)是(Shi)仍(Reng)然(Ran)会(Hui)认(Ren)可(Ke)。(?)如(Ru)果(Guo)你(Ni)连(Lian)面(Mian)试(Shi)都(Du)懒(Lan)得(De)用(Yong)心(Xin)准(Zhun)备(Bei)、(?)你(Ni)肯(Ken)定(Ding)也(Ye)不(Bu)会(Hui)为(Wei)了(Liao)工(Gong)作(Zuo)而(?)用(Yong)心(Xin)。(?)这(Zhe)是(Shi)面(Mian)试(Shi)官(Guan)内(Nei)在(Zai)的(De)逻(Luo)辑(Ji)。(?)
1.自(Zi)我(Wo)介(Jie)绍(Shao)
这(Zhe)个(Ge)问(Wen)题(Ti)是(Shi)面(Mian)试(Shi)的(De)时(Shi)候(Hou)最(Zui)常(Chang)被(Bei)问(Wen)到(Dao)的(De)问(Wen)题(Ti)。(?)很(Hen)多(Duo)人(Ren)回(Hui)答(Da)这(Zhe)些(Xie)问(Wen)题(Ti)会(Hui)陷(Xian)入(Ru)一(Yi)个(Ge)误(Wu)区(Qu),(?)以(Yi)为(Wei)简(Jian)单(Dan)介(Jie)绍(Shao)一(Yi)下(Xia)自(Zi)己(Ji)的(De)名(Ming)字(Zi)、(?)多(Duo)少(Shao)岁(Sui)、(?)哪(Na)里(Li)工(Gong)作(Zuo)过(Guo)、(?)什(Shi)么(Me)大(Da)学(Xue)什(Shi)么(Me)专(Zhuan)业(Ye)、(?)有(You)什(Shi)么(Me)爱(Ai)好(Hao)就(Jiu)好(Hao)了(Liao)。(?)如(Ru)果(Guo)这(Zhe)样(Yang)回(Hui)答(Da),(?)你(Ni)的(De)自(Zi)我(Wo)介(Jie)绍(Shao)只(Zhi)能(Neng)算(Suan)是(Shi)30分(Fen)。(?)

“(?)面(Mian)试(Shi)官(Guan)最(Zui)想(Xiang)听(Ting)他(Ta)想(Xiang)知(Zhi)道(Dao)的(De)内(Nei)容(Rong)”(?),(?)换(Huan)位(Wei)思(Si)考(Kao)一(Yi)下(Xia),(?)假(Jia)如(Ru)你(Ni)是(Shi)面(Mian)试(Shi)官(Guan)最(Zui)想(Xiang)知(Zhi)道(Dao)什(Shi)么(Me)?(?)显(Xian)然(Ran),(?)就(Jiu)是(Shi)”(?)应(Ying)聘(Pin)者(Zhe)能(Neng)不(Bu)能(Neng)胜(Sheng)任(Ren)现(Xian)在(Zai)的(De)岗(Gang)位(Wei)”(?)。(?)所(Suo)以(Yi),(?)应(Ying)聘(Pin)者(Zhe)应(Ying)该(Gai)更(Geng)多(Duo)的(De)从(Cong)这(Zhe)个(Ge)角(Jiao)度(Du)出(Chu)发(Fa)思(Si)考(Kao)问(Wen)题(Ti)。(?)
所(Suo)以(Yi),(?)我(Wo)们(Men)一(Yi)般(Ban)建(Jian)议(Yi)应(Ying)聘(Pin)者(Zhe)在(Zai)自(Zi)我(Wo)介(Jie)绍(Shao)中(Zhong)侧(Ce)重(Zhong)于(Yu)自(Zi)己(Ji)“(?)实(Shi)战(Zhan)经(Jing)验(Yan)”(?)的(De)介(Jie)绍(Shao)。(?)比(Bi)如(Ru):(?)在(Zai)xxx公(Gong)司(Si)从(Cong)事(Shi)过(Guo)什(Shi)么(Me)工(Gong)作(Zuo)、(?)做(Zuo)过(Guo)什(Shi)么(Me)项(Xiang)目(Mu)、(?)我(Wo)为(Wei)什(Shi)么(Me)可(Ke)以(Yi)胜(Sheng)任(Ren)贵(Gui)公(Gong)司(Si)的(De)岗(Gang)位(Wei)。(?)这(Zhe)些(Xie)才(Cai)是(Shi)面(Mian)试(Shi)官(Guan)最(Zui)想(Xiang)听(Ting)到(Dao)的(De)内(Nei)容(Rong)。(?)
好(Hao)的(De)自(Zi)我(Wo)介(Jie)绍(Shao)应(Ying)该(Gai)分(Fen)如(Ru)下(Xia)几(Ji)个(Ge)部(Bu)分(Fen):(?)
a.实(Shi)战(Zhan)经(Jing)验(Yan)描(Miao)述(Shu)
实(Shi)战(Zhan)经(Jing)验(Yan)可(Ke)以(Yi)是(Shi)在(Zai)公(Gong)司(Si)的(De)工(Gong)作(Zuo)经(Jing)验(Yan)、(?)实(Shi)习(Xi)经(Jing)验(Yan)、(?)甚(Shen)至(Zhi)是(Shi)参(Can)与(Yu)大(Da)学(Xue)老(Lao)师(Shi)的(De)项(Xiang)目(Mu)都(Du)可(Ke)以(Yi)。(?)你(Ni)需(Xu)要(Yao)告(Gao)诉(Su)面(Mian)试(Shi)官(Guan)实(Shi)战(Zhan)经(Jing)验(Yan)的(De)公(Gong)司(Si)名(Ming)称(Cheng)、(?)时(Shi)间(Jian)多(Duo)长(Chang)、(?)做(Zuo)了(Liao)什(Shi)么(Me)项(Xiang)目(Mu)、(?)有(You)什(Shi)么(Me)收(Shou)获(Huo)。(?)说(Shuo)到(Dao)此(Ci)处(Chu),(?)你(Ni)这(Zhe)个(Ge)问(Wen)题(Ti)就(Jiu)可(Ke)以(Yi)拿(Na)到(Dao)60分(Fen)了(Liao)。(?)
b.为(Wei)什(Shi)么(Me)来(Lai)应(Ying)聘(Pin)贵(Gui)公(Gong)司(Si)
根(Gen)据(Ju)自(Zi)己(Ji)网(Wang)上(Shang)查(Cha)到(Dao)的(De)该(Gai)公(Gong)司(Si)的(De)基(Ji)本(Ben)信(Xin)息(Xi),(?)可(Ke)以(Yi)说(Shuo)一(Yi)下(Xia)对(Dui)公(Gong)司(Si)的(De)了(Liao)解(Jie)情(Qing)况(Kuang):(?)看(Kan)好(Hao)公(Gong)司(Si)未(Wei)来(Lai)发(Fa)展(Zhan)前(Qian)景(Jing)、(?)想(Xiang)进(Jin)来(Lai)以(Yi)后(Hou)多(Duo)多(Duo)学(Xue)习(Xi)。(?)说(Shuo)到(Dao)此(Ci)处(Chu),(?)你(Ni)这(Zhe)个(Ge)问(Wen)题(Ti)可(Ke)以(Yi)拿(Na)到(Dao)80分(Fen)。(?)
c.我(Wo)可(Ke)以(Yi)胜(Sheng)任(Ren)贵(Gui)公(Gong)司(Si)这(Zhe)个(Ge)岗(Gang)位(Wei)的(De)原(Yuan)因(Yin)
前(Qian)面(Mian)两(Liang)点(Dian)说(Shuo)完(Wan)后(Hou)。(?)结(Jie)合(He)自(Zi)己(Ji)的(De)实(Shi)战(Zhan)经(Jing)历(Li)和(He)应(Ying)聘(Pin)公(Gong)司(Si)的(De)情(Qing)况(Kuang),(?)告(Gao)诉(Su)面(Mian)试(Shi)官(Guan)我(Wo)可(Ke)以(Yi)胜(Sheng)任(Ren)目(Mu)前(Qian)的(De)岗(Gang)位(Wei)、(?)并(Bing)且(Qie)有(You)决(Jue)心(Xin)干(Gan)好(Hao)。(?)说(Shuo)到(Dao)此(Ci)处(Chu),(?)你(Ni)这(Zhe)个(Ge)问(Wen)题(Ti)可(Ke)以(Yi)拿(Na)到(Dao)100分(Fen)。(?)静(Jing)等(Deng)面(Mian)试(Shi)官(Guan)欣(Xin)赏(Shang)的(De)、(?)色(Se)眯(Mi)眯(Mi)的(De)眼(Yan)神(Shen)吧(Ba)。(?)
2.你(Ni)的(De)优(You)点(Dian)是(Shi)什(Shi)么(Me)?(?)
优(You)缺(Que)点(Dian)的(De)描(Miao)述(Shu)是(Shi)想(Xiang)看(Kan)看(Kan)应(Ying)聘(Pin)者(Zhe)对(Dui)自(Zi)己(Ji)的(De)了(Liao)解(Jie)程(Cheng)度(Du)。(?)求(Qiu)职(Zhi)者(Zhe)关(Guan)于(Yu)优(You)点(Dian)的(De)描(Miao)述(Shu)一(Yi)定(Ding)要(Yao)跟(Gen)工(Gong)作(Zuo)相(Xiang)关(Guan),(?)并(Bing)且(Qie)有(You)具(Ju)体(Ti)的(De)案(An)例(Li)描(Miao)述(Shu)你(Ni)的(De)优(You)点(Dian)。(?)
面(Mian)试(Shi)官(Guan)通(Tong)常(Chang)喜(Xi)欢(Huan)具(Ju)备(Bei)如(Ru)下(Xia)优(You)点(Dian)的(De)程(Cheng)序(Xu)猿(Yuan):(?)
1. 态(Tai)度(Du)好(Hao)
2. 技(Ji)术(Shu)实(Shi)力(Li)强(Qiang)
3. 热(Re)爱(Ai)技(Ji)术(Shu)、(?)学(Xue)习(Xi)能(Neng)力(Li)强(Qiang)
大(Da)家(Jia)描(Miao)述(Shu)的(De)自(Zi)己(Ji)的(De)优(You)点(Dian)可(Ke)以(Yi)围(Wei)绕(Rao)这(Zhe)三(San)点(Dian)展(Zhan)开(Kai)。(?)可(Ke)以(Yi)参(Can)考(Kao):(?)《(?)公(Gong)司(Si)喜(Xi)欢(Huan)什(Shi)么(Me)样(Yang)的(De)程(Cheng)序(Xu)猿(Yuan)》(?)。(?)
3.你(Ni)的(De)缺(Que)点(Dian)是(Shi)什(Shi)么(Me)?(?)
求(Qiu)职(Zhi)者(Zhe)面(Mian)对(Dui)这(Zhe)个(Ge)问(Wen)题(Ti)一(Yi)定(Ding)要(Yao)把(Ba)握(Wo)一(Yi)个(Ge)原(Yuan)则(Ze):(?)“(?)缺(Que)点(Dian)不(Bu)能(Neng)跟(Gen)工(Gong)作(Zuo)相(Xiang)关(Guan)”(?)。(?)你(Ni)不(Bu)能(Neng)说(Shuo)“(?)我(Wo)的(De)缺(Que)点(Dian)就(Jiu)是(Shi)不(Bu)喜(Xi)欢(Huan)技(Ji)术(Shu)、(?)不(Bu)喜(Xi)欢(Huan)加(Jia)班(Ban)”(?),(?)那(Na)你(Ni)完(Wan)蛋(Dan)了(Liao)。(?)缺(Que)点(Dian)尽(Jin)量(Liang)不(Bu)跟(Gen)工(Gong)作(Zuo)相(Xiang)关(Guan)。(?)比(Bi)如(Ru):(?)我(Wo)觉(Jue)得(De)我(Wo)的(De)缺(Que)点(Dian)是(Shi)比(Bi)较(Jiao)内(Nei)向(Xiang)、(?)比(Bi)较(Jiao)宅(Zhai)。(?)周(Zhou)末(Mo)我(Wo)可(Ke)以(Yi)一(Yi)个(Ge)人(Ren)在(Zai)家(Jia)闷(Men)头(Tou)钻(Zuan)研(Yan)技(Ji)术(Shu)、(?)但(Dan)是(Shi)就(Jiu)是(Shi)不(Bu)想(Xiang)走(Zou)出(Chu)去(Qu)跟(Gen)别(Bie)人(Ren)去(Qu)玩(Wan)。(?)这(Zhe)方(Fang)面(Mian)我(Wo)觉(Jue)得(De)应(Ying)该(Gai)改(Gai)一(Yi)改(Gai)。(?)
缺(Que)点(Dian)也(Ye)不(Bu)能(Neng)说(Shuo)的(De)太(Tai)假(Jia)。(?)比(Bi)如(Ru):(?)我(Wo)觉(Jue)得(De)我(Wo)的(De)缺(Que)点(Dian)就(Jiu)是(Shi)工(Gong)作(Zuo)太(Tai)拼(Pin)命(Ming)了(Liao),(?)不(Bu)注(Zhu)意(Yi)身(Shen)体(Ti)。(?)这(Zhe)么(Me)一(Yi)说(Shuo),(?)面(Mian)试(Shi)官(Guan)立(Li)马(Ma)就(Jiu)喷(Pen)了(Liao)。(?)
4.对(Dui)我(Wo)们(Men)公(Gong)司(Si)了(Liao)解(Jie)吗(Ma)?(?)
我(Wo)一(Yi)直(Zhi)强(Qiang)调(Diao),(?)面(Mian)试(Shi)前(Qian)一(Yi)定(Ding)要(Yao)查(Cha)询(Xun)该(Gai)公(Gong)司(Si)相(Xiang)关(Guan)的(De)信(Xin)息(Xi)。(?)所(Suo)以(Yi),(?)这(Zhe)个(Ge)问(Wen)题(Ti)是(Shi)必(Bi)须(Xu)要(Yao)回(Hui)答(Da)的(De)。(?)如(Ru)果(Guo)面(Mian)试(Shi)官(Guan)没(Mei)问(Wen)你(Ni)这(Zhe)个(Ge)问(Wen)题(Ti)。(?)你(Ni)也(Ye)要(Yao)在(Zai)其(Qi)他(Ta)问(Wen)题(Ti)中(Zhong)说(Shuo)出(Chu)你(Ni)对(Dui)他(Ta)们(Men)公(Gong)司(Si)的(De)了(Liao)解(Jie)。(?)
5.为(Wei)什(Shi)么(Me)从(Cong)上(Shang)一(Yi)家(Jia)公(Gong)司(Si)离(Li)职(Zhi)?(?)
公(Gong)司(Si)都(Du)希(Xi)望(Wang)稳(Wen)定(Ding)、(?)有(You)培(Pei)养(Yang)价(Jia)值(Zhi)的(De)员(Yuan)工(Gong)。(?)因(Yin)此(Ci),(?)都(Du)会(Hui)特(Te)别(Bie)关(Guan)注(Zhu)你(Ni)的(De)离(Li)职(Zhi)理(Li)由(You)。(?)离(Li)职(Zhi)理(Li)由(You)尽(Jin)量(Liang)正(Zheng)能(Neng)量(Liang)、(?)客(Ke)观(Guan),(?)绝(Jue)对(Dui)不(Bu)能(Neng)表(Biao)示(Shi)对(Dui)上(Shang)一(Yi)家(Jia)公(Gong)司(Si)和(He)上(Shang)级(Ji)的(De)不(Bu)满(Man)。(?)比(Bi)如(Ru):(?)我(Wo)觉(Jue)得(De)上(Shang)一(Yi)个(Ge)公(Gong)司(Si)太(Tai)抠(Kou)了(Liao),(?)加(Jia)班(Ban)还(Huan)没(Mei)有(You)加(Jia)班(Ban)费(Fei)。(?)好(Hao)了(Liao),(?)你(Ni)这(Zhe)么(Me)负(Fu)能(Neng)量(Liang)的(De)回(Hui)答(Da),(?)等(Deng)于(Yu)判(Pan)了(Liao)自(Zi)己(Ji)死(Si)刑(Xing)。(?)哪(Na)个(Ge)公(Gong)司(Si)都(Du)是(Shi)抠(Kou)门(Men)的(De)、(?)IT行(Xing)业(Ye)加(Jia)班(Ban)普(Pu)遍(Bian)是(Shi)没(Mei)有(You)加(Jia)班(Ban)费(Fei)的(De)。(?)
6.如(Ru)何(He)看(Kan)待(Dai)加(Jia)班(Ban)?(?)
面(Mian)试(Shi)官(Guan)问(Wen)这(Zhe)个(Ge)问(Wen)题(Ti)显(Xian)然(Ran)是(Shi)他(Ta)们(Men)公(Gong)司(Si)经(Jing)常(Chang)加(Jia)班(Ban)的(De)。(?)如(Ru)果(Guo)你(Ni)确(Que)实(Shi)接(Jie)受(Shou)不(Bu)了(Liao)也(Ye)可(Ke)以(Yi)说(Shuo)出(Chu)来(Lai)。(?)但(Dan)是(Shi),(?)对(Dui)于(Yu)刚(Gang)入(Ru)行(Xing)的(De)年(Nian)轻(Qing)人(Ren)一(Yi)定(Ding)要(Yao)了(Liao)解(Jie),(?)加(Jia)班(Ban)是(Shi)非(Fei)常(Chang)正(Zheng)常(Chang)的(De)一(Yi)件(Jian)事(Shi)。(?)
回(Hui)答(Da)这(Zhe)个(Ge)问(Wen)题(Ti),(?)一(Yi)定(Ding)要(Yao)客(Ke)观(Guan)的(De)说(Shuo)。(?)你(Ni)说(Shuo)你(Ni)喜(Xi)欢(Huan)加(Jia)班(Ban),(?)这(Zhe)有(You)点(Dian)太(Tai)扯(Che)了(Liao)。(?)你(Ni)可(Ke)以(Yi)说(Shuo):(?)“(?)项(Xiang)目(Mu)紧(Jin)的(De)时(Shi)候(Hou),(?)加(Jia)班(Ban)也(Ye)很(Hen)正(Zheng)常(Chang)。(?)现(Xian)在(Zai)行(Xing)业(Ye)情(Qing)况(Kuang)就(Jiu)是(Shi)这(Zhe)样(Yang)的(De),(?)没(Mei)有(You)问(Wen)题(Ti)。(?)而(?)且(Qie),(?)我(Wo)还(Huan)年(Nian)轻(Qing),(?)能(Neng)扛(Kang)的(De)住(Zhu)”(?)。(?)
7.如(Ru)何(He)看(Kan)待(Dai)出(Chu)差(Cha)?(?)
出(Chu)差(Cha)在(Zai)有(You)的(De)人(Ren)眼(Yan)里(Li)看(Kan)是(Shi)辛(Xin)苦(Ku),(?)在(Zai)有(You)的(De)人(Ren)眼(Yan)里(Li)看(Kan)是(Shi)经(Jing)历(Li)。(?)有(You)的(De)年(Nian)轻(Qing)人(Ren)就(Jiu)特(Te)喜(Xi)欢(Huan)出(Chu)差(Cha),(?)感(Gan)觉(Jue)可(Ke)以(Yi)去(Qu)不(Bu)同(Tong)的(De)城(Cheng)市(Shi)、(?)有(You)不(Bu)同(Tong)的(De)体(Ti)验(Yan)。(?)对(Dui)于(Yu)求(Qiu)职(Zhi)者(Zhe)来(Lai)说(Shuo),(?)可(Ke)以(Yi)根(Gen)据(Ju)自(Zi)己(Ji)实(Shi)际(Ji)情(Qing)况(Kuang)说(Shuo)出(Chu)自(Zi)己(Ji)的(De)真(Zhen)实(Shi)感(Gan)受(Shou)。(?)如(Ru)果(Guo)你(Ni)确(Que)实(Shi)无(Wu)法(Fa)接(Jie)受(Shou)、(?)也(Ye)可(Ke)以(Yi)明(Ming)确(Que)拒(Ju)绝(Jue)。(?)
8.你(Ni)的(De)职(Zhi)业(Ye)规(Gui)划(Hua)是(Shi)什(Shi)么(Me)?(?)
这(Zhe)个(Ge)问(Wen)题(Ti)是(Shi)想(Xiang)了(Liao)解(Jie)求(Qiu)职(Zhi)者(Zhe)的(De)规(Gui)划(Hua)能(Neng)力(Li)、(?)对(Dui)于(Yu)自(Zi)己(Ji)是(Shi)否(Fou)有(You)规(Gui)划(Hua)?(?)求(Qiu)职(Zhi)者(Zhe)可(Ke)以(Yi)根(Gen)据(Ju)自(Zi)己(Ji)的(De)情(Qing)况(Kuang)正(Zheng)常(Chang)的(De)说(Shuo)出(Chu)自(Zi)己(Ji)的(De)职(Zhi)业(Ye)规(Gui)划(Hua),(?)不(Bu)能(Neng)太(Tai)低(Di)人(Ren)一(Yi)等(Deng)、(?)也(Ye)不(Bu)能(Neng)好(Hao)高(Gao)骛(Wu)远(Yuan)。(?)
一(Yi)般(Ban)较(Jiao)好(Hao)的(De)回(Hui)答(Da)如(Ru)下(Xia):(?)
“(?)这(Zhe)三(San)年(Nian),(?)我(Wo)还(Huan)是(Shi)想(Xiang)脚(Jiao)踏(Ta)实(Shi)地(Di)的(De)钻(Zuan)研(Yan)技(Ji)术(Shu)。(?)希(Xi)望(Wang)通(Tong)过(Guo)三(San)年(Nian)的(De)努(Nu)力(Li)成(Cheng)为(Wei)我(Wo)们(Men)这(Zhe)个(Ge)行(Xing)业(Ye)比(Bi)较(Jiao)牛(Niu)的(De)人(Ren)。(?)三(San)年(Nian)后(Hou),(?)我(Wo)想(Xiang)学(Xue)着(Zhuo)做(Zuo)管(Guan)理(Li)。(?)再(Zai)用(Yong)两(Liang)年(Nian)时(Shi)间(Jian),(?)一(Yi)共(Gong)五(Wu)年(Nian),(?)最(Zui)终(Zhong)可(Ke)以(Yi)独(Du)当(Dang)一(Yi)面(Mian)”(?)。(?)
三(San)年(Nian)钻(Zuan)研(Yan)技(Ji)术(Shu)、(?)显(Xian)得(De)你(Ni)很(Hen)踏(Ta)实(Shi)。(?)五(Wu)年(Nian)进(Jin)入(Ru)管(Guan)理(Li),(?)这(Zhe)是(Shi)一(Yi)个(Ge)有(You)心(Xin)人(Ren)的(De)正(Zheng)常(Chang)的(De)晋(Jin)升(Sheng)流(Liu)程(Cheng)。(?)

9.你(Ni)对(Dui)跳(Tiao)槽(Cao)怎(Zen)么(Me)看(Kan)?(?)
公(Gong)司(Si)非(Fei)常(Chang)不(Bu)喜(Xi)欢(Huan)频(Pin)繁(Fan)跳(Tiao)槽(Cao)的(De)人(Ren),(?)所(Suo)以(Yi)你(Ni)对(Dui)这(Zhe)个(Ge)问(Wen)题(Ti)的(De)回(Hui)答(Da)一(Yi)定(Ding)要(Yao)谨(Jin)慎(Shen)对(Dui)待(Dai)。(?)
经(Jing)典(Dian)回(Hui)答(Da)如(Ru)下(Xia):(?)
“(?)现(Xian)在(Zai)这(Zhe)个(Ge)行(Xing)业(Ye)大(Da)家(Jia)都(Du)很(Hen)浮(Fu)躁(Zao),(?)跳(Tiao)槽(Cao)频(Pin)繁(Fan)。(?)但(Dan)是(Shi),(?)我(Wo)并(Bing)不(Bu)喜(Xi)欢(Huan)频(Pin)繁(Fan)的(De)换(Huan)环(Huan)境(Jing)。(?)我(Wo)想(Xiang),(?)我(Wo)只(Zhi)要(Yao)在(Zai)一(Yi)个(Ge)公(Gong)司(Si)扎(Zha)扎(Zha)实(Shi)实(Shi)做(Zuo)下(Xia)去(Qu),(?)不(Bu)可(Ke)能(Neng)没(Mei)有(You)机(Ji)会(Hui)。(?)做(Zuo)好(Hao)了(Liao),(?)薪(Xin)水(Shui)不(Bu)可(Ke)能(Neng)比(Bi)跳(Tiao)槽(Cao)的(De)低(Di)”(?)。(?)

10.你(Ni)还(Huan)有(You)什(Shi)么(Me)问(Wen)题(Ti)要(Yao)问(Wen)我(Wo)吗(Ma)?(?)
这(Zhe)是(Shi)通(Tong)常(Chang)面(Mian)试(Shi)要(Yao)结(Jie)束(Shu)的(De)时(Shi)候(Hou)的(De)问(Wen)题(Ti)。(?)求(Qiu)职(Zhi)者(Zhe)一(Yi)定(Ding)不(Bu)能(Neng)说(Shuo):(?)“(?)我(Wo)没(Mei)有(You)问(Wen)题(Ti)”(?)。(?)一(Yi)下(Xia)子(Zi)就(Jiu)把(Ba)你(Ni)搞(Gao)得(De)很(Hen)low,(?)最(Zui)后(Hou)一(Yi)定(Ding)要(Yao)问(Wen)一(Yi)个(Ge)问(Wen)题(Ti)问(Wen)回(Hui)去(Qu),(?)即(Ji)使(Shi)面(Mian)试(Shi)官(Guan)没(Mei)有(You)这(Zhe)个(Ge)问(Wen)题(Ti)。(?)结(Jie)束(Shu)时(Shi),(?)也(Ye)一(Yi)定(Ding)要(Yao)问(Wen)个(Ge)问(Wen)题(Ti)。(?)
求(Qiu)职(Zhi)者(Zhe)也(Ye)不(Bu)能(Neng)太(Tai)过(Guo)于(Yu)急(Ji)功(Gong)近(Jin)利(Li)的(De)问(Wen):(?)“(?)今(Jin)天(Tian)我(Wo)能(Neng)面(Mian)试(Shi)上(Shang)吗(Ma)?(?)你(Ni)能(Neng)给(Gei)我(Wo)多(Duo)少(Shao)钱(Qian)?(?)”(?)。(?)虽(Sui)然(Ran)你(Ni)很(Hen)想(Xiang)知(Zhi)道(Dao),(?)但(Dan)这(Zhe)么(Me)一(Yi)问(Wen),(?)你(Ni)的(De)档(Dang)次(Ci)立(Li)马(Ma)降(Jiang)低(Di)。(?)通(Tong)常(Chang)的(De)问(Wen)题(Ti)应(Ying)该(Gai)是(Shi)跟(Gen)工(Gong)作(Zuo)相(Xiang)关(Guan)。(?)
技(Ji)术(Shu)人(Ren)员(Yuan)可(Ke)以(Yi)这(Zhe)样(Yang)问(Wen):(?)
1. 今(Jin)天(Tian)我(Wo)们(Men)聊(Liao)到(Dao)的(De)某(Mou)个(Ge)技(Ji)术(Shu),(?)我(Wo)想(Xiang)回(Hui)去(Qu)好(Hao)好(Hao)研(Yan)究(Jiu)一(Yi)下(Xia),(?)您(Nin)这(Zhe)里(Li)有(You)什(Shi)么(Me)资(Zi)料(Liao)吗(Ma)?(?)
2. XX新(Xin)技(Ji)术(Shu),(?)您(Nin)怎(Zen)么(Me)看(Kan)他(Ta)的(De)发(Fa)展(Zhan)?(?)我(Wo)想(Xiang)趁(Chen)这(Zhe)几(Ji)天(Tian)时(Shi)间(Jian)宽(Kuan)裕(Yu),(?)学(Xue)习(Xi)一(Yi)下(Xia)。(?)
3. XXX技(Ji)术(Shu),(?)我(Wo)感(Gan)觉(Jue)您(Nin)好(Hao)像(Xiang)有(You)比(Bi)较(Jiao)深(Shen)的(De)研(Yan)究(Jiu)。(?)我(Wo)也(Ye)想(Xiang)学(Xue)学(Xue),(?)您(Nin)能(Neng)推(Tui)荐(Jian)些(Xie)资(Zi)料(Liao)吗(Ma)?(?)
类(Lei)似(Si)这(Zhe)样(Yang)的(De)问(Wen)题(Ti),(?)可(Ke)以(Yi)让(Rang)你(Ni)喜(Xi)爱(Ai)技(Ji)术(Shu)的(De)特(Te)点(Dian),(?)立(Li)马(Ma)暴(Bao)露(Lu)的(De)一(Yi)览(Lan)无(Wu)余(Yu)。(?)本(Ben)来(Lai)面(Mian)试(Shi)70分(Fen)的(De)你(Ni),(?)立(Li)刻(Ke)加(Jia)到(Dao)80分(Fen)。(?)而(?)你(Ni),(?)只(Zhi)是(Shi)问(Wen)了(Liao)个(Ge)问(Wen)题(Ti)而(?)已(Yi),(?)回(Hui)答(Da)的(De)竟(Jing)然(Ran)是(Shi)面(Mian)试(Shi)官(Guan)。(?)这(Zhe)么(Me)好(Hao)的(De)无(Wu)本(Ben)生(Sheng)意(Yi),(?)不(Bu)做(Zuo)是(Shi)不(Bu)是(Shi)有(You)点(Dian)可(Ke)惜(Xi)?(?)
5.面(Mian)试(Shi)后(Hou)一(Yi)定(Ding)要(Yao)总(Zong)结(Jie)
很(Hen)多(Duo)人(Ren)面(Mian)试(Shi)后(Hou),(?)就(Jiu)开(Kai)始(Shi)等(Deng)公(Gong)司(Si)的(De)消(Xiao)息(Xi),(?)焦(Jiao)躁(Zao)不(Bu)安(An),(?)这(Zhe)绝(Jue)对(Dui)是(Shi)错(Cuo)误(Wu)的(De)做(Zuo)法(Fa)。(?)面(Mian)试(Shi)后(Hou),(?)大(Da)局(Ju)已(Yi)定(Ding),(?)战(Zhan)争(Zheng)已(Yi)经(Jing)打(Da)完(Wan)了(Liao),(?)还(Huan)需(Xu)要(Yao)再(Zai)纠(Jiu)结(Jie)吗(Ma)?(?)我(Wo)们(Men)应(Ying)该(Gai)做(Zuo)的(De)事(Shi)是(Shi)为(Wei)下(Xia)一(Yi)场(Chang)面(Mian)试(Shi)做(Zuo)准(Zhun)备(Bei),(?)立(Li)刻(Ke)做(Zuo)面(Mian)试(Shi)的(De)总(Zong)结(Jie),(?)没(Mei)有(You)总(Zong)结(Jie)就(Jiu)没(Mei)有(You)进(Jin)步(Bu)。(?)
必(Bi)须(Xu)总(Zong)结(Jie)如(Ru)下(Xia)内(Nei)容(Rong):(?)
1. 列(Lie)出(Chu)问(Wen)了(Liao)哪(Na)些(Xie)问(Wen)题(Ti)?(?)
2. 列(Lie)出(Chu)自(Zi)己(Ji)回(Hui)答(Da)较(Jiao)好(Hao)的(De)问(Wen)题(Ti)
3. 列(Lie)出(Chu)自(Zi)己(Ji)回(Hui)答(Da)交(Jiao)差(Cha)的(De)问(Wen)题(Ti),(?)并(Bing)进(Jin)行(Xing)改(Gai)进(Jin)
心(Xin)态(Tai)上(Shang)不(Bu)要(Yao)等(Deng)待(Dai),(?)”(?)谋(Mou)事(Shi)在(Zai)人(Ren),(?)成(Cheng)事(Shi)在(Zai)天(Tian)”(?),(?)成(Cheng)了(Liao)好(Hao),(?)不(Bu)成(Cheng)也(Ye)无(Wu)所(Suo)谓(Wei),(?)就(Jiu)当(Dang)面(Mian)试(Shi)失(Shi)败(Bai)了(Liao)。(?)立(Li)刻(Ke),(?)投(Tou)入(Ru)紧(Jin)张(Zhang)的(De)复(Fu)习(Xi)和(He)下(Xia)一(Yi)次(Ci)面(Mian)试(Shi)中(Zhong)。(?)
一(Yi):(?)JAVA学(Xue)习(Xi)知(Zhi)识(Shi)点(Dian)明(Ming)细(Xi)以(Yi)及(Ji)配(Pei)套(Tao)视(Shi)频(Pin)
这(Zhe)是(Shi)JAVA工(Gong)程(Cheng)师(Shi)的(De)完(Wan)整(Zheng)学(Xue)习(Xi)路(Lu)径(Jing),(?)我(Wo)们(Men)也(Ye)会(Hui)公(Gong)布(Bu)大(Da)部(Bu)分(Fen)的(De)学(Xue)习(Xi)视(Shi)频(Pin),(?)这(Zhe)些(Xie)视(Shi)频(Pin)来(Lai)自(Zi)于(Yu)我(Wo)们(Men)的(De)线(Xian)下(Xia)培(Pei)训(Xun)课(Ke)程(Cheng),(?)大(Da)多(Duo)数(Shu)直(Zhi)接(Jie)录(Lu)制(Zhi)于(Yu)课(Ke)堂(Tang),(?)欢(Huan)迎(Ying)大(Da)家(Jia)下(Xia)载(Zai)或(Huo)者(Zhe)在(Zai)线(Xian)观(Guan)看(Kan)。(?)
我(Wo)们(Men)每(Mei)个(Ge)月(Yue)都(Du)会(Hui)更(Geng)新(Xin)相(Xiang)应(Ying)的(De)视(Shi)频(Pin),(?)大(Da)家(Jia)可(Ke)以(Yi)持(Chi)续(Xu)关(Guan)注(Zhu)下(Xia)载(Zai)地(Di)址(Zhi):(?)
http://tekxul.com/javashipin.html (java视(Shi)频(Pin)的(De)拼(Pin)音(Yin),(?)方(Fang)便(Bian)记(Ji)忆(Yi))
1.JAVASE
首(Shou)先(Xian)要(Yao)学(Xue)JavaSE,(?)这(Zhe)是(Shi)毋(Wu)庸(Yong)置(Zhi)疑(Yi)的(De)。(?)与(Yu)此(Ci)同(Tong)时(Shi),(?)和(He)JavaSE的(De)学(Xue)习(Xi)同(Tong)步(Bu),(?)建(Jian)议(Yi)大(Da)家(Jia)研(Yan)究(Jiu)一(Yi)下(Xia)数(Shu)据(Ju)结(Jie)构(Gou)与(Yu)算(Suan)法(Fa)。(?)
在(Zai)JavaSE完(Wan)成(Cheng)之(Zhi)后(Hou),(?)可(Ke)以(Yi)试(Shi)着(Zhuo)完(Wan)成(Cheng)一(Yi)些(Xie)小(Xiao)项(Xiang)目(Mu),(?)同(Tong)时(Shi)关(Guan)注(Zhu)一(Yi)下(Xia)设(She)计(Ji)模(Mo)式(Shi)的(De)内(Nei)容(Rong),(?)不(Bu)必(Bi)强(Qiang)求(Qiu)自(Zi)己(Ji)能(Neng)够(Gou)完(Wan)全(Quan)掌(Zhang)握(Wo)各(Ge)种(Zhong)细(Xi)节(Jie),(?)往(Wang)前(Qian)走(Zou)吧(Ba)。(?)
掌(Zhang)握(Wo)一(Yi)种(Zhong)编(Bian)程(Cheng)工(Gong)具(Ju),(?)比(Bi)如(Ru)说(Shuo)Eclipse。(?)当(Dang)然(Ran),(?)工(Gong)具(Ju)掌(Zhang)握(Wo)很(Hen)简(Jian)单(Dan),(?)大(Da)约(Yue)只(Zhi)需(Xu)要(Yao)30分(Fen)钟(Zhong)。(?)
建(Jian)议(Yi)大(Da)家(Jia)读(Du)北(Bei)京(Jing)尚(Shang)学(Xue)堂(Tang)的(De)《(?)实(Shi)战(Zhan)JAVA程(Cheng)序(Xu)设(She)计(Ji)》(?),(?)同(Tong)时(Shi)可(Ke)以(Yi)配(Pei)合(He)《(?)java300集(Ji)视(Shi)频(Pin)教(Jiao)程(Cheng)》(?)((?)好(Hao)吧(Ba),(?)书(Shu)是(Shi)我(Wo)写(Xie)的(De),(?)视(Shi)频(Pin)也(Ye)是(Shi)我(Wo)录(Lu)的(De)。(?)个(Ge)人(Ren)认(Ren)为(Wei)还(Huan)是(Shi)很(Hen)不(Bu)错(Cuo)的(De))(?)。(?)这(Zhe)里(Li)有(You)JAVASE讲(Jiang)解(Jie)、(?)有(You)项(Xiang)目(Mu)实(Shi)战(Zhan)、(?)有(You)数(Shu)据(Ju)结(Jie)构(Gou)、(?)有(You)算(Suan)法(Fa)、(?)有(You)JDK源(Yuan)码(Ma)解(Jie)读(Du)、(?)有(You)底(Di)层(Ceng)内(Nei)存(Cun)分(Fen)析(Xi)、(?)有(You)设(She)计(Ji)模(Mo)式(Shi),(?)从(Cong)一(Yi)开(Kai)始(Shi)就(Jiu)植(Zhi)入(Ru)了(Liao)“(?)高(Gao)手(Shou)思(Si)维(Wei)和(He)高(Gao)手(Shou)习(Xi)惯(Guan)”(?),(?) 可(Ke)以(Yi)说(Shuo)是(Shi)非(Fei)常(Chang)适(Shi)合(He)大(Da)学(Xue)生(Sheng)和(He)入(Ru)门(Men)学(Xue)习(Xi)的(De)人(Ren)使(Shi)用(Yong)。(?)
学(Xue)习(Xi)列(Lie)表(Biao)和(He)学(Xue)习(Xi)说(Shuo)明(Ming)如(Ru)下(Xia):(?)
- 知(Zhi)识(Shi)块(Kuai)
- 1.JAVA入(Ru)门(Men)
- 2.面(Mian)向(Xiang)对(Dui)象(Xiang)基(Ji)础(Chu)
- 3.飞(Fei)机(Ji)小(Xiao)项(Xiang)目(Mu)(前(Qian)两(Liang)个(Ge)阶(Jie)段(Duan)练(Lian)习(Xi))
- 4.面(Mian)向(Xiang)对(Dui)象(Xiang)深(Shen)入(Ru)
- 5.常(Chang)用(Yong)类(Lei)
- 6.异(Yi)常(Chang)机(Ji)制(Zhi)
- 7.容(Rong)器(Qi)和(He)数(Shu)据(Ju)结(Jie)构(Gou)
- 8.IO流(Liu)技(Ji)术(Shu)
- 9.多(Duo)线(Xian)程(Cheng)
- 10.网(Wang)络(Luo)编(Bian)程(Cheng)
- 11.手(Shou)写(Xie)服(Fu)务(Wu)器(Qi)((?)java基(Ji)础(Chu)集(Ji)大(Da)成(Cheng)者(Zhe))(?)
- 12.注(Zhu)解(Jie)、(?)反(Fan)射(She)机(Ji)制(Zhi)、(?)字(Zi)节(Jie)码(Ma)
- 13.GOF23种(Zhong)设(She)计(Ji)模(Mo)式(Shi)
- 14.正(Zheng)则(Ze)表(Biao)达(Da)式(Shi)和(He)文(Wen)本(Ben)操(Cao)作(Zuo)
- 15.JDBC数(Shu)据(Ju)库(Ku)操(Cao)作(Zuo)((?)可(Ke)在(Zai)学(Xue)完(Wan)数(Shu)据(Ju)库(Ku)后(Hou)学(Xue)习(Xi))(?)
- 16.手(Shou)写(Xie)SORM框(Kuang)架(Jia)((?)学(Xue)有(You)余(Yu)力(Li)的(De)同(Tong)学(Xue)学(Xue)习(Xi))(?)
对(Dui)于(Yu)基(Ji)础(Chu)的(De)同(Tong)学(Xue),(?)建(Jian)议(Yi)大(Da)家(Jia)学(Xue)习(Xi)一(Yi)下(Xia)预(Yu)科(Ke)阶(Jie)段(Duan)((?)大(Da)约(Yue)2小(Xiao)时(Shi))(?)。(?)对(Dui)于(Yu)整(Zheng)个(Ge)行(Xing)业(Ye)、(?)JAVA技(Ji)术(Shu)体(Ti)系(Xi)、(?)就(Jiu)业(Ye)流(Liu)程(Cheng)、(?)职(Zhi)业(Ye)发(Fa)展(Zhan)都(Du)会(Hui)有(You)个(Ge)基(Ji)本(Ben)的(De)认(Ren)识(Shi)和(He)了(Liao)解(Jie)。(?)
2.数(Shu)据(Ju)库(Ku)
数(Shu)据(Ju)库(Ku)是(Shi)程(Cheng)序(Xu)员(Yuan)必(Bi)学(Xue)的(De)技(Ji)术(Shu),(?)大(Da)家(Jia)可(Ke)以(Yi)选(Xuan)择(Ze)Oracle或(Huo)者(Zhe)MySQL开(Kai)始(Shi)。(?)学(Xue)数(Shu)据(Ju)库(Ku)时(Shi),(?)重(Zhong)点(Dian)掌(Zhang)握(Wo)SQL语(Yu)言(Yan)、(?)熟(Shu)悉(Xi)各(Ge)种(Zhong)查(Cha)询(Xun)、(?)数(Shu)据(Ju)库(Ku)设(She)计(Ji)范(Fan)式(Shi)。(?)这(Zhe)也(Ye)是(Shi)以(Yi)后(Hou)工(Gong)作(Zuo)中(Zhong)常(Chang)用(Yong)、(?)面(Mian)试(Shi)和(He)笔(Bi)试(Shi)中(Zhong)常(Chang)考(Kao)的(De)内(Nei)容(Rong)
再(Zai)学(Xue)习(Xi)JDBC技(Ji)术(Shu),(?)这(Zhe)样(Yang)就(Jiu)可(Ke)以(Yi)用(Yong)Java操(Cao)作(Zuo)数(Shu)据(Ju)库(Ku)了(Liao)。(?)

大(Da)家(Jia)可(Ke)以(Yi)按(An)照(Zhao)如(Ru)下(Xia)顺(Shun)序(Xu)学(Xue)习(Xi):(?)
- 知(Zhi)识(Shi)块(Kuai)
- 1.Oracle数(Shu)据(Ju)库(Ku)安(An)装(Zhuang)和(He)配(Pei)置(Zhi)、(?)客(Ke)户(Hu)端(Duan)使(Shi)用(Yong)
- 2.Mysql数(Shu)据(Ju)库(Ku)的(De)安(An)装(Zhuang)和(He)配(Pei)置(Zhi)、(?)客(Ke)户(Hu)端(Duan)使(Shi)用(Yong)
- 3.SQL语(Yu)言(Yan)
- 4.SQL语(Yu)言(Yan)强(Qiang)化(Hua)((?)查(Cha)询(Xun)深(Shen)入(Ru))(?)
- 5.数(Shu)据(Ju)库(Ku)设(She)计(Ji)范(Fan)式(Shi)
- 6.项(Xiang)目(Mu)数(Shu)据(Ju)库(Ku)表(Biao)设(She)计(Ji)核(He)心(Xin)
- 7.PL/SQL
3.网(Wang)页(Ye)设(She)计(Ji)和(He)开(Kai)发(Fa)
互(Hu)联(Lian)网(Wang)时(Shi)代(Dai),(?)不(Bu)学(Xue)习(Xi)网(Wang)页(Ye)知(Zhi)识(Shi)的(De)程(Cheng)序(Xu)员(Yuan)不(Bu)是(Shi)好(Hao)司(Si)机(Ji)。(?)HTML、(?)CSS、(?)JavaScript、(?)ajax,(?)这(Zhe)些(Xie)东(Dong)西(Xi)是(Shi)做(Zuo)web项(Xiang)目(Mu)必(Bi)需(Xu)内(Nei)容(Rong)。(?)当(Dang)然(Ran),(?)作(Zuo)为(Wei)java程(Cheng)序(Xu)员(Yuan)不(Bu)需(Xu)要(Yao)学(Xue)的(De)很(Hen)深(Shen)入(Ru),(?)熟(Shu)悉(Xi)即(Ji)可(Ke)。(?)毕(Bi)竟(Jing),(?)前(Qian)端(Duan)工(Gong)程(Cheng)师(Shi)也(Ye)是(Shi)一(Yi)个(Ge)需(Xu)要(Yao)学(Xue)习(Xi)4-5个(Ge)月(Yue)的(De)专(Zhuan)门(Men)岗(Gang)位(Wei)。(?)

4.Servlet/ JSP和(He)企(Qi)业(Ye)级(Ji)项(Xiang)目(Mu)开(Kai)发(Fa)
Servlet/JSP是(Shi)JAVAEE的(De)核(He)心(Xin)内(Nei)容(Rong),(?)必(Bi)须(Xu)作(Zuo)为(Wei)重(Zhong)点(Dian)掌(Zhang)握(Wo)。(?)学(Xue)完(Wan)基(Ji)本(Ben)知(Zhi)识(Shi)后(Hou),(?)做(Zuo)一(Yi)些(Xie)项(Xiang)目(Mu)吧(Ba)。(?)比(Bi)如(Ru):(?)BBS、(?)留(Liu)言(Yan)系(Xi)统(Tong)、(?)学(Xue)籍(Ji)管(Guan)理(Li)、(?)商(Shang)城(Cheng)、(?)客(Ke)户(Hu)关(Guan)系(Xi)管(Guan)理(Li)等(Deng)。(?)刚(Gang)开(Kai)始(Shi)找(Zhao)一(Yi)些(Xie)业(Ye)务(Wu)逻(Luo)辑(Ji)比(Bi)较(Jiao)简(Jian)单(Dan)的(De)做(Zuo)一(Yi)做(Zuo)。(?)只(Zhi)有(You)通(Tong)过(Guo)开(Kai)发(Fa)项(Xiang)目(Mu)、(?)调(Diao)试(Shi)项(Xiang)目(Mu)才(Cai)能(Neng)真(Zhen)正(Zheng)的(De)掌(Zhang)握(Wo)学(Xue)到(Dao)的(De)知(Zhi)识(Shi),(?)真(Zhen)正(Zheng)的(De)开(Kai)启(Qi)自(Zi)己(Ji)的(De)“(?)JAVA腾(Teng)飞(Fei)之(Zhi)路(Lu)”(?)。(?)
5.SSM框(Kuang)架(Jia)((?)Spring、(?)Spring MVC、(?)Mybatis)(?)
Spring 是(Shi)java程(Cheng)序(Xu)员(Yuan)必(Bi)须(Xu)掌(Zhang)握(Wo)的(De)一(Yi)个(Ge)框(Kuang)架(Jia),(?)已(Yi)经(Jing)形(Xing)成(Cheng)了(Liao)事(Shi)实(Shi)上(Shang)的(De)行(Xing)业(Ye)标(Biao)准(Zhun)。(?) 刚(Gang)开(Kai)始(Shi)学(Xue)习(Xi)一(Yi)下(Xia)“(?)IOC + AOP”(?)。(?) 依(Yi)赖(Lai)注(Zhu)入(Ru) +(?) 面(Mian)向(Xiang)切(Qie)面(Mian),(?)嗯(N),(?)完(Wan)善(Shan)的(De)旅(Lu)程(Cheng)
Spring MVC是(Shi)典(Dian)型(Xing)的(De)MVC框(Kuang)架(Jia),(?)企(Qi)业(Ye)非(Fei)常(Chang)流(Liu)行(Xing)。(?)已(Yi)经(Jing)超(Chao)过(Guo)struts2成(Cheng)为(Wei)行(Xing)业(Ye)第(Di)一(Yi)。(?)
Mybatis是(Shi)经(Jing)典(Dian)的(De)ORM框(Kuang)架(Jia),(?)让(Rang)我(Wo)们(Men)可(Ke)以(Yi)用(Yong)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)方(Fang)式(Shi)从(Cong)容(Rong)操(Cao)作(Zuo)数(Shu)据(Ju)库(Ku)。(?)已(Yi)经(Jing)超(Chao)过(Guo)Hibernate成(Cheng)为(Wei)第(Di)一(Yi)的(De)ORM框(Kuang)架(Jia)。(?)
学(Xue)完(Wan)三(San)个(Ge)经(Jing)典(Dian)框(Kuang)架(Jia)后(Hou),(?)整(Zheng)合(He)他(Ta)们(Men)吧(Ba)。(?)然(Ran)后(Hou),(?)开(Kai)始(Shi)做(Zuo)一(Yi)些(Xie)商(Shang)业(Ye)项(Xiang)目(Mu)加(Jia)深(Shen)自(Zi)己(Ji)的(De)功(Gong)力(Li)。(?)这(Zhe)里(Li)可(Ke)以(Yi)找(Zhao)一(Yi)些(Xie)相(Xiang)对(Dui)复(Fu)杂(Za)的(De)商(Shang)业(Ye)项(Xiang)目(Mu),(?)加(Jia)上(Shang)复(Fu)杂(Za)的(De)业(Ye)务(Wu)逻(Luo)辑(Ji)。(?)这(Zhe)样(Yang),(?)才(Cai)能(Neng)在(Zai)你(Ni)的(De)简(Jian)历(Li)中(Zhong)加(Jia)入(Ru)浓(Nong)重(Zhong)的(De)一(Yi)笔(Bi)。(?)
6.各(Ge)种(Zhong)JAVA新(Xin)技(Ji)术(Shu)和(He)大(Da)型(Xing)项(Xiang)目(Mu)的(De)整(Zheng)合(He)
其(Qi)他(Ta)一(Yi)些(Xie)工(Gong)作(Zuo)中(Zhong)可(Ke)能(Neng)会(Hui)用(Yong)到(Dao)的(De)技(Ji)术(Shu),(?)也(Ye)需(Xu)要(Yao)大(Da)家(Jia)学(Xue)习(Xi):(?) Maven、(?)Shiro、(?)Nginx、(?)Lucene、(?)Solr、(?)Redis、(?)Dubbo、(?)Zookeeper 等(Deng)。(?)
这(Zhe)些(Xie)技(Ji)术(Shu)的(De)学(Xue)习(Xi),(?)不(Bu)需(Xu)要(Yao)特(Te)别(Bie)深(Shen)入(Ru),(?)毕(Bi)竟(Jing)一(Yi)个(Ge)企(Qi)业(Ye)并(Bing)不(Bu)是(Shi)使(Shi)用(Yong)所(Suo)有(You)的(De)技(Ji)术(Shu)。(?)但(Dan)是(Shi),(?)为(Wei)了(Liao)搭(Da)建(Jian)“(?)java技(Ji)术(Shu)体(Ti)系(Xi)”(?),(?)必(Bi)须(Xu)学(Xue)习(Xi)这(Zhe)些(Xie)内(Nei)容(Rong)。(?)这(Zhe)样(Yang),(?)你(Ni)就(Jiu)形(Xing)成(Cheng)了(Liao)完(Wan)完(Wan)整(Zheng)整(Zheng)的(De)“(?)系(Xi)统(Tong)”(?)。(?)工(Gong)作(Zuo)中(Zhong),(?)就(Jiu)可(Ke)以(Yi)从(Cong)容(Rong)应(Ying)对(Dui)各(Ge)种(Zhong)各(Ge)样(Yang)的(De)问(Wen)题(Ti)。(?)
记(Ji)住(Zhu):(?)搭(Da)建(Jian)体(Ti)系(Xi),(?)要(Yao)比(Bi)钻(Zuan)研(Yan)某(Mou)个(Ge)知(Zhi)识(Shi)点(Dian)的(De)细(Xi)节(Jie)重(Zhong)要(Yao)的(De)多(Duo)。(?)不(Bu)要(Yao)因(Yin)为(Wei)某(Mou)个(Ge)细(Xi)节(Jie)而(?)耽(Dan)误(Wu)搭(Da)建(Jian)体(Ti)系(Xi)!(?)不(Bu)要(Yao)因(Yin)为(Wei)看(Kan)不(Bu)懂(Dong)某(Mou)个(Ge)单(Dan)词(Ci)就(Jiu)停(Ting)止(Zhi)阅(Yue)读(Du)整(Zheng)篇(Pian)文(Wen)章(Zhang)!(?)
7.微(Wei)服(Fu)务(Wu)架(Jia)构(Gou)
企(Qi)业(Ye)和(He)服(Fu)务(Wu)提(Ti)供(Gong)商(Shang)正(Zheng)在(Zai)寻(Xun)找(Zhao)更(Geng)好(Hao)的(De)方(Fang)法(Fa)将(Jiang)应(Ying)用(Yong)程(Cheng)序(Xu)部(Bu)署(Shu)在(Zai)云(Yun)环(Huan)境(Jing)中(Zhong),(?)微(Wei)服(Fu)务(Wu)被(Bei)认(Ren)为(Wei)是(Shi)未(Wei)来(Lai)的(De)方(Fang)向(Xiang)。(?)通(Tong)过(Guo)将(Jiang)应(Ying)用(Yong)和(He)服(Fu)务(Wu)分(Fen)解(Jie)成(Cheng)更(Geng)小(Xiao)的(De)、(?)松(Song)散(San)耦(Ou)合(He)的(De)组(Zu)件(Jian),(?)它(Ta)们(Men)可(Ke)以(Yi)更(Geng)加(Jia)容(Rong)易(Yi)升(Sheng)级(Ji)和(He)扩(Kuo)展(Zhan)。(?)
目(Mu)前(Qian),(?)越(Yue)来(Lai)越(Yue)流(Liu)行(Xing)的(De)微(Wei)服(Fu)务(Wu)技(Ji)术(Shu)是(Shi)需(Xu)要(Yao)大(Da)家(Jia)重(Zhong)视(Shi)的(De)。(?)SpringBoot、(?)SpringData、(?)Springcloud相(Xiang)关(Guan)的(De)技(Ji)能(Neng)已(Yi)经(Jing)成(Cheng)为(Wei)JAVA程(Cheng)序(Xu)员(Yuan)必(Bi)备(Bei)的(De)技(Ji)能(Neng)了(Liao)。(?)在(Zai)后(Hou)面(Mian)的(De)面(Mian)试(Shi)中(Zhong)也(Ye)越(Yue)来(Lai)越(Yue)重(Zhong)要(Yao),(?)企(Qi)业(Ye)用(Yong)的(De)也(Ye)越(Yue)来(Lai)越(Yue)多(Duo)。(?)
8.一(Yi)定(Ding)要(Yao)做(Zuo)一(Yi)个(Ge)大(Da)项(Xiang)目(Mu)!(?)
学(Xue)了(Liao)这(Zhe)么(Me)多(Duo),(?)也(Ye)做(Zuo)了(Liao)一(Yi)些(Xie)小(Xiao)项(Xiang)目(Mu)。(?)最(Zui)后(Hou),(?)一(Yi)定(Ding)要(Yao)做(Zuo)一(Yi)个(Ge)大(Da)的(De)项(Xiang)目(Mu)整(Zheng)合(He)一(Yi)下(Xia)自(Zi)己(Ji)的(De)所(Suo)学(Xue)。(?)就(Jiu)像(Xiang)高(Gao)考(Kao)时(Shi)候(Hou)的(De)综(Zong)合(He)题(Ti)一(Yi)样(Yang),(?)这(Zhe)才(Cai)是(Shi)拉(La)开(Kai)差(Cha)距(Ju)的(De)关(Guan)键(Jian)。(?)
经(Jing)历(Li)一(Yi)个(Ge)大(Da)项(Xiang)目(Mu)的(De)锤(Chui)炼(Lian),(?)就(Jiu)能(Neng)“(?)百(Bai)炼(Lian)成(Cheng)钢(Gang)”(?)。(?)可(Ke)以(Yi)将(Jiang)几(Ji)个(Ge)月(Yue)所(Suo)有(You)的(De)知(Zhi)识(Shi)成(Cheng)体(Ti)系(Xi)的(De)应(Ying)用(Yong)起(Qi)来(Lai),(?)这(Zhe)是(Shi)成(Cheng)为(Wei)“(?)高(Gao)手(Shou)”(?)的(De)起(Qi)步(Bu)!(?)也(Ye)是(Shi)你(Ni)腾(Teng)飞(Fei)的(De)起(Qi)点(Dian)。(?)
二(?):(?)JAVA基(Ji)础(Chu)如(Ru)何(He)学(Xue)习(Xi),(?)才(Cai)能(Neng)又(You)快(Kuai)又(You)稳(Wen)?(?)
学(Xue)java编(Bian)程(Cheng),(?)一(Yi)般(Ban)有(You)两(Liang)种(Zhong)情(Qing)况(Kuang)。(?)一(Yi)种(Zhong)是(Shi)已(Yi)经(Jing)掌(Zhang)握(Wo)了(Liao)其(Qi)他(Ta)语(Yu)言(Yan),(?)那(Na)学(Xue)习(Xi)java比(Bi)较(Jiao)简(Jian)单(Dan),(?)语(Yu)言(Yan)只(Zhi)是(Shi)工(Gong)具(Ju),(?)编(Bian)程(Cheng)能(Neng)力(Li)才(Cai)是(Shi)根(Gen)本(Ben)。(?)另(Ling)一(Yi)种(Zhong)是(Shi)基(Ji)础(Chu),(?)对(Dui)于(Yu)编(Bian)程(Cheng)未(Wei)入(Ru)门(Men)或(Huo)者(Zhe)懵(Meng)懵(Meng)懂(Dong)懂(Dong)。(?)本(Ben)文(Wen)针(Zhen)对(Dui)第(Di)二(?)种(Zhong)情(Qing)况(Kuang)。(?)
作(Zuo)为(Wei)初(Chu)学(Xue)者(Zhe),(?)在(Zai)一(Yi)开(Kai)始(Shi)学(Xue)习(Xi)就(Jiu)要(Yao)培(Pei)养(Yang)良(Liang)好(Hao)的(De)习(Xi)惯(Guan)和(He)思(Si)维(Wei)方(Fang)式(Shi)。(?)因(Yin)此(Ci),(?)在(Zai)入(Ru)门(Men)的(De)时(Shi)候(Hou)除(Chu)了(Liao)学(Xue)着(Zhuo)写(Xie)代(Dai)码(Ma),(?)更(Geng)重(Zhong)要(Yao)的(De)是(Shi)这(Zhe)种(Zhong)习(Xi)惯(Guan)的(De)培(Pei)养(Yang)。(?)
企(Qi)业(Ye)要(Yao)求(Qiu):(?)程(Cheng)序(Xu)员(Yuan)既(Ji)有(You)实(Shi)战(Zhan)技(Ji)能(Neng)可(Ke)以(Yi)快(Kuai)速(Su)上(Shang)手(Shou),(?)也(Ye)内(Nei)功(Gong)扎(Zha)实(Shi)熟(Shu)悉(Xi)底(Di)层(Ceng)原(Yuan)理(Li)后(Hou)劲(Jin)十(Shi)足(Zu)。(?)因(Yin)此(Ci),(?)在(Zai)笔(Bi)试(Shi)和(He)面(Mian)试(Shi)考(Kao)察(Cha)时(Shi)候(Hou)也(Ye)是(Shi)结(Jie)合(He) “(?)底(Di)层(Ceng)原(Yuan)理(Li)、(?)数(Shu)据(Ju)结(Jie)构(Gou)、(?)实(Shi)战(Zhan)应(Ying)用(Yong)、(?)设(She)计(Ji)思(Si)维(Wei)”(?) 四(Si)方(Fang)面(Mian)进(Jin)行(Xing)考(Kao)察(Cha)。(?)
因(Yin)此(Ci),(?)作(Zuo)为(Wei)初(Chu)学(Xue)者(Zhe),(?)需(Xu)要(Yao)掌(Zhang)握(Wo)下(Xia)面(Mian)五(Wu)个(Ge)核(He)心(Xin):(?)
1.JAVA本(Ben)身(Shen)内(Nei)容(Rong)的(De)应(Ying)用(Yong)。(?)比(Bi)如(Ru):(?)一(Yi)些(Xie)类(Lei)的(De)字(Zi)面(Mian)用(Yong)法(Fa)。(?)
2.需(Xu)要(Yao)掌(Zhang)握(Wo)面(Mian)向(Xiang)对(Dui)象(Xiang)的(De)思(Si)维(Wei)模(Mo)式(Shi)。(?)
3.掌(Zhang)握(Wo)程(Cheng)序(Xu)基(Ji)于(Yu)内(Nei)存(Cun)底(Di)层(Ceng)的(De)运(Yun)行(Xing)方(Fang)式(Shi)。(?)这(Zhe)可(Ke)以(Yi)让(Rang)你(Ni)对(Dui)于(Yu)编(Bian)程(Cheng)理(Li)解(Jie)的(De)更(Geng)加(Jia)深(Shen)刻(Ke)。(?)
4.掌(Zhang)握(Wo)基(Ji)本(Ben)的(De)数(Shu)据(Ju)结(Jie)构(Gou)和(He)算(Suan)法(Fa)。(?)
5.开(Kai)始(Shi)会(Hui)写(Xie)项(Xiang)目(Mu),(?)将(Jiang)学(Xue)到(Dao)的(De)知(Zhi)识(Shi)融(Rong)会(Hui)贯(Guan)通(Tong)。(?)
所(Suo)以(Yi)我(Wo)们(Men)可(Ke)以(Yi)根(Gen)据(Ju)上(Shang)面(Mian)的(De)理(Li)论(Lun),(?)开(Kai)始(Shi)JAVA基(Ji)础(Chu)课(Ke)程(Cheng)的(De)学(Xue)习(Xi)了(Liao)。(?)
第(Di)一(Yi)步(Bu):(?)学(Xue)习(Xi)JAVA的(De)开(Kai)发(Fa)环(Huan)境(Jing)配(Pei)置(Zhi)、(?)开(Kai)发(Fa)第(Di)一(Yi)个(Ge)Java程(Cheng)序(Xu)。(?)也(Ye)建(Jian)议(Yi)大(Da)家(Jia)开(Kai)始(Shi)使(Shi)用(Yong)eclipse等(Deng)IDE,(?)不(Bu)必(Bi)纠(Jiu)结(Jie)是(Shi)不(Bu)是(Shi)一(Yi)定(Ding)要(Yao)从(Cong)记(Ji)事(Shi)本(Ben)开(Kai)始(Shi)。(?)
第(Di)二(?)步(Bu):(?)学(Xue)习(Xi)数(Shu)据(Ju)类(Lei)型(Xing)、(?)运(Yun)算(Suan)符(Fu)、(?)变(Bian)量(Liang)。(?)这(Zhe)是(Shi)编(Bian)程(Cheng)的(De)基(Ji)础(Chu),(?)是(Shi)程(Cheng)序(Xu)的(De)“(?)砖(Zhuan)块(Kuai)”(?)。(?)这(Zhe)些(Xie)内(Nei)容(Rong)大(Da)多(Duo)数(Shu)编(Bian)程(Cheng)语(Yu)言(Yan)都(Du)有(You),(?)而(?)且(Qie)非(Fei)常(Chang)类(Lei)似(Si)。(?)
第(Di)三(San)步(Bu):(?)学(Xue)习(Xi)控(Kong)制(Zhi)语(Yu)句(Ju)。(?)这(Zhe)是(Shi)编(Bian)程(Cheng)的(De)基(Ji)础(Chu),(?)是(Shi)程(Cheng)序(Xu)的(De)“(?)混(Hun)凝(Ning)土(Tu)”(?)。(?)有(You)了(Liao)控(Kong)制(Zhi)语(Yu)句(Ju)+变(Bian)量(Liang),(?)理(Li)论(Lun)上(Shang)你(Ni)就(Jiu)可(Ke)以(Yi)写(Xie)任(Ren)意(Yi)的(De)程(Cheng)序(Xu)了(Liao)。(?)因(Yin)此(Ci),(?)这(Zhe)是(Shi)进(Jin)入(Ru)程(Cheng)序(Xu)的(De)门(Men)槛(Jian),(?)需(Xu)要(Yao)大(Da)量(Liang)的(De)练(Lian)习(Xi)。(?)
第(Di)四(Si)步(Bu):(?)学(Xue)习(Xi)面(Mian)向(Xiang)对(Dui)象(Xiang)基(Ji)础(Chu)。(?)通(Tong)过(Guo)类(Lei)、(?)对(Dui)象(Xiang)、(?)包(Bao)等(Deng)基(Ji)本(Ben)概(Gai)念(Nian)讲(Jiang)解(Jie)。(?)学(Xue)习(Xi)的(De)时(Shi)候(Hou),(?)一(Yi)定(Ding)要(Yao)在(Zai)此(Ci)处(Chu)介(Jie)入(Ru)内(Nei)存(Cun)分(Fen)析(Xi),(?)这(Zhe)样(Yang)可(Ke)以(Yi)对(Dui)于(Yu)对(Dui)象(Xiang)等(Deng)知(Zhi)识(Shi)有(You)非(Fei)常(Chang)深(Shen)刻(Ke)的(De)理(Li)解(Jie)。(?)
第(Di)五(Wu)步(Bu):(?)继(Ji)续(Xu)面(Mian)向(Xiang)对(Dui)象(Xiang),(?)主(Zhu)要(Yao)包(Bao)含(Han)三(San)大(Da)特(Te)征(Zheng):(?)继(Ji)承(Cheng)、(?)封(Feng)装(Zhuang),(?)以(Yi)及(Ji)接(Jie)口(Kou)、(?)抽(Chou)象(Xiang)类(Lei)、(?)内(Nei)部(Bu)类(Lei)等(Deng)概(Gai)念(Nian)。(?)这(Zhe)些(Xie)概(Gai)念(Nian)需(Xu)要(Yao)掌(Zhang)握(Wo)。(?)但(Dan)是(Shi)对(Dui)于(Yu)初(Chu)学(Xue)者(Zhe)来(Lai)说(Shuo),(?)先(Xian)熟(Shu)悉(Xi)语(Yu)法(Fa)。(?)通(Tong)过(Guo)后(Hou)面(Mian)的(De)学(Xue)习(Xi)再(Zai)深(Shen)入(Ru)。(?)不(Bu)要(Yao)期(Qi)待(Dai)初(Chu)学(Xue)时(Shi)候(Hou)就(Jiu)能(Neng)深(Shen)刻(Ke)领(Ling)会(Hui)这(Zhe)些(Xie)概(Gai)念(Nian)。(?)
第(Di)六(Liu)步(Bu):(?)异(Yi)常(Chang)机(Ji)制(Zhi)。(?)Java程(Cheng)序(Xu)的(De)安(An)全(Quan)需(Xu)要(Yao)异(Yi)常(Chang)机(Ji)制(Zhi),(?)这(Zhe)是(Shi)必(Bi)学(Xue)内(Nei)容(Rong)。(?)当(Dang)然(Ran),(?)也(Ye)非(Fei)常(Chang)简(Jian)单(Dan)。(?)学(Xue)习(Xi)过(Guo)程(Cheng)中(Zhong),(?)先(Xian)不(Bu)要(Yao)揪(Jiu)着(Zhuo)什(Shi)么(Me)自(Zi)定(Ding)义(Yi)异(Yi)常(Chang)不(Bu)放(Fang),(?)学(Xue)会(Hui)基(Ji)本(Ben)用(Yong)法(Fa)即(Ji)可(Ke)。(?)
第(Di)七(Qi)步(Bu):(?)数(Shu)组(Zu)和(He)算(Suan)法(Fa)。(?)学(Xue)习(Xi)数(Shu)组(Zu)时(Shi),(?)注(Zhu)重(Zhong)结(Jie)合(He)循(Xun)环(Huan)管(Guan)理(Li)数(Shu)组(Zu)。(?)也(Ye)要(Yao)从(Cong)底(Di)层(Ceng)内(Nei)存(Cun)理(Li)解(Jie)数(Shu)组(Zu),(?)这(Zhe)既(Ji)是(Shi)学(Xue)数(Shu)组(Zu)也(Ye)是(Shi)复(Fu)习(Xi)面(Mian)向(Xiang)对(Dui)象(Xiang);(?)再(Zai)结(Jie)合(He)一(Yi)些(Xie)算(Suan)法(Fa),(?)比(Bi)如(Ru)排(Pai)序(Xu)和(He)搜(Sou)索(Suo)算(Suan)法(Fa),(?)既(Ji)练(Lian)习(Xi)数(Shu)组(Zu)的(De)用(Yong)法(Fa),(?)也(Ye)学(Xue)习(Xi)了(Liao)算(Suan)法(Fa)知(Zhi)识(Shi),(?)为(Wei)应(Ying)对(Dui)企(Qi)业(Ye)笔(Bi)试(Shi)和(He)面(Mian)试(Shi)做(Zuo)好(Hao)准(Zhun)备(Bei)。(?)
第(Di)八(Ba)步(Bu):(?)常(Chang)用(Yong)类(Lei)和(He)JDK源(Yuan)码(Ma)阅(Yue)读(Du)。(?)学(Xue)习(Xi)常(Chang)用(Yong)类(Lei)的(De)用(Yong)法(Fa):(?)包(Bao)装(Zhuang)类(Lei)、(?)字(Zi)符(Fu)串(Chuan)相(Xiang)关(Guan)类(Lei)、(?)实(Shi)践(Jian)类(Lei)、(?)Math类(Lei)、(?)File类(Lei)等(Deng)。(?)学(Xue)习(Xi)过(Guo)程(Cheng)中(Zhong),(?)只(Zhi)学(Xue)怎(Zen)么(Me)用(Yong)这(Zhe)些(Xie)API就(Jiu)及(Ji)格(Ge)了(Liao)。(?)要(Yao)优(You)秀(Xiu),(?)要(Yao)培(Pei)养(Yang)高(Gao)手(Shou)思(Si)维(Wei),(?)一(Yi)定(Ding)要(Yao)结(Jie)合(He)JDK源(Yuan)码(Ma),(?)一(Yi)开(Kai)始(Shi)就(Jiu)培(Pei)养(Yang)阅(Yue)读(Du)源(Yuan)码(Ma)的(De)习(Xi)惯(Guan)((?)虽(Sui)然(Ran),(?)可(Ke)能(Neng)大(Da)多(Duo)数(Shu)看(Kan)不(Bu)懂(Dong))(?)。(?)
第(Di)九(Jiu)步(Bu):(?)容(Rong)器(Qi)和(He)数(Shu)据(Ju)结(Jie)构(Gou)。(?)容(Rong)器(Qi)有(You):(?)List、(?)Set、(?)Map。(?)学(Xue)习(Xi)这(Zhe)三(San)种(Zhong)容(Rong)器(Qi)用(Yong)法(Fa)只(Zhi)需(Xu)要(Yao)一(Yi)两(Liang)个(Ge)小(Xiao)时(Shi)。(?)但(Dan),(?)此(Ci)时(Shi)你(Ni)要(Yao)结(Jie)合(He)数(Shu)据(Ju)结(Jie)构(Gou),(?)再(Zai)结(Jie)合(He)JDK源(Yuan)码(Ma)讲(Jiang)解(Jie)。(?)这(Zhe)就(Jiu)是(Shi)“(?)高(Gao)手(Shou)习(Xi)惯(Guan)”(?),(?)让(Rang)大(Da)家(Jia)既(Ji)学(Xue)习(Xi)容(Rong)器(Qi),(?)也(Ye)学(Xue)习(Xi)了(Liao)数(Shu)据(Ju)结(Jie)构(Gou),(?)打(Da)深(Shen)了(Liao)内(Nei)功(Gong),(?)应(Ying)对(Dui)企(Qi)业(Ye)面(Mian)试(Shi)绰(Chuo)绰(Chuo)有(You)余(Yu)。(?)
第(Di)十(Shi)步(Bu):(?)IO流(Liu)技(Ji)术(Shu)。(?)学(Xue)会(Hui)各(Ge)种(Zhong)常(Chang)用(Yong)流(Liu)即(Ji)可(Ke),(?)掌(Zhang)握(Wo)一(Yi)些(Xie)工(Gong)具(Ju)类(Lei)的(De)用(Yong)法(Fa),(?)比(Bi)如(Ru):(?)Apache IOUtil这(Zhe)样(Yang)会(Hui)让(Rang)你(Ni)在(Zai)以(Yi)后(Hou)使(Shi)用(Yong)时(Shi)效(Xiao)率(Lu)大(Da)增(Zeng)。(?)
第(Di)十(Shi)一(Yi)步(Bu):(?)多(Duo)线(Xian)程(Cheng)技(Ji)术(Shu)。(?)这(Zhe)也(Ye)是(Shi)笔(Bi)试(Shi)和(He)面(Mian)试(Shi)中(Zhong)常(Chang)见(Jian)的(De)内(Nei)容(Rong)。(?)我(Wo)们(Men)要(Yao)学(Xue)习(Xi)多(Duo)线(Xian)程(Cheng)基(Ji)本(Ben)使(Shi)用(Yong)、(?)生(Sheng)命(Ming)周(Zhou)期(Qi)、(?)状(Zhuang)态(Tai)转(Zhuan)化(Hua)。(?)如(Ru)果(Guo)学(Xue)有(You)余(Yu)力(Li),(?)学(Xue)习(Xi)一(Yi)下(Xia)生(Sheng)产(Chan)者(Zhe)消(Xiao)费(Fei)者(Zhe)模(Mo)式(Shi),(?)让(Rang)你(Ni)一(Yi)开(Kai)始(Shi)就(Jiu)具(Ju)备(Bei)架(Jia)构(Gou)的(De)思(Si)维(Wei);(?)既(Ji)然(Ran)学(Xue),(?)就(Jiu)按(An)照(Zhao)“(?)高(Gao)标(Biao)准(Zhun)”(?)要(Yao)求(Qiu)自(Zi)己(Ji)。(?)
第(Di)十(Shi)二(?)步(Bu):(?)网(Wang)络(Luo)编(Bian)程(Cheng)。(?)工(Gong)作(Zuo)中(Zhong)直(Zhi)接(Jie)用(Yong)到(Dao)的(De)不(Bu)多(Duo),(?)而(?)且(Qie)socket编(Bian)程(Cheng)范(Fan)式(Shi)差(Cha)不(Bu)多(Duo),(?)了(Liao)解(Jie)即(Ji)可(Ke)。(?)毕(Bi)竟(Jing)直(Zhi)接(Jie)让(Rang)你(Ni)编(Bian)写(Xie)基(Ji)于(Yu)socket底(Di)层(Ceng)代(Dai)码(Ma)的(De)情(Qing)况(Kuang)比(Bi)较(Jiao)少(Shao)见(Jian)。(?)
第(Di)十(Shi)三(San)步(Bu):(?)做(Zuo)个(Ge)项(Xiang)目(Mu)吧(Ba)。(?) 学(Xue)了(Liao)这(Zhe)么(Me)多(Duo),(?)不(Bu)做(Zuo)个(Ge)东(Dong)西(Xi)怎(Zen)么(Me)对(Dui)得(De)起(Qi)自(Zi)己(Ji)?(?)不(Bu)管(Guan)是(Shi)小(Xiao)游(You)戏(Xi)项(Xiang)目(Mu)也(Ye)好(Hao),(?)还(Huan)是(Shi)基(Ji)于(Yu)swing的(De)项(Xiang)目(Mu),(?)还(Huan)是(Shi)其(Qi)他(Ta)控(Kong)制(Zhi)台(Tai)项(Xiang)目(Mu)。(?)
大(Da)家(Jia)也(Ye)可(Ke)以(Yi)下(Xia)载(Zai)我(Wo)录(Lu)制(Zhi)的(De)《(?)尚(Shang)学(Xue)堂(Tang)JAVA300集(Ji)视(Shi)频(Pin)教(Jiao)程(Cheng)》(?),(?)已(Yi)经(Jing)上(Shang)百(Bai)万(Wan)人(Ren)在(Zai)学(Xue)习(Xi)了(Liao)。(?)基(Ji)本(Ben)上(Shang)贯(Guan)穿(Chuan)了(Liao)我(Wo)上(Shang)面(Mian)的(De)思(Si)想(Xiang),(?)有(You)知(Zhi)识(Shi)、(?)有(You)底(Di)层(Ceng)、(?)有(You)数(Shu)据(Ju)结(Jie)构(Gou)、(?)有(You)算(Suan)法(Fa)、(?)还(Huan)有(You)项(Xiang)目(Mu),(?)从(Cong)一(Yi)开(Kai)始(Shi)就(Jiu)培(Pei)养(Yang)你(Ni)的(De)“(?)高(Gao)手(Shou)思(Si)维(Wei)”(?)。(?)
三(San):(?)Python学(Xue)习(Xi)知(Zhi)识(Shi)点(Dian)以(Yi)及(Ji)配(Pei)套(Tao)视(Shi)频(Pin)
这(Zhe)是(Shi)Python工(Gong)程(Cheng)师(Shi)的(De)完(Wan)整(Zheng)学(Xue)习(Xi)路(Lu)径(Jing),(?)我(Wo)们(Men)会(Hui)公(Gong)布(Bu)大(Da)部(Bu)分(Fen)的(De)学(Xue)习(Xi)视(Shi)频(Pin),(?)这(Zhe)些(Xie)视(Shi)频(Pin)来(Lai)自(Zi)于(Yu)我(Wo)们(Men)线(Xian)下(Xia)培(Pei)训(Xun)课(Ke)程(Cheng),(?)大(Da)多(Duo)数(Shu)直(Zhi)接(Jie)录(Lu)制(Zhi)于(Yu)课(Ke)堂(Tang),(?)欢(Huan)迎(Ying)大(Da)家(Jia)免(Mian)费(Fei)下(Xia)载(Zai)或(Huo)者(Zhe)在(Zai)线(Xian)观(Guan)看(Kan)。(?)
我(Wo)们(Men)每(Mei)个(Ge)月(Yue)都(Du)会(Hui)更(Geng)新(Xin)相(Xiang)应(Ying)的(De)视(Shi)频(Pin),(?)大(Da)家(Jia)可(Ke)以(Yi)持(Chi)续(Xu)关(Guan)注(Zhu)下(Xia)载(Zai)地(Di)址(Zhi):(?)
http://tekxul.com/pythonshipin.html (python视(Shi)频(Pin)的(De)拼(Pin)音(Yin))
1.Python基(Ji)础(Chu)

“(?)人(Ren)生(Sheng)苦(Ku)短(Duan),(?)我(Wo)用(Yong)Python”(?), 随(Sui)着(Zhuo)人(Ren)工(Gong)智(Zhi)能(Neng)的(De)发(Fa)展(Zhan),(?)Python无(Wu)疑(Yi)是(Shi)现(Xian)在(Zai)热(Re)度(Du)最(Zui)高(Gao)的(De)语(Yu)言(Yan)。(?)从(Cong)“(?)小(Xiao)白(Bai)”(?)到(Dao)成(Cheng)为(Wei)一(Yi)个(Ge)合(He)格(Ge)的(De)Python程(Cheng)序(Xu)员(Yuan)首(Shou)先(Xian)要(Yao)先(Xian)迈(Mai)过(Guo)Python基(Ji)础(Chu)这(Zhe)个(Ge)门(Men)槛(Jian)。(?)
第(Di)一(Yi)步(Bu):(?)需(Xu)要(Yao)学(Xue)习(Xi)编(Bian)程(Cheng)最(Zui)基(Ji)本(Ben)的(De)知(Zhi)识(Shi):(?)变(Bian)量(Liang)、(?)数(Shu)据(Ju)类(Lei)型(Xing)、(?)控(Kong)制(Zhi)语(Yu)句(Ju)、(?)容(Rong)器(Qi)、(?)函(Han)数(Shu)和(He)文(Wen)件(Jian)操(Cao)作(Zuo)。(?)同(Tong)时(Shi),(?)我(Wo)们(Men)也(Ye)深(Shen)入(Ru)数(Shu)组(Zu)结(Jie)构(Gou)的(De)组(Zu)织(Zhi),(?)打(Da)扎(Zha)实(Shi)大(Da)家(Jia)的(De)基(Ji)本(Ben)功(Gong)。(?)
第(Di)二(?)步(Bu):(?)学(Xue)习(Xi)python的(De)面(Mian)向(Xiang)对(Dui)象(Xiang)机(Ji)制(Zhi),(?)并(Bing)学(Xue)习(Xi)一(Yi)些(Xie)常(Chang)用(Yong)的(De)设(She)计(Ji)模(Mo)式(Shi),(?)这(Zhe)些(Xie)都(Du)是(Shi)成(Cheng)为(Wei)Python编(Bian)程(Cheng)高(Gao)手(Shou)必(Bi)经(Jing)的(De)磨(Mo)练(Lian)。(?)并(Bing)通(Tong)过(Guo)一(Yi)个(Ge)项(Xiang)目(Mu)实(Shi)际(Ji)体(Ti)会(Hui)面(Mian)向(Xiang)对(Dui)象(Xiang)开(Kai)发(Fa)的(De)优(You)势(Shi)。(?)
第(Di)三(San)步(Bu):(?)还(Huan)需(Xu)要(Yao)了(Liao)解(Jie)python是(Shi)如(Ru)何(He)管(Guan)理(Li)内(Nei)存(Cun)的(De)以(Yi)及(Ji)很(Hen)多(Duo)高(Gao)级(Ji)特(Te)性(Xing);(?)学(Xue)习(Xi)内(Nei)存(Cun)管(Guan)理(Li)会(Hui)让(Rang)我(Wo)们(Men)更(Geng)深(Shen)入(Ru)掌(Zhang)握(Wo)python的(De)运(Yun)行(Xing)机(Ji)制(Zhi); 很(Hen)多(Duo)函(Han)数(Shu)式(Shi)编(Bian)程(Cheng)的(De)特(Te)性(Xing),(?)比(Bi)如(Ru)闭(Bi)包(Bao)、(?)装(Zhuang)饰(Shi)器(Qi)和(He)生(Sheng)成(Cheng)器(Qi),这(Zhe)些(Xie)都(Du)是(Shi)一(Yi)些(Xie)比(Bi)较(Jiao)难(Nan)掌(Zhang)握(Wo)的(De)概(Gai)念(Nian),(?)但(Dan)面(Mian)试(Shi)和(He)工(Gong)作(Zuo)中(Zhong)会(Hui)经(Jing)常(Chang)遇(Yu)到(Dao),(?)所(Suo)以(Yi)大(Da)家(Jia)也(Ye)必(Bi)须(Xu)掌(Zhang)握(Wo)。(?)
第(Di)四(Si)步(Bu):(?) 网(Wang)络(Luo)编(Bian)程(Cheng)中(Zhong)的(De)高(Gao)并(Bing)发(Fa)问(Wen)题(Ti)是(Shi)大(Da)型(Xing)互(Hu)联(Lian)网(Wang)企(Qi)业(Ye)必(Bi)须(Xu)面(Mian)对(Dui)的(De)核(He)心(Xin)问(Wen)题(Ti),(?)解(Jie)决(Jue)高(Gao)并(Bing)发(Fa)可(Ke)以(Yi)用(Yong)多(Duo)进(Jin)程(Cheng)、(?)多(Duo)线(Xian)程(Cheng),(?)python中(Zhong)还(Huan)有(You)协(Xie)程(Cheng)。(?)高(Gao)并(Bing)发(Fa)和(He)网(Wang)络(Luo)是(Shi)相(Xiang)关(Guan)的(De),(?)最(Zui)后(Hou)我(Wo)们(Men)会(Hui)利(Li)用(Yong)学(Xue)到(Dao)的(De)并(Bing)发(Fa)编(Bian)程(Cheng)的(De)知(Zhi)识(Shi)来(Lai)编(Bian)写(Xie)不(Bu)同(Tong)的(De)服(Fu)务(Wu)器(Qi)模(Mo)型(Xing)。(?)
上(Shang)面(Mian)四(Si)大(Da)块(Kuai)学(Xue)习(Xi)完(Wan)后(Hou),(?)你(Ni)已(Yi)经(Jing)具(Ju)备(Bei)了(Liao)比(Bi)较(Jiao)强(Qiang)的(De)python基(Ji)础(Chu),(?)但(Dan)是(Shi)离(Li)工(Gong)作(Zuo)要(Yao)求(Qiu)还(Huan)有(You)差(Cha)距(Ju)。(?)还(Huan)需(Xu)要(Yao)继(Ji)续(Xu)学(Xue)习(Xi)其(Qi)他(Ta)内(Nei)容(Rong)。(?)
2.Linux环(Huan)境(Jing)编(Bian)程(Cheng)基(Ji)础(Chu)

现(Xian)在(Zai)企(Qi)业(Ye)中(Zhong)不(Bu)管(Guan)是(Shi)Web项(Xiang)目(Mu),(?)还(Huan)是(Shi)数(Shu)据(Ju)库(Ku),(?)以(Yi)及(Ji)部(Bu)署(Shu)的(De)爬(Pa)虫(Chong),(?)更(Geng)不(Bu)要(Yao)说(Shuo)大(Da)数(Shu)据(Ju)处(Chu)理(Li),(?)甚(Shen)至(Zhi)是(Shi)人(Ren)工(Gong)智(Zhi)能(Neng),(?)绝(Jue)大(Da)多(Duo)数(Shu)都(Du)运(Yun)行(Xing)在(Zai)Linux系(Xi)统(Tong)内(Nei),(?)所(Suo)以(Yi)打(Da)好(Hao)一(Yi)个(Ge)Linux基(Ji)础(Chu)可(Ke)谓(Wei)是(Shi)必(Bi)备(Bei)技(Ji)能(Neng)。(?)
我(Wo)们(Men)将(Jiang)学(Xue)习(Xi)如(Ru)何(He)在(Zai)虚(Xu)拟(Ni)机(Ji)中(Zhong)安(An)装(Zhuang)Linux系(Xi)统(Tong),(?)在(Zai)Linux系(Xi)统(Tong)中(Zhong)安(An)装(Zhuang)各(Ge)种(Zhong)常(Chang)用(Yong)的(De)软(Ruan)件(Jian)。(?)学(Xue)习(Xi)如(Ru)何(He)配(Pei)置(Zhi)Linux系(Xi)统(Tong)的(De)网(Wang)络(Luo)。(?)学(Xue)习(Xi)使(Shi)用(Yong)Linux系(Xi)统(Tong)的(De)常(Chang)用(Yong)基(Ji)本(Ben)命(Ming)令(Ling)。(?)最(Zui)后(Hou)成(Cheng)为(Wei)一(Yi)个(Ge)Linux系(Xi)统(Tong)的(De)熟(Shu)练(Lian)管(Guan)理(Li)员(Yuan)。(?)
当(Dang)然(Ran),(?)我(Wo)们(Men)的(De)目(Mu)标(Biao)是(Shi)会(Hui)用(Yong)Linux,(?)熟(Shu)悉(Xi)相(Xiang)关(Guan)常(Chang)用(Yong)命(Ming)令(Ling)即(Ji)可(Ke)。(?)不(Bu)需(Xu)要(Yao)掌(Zhang)握(Wo)很(Hen)多(Duo)运(Yun)维(Wei)方(Fang)面(Mian)的(De)知(Zhi)识(Shi),(?)毕(Bi)竟(Jing)运(Yun)维(Wei)也(Ye)是(Shi)一(Yi)个(Ge)专(Zhuan)业(Ye)的(De)岗(Gang)位(Wei)。(?)
3.数(Shu)据(Ju)库(Ku)编(Bian)程(Cheng)基(Ji)础(Chu)
任(Ren)何(He)企(Qi)业(Ye)级(Ji)项(Xiang)目(Mu)都(Du)离(Li)不(Bu)开(Kai)数(Shu)据(Ju)库(Ku),(?)数(Shu)据(Ju)库(Ku)知(Zhi)识(Shi)是(Shi)程(Cheng)序(Xu)员(Yuan)的(De)必(Bi)备(Bei)技(Ji)能(Neng)。(?)大(Da)家(Jia)主(Zhu)要(Yao)学(Xue)习(Xi)现(Xian)在(Zai)各(Ge)大(Da)互(Hu)联(Lian)网(Wang)公(Gong)司(Si)最(Zui)常(Chang)用(Yong)的(De)数(Shu)据(Ju)库(Ku):(?)Mysql
当(Dang)然(Ran),(?)不(Bu)管(Guan)学(Xue)习(Xi)哪(Na)一(Yi)个(Ge)数(Shu)据(Ju)库(Ku)。(?)SQL语(Yu)言(Yan)是(Shi)必(Bi)须(Xu)要(Yao)深(Shen)入(Ru)掌(Zhang)握(Wo)的(De),(?)包(Bao)含(Han):(?)数(Shu)据(Ju)库(Ku)设(She)计(Ji)思(Si)想(Xiang)、(?)三(San)大(Da)范(Fan)式(Shi)以(Yi)及(Ji)SQL语(Yu)言(Yan)实(Shi)现(Xian)增(Zeng)、(?)删(Shan)、(?)改(Gai)、(?)查(Cha)最(Zui)基(Ji)本(Ben)的(De)操(Cao)作(Zuo)。(?)然(Ran)后(Hou),(?)也(Ye)需(Xu)要(Yao)掌(Zhang)握(Wo)Mysql一(Yi)些(Xie)基(Ji)本(Ben)的(De)操(Cao)作(Zuo)。(?)
4.网(Wang)页(Ye)编(Bian)程(Cheng)基(Ji)础(Chu)
目(Mu)前(Qian)软(Ruan)件(Jian)行(Xing)业(Ye)大(Da)多(Duo)数(Shu)的(De)项(Xiang)目(Mu)都(Du)是(Shi)基(Ji)于(Yu)B/S架(Jia)构(Gou),(?)即(Ji)在(Zai)浏(Liu)览(Lan)器(Qi)端(Duan)实(Shi)现(Xian)效(Xiao)果(Guo)展(Zhan)示(Shi)。(?)网(Wang)页(Ye)编(Bian)程(Cheng)也(Ye)是(Shi)每(Mei)个(Ge)程(Cheng)序(Xu)员(Yuan)必(Bi)懂(Dong)的(De)技(Ji)能(Neng)
本(Ben)阶(Jie)段(Duan)课(Ke)程(Cheng)主(Zhu)要(Yao)讲(Jiang)解(Jie)Web开(Kai)发(Fa)的(De)三(San)大(Da)基(Ji)础(Chu):(?)HTML5、(?)CSS3和(He)JavaScript语(Yu)言(Yan),(?)并(Bing)学(Xue)习(Xi)前(Qian)端(Duan)项(Xiang)目(Mu)中(Zhong)经(Jing)常(Chang)使(Shi)用(Yong)的(De)Jquery和(He)Ajax。(?)
对(Dui)于(Yu)python程(Cheng)序(Xu)员(Yuan)来(Lai)说(Shuo),(?)不(Bu)需(Xu)要(Yao)像(Xiang)前(Qian)端(Duan)程(Cheng)序(Xu)员(Yuan)那(Na)样(Yang)精(Jing)通(Tong)这(Zhe)部(Bu)分(Fen)内(Nei)容(Rong),(?)但(Dan)是(Shi)也(Ye)需(Xu)要(Yao)做(Zuo)到(Dao)熟(Shu)悉(Xi)。(?)
5.Django Web开(Kai)发(Fa)框(Kuang)架(Jia)
python也(Ye)越(Yue)来(Lai)越(Yue)多(Duo)的(De)被(Bei)用(Yong)在(Zai)开(Kai)发(Fa)WEB应(Ying)用(Yong)上(Shang),(?)这(Zhe)得(De)益(Yi)于(Yu)Django这(Zhe)个(Ge)强(Qiang)大(Da)的(De)WEB框(Kuang)架(Jia)。(?)
学(Xue)习(Xi)Django的(De)使(Shi)用(Yong),(?)要(Yao)深(Shen)入(Ru)了(Liao)解(Jie)Django中(Zhong)MVT的(De)开(Kai)发(Fa)模(Mo)式(Shi),(?)掌(Zhang)握(Wo)模(Mo)型(Xing)的(De)设(She)计(Ji)、(?)视(Shi)图(Tu)路(Lu)由(You)的(De)设(She)置(Zhi)和(He)模(Mo)板(Ban)。(?)并(Bing)在(Zai)最(Zui)后(Hou)带(Dai)领(Ling)大(Da)家(Jia)用(Yong)Django开(Kai)发(Fa)一(Yi)个(Ge)博(Bo)客(Ke)项(Xiang)目(Mu),(?)贯(Guan)穿(Chuan)所(Suo)有(You)Django的(De)常(Chang)用(Yong)特(Te)性(Xing)。(?)
python在(Zai)WEB应(Ying)用(Yong)开(Kai)发(Fa)方(Fang)向(Xiang)的(De)需(Xu)求(Qiu)在(Zai)近(Jin)段(Duan)时(Shi)间(Jian)逐(Zhu)步(Bu)增(Zeng)长(Chang),(?) 薪(Xin)水(Shui)范(Fan)围(Wei)在(Zai)10k-25k之(Zhi)间(Jian),(?)是(Shi)大(Da)家(Jia)学(Xue)完(Wan)python后(Hou)的(De)一(Yi)个(Ge)重(Zhong)要(Yao)就(Jiu)业(Ye)方(Fang)向(Xiang)。(?)
6.做(Zuo)一(Yi)个(Ge)项(Xiang)目(Mu)
学(Xue)完(Wan)Django,(?)必(Bi)须(Xu)做(Zuo)一(Yi)个(Ge)项(Xiang)目(Mu)。(?)将(Jiang)前(Qian)面(Mian)学(Xue)习(Xi)的(De)Python基(Ji)础(Chu)、(?)数(Shu)据(Ju)库(Ku)、(?)网(Wang)页(Ye)开(Kai)发(Fa)等(Deng)等(Deng)技(Ji)能(Neng)整(Zheng)合(He)起(Qi)来(Lai),(?)这(Zhe)样(Yang)才(Cai)能(Neng)学(Xue)以(Yi)致(Zhi)用(Yong)。(?)让(Rang)自(Zi)己(Ji)快(Kuai)速(Su)成(Cheng)长(Chang)起(Qi)来(Lai)。(?)
7.Tornado 异(Yi)步(Bu)编(Bian)程(Cheng)框(Kuang)架(Jia)
Tornado也(Ye)是(Shi)一(Yi)个(Ge)常(Chang)用(Yong)的(De)python WEB开(Kai)发(Fa)框(Kuang)架(Jia),(?)但(Dan)Tornado更(Geng)强(Qiang)大(Da)的(De)地(Di)方(Fang)是(Shi)它(Ta)的(De)异(Yi)步(Bu)IO处(Chu)理(Li)能(Neng)力(Li)。(?)在(Zai)真(Zhen)正(Zheng)的(De)项(Xiang)目(Mu)中(Zhong),(?)经(Jing)常(Chang)会(Hui)混(Hun)合(He)使(Shi)用(Yong)Django和(He)Torndao这(Zhe)两(Liang)大(Da)框(Kuang)架(Jia),(?)充(Chong)分(Fen)利(Li)用(Yong)Django的(De)方(Fang)便(Bian)快(Kuai)捷(Jie)和(He)Tornado的(De)高(Gao)负(Fu)载(Zai)来(Lai)解(Jie)决(Jue)项(Xiang)目(Mu)中(Zhong)的(De)实(Shi)际(Ji)问(Wen)题(Ti)。(?)
8.Python爬(Pa)虫(Chong)开(Kai)发(Fa)
由(You)于(Yu)近(Jin)年(Nian)大(Da)数(Shu)据(Ju)分(Fen)析(Xi)、(?)人(Ren)工(Gong)智(Zhi)能(Neng)都(Du)需(Xu)要(Yao)大(Da)量(Liang)的(De)数(Shu)据(Ju)做(Zuo)支(Zhi)持(Chi),(?)所(Suo)以(Yi)爬(Pa)虫(Chong)工(Gong)程(Cheng)师(Shi)的(De)需(Xu)求(Qiu)量(Liang)也(Ye)越(Yue)来(Lai)越(Yue)多(Duo),(?)有(You)经(Jing)验(Yan)的(De)爬(Pa)虫(Chong)工(Gong)程(Cheng)师(Shi)经(Jing)常(Chang)能(Neng)拿(Na)到(Dao)15k-25k的(De)工(Gong)资(Zi),(?)有(You)兴(Xing)趣(Qu)的(De)同(Tong)学(Xue)可(Ke)以(Yi)向(Xiang)这(Zhe)个(Ge)方(Fang)向(Xiang)发(Fa)展(Zhan)。(?)
首(Shou)先(Xian),(?)大(Da)家(Jia)要(Yao)理(Li)解(Jie)网(Wang)络(Luo)爬(Pa)虫(Chong)编(Bian)写(Xie)的(De)基(Ji)本(Ben)套(Tao)路(Lu),(?)了(Liao)解(Jie)网(Wang)络(Luo)爬(Pa)虫(Chong)编(Bian)写(Xie)的(De)各(Ge)种(Zhong)坑(Keng),(?)能(Neng)够(Gou)应(Ying)对(Dui)一(Yi)些(Xie)常(Chang)用(Yong)的(De)反(Fan)爬(Pa)虫(Chong)技(Ji)术(Shu),(?)能(Neng)够(Gou)应(Ying)对(Dui)动(Dong)态(Tai)网(Wang)站(Zhan)爬(Pa)取(Qu),(?)能(Neng)够(Gou)应(Ying)对(Dui)带(Dai)有(You)验(Yan)证(Zheng)码(Ma)的(De)网(Wang)站(Zhan)。(?)我(Wo)们(Men)还(Huan)要(Yao)学(Xue)习(Xi)一(Yi)些(Xie)做(Zuo)爬(Pa)虫(Chong)的(De)常(Chang)用(Yong)框(Kuang)架(Jia):(?)request,bs4,scrapy等(Deng)。(?)并(Bing)利(Li)用(Yong)scrapy结(Jie)合(He)redis实(Shi)现(Xian)分(Fen)布(Bu)式(Shi)爬(Pa)虫(Chong)的(De)开(Kai)发(Fa)。(?)
学(Xue)习(Xi)了(Liao)这(Zhe)些(Xie)技(Ji)术(Shu),(?)我(Wo)们(Men)就(Jiu)可(Ke)以(Yi)在(Zai)互(Hu)联(Lian)网(Wang)的(De)汪(Wang)洋(Yang)大(Da)海(Hai)中(Zhong)获(Huo)取(Qu)到(Dao)任(Ren)何(He)想(Xiang)要(Yao)的(De)数(Shu)据(Ju)。(?)
四(Si):(?)人(Ren)工(Gong)智(Zhi)能(Neng)学(Xue)习(Xi)知(Zhi)识(Shi)点(Dian)和(He)配(Pei)套(Tao)视(Shi)频(Pin)
人(Ren)工(Gong)智(Zhi)能(Neng)成(Cheng)为(Wei)了(Liao)IT行(Xing)业(Ye)未(Wei)来(Lai)几(Ji)十(Shi)年(Nian)极(Ji)其(Qi)重(Zhong)要(Yao)的(De)学(Xue)科(Ke)。(?)尚(Shang)学(Xue)堂(Tang)·(?)百(Bai)战(Zhan)程(Cheng)序(Xu)员(Yuan)开(Kai)设(She)了(Liao)完(Wan)整(Zheng)的(De)人(Ren)工(Gong)智(Zhi)能(Neng)课(Ke)程(Cheng),(?)由(You)从(Cong)欧(Ou)美(Mei)留(Liu)学(Xue)归(Gui)国(Guo)的(De)陈(Chen)博(Bo)老(Lao)师(Shi)领(Ling)衔(Xian)主(Zhu)讲(Jiang)。(?)
为(Wei)了(Liao)让(Rang)更(Geng)多(Duo)人(Ren)受(Shou)益(Yi),(?) 我(Wo)们(Men)会(Hui)陆(Lu)续(Xu)公(Gong)布(Bu)大(Da)部(Bu)分(Fen)的(De)学(Xue)习(Xi)视(Shi)频(Pin),(?)这(Zhe)些(Xie)视(Shi)频(Pin)来(Lai)自(Zi)于(Yu)我(Wo)们(Men)线(Xian)下(Xia)培(Pei)训(Xun)精(Jing)品(Pin)课(Ke)程(Cheng),(?)大(Da)多(Duo)数(Shu)直(Zhi)接(Jie)录(Lu)制(Zhi)于(Yu)课(Ke)堂(Tang),(?)欢(Huan)迎(Ying)大(Da)家(Jia)免(Mian)费(Fei)下(Xia)载(Zai)或(Huo)者(Zhe)在(Zai)线(Xian)观(Guan)看(Kan)。(?)
我(Wo)们(Men)每(Mei)个(Ge)月(Yue)都(Du)会(Hui)更(Geng)新(Xin)相(Xiang)应(Ying)的(De)视(Shi)频(Pin),(?)大(Da)家(Jia)可(Ke)以(Yi)关(Guan)注(Zhu)下(Xia)载(Zai)地(Di)址(Zhi)((?)人(Ren)工(Gong)智(Zhi)能(Neng)视(Shi)频(Pin)的(De)拼(Pin)音(Yin))(?):(?)
http://tekxul.com/rengongzhinengshipin.html
1. 机(Ji)器(Qi)学(Xue)习(Xi)
首(Shou)先(Xian)要(Yao)学(Xue)习(Xi)机(Ji)器(Qi)学(Xue)习(Xi)算(Suan)法(Fa),(?)这(Zhe)是(Shi)人(Ren)工(Gong)智(Zhi)能(Neng)的(De)核(He)心(Xin),(?)也(Ye)是(Shi)重(Zhong)中(Zhong)之(Zhi)重(Zhong)。(?)
在(Zai)学(Xue)习(Xi)机(Ji)器(Qi)学(Xue)习(Xi)算(Suan)法(Fa)理(Li)论(Lun)同(Tong)时(Shi),(?)建(Jian)议(Yi)大(Da)家(Jia)使(Shi)用(Yong)scikit-learn这(Zhe)个(Ge)python机(Ji)器(Qi)学(Xue)习(Xi)的(De)库(Ku),(?)试(Shi)着(Zhuo)完(Wan)成(Cheng)一(Yi)些(Xie)小(Xiao)项(Xiang)目(Mu)。(?)同(Tong)时(Shi)关(Guan)注(Zhu)一(Yi)下(Xia)能(Neng)否(Fou)各(Ge)种(Zhong)算(Suan)法(Fa)结(Jie)合(He)使(Shi)用(Yong)来(Lai)提(Ti)高(Gao)预(Yu)测(Ce)结(Jie)果(Guo)准(Zhun)确(Que)率(Lu)。(?)在(Zai)学(Xue)习(Xi)的(De)过(Guo)程(Cheng)中(Zhong)不(Bu)必(Bi)强(Qiang)求(Qiu)自(Zi)己(Ji)能(Neng)够(Gou)完(Wan)全(Quan)掌(Zhang)握(Wo)各(Ge)种(Zhong)算(Suan)法(Fa)推(Tui)导(Dao),(?)抓(Zhua)住(Zhu)重(Zhong)点(Dian)理(Li)解(Jie)算(Suan)法(Fa),(?)然(Ran)后(Hou)把(Ba)算(Suan)法(Fa)用(Yong)起(Qi)来(Lai)才(Cai)是(Shi)王(Wang)道(Dao)。(?)
掌(Zhang)握(Wo)一(Yi)种(Zhong)编(Bian)程(Cheng)工(Gong)具(Ju),(?)比(Bi)如(Ru)说(Shuo)PyCharm或(Huo)者(Zhe)Jupyter Notebook,(?)当(Dang)然(Ran)工(Gong)具(Ju)掌(Zhang)握(Wo)不(Bu)难(Nan),(?)大(Da)约(Yue)只(Zhi)需(Xu)要(Yao)30分(Fen)钟(Zhong)。(?)
建(Jian)议(Yi)大(Da)家(Jia)不(Bu)要(Yao)盲(Mang)目(Mu)的(De)去(Qu)看(Kan)各(Ge)种(Zhong)市(Shi)面(Mian)上(Shang)的(De)书(Shu)籍(Ji)和(He)博(Bo)客(Ke),(?)有(You)的(De)对(Dui)于(Yu)大(Da)家(Jia)来(Lai)说(Shuo)过(Guo)于(Yu)理(Li)论(Lun),(?)推(Tui)导(Dao)太(Tai)多(Duo)还(Huan)有(You)些(Xie)跳(Tiao)步(Bu)显(Xian)得(De)过(Guo)于(Yu)深(Shen)奥(Ao),(?)有(You)的(De)又(You)太(Tai)浮(Fu)于(Yu)表(Biao)面(Mian)了(Liao)不(Bu)涉(She)及(Ji)算(Suan)法(Fa)原(Yuan)理(Li)细(Xi)节(Jie),(?)还(Huan)是(Shi)以(Yi)北(Bei)京(Jing)尚(Shang)学(Xue)堂(Tang)的(De)视(Shi)频(Pin)作(Zuo)为(Wei)学(Xue)习(Xi)材(Cai)料(Liao),(?)这(Zhe)里(Li)有(You)算(Suan)法(Fa)的(De)理(Li)解(Jie),(?)算(Suan)法(Fa)的(De)推(Tui)导(Dao),(?)算(Suan)法(Fa)的(De)应(Ying)用(Yong),(?)非(Fei)常(Chang)适(Shi)合(He)大(Da)学(Xue)生(Sheng)和(He)入(Ru)门(Men)学(Xue)习(Xi)的(De)人(Ren)使(Shi)用(Yong),(?)从(Cong)一(Yi)开(Kai)始(Shi)就(Jiu)即(Ji)有(You)算(Suan)法(Fa)的(De)逐(Zhu)步(Bu)深(Shen)入(Ru),(?)又(You)有(You)算(Suan)法(Fa)的(De)实(Shi)战(Zhan)。(?)给(Gei)自(Zi)己(Ji)成(Cheng)为(Wei)一(Yi)个(Ge)数(Shu)据(Ju)挖(Wa)掘(Jue)工(Gong)程(Cheng)师(Shi),(?)算(Suan)法(Fa)工(Gong)程(Cheng)师(Shi)打(Da)好(Hao)基(Ji)础(Chu)。(?)
上(Shang)面(Mian)提(Ti)到(Dao)的(De)机(Ji)器(Qi)学(Xue)习(Xi)算(Suan)法(Fa)譬(Pi)如(Ru)有(You)监(Jian)督(Du)学(Xue)习(Xi)回(Hui)归(Gui)算(Suan)法(Fa)中(Zhong)多(Duo)元(Yuan)线(Xian)性(Xing)回(Hui)归(Gui),(?)Lasso回(Hui)归(Gui),(?)岭(Ling)回(Hui)归(Gui)。(?)分(Fen)类(Lei)算(Suan)法(Fa)中(Zhong)逻(Luo)辑(Ji)回(Hui)归(Gui),(?)支(Zhi)持(Chi)向(Xiang)量(Liang)机(Ji),(?)决(Jue)策(Ce)树(Shu),(?)随(Sui)机(Ji)森(Sen)林(Lin),(?)GBDT,(?)Adaboost,(?)XGBOOST。(?)无(Wu)监(Jian)督(Du)学(Xue)习(Xi)聚(Ju)类(Lei)算(Suan)法(Fa)中(Zhong)K均(Jun)值(Zhi)聚(Ju)类(Lei),(?)密(Mi)度(Du)聚(Ju)类(Lei),(?)谱(Pu)聚(Ju)类(Lei)。(?)降(Jiang)维(Wei)算(Suan)法(Fa)中(Zhong)PCA降(Jiang)维(Wei),(?)FM因(Yin)式(Shi)分(Fen)解(Jie),(?)SVD奇(Qi)异(Yi)值(Zhi)分(Fen)解(Jie)。(?)推(Tui)荐(Jian)算(Suan)法(Fa)中(Zhong)协(Xie)调(Diao)过(Guo)滤(Lu),(?)ALS交(Jiao)替(Ti)最(Zui)小(Xiao)二(?)乘(Cheng)。(?)还(Huan)有(You)机(Ji)器(Qi)学(Xue)习(Xi)里(Li)面(Mian)的(De)大(Da)招(Zhao)多(Duo)层(Ceng)感(Gan)知(Zhi)机(Ji),(?)神(Shen)经(Jing)网(Wang)络(Luo)。(?)关(Guan)联(Lian)分(Fen)析(Xi)的(De)算(Suan)法(Fa)Apriori,(?)FP-Growth。(?)最(Zui)后(Hou)研(Yan)究(Jiu)朴(Pu)素(Su)贝(Bei)叶(Ye)斯(Si),(?)贝(Bei)叶(Ye)斯(Si)网(Wang)络(Luo),(?)隐(Yin)含(Han)马(Ma)尔(?)科(Ke)夫(Fu)模(Mo)型(Xing),(?)条(Tiao)件(Jian)随(Sui)机(Ji)场(Chang)。(?)
对(Dui)于(Yu)人(Ren)工(Gong)智(Zhi)能(Neng)专(Zhuan)业(Ye)不(Bu)了(Liao)解(Jie)的(De)同(Tong)学(Xue),(?)建(Jian)议(Yi)大(Da)家(Jia)学(Xue)习(Xi)一(Yi)下(Xia)预(Yu)科(Ke)阶(Jie)段(Duan),(?)对(Dui)于(Yu)整(Zheng)个(Ge)行(Xing)业(Ye),(?)技(Ji)术(Shu)体(Ti)系(Xi),(?)就(Jiu)业(Ye)方(Fang)向(Xiang),(?)未(Wei)来(Lai)职(Zhi)业(Ye)发(Fa)展(Zhan)都(Du)会(Hui)有(You)个(Ge)基(Ji)本(Ben)的(De)认(Ren)识(Shi)和(He)了(Liao)解(Jie)。(?)
2.深(Shen)度(Du)学(Xue)习(Xi)
深(Shen)度(Du)学(Xue)习(Xi)是(Shi)当(Dang)今(Jin)非(Fei)常(Chang)热(Re)门(Men)的(De)一(Yi)个(Ge)领(Ling)域(Yu),(?)是(Shi)机(Ji)器(Qi)学(Xue)习(Xi)算(Suan)法(Fa)神(Shen)经(Jing)网(Wang)络(Luo)的(De)延(Yan)申(Shen),(?)是(Shi)把(Ba)机(Ji)器(Qi)学(Xue)习(Xi)的(De)拟(Ni)人(Ren)更(Geng)加(Jia)发(Fa)扬(Yang)光(Guang)大(Da)的(De)领(Ling)域(Yu)。(?)深(Shen)度(Du)学(Xue)习(Xi)工(Gong)程(Cheng)师(Shi)也(Ye)是(Shi)各(Ge)大(Da)公(Gong)司(Si)需(Xu)要(Yao)的(De)人(Ren)才(Cai)。(?)
学(Xue)习(Xi)深(Shen)度(Du)学(Xue)习(Xi)可(Ke)以(Yi)从(Cong)Google开(Kai)源(Yuan)的(De)tensorflow框(Kuang)架(Jia)开(Kai)始(Shi)学(Xue)习(Xi)如(Ru)何(He)完(Wan)成(Cheng)DNN((?)深(Shen)度(Du)神(Shen)经(Jing)网(Wang)络(Luo))(?)的(De)构(Gou)建(Jian)以(Yi)及(Ji)应(Ying)用(Yong)。(?)然(Ran)后(Hou)还(Huan)是(Shi)使(Shi)用(Yong)tensorflow框(Kuang)架(Jia)来(Lai)学(Xue)习(Xi)如(Ru)何(He)完(Wan)成(Cheng)CNN((?)卷(Juan)积(Ji)神(Shen)经(Jing)网(Wang)络(Luo))(?)的(De)构(Gou)建(Jian)以(Yi)及(Ji)应(Ying)用(Yong)。(?)最(Zui)后(Hou)来(Lai)使(Shi)用(Yong)tensorflow框(Kuang)架(Jia)来(Lai)学(Xue)习(Xi)如(Ru)何(He)完(Wan)成(Cheng)RNN((?)循(Xun)环(Huan)神(Shen)经(Jing)网(Wang)络(Luo))(?)的(De)构(Gou)建(Jian)以(Yi)及(Ji)应(Ying)用(Yong)。(?)

学(Xue)习(Xi)建(Jian)议(Yi):(?)大(Da)家(Jia)在(Zai)学(Xue)习(Xi)过(Guo)程(Cheng)中(Zhong)可(Ke)以(Yi)试(Shi)着(Zhuo)利(Li)用(Yong)构(Gou)建(Jian)的(De)DNN来(Lai)完(Wan)成(Cheng)机(Ji)器(Qi)学(Xue)习(Xi)算(Suan)法(Fa)做(Zuo)的(De)分(Fen)类(Lei)和(He)回(Hui)归(Gui)的(De)案(An)例(Li),(?)对(Dui)比(Bi)看(Kan)看(Kan)结(Jie)果(Guo)是(Shi)否(Fou)有(You)提(Ti)升(Sheng),(?)从(Cong)而(?)体(Ti)会(Hui)深(Shen)度(Du)学(Xue)习(Xi)的(De)奥(Ao)妙(Miao)。(?)也(Ye)可(Ke)以(Yi)利(Li)用(Yong)CNN来(Lai)完(Wan)成(Cheng)一(Yi)些(Xie)图(Tu)像(Xiang)识(Shi)别(Bie)任(Ren)务(Wu),(?)和(He)利(Li)用(Yong)RNN来(Lai)完(Wan)成(Cheng)一(Yi)些(Xie)NLP((?)自(Zi)然(Ran)语(Yu)言(Yan)处(Chu)理(Li))(?)任(Ren)务(Wu)。(?)CNN和(He)RNN不(Bu)仅(Jin)限(Xian)于(Yu)这(Zhe)两(Liang)个(Ge)领(Ling)域(Yu),(?)但(Dan)是(Shi)目(Mu)前(Qian)来(Lai)看(Kan)它(Ta)们(Men)在(Zai)这(Zhe)两(Liang)个(Ge)领(Ling)域(Yu)各(Ge)有(You)优(You)势(Shi)。(?)
Tensorflow框(Kuang)架(Jia)是(Shi)深(Shen)度(Du)学(Xue)习(Xi)框(Kuang)架(Jia)之(Zhi)一(Yi),(?)但(Dan)不(Bu)是(Shi)唯(Wei)一(Yi),(?)Keras框(Kuang)架(Jia)也(Ye)是(Shi)一(Yi)个(Ge)非(Fei)常(Chang)优(You)秀(Xiu)的(De)框(Kuang)架(Jia),(?)大(Da)家(Jia)有(You)兴(Xing)趣(Qu)也(Ye)可(Ke)继(Ji)续(Xu)学(Xue)习(Xi)Keras框(Kuang)架(Jia)。(?)代(Dai)码(Ma)量(Liang)会(Hui)比(Bi)TensorFlow更(Geng)少(Shao)一(Yi)些(Xie),(?)更(Geng)适(Shi)合(He)去(Qu)做(Zuo)一(Yi)些(Xie)实(Shi)验(Yan)。(?)
3.Python数(Shu)据(Ju)分(Fen)析(Xi)模(Mo)块(Kuai)
Python当(Dang)今(Jin)作(Zuo)为(Wei)数(Shu)据(Ju)科(Ke)学(Xue)的(De)第(Di)一(Yi)语(Yu)言(Yan),(?)熟(Shu)练(Lian)掌(Zhang)握(Wo)numpy、(?)scipy、(?)pandas、(?)matplotlib等(Deng)数(Shu)据(Ju)分(Fen)析(Xi)的(De)模(Mo)块(Kuai)不(Bu)光(Guang)是(Shi)作(Zuo)为(Wei)数(Shu)据(Ju)分(Fen)析(Xi)师(Shi)必(Bi)须(Xu)的(De),(?)也(Ye)是(Shi)作(Zuo)为(Wei)人(Ren)工(Gong)智(Zhi)能(Neng)工(Gong)程(Cheng)师(Shi)所(Suo)必(Bi)须(Xu)的(De),(?) 如(Ru)果(Guo)大(Da)家(Jia)认(Ren)为(Wei)自(Zi)己(Ji)的(De)python语(Yu)言(Yan)掌(Zhang)握(Wo)的(De)不(Bu)够(Gou)熟(Shu)练(Lian),(?)可(Ke)以(Yi)从(Cong)学(Xue)习(Xi)这(Zhe)些(Xie)基(Ji)础(Chu)的(De)模(Mo)块(Kuai)开(Kai)始(Shi),(?)来(Lai)锻(Duan)炼(Lian)自(Zi)己(Ji)。(?)因(Yin)为(Wei)scikit-learn机(Ji)器(Qi)学(Xue)习(Xi)算(Suan)法(Fa)库(Ku)是(Shi)基(Ji)于(Yu)numpy、(?)scipy、(?)matplotlib开(Kai)发(Fa)的(De),(?)所(Suo)以(Yi)大(Da)家(Jia)掌(Zhang)握(Wo)好(Hao)了(Liao)这(Zhe)些(Xie)基(Ji)础(Chu)库(Ku),(?)对(Dui)于(Yu)分(Fen)析(Xi)别(Bie)人(Ren)封(Feng)装(Zhuang)的(De)算(Suan)法(Fa)源(Yuan)代(Dai)码(Ma),(?)甚(Shen)至(Zhi)日(Ri)后(Hou)自(Zi)己(Ji)开(Kai)发(Fa)一(Yi)些(Xie)算(Suan)法(Fa)也(Ye)有(You)了(Liao)可(Ke)能(Neng)性(Xing)。(?)
学(Xue)习(Xi)建(Jian)议(Yi):(?)在(Zai)学(Xue)习(Xi)这(Zhe)些(Xie)数(Shu)据(Ju)分(Fen)析(Xi)模(Mo)块(Kuai)的(De)同(Tong)时(Shi),(?)可(Ke)以(Yi)补(Bu)补(Bu)python语(Yu)言(Yan)的(De)基(Ji)础(Chu)语(Yu)法(Fa),(?)重(Zhong)复(Fu)一(Yi)遍(Bian)基(Ji)础(Chu)语(Yu)法(Fa)即(Ji)可(Ke),(?)不(Bu)要(Yao)跑(Pao)偏(Pian)到(Dao)python其(Qi)他(Ta)比(Bi)如(Ru)什(Shi)么(Me)web开(Kai)发(Fa),(?)爬(Pa)虫(Chong)等(Deng)领(Ling)域(Yu)里(Li)面(Mian)去(Qu)。(?)
4.Spark MLlib机(Ji)器(Qi)学(Xue)习(Xi)库(Ku)
如(Ru)果(Guo)说(Shuo)当(Dang)今(Jin)有(You)什(Shi)么(Me)是(Shi)算(Suan)法(Fa)工(Gong)程(Cheng)师(Shi)的(De)加(Jia)分(Fen)项(Xiang),(?)那(Na)么(Me)分(Fen)布(Bu)式(Shi)计(Ji)算(Suan)框(Kuang)架(Jia)Spark中(Zhong)算(Suan)法(Fa)库(Ku)MLlib就(Jiu)是(Shi)一(Yi)个(Ge),(?)如(Ru)果(Guo)想(Xiang)掌(Zhang)握(Wo)Spark MLlib,(?)首(Shou)先(Xian)需(Xu)要(Yao)会(Hui)使(Shi)用(Yong)spark计(Ji)算(Suan)框(Kuang)架(Jia),(?)建(Jian)议(Yi)大(Da)家(Jia)还(Huan)是(Shi)使(Shi)用(Yong)python语(Yu)言(Yan)通(Tong)过(Guo)pyspark来(Lai)学(Xue)习(Xi),(?)在(Zai)掌(Zhang)握(Wo)了(Liao)前(Qian)面(Mian)的(De)机(Ji)器(Qi)学(Xue)习(Xi)部(Bu)分(Fen)后(Hou),(?)这(Zhe)里(Li)再(Zai)来(Lai)学(Xue)习(Xi)里(Li)面(Mian)的(De)算(Suan)法(Fa)使(Shi)用(Yong)将(Jiang)变(Bian)得(De)异(Yi)常(Chang)容(Rong)易(Yi)。(?)
学(Xue)习(Xi)建(Jian)议(Yi):(?)大(Da)家(Jia)要(Yao)抓(Zhua)住(Zhu)重(Zhong)点(Dian),(?)千(Qian)万(Wan)不(Bu)要(Yao)钻(Zuan)到(Dao)集(Ji)群(Qun)搭(Da)建(Jian)里(Li)面(Mian),(?)甚(Shen)至(Zhi)是(Shi)大(Da)数(Shu)据(Ju)各(Ge)种(Zhong)框(Kuang)架(Jia)里(Li)面(Mian),(?)因(Yin)为(Wei)对(Dui)于(Yu)我(Wo)们(Men)来(Lai)说(Shuo),(?)spark计(Ji)算(Suan)框(Kuang)架(Jia)只(Zhi)是(Shi)一(Yi)个(Ge)工(Gong)具(Ju),(?)帮(Bang)助(Zhu)我(Wo)们(Men)来(Lai)更(Geng)好(Hao)的(De)做(Zuo)数(Shu)据(Ju)预(Yu)处(Chu)理(Li),(?)和(He)帮(Bang)助(Zhu)我(Wo)们(Men)将(Jiang)算(Suan)法(Fa)使(Shi)用(Yong)分(Fen)布(Bu)式(Shi)集(Ji)群(Qun)来(Lai)完(Wan)成(Cheng)海(Hai)量(Liang)数(Shu)据(Ju)场(Chang)景(Jing)下(Xia)结(Jie)果(Guo)的(De)计(Ji)算(Suan)。(?)在(Zai)公(Gong)司(Si)里(Li)面(Mian),(?)有(You)运(Yun)维(Wei)的(De)人(Ren)员(Yuan)管(Guan)理(Li)集(Ji)群(Qun),(?)在(Zai)一(Yi)些(Xie)大(Da)公(Gong)司(Si),(?)有(You)专(Zhuan)门(Men)给(Gei)算(Suan)法(Fa)工(Gong)程(Cheng)师(Shi)配(Pei)备(Bei)数(Shu)据(Ju)预(Yu)处(Chu)理(Li)的(De)工(Gong)程(Cheng)师(Shi)。(?)

5.做(Zuo)一(Yi)个(Ge)人(Ren)工(Gong)智(Zhi)能(Neng)项(Xiang)目(Mu)
学(Xue)了(Liao)这(Zhe)么(Me)多(Duo),(?)也(Ye)做(Zuo)了(Liao)一(Yi)些(Xie)小(Xiao)项(Xiang)目(Mu),(?)最(Zui)后(Hou)一(Yi)定(Ding)要(Yao)做(Zuo)一(Yi)些(Xie)个(Ge)大(Da)项(Xiang)目(Mu)整(Zheng)合(He)一(Yi)下(Xia)自(Zi)己(Ji)的(De)知(Zhi)识(Shi)。(?)做(Zuo)一(Yi)些(Xie)个(Ge)人(Ren)工(Gong)智(Zhi)能(Neng)领(Ling)域(Yu)的(De)譬(Pi)如(Ru)医(Yi)疗(Liao)图(Tu)像(Xiang)识(Shi)别(Bie)、(?)人(Ren)脸(Lian)识(Shi)别(Bie)、(?)自(Zi)动(Dong)聊(Liao)天(Tian)机(Ji)器(Qi)人(Ren)、(?)推(Tui)荐(Jian)系(Xi)统(Tong)、(?)用(Yong)户(Hu)画(Hua)像(Xiang)等(Deng)的(De)大(Da)项(Xiang)目(Mu)才(Cai)是(Shi)企(Qi)业(Ye)很(Hen)需(Xu)要(Yao)的(De)经(Jing)验(Yan)。(?)可(Ke)以(Yi)将(Jiang)理(Li)论(Lun)结(Jie)合(He)实(Shi)际(Ji)的(De)运(Yun)用(Yong)也(Ye)是(Shi)成(Cheng)为(Wei)高(Gao)手(Shou)的(De)必(Bi)经(Jing)之(Zhi)路(Lu),(?)也(Ye)是(Shi)在(Zai)企(Qi)业(Ye)工(Gong)作(Zuo)所(Suo)需(Xu)要(Yao)的(De)能(Neng)力(Li)。(?)
6.数(Shu)学(Xue)
数(Shu)学(Xue)是(Shi)一(Yi)个(Ge)误(Wu)区(Qu),(?)很(Hen)多(Duo)人(Ren)说(Shuo)自(Zi)己(Ji)的(De)数(Shu)学(Xue)不(Bu)够(Gou)好(Hao),(?)是(Shi)不(Bu)是(Shi)做(Zuo)不(Bu)了(Liao)算(Suan)法(Fa)工(Gong)程(Cheng)师(Shi)?(?)面(Mian)对(Dui)这(Zhe)样(Yang)的(De)问(Wen)题(Ti),(?)公(Gong)司(Si)里(Li)面(Mian)的(De)算(Suan)法(Fa)工(Gong)程(Cheng)师(Shi)谁(Shui)又(You)敢(Gan)说(Shuo)自(Zi)己(Ji)的(De)数(Shu)学(Xue)真(Zhen)的(De)好(Hao)?(?)数(Shu)学(Xue)是(Shi)在(Zai)学(Xue)习(Xi)机(Ji)器(Qi)学(Xue)习(Xi)阶(Jie)段(Duan)算(Suan)法(Fa)推(Tui)导(Dao)用(Yong)的(De)到(Dao)的(De),(?)但(Dan)是(Shi)这(Zhe)里(Li)的(De)推(Tui)导(Dao)你(Ni)又(You)不(Bu)需(Xu)要(Yao)非(Fei)要(Yao)一(Yi)步(Bu)步(Bu)扣(Kou)数(Shu)学(Xue)计(Ji)算(Suan)过(Guo)程(Cheng),(?)举(Ju)个(Ge)例(Li)子(Zi),(?)2+2=4,(?)那(Na)么(Me)数(Shu)据(Ju)基(Ji)础(Chu)是(Shi)1+1=2,(?)但(Dan)是(Shi)咱(Zan)们(Men)需(Xu)要(Yao)证(Zheng)明(Ming)1+1=2吗(Ma)?(?)不(Bu)需(Xu)要(Yao),(?)对(Dui)吧(Ba),(?)所(Suo)以(Yi)在(Zai)机(Ji)器(Qi)学(Xue)习(Xi)阶(Jie)段(Duan)算(Suan)法(Fa)推(Tui)导(Dao)这(Zhe)里(Li)更(Geng)重(Zhong)要(Yao)的(De)还(Huan)是(Shi)理(Li)解(Jie)算(Suan)法(Fa)证(Zheng)明(Ming)的(De)思(Si)想(Xiang),(?)能(Neng)够(Gou)把(Ba)讲(Jiang)的(De)算(Suan)法(Fa)推(Tui)导(Dao)理(Li)清(Qing)楚(Chu)足(Zu)够(Gou)了(Liao),(?)而(?)这(Zhe)在(Zai)讲(Jiang)的(De)过(Guo)程(Cheng)中(Zhong)如(Ru)何(He)有(You)好(Hao)的(De)引(Yin)导(Dao),(?)又(You)何(He)须(Xu)非(Fei)自(Zi)己(Ji)没(Mei)头(Tou)绪(Xu)的(De)补(Bu)数(Shu)学(Xue)然(Ran)后(Hou)走(Zou)那(Na)个(Ge)弯(Wan)路(Lu)呢(Ne)?(?)
学(Xue)习(Xi)建(Jian)议(Yi):(?)很(Hen)多(Duo)数(Shu)学(Xue)符(Fu)号(Hao)只(Zhi)是(Shi)一(Yi)种(Zhong)表(Biao)达(Da)而(?)已(Yi),(?)在(Zai)学(Xue)习(Xi)过(Guo)程(Cheng)中(Zhong)稍(Shao)微(Wei)补(Bu)一(Yi)下(Xia)即(Ji)可(Ke),(?)不(Bu)需(Xu)要(Yao)花(Hua)大(Da)量(Liang)时(Shi)间(Jian)前(Qian)期(Qi)准(Zhun)备(Bei)数(Shu)学(Xue)知(Zhi)识(Shi),(?)最(Zui)重(Zhong)要(Yao)的(De)是(Shi),(?)企(Qi)业(Ye)中(Zhong)人(Ren)工(Gong)智(Zhi)能(Neng)工(Gong)程(Cheng)师(Shi)没(Mei)人(Ren)天(Tian)天(Tian)抱(Bao)着(Zhuo)数(Shu)学(Xue)公(Gong)式(Shi)推(Tui)导(Dao)。(?)所(Suo)以(Yi)同(Tong)学(Xue)们(Men)在(Zai)大(Da)学(Xue)期(Qi)间(Jian)数(Shu)学(Xue)学(Xue)的(De)不(Bu)错(Cuo)的(De)同(Tong)学(Xue)恭(Gong)喜(Xi)你(Ni),(?)你(Ni)在(Zai)机(Ji)器(Qi)学(Xue)习(Xi)算(Suan)法(Fa)学(Xue)习(Xi)时(Shi)会(Hui)稍(Shao)微(Wei)轻(Qing)松(Song)一(Yi)些(Xie),(?)相(Xiang)反(Fan),(?)在(Zai)大(Da)学(Xue)期(Qi)间(Jian)数(Shu)学(Xue)学(Xue)的(De)不(Bu)行(Xing)的(De)同(Tong)学(Xue)也(Ye)恭(Gong)喜(Xi)你(Ni),(?)因(Yin)为(Wei)数(Shu)学(Xue)不(Bu)是(Shi)决(Jue)定(Ding)能(Neng)否(Fou)成(Cheng)为(Wei)一(Yi)个(Ge)企(Qi)业(Ye)所(Suo)需(Xu)算(Suan)法(Fa)工(Gong)程(Cheng)师(Shi)的(De)鸿(Hong)沟(Gou)!(?)
五(Wu):(?)H5前(Qian)端(Duan)和(He)移(Yi)动(Dong)APP开(Kai)发(Fa)知(Zhi)识(Shi)点(Dian)和(He)配(Pei)套(Tao)视(Shi)频(Pin)
随(Sui)着(Zhuo)互(Hu)联(Lian)网(Wang)、(?)移(Yi)动(Dong)互(Hu)联(Lian)网(Wang)的(De)发(Fa)展(Zhan),(?)HTML5成(Cheng)为(Wei)了(Liao)客(Ke)户(Hu)端(Duan)软(Ruan)件(Jian)开(Kai)发(Fa)的(De)主(Zhu)流(Liu)技(Ji)术(Shu),(?)HTML5实(Shi)际(Ji)上(Shang)是(Shi)由(You):(?)HTML5语(Yu)言(Yan)、(?)CSS3、(?)JAVASCRIPT语(Yu)言(Yan)组(Zu)成(Cheng)。(?)
尚(Shang)学(Xue)堂(Tang)的(De)HTML5前(Qian)端(Duan)课(Ke)程(Cheng)由(You)国(Guo)内(Nei)知(Zhi)名(Ming)技(Ji)术(Shu)专(Zhuan)家(Jia)刘(Liu)兴(Xing)宇(Yu)老(Lao)师(Shi)领(Ling)衔(Xian),(?)已(Yi)经(Jing)培(Pei)训(Xun)就(Jiu)业(Ye)数(Shu)千(Qian)人(Ren),(?)取(Qu)得(De)了(Liao)非(Fei)常(Chang)好(Hao)的(De)社(She)会(Hui)影(Ying)响(Xiang)。(?)
为(Wei)了(Liao)让(Rang)更(Geng)多(Duo)人(Ren)受(Shou)益(Yi),(?) 我(Wo)们(Men)会(Hui)陆(Lu)续(Xu)公(Gong)布(Bu)大(Da)部(Bu)分(Fen)的(De)学(Xue)习(Xi)视(Shi)频(Pin),(?)这(Zhe)些(Xie)视(Shi)频(Pin)来(Lai)自(Zi)于(Yu)我(Wo)们(Men)线(Xian)下(Xia)培(Pei)训(Xun)精(Jing)品(Pin)课(Ke)程(Cheng),(?)大(Da)多(Duo)数(Shu)直(Zhi)接(Jie)录(Lu)制(Zhi)于(Yu)课(Ke)堂(Tang),(?)欢(Huan)迎(Ying)大(Da)家(Jia)免(Mian)费(Fei)下(Xia)载(Zai)或(Huo)者(Zhe)在(Zai)线(Xian)观(Guan)看(Kan)。(?)
我(Wo)们(Men)每(Mei)个(Ge)月(Yue)都(Du)会(Hui)更(Geng)新(Xin)相(Xiang)应(Ying)的(De)视(Shi)频(Pin),(?)大(Da)家(Jia)可(Ke)以(Yi)持(Chi)续(Xu)关(Guan)注(Zhu)下(Xia)载(Zai)地(Di)址(Zhi)((?)前(Qian)端(Duan)视(Shi)频(Pin)的(De)拼(Pin)音(Yin))(?):(?)
http://tekxul.com/qianduanshipin.html
1.WEB前(Qian)端(Duan)快(Kuai)速(Su)入(Ru)门(Men)
在(Zai)本(Ben)阶(Jie)段(Duan),(?)我(Wo)们(Men)需(Xu)要(Yao)掌(Zhang)握(Wo)HTML与(Yu)CSS基(Ji)础(Chu),(?)当(Dang)然(Ran),(?)也(Ye)包(Bao)含(Han)H5和(He)C3的(De)新(Xin)特(Te)性(Xing)。(?)这(Zhe)个(Ge)部(Bu)分(Fen)内(Nei)容(Rong)非(Fei)常(Chang)简(Jian)单(Dan),(?)而(?)且(Qie)非(Fei)常(Chang)容(Rong)易(Yi)掌(Zhang)握(Wo)。(?)相(Xiang)信(Xin)你(Ni)也(Ye)更(Geng)愿(Yuan)意(Yi)学(Xue)习(Xi)这(Zhe)个(Ge)部(Bu)分(Fen),(?)毕(Bi)竟(Jing)他(Ta)可(Ke)以(Yi)让(Rang)你(Ni)最(Zui)直(Zhi)观(Guan)的(De)感(Gan)受(Shou)到(Dao)前(Qian)端(Duan)的(De)魅(Mei)力(Li)。(?)为(Wei)了(Liao)锻(Duan)炼(Lian)大(Da)家(Jia)写(Xie)代(Dai)码(Ma),(?)可(Ke)以(Yi)根(Gen)据(Ju)你(Ni)喜(Xi)欢(Huan)的(De)站(Zhan)点(Dian)去(Qu)实(Shi)现(Xian)效(Xiao)果(Guo)。(?)
这(Zhe)一(Yi)阶(Jie)段(Duan)是(Shi)非(Fei)常(Chang)重(Zhong)要(Yao)的(De)基(Ji)础(Chu)阶(Jie)段(Duan),(?)所(Suo)谓(Wei)基(Ji)础(Chu)就(Jiu)是(Shi)可(Ke)能(Neng)这(Zhe)个(Ge)阶(Jie)段(Duan)我(Wo)们(Men)的(De)学(Xue)习(Xi)的(De)内(Nei)容(Rong),(?)可(Ke)以(Yi)让(Rang)我(Wo)们(Men)开(Kai)发(Fa)出(Chu)来(Lai)绚(Xuan)丽(Li)网(Wang)站(Zhan)站(Zhan)点(Dian),(?)但(Dan)是(Shi)功(Gong)能(Neng)丰(Feng)富(Fu)却(Que)暂(Zan)时(Shi)做(Zuo)不(Bu)到(Dao)。(?) 为(Wei)了(Liao)完(Wan)成(Cheng)更(Geng)绚(Xuan)丽(Li)的(De)站(Zhan)点(Dian),(?)我(Wo)们(Men)需(Xu)要(Yao)掌(Zhang)握(Wo)常(Chang)见(Jian)特(Te)效(Xiao)的(De)实(Shi)现(Xian),(?)利(Li)用(Yong)css3和(He)h5的(De)新(Xin)特(Te)性(Xing)实(Shi)现(Xian)动(Dong)画(Hua),(?)布(Bu)局(Ju),(?)雪(Xue)碧(Bi)图(Tu),(?)滑(Hua)动(Dong)门(Men),(?)tab切(Qie)换(Huan)等(Deng)特(Te)效(Xiao)。(?)并(Bing)且(Qie)掌(Zhang)握(Wo)基(Ji)础(Chu)的(De)站(Zhan)点(Dian)优(You)化(Hua)内(Nei)容(Rong)。(?)例(Li)如(Ru)sprite等(Deng)。(?)虽(Sui)然(Ran)我(Wo)们(Men)还(Huan)不(Bu)能(Neng)完(Wan)成(Cheng)更(Geng)多(Duo)交(Jiao)互(Hu)内(Nei)容(Rong),(?)但(Dan)是(Shi)我(Wo)们(Men)会(Hui)学(Xue)习(Xi)到(Dao)很(Hen)多(Duo)的(De)知(Zhi)识(Shi)模(Mo)型(Xing)和(He)理(Li)论(Lun),(?)而(?)这(Zhe)些(Xie)知(Zhi)识(Shi)模(Mo)型(Xing)和(He)理(Li)论(Lun)是(Shi)我(Wo)们(Men)后(Hou)期(Qi)工(Gong)作(Zuo)和(He)学(Xue)习(Xi)的(De)基(Ji)石(Shi)。(?)扎(Zha)实(Shi)的(De)基(Ji)础(Chu)有(You)了(Liao),(?)我(Wo)们(Men)才(Cai)能(Neng)走(Zou)的(De)更(Geng)稳(Wen)更(Geng)快(Kuai)。(?)
注(Zhu):(?)本(Ben)阶(Jie)段(Duan)不(Bu)涉(She)及(Ji)到(Dao)编(Bian)程(Cheng),(?)主(Zhu)要(Yao)是(Shi)熟(Shu)悉(Xi)HTML5各(Ge)种(Zhong)标(Biao)签(Qian)用(Yong)法(Fa)、(?)CSS3各(Ge)种(Zhong)属(Shu)性(Xing)的(De)用(Yong)法(Fa)。(?)
2.JavaScript基(Ji)础(Chu)与(Yu)深(Shen)入(Ru)解(Jie)析(Xi)

JavaScript语(Yu)言(Yan)非(Fei)常(Chang)重(Zhong)要(Yao),(?)可(Ke)以(Yi)说(Shuo)学(Xue)习(Xi)前(Qian)端(Duan)本(Ben)质(Zhi)就(Jiu)是(Shi)学(Xue)习(Xi)“(?)JavaScript”(?)编(Bian)程(Cheng)。(?)后(Hou)面(Mian)学(Xue)的(De)很(Hen)多(Duo)高(Gao)级(Ji)技(Ji)术(Shu),(?)全(Quan)部(Bu)都(Du)是(Shi)基(Ji)于(Yu)JavaScript的(De)。(?)
JavaScript语(Yu)言(Yan)可(Ke)以(Yi)让(Rang)网(Wang)页(Ye)元(Yuan)素(Su)具(Ju)备(Bei)动(Dong)态(Tai)效(Xiao)果(Guo),(?)让(Rang)体(Ti)验(Yan)度(Du)更(Geng)加(Jia)流(Liu)畅(Chang)。(?)这(Zhe)在(Zai)目(Mu)前(Qian)流(Liu)行(Xing)的(De)B/S架(Jia)构(Gou)体(Ti)系(Xi)下(Xia),(?)是(Shi)极(Ji)端(Duan)重(Zhong)要(Yao)的(De)事(Shi)情(Qing)。(?)这(Zhe)也(Ye)是(Shi)为(Wei)什(Shi)么(Me)前(Qian)端(Duan)工(Gong)程(Cheng)师(Shi)大(Da)行(Xing)其(Qi)道(Dao),(?)被(Bei)广(Guang)泛(Fan)需(Xu)求(Qiu)的(De)根(Gen)本(Ben)原(Yuan)因(Yin)。(?)
在(Zai)本(Ben)阶(Jie)段(Duan)中(Zhong),(?)我(Wo)们(Men)主(Zhu)要(Yao)学(Xue)习(Xi)基(Ji)础(Chu)JavaScript语(Yu)法(Fa)与(Yu)深(Shen)入(Ru)解(Jie)析(Xi)JavaScript,(?)包(Bao)含(Han)DOM操(Cao)作(Zuo)同(Tong)时(Shi)也(Ye)涵(Han)盖(Gai)了(Liao)面(Mian)向(Xiang)对(Dui)象(Xiang)和(He)设(She)计(Ji)模(Mo)式(Shi),(?)课(Ke)程(Cheng)也(Ye)涵(Han)盖(Gai)了(Liao)兼(Jian)容(Rong)性(Xing)处(Chu)理(Li)和(He)数(Shu)据(Ju)解(Jie)析(Xi)。(?)希(Xi)望(Wang)大(Da)家(Jia)在(Zai)本(Ben)阶(Jie)段(Duan)可(Ke)以(Yi)熟(Shu)练(Lian)掌(Zhang)握(Wo)这(Zhe)些(Xie)知(Zhi)识(Shi)点(Dian)。(?)
3.jQuery应(Ying)用(Yong)与(Yu)项(Xiang)目(Mu)开(Kai)发(Fa)
jQuery是(Shi)一(Yi)个(Ge)快(Kuai)速(Su)、(?)简(Jian)洁(Jie)的(De)JavaScript框(Kuang)架(Jia),(?)jQuery设(She)计(Ji)的(De)宗(Zong)旨(Zhi)是(Shi)“(?)write Less,(?)Do More”(?),(?)即(Ji)倡(Chang)导(Dao)写(Xie)更(Geng)少(Shao)的(De)代(Dai)码(Ma),(?)做(Zuo)更(Geng)多(Duo)的(De)事(Shi)情(Qing)。(?)它(Ta)封(Feng)装(Zhuang)JavaScript常(Chang)用(Yong)的(De)功(Gong)能(Neng)代(Dai)码(Ma),(?)提(Ti)供(Gong)一(Yi)种(Zhong)简(Jian)便(Bian)的(De)JavaScript设(She)计(Ji)模(Mo)式(Shi),(?)优(You)化(Hua)HTML文(Wen)档(Dang)操(Cao)作(Zuo)、(?)事(Shi)件(Jian)处(Chu)理(Li)、(?)动(Dong)画(Hua)设(She)计(Ji)和(He)Ajax交(Jiao)互(Hu)。(?)在(Zai)本(Ben)阶(Jie)段(Duan),(?)我(Wo)们(Men)注(Zhu)重(Zhong)讲(Jiang)解(Jie)如(Ru)何(He)更(Geng)好(Hao)的(De)应(Ying)用(Yong)jQuery以(Yi)及(Ji)他(Ta)的(De)设(She)计(Ji)方(Fang)式(Shi),(?)同(Tong)时(Shi)也(Ye)包(Bao)含(Han)jQuery扩(Kuo)展(Zhan)内(Nei)容(Rong)。(?)

4.PHP、(?)数(Shu)据(Ju)库(Ku)编(Bian)程(Cheng)与(Yu)设(She)计(Ji)
后(Hou)端(Duan)服(Fu)务(Wu)器(Qi)工(Gong)程(Cheng)师(Shi)需(Xu)要(Yao)了(Liao)解(Jie)前(Qian)端(Duan)的(De)基(Ji)本(Ben)知(Zhi)识(Shi),(?)同(Tong)样(Yang),(?)前(Qian)端(Duan)工(Gong)程(Cheng)师(Shi)也(Ye)必(Bi)须(Xu)了(Liao)解(Jie)服(Fu)务(Wu)器(Qi)端(Duan)编(Bian)程(Cheng)的(De)基(Ji)本(Ben)内(Nei)容(Rong)。(?)我(Wo)们(Men)可(Ke)以(Yi)不(Bu)精(Jing)通(Tong),(?)但(Dan)必(Bi)须(Xu)知(Zhi)道(Dao)整(Zheng)体(Ti)的(De)流(Liu)程(Cheng)。(?)
作(Zuo)为(Wei)一(Yi)名(Ming)前(Qian)端(Duan)开(Kai)发(Fa)工(Gong)程(Cheng)师(Shi),(?)会(Hui)一(Yi)门(Men)后(Hou)端(Duan)语(Yu)言(Yan)是(Shi)必(Bi)然(Ran)的(De)。(?)在(Zai)我(Wo)们(Men)的(De)课(Ke)程(Cheng)中(Zhong),(?)为(Wei)您(Nin)选(Xuan)择(Ze)的(De)是(Shi)PHP,(?)因(Yin)为(Wei)PHP环(Huan)境(Jing)搭(Da)建(Jian)简(Jian)单(Dan),(?)语(Yu)言(Yan)与(Yu)JavaScript相(Xiang)似(Si)性(Xing)比(Bi)较(Jiao)大(Da),(?)并(Bing)且(Qie)容(Rong)易(Yi)上(Shang)手(Shou),(?)连(Lian)接(Jie)数(Shu)据(Ju)库(Ku)也(Ye)非(Fei)常(Chang)方(Fang)便(Bian)。(?)希(Xi)望(Wang)本(Ben)阶(Jie)段(Duan)的(De)内(Nei)容(Rong)能(Neng)帮(Bang)助(Zhu)你(Ni)快(Kuai)速(Su)掌(Zhang)握(Wo)前(Qian)后(Hou)端(Duan)交(Jiao)互(Hu)数(Shu)据(Ju)。(?)
通(Tong)过(Guo)学(Xue)习(Xi)PHP,(?)前(Qian)端(Duan)工(Gong)程(Cheng)师(Shi)也(Ye)能(Neng)称(Cheng)为(Wei)“(?)全(Quan)栈(Zhan)工(Gong)程(Cheng)师(Shi)”(?)。(?)既(Ji)能(Neng)做(Zuo)前(Qian)端(Duan)开(Kai)发(Fa),(?)也(Ye)能(Neng)做(Zuo)后(Hou)端(Duan)服(Fu)务(Wu)器(Qi)开(Kai)发(Fa)。(?)
5. Http服(Fu)务(Wu)于(Yu)Ajax编(Bian)程(Cheng)
Ajax真(Zhen)的(De)是(Shi)一(Yi)个(Ge)非(Fei)常(Chang)古(Gu)老(Lao)的(De)技(Ji)术(Shu)了(Liao),(?)但(Dan)是(Shi)到(Dao)现(Xian)在(Zai)为(Wei)止(Zhi),(?)这(Zhe)门(Men)技(Ji)术(Shu)仍(Reng)然(Ran)被(Bei)大(Da)量(Liang)使(Shi)用(Yong),(?)可(Ke)以(Yi)看(Kan)出(Chu)来(Lai),(?)他(Ta)是(Shi)多(Duo)么(Me)的(De)优(You)秀(Xiu)。(?)在(Zai)本(Ben)阶(Jie)段(Duan),(?)我(Wo)们(Men)将(Jiang)带(Dai)你(Ni)了(Liao)解(Jie)Ajax,(?)并(Bing)且(Qie)掌(Zhang)握(Wo)它(Ta)的(De)应(Ying)用(Yong)。(?)也(Ye)包(Bao)含(Han)了(Liao)解(Jie)Http相(Xiang)关(Guan)的(De)知(Zhi)识(Shi)。(?)对(Dui)于(Yu)站(Zhan)点(Dian)来(Lai)说(Shuo),(?)除(Chu)了(Liao)页(Ye)面(Mian)效(Xiao)果(Guo)能(Neng)看(Kan)到(Dao)的(De)就(Jiu)是(Shi)数(Shu)据(Ju)了(Liao)。(?)所(Suo)以(Yi),(?)数(Shu)据(Ju)的(De)获(Huo)取(Qu)合(He)理(Li)适(Shi)配(Pei)尤(You)为(Wei)重(Zhong)要(Yao)。(?)与(Yu)Ajax相(Xiang)关(Guan)的(De)也(Ye)包(Bao)含(Han)跨(Kua)域(Yu)处(Chu)理(Li),(?)希(Xi)望(Wang)大(Da)家(Jia)可(Ke)以(Yi)掌(Zhang)握(Wo)这(Zhe)些(Xie)核(He)心(Xin)知(Zhi)识(Shi)点(Dian)。(?)
6. 做(Zuo)一(Yi)个(Ge)阶(Jie)段(Duan)项(Xiang)目(Mu)
本(Ben)阶(Jie)段(Duan)为(Wei)纯(Chun)项(Xiang)目(Mu)实(Shi)战(Zhan),(?)可(Ke)以(Yi)将(Jiang)前(Qian)面(Mian)学(Xue)到(Dao)的(De)知(Zhi)识(Shi)融(Rong)会(Hui)贯(Guan)通(Tong),(?)不(Bu)实(Shi)战(Zhan)就(Jiu)相(Xiang)当(Dang)于(Yu)没(Mei)有(You)学(Xue)习(Xi);(?)主(Zhu)要(Yao)练(Lian)习(Xi)网(Wang)络(Luo)请(Qing)求(Qiu)、(?)站(Zhan)点(Dian)布(Bu)局(Ju)、(?)网(Wang)站(Zhan)优(You)化(Hua)等(Deng)内(Nei)容(Rong),(?)同(Tong)时(Shi)我(Wo)们(Men)需(Xu)要(Yao)对(Dui)项(Xiang)目(Mu)有(You)一(Yi)定(Ding)的(De)而(?)了(Liao)解(Jie)。(?) 所(Suo)以(Yi),(?)在(Zai)老(Lao)师(Shi)的(De)带(Dai)领(Ling)下(Xia),(?)可(Ke)以(Yi)更(Geng)快(Kuai)的(De)了(Liao)解(Jie)项(Xiang)目(Mu)如(Ru)何(He)搭(Da)建(Jian),(?)如(Ru)何(He)更(Geng)优(You)雅(Ya)的(De)实(Shi)现(Xian)代(Dai)码(Ma)。(?)老(Lao)师(Shi)会(Hui)将(Jiang)整(Zheng)个(Ge)项(Xiang)目(Mu)的(De)开(Kai)发(Fa)流(Liu)程(Cheng)完(Wan)整(Zheng)的(De)罗(Luo)列(Lie)出(Chu)来(Lai)。(?)本(Ben)阶(Jie)段(Duan)也(Ye)锻(Duan)炼(Lian)BootStrap的(De)应(Ying)用(Yong),(?)也(Ye)包(Bao)含(Han)一(Yi)些(Xie)常(Chang)用(Yong)的(De)第(Di)三(San)方(Fang)插(Cha)件(Jian)。(?)在(Zai)实(Shi)战(Zhan)中(Zhong)展(Zhan)示(Shi)具(Ju)体(Ti)应(Ying)用(Yong)。(?)
7. H5新(Xin)特(Te)性(Xing)与(Yu)移(Yi)动(Dong)端(Duan)开(Kai)发(Fa)
H5新(Xin)特(Te)性(Xing)在(Zai)现(Xian)在(Zai)来(Lai)说(Shuo)已(Yi)经(Jing)不(Bu)再(Zai)是(Shi)新(Xin)内(Nei)容(Rong)了(Liao),(?)项(Xiang)目(Mu)中(Zhong)随(Sui)处(Chu)可(Ke)见(Jian),(?)毕(Bi)竟(Jing)移(Yi)动(Dong)端(Duan)不(Bu)会(Hui)存(Cun)在(Zai)兼(Jian)容(Rong)性(Xing)问(Wen)题(Ti),(?)而(?)且(Qie)这(Zhe)些(Xie)新(Xin)特(Te)性(Xing)在(Zai)移(Yi)动(Dong)端(Duan)的(De)体(Ti)现(Xian)也(Ye)是(Shi)非(Fei)常(Chang)好(Hao)的(De)。(?)例(Li)如(Ru)定(Ding)位(Wei),(?)语(Yu)义(Yi)化(Hua)等(Deng)。(?)利(Li)用(Yong)Canvas实(Shi)现(Xian)更(Geng)多(Duo)的(De)效(Xiao)果(Guo)等(Deng)。(?)
在(Zai)移(Yi)动(Dong)端(Duan)中(Zhong),(?)我(Wo)们(Men)主(Zhu)要(Yao)注(Zhu)重(Zhong)移(Yi)动(Dong)端(Duan)布(Bu)局(Ju)和(He)资(Zi)源(Yuan)加(Jia)载(Zai),(?)布(Bu)局(Ju)方(Fang)向(Xiang),(?)我(Wo)们(Men)主(Zhu)要(Yao)讲(Jiang)解(Jie)百(Bai)分(Fen)比(Bi)、(?)flex、(?)REM、(?)栅(Zha)格(Ge)系(Xi)统(Tong)来(Lai)实(Shi)现(Xian)。(?)资(Zi)源(Yuan)加(Jia)载(Zai)采(Cai)用(Yong)((?)SPA)(?)单(Dan)页(Ye)面(Mian)加(Jia)载(Zai),(?)也(Ye)是(Shi)目(Mu)前(Qian)比(Bi)较(Jiao)火(Huo)的(De)形(Xing)式(Shi)。(?)在(Zai)页(Ye)面(Mian)跳(Tiao)转(Zhuan)时(Shi)可(Ke)以(Yi)非(Fei)常(Chang)节(Jie)省(Sheng)资(Zi)源(Yuan)。(?)混(Hun)合(He)开(Kai)发(Fa)也(Ye)同(Tong)样(Yang)是(Shi)移(Yi)动(Dong)端(Duan)的(De)一(Yi)大(Da)特(Te)点(Dian),(?)在(Zai)我(Wo)们(Men)的(De)课(Ke)程(Cheng)中(Zhong)都(Du)会(Hui)详(Xiang)细(Xi)讲(Jiang)解(Jie)。(?)
8.高(Gao)级(Ji)框(Kuang)架(Jia)
随(Sui)着(Zhuo)项(Xiang)目(Mu)的(De)需(Xu)求(Qiu)越(Yue)来(Lai)越(Yue)多(Duo)。(?)传(Chuan)统(Tong)的(De)开(Kai)发(Fa)方(Fang)式(Shi)已(Yi)经(Jing)不(Bu)能(Neng)满(Man)足(Zu)我(Wo)们(Men)的(De)需(Xu)求(Qiu)了(Liao),(?)所(Suo)以(Yi)我(Wo)们(Men)需(Xu)要(Yao)更(Geng)多(Duo)的(De)支(Zhi)持(Chi)。(?)在(Zai)本(Ben)阶(Jie)段(Duan)中(Zhong),(?)我(Wo)们(Men)讲(Jiang)解(Jie)模(Mo)块(Kuai)化(Hua),(?)将(Jiang)程(Cheng)序(Xu)分(Fen)解(Jie)为(Wei)模(Mo)块(Kuai)化(Hua)开(Kai)发(Fa)。(?)我(Wo)们(Men)需(Xu)要(Yao)Nodejs做(Zuo)支(Zhi)撑(Cheng),(?)无(Wu)论(Lun)是(Shi)作(Zuo)为(Wei)构(Gou)建(Jian)工(Gong)具(Ju)中(Zhong)的(De)服(Fu)务(Wu)器(Qi)存(Cun)在(Zai),(?)还(Huan)是(Shi)为(Wei)我(Wo)们(Men)提(Ti)供(Gong)数(Shu)据(Ju)模(Mo)拟(Ni)测(Ce)试(Shi),(?)都(Du)是(Shi)必(Bi)不(Bu)可(Ke)少(Shao)的(De)。(?)

随(Sui)着(Zhuo)ES5开(Kai)发(Fa)者(Zhe)体(Ti)会(Hui)在(Zai)开(Kai)发(Fa)中(Zhong)的(De)难(Nan)言(Yan)之(Zhi)隐(Yin),(?)ES6的(De)到(Dao)来(Lai)解(Jie)决(Jue)了(Liao)各(Ge)种(Zhong)头(Tou)痛(Tong)的(De)问(Wen)题(Ti)。(?)也(Ye)是(Shi)我(Wo)们(Men)必(Bi)须(Xu)要(Yao)掌(Zhang)握(Wo)的(De)一(Yi)个(Ge)重(Zhong)点(Dian)。(?)还(Huan)有(You)更(Geng)多(Duo),(?)例(Li)如(Ru)多(Duo)人(Ren)协(Xie)同(Tong)开(Kai)发(Fa)((?)git或(Huo)者(Zhe)svn)(?),(?)利(Li)用(Yong)Less和(He)Sass完(Wan)成(Cheng)更(Geng)好(Hao)的(De)CSS的(De)编(Bian)写(Xie)
接(Jie)下(Xia)来(Lai)我(Wo)们(Men)介(Jie)绍(Shao)一(Yi)下(Xia)目(Mu)前(Qian)前(Qian)端(Duan)三(San)大(Da)框(Kuang)架(Jia):(?)
Angular:(?)Angular是(Shi)一(Yi)个(Ge)开(Kai)发(Fa)平(Ping)台(Tai),(?)他(Ta)能(Neng)帮(Bang)我(Wo)们(Men)轻(Qing)松(Song)的(De)构(Gou)建(Jian)Web应(Ying)用(Yong),(?)我(Wo)们(Men)将(Jiang)在(Zai)这(Zhe)部(Bu)分(Fen)课(Ke)程(Cheng)中(Zhong)讲(Jiang)解(Jie)Angular的(De)声(Sheng)明(Ming)式(Shi)模(Mo)板(Ban),(?)依(Yi)赖(Lai)注(Zhu)入(Ru),(?)端(Duan)到(Dao)端(Duan)的(De)工(Gong)具(Ju)和(He)一(Yi)些(Xie)最(Zui)佳(Jia)实(Shi)践(Jian)于(Yu)一(Yi)身(Shen)。(?)我(Wo)们(Men)通(Tong)过(Guo)完(Wan)整(Zheng)项(Xiang)目(Mu)配(Pei)合(He)实(Shi)例(Li)讲(Jiang)解(Jie)课(Ke)程(Cheng),(?)以(Yi)便(Bian)于(Yu)大(Da)家(Jia)更(Geng)容(Rong)易(Yi)去(Qu)理(Li)解(Jie)Angular的(De)应(Ying)用(Yong)。(?)

React:(?)作(Zuo)为(Wei)前(Qian)端(Duan)三(San)大(Da)框(Kuang)架(Jia)之(Zhi)一(Yi),(?)React拥(Yong)有(You)声(Sheng)明(Ming)式(Shi)和(He)组(Zu)件(Jian)化(Hua)两(Liang)大(Da)特(Te)点(Dian),(?)React可(Ke)以(Yi)轻(Qing)松(Song)创(Chuang)建(Jian)交(Jiao)互(Hu)式(Shi)用(Yong)户(Hu)界(Jie)面(Mian)。(?)为(Wei)应(Ying)用(Yong)程(Cheng)序(Xu)中(Zhong)的(De)每(Mei)个(Ge)状(Zhuang)态(Tai)设(She)计(Ji)简(Jian)单(Dan)的(De)视(Shi)图(Tu),(?)当(Dang)数(Shu)据(Ju)更(Geng)改(Gai)时(Shi),(?)React将(Jiang)高(Gao)效(Xiao)地(Di)更(Geng)新(Xin)和(He)正(Zheng)确(Que)的(De)渲(Xuan)染(Ran)组(Zu)件(Jian)。(?)声(Sheng)明(Ming)式(Shi)视(Shi)图(Tu)使(Shi)您(Nin)的(De)代(Dai)码(Ma)更(Geng)具(Ju)可(Ke)预(Yu)测(Ce)性(Xing),(?)更(Geng)易(Yi)于(Yu)调(Diao)试(Shi)。(?)创(Chuang)建(Jian)好(Hao)拥(Yong)有(You)各(Ge)自(Zi)State(状(Zhuang)态(Tai)) 的(De)组(Zu)件(Jian),(?)再(Zai)将(Jiang)其(Qi)组(Zu)合(He)构(Gou)成(Cheng)更(Geng)加(Jia)复(Fu)杂(Za)的(De)UI界(Jie)面(Mian)。(?)由(You)于(Yu)组(Zu)件(Jian)逻(Luo)辑(Ji)是(Shi)用(Yong)JavaScript而(?)不(Bu)是(Shi)模(Mo)板(Ban)编(Bian)写(Xie)的(De),(?)因(Yin)此(Ci)可(Ke)以(Yi)通(Tong)过(Guo)应(Ying)用(Yong)程(Cheng)序(Xu)轻(Qing)松(Song)传(Chuan)递(Di)丰(Feng)富(Fu)的(De)数(Shu)据(Ju),(?)并(Bing)将(Jiang)State(状(Zhuang)态(Tai)) 保(Bao)留(Liu)在(Zai)DOM之(Zhi)外(Wai)。(?)我(Wo)们(Men)将(Jiang)会(Hui)从(Cong)零(Ling)开(Kai)发(Fa)讲(Jiang)解(Jie),(?)讲(Jiang)解(Jie)过(Guo)程(Cheng)中(Zhong)个(Ge),(?)我(Wo)们(Men)也(Ye)带(Dai)领(Ling)大(Da)家(Jia)从(Cong)环(Huan)境(Jing)的(De)构(Gou)建(Jian)开(Kai)始(Shi)学(Xue)习(Xi),(?)这(Zhe)样(Yang)可(Ke)以(Yi)让(Rang)你(Ni)更(Geng)好(Hao)更(Geng)快(Kuai)的(De)对(Dui)接(Jie)企(Qi)业(Ye)级(Ji)项(Xiang)目(Mu)的(De)环(Huan)境(Jing)架(Jia)构(Gou)。(?)
VUE:(?)在(Zai)借(Jie)鉴(Jian)了(Liao)Angular和(He)React两(Liang)个(Ge)优(You)秀(Xiu)框(Kuang)架(Jia)的(De)基(Ji)础(Chu)上(Shang),(?)Vue无(Wu)疑(Yi)是(Shi)非(Fei)常(Chang)受(Shou)欢(Huan)迎(Ying)的(De),(?)它(Ta)使(Shi)用(Yong)简(Jian)单(Dan),(?)强(Qiang)大(Da)的(De)生(Sheng)态(Tai)系(Xi)统(Tong),(?)高(Gao)效(Xiao)的(De)运(Yun)行(Xing)速(Su)度(Du)也(Ye)是(Shi)我(Wo)们(Men)在(Zai)开(Kai)发(Fa)中(Zhong)的(De)选(Xuan)择(Ze)之(Zhi)一(Yi)。(?)Vue是(Shi)一(Yi)套(Tao)用(Yong)于(Yu)构(Gou)建(Jian)用(Yong)户(Hu)界(Jie)面(Mian)的(De)渐(Jian)进(Jin)式(Shi)框(Kuang)架(Jia)。(?)与(Yu)其(Qi)它(Ta)大(Da)型(Xing)框(Kuang)架(Jia)不(Bu)同(Tong)的(De)是(Shi),(?)Vue被(Bei)设(She)计(Ji)为(Wei)可(Ke)以(Yi)自(Zi)底(Di)向(Xiang)上(Shang)逐(Zhu)层(Ceng)应(Ying)用(Yong)。(?)Vue的(De)核(He)心(Xin)库(Ku)只(Zhi)关(Guan)注(Zhu)视(Shi)图(Tu)层(Ceng),(?)不(Bu)仅(Jin)易(Yi)于(Yu)上(Shang)手(Shou),(?)还(Huan)便(Bian)于(Yu)与(Yu)第(Di)三(San)方(Fang)库(Ku)或(Huo)既(Ji)有(You)项(Xiang)目(Mu)整(Zheng)合(He)。(?)

另(Ling)一(Yi)方(Fang)面(Mian),(?)当(Dang)与(Yu)现(Xian)代(Dai)化(Hua)的(De)工(Gong)具(Ju)链(Lian)以(Yi)及(Ji)各(Ge)种(Zhong)支(Zhi)持(Chi)类(Lei)库(Ku)结(Jie)合(He)使(Shi)用(Yong)时(Shi),(?)Vue也(Ye)完(Wan)全(Quan)能(Neng)够(Gou)为(Wei)复(Fu)杂(Za)的(De)单(Dan)页(Ye)应(Ying)用(Yong)提(Ti)供(Gong)驱(Qu)动(Dong)。(?)在(Zai)学(Xue)习(Xi)真(Zhen)个(Ge)Vue的(De)过(Guo)程(Cheng)中(Zhong),(?)我(Wo)们(Men)会(Hui)通(Tong)过(Guo)两(Liang)个(Ge)企(Qi)业(Ye)级(Ji)项(Xiang)目(Mu)来(Lai)讲(Jiang)解(Jie)他(Ta)的(De)使(Shi)用(Yong),(?)以(Yi)便(Bian)于(Yu)大(Da)家(Jia)更(Geng)好(Hao)的(De)掌(Zhang)握(Wo)使(Shi)用(Yong)Vue熟(Shu)练(Lian)开(Kai)发(Fa)。(?)
9.微(Wei)信(Xin)小(Xiao)程(Cheng)序(Xu)
作(Zuo)为(Wei)微(Wei)信(Xin)推(Tui)出(Chu)的(De)一(Yi)种(Zhong)新(Xin)的(De)项(Xiang)目(Mu)展(Zhan)示(Shi)形(Xing)式(Shi),(?)微(Wei)信(Xin)小(Xiao)程(Cheng)序(Xu)必(Bi)然(Ran)是(Shi)非(Fei)常(Chang)受(Shou)到(Dao)人(Ren)们(Men)重(Zhong)视(Shi)的(De),(?)而(?)且(Qie),(?)目(Mu)前(Qian)为(Wei)止(Zhi),(?)大(Da)部(Bu)分(Fen)推(Tui)广(Guang)为(Wei)主(Zhu)的(De)公(Gong)司(Si)都(Du)存(Cun)在(Zai)了(Liao)微(Wei)信(Xin)小(Xiao)程(Cheng)序(Xu),(?)也(Ye)催(Cui)生(Sheng)了(Liao)一(Yi)个(Ge)岗(Gang)位(Wei),(?)微(Wei)信(Xin)小(Xiao)程(Cheng)序(Xu)开(Kai)发(Fa)工(Gong)程(Cheng)师(Shi)。(?)可(Ke)想(Xiang)而(?)知(Zhi),(?)微(Wei)信(Xin)小(Xiao)程(Cheng)序(Xu)是(Shi)非(Fei)常(Chang)火(Huo)的(De)。(?)我(Wo)们(Men)课(Ke)程(Cheng)是(Shi)在(Zai)小(Xiao)程(Cheng)序(Xu)正(Zheng)式(Shi)发(Fa)布(Bu)后(Hou)就(Jiu)已(Yi)经(Jing)加(Jia)入(Ru)到(Dao)课(Ke)程(Cheng)了(Liao),(?)通(Tong)过(Guo)近(Jin)1年(Nian)的(De)实(Shi)战(Zhan)演(Yan)练(Lian),(?)在(Zai)我(Wo)们(Men)的(De)课(Ke)程(Cheng)中(Zhong),(?)通(Tong)过(Guo)项(Xiang)目(Mu)直(Zhi)接(Jie)入(Ru)手(Shou),(?)在(Zai)项(Xiang)目(Mu)中(Zhong)掌(Zhang)握(Wo)API知(Zhi)识(Shi)点(Dian)的(De)应(Ying)用(Yong)。(?)这(Zhe)样(Yang)可(Ke)以(Yi)更(Geng)快(Kuai)适(Shi)应(Ying)项(Xiang)目(Mu)开(Kai)发(Fa)。(?)
六(Liu):(?)大(Da)数(Shu)据(Ju)和(He)云(Yun)计(Ji)算(Suan)学(Xue)习(Xi)知(Zhi)识(Shi)点(Dian)和(He)配(Pei)套(Tao)视(Shi)频(Pin)
IT时(Shi)代(Dai),(?)最(Zui)重(Zhong)要(Yao)的(De)特(Te)征(Zheng)就(Jiu)是(Shi):(?)“(?)数(Shu)据(Ju)越(Yue)来(Lai)越(Yue)多(Duo)”(?)。(?)每(Mei)天(Tian)产(Chan)生(Sheng)的(De)数(Shu)据(Ju)源(Yuan)源(Yuan)不(Bu)断(Duan),(?)成(Cheng)为(Wei)了(Liao)现(Xian)代(Dai)社(She)会(Hui)的(De)“(?)石(Shi)油(You)”(?)。(?)大(Da)数(Shu)据(Ju)的(De)存(Cun)储(Chu)、(?)分(Fen)析(Xi)都(Du)成(Cheng)了(Liao)非(Fei)常(Chang)重(Zhong)要(Yao)的(De)技(Ji)术(Shu)。(?)
尚(Shang)学(Xue)堂(Tang)从(Cong)2014年(Nian)国(Guo)内(Nei)第(Di)一(Yi)批(Pi)开(Kai)设(She)大(Da)数(Shu)据(Ju)专(Zhuan)业(Ye),(?)由(You)国(Guo)内(Nei)知(Zhi)名(Ming)专(Zhuan)家(Jia)夏(Xia)中(Zhong)云(Yun)、(?)肖(Xiao)斌(Bin)、(?)周(Zhou)智(Zhi)雷(Lei)创(Chuang)建(Jian)。(?)我(Wo)们(Men)培(Pei)训(Xun)的(De)大(Da)数(Shu)据(Ju)学(Xue)员(Yuan)绝(Jue)大(Da)多(Duo)数(Shu)成(Cheng)为(Wei)了(Liao)目(Mu)前(Qian)各(Ge)大(Da)数(Shu)据(Ju)企(Qi)业(Ye)的(De)骨(Gu)干(Gan),(?)深(Shen)刻(Ke)的(De)影(Ying)响(Xiang)了(Liao)国(Guo)内(Nei)大(Da)数(Shu)据(Ju)行(Xing)业(Ye)。(?)
为(Wei)了(Liao)让(Rang)更(Geng)多(Duo)人(Ren)受(Shou)益(Yi),(?) 我(Wo)们(Men)会(Hui)陆(Lu)续(Xu)公(Gong)布(Bu)大(Da)部(Bu)分(Fen)的(De)大(Da)数(Shu)据(Ju)课(Ke)程(Cheng)视(Shi)频(Pin),(?)这(Zhe)些(Xie)视(Shi)频(Pin)来(Lai)自(Zi)于(Yu)我(Wo)们(Men)线(Xian)下(Xia)培(Pei)训(Xun)精(Jing)品(Pin)课(Ke)程(Cheng),(?)大(Da)多(Duo)数(Shu)直(Zhi)接(Jie)录(Lu)制(Zhi)于(Yu)课(Ke)堂(Tang),(?)欢(Huan)迎(Ying)大(Da)家(Jia)免(Mian)费(Fei)下(Xia)载(Zai)或(Huo)者(Zhe)在(Zai)线(Xian)观(Guan)看(Kan)。(?)
我(Wo)们(Men)每(Mei)个(Ge)月(Yue)都(Du)会(Hui)更(Geng)新(Xin)相(Xiang)应(Ying)的(De)视(Shi)频(Pin),(?)大(Da)家(Jia)可(Ke)以(Yi)持(Chi)续(Xu)关(Guan)注(Zhu)下(Xia)载(Zai)地(Di)址(Zhi)((?)大(Da)数(Shu)据(Ju)视(Shi)频(Pin)的(De)拼(Pin)音(Yin))(?):(?)
http://tekxul.com/dashujushipin.html
1.大(Da)数(Shu)据(Ju)学(Xue)习(Xi)之(Zhi)前(Qian)“(?)必(Bi)看(Kan)”(?)
大(Da)数(Shu)据(Ju)是(Shi)现(Xian)在(Zai)这(Zhe)个(Ge)时(Shi)代(Dai)非(Fei)常(Chang)流(Liu)行(Xing)的(De)概(Gai)念(Nian),(?)并(Bing)且(Qie)随(Sui)着(Zhuo)人(Ren)工(Gong)智(Zhi)能(Neng)的(De)崛(Jue)起(Qi),(?)大(Da)数(Shu)据(Ju)也(Ye)越(Yue)来(Lai)越(Yue)有(You)价(Jia)值(Zhi)。(?)人(Ren)工(Gong)智(Zhi)能(Neng)算(Suan)法(Fa)其(Qi)实(Shi)在(Zai)三(San)十(Shi)年(Nian)前(Qian)就(Jiu)有(You)了(Liao),(?)但(Dan)是(Shi)没(Mei)有(You)用(Yong)。(?)原(Yuan)因(Yin)是(Shi):(?)第(Di)一(Yi)、(?)计(Ji)算(Suan)机(Ji)不(Bu)够(Gou)快(Kuai);(?)第(Di)二(?)、(?)数(Shu)据(Ju)量(Liang)不(Bu)够(Gou)大(Da),(?)训(Xun)练(Lian)出(Chu)来(Lai)的(De)模(Mo)型(Xing)太(Tai)差(Cha)。(?)
IT时(Shi)代(Dai),(?)其(Qi)实(Shi)也(Ye)是(Shi)大(Da)数(Shu)据(Ju)时(Shi)代(Dai)。(?)我(Wo)们(Men)产(Chan)生(Sheng)的(De)数(Shu)据(Ju)越(Yue)来(Lai)越(Yue)多(Duo),(?)这(Zhe)些(Xie)数(Shu)据(Ju)反(Fan)过(Guo)来(Lai)就(Jiu)像(Xiang)“(?)石(Shi)油(You)”(?)一(Yi)样(Yang),(?)为(Wei)我(Wo)们(Men)提(Ti)供(Gong)了(Liao)进(Jin)一(Yi)步(Bu)的(De)价(Jia)值(Zhi)。(?)人(Ren)工(Gong)智(Zhi)能(Neng)等(Deng)算(Suan)法(Fa)就(Jiu)像(Xiang)“(?)吞(Tun)食(Shi)数(Shu)据(Ju)的(De)怪(Guai)兽(Shou)”(?),(?)数(Shu)据(Ju)越(Yue)多(Duo)人(Ren)工(Gong)智(Zhi)能(Neng)也(Ye)越(Yue)强(Qiang)大(Da)。(?)
因(Yin)此(Ci),(?)在(Zai)学(Xue)习(Xi)大(Da)数(Shu)据(Ju)之(Zhi)前(Qian),(?)一(Yi)定(Ding)要(Yao)先(Xian)搞(Gao)明(Ming)白(Bai)几(Ji)个(Ge)问(Wen)题(Ti):(?)
1.什(Shi)么(Me)大(Da)数(Shu)据(Ju)?(?)
2.什(Shi)么(Me)是(Shi)云(Yun)计(Ji)算(Suan)?(?)
3.什(Shi)么(Me)是(Shi)数(Shu)据(Ju)挖(Wa)掘(Jue)?(?)
4.什(Shi)么(Me)是(Shi)人(Ren)工(Gong)智(Zhi)能(Neng)?(?)
5.什(Shi)么(Me)条(Tiao)件(Jian)才(Cai)能(Neng)学(Xue)习(Xi)大(Da)数(Shu)据(Ju)?(?)
了(Liao)解(Jie)之(Zhi)后(Hou)你(Ni)才(Cai)能(Neng)有(You)的(De)放(Fang)矢(Shi),(?)以(Yi)及(Ji)想(Xiang)一(Yi)想(Xiang)自(Zi)己(Ji)是(Shi)否(Fou)适(Shi)合(He)学(Xue)习(Xi)。(?)同(Tong)时(Shi),(?)也(Ye)至(Zhi)少(Shao)不(Bu)会(Hui)被(Bei)人(Ren)骗(Pian),(?)因(Yin)为(Wei)了(Liao)解(Jie)这(Zhe)些(Xie)问(Wen)题(Ti)之(Zhi)后(Hou),(?)一(Yi)看(Kan)课(Ke)程(Cheng)大(Da)纲(Gang)里(Li)面(Mian)有(You)“(?)遥(Yao)控(Kong)机(Ji)器(Qi)人(Ren)技(Ji)术(Shu),(?)android技(Ji)术(Shu)”(?)等(Deng)。(?)这(Zhe)些(Xie)技(Ji)术(Shu)肯(Ken)定(Ding)和(He)大(Da)数(Shu)据(Ju)是(Shi)没(Mei)有(You)关(Guan)系(Xi)的(De)。(?)
由(You)于(Yu)篇(Pian)幅(Fu)的(De)问(Wen)题(Ti),(?)这(Zhe)个(Ge)几(Ji)个(Ge)问(Wen)题(Ti)的(De)解(Jie)答(Da)已(Yi)经(Jing)录(Lu)制(Zhi)成(Cheng)一(Yi)套(Tao)视(Shi)频(Pin)。(?)视(Shi)频(Pin)列(Lie)表(Biao)如(Ru)下(Xia):(?)
- 知(Zhi)识(Shi)块(Kuai)
- 1、(?)什(Shi)么(Me)大(Da)数(Shu)据(Ju)?(?)
- 2、(?)什(Shi)么(Me)是(Shi)人(Ren)工(Gong)智(Zhi)能(Neng)?(?)
- 3、(?)什(Shi)么(Me)是(Shi)机(Ji)器(Qi)学(Xue)习(Xi)和(He)深(Shen)度(Du)学(Xue)习(Xi)?(?)
- 4、(?)数(Shu)据(Ju)挖(Wa)掘(Jue)到(Dao)底(Di)挖(Wa)什(Shi)么(Me)?(?)
- 5、(?)大(Da)数(Shu)据(Ju)技(Ji)术(Shu)体(Ti)系(Xi)介(Jie)绍(Shao)
- 6、(?)基(Ji)础(Chu)可(Ke)以(Yi)学(Xue)习(Xi)大(Da)数(Shu)据(Ju)吗(Ma)?(?)
- 7、(?)大(Da)数(Shu)据(Ju)工(Gong)作(Zuo)职(Zhi)务(Wu)多(Duo)吗(Ma)?(?)薪(Xin)水(Shui)怎(Zen)么(Me)样(Yang)?(?)
- 8、(?)大(Da)数(Shu)据(Ju)简(Jian)历(Li)怎(Zen)么(Me)写(Xie)?(?)
- 9、(?)大(Da)数(Shu)据(Ju)的(De)学(Xue)习(Xi)方(Fang)法(Fa)
- 10、(?)哪(Na)些(Xie)技(Ji)术(Shu)才(Cai)是(Shi)大(Da)数(Shu)据(Ju)的(De)重(Zhong)点(Dian)内(Nei)容(Rong)?(?)
建(Jian)议(Yi):(?)在(Zai)学(Xue)习(Xi)大(Da)数(Shu)据(Ju)之(Zhi)前(Qian)最(Zui)好(Hao)花(Hua)2个(Ge)小(Xiao)时(Shi),(?)认(Ren)真(Zhen)看(Kan)一(Yi)下(Xia),(?)所(Suo)有(You)人(Ren)都(Du)能(Neng)看(Kan)懂(Dong)。(?)就(Jiu)算(Suan)不(Bu)想(Xiang)学(Xue)习(Xi)大(Da)数(Shu)据(Ju),(?)也(Ye)可(Ke)以(Yi)增(Zeng)加(Jia)大(Da)家(Jia)的(De)知(Zhi)识(Shi)面(Mian)。(?)
2.Hadoop框(Kuang)架(Jia)
Hadoop的(De)框(Kuang)架(Jia)最(Zui)核(He)心(Xin)的(De)设(She)计(Ji)就(Jiu)是(Shi):(?)HDFS和(He)MapReduce。(?)HDFS为(Wei)海(Hai)量(Liang)的(De)数(Shu)据(Ju)提(Ti)供(Gong)了(Liao)存(Cun)储(Chu),(?)则(Ze)MapReduce为(Wei)海(Hai)量(Liang)的(De)数(Shu)据(Ju)提(Ti)供(Gong)了(Liao)计(Ji)算(Suan)。(?)

HDFS是(Shi)一(Yi)个(Ge)高(Gao)度(Du)容(Rong)错(Cuo)性(Xing)的(De)系(Xi)统(Tong),(?)适(Shi)合(He)部(Bu)署(Shu)在(Zai)廉(Lian)价(Jia)的(De)机(Ji)器(Qi)上(Shang)。(?)HDFS能(Neng)提(Ti)供(Gong)高(Gao)吞(Tun)吐(Tu)量(Liang)的(De)数(Shu)据(Ju)访(Fang)问(Wen),(?)非(Fei)常(Chang)适(Shi)合(He)大(Da)规(Gui)模(Mo)数(Shu)据(Ju)集(Ji)上(Shang)的(De)程(Cheng)序(Xu)计(Ji)算(Suan)。(?)HDFS技(Ji)术(Shu)是(Shi)整(Zheng)个(Ge)大(Da)数(Shu)据(Ju)的(De)“(?)入(Ru)门(Men)”(?)。(?)只(Zhi)要(Yao)从(Cong)事(Shi)大(Da)数(Shu)据(Ju)方(Fang)面(Mian)工(Gong)作(Zuo)的(De)程(Cheng)序(Xu)员(Yuan),(?)不(Bu)管(Guan)你(Ni)后(Hou)面(Mian)用(Yong)什(Shi)么(Me)样(Yang)的(De)分(Fen)析(Xi)技(Ji)术(Shu)都(Du)必(Bi)须(Xu)要(Yao)学(Xue)会(Hui)HDFS。(?)
MapReduce是(Shi)用(Yong)于(Yu)大(Da)规(Gui)模(Mo)数(Shu)据(Ju)集(Ji)((?)大(Da)于(Yu)1TB)(?)的(De)并(Bing)行(Xing)运(Yun)算(Suan)。(?)它(Ta)极(Ji)大(Da)地(Di)方(Fang)便(Bian)了(Liao)编(Bian)程(Cheng)人(Ren)员(Yuan)在(Zai)不(Bu)会(Hui)分(Fen)布(Bu)式(Shi)并(Bing)行(Xing)编(Bian)程(Cheng)的(De)情(Qing)况(Kuang)下(Xia),(?)将(Jiang)自(Zi)己(Ji)的(De)程(Cheng)序(Xu)运(Yun)行(Xing)在(Zai)分(Fen)布(Bu)式(Shi)系(Xi)统(Tong)上(Shang)。(?)因(Yin)为(Wei)只(Zhi)有(You)分(Fen)布(Bu)式(Shi)计(Ji)算(Suan)才(Cai)能(Neng)解(Jie)决(Jue)“(?)海(Hai)量(Liang)数(Shu)据(Ju)”(?)的(De)分(Fen)析(Xi)问(Wen)题(Ti)。(?)
学(Xue)好(Hao)HDFS,(?)就(Jiu)能(Neng)知(Zhi)道(Dao)为(Wei)什(Shi)么(Me)它(Ta)可(Ke)以(Yi)存(Cun)储(Chu)海(Hai)量(Liang)数(Shu)据(Ju),(?)知(Zhi)道(Dao)“(?)百(Bai)度(Du)网(Wang)盘(Pan)”(?)本(Ben)身(Shen)是(Shi)什(Shi)么(Me)?(?)能(Neng)否(Fou)自(Zi)己(Ji)也(Ye)能(Neng)实(Shi)现(Xian)一(Yi)个(Ge)网(Wang)盘(Pan)。(?)让(Rang)大(Da)家(Jia)一(Yi)开(Kai)始(Shi)就(Jiu)进(Jin)入(Ru)大(Da)数(Shu)据(Ju)实(Shi)战(Zhan)状(Zhuang)态(Tai)。(?)
Hadoop是(Shi)大(Da)数(Shu)据(Ju)中(Zhong)必(Bi)学(Xue)的(De)一(Yi)个(Ge)技(Ji)术(Shu),(?)也(Ye)是(Shi)大(Da)数(Shu)据(Ju)职(Zhi)位(Wei)要(Yao)求(Qiu)必(Bi)有(You)的(De)一(Yi)个(Ge)技(Ji)术(Shu)。(?)Hadoop也(Ye)是(Shi)后(Hou)面(Mian)其(Qi)他(Ta)技(Ji)术(Shu)的(De)基(Ji)础(Chu),(?)学(Xue)好(Hao)了(Liao)Hadoop才(Cai)能(Neng)更(Geng)好(Hao)的(De)学(Xue)好(Hao)Hive,(?)Hbase,(?)Spark,(?)Storm等(Deng)。(?)
3.数(Shu)据(Ju)仓(Cang)库(Ku)技(Ji)术(Shu)
大(Da)数(Shu)据(Ju)的(De)数(Shu)据(Ju)仓(Cang)库(Ku)技(Ji)术(Shu)主(Zhu)要(Yao)包(Bao)括(Kuo):(?)Hive,(?)Hbase,(?)Sqoop,(?)Flume等(Deng)。(?)其(Qi)中(Zhong)Hive在(Zai)企(Qi)业(Ye)中(Zhong)使(Shi)用(Yong)最(Zui)为(Wei)广(Guang)泛(Fan)。(?)对(Dui)于(Yu)同(Tong)学(Xue)们(Men)来(Lai)说(Shuo),(?)Hive最(Zui)容(Rong)易(Yi)入(Ru)门(Men),(?)因(Yin)为(Wei)不(Bu)用(Yong)写(Xie)代(Dai)码(Ma);(?)只(Zhi)需(Xu)要(Yao)有(You)sql基(Ji)础(Chu)就(Jiu)能(Neng)很(Hen)好(Hao)的(De)学(Xue)习(Xi)Hive。(?)
Hbase是(Shi)一(Yi)个(Ge)分(Fen)布(Bu)式(Shi)、(?)列(Lie)式(Shi)数(Shu)据(Ju)库(Ku)。(?)它(Ta)解(Jie)决(Jue)的(De)问(Wen)题(Ti)是(Shi):(?)在(Zai)海(Hai)量(Liang)数(Shu)据(Ju)的(De)情(Qing)况(Kuang)下(Xia)还(Huan)能(Neng)做(Zuo)到(Dao)秒(Miao)级(Ji)的(De)增(Zeng)、(?)删(Shan)、(?)改(Gai)、(?)查(Cha)操(Cao)作(Zuo)。(?)
4.Spark内(Nei)存(Cun)计(Ji)算(Suan)框(Kuang)架(Jia)

Spark是(Shi)当(Dang)前(Qian)最(Zui)为(Wei)流(Liu)行(Xing)的(De)基(Ji)于(Yu)内(Nei)存(Cun)计(Ji)算(Suan)的(De)分(Fen)布(Bu)式(Shi)框(Kuang)架(Jia),(?)在(Zai)Spark的(De)生(Sheng)态(Tai)圈(Quan)中(Zhong)的(De)框(Kuang)架(Jia)几(Ji)乎(Hu)能(Neng)够(Gou)解(Jie)决(Jue)所(Suo)有(You)的(De)大(Da)数(Shu)据(Ju)的(De)应(Ying)用(Yong)场(Chang)景(Jing),(?)如(Ru)果(Guo)基(Ji)于(Yu)内(Nei)存(Cun)计(Ji)算(Suan),(?)计(Ji)算(Suan)速(Su)度(Du)比(Bi)Hadoop生(Sheng)态(Tai)圈(Quan)中(Zhong)的(De)MapReduce快(Kuai)100倍(Bei),(?)如(Ru)果(Guo)是(Shi)基(Ji)于(Yu)磁(Ci)盘(Pan)的(De)计(Ji)算(Suan),(?)那(Na)么(Me)速(Su)度(Du)快(Kuai)10倍(Bei)以(Yi)上(Shang),(?)所(Suo)以(Yi)Spark是(Shi)当(Dang)前(Qian)大(Da)数(Shu)据(Ju)开(Kai)发(Fa)人(Ren)员(Yuan)必(Bi)备(Bei)的(De)。(?)
Spark是(Shi)有(You)Scala语(Yu)言(Yan)开(Kai)发(Fa)的(De),(?)包(Bao)括(Kuo):(?)Spark-Core((?)离(Li)线(Xian)计(Ji)算(Suan))(?)、(?)Spark-SQL、(?)Spark-Streaming((?)流(Liu)式(Shi)计(Ji)算(Suan))(?)、(?)Spark-MLlib((?)机(Ji)器(Qi)学(Xue)习(Xi))(?)。(?)
Spark是(Shi)整(Zheng)个(Ge)大(Da)数(Shu)据(Ju)技(Ji)术(Shu)中(Zhong)的(De)“(?)重(Zhong)中(Zhong)之(Zhi)重(Zhong)”(?)。(?)因(Yin)为(Wei)在(Zai)面(Mian)试(Shi)过(Guo)程(Cheng)中(Zhong),(?)笔(Bi)试(Shi)题(Ti)和(He)面(Mian)试(Shi)题(Ti)有(You)60%的(De)可(Ke)能(Neng)性(Xing)会(Hui)涉(She)及(Ji)到(Dao)Spark知(Zhi)识(Shi)点(Dian)。(?)所(Suo)以(Yi),(?)Spark的(De)学(Xue)习(Xi)要(Yao)求(Qiu)是(Shi):(?)了(Liao)解(Jie)Spark源(Yuan)码(Ma),(?)能(Neng)够(Gou)优(You)化(Hua)Spark、(?)能(Neng)够(Gou)用(Yong)Java,(?)Scala,(?)Python三(San)种(Zhong)计(Ji)算(Suan)机(Ji)语(Yu)言(Yan)开(Kai)发(Fa)任(Ren)何(He)的(De)Spark程(Cheng)序(Xu)。(?)
5.机(Ji)器(Qi)学(Xue)习(Xi)和(He)数(Shu)据(Ju)挖(Wa)掘(Jue)
机(Ji)器(Qi)学(Xue)习(Xi)(Machine Learning, ML)是(Shi)一(Yi)门(Men)多(Duo)领(Ling)域(Yu)交(Jiao)叉(Cha)学(Xue)科(Ke),(?)涉(She)及(Ji)概(Gai)率(Lu)论(Lun)、(?)统(Tong)计(Ji)学(Xue)、(?)逼(?)近(Jin)论(Lun)、(?)凸(Tu)分(Fen)析(Xi)、(?)算(Suan)法(Fa)复(Fu)杂(Za)度(Du)理(Li)论(Lun)等(Deng)多(Duo)门(Men)学(Xue)科(Ke)。(?)专(Zhuan)门(Men)研(Yan)究(Jiu)计(Ji)算(Suan)机(Ji)怎(Zen)样(Yang)模(Mo)拟(Ni)或(Huo)实(Shi)现(Xian)人(Ren)类(Lei)的(De)学(Xue)习(Xi)行(Xing)为(Wei),(?)以(Yi)获(Huo)取(Qu)新(Xin)的(De)知(Zhi)识(Shi)或(Huo)技(Ji)能(Neng),(?)重(Zhong)新(Xin)组(Zu)织(Zhi)已(Yi)有(You)的(De)知(Zhi)识(Shi)结(Jie)构(Gou)使(Shi)之(Zhi)不(Bu)断(Duan)改(Gai)善(Shan)自(Zi)身(Shen)的(De)性(Xing)能(Neng)。(?)它(Ta)是(Shi)人(Ren)工(Gong)智(Zhi)能(Neng)的(De)核(He)心(Xin),(?)是(Shi)使(Shi)计(Ji)算(Suan)机(Ji)具(Ju)有(You)智(Zhi)能(Neng)的(De)根(Gen)本(Ben)途(Tu)径(Jing),(?)其(Qi)应(Ying)用(Yong)遍(Bian)及(Ji)人(Ren)工(Gong)智(Zhi)能(Neng)的(De)各(Ge)个(Ge)领(Ling)域(Yu)。(?)
在(Zai)公(Gong)司(Si)项(Xiang)目(Mu)应(Ying)用(Yong)过(Guo)程(Cheng)中(Zhong),(?)重(Zhong)点(Dian)强(Qiang)调(Diao)的(De)分(Fen)布(Bu)式(Shi)的(De)机(Ji)器(Qi)学(Xue)习(Xi),(?)因(Yin)为(Wei)基(Ji)于(Yu)海(Hai)量(Liang)的(De)数(Shu)据(Ju)必(Bi)须(Xu)采(Cai)用(Yong)分(Fen)布(Bu)式(Shi)的(De)机(Ji)器(Qi)学(Xue)习(Xi)库(Ku)。(?)否(Fou)则(Ze)根(Gen)本(Ben)就(Jiu)是(Shi)“(?)扯(Che)淡(Dan)”(?)。(?)所(Suo)以(Yi)根(Gen)据(Ju)企(Qi)业(Ye)的(De)需(Xu)求(Qiu),(?)同(Tong)学(Xue)们(Men)也(Ye)要(Yao)分(Fen)辨(Bian)出(Chu)哪(Na)些(Xie)是(Shi)分(Fen)布(Bu)式(Shi)的(De)机(Ji)器(Qi)学(Xue)习(Xi)库(Ku),(?)比(Bi)如(Ru):(?)M ahout,(?)Spark-Mllib等(Deng)。(?)
6.Storm流(Liu)式(Shi)计(Ji)算(Suan)框(Kuang)架(Jia)
目(Mu)前(Qian)有(You)两(Liang)种(Zhong)比(Bi)较(Jiao)流(Liu)行(Xing)的(De)计(Ji)算(Suan)方(Fang)式(Shi):(?)离(Li)线(Xian)计(Ji)算(Suan)和(He)流(Liu)式(Shi)计(Ji)算(Suan)。(?)
流(Liu)计(Ji)算(Suan)方(Fang)式(Shi):(?)它(Ta)可(Ke)以(Yi)很(Hen)好(Hao)地(Di)对(Dui)大(Da)规(Gui)模(Mo)流(Liu)动(Dong)数(Shu)据(Ju)在(Zai)不(Bu)断(Duan)变(Bian)化(Hua)的(De)运(Yun)动(Dong)过(Guo)程(Cheng)中(Zhong)实(Shi)时(Shi)地(Di)进(Jin)行(Xing)分(Fen)析(Xi),(?)捕(Bu)捉(Zhuo)到(Dao)可(Ke)能(Neng)有(You)用(Yong)的(De)信(Xin)息(Xi),(?)并(Bing)把(Ba)结(Jie)果(Guo)发(Fa)送(Song)到(Dao)下(Xia)一(Yi)计(Ji)算(Suan)节(Jie)点(Dian)。(?)
Storm是(Shi)流(Liu)式(Shi)计(Ji)算(Suan)中(Zhong)的(De)技(Ji)术(Shu)之(Zhi)一(Yi),(?)Storm集(Ji)群(Qun)由(You)一(Yi)个(Ge)主(Zhu)节(Jie)点(Dian)和(He)多(Duo)个(Ge)工(Gong)作(Zuo)节(Jie)点(Dian)组(Zu)成(Cheng)。(?)主(Zhu)节(Jie)点(Dian)运(Yun)行(Xing)了(Liao)一(Yi)个(Ge)名(Ming)为(Wei)“(?)Nimbus”(?)的(De)守(Shou)护(Hu)进(Jin)程(Cheng),(?)用(Yong)于(Yu)分(Fen)配(Pei)代(Dai)码(Ma)、(?)布(Bu)置(Zhi)任(Ren)务(Wu)及(Ji)故(Gu)障(Zhang)检(Jian)测(Ce)。(?)每(Mei)个(Ge)工(Gong)作(Zuo)节(Jie) 点(Dian)都(Du)运(Yun)行(Xing)了(Liao)一(Yi)个(Ge)名(Ming)为(Wei)“(?)Supervisor”(?)的(De)守(Shou)护(Hu)进(Jin)程(Cheng),(?)用(Yong)于(Yu)监(Jian)听(Ting)工(Gong)作(Zuo),(?)开(Kai)始(Shi)并(Bing)终(Zhong)止(Zhi)工(Gong)作(Zuo)进(Jin)程(Cheng)。(?)Nimbus和(He)Supervisor都(Du)能(Neng)快(Kuai)速(Su)失(Shi)败(Bai),(?)而(?)且(Qie)是(Shi)无(Wu) 状(Zhuang)态(Tai)的(De),(?)这(Zhe)样(Yang)一(Yi)来(Lai)它(Ta)们(Men)就(Jiu)变(Bian)得(De)十(Shi)分(Fen)健(Jian)壮(Zhuang)。(?)
一(Yi)般(Ban)来(Lai)说(Shuo)只(Zhi)要(Yao)用(Yong)到(Dao)了(Liao)流(Liu)式(Shi)计(Ji)算(Suan),(?)还(Huan)得(De)用(Yong)到(Dao)Kafka。(?)所(Suo)以(Yi)大(Da)数(Shu)据(Ju)里(Li)面(Mian)需(Xu)要(Yao)掌(Zhang)握(Wo)一(Yi)套(Tao)Kafka+Storm流(Liu)式(Shi)解(Jie)决(Jue)方(Fang)案(An)。(?)
7.云(Yun)计(Ji)算(Suan)之(Zhi)Openstack和(He)docker
云(Yun)计(Ji)算(Suan)从(Cong)服(Fu)务(Wu)角(Jiao)度(Du)分(Fen)为(Wei)三(San)层(Ceng):(?)
同(Tong)学(Xue)们(Men)需(Xu)要(Yao)重(Zhong)点(Dian)掌(Zhang)握(Wo):(?)Iaas层(Ceng)的(De)云(Yun)计(Ji)算(Suan)技(Ji)术(Shu)。(?)目(Mu)前(Qian)比(Bi)较(Jiao)流(Liu)行(Xing)的(De)云(Yun)平(Ping)台(Tai)都(Du)是(Shi)基(Ji)于(Yu)Iaas层(Ceng)的(De)云(Yun)计(Ji)算(Suan),(?)包(Bao)括(Kuo):(?)阿(A)里(Li)云(Yun)((?)https://www.aliyun.com/)(?)、(?)腾(Teng)讯(Xun)云(Yun)、(?)百(Bai)度(Du)云(Yun)等(Deng)。(?) 而(?)Openstack 和(He)Docker就(Jiu)是(Shi)属(Shu)于(Yu)Iaas层(Ceng)的(De)云(Yun)计(Ji)算(Suan)技(Ji)术(Shu)。(?)
Openstack和(He)Docker在(Zai)找(Zhao)工(Gong)作(Zuo)的(De)过(Guo)程(Cheng)中(Zhong),(?)对(Dui)应(Ying)的(De)职(Zhi)位(Wei)比(Bi)较(Jiao)少(Shao),(?)但(Dan)是(Shi)有(You)很(Hen)好(Hao)的(De)发(Fa)展(Zhan)前(Qian)景(Jing)。(?)建(Jian)议(Yi)大(Da)家(Jia)先(Xian)在(Zai)入(Ru)个(Ge)门(Men)。(?)等(Deng)工(Gong)作(Zuo)之(Zhi)后(Hou)或(Huo)者(Zhe)有(You)剩(Sheng)余(Yu)的(De)时(Shi)间(Jian)再(Zai)深(Shen)入(Ru)研(Yan)究(Jiu)。(?)
8.做(Zuo)一(Yi)个(Ge)大(Da)数(Shu)据(Ju)项(Xiang)目(Mu)
“(?)实(Shi)战(Zhan)学(Xue)习(Xi),(?)最(Zui)重(Zhong)要(Yao)的(De)就(Jiu)是(Shi)参(Can)与(Yu)项(Xiang)目(Mu)”(?)。(?)大(Da)数(Shu)据(Ju)的(De)技(Ji)术(Shu)学(Xue)完(Wan)之(Zhi)后(Hou),(?)需(Xu)要(Yao)参(Can)与(Yu)一(Yi)个(Ge)企(Qi)业(Ye)级(Ji)的(De)大(Da)项(Xiang)目(Mu),(?)这(Zhe)样(Yang)才(Cai)能(Neng)真(Zhen)正(Zheng)的(De)出(Chu)山(Shan),(?)拿(Na)到(Dao)高(Gao)薪(Xin)、(?)获(Huo)得(De)更(Geng)多(Duo)的(De)好(Hao)机(Ji)会(Hui)。(?)
七(Qi):(?)区(Qu)块(Kuai)链(Lian)学(Xue)习(Xi)知(Zhi)识(Shi)点(Dian)和(He)配(Pei)套(Tao)视(Shi)频(Pin)
区(Qu)块(Kuai)链(Lian)已(Yi)经(Jing)成(Cheng)为(Wei)近(Jin)年(Nian)非(Fei)常(Chang)热(Re)门(Men)的(De)技(Ji)术(Shu),并(Bing)且(Qie)正(Zheng)在(Zai)飞(Fei)速(Su)的(De)发(Fa)展(Zhan)。(?)各(Ge)大(Da)公(Gong)司(Si)都(Du)成(Cheng)立(Li)了(Liao)区(Qu)块(Kuai)链(Lian)相(Xiang)关(Guan)部(Bu)门(Men), 大(Da)量(Liang)职(Zhi)位(Wei)空(Kong)缺(Que)等(Deng)待(Dai)区(Qu)块(Kuai)链(Lian)专(Zhuan)业(Ye)人(Ren)才(Cai)加(Jia)入(Ru),而(?)目(Mu)前(Qian)区(Qu)块(Kuai)链(Lian)专(Zhuan)业(Ye)人(Ren)才(Cai)少(Shao)之(Zhi)又(You)少(Shao),所(Suo)以(Yi)抓(Zhua)住(Zhu)机(Ji)会(Hui)就(Jiu)是(Shi)成(Cheng)功(Gong)了(Liao)一(Yi)大(Da)步(Bu)。(?)
区(Qu)块(Kuai)链(Lian)中(Zhong)涉(She)及(Ji)的(De)面(Mian)比(Bi)较(Jiao)广(Guang),技(Ji)术(Shu)又(You)相(Xiang)对(Dui)”(?)底(Di)层(Ceng)”(?),学(Xue)好(Hao)区(Qu)块(Kuai)链(Lian)后(Hou)我(Wo)们(Men)可(Ke)以(Yi)很(Hen)快(Kuai)学(Xue)习(Xi)其(Qi)他(Ta)方(Fang)向(Xiang),因(Yin)为(Wei)区(Qu)块(Kuai)链(Lian)可(Ke)以(Yi)给(Gei)学(Xue)习(Xi)者(Zhe)打(Da)下(Xia)很(Hen)牢(Lao)固(Gu)的(De)基(Ji)础(Chu)。(?)

在(Zai)尚(Shang)学(Xue)堂(Tang)的(De)区(Qu)块(Kuai)链(Lian)课(Ke)程(Cheng)中(Zhong),囊(Nang)括(Kuo)了(Liao)目(Mu)前(Qian)企(Qi)业(Ye)绝(Jue)大(Da)多(Duo)数(Shu)区(Qu)块(Kuai)链(Lian)相(Xiang)关(Guan)知(Zhi)识(Shi),又(You)配(Pei)套(Tao)大(Da)量(Liang)企(Qi)业(Ye)级(Ji)项(Xiang)目(Mu),可(Ke)以(Yi)说(Shuo)是(Shi)广(Guang)且(Qie)深(Shen)。(?)
区(Qu)块(Kuai)链(Lian)课(Ke)程(Cheng)适(Shi)用(Yong)于(Yu)各(Ge)种(Zhong)人(Ren)群(Qun),即(Ji)使(Shi)是(Shi)行(Xing)业(Ye)小(Xiao)白(Bai),也(Ye)可(Ke)以(Yi)在(Zai)由(You)浅(Qian)入(Ru)深(Shen)的(De)课(Ke)程(Cheng)中(Zhong)逐(Zhu)渐(Jian)学(Xue)会(Hui)区(Qu)块(Kuai)链(Lian)。(?)技(Ji)术(Shu)不(Bu)是(Shi)遥(Yao)不(Bu)可(Ke)及(Ji)的(De),(?)都(Du)是(Shi)扎(Zha)扎(Zha)实(Shi)实(Shi)学(Xue)出(Chu)来(Lai)的(De)。(?)不(Bu)要(Yao)对(Dui)某(Mou)个(Ge)技(Ji)术(Shu)有(You)过(Guo)度(Du)崇(Chong)拜(Bai)的(De)冲(Chong)动(Dong),(?)一(Yi)层(Ceng)窗(Chuang)户(Hu)纸(Zhi)而(?)已(Yi),(?)大(Da)胆(Dan)捅(Tong)破(Po)它(Ta)。(?)
我(Wo)们(Men)将(Jiang)公(Gong)布(Bu)区(Qu)块(Kuai)链(Lian)课(Ke)程(Cheng)中(Zhong)的(De)大(Da)部(Bu)分(Fen)视(Shi)频(Pin),(?)大(Da)家(Jia)可(Ke)以(Yi)通(Tong)过(Guo)下(Xia)面(Mian)网(Wang)址(Zhi)免(Mian)费(Fei)下(Xia)载(Zai)或(Huo)者(Zhe)在(Zai)线(Xian)观(Guan)看(Kan):(?)
http://tekxul.com/qukuanlianshipin.html (区(Qu)块(Kuai)链(Lian)视(Shi)频(Pin)的(De)拼(Pin)音(Yin))
1.区(Qu)块(Kuai)链(Lian)行(Xing)业(Ye)介(Jie)绍(Shao)
本(Ben)阶(Jie)段(Duan)主(Zhu)要(Yao)是(Shi)为(Wei)了(Liao)让(Rang)学(Xue)习(Xi)者(Zhe)对(Dui)区(Qu)块(Kuai)链(Lian)有(You)总(Zong)体(Ti)的(De)认(Ren)识(Shi),从(Cong)宏(Hong)观(Guan)角(Jiao)度(Du)阐(Chan)述(Shu)了(Liao)区(Qu)块(Kuai)链(Lian)相(Xiang)关(Guan)内(Nei)容(Rong).本(Ben)阶(Jie)段(Duan)是(Shi)一(Yi)个(Ge)纯(Chun)理(Li)论(Lun)阶(Jie)段(Duan),不(Bu)需(Xu)要(Yao)编(Bian)程(Cheng), 所(Suo)以(Yi)学(Xue)习(Xi)本(Ben)阶(Jie)段(Duan)重(Zhong)点(Dian)在(Zai)听(Ting)而(?)不(Bu)是(Shi)写(Xie)。(?)区(Qu)块(Kuai)链(Lian)也(Ye)将(Jiang)作(Zuo)为(Wei)像(Xiang)人(Ren)工(Gong)智(Zhi)能(Neng)那(Na)样(Yang)的(De)一(Yi)个(Ge)基(Ji)础(Chu)技(Ji)术(Shu),(?)改(Gai)造(Zao)现(Xian)在(Zai)的(De)很(Hen)多(Duo)行(Xing)业(Ye)。(?)让(Rang)很(Hen)多(Duo)行(Xing)业(Ye)去(Qu)中(Zhong)心(Xin)化(Hua),(?)极(Ji)大(Da)的(De)提(Ti)升(Sheng)行(Xing)业(Ye)效(Xiao)率(Lu)。(?)
2.Golang从(Cong)入(Ru)门(Men)到(Dao)高(Gao)级(Ji)
本(Ben)阶(Jie)段(Duan)主(Zhu)要(Yao)是(Shi)为(Wei)了(Liao)让(Rang)学(Xue)习(Xi)者(Zhe)对(Dui)区(Qu)块(Kuai)链(Lian)有(You)总(Zong)体(Ti)的(De)认(Ren)识(Shi),从(Cong)宏(Hong)观(Guan)角(Jiao)度(Du)阐(Chan)述(Shu)了(Liao)区(Qu)块(Kuai)链(Lian)相(Xiang)关(Guan)内(Nei)容(Rong).本(Ben)阶(Jie)段(Duan)是(Shi)一(Yi)个(Ge)纯(Chun)理(Li)论(Lun)阶(Jie)段(Duan),不(Bu)需(Xu)要(Yao)编(Bian)程(Cheng), 所(Suo)以(Yi)学(Xue)习(Xi)本(Ben)阶(Jie)段(Duan)重(Zhong)点(Dian)在(Zai)听(Ting)而(?)不(Bu)是(Shi)写(Xie)。(?)区(Qu)块(Kuai)链(Lian)也(Ye)将(Jiang)作(Zuo)为(Wei)像(Xiang)人(Ren)工(Gong)智(Zhi)能(Neng)那(Na)样(Yang)的(De)一(Yi)个(Ge)基(Ji)础(Chu)技(Ji)术(Shu),(?)改(Gai)造(Zao)现(Xian)在(Zai)的(De)很(Hen)多(Duo)行(Xing)业(Ye)。(?)让(Rang)很(Hen)多(Duo)行(Xing)业(Ye)去(Qu)中(Zhong)心(Xin)化(Hua),(?)极(Ji)大(Da)的(De)提(Ti)升(Sheng)行(Xing)业(Ye)效(Xiao)率(Lu)
3.数(Shu)据(Ju)库(Ku)操(Cao)作(Zuo)和(He)Golang Web
Go语(Yu)言(Yan)可(Ke)以(Yi)当(Dang)作(Zuo)服(Fu)务(Wu)端(Duan)语(Yu)言(Yan),使(Shi)用(Yong)Go语(Yu)言(Yan)可(Ke)以(Yi)完(Wan)成(Cheng)Web项(Xiang)目(Mu)开(Kai)发(Fa)。(?)本(Ben)阶(Jie)段(Duan)需(Xu)要(Yao)Go语(Yu)言(Yan)的(De)数(Shu)据(Ju)库(Ku)操(Cao)作(Zuo)和(He)网(Wang)络(Luo)操(Cao)作(Zuo),(?)其(Qi)中(Zhong)数(Shu)据(Ju)库(Ku)操(Cao)作(Zuo)是(Shi)以(Yi)MySQL举(Ju)例(Li)。(?)学(Xue)习(Xi)完(Wan)本(Ben)阶(Jie)段(Duan)后(Hou)就(Jiu)可(Ke)以(Yi)使(Shi)用(Yong)Go开(Kai)发(Fa)项(Xiang)目(Mu)了(Liao)。(?)如(Ru)果(Guo)以(Yi)后(Hou)是(Shi)找(Zhao)Go语(Yu)言(Yan)相(Xiang)关(Guan)工(Gong)作(Zuo),这(Zhe)阶(Jie)段(Duan)也(Ye)很(Hen)重(Zhong)要(Yao)。(?)
4. Golang 实(Shi)战(Zhan)项(Xiang)目(Mu)
在(Zai)学(Xue)习(Xi)完(Wan)前(Qian)几(Ji)个(Ge)阶(Jie)段(Duan)后(Hou),本(Ben)阶(Jie)段(Duan)是(Shi)要(Yao)对(Dui)前(Qian)面(Mian)几(Ji)个(Ge)阶(Jie)段(Duan)的(De)实(Shi)际(Ji)应(Ying)用(Yong)。(?)单(Dan)独(Du)学(Xue)习(Xi)每(Mei)个(Ge)语(Yu)法(Fa)可(Ke)能(Neng)都(Du)不(Bu)难(Nan),但(Dan)是(Shi)要(Yao)把(Ba)学(Xue)习(Xi)的(De)内(Nei)容(Rong)融(Rong)入(Ru)到(Dao)实(Shi)际(Ji)项(Xiang)目(Mu)中(Zhong)就(Jiu)需(Xu)要(Yao)一(Yi)个(Ge)转(Zhuan)化(Hua)的(De)过(Guo)程(Cheng)。(?)这(Zhe)个(Ge)阶(Jie)段(Duan)重(Zhong)点(Dian)在(Zai)敲(Qiao)代(Dai)码(Ma), 一(Yi)定(Ding)要(Yao)按(An)照(Zhao)视(Shi)频(Pin)中(Zhong)顺(Shun)序(Xu)把(Ba)每(Mei)个(Ge)功(Gong)能(Neng)都(Du)认(Ren)真(Zhen)完(Wan)成(Cheng)。(?)
密(Mi)码(Ma)学(Xue)是(Shi)区(Qu)块(Kuai)链(Lian)中(Zhong)几(Ji)个(Ge)核(He)心(Xin)部(Bu)分(Fen)之(Zhi)一(Yi),(?)是(Shi)实(Shi)现(Xian)数(Shu)据(Ju)按(An)照(Zhao)的(De)重(Zhong)要(Yao)手(Shou)段(Duan)。(?)在(Zai)本(Ben)阶(Jie)段(Duan)中(Zhong)介(Jie)绍(Shao)了(Liao)大(Da)部(Bu)分(Fen)区(Qu)块(Kuai)链(Lian)成(Cheng)名(Ming)项(Xiang)目(Mu)中(Zhong)应(Ying)用(Yong)频(Pin)率(Lu)比(Bi)较(Jiao)高(Gao)的(De)密(Mi)码(Ma)学(Xue)知(Zhi)识(Shi)。(?)每(Mei)个(Ge)密(Mi)码(Ma)学(Xue)都(Du)有(You)单(Dan)独(Du)的(De)讲(Jiang)解(Jie),(?)这(Zhe)部(Bu)分(Fen)要(Yao)重(Zhong)点(Dian)学(Xue)习(Xi),是(Shi)后(Hou)面(Mian)学(Xue)习(Xi)比(Bi)特(Te)币(Bi)、(?)以(Yi)太(Tai)坊(Fang)、(?)超(Chao)级(Ji)账(Zhang)本(Ben)源(Yuan)码(Ma)的(De)基(Ji)础(Chu)。(?)

6. 共(Gong)识(Shi)算(Suan)法(Fa)
所(Suo)谓(Wei)“(?)共(Gong)识(Shi)机(Ji)制(Zhi)”(?),(?)是(Shi)通(Tong)过(Guo)特(Te)殊(Shu)节(Jie)点(Dian)的(De)投(Tou)票(Piao),(?)在(Zai)很(Hen)短(Duan)的(De)时(Shi)间(Jian)内(Nei)完(Wan)成(Cheng)对(Dui)交(Jiao)易(Yi)的(De)验(Yan)证(Zheng)和(He)确(Que)认(Ren);(?)对(Dui)一(Yi)笔(Bi)交(Jiao)易(Yi),(?)如(Ru)果(Guo)利(Li)益(Yi)不(Bu)相(Xiang)干(Gan)的(De)若(Ruo)干(Gan)个(Ge)节(Jie)点(Dian)能(Neng)够(Gou)达(Da)成(Cheng)共(Gong)识(Shi),(?)我(Wo)们(Men)就(Jiu)可(Ke)以(Yi)认(Ren)为(Wei)全(Quan)网(Wang)对(Dui)此(Ci)也(Ye)能(Neng)够(Gou)达(Da)成(Cheng)共(Gong)识(Shi)。(?)再(Zai)通(Tong)俗(Su)一(Yi)点(Dian)来(Lai)讲(Jiang),(?)如(Ru)果(Guo)中(Zhong)国(Guo)一(Yi)名(Ming)微(Wei)博(Bo)大(Da)V、(?)美(Mei)国(Guo)一(Yi)名(Ming)虚(Xu)拟(Ni)币(Bi)玩(Wan)家(Jia)、(?)一(Yi)名(Ming)非(Fei)洲(Zhou)留(Liu)学(Xue)生(Sheng)和(He)一(Yi)名(Ming)欧(Ou)洲(Zhou)旅(Lu)行(Xing)者(Zhe)互(Hu)不(Bu)相(Xiang)识(Shi),(?)但(Dan)他(Ta)们(Men)都(Du)一(Yi)致(Zhi)认(Ren)为(Wei)你(Ni)是(Shi)个(Ge)好(Hao)人(Ren),(?)那(Na)么(Me)基(Ji)本(Ben)上(Shang)就(Jiu)可(Ke)以(Yi)断(Duan)定(Ding)你(Ni)这(Zhe)人(Ren)还(Huan)不(Bu)坏(Huai)。(?)
区(Qu)块(Kuai)链(Lian)作(Zuo)为(Wei)一(Yi)种(Zhong)按(An)时(Shi)间(Jian)顺(Shun)序(Xu)存(Cun)储(Chu)数(Shu)据(Ju)的(De)数(Shu)据(Ju)结(Jie)构(Gou),(?)可(Ke)支(Zhi)持(Chi)不(Bu)同(Tong)的(De)共(Gong)识(Shi)机(Ji)制(Zhi)。(?)共(Gong)识(Shi)机(Ji)制(Zhi)是(Shi)区(Qu)块(Kuai)链(Lian)技(Ji)术(Shu)的(De)重(Zhong)要(Yao)组(Zu)件(Jian)。(?)
共(Gong)识(Shi)算(Suan)法(Fa)和(He)密(Mi)码(Ma)学(Xue)都(Du)是(Shi)区(Qu)块(Kuai)链(Lian)核(He)心(Xin)部(Bu)分(Fen),(?) 学(Xue)习(Xi)完(Wan)共(Gong)识(Shi)后(Hou)就(Jiu)可(Ke)以(Yi)准(Zhun)备(Bei)开(Kai)始(Shi)学(Xue)习(Xi)具(Ju)体(Ti)的(De)区(Qu)块(Kuai)链(Lian)项(Xiang)目(Mu)了(Liao)。(?)
7. Solidity
Solidity是(Shi)以(Yi)太(Tai)坊(Fang)中(Zhong)专(Zhuan)门(Men)描(Miao)述(Shu)智(Zhi)能(Neng)合(He)约(Yue)的(De)语(Yu)言(Yan),学(Xue)习(Xi)Solidity的(De)同(Tong)时(Shi)也(Ye)在(Zai)讲(Jiang)述(Shu)什(Shi)么(Me)是(Shi)智(Zhi)能(Neng)合(He)约(Yue)。(?) 学(Xue)习(Xi)完(Wan)Solidity就(Jiu)可(Ke)以(Yi)学(Xue)习(Xi)以(Yi)太(Tai)坊(Fang)相(Xiang)关(Guan)内(Nei)容(Rong).所(Suo)以(Yi)本(Ben)段(Duan)内(Nei)容(Rong)是(Shi)专(Zhuan)门(Men)给(Gei)以(Yi)太(Tai)坊(Fang)打(Da)基(Ji)础(Chu)。(?)
8. 以(Yi)太(Tai)坊(Fang)原(Yuan)理(Li)
以(Yi)太(Tai)坊(Fang)和(He)比(Bi)特(Te)币(Bi)都(Du)是(Shi)学(Xue)习(Xi)区(Qu)块(Kuai)链(Lian)中(Zhong)经(Jing)典(Dian)的(De)例(Li)子(Zi)。(?) 这(Zhe)个(Ge)阶(Jie)段(Duan),(?)包(Bao)含(Han)了(Liao)以(Yi)太(Tai)坊(Fang)原(Yuan)理(Li)架(Jia)构(Gou)流(Liu)程(Cheng)和(He)一(Yi)些(Xie)区(Qu)块(Kuai)链(Lian)中(Zhong)专(Zhuan)业(Ye)概(Gai)念(Nian)。(?)这(Zhe)一(Yi)阶(Jie)段(Duan)讲(Jiang)解(Jie)比(Bi)较(Jiao)全(Quan)面(Mian),重(Zhong)点(Dian)学(Xue)习(Xi)后(Hou)就(Jiu)可(Ke)以(Yi)对(Dui)区(Qu)块(Kuai)链(Lian)有(You)了(Liao)较(Jiao)深(Shen)的(De)认(Ren)识(Shi)。(?)
9.以(Yi)太(Tai)坊(Fang)客(Ke)户(Hu)端(Duan)
本(Ben)阶(Jie)段(Duan)继(Ji)续(Xu)学(Xue)习(Xi)以(Yi)太(Tai)坊(Fang),主(Zhu)要(Yao)讲(Jiang)解(Jie)以(Yi)太(Tai)坊(Fang)客(Ke)户(Hu)端(Duan)配(Pei)置(Zhi)和(He)原(Yuan)理(Li)。(?)为(Wei)后(Hou)面(Mian)讲(Jiang)解(Jie)以(Yi)太(Tai)坊(Fang)DApp打(Da)基(Ji)础(Chu)。(?)主(Zhu)要(Yao)讲(Jiang)解(Jie):(?)geth客(Ke)户(Hu)端(Duan)配(Pei)置(Zhi)和(He)运(Yun)行(Xing)、(?)geth源(Yuan)代(Dai)码(Ma)解(Jie)读(Du)。(?)
10.去(Qu)中(Zhong)心(Xin)换(Huan)拍(Pai)卖(Mai)系(Xi)统(Tong)DApp
本(Ben)阶(Jie)段(Duan)是(Shi)对(Dui)以(Yi)太(Tai)坊(Fang)的(De)巩(Gong)固(Gu)学(Xue)习(Xi),属(Shu)于(Yu)一(Yi)个(Ge)编(Bian)码(Ma)阶(Jie)段(Duan),所(Suo)有(You)编(Bian)码(Ma)阶(Jie)段(Duan)的(De)重(Zhong)点(Dian)都(Du)是(Shi)在(Zai)动(Dong)手(Shou),(?)实(Shi)战(Zhan)。(?)所(Suo)有(You)内(Nei)容(Rong)都(Du)编(Bian)写(Xie)完(Wan)成(Cheng)后(Hou)就(Jiu)完(Wan)成(Cheng)了(Liao)对(Dui)区(Qu)块(Kuai)第(Di)一(Yi)次(Ci)完(Wan)整(Zheng)认(Ren)识(Shi)。(?)
最(Zui)终(Zhong)我(Wo)们(Men)可(Ke)以(Yi)利(Li)用(Yong):(?)区(Qu)块(Kuai)链(Lian)、(?)星(Xing)际(Ji)文(Wen)件(Jian)系(Xi)统(Tong)、(?)Node.js、(?)MongoDB构(Gou)建(Jian)一(Yi)个(Ge)“(?)去(Qu)中(Zhong)心(Xin)化(Hua)”(?)革(Ge)命(Ming)性(Xing)的(De)电(Dian)商(Shang)平(Ping)台(Tai)。(?)
11.超(Chao)级(Ji)账(Zhang)本(Ben)和(He)DApp实(Shi)战(Zhan)
超(Chao)级(Ji)账(Zhang)本(Ben)是(Shi)一(Yi)个(Ge)大(Da)体(Ti)系(Xi)。(?) 在(Zai)这(Zhe)个(Ge)阶(Jie)段(Duan)中(Zhong)会(Hui)使(Shi)用(Yong)Linux的(De)一(Yi)些(Xie)命(Ming)令(Ling)和(He)使(Shi)用(Yong),(?)同(Tong)时(Shi)这(Zhe)一(Yi)阶(Jie)段(Duan)中(Zhong)使(Shi)用(Yong)Go作(Zuo)为(Wei)源(Yuan)码(Ma)语(Yu)言(Yan)。(?)学(Xue)习(Xi)完(Wan)这(Zhe)个(Ge)阶(Jie)段(Duan)后(Hou)会(Hui)更(Geng)加(Jia)加(Jia)深(Shen)对(Dui)区(Qu)块(Kuai)链(Lian)的(De)认(Ren)识(Shi)。(?)
12.C++编(Bian)程(Cheng)快(Kuai)速(Su)入(Ru)门(Men)
C++语(Yu)言(Yan)是(Shi)比(Bi)特(Te)币(Bi)项(Xiang)目(Mu)的(De)编(Bian)写(Xie)语(Yu)言(Yan), 学(Xue)习(Xi)C++主(Zhu)要(Yao)目(Mu)的(De)是(Shi)为(Wei)了(Liao)读(Du)懂(Dong)比(Bi)特(Te)币(Bi)中(Zhong)关(Guan)键(Jian)代(Dai)码(Ma)。(?)所(Suo)以(Yi)这(Zhe)阶(Jie)段(Duan)不(Bu)是(Shi)非(Fei)常(Chang)详(Xiang)细(Xi)的(De)把(Ba)C++所(Suo)有(You)知(Zhi)识(Shi)点(Dian)都(Du)讲(Jiang)解(Jie)到(Dao),只(Zhi)是(Shi)一(Yi)个(Ge)快(Kuai)速(Su)入(Ru)门(Men),能(Neng)够(Gou)读(Du)懂(Dong)比(Bi)特(Te)币(Bi)的(De)核(He)心(Xin)代(Dai)码(Ma)即(Ji)可(Ke)。(?)
大(Da)家(Jia)没(Mei)有(You)必(Bi)要(Yao)对(Dui)C++做(Zuo)过(Guo)分(Fen)深(Shen)入(Ru)的(De)研(Yan)究(Jiu),(?)毕(Bi)竟(Jing)应(Ying)用(Yong)范(Fan)围(Wei)越(Yue)来(Lai)越(Yue)小(Xiao)了(Liao)。(?)
13.比(Bi)特(Te)币(Bi)
比(Bi)特(Te)币(Bi)作(Zuo)为(Wei)区(Qu)块(Kuai)链(Lian)的(De)起(Qi)源(Yuan),(?)也(Ye)是(Shi)区(Qu)块(Kuai)链(Lian)行(Xing)业(Ye)中(Zhong)的(De)标(Biao)杆(Gan)。(?)学(Xue)习(Xi)区(Qu)块(Kuai)链(Lian),(?)也(Ye)一(Yi)定(Ding)要(Yao)学(Xue)习(Xi)比(Bi)特(Te)币(Bi)相(Xiang)关(Guan)内(Nei)容(Rong)。(?) 之(Zhi)前(Qian)已(Yi)经(Jing)学(Xue)习(Xi)了(Liao)区(Qu)块(Kuai)链(Lian)的(De)两(Liang)大(Da)部(Bu)分(Fen),这(Zhe)阶(Jie)段(Duan)学(Xue)习(Xi)起(Qi)来(Lai)将(Jiang)会(Hui)比(Bi)较(Jiao)轻(Qing)松(Song)。(?)
14.EOS
除(Chu)了(Liao)几(Ji)个(Ge)经(Jing)典(Dian)的(De)比(Bi)特(Te)币(Bi)项(Xiang)目(Mu)以(Yi)外(Wai),在(Zai)本(Ben)套(Tao)课(Ke)程(Cheng)引(Yin)入(Ru)了(Liao)其(Qi)他(Ta)的(De)项(Xiang)目(Mu)讲(Jiang)解(Jie),目(Mu)前(Qian)讲(Jiang)解(Jie)的(De)是(Shi)EOS,在(Zai)以(Yi)后(Hou)的(De)课(Ke)程(Cheng)中(Zhong)还(Huan)会(Hui)陆(Lu)续(Xu)引(Yin)入(Ru)小(Xiao)蚁(Yi)、(?)星(Xing)云(Yun)、(?)量(Liang)子(Zi)等(Deng)其(Qi)他(Ta)项(Xiang)目(Mu)。(?)
EOS:(?)可(Ke)以(Yi)理(Li)解(Jie)为(Wei)Enterprise Operation System,(?)即(Ji)为(Wei)商(Shang)用(Yong)分(Fen)布(Bu)式(Shi)应(Ying)用(Yong)设(She)计(Ji)的(De)一(Yi)款(Kuan)区(Qu)块(Kuai)链(Lian)操(Cao)作(Zuo)系(Xi)统(Tong)。(?)EOS是(Shi)引(Yin)入(Ru)的(De)一(Yi)种(Zhong)新(Xin)的(De)区(Qu)块(Kuai)链(Lian)架(Jia)构(Gou),(?)旨(Zhi)在(Zai)实(Shi)现(Xian)分(Fen)布(Bu)式(Shi)应(Ying)用(Yong)的(De)性(Xing)能(Neng)扩(Kuo)展(Zhan)。(?)注(Zhu)意(Yi),(?)它(Ta)并(Bing)不(Bu)是(Shi)像(Xiang)比(Bi)特(Te)币(Bi)和(He)以(Yi)太(Tai)坊(Fang)那(Na)样(Yang)的(De)货(Huo)币(Bi),(?)而(?)是(Shi)基(Ji)于(Yu)EOS软(Ruan)件(Jian)项(Xiang)目(Mu)之(Zhi)上(Shang)发(Fa)布(Bu)的(De)代(Dai)币(Bi),(?)被(Bei)称(Cheng)为(Wei)区(Qu)块(Kuai)链(Lian)3.0。(?)
EOS有(You)点(Dian)类(Lei)似(Si)于(Yu)微(Wei)软(Ruan)的(De)windows平(Ping)台(Tai),(?)通(Tong)过(Guo)创(Chuang)建(Jian)一(Yi)个(Ge)对(Dui)开(Kai)发(Fa)者(Zhe)友(You)好(Hao)的(De)区(Qu)块(Kuai)链(Lian)底(Di)层(Ceng)平(Ping)台(Tai),(?)支(Zhi)持(Chi)多(Duo)个(Ge)应(Ying)用(Yong)同(Tong)时(Shi)运(Yun)行(Xing),(?)为(Wei)开(Kai)发(Fa)dAPP提(Ti)供(Gong)底(Di)层(Ceng)的(De)模(Mo)板(Ban)。(?)
当(Dang)你(Ni)拥(Yong)有(You)了(Liao)EOS的(De)话(Hua),(?)就(Jiu)相(Xiang)当(Dang)于(Yu)拥(Yong)有(You)了(Liao)计(Ji)算(Suan)机(Ji)资(Zi)源(Yuan),(?)随(Sui)着(Zhuo)DAPP的(De)开(Kai)发(Fa),(?)你(Ni)可(Ke)以(Yi)将(Jiang)手(Shou)里(Li)的(De)EOS租(Zu)赁(Lin)给(Gei)别(Bie)人(Ren)使(Shi)用(Yong),(?)单(Dan)从(Cong)这(Zhe)一(Yi)点(Dian)来(Lai)说(Shuo)EOS也(Ye)具(Ju)有(You)广(Guang)泛(Fan)的(De)价(Jia)值(Zhi)。(?)简(Jian)单(Dan)来(Lai)说(Shuo),(?)就(Jiu)是(Shi)你(Ni)拥(Yong)有(You)了(Liao)EOS,(?)就(Jiu)相(Xiang)当(Dang)于(Yu)拥(Yong)有(You)了(Liao)一(Yi)套(Tao)房(Fang)租(Zu)给(Gei)别(Bie)人(Ren)收(Shou)房(Fang)租(Zu),(?)或(Huo)者(Zhe)说(Shuo)拥(Yong)有(You)了(Liao)一(Yi)块(Kuai)地(Di)租(Zu)给(Gei)别(Bie)人(Ren)建(Jian)房(Fang)。(?)
八(Ba):(?)100套(Tao)毕(Bi)业(Ye)设(She)计(Ji)和(He)课(Ke)程(Cheng)设(She)计(Ji)项(Xiang)目(Mu)案(An)例(Li)和(He)配(Pei)套(Tao)视(Shi)频(Pin)
本(Ben)套(Tao)100个(Ge)完(Wan)整(Zheng)项(Xiang)目(Mu)源(Yuan)码(Ma)是(Shi)由(You)【(?)北(Bei)京(Jing)尚(Shang)学(Xue)堂(Tang)·(?)百(Bai)战(Zhan)程(Cheng)序(Xu)员(Yuan)】(?)学(Xue)员(Yuan)做(Zuo)毕(Bi)设(She)时(Shi)提(Ti)供(Gong),(?)老(Lao)师(Shi)提(Ti)供(Gong)了(Liao)相(Xiang)应(Ying)的(De)毕(Bi)设(She)辅(Fu)导(Dao)服(Fu)务(Wu)。(?)
一(Yi)共(Gong)分(Fen)为(Wei)5季(Ji),(?)每(Mei)季(Ji)约(Yue)20套(Tao)项(Xiang)目(Mu),(?)希(Xi)望(Wang)大(Da)家(Jia)持(Chi)续(Xu)关(Guan)注(Zhu)。(?)
很(Hen)多(Duo)大(Da)四(Si)同(Tong)学(Xue)苦(Ku)于(Yu)没(Mei)有(You)参(Can)考(Kao)的(De)毕(Bi)设(She)资(Zi)料(Liao),(?)或(Huo)者(Zhe)下(Xia)载(Zai)的(De)资(Zi)料(Liao)不(Bu)全(Quan)、(?)代(Dai)码(Ma)有(You)问(Wen)题(Ti)、(?)数(Shu)据(Ju)有(You)问(Wen)题(Ti)等(Deng)等(Deng),(?)造(Zao)成(Cheng)毕(Bi)设(She)出(Chu)现(Xian)问(Wen)题(Ti)影(Ying)响(Xiang)大(Da)学(Xue)毕(Bi)业(Ye)。(?)现(Xian)在(Zai),(?)我(Wo)们(Men)提(Ti)供(Gong)了(Liao)经(Jing)过(Guo)审(Shen)核(He)的(De)100个(Ge)项(Xiang)目(Mu)源(Yuan)码(Ma)和(He)对(Dui)应(Ying)的(De)辅(Fu)导(Dao)视(Shi)频(Pin),(?)让(Rang)大(Da)家(Jia)在(Zai)短(Duan)时(Shi)间(Jian)内(Nei)可(Ke)以(Yi)完(Wan)成(Cheng)自(Zi)己(Ji)的(De)毕(Bi)业(Ye)设(She)计(Ji)。(?)
同(Tong)时(Shi),(?)我(Wo)们(Men)也(Ye)录(Lu)制(Zhi)了(Liao)更(Geng)多(Duo)的(De)项(Xiang)目(Mu)视(Shi)频(Pin),(?)2018年(Nian)计(Ji)划(Hua)100套(Tao),(?)后(Hou)续(Xu)将(Jiang)会(Hui)有(You)更(Geng)多(Duo)。(?)大(Da)家(Jia)可(Ke)以(Yi)到(Dao)www.itbaizhan.cn在(Zai)线(Xian)观(Guan)看(Kan)和(He)学(Xue)习(Xi),(?)也(Ye)可(Ke)以(Yi)到(Dao)北(Bei)京(Jing)尚(Shang)学(Xue)堂(Tang)官(Guan)网(Wang)免(Mian)费(Fei)下(Xia)载(Zai)。(?)
关(Guan)于(Yu)版(Ban)权(Quan)的(De)声(Sheng)明(Ming),(?)源(Yuan)码(Ma)由(You)北(Bei)京(Jing)尚(Shang)学(Xue)堂(Tang)学(Xue)员(Yuan)做(Zuo)项(Xiang)目(Mu)时(Shi)提(Ti)供(Gong),(?)非(Fei)北(Bei)京(Jing)尚(Shang)学(Xue)堂(Tang)原(Yuan)创(Chuang)。(?)北(Bei)京(Jing)尚(Shang)学(Xue)堂(Tang)讲(Jiang)师(Shi)只(Zhi)提(Ti)供(Gong)了(Liao)项(Xiang)目(Mu)的(De)部(Bu)署(Shu)和(He)使(Shi)用(Yong)说(Shuo)明(Ming)的(De)视(Shi)频(Pin),(?)如(Ru)果(Guo)侵(Qin)犯(Fan)了(Liao)原(Yuan)作(Zuo)者(Zhe)的(De)版(Ban)权(Quan),(?)请(Qing)联(Lian)系(Xi)我(Wo)们(Men)。(?)
未(Wei)来(Lai),(?)我(Wo)们(Men)将(Jiang)发(Fa)布(Bu)H5前(Qian)端(Duan)毕(Bi)设(She)项(Xiang)目(Mu)、(?)Python毕(Bi)设(She)项(Xiang)目(Mu)、(?)大(Da)数(Shu)据(Ju)毕(Bi)设(She)项(Xiang)目(Mu)、(?)人(Ren)工(Gong)智(Zhi)能(Neng)毕(Bi)设(She)项(Xiang)目(Mu)等(Deng)。(?)让(Rang)我(Wo)们(Men)的(De)大(Da)学(Xue)生(Sheng)朋(Peng)友(You)再(Zai)也(Ye)不(Bu)用(Yong)为(Wei)毕(Bi)设(She)发(Fa)愁(Chou)。(?)请(Qing)大(Da)家(Jia)随(Sui)时(Shi)关(Guan)注(Zhu)尚(Shang)学(Xue)堂(Tang)bjsxt.com或(Huo)者(Zhe)百(Bai)战(Zhan)程(Cheng)序(Xu)员(Yuan)(itbaizhan.cn)的(De)官(Guan)网(Wang)。(?)
大(Da)家(Jia)可(Ke)以(Yi)在(Zai):(?)
http://tekxul.com/biyeshejishipin.html ((?)毕(Bi)业(Ye)视(Shi)频(Pin)视(Shi)频(Pin)的(De)拼(Pin)音(Yin))(?)
1.关(Guan)于(Yu)各(Ge)种(Zhong)开(Kai)发(Fa)软(Ruan)件(Jian)的(De)使(Shi)用(Yong)说(Shuo)明(Ming)和(He)配(Pei)套(Tao)视(Shi)频(Pin)
由(You)于(Yu)很(Hen)多(Duo)大(Da)学(Xue)生(Sheng)对(Dui)于(Yu)开(Kai)发(Fa)软(Ruan)件(Jian)不(Bu)是(Shi)很(Hen)熟(Shu)悉(Xi),(?)我(Wo)们(Men)将(Jiang)常(Chang)见(Jian)的(De)开(Kai)发(Fa)软(Ruan)件(Jian)使(Shi)用(Yong)方(Fang)式(Shi)集(Ji)中(Zhong)进(Jin)行(Xing)了(Liao)录(Lu)制(Zhi)。(?)大(Da)家(Jia)项(Xiang)目(Mu)中(Zhong)用(Yong)到(Dao)哪(Na)些(Xie)软(Ruan)件(Jian),(?)自(Zi)行(Xing)对(Dui)比(Bi)学(Xue)习(Xi)即(Ji)可(Ke)。(?)
为(Wei)了(Liao)方(Fang)便(Bian)大(Da)家(Jia)的(De)学(Xue)习(Xi),(?)我(Wo)们(Men)提(Ti)供(Gong)了(Liao)常(Chang)用(Yong)开(Kai)发(Fa)软(Ruan)件(Jian)的(De)安(An)装(Zhuang)包(Bao),(?)大(Da)家(Jia)可(Ke)以(Yi)根(Gen)据(Ju)需(Xu)要(Yao)直(Zhi)接(Jie)从(Cong)网(Wang)盘(Pan)下(Xia)载(Zai):(?)
软(Ruan)件(Jian)的(De)使(Shi)用(Yong)方(Fang)式(Shi)都(Du)特(Te)别(Bie)简(Jian)单(Dan),(?)大(Da)家(Jia)不(Bu)要(Yao)有(You)畏(Wei)惧(Ju)心(Xin)理(Li),(?)这(Zhe)里(Li)讲(Jiang)解(Jie)了(Liao)软(Ruan)件(Jian)在(Zai)开(Kai)发(Fa)中(Zhong)最(Zui)常(Chang)用(Yong)的(De)使(Shi)用(Yong)方(Fang)式(Shi)。(?)包(Bao)含(Han)了(Liao)常(Chang)见(Jian)数(Shu)据(Ju)库(Ku)软(Ruan)件(Jian)的(De)使(Shi)用(Yong)(oracle、(?)mysql、(?)sqlserver)、(?)数(Shu)据(Ju)库(Ku)客(Ke)户(Hu)端(Duan)操(Cao)作(Zuo)软(Ruan)件(Jian)、(?)eclipse、(?)Myeclipse、(?)Tomcat服(Fu)务(Wu)器(Qi)等(Deng)的(De)使(Shi)用(Yong)。(?)包(Bao)含(Han)如(Ru)下(Xia)视(Shi)频(Pin):(?)
1.Eclipse的(De)使(Shi)用(Yong)1_开(Kai)发(Fa)环(Huan)境(Jing)使(Shi)用(Yong)原(Yuan)因(Yin)
2.Eclipse的(De)使(Shi)用(Yong)2_下(Xia)载(Zai)楼(Lou)基(Ji)本(Ben)选(Xuan)择(Ze)和(He)使(Shi)用(Yong)
3.Eclipse的(De)使(Shi)用(Yong)3_建(Jian)立(Li)JAVA项(Xiang)目(Mu)_项(Xiang)目(Mu)的(De)结(Jie)构(Gou)说(Shuo)明(Ming)
4.Eclipse的(De)使(Shi)用(Yong)4_开(Kai)发(Fa)和(He)运(Yun)行(Xing)JAVA程(Cheng)序(Xu)
5.Eclipse((?)JEE)(?)的(De)使(Shi)用(Yong)_Tomcat整(Zheng)合(He)_项(Xiang)目(Mu)部(Bu)署(Shu)
6.JDK安(An)装(Zhuang)1_下(Xia)载(Zai)和(He)安(An)装(Zhuang)_JDK目(Mu)录(Lu)介(Jie)绍(Shao)
7.JDK安(An)装(Zhuang)2_环(Huan)境(Jing)变(Bian)量(Liang)PATH设(She)置(Zhi)_classpath问(Wen)题(Ti)
8.JDK安(An)装(Zhuang)3_控(Kong)制(Zhi)台(Tai)测(Ce)试(Shi)JDK安(An)装(Zhuang)和(He)配(Pei)置(Zhi)成(Cheng)功(Gong)
9.Myeclipse2014的(De)安(An)装(Zhuang)和(He)使(Shi)用(Yong)_web项(Xiang)目(Mu)创(Chuang)建(Jian)和(He)发(Fa)布(Bu)
10.Myeclipse和(He)Tomcat整(Zheng)合(He)_web项(Xiang)目(Mu)部(Bu)署(Shu)
11.Mysql数(Shu)据(Ju)库(Ku)1_安(An)装(Zhuang)和(He)配(Pei)置(Zhi)_命(Ming)令(Ling)行(Xing)简(Jian)单(Dan)使(Shi)用(Yong)
12.Mysql数(Shu)据(Ju)库(Ku)2_navicat客(Ke)户(Hu)端(Duan)软(Ruan)件(Jian)的(De)使(Shi)用(Yong)_加(Jia)载(Zai)SQL文(Wen)件(Jian)到(Dao)库(Ku)
13.Oracle数(Shu)据(Ju)库(Ku)1_安(An)装(Zhuang)
14.Oracle数(Shu)据(Ju)库(Ku)2_客(Ke)户(Hu)端(Duan)plsql安(An)装(Zhuang)并(Bing)连(Lian)接(Jie)
15.SqlServer数(Shu)据(Ju)库(Ku)1_安(An)装(Zhuang)
16.SqlServer数(Shu)据(Ju)库(Ku)2_连(Lian)接(Jie)并(Bing)回(Hui)复(Fu)数(Shu)据(Ju)库(Ku)
17.SqlServer数(Shu)据(Ju)库(Ku)3_客(Ke)户(Hu)端(Duan)操(Cao)作(Zuo)
18.SqlServer数(Shu)据(Ju)库(Ku)4_卸(Xie)载(Zai)
19.Tomcat服(Fu)务(Wu)器(Qi)安(An)装(Zhuang)_使(Shi)用(Yong)介(Jie)绍(Shao)
2.第(Di)一(Yi)季(Ji)20套(Tao)项(Xiang)目(Mu)源(Yuan)代(Dai)码(Ma)和(He)配(Pei)套(Tao)视(Shi)频(Pin)
第(Di)一(Yi)季(Ji)20套(Tao)源(Yuan)代(Dai)码(Ma)覆(Fu)盖(Gai)范(Fan)围(Wei)较(Jiao)广(Guang),(?)有(You)比(Bi)较(Jiao)基(Ji)础(Chu)的(De)JAVA初(Chu)级(Ji)项(Xiang)目(Mu),(?)也(Ye)有(You)比(Bi)较(Jiao)大(Da)的(De)WEB项(Xiang)目(Mu)。(?)每(Mei)个(Ge)项(Xiang)目(Mu)我(Wo)们(Men)都(Du)提(Ti)供(Gong)了(Liao)完(Wan)整(Zheng)的(De)内(Nei)容(Rong),(?)涵(Han)盖(Gai):(?)论(Lun)文(Wen)、(?)PPT、(?)源(Yuan)代(Dai)码(Ma)、(?)数(Shu)据(Ju)库(Ku)文(Wen)件(Jian)、(?)配(Pei)套(Tao)讲(Jiang)解(Jie)视(Shi)频(Pin)。(?)我(Wo)们(Men)以(Yi)“(?)土(Tu)地(Di)局(Ju)档(Dang)案(An)管(Guan)理(Li)系(Xi)统(Tong)”(?)为(Wei)例(Li):(?)

打(Da)开(Kai)“(?)论(Lun)文(Wen)等(Deng)资(Zi)料(Liao)”(?)文(Wen)件(Jian)夹(Jia),(?)就(Jiu)发(Fa)现(Xian)有(You)完(Wan)整(Zheng)的(De)论(Lun)文(Wen)和(He)答(Da)辩(Bian)内(Nei)容(Rong),(?)供(Gong)大(Da)家(Jia)参(Can)考(Kao):(?)
打(Da)开(Kai)“(?)项(Xiang)目(Mu)辅(Fu)导(Dao)视(Shi)频(Pin)”(?),(?)就(Jiu)发(Fa)现(Xian)有(You)详(Xiang)细(Xi)的(De)项(Xiang)目(Mu)讲(Jiang)解(Jie)视(Shi)频(Pin),(?)帮(Bang)助(Zhu)大(Da)家(Jia)解(Jie)决(Jue)项(Xiang)目(Mu)部(Bu)署(Shu)、(?)项(Xiang)目(Mu)模(Mo)块(Kuai)讲(Jiang)解(Jie)的(De)问(Wen)题(Ti):(?)
为(Wei)了(Liao)快(Kuai)速(Su)查(Cha)看(Kan)这(Zhe)个(Ge)项(Xiang)目(Mu)是(Shi)否(Fou)符(Fu)合(He)你(Ni)的(De)需(Xu)求(Qiu),(?)可(Ke)以(Yi)打(Da)开(Kai)“(?)项(Xiang)目(Mu)截(Jie)图(Tu)”(?)文(Wen)件(Jian)夹(Jia):(?)
报(Bao)表(Biao)图(Tu).png
捕(Bu)获(Huo).png
档(Dang)案(An)修(Xiu)改(Gai).png
登(Deng)录(Lu).png
功(Gong)能(Neng).png
注(Zhu)册(Ce).png
第(Di)一(Yi)季(Ji)视(Shi)频(Pin)涵(Han)盖(Gai)如(Ru)下(Xia)图(Tu)所(Suo)示(Shi)项(Xiang)目(Mu),(?)范(Fan)围(Wei)比(Bi)较(Jiao)广(Guang)泛(Fan)。(?)有(You)电(Dian)子(Zi)政(Zheng)务(Wu)项(Xiang)目(Mu)、(?)也(Ye)有(You)医(Yi)疗(Liao)项(Xiang)目(Mu)、(?)也(Ye)有(You)供(Gong)应(Ying)链(Lian)管(Guan)理(Li)项(Xiang)目(Mu)、(?)互(Hu)联(Lian)网(Wang)项(Xiang)目(Mu)也(Ye)有(You)若(Ruo)干(Gan)。(?)同(Tong)时(Shi),(?)也(Ye)有(You)几(Ji)个(Ge)java基(Ji)础(Chu)项(Xiang)目(Mu),(?)大(Da)家(Jia)可(Ke)以(Yi)用(Yong)于(Yu)做(Zuo)JAVA的(De)课(Ke)程(Cheng)设(She)计(Ji)。(?)
九(Jiu):(?)7U职(Zhi)场(Chang)软(Ruan)实(Shi)力(Li)课(Ke)程(Cheng)和(He)配(Pei)套(Tao)视(Shi)频(Pin)
1.职(Zhi)场(Chang)软(Ruan)实(Shi)力(Li)是(Shi)什(Shi)么(Me)?(?)
“(?)每(Mei)一(Yi)个(Ge)人(Ren)都(Du)要(Yao)训(Xun)练(Lian)软(Ruan)实(Shi)力(Li)”(?)。(?)成(Cheng)功(Gong)职(Zhi)场(Chang)和(He)成(Cheng)功(Gong)人(Ren)生(Sheng)不(Bu)仅(Jin)需(Xu)要(Yao)硬(Ying)实(Shi)力(Li),(?)更(Geng)需(Xu)要(Yao)软(Ruan)实(Shi)力(Li)。(?)两(Liang)种(Zhong)实(Shi)力(Li)就(Jiu)像(Xiang)人(Ren)的(De)双(Shuang)腿(Tui),(?)缺(Que)一(Yi)即(Ji)“(?)残(Can)”(?)。(?)中(Zhong)国(Guo)传(Chuan)媒(Mei)大(Da)学(Xue)老(Lao)师(Shi)王(Wang)雪(Xue)和(He)北(Bei)京(Jing)尚(Shang)学(Xue)堂(Tang)总(Zong)裁(Cai)高(Gao)淇(Qi)发(Fa)明(Ming)了(Liao)7U软(Ruan)实(Shi)力(Li)理(Li)论(Lun),(?)让(Rang)人(Ren)的(De)软(Ruan)实(Shi)力(Li)有(You)可(Ke)测(Ce)量(Liang)的(De)七(Qi)种(Zhong)维(Wei)度(Du)和(He)提(Ti)升(Sheng)的(De)标(Biao)准(Zhun)。(?)已(Yi)经(Jing)有(You)上(Shang)百(Bai)位(Wei)学(Xue)员(Yuan)受(Shou)益(Yi),(?)短(Duan)时(Shi)间(Jian)极(Ji)速(Su)提(Ti)升(Sheng)自(Zi)己(Ji)的(De)软(Ruan)实(Shi)力(Li),(?)让(Rang)自(Zi)己(Ji)的(De)工(Gong)作(Zuo)、(?)爱(Ai)情(Qing)、(?)生(Sheng)活(Huo)都(Du)极(Ji)大(Da)受(Shou)益(Yi)。(?)
程(Cheng)序(Xu)员(Yuan)往(Wang)往(Wang)关(Guan)注(Zhu)“(?)编(Bian)码(Ma)能(Neng)力(Li)”(?)等(Deng)硬(Ying)实(Shi)力(Li)的(De)提(Ti)升(Sheng),(?)而(?)忽(Hu)视(Shi)了(Liao)“(?)口(Kou)才(Cai)”(?)、(?)“(?)沟(Gou)通(Tong)”(?)等(Deng)软(Ruan)实(Shi)力(Li)的(De)提(Ti)升(Sheng),(?)造(Zao)成(Cheng)发(Fa)展(Zhan)的(De)困(Kun)境(Jing)、(?)职(Zhi)位(Wei)升(Sheng)迁(Qian)的(De)困(Kun)境(Jing)、(?)甚(Shen)至(Zhi)恋(Lian)爱(Ai)婚(Hun)姻(Yin)的(De)困(Kun)境(Jing)。(?)所(Suo)以(Yi),(?)对(Dui)于(Yu)软(Ruan)实(Shi)力(Li)不(Bu)太(Tai)好(Hao)的(De)朋(Peng)友(You),(?)非(Fei)常(Chang)有(You)必(Bi)要(Yao)学(Xue)习(Xi)软(Ruan)实(Shi)力(Li)。(?)

更(Geng)重(Zhong)要(Yao)的(De)是(Shi),(?)软(Ruan)实(Shi)力(Li)是(Shi)一(Yi)个(Ge)相(Xiang)对(Dui)的(De)概(Gai)念(Nian)。(?)而(?)且(Qie)大(Da)多(Duo)数(Shu)人(Ren)对(Dui)认(Ren)为(Wei)“(?)软(Ruan)实(Shi)力(Li)”(?)是(Shi)天(Tian)生(Sheng)的(De),(?)无(Wu)法(Fa)通(Tong)过(Guo)训(Xun)练(Lian)改(Gai)变(Bian)。(?)而(?)实(Shi)际(Ji)上(Shang),(?)软(Ruan)实(Shi)力(Li)可(Ke)以(Yi)通(Tong)过(Guo)训(Xun)练(Lian)快(Kuai)速(Su)提(Ti)升(Sheng)。(?)大(Da)家(Jia)都(Du)不(Bu)学(Xue)习(Xi)的(De)情(Qing)况(Kuang)下(Xia),(?)你(Ni)是(Shi)很(Hen)容(Rong)易(Yi)脱(Tuo)颖(Ying)而(?)出(Chu)的(De)。(?)
职(Zhi)场(Chang)软(Ruan)实(Shi)力(Li)不(Bu)等(Deng)于(Yu)技(Ji)能(Neng),(?)但(Dan)可(Ke)以(Yi)让(Rang)你(Ni)的(De)技(Ji)能(Neng)得(De)到(Dao)更(Geng)好(Hao)的(De)发(Fa)挥(Hui)。(?)它(Ta)是(Shi)你(Ni)个(Ge)人(Ren)发(Fa)展(Zhan)的(De)“(?)催(Cui)化(Hua)剂(Ji)”(?),(?)可(Ke)以(Yi)让(Rang)你(Ni)发(Fa)展(Zhan)更(Geng)快(Kuai)、(?)走(Zou)的(De)更(Geng)稳(Wen)。(?)
2.形(Xing)象(Xiang)气(Qi)质(Zhi)和(He)社(She)交(Jiao)礼(Li)仪(Yi)
好(Hao)的(De)形(Xing)象(Xiang)气(Qi)质(Zhi)和(He)职(Zhi)场(Chang)礼(Li)仪(Yi)是(Shi)你(Ni)成(Cheng)功(Gong)的(De)“(?)助(Zhu)跑(Pao)器(Qi)”(?)。(?)除(Chu)了(Liao)你(Ni)父(Fu)母(Mu),(?)没(Mei)有(You)人(Ren)有(You)义(Yi)务(Wu)通(Tong)过(Guo)你(Ni)邋(?)遢(Ta)的(De)外(Wai)表(Biao)和(He)不(Bu)专(Zhuan)业(Ye)的(De)礼(Li)仪(Yi)深(Shen)入(Ru)了(Liao)解(Jie)你(Ni)的(De)内(Nei)在(Zai)。(?)
本(Ben)阶(Jie)段(Duan)将(Jiang)详(Xiang)细(Xi)介(Jie)绍(Shao)在(Zai)各(Ge)种(Zhong)场(Chang)合(He)的(De)实(Shi)用(Yong)技(Ji)巧(Qiao)。(?)包(Bao)括(Kuo):服(Fu)装(Zhuang)搭(Da)配(Pei)、(?)言(Yan)谈(Tan)举(Ju)止(Zhi)、(?)社(She)交(Jiao)礼(Li)仪(Yi)、(?)生(Sheng)活(Huo)礼(Li)仪(Yi)、(?)宴(Yan)会(Hui)礼(Li)仪(Yi)。(?)
让(Rang)你(Ni)完(Wan)全(Quan)掌(Zhang)握(Wo)职(Zhi)场(Chang)上(Shang)的(De)基(Ji)本(Ben)礼(Li)仪(Yi),(?)商(Shang)务(Wu)接(Jie)待(Dai)和(He)谈(Tan)判(Pan)的(De)礼(Li)仪(Yi);(?)掌(Zhang)握(Wo)生(Sheng)活(Huo)中(Zhong)待(Dai)人(Ren)接(Jie)物(Wu)的(De)礼(Li)仪(Yi),(?)成(Cheng)为(Wei)一(Yi)个(Ge)落(Luo)落(Luo)大(Da)方(Fang)的(De)人(Ren);(?)掌(Zhang)握(Wo)宴(Yan)会(Hui)礼(Li)仪(Yi),(?)明(Ming)白(Bai)如(Ru)何(He)讲(Jiang)话(Hua),(?)如(Ru)何(He)根(Gen)据(Ju)自(Zi)己(Ji)的(De)身(Shen)份(Fen)说(Shuo)恰(Qia)当(Dang)的(De)话(Hua)术(Shu)。(?)
3.声(Sheng)音(Yin)素(Su)质(Zhi)
声(Sheng)音(Yin)不(Bu)是(Shi)天(Tian)生(Sheng)的(De),(?)可(Ke)以(Yi)通(Tong)过(Guo)专(Zhuan)业(Ye)的(De)发(Fa)声(Sheng)技(Ji)巧(Qiao)来(Lai)改(Gai)变(Bian)。(?)如(Ru)果(Guo)声(Sheng)音(Yin)不(Bu)好(Hao)听(Ting),(?)在(Zai)人(Ren)际(Ji)交(Jiao)往(Wang)中(Zhong)的(De)效(Xiao)果(Guo)就(Jiu)要(Yao)大(Da)打(Da)折(Zhe)扣(Kou)。(?)本(Ben)阶(Jie)段(Duan)旨(Zhi)在(Zai)培(Pei)养(Yang)大(Da)家(Jia)如(Ru)何(He)在(Zai)沟(Gou)通(Tong)中(Zhong)发(Fa)出(Chu)好(Hao)听(Ting)的(De)声(Sheng)音(Yin),(?)让(Rang)我(Wo)们(Men)的(De)声(Sheng)音(Yin)更(Geng)有(You)磁(Ci)性(Xing),(?)更(Geng)有(You)力(Li)量(Liang),(?)更(Geng)有(You)感(Gan)染(Ran)力(Li)。(?)
学(Xue)会(Hui)掌(Zhang)握(Wo)自(Zi)己(Ji)的(De)声(Sheng)音(Yin),(?)在(Zai)卡(Ka)拉(La)OK的(De)场(Chang)合(He),(?)再(Zai)也(Ye)不(Bu)惧(Ju)了(Liao)。(?)在(Zai)公(Gong)众(Zhong)发(Fa)言(Yan)的(De)场(Chang)合(He),(?)心(Xin)里(Li)也(Ye)会(Hui)更(Geng)加(Jia)有(You)底(Di)气(Qi)。(?)
声(Sheng)音(Yin)是(Shi)人(Ren)的(De)第(Di)二(?)张(Zhang)名(Ming)片(Pian)。(?)我(Wo)们(Men)可(Ke)以(Yi)通(Tong)过(Guo)掌(Zhang)握(Wo)胸(Xiong)腹(Fu)式(Shi)联(Lian)合(He)呼(Hu)吸(Xi)法(Fa)、(?)共(Gong)鸣(Ming)训(Xun)练(Lian),(?)正(Zheng)确(Que)的(De)用(Yong)气(Qi)技(Ji)巧(Qiao),(?)很(Hen)快(Kuai)就(Jiu)能(Neng)成(Cheng)为(Wei)一(Yi)个(Ge)再(Zai)也(Ye)不(Bu)惧(Ju)“(?)发(Fa)言(Yan)”(?)场(Chang)合(He)的(De)人(Ren)。(?)
4.情(Qing)商(Shang)
人(Ren)际(Ji)关(Guan)系(Xi)有(You)多(Duo)重(Zhong)要(Yao),(?)情(Qing)商(Shang)就(Jiu)有(You)多(Duo)重(Zhong)要(Yao)。(?)情(Qing)商(Shang)是(Shi)我(Wo)们(Men)所(Suo)有(You)软(Ruan)实(Shi)力(Li)的(De)基(Ji)础(Chu),(?)也(Ye)是(Shi)最(Zui)后(Hou)的(De)一(Yi)个(Ge)升(Sheng)华(Hua),(?)所(Suo)以(Yi)掌(Zhang)握(Wo)情(Qing)商(Shang)能(Neng)够(Gou)让(Rang)我(Wo)们(Men)的(De)人(Ren)际(Ji)关(Guan)系(Xi)更(Geng)加(Jia)的(De)和(He)谐(Xie),(?)同(Tong)时(Shi)在(Zai)处(Chu)理(Li)困(Kun)难(Nan)挫(Cuo)折(Zhe)的(De)时(Shi)候(Hou)又(You)不(Bu)至(Zhi)于(Yu)焦(Jiao)头(Tou)烂(Lan)额(E)。(?)本(Ben)阶(Jie)段(Duan)将(Jiang)告(Gao)诉(Su)大(Da)家(Jia)我(Wo)们(Men)紧(Jin)张(Zhang)的(De)原(Yuan)因(Yin)以(Yi)及(Ji)克(Ke)服(Fu)的(De)技(Ji)巧(Qiao),(?)从(Cong)微(Wei)表(Biao)情(Qing)中(Zhong)看(Kan)出(Chu)对(Dui)方(Fang)没(Mei)有(You)用(Yong)语(Yu)言(Yan)表(Biao)达(Da)出(Chu)来(Lai)的(De)想(Xiang)法(Fa),(?)学(Xue)会(Hui)如(Ru)何(He)面(Mian)对(Dui)各(Ge)种(Zhong)“(?)失(Shi)意(Yi)”(?)的(De)情(Qing)绪(Xu),(?)以(Yi)及(Ji)在(Zai)朋(Peng)友(You)圈(Quan)中(Zhong),(?)在(Zai)职(Zhi)场(Chang)中(Zhong)如(Ru)何(He)利(Li)用(Yong)情(Qing)商(Shang)处(Chu)理(Li)人(Ren)际(Ji)关(Guan)系(Xi)。(?)
通(Tong)过(Guo)学(Xue)习(Xi)情(Qing)绪(Xu)控(Kong)制(Zhi)的(De)基(Ji)本(Ben)原(Yuan)理(Li):(?)紧(Jin)张(Zhang)的(De)原(Yuan)理(Li)、(?)条(Tiao)件(Jian)反(Fan)射(She)原(Yuan)理(Li)。(?)让(Rang)自(Zi)己(Ji)明(Ming)白(Bai),(?)情(Qing)商(Shang)的(De)基(Ji)础(Chu)物(Wu)理(Li)知(Zhi)识(Shi)。(?)再(Zai)进(Jin)一(Yi)步(Bu)学(Xue)习(Xi),(?)微(Wei)表(Biao)情(Qing)、(?)自(Zi)身(Shen)情(Qing)商(Shang)的(De)激(Ji)励(Li),(?)成(Cheng)为(Wei)一(Yi)个(Ge)“(?)高(Gao)情(Qing)商(Shang)”(?)的(De)人(Ren)。(?)
再(Zai)进(Jin)一(Yi)步(Bu)学(Xue)习(Xi),(?)“(?)朋(Peng)友(You)中(Zhong)的(De)情(Qing)商(Shang)”(?)让(Rang)自(Zi)己(Ji)成(Cheng)为(Wei)一(Yi)个(Ge)善(Shan)解(Jie)人(Ren)意(Yi)的(De)人(Ren);(?)学(Xue)习(Xi)“(?)职(Zhi)场(Chang)情(Qing)商(Shang)”(?),(?)让(Rang)自(Zi)己(Ji)成(Cheng)为(Wei)一(Yi)个(Ge)懂(Dong)领(Ling)导(Dao)、(?)懂(Dong)同(Tong)事(Shi)、(?)懂(Dong)下(Xia)属(Shu)的(De)“(?)高(Gao)情(Qing)商(Shang)”(?)的(De)合(He)作(Zuo)伙(Huo)伴(Ban);(?)
5.沟(Gou)通(Tong)力(Li)
好(Hao)的(De)沟(Gou)通(Tong)力(Li)是(Shi)人(Ren)际(Ji)交(Jiao)往(Wang)的(De)基(Ji)础(Chu),(?)可(Ke)以(Yi)极(Ji)大(Da)降(Jiang)低(Di)生(Sheng)活(Huo)和(He)工(Gong)作(Zuo)成(Cheng)本(Ben)。(?)坏(Huai)的(De)沟(Gou)通(Tong)力(Li)能(Neng)把(Ba)好(Hao)事(Shi)也(Ye)办(Ban)成(Cheng)坏(Huai)事(Shi)。(?)本(Ben)阶(Jie)段(Duan)将(Jiang)详(Xiang)细(Xi)介(Jie)绍(Shao)如(Ru)何(He)更(Geng)好(Hao)的(De)打(Da)开(Kai)对(Dui)方(Fang)的(De)心(Xin)扉(Fei)快(Kuai)速(Su)对(Dui)接(Jie),(?)以(Yi)及(Ji)赞(Zan)美(Mei)和(He)批(Pi)评(Ping)的(De)20多(Duo)种(Zhong)技(Ji)巧(Qiao),(?)还(Huan)会(Hui)讲(Jiang)到(Dao)如(Ru)何(He)讲(Jiang)好(Hao)故(Gu)事(Shi),(?)方(Fang)便(Bian)我(Wo)们(Men)的(De)沟(Gou)通(Tong),(?)以(Yi)及(Ji)酒(Jiu)宴(Yan)场(Chang)合(He)的(De)一(Yi)些(Xie)应(Ying)对(Dui)技(Ji)巧(Qiao)。(?)
我(Wo)们(Men)需(Xu)要(Yao)学(Xue)习(Xi):(?)
1.如(Ru)何(He)介(Jie)绍(Shao)自(Zi)己(Ji)、(?)商(Shang)务(Wu)场(Chang)合(He)介(Jie)绍(Shao)他(Ta)人(Ren)、(?)八(Ba)卦(Gua)场(Chang)合(He)介(Jie)绍(Shao)他(Ta)人(Ren)
2.人(Ren)性(Xing)的(De)特(Te)点(Dian)
3.如(Ru)何(He)寻(Xun)找(Zhao)合(He)适(Shi)的(De)话(Hua)题(Ti)
4.掌(Zhang)握(Wo)赞(Zan)美(Mei)的(De)艺(Yi)术(Shu)
5.掌(Zhang)握(Wo)批(Pi)评(Ping)他(Ta)人(Ren)的(De)技(Ji)巧(Qiao)
6.各(Ge)种(Zhong)酒(Jiu)宴(Yan)场(Chang)合(He)的(De)演(Yan)讲(Jiang)技(Ji)巧(Qiao)
7.掌(Zhang)握(Wo)讲(Jiang)好(Hao)一(Yi)件(Jian)事(Shi)的(De)技(Ji)术(Shu)
6.说(Shuo)服(Fu)力(Li)
生(Sheng)活(Huo)是(Shi)由(You)一(Yi)个(Ge)个(Ge)说(Shuo)服(Fu)和(He)被(Bei)说(Shuo)服(Fu)构(Gou)成(Cheng)的(De),(?)不(Bu)是(Shi)被(Bei)别(Bie)人(Ren)说(Shuo)服(Fu),(?)就(Jiu)是(Shi)在(Zai)说(Shuo)服(Fu)别(Bie)人(Ren)。(?)说(Shuo)服(Fu)力(Li)是(Shi)职(Zhi)场(Chang)成(Cheng)功(Gong)的(De)关(Guan)键(Jian)。(?)本(Ben)阶(Jie)段(Duan)讲(Jiang)解(Jie)提(Ti)升(Sheng)说(Shuo)服(Fu)力(Li)的(De)技(Ji)巧(Qiao)方(Fang)法(Fa),(?)让(Rang)我(Wo)们(Men)快(Kuai)速(Su)的(De)说(Shuo)服(Fu)领(Ling)导(Dao)、(?)同(Tong)事(Shi)以(Yi)及(Ji)家(Jia)人(Ren)。(?)
好(Hao)的(De)说(Shuo)服(Fu)力(Li),(?)在(Zai)你(Ni)谈(Tan)恋(Lian)爱(Ai)、(?)找(Zhao)工(Gong)作(Zuo)中(Zhong)能(Neng)发(Fa)挥(Hui)极(Ji)致(Zhi)作(Zuo)用(Yong)。(?)我(Wo)们(Men)需(Xu)要(Yao)学(Xue)习(Xi)如(Ru)下(Xia)内(Nei)容(Rong):(?)
1.如(Ru)何(He)破(Po)冰(Bing),(?)破(Po)冰(Bing)的(De)八(Ba)大(Da)策(Ce)略(Lue)
2.如(Ru)何(He)增(Zeng)加(Jia)筹(Chou)码(Ma)说(Shuo)服(Fu)别(Bie)人(Ren)
3.十(Shi)大(Da)说(Shuo)服(Fu)技(Ji)巧(Qiao)
4.条(Tiao)理(Li)公(Gong)式(Shi)((?)说(Shuo)服(Fu)需(Xu)要(Yao)条(Tiao)理(Li)和(He)逻(Luo)辑(Ji))(?)
7.说(Shuo)服(Fu)力(Li)之(Zhi)销(Xiao)售(Shou)
不(Bu)管(Guan)你(Ni)的(De)职(Zhi)业(Ye)是(Shi)什(Shi)么(Me),(?)每(Mei)个(Ge)人(Ren)都(Du)是(Shi)销(Xiao)售(Shou)。(?)有(You)人(Ren)销(Xiao)售(Shou)产(Chan)品(Pin),(?)有(You)人(Ren)销(Xiao)售(Shou)思(Si)想(Xiang),(?)有(You)人(Ren)销(Xiao)售(Shou)自(Zi)己(Ji)。(?)本(Ben)阶(Jie)段(Duan)主(Zhu)要(Yao)针(Zhen)对(Dui)销(Xiao)售(Shou)的(De)技(Ji)巧(Qiao)进(Jin)行(Xing)提(Ti)升(Sheng),(?)对(Dui)于(Yu)没(Mei)有(You)经(Jing)验(Yan)的(De)学(Xue)员(Yuan)能(Neng)够(Gou)快(Kuai)速(Su)提(Ti)升(Sheng)销(Xiao)售(Shou)技(Ji)巧(Qiao),(?)对(Dui)于(Yu)有(You)经(Jing)验(Yan)的(De)销(Xiao)售(Shou)人(Ren)员(Yuan)极(Ji)大(Da)提(Ti)高(Gao)转(Zhuan)化(Hua)效(Xiao)率(Lu)。(?)
做(Zuo)任(Ren)何(He)职(Zhi)业(Ye),(?)掌(Zhang)握(Wo)销(Xiao)售(Shou)技(Ji)巧(Qiao)都(Du)是(Shi)非(Fei)常(Chang)有(You)帮(Bang)助(Zhu)的(De)。(?)毕(Bi)竟(Jing),(?)本(Ben)质(Zhi)上(Shang)“(?)人(Ren)人(Ren)都(Du)是(Shi)销(Xiao)售(Shou)员(Yuan)”(?)。(?)我(Wo)们(Men)需(Xu)要(Yao)学(Xue)习(Xi)如(Ru)下(Xia)内(Nei)容(Rong):(?)
成(Cheng)功(Gong)销(Xiao)售(Shou)三(San)部(Bu)曲(Qu)((?)问(Wen)、(?)听(Ting)、(?)看(Kan))(?)
销(Xiao)售(Shou)十(Shi)大(Da)步(Bu)骤(Zhou)
绝(Jue)对(Dui)成(Cheng)交(Jiao)七(Qi)个(Ge)技(Ji)巧(Qiao)

8.演(Yan)讲(Jiang)力(Li)
“(?)能(Neng)面(Mian)对(Dui)多(Duo)少(Shao)人(Ren)讲(Jiang)话(Hua),(?)就(Jiu)能(Neng)有(You)多(Duo)大(Da)的(De)成(Cheng)就(Jiu)”(?)。(?)本(Ben)阶(Jie)段(Duan)从(Cong)演(Yan)讲(Jiang)的(De)三(San)个(Ge)关(Guan)键(Jian)点(Dian)入(Ru)手(Shou),(?)进(Jin)行(Xing)细(Xi)节(Jie)分(Fen)析(Xi)和(He)技(Ji)巧(Qiao)把(Ba)握(Wo),(?)以(Yi)及(Ji)如(Ru)何(He)应(Ying)对(Dui)演(Yan)讲(Jiang)过(Guo)程(Cheng)中(Zhong)的(De)尴(Gan)尬( ga),(?)如(Ru)何(He)在(Zai)舞(Wu)台(Tai)上(Shang)进(Jin)行(Xing)即(Ji)兴(Xing)演(Yan)讲(Jiang),(?)让(Rang)我(Wo)们(Men)站(Zhan)在(Zai)舞(Wu)台(Tai)上(Shang)更(Geng)加(Jia)从(Cong)容(Rong)。(?)
我(Wo)们(Men)需(Xu)要(Yao)学(Xue)习(Xi)演(Yan)讲(Jiang)训(Xun)练(Lian)的(De)如(Ru)下(Xia)关(Guan)键(Jian)点(Dian):(?)
1.如(Ru)何(He)写(Xie)出(Chu)漂(Piao)亮(Liang)的(De)演(Yan)讲(Jiang)稿(Gao)
2.如(Ru)何(He)克(Ke)服(Fu)恐(Kong)惧(Ju)
3.演(Yan)讲(Jiang)自(Zi)我(Wo)介(Jie)绍(Shao)和(He)互(Hu)动(Dong)技(Ji)巧(Qiao)
4.万(Wan)能(Neng)开(Kai)场(Chang)白(Bai)
5.把(Ba)握(Wo)演(Yan)讲(Jiang)节(Jie)奏(Zou)和(He)内(Nei)容(Rong)
6.眼(Yan)神(Shen)、(?)形(Xing)体(Ti)、(?)语(Yu)气(Qi)如(Ru)何(He)运(Yun)用(Yong)
7.演(Yan)讲(Jiang)的(De)小(Xiao)策(Ce)略(Lue)
①(?).(?)如(Ru)何(He)营(Ying)造(Zao)互(Hu)动(Dong)氛(Fen)围(Wei)
②(?).(?)如(Ru)何(He)赢(Ying)取(Qu)掌(Zhang)声(Sheng)
③(?).(?)忘(Wang)词(Ci)怎(Zen)么(Me)办(Ban)
④(?).(?)如(Ru)何(He)面(Mian)对(Dui)刁(Diao)钻(Zuan)古(Gu)怪(Guai)的(De)问(Wen)题(Ti)

9.领(Ling)导(Dao)力(Li)
“(?)不(Bu)想(Xiang)当(Dang)将(Jiang)军(Jun)的(De)士(Shi)兵(Bing)不(Bu)是(Shi)好(Hao)士(Shi)兵(Bing)”(?),(?)领(Ling)导(Dao)力(Li)培(Pei)养(Yang)需(Xu)要(Yao)从(Cong)娃(Wa)娃(Wa)抓(Zhua)起(Qi),(?)是(Shi)先(Xian)有(You)领(Ling)导(Dao)力(Li)才(Cai)能(Neng)成(Cheng)为(Wei)领(Ling)导(Dao),(?)而(?)不(Bu)是(Shi)成(Cheng)为(Wei)领(Ling)导(Dao)再(Zai)锻(Duan)炼(Lian)领(Ling)导(Dao)力(Li)(除(Chu)非(Fei)有(You)个(Ge)好(Hao)爸(Ba)爸(Ba)给(Gei)你(Ni)大(Da)量(Liang)练(Lian)手(Shou)机(Ji)会(Hui))。(?)本(Ben)阶(Jie)段(Duan)围(Wei)绕(Rao)领(Ling)导(Dao)力(Li)的(De)的(De)九(Jiu)种(Zhong)特(Te)质(Zhi)及(Ji)快(Kuai)速(Su)提(Ti)升(Sheng)领(Ling)导(Dao)力(Li)的(De)方(Fang)法(Fa),(?)以(Yi)及(Ji)怎(Zen)样(Yang)创(Chuang)建(Jian)一(Yi)个(Ge)优(You)秀(Xiu)的(De)适(Shi)合(He)企(Qi)业(Ye)发(Fa)展(Zhan)的(De)团(Tuan)队(Dui)。(?)
学(Xue)好(Hao)领(Ling)导(Dao)力(Li),(?)需(Xu)要(Yao)学(Xue)习(Xi)如(Ru)下(Xia)课(Ke)程(Cheng),(?)并(Bing)开(Kai)始(Shi)实(Shi)战(Zhan)训(Xun)练(Lian):(?)
1.理(Li)解(Jie)领(Ling)导(Dao)力(Li)的(De)九(Jiu)大(Da)特(Te)质(Zhi)
2.领(Ling)导(Dao)的(De)创(Chuang)新(Xin)心(Xin)态(Tai)调(Diao)整(Zheng)
组(Zu)织(Zhi)管(Guan)理(Li)的(De)核(He)心(Xin)秘(Mi)诀(Jue)
4.如(Ru)何(He)制(Zhi)定(Ding)合(He)理(Li)的(De)战(Zhan)略(Lue)决(Jue)策(Ce)
5.正(Zheng)确(Que)的(De)沟(Gou)通(Tong)协(Xie)调(Diao)下(Xia)属(Shu)方(Fang)式(Shi)
1.JAVA专(Zhuan)业(Ye),(?)1000课(Ke) | 3.大(Da)数(Shu)据(Ju)专(Zhuan)业(Ye),(?)500课(Ke) |
2.Python专(Zhuan)业(Ye),(?)500课(Ke) | 4.人(Ren)工(Gong)智(Zhi)能(Neng)专(Zhuan)业(Ye),(?)500课(Ke) |
四(Si)个(Ge)专(Zhuan)业(Ye)都(Du)要(Yao)学(Xue),(?)从(Cong)零(Ling)开(Kai)始(Shi)2000小(Xiao)时(Shi),(?)成(Cheng)为(Wei)高(Gao)端(Duan)人(Ren)才(Cai),(?)打(Da)下(Xia)一(Yi)生(Sheng)技(Ji)术(Shu)基(Ji)础(Chu),(?)不(Bu)再(Zai)是(Shi)低(Di)端(Duan)码(Ma)农(Nong)。(?)

2.扫(Sao)一(Yi)扫(Sao),(?)咨(Zi)询(Xun)详(Xiang)情(Qing):(?)

访(Fang)问(Wen)官(Guan)网(Wang) www.itbaizhan.cn