自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

介紹JAVA編程語(yǔ)言的基礎(chǔ)知識(shí)(二)

開(kāi)發(fā) 后端
本文介紹的是java程序設(shè)計(jì)語(yǔ)言的一些基本知識(shí),這些也是我們經(jīng)常在面試中看見(jiàn)的。希望對(duì)你有幫助,一起來(lái)看。

下面介紹的是java編程相關(guān)的基礎(chǔ)知識(shí):

1、EJB與JAVA BEAN的區(qū)別?

Java Bean 是可復(fù)用的組件,對(duì)Java Bean并沒(méi)有嚴(yán)格的規(guī)范,理論上講,任何一個(gè)Java類(lèi)都可以是一個(gè)Bean。但通常情況下,由于Java Bean是被容器所創(chuàng)建(如Tomcat)的,所以Java Bean應(yīng)具有一個(gè)無(wú)參的構(gòu)造器,另外,通常Java Bean還要實(shí)現(xiàn)Serializable接口用于實(shí)現(xiàn)Bean的持久性。Java Bean實(shí)際上相當(dāng)于微軟COM模型中的本地進(jìn)程內(nèi)COM組件,它是不能被跨進(jìn)程訪問(wèn)的。

Enterprise Java Bean 相當(dāng)于DCOM,即分布式組件。它是基于Java的遠(yuǎn)程方法調(diào)用(RMI)技術(shù)的,所以EJB可以被遠(yuǎn)程訪問(wèn)(跨進(jìn)程、跨計(jì)算機(jī))。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問(wèn)真正的EJB組件,而是通過(guò)其容器訪問(wèn)。EJB容器是EJB組件的代理,EJB組件由容器所創(chuàng)建和管理??蛻敉ㄟ^(guò)容器來(lái)訪問(wèn)真正的EJB組件。

2、Static Nested Class 和 Inner Class的不同。

Static Nested Class是被聲明為靜態(tài)(static)的內(nèi)部類(lèi),它可以不依賴于外部類(lèi)實(shí)例被實(shí)例化。而通常的內(nèi)部類(lèi)需要在外部類(lèi)實(shí)例化后才能實(shí)例化。

3、JSP中動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?

動(dòng)態(tài)INCLUDE用jsp:include動(dòng)作實(shí)現(xiàn) <jsp:include page="included.jsp" flush="true" />它總是會(huì)檢查所含文件中的變化,適合用于包含動(dòng)態(tài)頁(yè)面,并且可以帶參數(shù)。

靜態(tài)INCLUDE用include偽碼實(shí)現(xiàn),定不會(huì)檢查所含文件的變化,適用于包含靜態(tài)頁(yè)面<%@ include file="included.htm" %>

4、什么時(shí)候用assert。

assertion(斷言)在軟件開(kāi)發(fā)中是一種常用的調(diào)試方式,很多開(kāi)發(fā)語(yǔ)言中都支持這種機(jī)制。在實(shí)現(xiàn)中,assertion就是在程序中的一條語(yǔ)句,它對(duì)一個(gè)boolean表達(dá)式進(jìn)行檢查,一個(gè)正確程序必須保證這個(gè)boolean表達(dá)式的值為true;如果該值為false,說(shuō)明程序已經(jīng)處于不正確的狀態(tài)下,系統(tǒng)將給出警告或退出。一般來(lái)說(shuō),assertion用于保證程序最基本、關(guān)鍵的正確性。assertion檢查通常在開(kāi)發(fā)和測(cè)試時(shí)開(kāi)啟。為了提高性能,在軟件發(fā)布后,assertion檢查通常是關(guān)閉的。

5、GC是什么? 為什么要有GC?

GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問(wèn)題的地方,忘記或者錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動(dòng)監(jiān)測(cè)對(duì)象是否超過(guò)作用域從而達(dá)到自動(dòng)回收內(nèi)存的目的,Java語(yǔ)言沒(méi)有提供釋放已分配內(nèi)存的顯示操作方法。

6、

  1. short s1 = 1; s1 = s1 + 1;  
  2. short s1 = 1; s1 += 1

 

