程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 幾個java面試題的簡潔回答,java面試題簡潔

幾個java面試題的簡潔回答,java面試題簡潔

編輯:JAVA綜合教程

幾個java面試題的簡潔回答,java面試題簡潔


java中equal和==的區別:

equal方法除非進行了重寫(比如String類和基本類型包裝類),否則都是進行對象引用的比較。而==除了比較基本類型時是比較值,其他情況均是比較引用地址。

java適配器模式?

將原來的實現接口所有方法變成了繼承實現了接口方法的抽象類(adapter),然後再實現想要的方法。

抽象類和接口的區別

抽象類和普通類的區別只是抽象類包含至少一個抽象方法,並且在聲明時要加上個abstract。

接口是一種特殊的抽象類,有以下特點:  成員變量:只能是常量      成員函數:只可以是抽象     構造方法:無 關系和區別: 類與類:繼承,單繼承 類與接口:單實現,多實現(這個也算是多繼承的一種形式) 接口與接口:單繼承,多繼承(這裡也就彌補了java沒有多繼承的缺陷) 最重要的區別:設計理念 接口類: like a(具有某些特定的功能和方法,比如某個動物實現了跑和吃的接口) 抽象類: is a(屬於某個范疇,比如貓屬於貓科動物,必須繼承自貓科動物這個抽象類,但貓科動物只是個概念沒有具體實現)   java多線程: 1.線程安全問題: 產生的原因:多個線程   存在共享數據  對共享數據進行多條語句操作    具體又可以分為兩種情況 (1)相同類型的多個線程   如多個窗口賣票   票是共享資源,對其進行賣票操作 (2)不同類型的多個線程   如對人進行命名和獲取年齡操作    人對象是共享資源  但進行兩種操作,一種獲取信息,另一種是設置參數 以上兩種情況要想保證線程安全需要進行加鎖才能保證安全 (1)對賣票這個操作進行加鎖(即run方法中的對共享資源進行操作的語句加synchronized(new object())語句,其中加的鎖對象也要保證所有線程用的是一樣的)(2)對獲取信息和設置參數均加鎖,並且加的鎖要保證相同! 其實上面兩種情況本質是一樣的,即對共享資源的操作需要加上唯一的一把鎖。   2.線程的死鎖問題的描述: eg: 線程1和線程2分別擁有a鎖和b鎖,現在線程1想拿到b鎖進行b操作,同時線程2也想拿到a鎖進行a操作,但是兩把鎖卻分別被對方擁有,此時就會出現二者互相想那對面的鎖卻不放棄自己鎖的現象,導致進入阻塞死鎖狀態。 籠統的說:是指兩個或兩個以上的進程在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。 另一種解釋方式: 死鎖是因為多線程訪問共享資源,由於訪問的順序不當所造成的,通常是一個線程鎖定了一個資源A,而又想去鎖定資源B;在另一個線程中,鎖定了資源B,而又想去鎖定資源A以完成自身的操作,兩個線程都想得到對方的資源,而不願釋放自己的資源,造成兩個線程都在等待,而無法執行的情況。   java網絡編程大致流程: udp 編程 發送端: 1,創建socket對象   構造函數       DatagramSocket() 2.創建數據並打包                      byte[] bts="helloworld".getBytes()                                                           DatagramPacket  dp=newDatagramPacket(bts,bts.getLength,InetAddress.getByName("192.168.1.12"),10086) 3.數據發送                              ds.sent(dp) 4.釋放                                    ds.close() 接收端: 1,創建socket對象           DatagramSocket ds=new DatagramSocket(端口號[>1000]) 2,創建包裹                    DatagramPacket dp=new DatagramPacket(bytes,bytes.length())  //bytes為字節數組byte[],存放數據 3,接收數據                   ds.receive(dp) 4,解析數據並顯示或應用   String ip=dp.getAddress().getHostAddress();   //得到ip地址                                    String data=String(dp.getData(),0,dp.getLength())   //得到數據包中的字符串 5,釋放資源                     ds.close()   tcp編程: 客戶端 1,新建socket對象 2,獲取輸出流,寫數據                             outputStream 3,釋放資源   服務器端 1,新建ServerSocket對象 2,監聽客戶端的sokcet ,進行連接           socket s= new ServerSocket().accept(); 3,獲取輸入流,讀取數據; 4,釋放資源

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved