主頁 > 後端開發 > Java59道常見面試題,內附答案

Java59道常見面試題,內附答案

2021-01-11 17:13:42 後端開發

Java基礎方面:
1、作用域public,private,protected,以及不寫時的區別
答:區別如下:
在這里插入圖片描述

不寫時默認為friendly

2、Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實作)interface(介面)
答:匿名的內部類是沒有名字的內部類,不能extends(繼承) 其它類,但一個內部類可以作為一個介面,由另一個內部類實作
3、Static Nested Class 和 Inner Class的不同
答:Nested Class (一般是C++的說法),Inner Class (一般是JAVA的說法),Java內部類與C++嵌套類最大的不同就在于是否有指向外部的參考上,注: 靜態內部類(Inner Class)意味著1創建一個static內部類的物件,不需要一個外部類物件,2不能從一個static內部類的一個物件訪問一個外部類物件
4、&和&&的區別
答:&是位運算子,表示按位與運算,&&是邏輯運算子,表示邏輯與(and)
5、Collection 和 Collections的區別
答:Collection是集合類的上級介面,繼承與他的介面主要有Set 和List.
Collections是針對集合類的一個幫助類,他提供一系列靜態方法實作對各種集合的搜索、排序、執行緒安全化等操作
6、什么時候用assert
答:assertion(斷言)在軟體開發中是一種常用的除錯方式,很多開發語言中都支持這種機制,在實作中,assertion就是在程式中的一條陳述句,它對一個boolean運算式進行檢查,一個正確程式必須保證這個boolean運算式的值為true;如果該值為false,說明程式已經處于不正確的狀態下,系統將給出警告或退出,一般來說,assertion用于保證程式最基本、關鍵的正確性,assertion檢查通常在開發和測驗時開啟,為了提高性能,在軟體發布后,assertion檢查通常是關閉的
7、String s = new String(“xyz”);創建了幾個String Object
答:兩個,一個字符物件,一個字符物件參考物件
8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少
答: Math.round(11.5)12;Math.round(-11.5)-11;round方法回傳與引數最接近的長整數,引數加1/2后求其floor
9、short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯
答:short s1 = 1; s1 = s1 + 1; (s1+1運算結果是int型,需要強制轉換型別)short s1 = 1; s1 += 1;(可以正確編譯)
10、Java有沒有goto
答:java中的保留字,現在沒有在java中使用
11、陣列有沒有length()這個方法? String有沒有length()這個方法
答:陣列沒有length()這個方法,有length的屬性,String有有length()這個方法
12、Overload和Override的區別,Overloaded的方法是否可以改變回傳值的型別
答:方法的重寫Overriding和多載Overloading是Java多型性的不同表現,重寫Overriding是父類與子類之間多型性的一種表現,多載Overloading是一個類中多型性的一種表現,如果在子類中定義某方法與其父類有相同的名稱和引數,我們說該方法被重寫 (Overriding),子類的物件使用這個方法時,將呼叫子類中的定義,對它而言,父類中的定義如同被"屏蔽"了,如果在一個類中定義了多個同名的方法,它們或有不同的引數個數或有不同的引數型別,則稱為方法的多載(Overloading),Overloaded的方法是可以改變回傳值的型別
13、Set里的元素是不能重復的,那么用什么方法來區分重復與否呢? 是用還是equals()? 它們有何區別
答:Set里的元素是不能重復的,那么用iterator()方法來區分重復與否,equals()是判讀兩個Set是否相等
equals()和==方法決定參考值是否指向同一物件equals()在類中被覆寫,為的是當兩個分離的物件的內容和型別相配的話,回傳真值
14、給我一個你最常見到的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、error和exception有什么區別
答:error 表示恢復不是不可能但很困難的情況下的一種嚴重問題,比如說記憶體溢位,不可能指望程式能處理這樣的情況
exception 表示一種設計或實作問題,也就是說,它表示如果程式運行正常,從不會發生的情況
16、List, Set, Map是否繼承自Collection介面
答: List,Set是,Map不是
17、abstract class和interface有什么區別
答:宣告方法的存在而不去實作它的類被叫做抽象類(abstract class),它用于要創建一個體現某些基本行為的類,并為該類宣告方法,但不能在該類中實作該類的情況,不能創建abstract 類的實體,然而可以創建一個變數,其型別是一個抽象類,并讓它指向具體子類的一個實體,不能有抽象建構式或抽象靜態方法,Abstract 類的子類為它們父類中的所有抽象方法提供實作,否則它們也是抽象類為,取而代之,在子類中實作該方法,知道其行為的其它類可以在類中實作這些方法
介面(interface)是抽象類的變體,在介面中,所有方法都是抽象的,多繼承性可通過實作這樣的介面而獲得,介面中的所有方法都是抽象的,沒有一個有程式體,介面只可以定義static final成員變數,介面的實作與子類相似,除了該實作類不能從介面定義中繼承行為,當類實作特殊介面時,它定義(即將程式體給予)所有這種介面的方法,然后,它可以在實作了該介面的類的任何物件上呼叫介面的方法,由于有抽象類,它允許使用介面名作為參考變數的型別,通常的動態聯編將生效,參考可以轉換到介面型別或從介面型別轉換,instanceof 運算子可以用來決定某物件的類是否實作了介面
18、abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized
答:都不能
19、介面是否可繼承介面? 抽象類是否可實作(implements)介面? 抽象類是否可繼承物體類(concrete class)
答:介面可以繼承介面,抽象類可以實作(implements)介面,抽象類是否可繼承物體類,但前提是物體類必須有明確的建構式
20、構造器Constructor是否可被override
答:構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被多載Overloading
21、是否可以繼承String類
答:String類是final類故不可以繼承
22、try {}里有一個return陳述句,那么緊跟在這個try后的finally {}里的code會不會被執行,什么時候被執行,在return前還是后
答:會執行,在return前執行
23、用最有效率的方法算出2乘以8等於幾
答:2 << 3
24、兩個物件值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對
答:不對,有相同的hash code
25、當一個物件被當作引數傳遞到一個方法后,此方法可改變這個物件的屬性,并可回傳變化后的結果,那么這里到底是值傳遞還是參考傳遞
答:是值傳遞,Java 編程語言只有值傳遞引數,當一個物件實體作為一個引數被傳遞到方法中時,引數的值就是對該物件的參考,物件的內容可以在被呼叫的方法中改變,但物件的參考是永遠不會改變的
26、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
答:witch(expr1)中,expr1是一個整數運算式,因此傳遞給 switch 和 case 陳述句的引數應該是 int、 short、 char 或者 byte,long,string 都不能作用于swtich
27、ArrayList和Vector的區別,HashMap和Hashtable的區別
答:就ArrayList與Vector主要從二方面來說.
一.同步性:Vector是執行緒安全的,也就是說是同步的,而ArrayList是執行緒式不安全的,不是同步的
二.資料增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半
就HashMap與HashTable主要從三方面來說,
一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進的Map介面的一個實作
二.同步性:Hashtable是執行緒安全的,也就是說是同步的,而HashMap是執行緒式不安全的,不是同步的
三.值:只有HashMap可以讓你將空值作為一個表的條目的key或value
28、char型變數中能不能存貯一個中文漢字?為什么?
答:是能夠定義成為一個中文的,因為java中以unicode編碼,一個char占16個位元組,所以放一個中文是沒問題的
29、GC是什么? 為什么要有GC
答:GC是垃圾收集的意思(Gabage Collection),記憶體處理是編程人員容易出現問題的地方,忘記或者錯誤的記憶體回識訓導致程式或系統的不穩定甚至崩潰,Java提供的GC功能可以自動監測物件是否超過作用域從而達到自動回收記憶體的目的,Java語言沒有提供釋放已分配記憶體的顯示操作方法,
30、float型float f=3.4是否正確?
答:不正確,精度不準確,應該用強制型別轉換,如下所示:float f=(float)3.4
31、介紹JAVA中的Collection FrameWork(包括如何寫自己的資料結構)?
答:Collection FrameWork如下:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection是最基本的集合介面,一個Collection代表一組Object,即Collection的元素(Elements)
Map提供key到value的映射
32、抽象類與介面?
答:抽象類與介面都用于抽象,但是抽象類(JAVA中)可以有自己的部分實作,而介面則完全是一個標識(同時有多重繼承的功能),
JAVA類實作序例化的方法是實作java.io.Serializable介面
Collection框架中實作比較要實作Comparable 介面和 Comparator 介面
33、STRING與STRINGBUFFER的區別,
答:STRING的長度是不可變的,STRINGBUFFER的長度是可變的,如果你對字串中的內容經常進行操作,特別是內容要修改時,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法
34、談談final, finally, finalize的區別
答:final—修飾符(關鍵字)如果一個類被宣告為final,意味著它不能再派生出新的子類,不能作為父類被繼承,因此一個類不能既被宣告為 abstract的,又被宣告為final的,將變數或方法宣告為final,可以保證它們在使用中不被改變,被宣告為final的變數必須在宣告時給定初值,而在以后的參考中只能讀取,不可修改,被宣告為final的方法也同樣只能使用,不能多載
finally—再例外處理時提供 finally 塊來執行任何清除操作,如果拋出一個例外,那么相匹配的 catch 子句就會執行,然后控制就會進入 finally 塊(如果有的話)
finalize—方法名,Java 技術允許使用 finalize() 方法在垃圾收集器將物件從記憶體中清除出去之前做必要的清理作業,這個方法是由垃圾收集器在確定這個物件沒有被參考時對這個物件呼叫的,它是在 Object 類中定義的,因此所有的類都繼承了它,子類覆寫 finalize() 方法以整理系統資源或者執行其他清理作業,finalize() 方法是在垃圾收集器洗掉物件之前對這個物件呼叫的
35、面向物件的特征有哪些方面
答:主要有以下四方面:
1.抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面,抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節,抽象包括兩個方面,一是程序抽象,二是資料抽象,
2.繼承:
繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法,物件的一個新類可以從現有的類中派生,這個程序稱為類繼承,新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類),派生類可以從它的基類那里繼承方法和實體變數,并且類可以修改或增加新的方法使之更適合特殊的需要,
3.封裝:
封裝是把程序和資料包圍起來,對資料的訪問只能通過已定義的界面,面向物件計算始于這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的物件,這些物件通過一個受保護的介面訪問其他物件,
4. 多型性:
多型性是指允許不同類的物件對同一訊息作出回應,多型性包括引數化多型性和包含多型性,多型性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程式函式同名問題,
36、String是最基本的資料型別嗎
答:基本資料型別包括byte、int、char、long、float、double、boolean和short,
java.lang.String類是final型別的,因此不可以繼承這個類、不能修改這個類,為了提高效率節省空間,我們應該用StringBuffer類
37、int 和 Integer 有什么區別
答:Java 提供兩種不同的型別:參考型別和原始型別(或內置型別),Int是java的原始資料型別,Integer是java為int提供的封裝類,Java為每個原始型別提供了封裝類,
原始型別封裝類,booleanBoolean,charCharacter,byteByte,shortShort,intInteger,longLong,floatFloat,doubleDouble
參考型別和原始型別的行為完全不同,并且它們具有不同的語意,參考型別和原始型別具有不同的特征和用法,它們包括:大小和速度問題,這種型別以哪種型別的資料結構存盤,當參考型別和原始型別用作某個類的實體資料時所指定的預設值,物件參考實體變數的預設值為 null,而原始型別實體變數的預設值與它們的型別有關
38、運行時例外與一般例外有何異同
答:例外表示程式運行程序中可能出現的非正常狀態,運行時例外表示虛擬機的通常操作中可能遇到的例外,是一種常見運行錯誤,java編譯器要求方法必須宣告拋出可能發生的非運行時例外,但是并不要求必須宣告拋出未被捕獲的運行時例外,
39、說出ArrayList,Vector, LinkedList的存盤性能和特性
答:ArrayList和Vector都是使用陣列方式存盤資料,此陣列元素數大于實際存盤的資料以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及陣列元素移動等記憶體操作,所以索引資料快而插入資料慢,Vector由于使用了synchronized方法(執行緒安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實作存盤,按序號索引資料需要進行前向或后向遍歷,但是插入資料時只需要記錄本項的前后項即可,所以插入速度較快,
40、HashMap和Hashtable的區別
答:HashMap是Hashtable的輕量級實作(非執行緒安全的實作),他們都完成了Map介面,主要區別在于HashMap允許空(null)鍵值(key),由于非執行緒安全,效率上可能高于Hashtable,
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許,
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey,因為contains方法容易讓人引起誤解,
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實作,
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個執行緒訪問Hashtable時,不需要自己為它的方法實作同步,而HashMap 就必須為之提供外同步,
Hashtable和HashMap采用的hash/rehash演算法都大概一樣,所以性能不會有很大的差異,
41、heap和stack有什么區別
答:堆疊是一種線形集合,其添加和洗掉元素的操作應在同一段完成,堆疊按照后進先出的方式進行處理,堆是堆疊的一個組成元素
42、Java的介面和C++的虛類的相同和不同處
答:由于Java不支持多繼承,而有可能某個類或物件要使用分別在幾個類或物件里面的方法或屬性,現有的單繼承機制就不能滿足要求,與繼承相比,介面有更高的靈活性,因為介面中沒有任何實作代碼,當一個類實作了介面以后,該類要實作介面里面所有的方法和屬性,并且介面里面的屬性在默認狀態下面都是public static,所有方法默認情況下是public.一個類可以實作多個介面,
43、Java中的例外處理機制的簡單原理和應用
答:當JAVA程式違反了JAVA的語意規則時,JAVA虛擬機就會將發生的錯誤表示為一個例外,違反語意規則包括2種情況,一種是JAVA類別庫內置的語意檢查,例如陣列下標越界,會引發IndexOutOfBoundsException;訪問null的物件時會引發NullPointerException,另一種情況就是JAVA允許程式員擴展這種語意檢查,程式員可以創建自己的例外,并自由選擇在何時用throw關鍵字引發例外,所有的例外都是java.lang.Thowable的子類,
44、垃圾回收的優點和原理,并考慮2種回識訓制
答:Java語言中一個顯著的特點就是引入了垃圾回識訓制,使c++程式員最頭疼的記憶體管理的問題迎刃而解,它使得Java程式員在撰寫程式的時候不再需要考慮記憶體管理,由于有個垃圾回識訓制,Java中的物件不再有"作用域"的概念,只有物件的參考才有"作用域",垃圾回收可以有效的防止記憶體泄露,有效的使用可以使用的記憶體,垃圾回收器通常是作為一個單獨的低級別的執行緒運行,不可預知的情況下對記憶體堆中已經死亡的或者長時間沒有使用的物件進行清楚和回收,程式員不能實時的呼叫垃圾回收器對某個物件或所有物件進行垃圾回收,回識訓制有分代復制垃圾回收和標記垃圾回收,增量垃圾回收,
45、你所知道的集合類都有哪些?主要方法?
答:最常用的集合類是 List 和 Map, List 的具體實作包括 ArrayList 和 Vector,它們是可變大小的串列,比較適合構建、存盤和操作任何型別物件的元素串列, List 適用于按數值索引訪問元素的情形,
Map 提供了一個更通用的元素存盤方法, Map 集合類用于存盤元素對(稱作"鍵"和"值"),其中每個鍵映射到一個值,
46、描述一下JVM加載class檔案的原理機制?
答:JVM中類的裝載是由ClassLoader和它的子類來實作的,Java ClassLoader 是一個重要的Java運行時系統組件,它負責在運行時查找和裝入類檔案的類,


答: 排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸并排序,分配排序(箱排序、基數排序)
快速排序的偽代碼,
/ /使用快速排序方法對a[ 0 :n- 1 ]排序
從a[ 0 :n- 1 ]中選擇一個元素作為m i d d l e,該元素為支點
把余下的元素分割為兩段left 和r i g h t,使得l e f t中的元素都小于等于支點,而right 中的元素都大于等于支點
遞回地使用快速排序方法對left 進行排序
遞回地使用快速排序方法對right 進行排序
所得結果為l e f t + m i d d l e + r i g h t
47、JAVA語言如何進行例外處理,關鍵字:throws,throw,try,catch,finally分別代表什么意義?在try塊中可以拋出例外嗎?
答:Java通過面向物件的方法進行例外處理,把各種不同的例外進行分類,并提供了良好的介面,在Java中,每個例外都是一個物件,它是Throwable類或其它子類的實體,當一個方法出現例外后便拋出一個例外物件,該物件中包含有例外資訊,呼叫這個物件的方法可以捕獲到這個例外并進行處理,Java的例外處理是通過5個關鍵詞來實作的:try、catch、throw、throws和finally,一般情況下是用try來執行一段程式,如果出現例外,系統會拋出(throws)一個例外,這時候你可以通過它的型別來捕捉(catch)它,或最后(finally)由預設處理器來處理,
用try來指定一塊預防所有"例外"的程式,緊跟在try程式后面,應包含一個catch子句來指定你想要捕捉的"例外"的型別,
throw陳述句用來明確地拋出一個"例外",
throws用來標明一個成員函式可能拋出的各種"例外",
Finally為確保一段代碼不管發生什么"例外"都被執行一段代碼,
可以在一個成員函式呼叫的外面寫一個try陳述句,在這個成員函式內部寫另一個try陳述句保護其他代碼,每當遇到一個try陳述句,“例外"的框架就放到堆疊上面,直到所有的try陳述句都完成,如果下一級的try陳述句沒有對某種"例外"進行處理,堆疊就會展開,直到遇到有處理這種"例外"的try陳述句,
48、一個".java"源檔案中是否可以包括多個類(不是內部類)?有什么限制?
答:可以,必須只有一個類名與檔案名相同,
49、java中有幾種型別的流?JDK為每種型別的流提供了一些抽象類以供繼承,請說出他們分別是哪些類?
答:位元組流,字符流,位元組流繼承于InputStream OutputStream,字符流繼承于InputStreamReader OutputStreamWriter,在java.io包中還有許多其他的流,主要是為了提高性能和使用方便,
50、java中會存在記憶體泄漏嗎,請簡單描述,
答:會,自己實作堆載的資料結構時有可能會出現記憶體泄露,可參看effective java.
51、java中實作多型的機制是什么?
答:方法的重寫Overriding和多載Overloading是Java多型性的不同表現,重寫Overriding是父類與子類之間多型性的一種表現,多載Overloading是一個類中多型性的一種表現,
52、垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收記憶體嗎?有什么辦法主動通知虛擬機進行垃圾回收
答:對于GC來說,當程式員創建物件時,GC就開始監控這個物件的地址、大小以及使用情況,通常,GC采用有向圖的方式記錄和管理堆(heap)中的所有物件,通過這種方式確定哪些物件是"可達的”,哪些物件是"不可達的",當GC確定一些物件為"不可達"時,GC就有責任回收這些記憶體空間,可以,程式員可以手動執行System.gc(),通知GC運行,但是Java語言規范并不保證GC一定會執行,
53、靜態變數和實體變數的區別?
答:static i = 10; //常量 class A a; a.i =10;//可變
54、什么是java序列化,如何實作java序列化?
答:序列化就是一種用來處理物件流的機制,所謂物件流也就是將物件的內容進行流化,可以對流化后的物件進行讀寫操作,也可將流化后的物件傳輸于網路之間,序列化是為了解決在對物件流進行讀寫操作時所引發的問題,
序列化的實作:將需要被序列化的類實作Serializable介面,該介面沒有需要實作的方法,implements Serializable只是為了標注該物件是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(物件流)物件,接著,使用ObjectOutputStream物件的writeObject(Object obj)方法就可以將引數為obj的物件寫出(即保存其狀態),要恢復的話則用輸入流,
55、是否可以從一個static方法內部發出對非static方法的呼叫?
答:不可以,如果其中包含物件的method();不能保證物件初始化.
56、寫clone()方法時,通常都有一行代碼,是什么?
答:Clone 有預設行為,super.clone();他負責產生正確大小的空間,并逐位復制,
57、在JAVA中,如何跳出當前的多重嵌套回圈?
答:用break; return 方法,
58、List、Map、Set三個介面,存取元素時,各有什么特點?
答:List 以特定次序來持有元素,可有重復元素,Set 無法擁有重復元素,內部排序,Map 保存key-value值,value可多值,
59、說出一些常用的類,包,介面,請各舉5個
答:常用的類:BufferedReader BufferedWriter FileReader FileWirter String Integer
常用的包:java.lang java.awt java.io java.util java.sql
常用的介面:Remote List Map Document NodeList

總結了一些2020年的面試題,這份面試題的包含的模塊分為19個模塊,分別是:Java基礎、容器、多執行緒、反射、物件拷貝、JavaWeb例外、網路、設計模式、Spring/SpringMVC、SpringBoot/SpringCloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM,

獲取資料以下資料:【點擊這里,暗號博客園!!!】
在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/247279.html

標籤:Java

上一篇:網路編程

下一篇:【Python爬蟲】:爬取(谷歌/百度/搜狗)的搜索結果

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more