有什么錯(cuò)?

  1. short s1 = 1; s1 = s1 + 1; (s1+1運(yùn)算結(jié)果是int型,需要強(qiáng)制轉(zhuǎn)換類(lèi)型)   
  2. short s1 = 1; s1 += 1;(可以正確編譯)  

 

7、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

  1. Math.round(11.5)==12   
  2. Math.round(-11.5)==-11  

 

round方法返回與參數(shù)最接近的長(zhǎng)整數(shù),參數(shù)加1/2后求其floor.

8、String s = new String("xyz");創(chuàng)建了幾個(gè)String Object?

兩個(gè)

9、設(shè)計(jì)4個(gè)線程,其中兩個(gè)線程每次對(duì)j增加1,另外兩個(gè)線程對(duì)j每次減少1。寫(xiě)出程序。

以下程序使用內(nèi)部類(lèi)實(shí)現(xiàn)線程,對(duì)j增減的時(shí)候沒(méi)有考慮順序問(wèn)題。

  1. public class ThreadTest1{   
  2. private int j;   
  3. public static void main(String args[]){   
  4. ThreadTest1 tt=new ThreadTest1();   
  5. Inc inc=tt.new Inc();   
  6. Dec dec=tt.new Dec();   
  7. for(int i=0;i<2;i++){   
  8. Thread t=new Thread(inc);   
  9. t.start();   
  10. t=new Thread(dec);   
  11. t.start();   
  12. }   
  13. }   
  14. private synchronized void inc(){   
  15. j++;   
  16. System.out.println(Thread.currentThread().getName()+"-inc:"+j);   
  17. }  
  18. $False$  
  19.  
  20. private synchronized void dec(){   
  21. j--;   
  22. System.out.println(Thread.currentThread().getName()+"-dec:"+j);   
  23. }   
  24. class Inc implements Runnable{   
  25. public void run(){   
  26. for(int i=0;i<100;i++){   
  27. inc();   
  28. }   
  29. }   
  30. }   
  31. class Dec implements Runnable{   
  32. public void run(){   
  33. for(int i=0;i<100;i++){   
  34. dec();   
  35. }   
  36. }   
  37. }   
  38. }  

 

10、Java有沒(méi)有g(shù)oto?

java中的保留字,現(xiàn)在沒(méi)有在java中使用。

11、啟動(dòng)一個(gè)線程是用run()還是start()?

啟動(dòng)一個(gè)線程是調(diào)用start()方法,使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程就會(huì)立即運(yùn)行。run()方法可以產(chǎn)生必須退出的標(biāo)志來(lái)停止一個(gè)線程。

12、EJB包括(SessionBean,EntityBean)說(shuō)出他們的生命周期,及如何管理事務(wù)的?

SessionBean:Stateless Session Bean 的生命周期是由容器決定的,當(dāng)客戶機(jī)發(fā)出請(qǐng)求要建立一個(gè)Bean的實(shí)例時(shí),EJB容器不一定要?jiǎng)?chuàng)建一個(gè)新的Bean的實(shí)例供客戶機(jī)調(diào)用,而是隨便找一個(gè)現(xiàn)有的實(shí)例提供給客戶機(jī)。當(dāng)客戶機(jī)第一次調(diào)用一個(gè)Stateful Session Bean 時(shí),容器必須立即在服務(wù)器中創(chuàng)建一個(gè)新的Bean實(shí)例,并關(guān)聯(lián)到客戶機(jī)上,以后此客戶機(jī)調(diào)用Stateful Session Bean 的方法時(shí)容器會(huì)把調(diào)用分派到與此客戶機(jī)相關(guān)聯(lián)的Bean實(shí)例。

EntityBean:Entity Beans能存活相對(duì)較長(zhǎng)的時(shí)間,并且狀態(tài)是持續(xù)的。只要數(shù)據(jù)庫(kù)中的數(shù)據(jù)存在,Entity beans就一直存活。而不是按照應(yīng)用程序或者服務(wù)進(jìn)程來(lái)說(shuō)的。即使EJB容器崩潰了,Entity beans也是存活的。Entity Beans生命周期能夠被容器或者 Beans自己管理。

EJB通過(guò)以下技術(shù)管理實(shí)務(wù):對(duì)象管理組織(OMG)的對(duì)象實(shí)務(wù)服務(wù)(OTS),Sun Microsystems的Transaction Service(JTS)、Java Transaction API(JTA),開(kāi)發(fā)組(X/Open)的XA接口。

13、應(yīng)用服務(wù)器有那些?

BEA WebLogic Server,IBM WebSphere Application Server,Oracle9i Application Server,jBoss,Tomcat

14、給我一個(gè)你最常見(jiàn)到的runtime exception。

ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

15、接口是否可繼承接口? 抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口? 抽象類(lèi)是否可繼承實(shí)體類(lèi)(concrete class)?

接口可以繼承接口。抽象類(lèi)可以實(shí)現(xiàn)(implements)接口,抽象類(lèi)是否可繼承實(shí)體類(lèi),但前提是實(shí)體類(lèi)必須有明確的構(gòu)造函數(shù)。

16、List, Set, Map是否繼承自Collection接口?

List,Set是,Map不是

17、說(shuō)出數(shù)據(jù)連接池的工作機(jī)制是什么?

J2EE服務(wù)器啟動(dòng)時(shí)會(huì)建立一定數(shù)量的池連接,并一直維持不少于此數(shù)目的池連接。

客戶端程序需要連接時(shí),池驅(qū)動(dòng)程序會(huì)返回一個(gè)未使用的池連接并將其表記為忙。如果當(dāng)前沒(méi)有空閑連接,池驅(qū)動(dòng)程序就新建一定數(shù)量的連接,新建連接的數(shù)量有配置參數(shù)決定。當(dāng)使用的池連接調(diào)用完成后,池驅(qū)動(dòng)程序?qū)⒋诉B接表記為空閑,其他調(diào)用就可以使用這個(gè)連接。

18、abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized?

都不能

19、數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法? String有沒(méi)有l(wèi)ength()這個(gè)方法?

數(shù)組沒(méi)有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。String有有l(wèi)ength()這個(gè)方法。

20、Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別?

Set里的元素是不能重復(fù)的,那么用iterator()方法來(lái)區(qū)分重復(fù)與否。equals()是判讀兩個(gè)Set是否相等。
equals()和==方法決定引用值是否指向同一對(duì)象equals()在類(lèi)中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容和類(lèi)型相配的話,返回真值。

21、構(gòu)造器Constructor是否可被override?

構(gòu)造器Constructor不能被繼承,因此不能重寫(xiě)Overriding,但可以被重載Overloading。

希望對(duì)你有幫助,看下一篇,介紹JAVA編程語(yǔ)言的基礎(chǔ)知識(shí)(三)

責(zé)任編輯:于鐵 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-22 10:02:07

java

2011-07-22 10:38:04

java

2011-07-21 17:33:27

JAVA

2011-07-21 17:45:02

java

2011-07-22 09:43:37

java

2022-03-30 08:37:32

Python函數(shù)編程自定義函數(shù)

2011-11-04 17:26:12

2009-08-11 15:17:12

C#基礎(chǔ)知識(shí)

2009-08-13 15:40:28

C#基礎(chǔ)知識(shí)

2009-11-05 09:51:14

WCF基礎(chǔ)

2015-07-17 16:49:13

OpenStack開(kāi)源云平臺(tái)云計(jì)算

2021-01-23 12:47:19

MySQL數(shù)據(jù)庫(kù)Go語(yǔ)言

2024-01-07 19:54:51

2011-07-14 23:34:56

SEO

2011-02-25 09:37:35

2010-04-22 11:32:57

Lvs負(fù)載均衡

2009-11-23 19:24:01

PHP面向?qū)ο缶幊?/a>

2011-06-24 14:34:56

SEO

2009-12-21 13:03:06

向量路由協(xié)議

2010-01-19 14:45:35

C++語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)