日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java遇见的问题分析

發(fā)布時(shí)間:2023/12/4 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java遇见的问题分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

下面就一些java的一些基本問(wèn)題進(jìn)行解釋。其中藍(lán)色部分為handsomecui的主觀看法

一.synchronized(obj)里面的參數(shù)怎么解釋?

synchronized的參數(shù)代表的是“對(duì)象鎖”代表的是不同的線(xiàn)程在synchronized塊里,
同時(shí)只有一個(gè)線(xiàn)程能執(zhí)行該代碼塊,而類(lèi)的不同實(shí)例之間是互不影響的。
比如Person A = new Person(),Person B = new Person().A和B之間是不受synchronized制約的。

二.創(chuàng)建線(xiàn)程有哪幾種方法?

  有三種方式可以用來(lái)創(chuàng)建線(xiàn)程:

   1.繼承Thread類(lèi)

   2.實(shí)現(xiàn)Runnable接口

   3.應(yīng)用程序可以使用Executor框架來(lái)創(chuàng)建線(xiàn)程池

三. ”static”關(guān)鍵字是什么意思?Java中是否可以覆蓋(override)一個(gè)private或者是static的方法?

  “static”關(guān)鍵字表明一個(gè)成員變量或者是成員方法可以在沒(méi)有所屬的類(lèi)的實(shí)例變量的情況下被訪問(wèn)。

  Java中static方法不能被覆蓋,因?yàn)?span style="color:#ff0000;">方法覆蓋是基于運(yùn)行時(shí)動(dòng)態(tài)綁定的,而static方法是編譯時(shí)靜態(tài)綁定的。

  static方法跟類(lèi)的任何實(shí)例都不相關(guān),所以概念上不適用。

?

四.是否可以在static環(huán)境中訪問(wèn)非static變量?

  static變量在Java中是屬于類(lèi)的它在所有的實(shí)例中的值是一樣的。

  當(dāng)類(lèi)被Java虛擬機(jī)載入的時(shí)候,會(huì)對(duì)static變量進(jìn)行初始化

  如果你的代碼嘗試不用實(shí)例來(lái)訪問(wèn)非static的變量,編譯器會(huì)報(bào)錯(cuò),因?yàn)?span style="color:#ff0000;">這些變量還沒(méi)有被創(chuàng)建出來(lái),還沒(méi)有跟任何實(shí)例關(guān)聯(lián)上。

  (注意,非static變量是實(shí)例化后才被創(chuàng)建,而static變量是類(lèi)創(chuàng)建時(shí)就被創(chuàng)建)

?五.int與Integer的區(qū)別:

  int 是基本數(shù)據(jù)類(lèi)型
  Integer是其包裝類(lèi),注意是一個(gè)類(lèi)。
  為什么要提供包裝類(lèi)呢???
  1.為了在各種類(lèi)型間轉(zhuǎn)化,通過(guò)各種方法的調(diào)用。否則 你無(wú)法直接通過(guò)變量轉(zhuǎn)化。例如int x = Integer.valueOf("66");

  2.泛型 List<Integer> nums;
    這里<>需要類(lèi),要用Integer

六.Java中intValue,parseInt,Valueof?這三個(gè)關(guān)鍵字的區(qū)別?

   int a = Integer.parseInt("123");(相當(dāng)于把“123”轉(zhuǎn)化為基本數(shù)據(jù))
???  Integer b = Integer.valueOf("123");(相當(dāng)于把“123”轉(zhuǎn)化為一個(gè)Integer對(duì)象)
???  int c = b.intValue();(將123的對(duì)象表示形式轉(zhuǎn)化為基本數(shù)據(jù)123

  也就是 Integer.valueOf("123").intValue() 等價(jià)于 Integer.parseInt("123")

七.java不支持多繼承,但可以實(shí)現(xiàn)多個(gè)接口。

八.synchronized用在方法上級(jí)別是粗粒度鎖,用在代碼塊上是細(xì)粒度鎖。

九.Java集合類(lèi)框架的基本接口有哪些?

  • Collection:代表一組對(duì)象,每一個(gè)對(duì)象都是它的子元素。
  • Set:不包含重復(fù)元素的Collection。
  • List:有順序的collection,并且可以包含重復(fù)元素。
  • Map:可以把鍵(key)映射到值(value)的對(duì)象,鍵不能重復(fù)。

  ArrayList和 LinkedList 實(shí)現(xiàn)了List接口,HashSet實(shí)現(xiàn)了Set接口,這幾個(gè)都比較常用;

  HashMap 和HashTable實(shí)現(xiàn)了Map接口,并且HashTable是線(xiàn)程安全的,但是HashMap性能更好

  

  java.util.Collection [I]

  |—java.util.List [I]|—java.util.ArrayList [C]|—java.util.LinkedList [C]|—java.util.Vector [C]|—java.util.Stack [C]|—java.util.Set [I]|—java.util.HashSet [C]|—java.util.SortedSet [I]|—java.util.TreeSet [C]

  java.util.Map [I]

  |—java.util.SortedMap [I]|—java.util.TreeMap [C]|—java.util.Hashtable [C]|—java.util.HashMap [C]|—java.util.LinkedHashMap [C]|—java.util.WeakHashMap [C]

十.接口和抽象類(lèi)的區(qū)別是什么?

Java提供和支持創(chuàng)建抽象類(lèi)和接口。它們的實(shí)現(xiàn)有共同點(diǎn),不同點(diǎn)在于:

  • 接口中所有的方法隱含的都是抽象的。而抽象類(lèi)則可以同時(shí)包含抽象和非抽象的方法。
  • 類(lèi)可以實(shí)現(xiàn)很多個(gè)接口,但是只能繼承一個(gè)抽象類(lèi)
  • 類(lèi)如果要實(shí)現(xiàn)一個(gè)接口,它必須要實(shí)現(xiàn)接口聲明的所有方法。但是,類(lèi)可以不實(shí)現(xiàn)抽象類(lèi)聲明的所有方法,當(dāng)然,在這種情況下,類(lèi)也必須得聲明成是抽象的。
  • 抽象類(lèi)可以在不提供接口方法實(shí)現(xiàn)的情況下實(shí)現(xiàn)接口。
  • Java接口中聲明的變量默認(rèn)都是final的。抽象類(lèi)可以包含非final的變量。
  • Java接口中的成員函數(shù)默認(rèn)是public的。抽象類(lèi)的成員函數(shù)可以是private,protected或者是public。
  • 接口是絕對(duì)抽象的,不可以被實(shí)例化。抽象類(lèi)也不可以被實(shí)例化,但是,如果它包含main方法的話(huà)是可以被調(diào)用的。

總結(jié)

以上是生活随笔為你收集整理的java遇见的问题分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。